nrULSCHDecoder

Примените цепь обработки декодера UL-SCH

Описание

nrULSCHDecoder Система object™ применяет восходящий канал совместно использованный канал (UL-SCH) цепь обработки декодера к мягким битам, соответствующим транспортному блоку UL-SCH-encoded. UL-SCH декодирование процесса состоит из восстановления уровня, декодирования имеющей малую плотность проверки четности (LDPC), десегментации и декодирования контроля циклическим избыточным кодом (CRC). Объект реализует обратную операцию UL-SCH кодирование процесса, заданного в этих разделах TR 38.212 [1]:

  • Разделы 6.2.1: Транспортное прикрепление блока CRC

  • Разделы 6.2.2: LDPC основывают выбор графика

  • Разделы 6.2.3: сегментация блока Кода и прикрепление блока CRC кода

  • Разделы 6.2.4: кодирование Канала UL-SCH

  • Разделы 6.2.5: соответствие Уровня

  • Разделы 6.2.6: конкатенация блока Кода

Применять цепь обработки декодера UL-SCH:

  1. Создайте nrULSCHDecoder объект и набор его свойства.

  2. Вызовите объект с аргументами, как будто это была функция.

Чтобы узнать больше, как Системные объекты работают, смотрите то, Что Системные объекты? MATLAB.

Создание

Описание

decUL = nrULSCHDecoder создает Системный объект декодера UL-SCH.

decUL = nrULSCHDecoder(Name,Value) создает объект с набором свойств при помощи одной или нескольких пар "имя-значение". Заключите имя свойства в кавычках, сопровождаемых заданным значением. Незаданные свойства берут значения по умолчанию.

Пример: Например, nrULSCHDecoder('MultipleHARQProcesses',true) создает объект и включает нескольким гибридный автоматический повторный запрос (HARQ) процессы.

Свойства

развернуть все

Если в противном случае не обозначено, свойства являются ненастраиваемыми, что означает, что вы не можете изменить их значения после вызова объекта. Объекты блокируют, когда вы вызываете их и release функция разблокировала их.

Если свойство является настраиваемым, можно изменить его значение в любое время.

Для получения дополнительной информации об изменении значений свойств смотрите Разработку системы в MATLAB Используя Системные объекты (MATLAB).

Включите несколько процессов HARQ, заданных как false или true. Когда установлено в false, объект использует один процесс. Когда установлено в true, объект использует несколько процессов HARQ, самое большее 16. Чтобы включить мягкое объединение повторных передач перед декодированием LDPC, объект обеспечивает мягкий буфер для каждого процесса HARQ.

Типы данных: логический

Целевой уровень кода, заданный как вещественное число в интервале (0, 1). Значение по умолчанию соответствует 526/1024.

Настраиваемый: да

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

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

Настраиваемый: да

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

Включите ограниченное буферное восстановление уровня, заданное как false или true. Когда установлено в false, размер внутреннего буфера, используемого в восстановлении уровня, является полной закодированной длиной каждого блока кода. Когда установлено в true, можно задать размер внутреннего буфера, используемого в восстановлении уровня путем установки LimitedBufferSize свойство.

Типы данных: логический

Ограниченный buffer size используется в восстановлении уровня, заданном как положительное целое число. Значение по умолчанию соответствует 384×66, который является максимальной закодированной длиной блока кода. Значение по умолчанию не подразумевает предела на buffer size.

Зависимости

Чтобы включить это свойство, установите LimitedBufferRateRecovery к true.

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

Максимальный LDPC декодирование итераций, заданных как положительное целое число. Поскольку раннее завершение включено, декодируя остановки, если проверкам четности удовлетворяют. В этом случае меньше итераций происходит, чем максимум, заданный этим аргументом.

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

LDPC декодирование алгоритма, заданного как одно из этих значений:

  • 'Belief propagation' — Используйте эту опцию, чтобы задать алгоритм передающей веру или передачи сообщений.

  • 'Layered belief propagation' — Используйте эту опцию, чтобы задать многоуровневый передающий веру алгоритм, который подходит для квазициклических матриц проверки четности (PCMs).

  • 'Normalized min-sum' — Используйте эту опцию, чтобы задать многоуровневый алгоритм распространения веры нормированным приближением суммы min.

  • 'Offset min-sum' — Используйте эту опцию, чтобы задать многоуровневый алгоритм распространения веры приближением суммы min смещения.

Для получения дополнительной информации об этих алгоритмах см., что LDPC Декодирует Алгоритмы.

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

Масштабный коэффициент для нормированного декодирования суммы min, заданного как действительный скаляр в области значений (0, 1].

Зависимости

Чтобы включить это свойство, установите LDPCDecodingAlgorithm свойство к 'Normalized min-sum'.

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

Возместите для декодирования суммы min смещения, заданного как неотрицательный конечный действительный скаляр.

Зависимости

Чтобы включить это свойство, установите LDPCDecodingAlgorithm свойство к 'Offset min-sum'.

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

Использование

Описание

пример

trblk = decUL(softbits,mod,nLayers,rv) применяет цепь обработки декодера UL-SCH к входу softbits и возвращает декодируемые биты. mod задает схему модуляции. nLayers задает количество слоев передачи. rv задает версию сокращения передачи.

