Выполните полярное декодирование согласно 5G стандарт NR
Wireless HDL Toolbox / Выявление ошибок и Коррекция
Блок NR Polar Decoder реализует передающий потоком полярный декодер с благоприятными для оборудования управляющими сигналами. Можно сконфигурировать блок, чтобы использовать нисходящий канал или схемы кодирования восходящего канала, как задано 5G стандарт NR. 5G стандарт NR использует полярные коды для кодирования канала DCI, UCI и каналов передачи BCH.
Этот блок реализует помогший CRC декодер списка последовательных отмен. Эта реализация совпадает с эффективностью nrPolarDecode
(5G Toolbox) функция. Можно выбрать длину списка 2, 4, или 8. Увеличение длины списка увеличивает эффективность исправления ошибок, но использует больше аппаратных ресурсов и увеличивает задержку декодирования. Можно улучшать производительность декодирования для сообщений DCI при помощи дополнительного порта RNTI, чтобы задать ожидаемое значение RNTI.
Этот блок также выполняет декодирование CRC сообщения, эквивалентного nrCRCDecode
(5G Toolbox) функция. Блок обнаруживает сообщения DCI от значений K и E, и автоматически предварительно ожидает 1 с к сообщению, эквивалентному padCRC
входной параметр nrPolarDecode
(5G Toolbox) функция.
Этот блок не поддерживает помогшие четностью коды.
Поскольку задержка полярной операции декодирования может варьироваться, блок обеспечивает выходной сигнал, nextFrame, который указывает, когда блок готов принять новые входные параметры. Для получения дополнительной информации смотрите раздел Latency этой страницы.
data
— Введите выборкуВведите выборку в виде скалярного отношения логарифмической правдоподобности (LLR). Блок поддерживает встроенные типы и подписанные значения фиксированной точки с wordlength 4 - 16 битов.
double
и single
типы данных поддерживаются для симуляции, но не для генерации HDL-кода.
Типы данных: fixed point
| int8
| int16
| double
| single
ctrl
— Управляющие сигналы сопроводительный демонстрационный потокsamplecontrol
шинаУправляющие сигналы, сопровождающие демонстрационный поток в виде samplecontrol
шина. Шина включает start
конец
, и valid
управляющие сигналы, которые указывают на контуры системы координат и валидность выборок.
start
— Указывает на запуск входного кадра
end
— Указывает на конец входного кадра
valid
— Указывает, что данные по порту входа data допустимы
Для большего количества детали смотрите Демонстрационную Шину управления.
Типы данных: bus
K
— Длина блока информации в битахДлина блока информации в битах в виде положительного целого числа. Для нисходящих сообщений K должен быть в области значений 36 - 164. Для восходящих сообщений K должен быть в области значений 31 - 1 023.
Блок не поддерживает значения K от 18
к 25
потому что 5G стандарт NR требует помогших четностью кодов для тех размеров.
Чтобы включить этот порт, установите параметр Configuration source на Input port
.
Типы данных: fixdt(0,10,0)
E
— Соответствующая уровню продолжительность выхода в битахСоответствующая уровню продолжительность выхода в битах в виде скалярного положительного целого числа. Задайте значение для E, который больше K и меньше чем или равный 8 192.
Чтобы включить этот порт, установите параметр Configuration source на Input port
.
Типы данных: fixdt(0,14,0)
RNTI
— Целевой RNTIПредназначайтесь для RNTI в виде 16-битного беззнакового целого. Этот повышения стоимости, декодирующие точность для сообщений DCI. Например, при декодировании сообщений SIB1 DCI, включите этот порт и поставьте цель RNTI к 65 535. Для декодирования MIB можно отключить этот порт или поставить цель RNTI к 0.
Чтобы включить этот порт, установите Link direction на Downlink
и выберите параметр Enable target RNTI port.
Типы данных: uint16
data
— Декодируемый бит данныхДекодируемый бит данных, возвращенный как скаляр. Длина выходного сигнала является битами A, где A = K – CRCLen
. Для нисходящих сообщений CRCLen равняется 24. Для восходящих сообщений CRCLen равняется 11, как задано 5G стандарт NR.
Типы данных: fixdt(0,1,0)
| Boolean
| double
| single
Поддержка комплексного числа: Да
ctrl
— Управляющие сигналы сопроводительный демонстрационный потокsamplecontrol
шинаУправляющие сигналы, сопровождающие демонстрационный поток, возвращенный как samplecontrol
шина. Шина включает start
конец
, и valid
управляющие сигналы, которые указывают на контуры системы координат и валидность выборок.
start
— Указывает на запуск выходной системы координат
end
— Указывает на конец выходной системы координат
valid
— Указывает, что данные по порту выхода data допустимы
Для большего количества детали смотрите Демонстрационную Шину управления.
Типы данных: bus
err
— Результат CRCРезультат CRC, возвращенный как скаляр. Если вы очищаете параметр Full checksum mismatch, это значение является булевской переменной. Когда вы выбираете параметр Full checksum mismatch, этим значением является ufix24
скаляр для нисходящих сообщений и ufix11
скаляр для восходящих сообщений.
Если вы включаете порт RNTI, блок сравнивает внутреннюю контрольную сумму CRC с целевым значением RNTI. В противном случае блок сравнивает контрольную сумму CRC со значением 0.
Типы данных: Boolean
| ufix11
| ufix24
nextFrame
— Готовый к новым входным параметрамБлок устанавливает этот сигнал на 1
когда блок готов принять запуск следующей системы координат. Если блок получает сигнал входа start, в то время как nextFrame является 0
, блок отбрасывает происходящую систему координат и начинает обрабатывать новые данные.
Для получения дополнительной информации смотрите Используя nextFrame Выходной сигнал.
Типы данных: Boolean
Link direction
— Направление 5G ссылка NRDownlink
(значение по умолчанию) | Uplink
Направление 5G ссылка NR в виде Downlink
или Uplink
. Когда вы выбираете Downlink
, блок выполняет устранение чередования, как задано в 5G стандарт NR. Когда вы выбираете Uplink
, блок не использует логику устранения чередования.
List length
— Количество декодирования путей
(значение по умолчанию) | 4
| 8
Этот параметр является максимальным количеством параллельных путей, обеспеченных в дереве декодирования. Увеличение длины списка увеличивает эффективность исправления ошибок, но использует больше аппаратных ресурсов и увеличивает задержку декодирования. Когда вы используете длины списка 4
и 8
, задержка может варьироваться в зависимости от ОСШ входного сигнала и не является постоянной для данных значений K и E. Используйте выходной сигнал nextFrame , чтобы определить, когда блок будет доступен для нового сообщения.
Configuration source
— Источник для K и EProperty
(значение по умолчанию) | Input port
Выберите Input port
включить порты K и E. Выберите Property
использовать параметры Rate-matched length (E) и Message length (K).
Message length (K)
— Длина блока информации в битах
(значение по умолчанию) | положительное целое числоДля нисходящих сообщений K должен быть в области значений 36 - 164. Для восходящих сообщений K должен быть в области значений 31 - 1 023.
Блок не поддерживает значения K от 18
к 25
потому что 5G стандарт NR требует помогших четностью кодов для тех размеров.
Чтобы включить этот параметр, установите параметр Configuration source на Property
.
Rate-matched length (E)
— Соответствующая уровню продолжительность выхода в битах
(значение по умолчанию) | положительное целое числоЗадайте значение для E, который больше K и меньше чем или равный 8 192.
Чтобы включить этот параметр, установите параметр Configuration source на Property
.
Full checksum mismatch
— Возвратите контрольную сумму в итоговый этап декодированияoff
(значение по умолчанию) | on
Когда вы очищаете этот параметр, блок возвращает булев скаляр на порте err, который указывает, был ли CRC успешен. Когда вы выбираете этот параметр, блок возвращает полную контрольную сумму CRC на порте err. Если ваш проект декодирует сообщения DCI и использует остаток RNTI, выберите этот параметр.
Если вы включаете порт RNTI, блок сравнивает внутреннюю контрольную сумму CRC с целевым значением RNTI. В противном случае блок сравнивает контрольную сумму CRC со значением 0.
nrPolarDecode
функция (5G Toolbox) возвращает декодируемое сообщение, которое включает биты CRC. Этот блок возвращает декодируемое сообщение без битов CRC и возвращает состояние CRC отдельно на порте err. Это поведение эквивалентно вызову nrCRCDecode
(5G Toolbox) функция после использования nrPolarDecode
функция. Не перевычисление битов CRC сохраняет аппаратную задержку и ресурсы.
Enable target RNTI port
— Дополнительный порт, чтобы задать целевое значение RNTIoff
(значение по умолчанию) | on
Выберите этот параметр, чтобы включить входной порт RNTI. Обеспечение целевого RNTI повышений стоимости, декодирующих точность для сообщений DCI. Например, при декодировании сообщений SIB1 DCI, включите этот порт и поставьте цель RNTI к 65 535. Для декодирования MIB можно отключить этот порт или поставить цель RNTI к 0.
Включение этого порта также изменяется, как блок вычисляет значение выходного порта err. Если вы включаете порт RNTI, блок сравнивает внутреннюю контрольную сумму CRC с целевым значением RNTI. В противном случае блок сравнивает контрольную сумму CRC со значением 0.
Чтобы включить этот параметр, установите параметр Link direction на Downlink
.
Этот блок реализует помогший CRC декодер списка последовательных отмен. Это может использовать длину списка 2, 4, или 8, как сконфигурировано параметром List length. Декодер выполняет итерации по всему LLRs в дереве, чтобы достигнуть решения некоторое время и затем использует то решение декодировать следующий бит. Шаг устранения чередования включен только, когда вы устанавливаете параметр Link direction на Downlink
.
Эта схема показывает архитектуру полярного декодера.
Блок использует этап Настройки, когда K и значения входного порта E изменяются. Блок вычисляет местоположения информационных битов и передает их этапу Решения. Поскольку шаблоны отображения вычисляются по мере необходимости, а не хранятся в оборудовании, блок поддерживает весь K и значения E в поддерживаемой области значений. Этап Настройки также вычисляет шаблон чередования, когда вы устанавливаете параметр Link direction на Downlink
.
Когда вы устанавливаете параметр Configuration source на Property
, K и значения E являются константами, таким образом, декодер не реализует этап Настройки. В этом случае блок включает статические интерполяционные таблицы, которые содержат предварительно вычисленную настройку.
Чтобы минимизировать расчеты для каждого декодируют, Древовидная Память хранит вероятность каждого узла, являющегося тем или нулем. Каждая итерация обновляет только LLRs, которые изменились. Базовый этап декодирования использует уравнения обновления LLR от [3].
Этап Решения проверяет значение LLR по ожидаемым местоположениям информационных битов и замороженных битов и возвращает трудное решение в Древовидную Память. Если бит, как ожидают, будет заморожен, этап Решения возвращает трудное решение о нуле и обновляет вероятности связанных путей. Память Пути восстанавливает наиболее вероятные пути от результатов трудного решения и передает пути и баллы к следующему этапу.
Древовидная Память Памяти и Пути содержит до путей List length. Если все замороженные биты на пути являются нулями (как ожидалось), то блок отбрасывает другие параллельные пути. Это результаты оптимизации в переменной задержке в операции декодирования для длин списка, больше, чем два. Для сигналов с высоким уровнем шума декодер должен увеличить число параллельных путей и циклов для декодирования. Для малошумящих сигналов декодер может использовать только два параллельных пути и уменьшать задержку декодирования.
Этап Выбора Пути вычисляет CRC для всех путей и затем выбирает путь, который передает CRC. Когда вы используете входной порт RNTI, блок сравнивает внутреннюю контрольную сумму CRC с целевым значением RNTI. В противном случае блок сравнивает контрольную сумму CRC со значением 0. Если все CRCs перестали работать, блок возвращает путь, который имеет более высокий счет.
Эта реализация совпадает с эффективностью функции 5G Toolbox™ nrPolarDecode
(5G Toolbox) с той же длиной списка. Поскольку блок использует фиксированную точку внутренние типы, любыми различиями является результат квантования.
Этот график показывает эффективность частоты появления ошибочных блоков с тремя возможными длинами списка. Вход является 6-битными значениями LLR.
Таблица показывает задержки в качестве примера блока NR Polar Decoder для каждого N при декодировании для восходящего канала и нисходящих каналов с длиной списка два. N является закодированной длиной сообщения степени двойки, определенной из значений K и E.
N | Восходящая задержка | Нисходящая задержка |
---|---|---|
32 | 349 | Не применяется |
64 | 576 | 677 |
128 | 1034 | 1135 |
256 | 1961 | 2062 |
512 | 3896 | 3996 |
1024 | 8202 | Не применяется |
Точная задержка варьируется на основе значений K и E. Задержка более длинна для систем координат, где K и изменение значений входного порта E и блок должны вычислить новую настройку.
Увеличение длины списка увеличивает задержку. Перечислите длины, больше, чем два, не имеют фиксированной задержки для данного K и значений E. Чтобы обеспечить минимальную задержку, блок прослеживает больше чем 2 пути только, когда замороженные биты не декодируются, как обнуляет. Эта оптимизация означает, что задержка может увеличиться с ОСШ входного сигнала. Например, для длины списка 4 и N =512, лучшая задержка случая является 4 108 циклами, и худшая задержка случая является 4 985 циклами.
Поскольку задержка варьируется, используйте управляющий сигнал выхода nextFrame определить, когда блок готов к новому входному кадру.
Эта форма волны показывает, как задержка меняется в зависимости от K и значений входного порта E для длины списка два. Когда значения порта входа K и E равняются 132 и 256, блок имеет задержку 2 272 циклов от сигнала входа start до выхода nextFrame. Когда значения порта K и E превращаются на 54 и 124, изменения задержки в 1 234 циклах.
Эта форма волны показывает, как задержка может меняться в зависимости от уровня шума входного сигнала при использовании длины списка 4. Блок имеет K и значения параметров E 132 и 256 и набор параметров Link direction к Uplink
. Первое сообщение имеет задержку 2 533 циклов. Эти данные о сообщении сгенерированы с низким шумом и имеют немного битовых ошибок. В этом случае декодер может выйти из строя к двум путям и привести к результату в меньшем количестве циклов, декодируя более шумный сигнал. Второе сообщение сгенерировано с высоким уровнем шума, и задержка декодирования увеличивается до 3 174 циклов. Когда входной сигнал имеет больше битовых ошибок, декодер должен проследить больше путей, чтобы определить правильные биты.
Эта таблица показывает результаты синтеза данных ресурсов и данных о производительности блока, когда это сконфигурировано с K и E как входные порты, набор параметров Link direction к Downlink
, и 6-битный вход LLRs. Сгенерированный HDL предназначен на оценочную плату Xilinx® Zynq®-7000 ZC706. Проект достигает тактовой частоты 250 МГц.
Ресурс | Перечислите длину 2 | Перечислите длину 4 | Перечислите длину 8 |
---|---|---|---|
Срез LUTs | 3048 | 4725 | 9963 |
Регистры среза | 2509 | 3804 | 6471 |
DSP48 | 0 | 0 | 0 |
Блокируйте RAM | 4.5 | 5.5 | 6.0 |
Блок использует меньше ресурсов, когда K и E заданы параметрами. Когда вы устанавливаете параметр Link direction на Uplink
, блок использует больше памяти, чтобы вместить большие размеры сообщения.
[1] 3GPP TS 38.211. "NR; Физические каналы и модуляция". Проект Партнерства третьего поколения; Сеть радиодоступа Technical Specification Group. URL: https://www.3gpp.org.
[2] Arikan, Erdal. "Поляризация канала: Метод для Построения Достигающих Способности Кодов для Симметричных Каналов без памяти Двоичного входа". Транзакции IEEE на Теории информации 55, № 7 (июль 2009): 3051–73. https://doi.org/10.1109/TIT.2009.2021379.
[3] Balatsoukas-Stimming, Алексиос, Мани Бэстэни Пэризи и Андреас Бург. "Основанное на LLR Последовательное Декодирование Списка Отмен Полярных Кодов". Транзакции IEEE на Обработке сигналов 63, № 19 (октябрь 2015): 5165–79. https://doi.org/10.1109/TSP.2015.2439211.
Этот блок поддерживает генерацию кода C/C++ для акселератора Simulink® и быстрых режимов Accelerator и для генерации компонента DPI.
HDL Coder™ обеспечивает дополнительные параметры конфигурации, которые влияют на реализацию HDL и синтезируемую логику.
Этот блок имеет одну, архитектуру HDL по умолчанию.
ConstrainedOutputPipeline | Количество регистров, чтобы поместить при выходных параметрах путем перемещения существующих задержек в рамках проекта. Распределенная конвейеризация не перераспределяет эти регистры. |
InputPipeline | Количество входных настроек канала связи, чтобы вставить в сгенерированный код. Распределенная конвейеризация и ограниченная выходная конвейеризация могут переместить эти регистры. |
OutputPipeline | Количество выходных настроек канала связи, чтобы вставить в сгенерированный код. Распределенная конвейеризация и ограниченная выходная конвейеризация могут переместить эти регистры. |
Вы не можете сгенерировать HDL для этого блока в Resettable Synchronous Subsystem (HDL Coder) или Enabled Synchronous Subsystem (HDL Coder).
NR Polar Encoder | nrPolarDecode
(5G Toolbox)
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.