Скачиваний:
8
Добавлен:
10.05.2015
Размер:
6.66 Кб
Скачать
package gas.Examples;

import gas.*;


/**
* Created by IntelliJ IDEA.
* User: Rabetskiy D.A.
* Date: 24.07.2009
* Time: 13:01:40
* To change this template use File | Settings | File Templates.
*/
public class MainClass2 {
public static org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(MainClass2.class); // переменная логгера
public static void main(String[] args) throws InterruptedException {
int T = 15;//период функции
int N = 200;
int M = 4; //Число промежуточных отсчетов
int Nd = 50 ; //количество точех полученных после дискретизации
int Millis = 200; // задержка прорисовки
int Cg = 1; // количество графиков в прорисовке
int Size1 = 200; // объём памяти
int Size2 = N / M; //// объём памяти
float W = (float)3.8; //Частота высшей гармоники
float[] Ax = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15};
float[] Ay = {1, 2, 1,-4, 5, 5, 2, -3, 2, 4, 1, -5, 4, 5, 2, 3};
float M_r, S_r, Wif;
M_r = (float)0; //матожидание ошибки
S_r = (float)0; //среднеквадратическое отклонение ошибки
Wif = (float)8.7;
SamplerConfig Config = null; // конфигурация дискретизатора

// объекты присутствующие в системе *-
log.info("Создание модели сигнала");
ModelSignal model = new ModelSignal(); //создание вида сигнала
model.SetInflectionPoints(Ax, Ay); // установка точек перегиба
log.info("Создание генератора сигнала");
SignalGenerator generator = new SignalGenerator(N, T, model); //объект генерирует сигнал в кус.лин ф.
log.info("Создание сглаживателя сигнала");
Smoother smoother = new Smoother(N, T, W); // сглаживатель(работает только при целом сигнале)
smoother.setMemory(N); // выделение памяти в сглаживателе
log.info("Создание дискретизатора сигнала");
Sampler sampler = new Sampler(); //дискретизатор
log.info("Создание настройщика дискретизатора сигнала");
SamplerTuner Stuner = new SamplerTuner(); //настройка дискретизатора
Stuner.setConfig(M, Nd, N); // задание настройки
sampler.loadConfig(Stuner.getConfig()); // передача параметров дискретизатору
log.info("Создание ошибки в канале связи");
Gauss noise = new Gauss(M_r, S_r); // ошибка в канале связи
log.info("Создание канала связи между блоками");
TransmissionChannel environment = new TransmissionChannel(noise); // канал связи
log.info("Создание фильтра низких частот");
InfraFilter Filter = new InfraFilter(); // создание фильтра низких чатот
log.info("Создание настройщика фильтра");
FilterConfig FilterConf = new FilterConfig(); // создание настройки фильтра
FilterConf.setConfig(N, Nd, Wif); // настройка фильтра
Filter.loadConf(FilterConf); // принятие конфигурации фильтром

// инициализация памяти-----------------
Memory MemGen = new Memory(Size1); // память под генератор
Memory MemSmooth = new Memory(Size1); // память под сглаживатель
Memory MemDisk = new Memory(Size2); // память под дискретизатор
Memory MemEnv = new Memory(Size2); // память под канал связи
DinamicMemory MemFilt = new DinamicMemory(Size1, Size2); // память под фильтер

MemGen.setStep(T);
MemSmooth.setStep(T);
MemDisk.setStep(T);
MemEnv.setStep(T);
MemFilt.setStep(T);
// --------
generator.setNext(MemGen);
MemGen.setNext(smoother);
smoother.setNext(MemSmooth);
MemSmooth.setNext(sampler);
sampler.setNext(MemDisk);
MemDisk.setNext(environment);
environment.setNext(MemEnv);
MemEnv.setNext(Filter);
Filter.setNext(MemFilt);
//---------

generator.execute();
log.info("Создание окна для прорисовки графика");
ImageGraph ShowGen = new ImageGraph(Cg + 1);
ShowGen.addMemory(MemGen);
ShowGen.addMemory(MemSmooth);
ShowGen.showNep();

ImageGraph ShowDis = new ImageGraph(Cg);
ShowDis.addMemory(MemDisk);
ShowDis.showNep();

ImageGraph ShowEnv = new ImageGraph(Cg + 1);
ShowEnv.addMemory(MemSmooth);
ShowEnv.addMemory(MemFilt);
ShowEnv.showNep();

ImageGraph ShowDinam = new ImageGraph(Cg);
ShowDinam.addDinamicMemory(MemFilt.getBlocksOfMemory());
ShowDinam.ShowDinamic(Millis);

System.out.println("Частота среза инфч Wif" + Wif + "\n" + "Частота высшей гармоники W = " +
W + "\n" + "Шаг дискретизации <>t"+ (float)1 / (float)2 * W +"\n");
Analyzer analyz = new Analyzer();
analyz.getMiddleErrorOfRenewal(MemSmooth, MemFilt);
}

}
Соседние файлы в папке Examples