5G Новое радиополярное кодирование

Этот пример подчеркивает новый метод кодирования полярного канала, выбранный для системы связи 5G New Radio (NR). Из двух основных типов конструкций кода, определенных 3GPP, в этом примере моделируется схема кодирования CRC-Aided Polar (CA-Polar). Этот пример описывает основные компоненты полярной схемы кодирования с отдельными компонентами для построения, кодирования и декодирования кода вместе с согласованием скорости. Он моделирует полярно-кодированную линию связи, модулированную QPSK, по AWGN и представляет результаты частоты ошибок блоков для различных длин сообщений и скоростей кодирования для схемы кодирования.

Введение

Выбор полярных кодексов как кодирующий метод канала для каналов контроля для 5G НОМЕР коммуникационных систем доказал достоинства Арикэна [1] открытие и установит их применение в коммерческих системах [6]. Основываясь на концепции поляризации канала, это новое кодовое семейство является достижением пропускной способности в отличие от приближения справедливой пропускной способности. При лучшей или сравнимой производительности, чем LDPC и турбокоды, он заменяет сверточные коды, используемые в системах LTE для каналов управления. Он применяется для управляющей информации нисходящей линии связи и восходящей линии связи (DCI/UCI) для случая использования расширенного мобильного широкополосного доступа (eMBB), а также широковещательного канала (BCH). Альтернативно, схема кодирования канала для каналов данных для eMBB определена как гибкая LDPC для всех размеров блоков.

В этом примере выделены компоненты для обеспечения возможности моделирования полярного кодирования нисходящей линии связи с использованием модуляции QPSK по каналу AWGN. В следующих разделах подробно описаны отдельные компоненты полярного кодирования.

s = rng(100);       % Seed the RNG for repeatability

Укажите параметры кода, используемые для моделирования.

% Code parameters
K = 54;             % Message length in bits, including CRC, K > 30
E = 124;            % Rate matched output length, E <= 8192

EbNo = 0.8;         % EbNo in dB
L = 8;              % List length, a power of two, [1 2 4 8]
numFrames = 10;     % Number of frames to simulate
linkDir = 'DL';     % Link direction: downlink ('DL') OR uplink ('UL')

Полярное кодирование

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

Для нисходящей линии связи входные биты перемежаются перед полярным кодированием. Таким образом, биты CRC, добавленные в конце информационных битов, распределяются для схемы CA-Polar. Это перемежение не указано для восходящей линии связи.

Полярное кодирование использует SNR-независимый метод, где надежность каждого подканала вычисляется в автономном режиме, а упорядоченная последовательность сохраняется для максимальной длины кода [6]. Вложенное свойство полярных кодов позволяет использовать эту последовательность для любой кодовой скорости и всех длин кода, меньших максимальной длины кода.

Эта последовательность вычисляется для заданной длины выхода, согласованной со скоростью, Eи длина информации, K, по функции nrPolarEncode, который реализует несистематическое кодирование входных данных K биты.

if strcmpi(linkDir,'DL')
    % Downlink scenario (K >= 36, including CRC bits)
    crcLen = 24;      % Number of CRC bits for DL, Section 5.1, [6]
    poly = '24C';     % CRC polynomial
    nPC = 0;          % Number of parity check bits, Section 5.3.1.2, [6]
    nMax = 9;         % Maximum value of n, for 2^n, Section 7.3.3, [6]
    iIL = true;       % Interleave input, Section 5.3.1.1, [6]
    iBIL = false;     % Interleave coded bits, Section 5.4.1.3, [6]
else
    % Uplink scenario (K > 30, including CRC bits)
    crcLen = 11;
    poly = '11';
    nPC = 0;
    nMax = 10;
    iIL = false;
    iBIL = true;
end

Следующая схема подробно описывает обработку на конце передачи для восходящей линии связи для размера полезной нагрузки, превышающего 19 биты и отсутствие сегментации кодового блока с выделением соответствующих компонентов и их параметров.

Сопоставление ставок и восстановление ставок

Набор битов с полярным кодированием (N) согласовываются по скорости для вывода заданного количества битов (E) для отображения элемента ресурса [7]. Кодированные биты перемежаются и передаются в кольцевой буфер длиной N. В зависимости от требуемой кодовой скорости и выбранных значений K, E, и N, любой из повторов (E >= N) и прокалывание или укорочение (E < N) реализуется путем считывания выходных битов из буфера.

  • Для прокалывания, E биты берутся с конца

  • Для укорочения, E биты берутся с начала

  • Для повторения, E биты повторяются по модулю N.

