В этом примере показано, как использовать блок 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, заданный в 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;
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 к системам координат. Сравните те системы координат с выходом 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
3GPP TS 38.212. NR; мультиплексирование и кодирование канала. Проект партнерства третьего поколения; сеть радиодоступа Technical Specification Group.
nrCRCEncode
(5G Toolbox)