nrPolarDecode

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

Описание

пример

decbits = nrPolarDecode(rec,K,E,L) декодирует восстановленный с уровня вход rec для (NK) полярный код, где N длина rec и K длина декодируемых битов decbits, как задано в Разделе TS 38.212 5 [1]. Функция использует контроль циклическим избыточным кодом (CRC) - декодер списка последовательных отмен, которому помогают, длины L. По умолчанию выведите устранение чередования, включен, максимальная длина входа 512, и количество добавленных битов CRC равняется 24. Используйте этот синтаксис для нисходящей настройки.

decbits = nrPolarDecode(rec,K,E,L,padCRC) задает, был ли блок информации на конце передачи предварительно дополнен единицами перед кодированием CRC.

decbits = nrPolarDecode(rec,K,E,L,padCRC,rnti) задает радиосеть временный идентификатор (RNTI). Можно использовать этот синтаксис когда значение rnti маскирует биты четности CRC в конце передачи.

decbits = nrPolarDecode(rec,K,E,L,nmax,iil,CRClen) декодирует вход с заданной максимальной длиной 2nmax , выведите устранение чередования, заданное iil, и количество добавленных битов CRC задано CRClen. Этот синтаксис принимает, что блок информации на конце передачи не был предварительно дополнен единицами перед кодированием CRC и что RNTI равен 0.

  • Для нисходящего канала (DL) настройка, допустимые значения для nmax, iil, и CRClen 9, true, и 24, соответственно.

  • Для восходящего канала (UL) настройка, допустимые значения для nmax и iil 10 и false, соответственно, и для CRClen 11 или 6.

Примеры

свернуть все

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

Начальная настройка

Создайте канал, который добавляет белый Гауссов шум (WGN) во входной сигнал. Установите шумовое отклонение на 1,5.

nVar = 1.5; 
chan = comm.AWGNChannel('NoiseMethod','Variance','Variance',nVar);

Создайте бинарный сдвиг фазы, включающий (BSPK) модулятор и демодулятор.

bpskMod = comm.BPSKModulator;
bpskDemod = comm.BPSKDemodulator('DecisionMethod', ...
    'Approximate log-likelihood ratio','Variance',nVar);

Симулируйте систему координат

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

K = 132;
E = 256;
msg = randi([0 1],K,1,'int8');
enc = nrPolarEncode(msg,E);

Модулируйте полярные закодированные данные с помощью модуляции BSPK, добавьте WGN и демодулируйте.

mod = bpskMod(enc);
rSig = chan(mod);
rxLLR = bpskDemod(rSig); 

Выполните полярное декодирование с помощью декодера списка последовательных отмен длины L.

L = 8;
rxBits = nrPolarDecode(rxLLR,K,E,L);

Определите количество битовых ошибок.

numBitErrs = biterr(rxBits,msg);
disp(['Number of bit errors: ' num2str(numBitErrs)])
Number of bit errors: 0

Переданные и полученные сообщения идентичны.

Входные параметры

свернуть все

Восстановленный с уровня вход в виде вектор-столбца действительных значений. Вход rec представляет отношения логарифмической правдоподобности на бит с отрицательным биполярным отображением. Так 0 сопоставлен с 1, и 1 сопоставлен с -1. Длина rec должна быть степень двойки.

Типы данных: single | double

Длина блока информации в битах в виде положительного целого числа. K включает биты CRC если применимо.

Типы данных: double

Соответствующая уровню продолжительность выхода в битах в виде положительного целого числа.

  • Если 18 ≤ K ≤ 25, E должен быть в области значений K + 3 <E ≤ 8192.

  • Если K > 30, E должен быть в области значений K <E ≤ 8192.

Типы данных: double

Продолжительность декодирования списка в виде степени двойки.

Типы данных: double

Предварительное дополнение перед кодированием CRC в виде false или true. Установите padCRC к true если блок информации на конце передачи, перед полярным кодированием, был предварительно дополнен всеми единицами перед кодированием CRC.

Типы данных: логический

RNTI UE в виде целого числа от 0 до 65 535.

Типы данных: double

Основывайте 2 логарифма максимальной длины восстановленного с уровня входа в виде 9 или 10.

  • Для настройки DL задайте 9.

  • Для настройки UL задайте 10.

Если N длина rec в битах, N2nmax, смотрите Раздел TS 38.212 5.3.1.2.

Типы данных: double

Выведите устранение чередования в виде true или false.

  • Для настройки DL задайте true.

  • Для настройки UL задайте false.

Типы данных: логический

Количество добавленных битов CRC в виде 24, 11, или 6.

  • Для настройки DL задайте 24.

  • Для настройки UL задайте 11 или 6.

Числа 24, 11, и 6 соответствуют полиномам gCRC24C, gCRC11, и gCRC6, соответственно, как описано в TS 38.212. Разделите 5.1 [1].

Типы данных: double

Выходные аргументы

свернуть все

Декодируемое сообщение, возвращенное как K- 1 вектор-столбец двоичных значений.

Типы данных: int8

Вопросы совместимости

развернуть все

Поведение изменяется в R2020a

Ссылки

[1] 3GPP TS 38.212. “NR; Мультиплексирование и кодирование канала”. Проект Партнерства третьего поколения; Сеть радиодоступа Technical Specification Group.

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

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

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

Расширенные возможности

Введенный в R2018b