exponenta event banner

nrRateMatchLDPC

Согласование скорости проверки четности с низкой плотностью (LDPC)

Описание

пример

out = nrRateMatchLDPC(in,outlen,rv,mod,nLayers) возвращает согласованный по скорости выходной сигнал длины outlen для матрицы входных данных in. Вход rv - версия избыточности, mod является типом модуляции, и nLayers - количество уровней передачи. Внутренний буфер, используемый для мягкого ввода, не имеет ограничений по размеру.

nrRateMatchLDPC включает в себя этапы выбора и перемежения битов, определенные для кодированных LDPC данных и конкатенации кодовых блоков, как указано в TS 38.212 Разделы 5.4.2 и 5.5 [1].

out = nrRateMatchLDPC(___,Nref) возвращает выходной сигнал, согласованный со скоростью, для ограниченного размера буфера мягких данных Nref, в дополнение к входным аргументам в предыдущем синтаксисе. Nref определено в TS 38.212 раздел 5.4.2.1 [1].

Примеры

свернуть все

Создайте входные данные, соответствующие двум кодовым блокам с кодированием LDPC длиной 3960.

encoded = ones(3960,2);

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

rv = 0;                 
mod = 'QPSK';    
nLayers = 1;
outlen = 8000;
ratematched = nrRateMatchLDPC(encoded,outlen,rv,mod,nLayers);
size(ratematched)
ans = 1×2

        8000           1

Создайте входные данные в кодировке LDPC, состоящие из целочисленных рамп в отдельных кодовых блоках. Выполните согласование скорости LDPC кодовых блоков с вектором длиной 3000. Используйте один уровень передачи с модуляцией QPSK и версией с нулевой избыточностью. Постройте график расположения выходных данных, соответствующих скорости.

encoded = [0 1000 2000] + (1:66*10)';
rv = 0;           
mod = 'QPSK';    
nLayers = 1; 
outlen = 3000;
out = nrRateMatchLDPC(encoded,outlen,rv,mod,nLayers);
plot(out,'.-')

Figure contains an axes. The axes contains an object of type line.

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

свернуть все

Входные данные в кодировке LDPC, заданные как матрица. Каждый столбец in является кодовым словом. Количество столбцов во входном аргументе in равно количеству запланированных кодовых блоков в транспортном блоке. Каждый столбец сопоставляется по скорости отдельно, и результаты конкатенируются в out.

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

Длина согласуемого по скорости и конкатенированного выходного вектора, заданная как положительное целое число. outlen - количество кодированных битов, доступных для передачи в транспортном блоке, как указано в TS 38.212 Раздел 5.4.2.1 [1].

Схема модуляции mod определяет порядок модуляции Qm (количество битов, используемых на символ модуляции). Еслиoutlen не является кратным nLayers × Qm, функция устанавливает длину выходного вектора следующим кратным nLayers × Qm.

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

Версия избыточности, заданная как целое число от 0 до 3.

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

Схема модуляции, указанная как 'pi/2-BPSK', 'QPSK', '16QAM', '64QAM', или '256QAM'. Эта схема модуляции определяет тип модуляции кодового слова и количество битов, используемых на символ модуляции.

Схема модуляцииКоличество битов на символ

'pi/2-BPSK'

1
'QPSK'2
'16QAM'4
'64QAM'6
'256QAM'8

Типы данных: char | string

Число уровней передачи, связанных с транспортным блоком, указанное как целое число от 1 до 4.

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

Сопоставление ограниченной скорости буфера, указанное как положительное целое число. Nref определено в TS 38.212 раздел 5.4.2.1.

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

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

свернуть все

Согласованные по скорости и конкатенированные кодовые блоки для транспортного блока, возвращаемые как вектор длины outlen.

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

Ссылки

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

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

Создание кода C/C + +
Создайте код C и C++ с помощью MATLAB ® Coder™

.
Представлен в R2018b