Декодируйте код LDPC с помощью разделенного на уровни распространения веры с суммой min или нормированным алгоритмом аппроксимации суммы min
Wireless HDL Toolbox / Выявление ошибок и Коррекция
Блок NR LPDC Decoder реализует декодер имеющей малую плотность проверки четности (LDPC) с благоприятными для оборудования управляющими сигналами. Блок принимает проколотые значения отношения логарифмической правдоподобности (LLR), поток управляющих сигналов, основного номера графика и подъема размеров. Блок выходные параметры декодировал биты, поток управляющих сигналов, снимая размеры и сигнал, который указывает, когда блок готов принять новые входные параметры.
Этот блок предоставляет возможность реализовывать разделенное на уровни распространение веры или с нормированным алгоритмом аппроксимации суммы min или с алгоритмом аппроксимации суммы min. Эта реализация соответствия та из функции nrLDPCDecode
(5G Toolbox). Можно использовать этот блок для кодирования канала нисходящего канала, и восходящий канал совместно использовал каналы и канал разбивки на страницы согласно TS 38.212 [1] стандарта нового радио (NR) 5G.
Блок поддерживает скалярные и векторные входные параметры. Блок обеспечивает архитектуру, подходящую для аппаратного развертывания и генерации HDL-кода. Для получения дополнительной информации см. Алгоритмы.
data
— Введите значения LLRВведите значения отношения логарифмической правдоподобности (LLR) в виде скаляра или вектор-столбца размера 64.
Тип данных этого входа должен быть типом данных с фиксированной точкой со знаком с размером слова от 4 до 16 битов. Для получения дополнительной информации о том, как задать векторные входные данные, смотрите Вход Вектора Определения.
Типы данных: int8
| int16
| fixed point
ctrl
— Управляющие сигналы сопроводительный демонстрационный потокsamplecontrol
шинаУправляющие сигналы, сопровождающие демонстрационный поток в виде samplecontrol
шина. Шина включает start
конец
, и valid
управляющие сигналы, которые указывают на контуры системы координат и валидность выборок.
start
— Указывает на запуск входного кадра
end
— Указывает на конец входного кадра
valid
— Указывает, что данные по порту входа data допустимы
Для большего количества детали смотрите Демонстрационную Шину управления.
Типы данных: bus
bgn
— Основной номер графикаОсновной номер графика в виде скаляра. Когда этим значением является 0
, блок применяет bgn 1. Когда этим значением является 1
, блок применяет bgn 2. Для получения дополнительной информации о bgn 1 и bgn 2, смотрите раздел 5.3.2 TS 38.212 [1].
Типы данных: Boolean
liftingSize
— Введите подъем размераВведите подъем размера в виде скаляра.
Для недопустимого значения liftingSize блок отбрасывает текущую систему координат и ожидает новой системы координат.
Для получения дополнительной информации о поддерживаемых поднимающихся значениях размера, смотрите раздел 5.3.2 TS 38.212 [1].
Типы данных: uint16
iter
— Количество итерацийКоличество итераций в виде целочисленного скаляра в диапазоне от 1 до 63.
Если вы задаете iter как значение, больше, чем 63, блок автоматически устанавливает значение iter к 8
и выполняет операцию декодирования.
Чтобы включить этот порт, установите параметр Source for number of iterations на Input port
.
Типы данных: uint8
data
— Декодируемые биты выходных данныхДекодируемые биты выходных данных, возвращенные как скаляр или вектор-столбец размера 64.
Блок выходные биты данных в аналогичном формате как значения входа LLR. Извлеките эти биты выходных данных в аналогичном формате для последующей обработки.
Типы данных: Boolean
ctrl
— Управляющие сигналы сопроводительный демонстрационный потокsamplecontrol
шинаУправляющие сигналы, сопровождающие демонстрационный поток, возвращенный как samplecontrol
шина. Шина включает start
конец
, и valid
управляющие сигналы, которые указывают на контуры системы координат и валидность выборок.
start
— Указывает на запуск выходной системы координат
end
— Указывает на конец выходной системы координат
valid
— Указывает, что данные по порту выхода data допустимы
Для большего количества детали смотрите Демонстрационную Шину управления.
Типы данных: bus
liftingSize
— Выведите подъем размераВыведите подъем размера, возвращенного как скаляр.
Типы данных: uint16
nextFrame
— Готовый к новым входным параметрамБлок устанавливает этот сигнал на 1
когда блок готов принять запуск следующей системы координат. Если блок получает сигнал входа start, в то время как nextFrame является 0
, блок отбрасывает происходящую систему координат и начинает обрабатывать новые данные.
Для получения дополнительной информации смотрите Используя nextFrame Выходной сигнал.
Типы данных: Boolean
Algorithm
— Тип алгоритмаMin-sum
(значение по умолчанию) | Normalized min-sum
Выберите тип алгоритма. Для получения дополнительной информации см. Алгоритм (5G Toolbox).
Scaling factor
— Масштабный коэффициент
(значение по умолчанию) | значения в диапазоне от 0,5 до 1, постепенно увеличенный 0,0625Задайте масштабный коэффициент.
Чтобы включить этот параметр, установите параметр Algorithm на Normalized min-sum
.
Source for number of iterations
— Исходный выбор для количества итерацийProperty
(значение по умолчанию) | Input port
Выберите источник для определения количества итераций.
Можно определить номер итераций с входным портом или путем определения значения для параметра.
Выберите Property
включить параметр Source for number of iterations.
Выберите Input port
включить порт iter.
Number of iterations
— Количество итераций
(значение по умолчанию) | целое число в диапазоне от 1 до 63Задайте количество итераций.
Чтобы включить этот параметр, установите параметр Source for number of iterations на Property
.
Векторные входные данные для блока должны быть заданы как вектор-столбец размера 64. Необходимо обеспечить входные параметры как целое число ceil
(liftingSize/64) такты.
Общее количество тактов, которых блок требует, чтобы принять кадр значений LLR для декодирования, равно n x ceil
(liftingSize/64), где n является количеством столбцов в матрице проверки четности. n зависит от основного номера графика, заданного входным портом bgn. Когда значением порта bgn является 0
, блок устанавливает n на 66. Когда значением порта bgn является 1
, блок устанавливает n на 50.
Эти разделы показывают, как блок принимает значения входа LLR на основе значений порта liftingSize и bgn.
Для входного значения liftingSize 2
, блок принимает первые два бита входа LLR за каждый такт и игнорирует остающиеся 62 элемента за тот такт. Общее количество тактов, которых блок требует, чтобы принять кадр значений LLR, равняется 66.
Элементы Ln представляют биты LLR, и эти X элементов представляют проигнорированные значения.
Введите значения LLR | Количество тактов | |||||
---|---|---|---|---|---|---|
1 такт | 2 такта | 3 такта | 4 такта | ... | 66 тактов | |
data[0] | L0 | L2 | L4 | L6 | ... | L130 |
data[1] | L1 | L3 | L5 | L7 | ... | L131 |
... | X | X | X | X | X | X |
data[63] | X | X | X | X | X | X |
Для входного значения liftingSize 104
, блок принимает 104 значения LLR за два такта: 64 LLRs за первый такт и 40 LLRs за второй такт. Блок игнорирует остающиеся 24 элемента за второй такт. Общее количество тактов, которых блок требует, чтобы получить значения входа LLR, равняется 132.
Элементы Ln представляют биты LLR, и эти X элементов представляют проигнорированные значения.
Введите значения LLR | Количество тактов | |||||||
---|---|---|---|---|---|---|---|---|
1 такт | 2 такта | 3 такта | 4 такта | ... | ... | 131 такт | 132 такта | |
data[0] | L0 | L64 | L104 | L168 | ... | ... | L6760 | L6824 |
data[1] | L1 | L65 | L105 | L169 | ... | ... | L6761 | L6825 |
... | ... | ... | ... | ... | ... | ... | ||
... | ... | L103 | ... | L207 | ... | ... | ... | L6863 |
... | ... | X | ... | X | ... | ... | ... | X |
data[63] | L63 | X | L167 | X | ... | ... | L6823 | X |
Этот рисунок показывает блок-схему архитектуры блока NR LDPC Decoder. Блок Functional Processing Unit вычисляет сообщения узла переменной (VN) и сообщения узла проверки (CN) на основе многоуровневого распространения веры или с нормированным алгоритмом аппроксимации суммы min или с алгоритмом аппроксимации суммы min. Для получения дополнительной информации см. Алгоритм (5G Toolbox).
Реализация блока совпадает с эффективностью функции nrLDPCDecode
(5G Toolbox). Этот график показывает эффективность блока для 4-битного входа LLR, когда параметр Algorithm устанавливается на Min-sum
.
Этот график показывает эффективность блока для 4-битного входа LLR, когда параметр Algorithm устанавливается на Normalized min-sum
.
Задержка блока варьируется на основе значений bgn и входных портов liftingSize и конкретного количества итераций. Поскольку задержка варьируется, используйте управляющий сигнал nextFrame определить, когда блок готов к новому входному кадру.
Задержка блока равна r x (t
+ (m x 8) x ceil
(liftingSize/64) + t + m x (7 – ceil
(liftingSize/64))) + (n x liftingSize) + 18. В этом вычислении r является количеством итераций, n является количеством столбцов в матрице проверки четности, t является дважды общим количеством не — 1 элемент в матрице проверки четности, и m является количеством строк в матрице проверки четности.
Этот рисунок показывает демонстрационный выход блока NR LDPC Decoder с задержкой. В этом случае, bgn, значения входного порта liftingSize установлены к 0
и 128
, соответственно и параметр Number of iterations устанавливается на 8
. Задержка блока является 31 362 тактами.
Для векторных входных параметров задержка блока равна r x (t
+ (m x 9) + n x (ceil
(liftingSize/64))) + 18. В этом вычислении r является количеством итераций, n является количеством столбцов в матрице проверки четности, t является дважды общим количеством не — 1 элемент в матрице проверки четности, и m является количеством строк в матрице проверки четности.
Этот рисунок показывает демонстрационный выход блока NR LDPC Decoder с задержкой. В этом случае, bgn, значения входного порта liftingSize установлены к 0
и 384
, соответственно и параметр Number of iterations устанавливается на 8
. Задержка блока является 8 782 тактами.
Эффективность синтезируемого HDL-кода меняется в зависимости от вашей цели и опций синтеза. Это также варьируется на основе типа алгоритма и размера слова значений входа LLR.
Эта таблица показывает результаты синтеза данных ресурсов и данных о производительности блока, когда параметр Algorithm устанавливается на Min-sum
, параметр Number of iterations устанавливается на 8
, и значения входа LLR имеют тип данных fixdt(1,4,0)
. Сгенерированный HDL предназначен на оценочную плату Xilinx® Zynq®Ultrascale +™ RFSoC.
Входные данные | Срез LUTs | Регистры среза | Блокируйте RAM | Максимальная частота в МГц |
---|---|---|---|---|
Скаляр | 53095 | 64305 | 115 | 291 |
Вектор | 69335 | 75296 | 147.5 | 293 |
[1] 3GPP TS 38.212. “NR; мультиплексирование и кодирование канала”. Проект партнерства третьего поколения; сеть радиодоступа Technical Specification Group.
[2] Gallager, R. “Имеющие малую плотность Коды с проверкой четности”. Транзакции IEEE на Теории информации 8, № 1 (январь 1962): 21–28. www.doi.org/10.1109/TIT.1962.1057683.
Этот блок поддерживает генерацию кода C/C++ для акселератора Simulink® и быстрых режимов Accelerator и для генерации компонента DPI.
HDL Coder™ обеспечивает дополнительные параметры конфигурации, которые влияют на реализацию HDL и синтезируемую логику.
Этот блок имеет одну, архитектуру HDL по умолчанию.
ConstrainedOutputPipeline | Количество регистров, чтобы поместить при выходных параметрах путем перемещения существующих задержек в рамках проекта. Распределенная конвейеризация не перераспределяет эти регистры. |
InputPipeline | Количество входных настроек канала связи, чтобы вставить в сгенерированный код. Распределенная конвейеризация и ограниченная выходная конвейеризация могут переместить эти регистры. |
OutputPipeline | Количество выходных настроек канала связи, чтобы вставить в сгенерированный код. Распределенная конвейеризация и ограниченная выходная конвейеризация могут переместить эти регистры. |
Вы не можете сгенерировать HDL для этого блока в Resettable Synchronous Subsystem (HDL Coder).
Вы щелкнули по ссылке, которая соответствует команде MATLAB:
Выполните эту команду, введя её в командном окне MATLAB.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.