Для нисходящей линии связи выбранные биты передаются в преобразователь модуляции, в то время как для восходящей линии связи они дополнительно перемежаются перед отображением. Обработка согласования скорости реализуется функцией nrRateMatchPolar.

На стороне приемника восстановление скорости выполняется для каждого из случаев.

  • Для прокалывания соответствующие LLR для удаленных битов устанавливаются в ноль

  • Для сокращения соответствующие LLR для удаленных битов устанавливаются на большое значение

  • Для повторения набор LLR, соответствующий первому N выбираются биты.

Обработка восстановления скорости реализуется функцией nrRateRecoverPolar.

R = K/E;                          % Effective code rate
bps = 2;                          % bits per symbol, 1 for BPSK, 2 for QPSK
EsNo = EbNo + 10*log10(bps);
snrdB = EsNo + 10*log10(R);       % in dB
noiseVar = 1./(10.^(snrdB/10));

% Channel
chan = comm.AWGNChannel('NoiseMethod','Variance','Variance',noiseVar);

Полярное декодирование

Неявное кодирование CRC битов сообщения нисходящей линии связи (DCI или BCH) или восходящей линии связи (UCI) диктует использование декодирования списка последовательных компенсаций (CA-SCL) с помощью CRC [3] в качестве алгоритма канального декодера. Хорошо известно, что декодирование CA-SCL может превосходить турбокоды или LDPC-коды [4], и это было одним из основных факторов в принятии полярных кодов 3GPP.

Tal & Vardy [2] описывают алгоритм декодирования ЛКП с точки зрения вероятностей (вероятностей). Однако из-за неполноты внутренние вычисления численно нестабильны. Чтобы преодолеть эту проблему, Стиминг et.al. [5] предлагают декодирование SCL исключительно в области логарифмического отношения правдоподобия (LLR). Декодирование списка характеризуется L параметр, который представляет количество наиболее вероятных сохраняемых путей декодирования. В конце декодирования наиболее вероятный кодовый тракт среди L тракты - выходной сигнал декодера. Как L повышается, производительность декодера также улучшается, однако, с уменьшающимся эффектом возврата.

Для входного сообщения, которое связано с CRC, декодирование CA-SCL отсекает любой из путей, для которых CRC является недопустимым, если, по меньшей мере, один путь имеет правильный CRC. Это дополнительное понимание в окончательном выборе пути дополнительно улучшает производительность по сравнению с декодированием ЛПР. Для нисходящей линии связи используется CRC из 24 битов, в то время как для восходящей линии связи указаны CRC из 6 и 11 битов, которые изменяются в зависимости от значения K.

Декодер реализован функцией nrPolarDecode, которая поддерживает все три длины CRC. Функция декодера также учитывает перемежение входных битов, заданное в передатчике для нисходящей линии связи, перед выводом декодированных битов.

% Error meter
ber = comm.ErrorRate;

Цикл обработки кадров

В этом разделе показано, как описанные выше компоненты для полярного кодирования используются при моделировании частоты ошибок блока (BLER). Связь моделирования подсвечивается на следующей схеме.

Для каждого обработанного кадра выполняются следующие шаги:

  • K-crcLen генерируются случайные биты,

  • ЦИК вычисляется и добавляется к этим битам

  • Добавленные биты CRC полярно кодируются по длине основного кодового блока.

  • Для передачи выполняется согласование скорости E биты

  • E биты модулируются QPSK

  • Добавлен белый гауссов шум заданной мощности

  • Шумный сигнал демодулируется с мягкой QPSK для вывода значений LLR

  • Восстановление скорости осуществляется с учетом прокола, укорочения или повторения

  • Восстановленные значения LLR полярно декодируются с использованием алгоритма CA-SCL, включая обратное перемежение.

  • Выключение декодированного K биты, первый K-crcLen биты сравниваются с битами, передаваемыми для обновления метрик BLER и bit-error-rate (BER).

В конце моделирования сообщаются два показателя эффективности - BLER и BER.

numferr = 0;
for i = 1:numFrames

    % Generate a random message
    msg = randi([0 1],K-crcLen,1);

    % Attach CRC
    msgcrc = nrCRCEncode(msg,poly);

    % Polar encode
    encOut = nrPolarEncode(msgcrc,E,nMax,iIL);
    N = length(encOut);

    % Rate match
    modIn = nrRateMatchPolar(encOut,K,E,iBIL);

    % Modulate
    modOut = nrSymbolModulate(modIn,'QPSK');

    % Add White Gaussian noise
    rSig = chan(modOut);

    % Soft demodulate
    rxLLR = nrSymbolDemodulate(rSig,'QPSK',noiseVar);

    % Rate recover
    decIn = nrRateRecoverPolar(rxLLR,K,N,iBIL);

    % Polar decode
    decBits = nrPolarDecode(decIn,K,E,L,nMax,iIL,crcLen);

    % Compare msg and decoded bits
    errStats = ber(double(decBits(1:K-crcLen)), msg);
    numferr = numferr + any(decBits(1:K-crcLen)~=msg);

