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

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

Введение

Выбор полярных кодов как метод кодирования канала для каналов управления для 5G система связи NR доказала достоинства Арикэна [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 схемы. Это чередование не задано для восходящего канала.

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

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

if strcmp(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.

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

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

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

  • Для повторения выбран набор соответствия LLRs первым битам 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) биты сообщения диктует использование помогшего CRC Последовательного Списка Отмен, Декодирующего (CA-SCL) [3] как алгоритм декодера канала. Известно, что декодирование CA-SCL может превзойти по характеристикам турбо или коды LDPC, и это было одним из основных факторов в принятии полярных кодов 3GPP.

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

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

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

% Error meter
ber = comm.ErrorRate;

Структурируйте цикл обработки

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

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

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

  • CRC вычислен и добавлен к этим битам

  • Добавленные биты CRC полярные закодированный к родительской длине блока кода

  • Соответствие уровня выполняется, чтобы передать биты E

  • Биты E являются модулируемым QPSK

  • Белый Гауссов Шум заданной степени добавляется

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

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

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

  • От декодируемых битов K первые биты K-crcLen по сравнению с переданными, чтобы обновить метрики частоты ошибок по битам (BER) и BLER.

В конце симуляции сообщают об этих двух показателях эффективности, 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.

Вышеупомянутые результаты были сгенерированы путем симуляции, для каждой точки ОСШ, до 1 000 ошибок кадра или максимума 100e3 кадры, какой бы ни произошел сначала.

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

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

Итоговое и дальнейшее исследование

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

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

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

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

Обратитесь к Моделированию Нисходящей Управляющей информации и примеров Процедур Синхронизации NR для использования полярных функций кодирования в DCI и функций BCH соответственно.

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

Выбранные ссылки

  1. Arikan, E., "Поляризация Канала: Метод для построения Достигающих Способности Кодов для Симметричных Каналов без памяти Двоичного входа", Транзакции IEEE на Теории информации, издании 55, № 7, стр 3051-3073, июль 2009.

  2. Tal, я и Vardy, A., "Декодирование списка Полярных Кодов", Транзакции IEEE на Теории информации, издании 61, № 5, стр 2213-2226, май 2015.

  3. Ню, K. и Чен, K., "Помогшее CRC Декодирование Полярных Кодов", Коммуникационные Буквы IEEE, издание 16, № 10, стр 1668-1671, октябрь 2012.

  4. Ню, K., Чен, K., и Лин, J.R., "Вне турбокодов: уровень совместимые проколотые полярные коды", Международная конференция IEEE по вопросам Коммуникаций, стр 3423-3427, 2013.

  5. Stimming, A. B., Parizi, M. B. и Город, A., "Основанное на LLR Последовательное Декодирование Списка Отмен Полярных Кодов", Транзакция IEEE на Обработке сигналов, издании 63, № 19, pp.5165-5179, 2015.

  6. 3GPP TS 38.212. "NR; Мультиплексирование и кодирование канала (Релиз 15)". Проект Партнерства третьего поколения; Сеть радиодоступа Technical Specification Group.

  7. R1-1711729. "WF на кольцевом буфере Полярного Кода", 3GPP TSG ЗАПУСТИЛ WG1, соответствующий NR Эд-Hoc#2, Ericsson, Qualcomm, MediaTek, LGE. Июнь 2017.

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

Функции

Похожие темы