Закодируйте данные о потоковой передаче Используя общий HDL генератора CRC оптимизированный блок для 5G стандарт NR

В этом примере показано, как использовать блок General CRC Generator HDL Optimized для кодирования данных о потоковой передаче согласно 5G стандарт NR.

В этом примере выход этого блока по сравнению с функциональным nrCRCEncode (5G Toolbox). Контроль циклическим избыточным кодом (CRC) является кодом с обнаружением ошибок, спроектированным, чтобы обнаружить ошибки в потоковой передаче данных. Генератор CRC вычисляет короткую контрольную сумму двоичной последовательности фиксированной длины и добавляет ее с данными. Детектор CRC выполняет CRC на данных и сравнивает получившуюся контрольную сумму с добавленной контрольной суммой. Если эти две контрольных суммы не соответствуют, ошибка обнаруживается. Генератор CRC и детектор используются в 5G система NR, чтобы обнаружить любые ошибки в транспортных блоках управления и восходящих и нисходящих каналов данных. 5G стандарт NR задает шесть различных циклических полиномов генератора: CRC6, CRC11, CRC16, CRC24A, CRC24B и CRC24C. Для получения дополнительной информации об этих полиномах, смотрите Раздел TS 38.212 5.1 [1].

Сгенерируйте входные данные для генератора CRC NR

Выберите полином CRC, заданный в 5G стандарт NR. Сгенерируйте случайные входные данные длины frameLen и управляющие сигналы, которые указывают на контуры системы координат. Модель в качестве примера импортирует переменные dataIn рабочей области MATLAB®, startIn, endIn, validInРазмер шага, и simTime.

CRCType = 'CRC24A'; % Specify the CRCType as 'CRC6','CRC11','CRC16','CRC24A','CRC24B' or 'CRC24C'
frameLen = 100;
msg = randi([0 1],frameLen,1);

[dataIn,ctrlIn] = whdlFramesToSamples(msg);

dataIn = timeseries(logical(dataIn'));
startIn = timeseries(logical(ctrlIn(:,1)));
endIn = timeseries(logical(ctrlIn(:,2)));
validIn = timeseries(logical(ctrlIn(:,3)));

sampleTime = 1;
simTime = length(ctrlIn(:,3)) + 100;

Запустите модель генератора CRC NR

nrCRCGeneratorExampleInit.m скрипт конфигурирует блок General CRC Generator HDL Optimized путем установки параметров блока на основе заданного порождающего полинома CRC, CRCType. Этот скрипт также предоставляет вход ссылочному функциональному nrCRCEncode (5G Toolbox). Подсистема Генератора CRC NR содержит блок General CRC Generator HDL Optimized. Выполнение модели импортирует переменные входного сигнала из рабочей области и возвращает закодированный CRC выходной параметр и управляющие сигналы, которые указывают на контуры системы координат. Модель экспортирует переменные encOut и ctrlOut к рабочей области MATLAB®.

[poly,crcPolynomial,initState,finalXORValue] = nrCRCGeneratorExampleInit(CRCType);
open_system('NRCRCGeneratorHDL');
encOut = sim('NRCRCGeneratorHDL');

Проверьте результаты генератора CRC NR

Преобразуйте вывод данных потоковой передачи подсистемы Генератора CRC NR к системам координат. Сравните те системы координат с выходом nrCRCEncode функция.

startIdx = find(encOut.startOut);
endIdx = find(encOut.endOut);
dataOut = encOut.dataOut;

dataRef = nrCRCEncode(msg,poly);
bitErr = sum(abs(dataRef - dataOut(startIdx:endIdx)));
fprintf('CRC-encoded frame: Behavioral and HDL simulation differ by %d bits\n',bitErr);

close_system('NRCRCGeneratorHDL');
CRC-encoded frame: Behavioral and HDL simulation differ by 0 bits

Ссылки

  1. 3GPP TS 38.212. NR; мультиплексирование и кодирование канала. Проект партнерства третьего поколения; сеть радиодоступа Technical Specification Group.

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

Блоки

Функции