Сверточный кодируют потоковой передачи выборок

В этом примере показано, как использовать блок LTE Convolutional Encoder, чтобы закодировать данные, и как сравнить благоприятный для оборудования проект с результатами LTE Toolbox™. Рабочий процесс выполняет эти шаги:

  1. Сгенерируйте системы координат случайных входных выборок в MATLAB®.

  2. Закодируйте данные с помощью функции LTE Toolbox lteConvolutionalEncode.

  3. Преобразуйте структурированные входные данные в поток выборок и импортируйте поток в Simulink®.

  4. Чтобы закодировать выборки с помощью благоприятной для оборудования архитектуры, запустите модель Simulink, которая содержит LTE блока Wireless HDL Toolbox™ Сверточный Энкодер.

  5. Экспортируйте поток закодированных битов к рабочему пространству MATLAB.

  6. Преобразуйте демонстрационный поток назад в обрамленные данные и сравните системы координат со справочными данными.

Сгенерируйте системы координат входных данных. Сгенерируйте закодированные данные ссылки с помощью lteConvolutionalEncode.

rng(0);
frameLength = 256;
numframes   = 2;

txframes     = cell(1,numframes);
txcodeword   = cell(1,numframes);
rxSoftframes = cell(1,numframes);

for k = 1:numframes
    txframes{k}   = randi([0 1],frameLength,1)>0.5;
    txcodeword{k} = lteConvolutionalEncode(txframes{k});
end

Сериализируйте входные данные для модели Simulink. Оставьте достаточно времени между системами координат так, чтобы каждая система координат была полностью закодирована, прежде чем следующий запускается. Блок берет frameLength + 5 циклов, чтобы закодировать систему координат.

idleCyclesBetweenSamples = 0;
idleCyclesBetweenFrames  = frameLength+5;

[sampleIn,ctrlIn] = whdlFramesToSamples(...
    txframes,idleCyclesBetweenSamples,idleCyclesBetweenFrames);

Запустите модель Simulink. Из-за добавленных неактивных циклов между системами координат входные данные потоковой передачи включают достаточно циклов для модели, чтобы завершить кодирование обеих систем координат.

sampletime = 1;
samplesizeIn = 1;
simTime = size(ctrlIn,1);
modelname = 'ltehdlConvolutionalEncoderModel';
open_system(modelname);
sim(modelname);

Модель Simulink экспортирует sampleOut и ctrlOut назад к рабочему пространству MATLAB. Десериализуйте выходные выборки и сравните их с закодированной системой координат.

Выходные выборки блока LTE Convolutional Encoder являются чередованными результатами этих трех полиномов.

  • Благоприятный для оборудования выход: G0_1 G1_1 G2_1 G0_2 G1_2 G2_2 ... Gn G1_n G2_n

  • LTE Toolbox выход: G0_1 G0_2 ... G0_n G1_1 G1_2 ... G1_n G2_1 G2_2 ... G2_n

whdlSamplesToFrames функция предоставляет возможность переупорядочивать выборки. Сравните переупорядоченные выходные системы координат со ссылкой закодировали системы координат.

interleaveSamples = true;
sampleOut = sampleOut';
txhdlframes = whdlSamplesToFrames(sampleOut(:),ctrlOut,[],interleaveSamples);

fprintf('\nLTE Convolutional Encoder\n');
for k = 1:numframes
    numBitsDiff = sum(double(txcodeword{k})-double(txhdlframes{k}));
    fprintf(['  Frame %d: Behavioral and ' ...
        'HDL simulation differ by %d bits\n'],k,numBitsDiff);
end
Maximum frame size computed to be 768 samples.

LTE Convolutional Encoder
  Frame 1: Behavioral and HDL simulation differ by 0 bits
  Frame 2: Behavioral and HDL simulation differ by 0 bits

Смотрите также

Блоки

Функции

Похожие темы