exponenta event banner

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 года.

См. также

Функции

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