end

disp(['Block Error Rate: ' num2str(numferr/numFrames) ...
      ', Bit Error Rate: ' num2str(errStats(1)) ...
      ', at SNR = ' num2str(snrdB) ' dB'])

rng(s);     % Restore RNG
Block Error Rate: 0, Bit Error Rate: 0, at SNR = 0.20002 dB

Результаты

Для получения значимых результатов моделирование должно выполняться в течение более длительного периода времени. Используя сценарии, которые инкапсулируют вышеупомянутую обработку в функцию, которая поддерживает генерацию C-кода, для обоих направлений линии связи с модуляцией QPSK представлены следующие результаты для различных скоростей кодирования и длин сообщений.

Вышеуказанные результаты были получены путем моделирования для каждой точки SNR до 1000 ошибок кадра или максимум 100e3 кадров, в зависимости от того, что произошло первым.

Результаты производительности BLER указывают на пригодность полярных кодов в линии связи и их неявную поддержку совместимости скорости на уровне детализации битов.

Использование инструментов генерации C-кода для компонентов сокращает время выполнения, что является ключевой задачей при моделировании. Генерация C-кода активируется MATLAB Coder™.

Резюме и дальнейшие исследования

Этот пример выделяет одну из полярных схем кодирования (CRC-Aided Polar), определенных 3GPP для информации о новом канале управления радио (DCI, UCI) и широковещательном канале (BCH). Он показывает использование компонентов для всех этапов обработки (кодирование, согласование скорости, восстановление скорости и декодирование) и использует их в линии связи с QPSK по каналу AWGN. Выделенные результаты производительности для различных скоростей кодирования и длины сообщений показывают согласие с опубликованными тенденциями в пределах вариаций предположений параметрического и имитационного моделирования.

Изучение простых вариаций параметров (K, E, L) и их влияние на производительность BLER. Полярные функции кодирования реализуются в виде открытого кода MATLAB ®, чтобы обеспечить их применение как для управляющей информации нисходящей/восходящей линии связи, так и для широковещательного канала. Схема CA-Polar применима для обоих

  • Нисходящая линия связи для всех длин сообщений и

  • Восходящий канал, для K > 30, с crcLen = 11, nPC = 0, nMax = 10, iIL = false, и iBIL = true.

См. примеры моделирования управляющей информации нисходящей линии связи и поиска ячеек NR и восстановления MIB и SIB1 для использования функций полярного кодирования в функциях DCI и BCH соответственно.

Выделенные функции полярного кодирования также поддерживают построение и кодирование полярного кодирования с проверкой четности. Это применимо для восходящего канала с полезной нагрузкой UCI в диапазоне 18 <= K <= 25. Это поддерживается функциями управления кодированием восходящей линии связи. nrUCIEncode и nrUCIDecode, которые включают сегментацию кодовых блоков, а также для соответствующих значений K и E.

Выбранные привязки

  1. Арикан, Э., «Поляризация каналов: метод построения кодов достижения пропускной способности для симметричных каналов без двоичного ввода», IEEE Transactions on Information Theory, том 55, № 7, стр. 3051-3073, июль 2009.

  2. Tal, I, and Vardy, A., «Список расшифровки полярных кодов», IEEE Transactions on Information Theory, том 61, № 5, стр. 2213-2226, май 2015.

  3. Ниу, К. и Чен, К., «Декодирование полярных кодов с помощью CRC», IEEE Communications Letters, том 16, № 10, стр. 1668-1671, октябрь 2012.

  4. Niu, K., Chen, K., и Lin, J.R., «Beyond turbo codes: rate compatible puncted polar codes», IEEE International Conference on Communications, pp. 3423-3427, 2013.

  5. Стимминг, А. Б., Паризи, М. Б., и Бург, А., «LLR-основанный последовательный список отмены декодирования полярных кодов», IEEE Transaction on Signal Processing, том 63, № 19, стр. 5165-5179, 2015.

  6. 3GPP TS 38.212. "НР; мультиплексирование и канальное кодирование (выпуск 15). "Проект партнерства 3-го поколения; Техническая спецификация на сеть радиодоступа группы.

  7. R1-1711729. «WF на кольцевом буфере полярного кода», 3GPP TSG RAN WG1 встреча NR Ad-Hoc # 2, Ericsson, Qualcomm, MediaTek, LGE. Июнь 2017 года.

См. также

Функции

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