nrRateMatchLDPC

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

Описание

пример

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

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

out = nrRateMatchLDPC(___,Nref) возвращает согласованную со скоростью выход для ограниченного мягкого buffer size Nref, в дополнение к входным параметрам в предыдущем синтаксисе. Nref определено в ТУ 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 определено в ТУ 38.212 Раздел 5.4.2.1.

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

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

свернуть все

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

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

Ссылки

[1] 3GPP TS 38.212. "NR; Мультиплексирование и канальное кодирование. "3rd Генерация Partnership Project; Группа технических спецификаций Радиосеть доступ.

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

Генерация кода C/C + +
Сгенерируйте код C и C++ с помощью Coder™ MATLAB ®

.
Введенный в R2018b