exponenta event banner

Декодер LDPC

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

  • Библиотека:
  • Панель инструментов связи/Обнаружение и исправление ошибок/Блок

  • LDPC Decoder block

Описание

Блок декодера LDPC использует алгоритм распространения верования для декодирования двоичного кода LDPC, который вводится в блок как выходной сигнал мягкого решения (логарифмическое отношение правдоподобия принятых битов) из демодуляции. Блок декодирует базовые двоичные LDPC-коды, где не предполагается никаких шаблонов в матрице проверки на четность. Дополнительные сведения см. в разделе Декодирование распространения убеждений.

Входной и выходной сигналы являются дискретно-временными сигналами. Отношение времени выходной выборки к времени входной выборки составляет:

  • N/K, когда декодируется только информационная часть кодового слова

  • 1, когда декодируется все кодовое слово

N - длина принятого сигнала и должна находиться в диапазоне (0, 231). K - длина некодированного сообщения и должна быть меньше N.

Этот значок показывает все порты, включая дополнительные порты, для блока декодера LDPC.

Порты

Вход

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

Логарифмические отношения правдоподобия, заданные как вектор N-by-1 столбца, содержащий выходной сигнал мягкого решения демодуляции. N - количество битов в кодовом слове LDPC перед модуляцией. Каждый элемент является логарифмическим отношением правдоподобия для принятого бита, и значение с большей вероятностью будет 0 если логарифмическое отношение правдоподобия положительное. Первые K элементов соответствуют информационной части входного сообщения.

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

Продукция

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

Декодированные данные, возвращаемые в виде вектора столбца. Параметр Тип решения определяет, выводит ли блок жесткие решения или мягкие решения (логарифмические отношения правдоподобия).

  • Если параметр Output format имеет значение Information part, выходной сигнал включает в себя только информационную часть принятого кодового слова.

  • Если параметр Output format имеет значение Whole codeword, выходной сигнал включает в себя весь вектор логарифмического отношения правдоподобия.

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

Число выполненных итераций декодирования, возвращаемых как положительное целое число.

Зависимости

Чтобы включить этот порт, выберите параметр Output number of iterations executed.

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

Окончательные проверки четности после декодирования входного LDPC-кода, возвращаемого в виде вектора столбца (N-K) -by-1. N - количество битов в кодовом слове LDPC перед модуляцией. K - длина некодированного сообщения .

Зависимости

Для активизации этого порта выберите параметр Output final parity checks.

Параметры

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

Матрица проверки четности, заданная как разреженная (N - K) -by-N двоично-значная матрица. N - длина принятого сигнала и должна находиться в диапазоне (0, 231). K - длина некодированного сообщения и должна быть меньше N. Последние (N - K) столбцы в матрице проверки на четность должны быть обратимой матрицей в поле Галуа порядка 2 ,gf(2).

Можно также указать матрицу проверки четности как матрицу индекса без разбора двух столбцов. I, которая определяет индексы строк и столбцов 1s в матрице контроля четности так, что sparse(I(:,1),I(:,2),1).

Этот параметр принимает числовые типы данных. При установке для этого параметра разреженной двоичной матрицы этот параметр также принимает Boolean тип данных.

Значение по умолчанию использует dvbs2ldpc для конфигурирования разреженной матрицы проверки четности для кодирования LDPC с половинной скоростью, как указано в стандарте DVB-S.2.

Пример: dvbs2ldpc(R,'indices') конфигурирует матрицу индекса для стандарта DVB-S.2, где R - кодовая скорость, и 'indices' задает формат вывода dvbs2ldpc как матрица двойной точности с двумя столбцами, которая определяет индексы строк и столбцов 1s в матрице контроля четности.

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

Формат выходного значения, указанный как одно из следующих значений:

  • Information part Блок выводит вектор K-by-1 столбца, содержащий только информационную часть принятого вектора логарифмического отношения правдоподобия. K - длина некодированного сообщения.

  • Whole codeword - Блок выводит вектор N-by-1 столбца, содержащий весь вектор логарифмического отношения правдоподобия. N - длина принятого сигнала.

    N и K должны совпадать с размером матрицы контроля четности (N-K) -by-K.

Метод принятия решения, используемый для декодирования, указанный как одно из следующих значений:

  • Hard decision - Блок выводит декодированные данные типа данных double или boolean. Укажите этот тип данных с помощью параметра Output data type.

  • Soft decision - Блок выводит логарифмические отношения правдоподобия типа данных double.

Тип данных выходного значения, указанный как double или boolean.

Зависимости

Чтобы включить этот параметр, установите для параметра Тип решения значение Hard decision.

Максимальное число итераций декодирования, указанное как положительное целое число.

Выберите этот параметр для завершения декодирования после выполнения всех проверок четности. Если не все проверки четности выполнены, декодирование завершается после числа итераций, заданного параметром Number of iterations.

Выберите этот параметр, чтобы включить выходной порт Iter.

Выберите этот параметр для активизации выходного порта ParChk.

Примеры модели

Характеристики блока

Типы данных

Boolean | double

Многомерные сигналы

no

Сигналы переменного размера

no

Алгоритмы

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

Этот блок выполняет LDPC-декодирование с использованием алгоритма распространения убеждений, также известного как алгоритм передачи сообщений.

Ссылки

[1] Галлагер, Роберт Г. Коды проверки четности с низкой плотностью. Кембридж, Массачусетс: MIT Press, 1963.

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

Создание кода C/C + +
Создайте код C и C++ с помощью Simulink ® Coder™

.

См. также

Блоки

Объекты

Функции