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