nrRateRecoverLDPC

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

Описание

пример

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

nrRateRecoverLDPC является обратным nrRateMatchLDPC и выполняет обратную конкатенацию кодового блока, перемежение битов и этапы выбора битов на конце приемника.

out = nrRateRecoverLDPC(___,numCB) задает количество блоков кода numCB подлежит восстановлению, в дополнение к входным параметрам в предыдущем синтаксисе.

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

Примеры

свернуть все

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

sbits = ones(4500,1);
trblklen = 4000;    
R = 0.5;                
rv = 0;                 
mod = 'QPSK';           
nlayers = 1;            
numCB = 1;              
raterec = nrRateRecoverLDPC(sbits,trblklen,R,rv,mod,nlayers,numCB);
size(raterec)
ans = 1×2

       12672           1

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

свернуть все

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

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

Исходная длина транспортного блока, заданная как неотрицательное целое число.

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

Целевая скорость кода, заданная как действительный скаляр в области значений (0,1).

Типы данных: 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

Количество запланированных сегментов блока кода, заданное как положительное целое число. numCB меньше или равно количеству сегментов кода блоков для транспортного блока.

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

Ограниченное соответствие скорости буфера, заданное как положительное целое число. Nref определено в ТУ 38.212 Раздел 5.4.2.1.

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

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

свернуть все

Восстановленные со скоростью сегменты запланированного кода, возвращенные как матрица. Количество строк в out вычисляется из trblklen и R. Количество столбцов в out равно numCBили общее количество блоков кода для транспортного блока. Биты наполнителя установлены в Inf для соответствия нулям, используемым во время их кодирования.

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

Ссылки

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

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

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

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