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

import gas.*;

import java.io.FileNotFoundException;

/**
* Created by IntelliJ IDEA.
* User: Admin
* Date: 19.03.2010
* Time: 4:12:49
* To change this template use File | Settings | File Templates.
*/
public class MainClass4_2 {
public static void main(String[] args) throws InterruptedException, FileNotFoundException {
System.out.println("Уровни квантования Позиционный код");
//время фиксации сигнала
float[] Ax = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18};
//значение сигнала в определенный момент времени
float[] Ay = {1, 2, 1,-4, 5, 5, 2, -3, 2, 4, 1, -5, 4, 5, 2, 3, -3 , 1, 4};
int T = 18; // период функции
int N = 200; // количество отсчётов

float M = (float)0.1; // матожидание для ошибки
float S = (float)0.9; // СКО для ошибки

float V1 = (float)1; //предполагаемая вероятность правильной передачи сообщения
float M1 = (float)0.1; //математическое ожидание амплитуды гауссовой помехи
float S1 = (float)0.1; //среднеквадратическое отклонение амплитуды гауссовой помехи
int L = 4, kbl = 50; // длина сообщения и количество сообщений
int codelen = 10; // максимальное число разрядов эффективного кода
QuantizerConfig config; // настройка кватователя
Memory mem = new Memory(N);
mem.setStep(T);
PartitionInfo partinfo = new PartitionInfo(kbl, L);

ModelSignal Model = new ModelSignal();
Model.SetInflectionPoints(Ax, Ay);

SignalGenerator generator = new SignalGenerator(N, T, Model);

QuantizerTuner tuner = new QuantizerTuner(Model);
config = tuner.sagStatistic(V1, M1, S1);
Quantizer Kvn = new Quantizer(config);

Segmentator seg = new Segmentator(config, partinfo);
Segmentator.BlockMode();
seg.setMemory(L);

generator.setNext(mem);
mem.setNext(Kvn);
Kvn.setNext(seg);
generator.execute();

PositionalCode Code = new PositionalCode(new PositionalCodeConfig(kbl,codelen), seg.getChain());
PositionalCode.FuncMode();
Code.prepareDate();
PCoder Coder = new PCoder(Code.codeTable());
PDecoder Decoder = new PDecoder(Code.codeTable());
LevelConverter Converter = new LevelConverter(config, 1);

ExtandibleMemory Memo = new ExtandibleMemory();
ExtandibleMemory Memo2 = new ExtandibleMemory();
Memory memory = new Memory(N);
memory.setStep(T);

EnvironmentTuner EnTuner = new EnvironmentTuner(V1, M1, S1);
DataLink Link = new DataLink(new Gauss(M, S), EnTuner.getConfig());
DataLink.miltiImpact();
ChainGenerator gen = new ChainGenerator(seg.getChain());
gen.setNext(Coder);
Coder.setNext(Link);
Link.setNext(Memo);
Memo.setNext(Decoder);
Decoder.setNext(Memo2);

Memo2.setNext(Converter);
Converter.setNextBlok(memory);

gen.execute();

ImageGraph gr = new ImageGraph(1);
gr.addMemory(memory);
gr.showNep();

PassStatistics stat = new PassStatistics(seg.getChain(), Memo2);
System.out.println("Частота правильной передачи = "+stat.getStat().getFreqTruePass()+"\nСредняя ошибка = "+ stat.getStat().getAvgErrPass());


}

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