trblk = decUL(___,harqID) задает номер процесса HARQ harqID используемый с текущим транспортным блоком в дополнение к входным параметрам в предыдущем синтаксисе. Чтобы использовать этот синтаксис, установите MultipleHARQProcesses свойство к true. Когда свойство установлено в false, объект использует процесс HARQ номер 0.

Когда объект получает кодовые комбинации с различной версией сокращения для отдельного процесса HARQ, объект использует мягкое задержание буферного государства, чтобы включить мягкое объединение повторных передач. Когда вы включаете несколько процессов HARQ, объект обеспечивает независимые буферы для каждого процесса.

[trblk,blkerr] = decUL(___) возвращает флаг ошибки, с помощью входных параметров в любом из предыдущих синтаксисов. Значение 1 в blkerr указывает на ошибку во время транспортного блокового декодирования.

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

развернуть все

Аппроксимированное отношение логарифмической правдоподобности (LLR) мягкие биты, соответствуя UL-SCH-encoded транспортирует блок, заданный как действительный вектор-столбец.

Типы данных: single | 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. Для получения дополнительной информации смотрите Раздел TS 38.211 6.3.1.3.

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

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

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

Номер процесса HARQ, заданный как целое число от 0 до 15.

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

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

развернуть все

Декодируемые UL-SCH транспортируют блок, возвращенный как вектор столбца двоичных данных длины, заданной TransportBlockLength свойство.

Результат UL-SCH транспортирует блоковое декодирование, возвращенное как логический скаляр. Значение 1 указывает на ошибку во время транспортного блокового декодирования.

Типы данных: логический

Функции объекта

Чтобы использовать объектную функцию, задайте Системный объект как первый входной параметр. Например, чтобы выпустить системные ресурсы Системного объекта под названием obj, используйте этот синтаксис:

release(obj)

развернуть все

resetSoftBufferСбросьте мягкий буфер для процесса HARQ в UL-SCH или декодере DL-SCH
stepЗапустите алгоритм Системного объекта
cloneСоздайте объект дублированной системы
isLockedОпределите, используется ли Системный объект
releaseВысвободите средства и позвольте изменения в значениях свойств Системного объекта и введите характеристики
resetСбросьте внутренние состояния Системного объекта

Примеры

развернуть все

Сгенерируйте случайную последовательность двоичных значений, соответствующих одному транспортному блоку длины 5120.

trBlkLen = 5120;
trBlk = randi([0 1],trBlkLen,1,'int8');

Создайте и сконфигурируйте Системный объект энкодера UL-SCH с заданным целевым уровнем кода.

targetCodeRate = 567/1024;
encUL = nrULSCH;
encUL.TargetCodeRate = targetCodeRate;

Загрузите транспортный блок в энкодер UL-SCH.

setTransportBlock(encUL,trBlk);

Вызовите энкодер с 64-QAM схемой модуляции, 1 слоем передачи, продолжительность выхода 10 240 битов и версия 0 сокращения. Энкодер применяет UL-SCH, обрабатывающий цепь с транспортным блоком, загруженным в объект.

mod = '64QAM';
nLayers = 1;
outlen = 10240;
rv = 0;
codedTrBlock = encUL(mod,nLayers,outlen,rv);

Создайте и сконфигурируйте Системный объект декодера UL-SCH.

decUL = nrULSCHDecoder;
decUL.TargetCodeRate = targetCodeRate;
decUL.TransportBlockLength = trBlkLen;

Вызовите декодер UL-SCH на мягких битах, представляющих закодированный транспортный блок. Используйте параметры конфигурации, заданные в энкодере. Флаг ошибки в выходе указывает, что блоковое декодирование не имеет ошибок.

rxSoftBits = 1.0 - 2.0*double(codedTrBlock);
[decbits,blkerr] = decUL(rxSoftBits,mod,nLayers,rv)
decbits = 5120x1 int8 column vector

   1
   1
   0
   1
   1
   0
   0
   1
   1
   1
      ⋮

blkerr = logical
   0

Проверьте, что переданные и полученные биты сообщения идентичны.

isequal(decbits,trBlk)
ans = logical
   1

Алгоритмы

развернуть все

Ссылки

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

[2] 3GPP TS 38.211. “NR; Физические каналы и модуляция”. Проект Партнерства третьего поколения; Сеть радиодоступа Technical Specification Group.

[3] Gallager, Роберт Г. Имеющие малую плотность коды с проверкой четности, Кембридж, MA, нажатие MIT, 1963.

[4] Hocevar, D.E. "Уменьшаемая архитектура декодера сложности через многоуровневое декодирование кодов LDPC". В Семинаре IEEE по Системам Обработки сигналов, 2004. ГЛОТКИ 2004. doi: 10.1109/SIPS.2004.1363033

[5] Чен, Jinghu, Р.М. Таннер, К. Джонс и Ян Ли. "Улучшенные алгоритмы декодирования суммы min для неправильных кодов LDPC". В Продолжениях. Международный Симпозиум по Теории информации, 2005. ISIT 2005. doi: 10.1109/ISIT.2005.1523374

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

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

Объекты

Функции

Введенный в R2019a