nrRateRecoverLDPC

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

Синтаксис

out = nrRateRecoverLDPC(in,trblklen,R,rv,mod,nLayers)
out = nrRateRecoverLDPC(___,numCB)
out = nrRateRecoverLDPC(___,numCB,Nref)

Описание

пример

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) возвращает восстановленный с уровня выходной параметр для ограниченного мягкого buffer size, который Nref с конкретным количеством кода блокирует numCB, чтобы восстановить, в дополнение к входным параметрам в первом синтаксисе. Nref задан в Разделе TS 38.212 5.4.2.1 [1].

Примеры

свернуть все

Создайте входные данные длины 4 500 соответствий мягким битам. Длина исходного транспортного блока 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

Схема Modulation, заданная как 'pi/2-BPSK', 'QPSK', '16QAM', '64QAM' или '256QAM'.

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

Количество слоев передачи сопоставлено с транспортным блоком, заданным как целое число от 1 до 4.

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

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

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

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

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

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

свернуть все

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

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

Ссылки

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

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

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

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

Функции

Введенный в R2018b