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

import gas.*;

import java.io.FileNotFoundException;

/**
* Created by IntelliJ IDEA.
* User: Admin
* Date: 19.03.2010
* Time: 4:02:31
* To change this template use File | Settings | File Templates.
*/
public class MainClass4_1 {
public static void main(String[] args) throws InterruptedException{
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)1; // матожидание для ошибки
float S = (float)0.2; // СКО для ошибки

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

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

QuantizerTuner tuner = new QuantizerTuner(Model);
config = tuner.sagStatistic((float)0.8, (float)0, (float)(0.3));
PartitionInfo partinfo = new PartitionInfo(kbl, L);
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();

Huffman Code = new Huffman(new HuffmanConfig(kbl, codelen), seg.getChain());
Huffman.FuncMode();
Code.prepareData();
ECoder Coder = new ECoder(Code.codeTable());
EDecoder Decoder = new EDecoder(Code.codeTable());
LevelConverter Converter = new LevelConverter(config, 1);

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

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();

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

EStatViewer viewer = new EStatViewer(new ToConsole());
EffectiveCodeStatistics calc = new EffectiveCodeStatistics(Code.codeTable(), partinfo);
viewer.setData(calc.getStat());
viewer.view();

PositionalCode CodeP = new PositionalCode(new PositionalCodeConfig(kbl,codelen), seg.getChain());
PositionalCode.FuncMode();
CodeP.prepareDate();
TableViewer tviewer = new TableViewer(new ToConsole());
tviewer.view(Code.codeTable(), CodeP.codeTable(), ChainGenerator.convLevelchain(seg.getChain()));


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