7.3. ПОМЕХОУСТОЙЧИВОЕ (КАНАЛЬНОЕ) КОДИРОВАНИЕ
Если экономное кодирование сокращает избыточность источника сообщений, то помехоустойчивое кодирование, напротив, состоит в целенаправленном введении избыточности для того, чтобы появилась возможность обнаруживать и(или) исправлять ошибки, возникающие при передаче по каналу связи.
В дальнейшем будем рассматривать только чисто канальное (помехоустойчивое) кодирование, хотя общий подход также возможен и, более того, даёт весьма значительный эффект, особенно при передаче преобразованных к дискретному виду непрерывных сигналов (см. гл. 8).
Переходим к изложению обшей теории блоковых кодов. Будем называть канальным (помехоустойчивым) блоковым кодом К любое множество из
различных последовательностей (комбинаций, слов)
длины
каждая позиция которых может принимать любое из
значений входного алфавита X, если
Такой код называют также избыточным. При выполнении равенства
код называется примитивным. Будем называть скоростью кода величину
Очевидно, избыточные коды имеют
а для примитивного кода
Теорема кодирования Шеннона, доказанная в предыдущей главе, утверждает, что существует такая последовательность блоковых избыточных кодов с фиксированной скоростью
где С — пропускная способность дискретного канала связи, что при неограниченном увеличении длин этих блоков
вероятность ошибки после оптимального декодирования в заданном канале будет стремиться к нулю. Однако в данной главе мы имеем дело с неасимптотическим случаем, т.е. с кодами фиксированной длины
и поэтому возникает ряд новых проблем, которые имеют важное практическое значение:
1. Выразить вероятность ошибки при использовании наилучшего кода и оптимального декодирования как функцию длины кодового блока
скорости кода
и распределения вероятностей ошибок, определяемых каналом связи.
2. Найти оптимальный алгоритм декодирования с исправлением или обнаружением ошибок для заданного кода и канала.
3. Найти метод выбора наилучшего кода при оптимальном декодировании в заданном канате.
4. Разработать практически реализуемые апгоритмы кодирования и декодирования.
До сих пор речь шла только о блоковых кодах, для которых передаваемая по каналу связи последовательность символов может быть разделена на одинаковые отрезки (блоки), формируемые кодирующим устройством независимо друг от друга. Такой способ является не единственно возможным. Поэтому во второй части этой главы будут описаны так называемые непрерывные (свёрточные) коды. В конце первой части, посвящённой исключительно блоковым кодам, будет пояснено, почему и когда именно непрерывные коды могут иметь определённые преимущества перед блоковыми.