Эффективность помехоустойчивого кода возрастает при увеличении его длины, т.к. в этом случае уменьшается вероятность ошибочного декодирования.
На
первый взгляд помехоустойчивое кодирование реализуется достаточно просто. В
память кодера записываются разрешенные комбинации выбранного кода и правило
сопоставления одному из сообщений одной
из комбинаций кода. Это правило известно в декодере. Там принятая комбинация
сравнивается со всеми комбинациями списка и отыскивается та, которая ближе к
принятой. Однако даже при небольших
такой способ
весьма сложен.
В
качестве примера рассмотрим код при скорости кода
. Тогда из
следует,
что
. Таким образом, кодовая таблица
должна содержать 1015 кодовых комбинаций или
кодовых
символов. Изготовление такого запоминающего устройства в настоящее время
нереально. С другой стороны, при декодировании необходимо выполнить
операций сравнения. При работе в
реальном времени это необходимо сделать за время, не превосходящее длительность
комбинации. Пусть длительность комбинации равна 1 с, тогда даже при скорости
109 операций в секунду необходимо иметь 108 параллельно работающих схем!
Таким
образом, применение достаточно эффективных (значит, и достаточно длинных) кодов
при табличном методе кодирования и декодирования технически невозможно. Поэтому
основные направления теории помехоустойчивого кодирования заключаются в поисках
таких классов кодов, для которых кодирование и декодирование ведется не
перебором таблиц, а с помощью некоторых регулярных правил. Один из таких
классов представляют линейные коды, которые в свою очередь содержат подклассы,
отличающиеся теми или иными свойствами. Некоторые из них позволяют упростить
построение кодера и декодера даже при .
Оказывается выгодным применять коды с кодовым расстоянием меньше оптимального,
если их структура позволяет упростить кодек.
4.4. Линейные двоичные блочные коды
Линейными
называют такие двоичные коды, в которых множество всех разрешенных комбинаций
является линейным пространством относительно операции поразрядного сложения по
модулю два. Очевидно, что это пространство является подпространством линейного
пространства, образуемого множеством всех комбинаций длины . Чтобы разрешенные комбинации были линейным
пространством, они должны содержать нулевой элемент (комбинацию, состоящую из
одних нулей), а поразрядная сумма по
любых разрешенных
блоков должна быть также разрешенным блоком. Линейные коды иногда называют
групповыми.
Двоичный
линейный код можно построить следующим образом. Среди 2n комбинаций различными
способами можно найти n линейно-независимых (например,
ортогональных). Выберем из них k
линейно-независимых комбинаций и образуем все
возможные линейные комбинации
,
где – весовой коэффициент, принимающий
значения 0 или 1, суммирование является поразрядным по
.
Множество
образует линейное пространство,
содержащее 2k комбинаций, т.е.
линейный код. Обычно выбранные линейно-независимые комбинации записывают в виде
матрицы размером
, которую называют производящей
или порождающей матрицей кода
.
В общем случае она имеет вид
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.