2015-03-20 4 views
1

Мое задание - реализовать алгоритм Loopy Belief Propagation для кода проверки четности с низкой плотностью. Этот код использует матрицу проверки на четность H, которая довольно разрежена (например, бинарная матрица размером 750 на 1000, в среднем около 3 "единиц) на каждый столбец. Код для создания матрицы проверки на четность: taken from hereПоведение LDPC по плотности матрицы проверки на четность увеличивается

В любом случае одной из подзадач является проверка надежности кода LDPC при увеличении плотности матрицы H. Таким образом, я фиксирую канал на 0,5 емкости, фиксирую свою скорость кода на 0,35 и начинаю увеличивать плотность матрицы. Поскольку среднее число «единиц» в столбце идет от 3 до 7 с шагом 1, происходит катастрофа. С 3 или 4 код отлично справляется. С более высокой плотностью он начинает терпеть неудачу: он не всегда может сходиться, он часто сходится к неправильному кодовому слову и порождает ошибки.

Итак, мой вопрос: какой тип поведения ожидается от кода LDPC, поскольку его разреженная матрица контроля четности становится более плотной? Бонусный вопрос для опытных читателей разума: в моем случае (по мере ухудшения характеристик кода) это более вероятно, потому что у Loopy Belief Propagation algo нет гарантии конвергенции или из-за того, что я ошибся в его реализации?

ответ

0

После разговора с моим ТЕМ и другими студентами я понимаю следующее:

  1. Согласно теореме Шеннона, надежность коды должна возрастать с плотностью матрицы контроля по четности. Это просто потому, что сделано больше проверок.
  2. Однако, поскольку мы используем Loopy Belief Propagation, он много борется, когда на графике все больше и больше ребер, образующих все больше и больше циклов. Следовательно, фактическая производительность ухудшается.
  3. Независимо от того, совершил ли я ошибку в своем коде, основанный исключительно на этом поведении, установить невозможно. Однако, поскольку мой код действительно работает для разреженных матриц, вполне вероятно, что реализация в порядке.