exponenta event banner

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

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

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

Генерация входных данных для генератора ЦИК NR

Выберите многочлен CRC, указанный в стандарте 5G NR. Генерировать случайные входные данные длиной frameLen и управляющие сигналы, которые указывают границы кадра. Пример модели импортирует переменные рабочей области MATLAB ®dataIn, startIn, endIn, validIn, sampleTime, и 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;

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

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

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

Проверка результатов генератора ЦИК NR

Преобразование вывода потоковых данных подсистемы генератора NR CRC в кадры. Сравните эти кадры с выходными данными 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. НР; Мультиплексирование и канальное кодирование. проект партнерства 3-го поколения; Техническая спецификация на сеть радиодоступа группы.

См. также

Блоки

Функции