exponenta event banner

Проверка ошибок CRC в потоковой выборке

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

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

  2. Создание и добавление контрольной суммы CRC с помощью функции LTE Toolbox lteCRCEncode.

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

  4. Чтобы проверить образцы по контрольной сумме с помощью аппаратной архитектуры, запустите модель Simulink. Модель содержит декодер LTE CRC блока Toolbox™ беспроводной ЛПВП.

  5. Экспортируйте поток образцов обратно в рабочую область MATLAB ®.

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

Создание входных кадров данных, затем создание контрольной суммы CRC с использованием lteCRCEncode.

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

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

for ii = 1:numframes

    txframes{ii}  = randi([0 1],frameLength,1)>0.5;

    CRCType = '24B';
    CRCMask = 50;
    txcodeword{ii} = boolean(lteCRCEncode(txframes{ii},CRCType,CRCMask));

end

Сериализация входных данных для модели Simulink. Для блока декодера CRC LTE не требуется никакого промежутка между кадрами, но аппаратный алгоритм добавляет задержку (3 * CRCLength/SampleSize) + 5 циклов. В этом примере используются скалярные входные выборки, поэтому задержка равна (3 * CRCLength) + 5.

idleCyclesBetweenSamples = 0;
idleCyclesBetweenFrames  = 77;
samplesizeIn             = 1;

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

Запустите модель Simulink.

sampletime = 1;
simTime = length(ctrlIn);
modelName = 'ltehdlCRCDecoderModel';
open_system(modelName);
sim(modelName);

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

txhdlframes = whdlSamplesToFrames(sampleOut,ctrlOut);

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

LTE CRC Decoder
  Frame 1: Behavioral and HDL simulation differ by 0 bits
  Frame 2: Behavioral and HDL simulation differ by 0 bits

См. также

Блоки

Функции

Связанные темы