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) возвращает соответствующий уровню выходной параметр для ограниченного мягкого buffer size 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 object. The axes object 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

Схема Modulation в виде '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. “NR; Мультиплексирование и кодирование канала”. Проект Партнерства третьего поколения; Сеть радиодоступа Technical Specification Group.

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

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

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

Функции

Введенный в R2018b