LDPC Decoder

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

  • Библиотека:
  • Communications Toolbox/Обнаружение и исправление ошибок/Блокировка

  • LDPC Decoder block

Описание

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

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

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

  • 1, когда все кодовое слово декодировано

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

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

Порты

Вход

расширить все

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

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

Выход

расширить все

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

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

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

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

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

Зависимости

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

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

Окончательная проверка четности после декодирования входного кода LDPC, возвращенная как (N - K) вектор-на-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 - Блок выводит вектор-на-1 K, содержащий только информационную часть полученного вектора отношения логарифмической правдоподобности. K - длина незакодированного сообщения.

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

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

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

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

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

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

Зависимости

Чтобы включить этот параметр, установите параметр Decision type равным Hard decision.

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

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

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

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

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

Типы данных

Boolean | double

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

no

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

no

Алгоритмы

расширить все

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

Ссылки

[1] Gallager, Robert G. Коды проверки четности с низкой плотностью. Cambridge, MA: MIT Press, 1963.

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

Генерация кода C/C + +
Сгенерируйте код C и C++ с помощью Coder™ Simulink ®

.

См. также

Блоки

Объекты

Функции