При передаче дискретных сообщений в большинстве случаев используется структурная схема системы связи, изображенная на рис. 1.5, где сообщения в сигнал преобразуются в два этапа - кодирование и модуляция, также как и обратное преобразование пришедшего сигнала в сообщение (принятие решения). На первом этапе (демодуляция) принимается решение о том, какие символы передавались на каждом тактовом интервале, а на втором этапе (декодирование) полученные последовательности символов сравниваются с разрешенными и при наличии расхождений обнаруживаются или исправляются ошибки.
Такая двухэтапная процедура принятия решения в большинстве случаев оказывается неоптимальной, даже если демодулятор и декодер оптимизированы (каждый в отдельности). Действительно, процесс демодуляции при наличии помех является необратимым и, следовательно, ведет к потере части информации, содержащейся в приходящем сигнале. Следовательно, можно, в принципе, повысить верность приема, если демодулировать не каждый символ кодового слова отдельно, а строить демодулятор на весь сигнал, соответствующий кодовому блоку и принимать сразу решение о наиболее вероятной (или правдоподобной) переданной кодовой комбинации. Такой способ называют приемом в целом.
К сожалению, при достаточно эффективном (а следовательно длинном) коде прием в целом осуществить технически невозможно. Пусть, например, используется двоичный (n, k) код при 6 = 20. Число различных кодовых комбинаций равно 2k = 220 = 1 048 576. Таким образом, демодулятор для приема в целом должен в этом случае содержать более миллиона корреляторов или согласованных фильтров. Поэтому на практике применяют более простые алгоритмы приема, сохраняющие наличие двух этапов (посимвольную демодуляцию и последующее декодирование), но позволяющие хотя бы частично сохранять ту информацию, которая при обычном декодировании теряется.
Для этого при демодуляции каждого двоичного символа запоминается не окончательное (жесткое) решение о том, что передавалось, 0 или 1, а напряжение на выходах согласованных фильтров (или корреляторов). Эти напряжения, как известно, пропорциональны логарифму функций правдоподобия и поэтому является мерой надежности принятого решения. В дальнейшем эти меры надежности (аналоговые величины) так или иначе используются при декодировании. Такой вид решения называется "мягким".
Предложено довольно много алгоритмов "аналогового декодирования" при мягком решении, различающихся по помехоустойчивости, сложности и области применения. Вместо оптимального аналогового декодирования по максимуму правдоподобия чаще используют цифровое (субоптимальное) декодирование, при котором накоплению и сравнению подлежат квантованные на L>2 уровней значения сигнала на выходе демодулятора (коррелятора).
Разумеется, аналоговое декодирование сложнее дискретного, поэтому его применяют сравнительно редко. Иногда лучшие результаты при такой же степени усложнения дает просто увеличение длины кода с той же избыточностью. Но и в тех случаях, когда применяется поэлементная демодуляция и обычное дискретное декодирование, высокая эффективность системы связи достигается, когда модем и кодек согласованы между собой. В противном случае полезный эффект кодирования может быть сведен на нет несогласованной обработкой сигнала.
Наиболее разработанными являются коды для дискретного симметричного канала (ДСК) с независимыми ошибками. Для любого другого канала эти коды малоэффективны. В частности, при передаче дискретных сообщений по каналу с медленными замираниями возникает группирование ошибок. Дискретный канал в этом случае будет существенно отличаться от ДСК - он будет каналом с памятью.
Когда в таком канале проходит сильный сигнал, ошибки практически не возникают. Если же сигнал замирает, возникает так много ошибок в пределах кодовой комбинации, что корректирующий код предназначенный для исправления независимых ошибок, с ними не справляется. Значительно лучше ведут себя в этом случае коды, обнаруживающие ошибки.
Важно отметить, что характеристики дискретного канала зависят не только от входящего в него непрерывного канала, но и от используемого модема. Отсюда возникает проблема согласования кодека с каналом, т. е. проблема совместной оптимизации модема и кодека.
Возможны два пути построения эффективных систем с кодированием, пригодным для различных каналов. Первый путь заключается в том, что подбирается код для данного канала. Так, например, известны коды, предназначенные для исправления пачек ошибок (см. § 5.5). Для каналов с медленно меняющимися параметрами иногда используют адаптивное кодирование.
Второй путь заключается в том, что исходные каналы преобразуются к некоторому "стандартному" дискретному каналу, для которого оптимальные коды известны. Простейшим примером этого является метод декорреляции ошибок путем разнесения символов, входящих в один кодовый блок (см. §5.5). Этот метод позволяет преобразовать самые различные дискретные каналы в приблизительно симметричный канал без памяти. Во многих случаях для эффективного использования кодирования может оказаться целесообразным преобразовывать с помощью модема исходные реальные каналы в канал, близкий к ДСК. Аналогично тому, как для эффективного использования автотранспорта нужны хорошие дороги, так и для эффективного использования кодирования необходимы хорошие каналы, согласованные с кодом. Согласующим устройством может быть модем, а хорошим каналом - ДСК
Помимо разнесения (перемежения) символов, можно осуществлять и другие преобразования, имеющие целью придать потоку символов свойства, похожие на случайную последовательность равновероятных и независимых двоичных символов. Такая операция называется скремблирование. Ее обычно осуществляют, пропуская поток символов через регистр сдвига с обратными связями, в котором эти символы перемешиваются и преобразуются. Разумеется, характеристика скремблера должна быть обратимой. Тогда принятые после демодулятора символы подвергаются обратной операции - дескремблированию, для восстановления исходной последовательности.
Скремблирование часто применяют для повышения надежности систем синхронизации. Но оно также улучшает работу декодера, особенно в системах с обратной связью.
В каналах с замираниями часто используют сигналы сложной структуры, такие, например, как многочастотные, частотно-временные, шумоподобные и др. Так, при использовании частотно-временных сигналов с помощью многочастотных модемов образуется двумерный канал. Передаваемые и принимаемые символы в таком канале размещают в виде матрицы, в которой строки соответствуют различным интервалам времени, а столбцы - различным частотам. Варьируя параметры модема, можно, не изменяя общей скорости передачи информации, перераспределять память в дискретном канале, например, увеличить корреляцию между символами по времени и уменьшить корреляцию между символами, близкими по частоте. В таких каналах удобно применять каскадные коды при различных алгоритмах декодирования. Применение модемов, создающих двумерный дискретный канал, оказывается полезным и для непрерывных каналов, в которых имеют место сосредоточенные и импульсные помехи большой интенсивности. В этих случаях ошибки чаще поражают символы, передаваемые на одной поднесущей (при сосредоточенных помехах), либо в одном интервале времени (при импульсных помехах). Известны коды, которые позволяют успешно исправлять такие решетчатые конфигурации ошибок.
Примером согласованного подхода к кодированию и модуляции с учетом свойств непрерывного канала являются системы с обратной связью. Неотъемлемым элементом этих систем является кодирование с обнаружением ошибок. Практически почти все действующие системы передачи данных по каналам с переменными параметрами используют решающую обратную связь. В этом случае по результатам "измерения" состояния канала с помощью кода автоматически осуществляется изменение режима работы системы путем переспроса. Как отмечалось, кодирование и декодирование с обнаружением ошибок в канале с переменными параметрами осуществляется значительно эффективнее, чем непосредственное исправление ошибок. Одной из причин этого является тот факт, что оптимальный алгоритм декодирования с обнаружением ошибок совершенно не зависит от характеристик канала, вероятность необнаруженной ошибки мало зависит от этих характеристик и определяется, главным образом, структурой кода.
Таким образом, важнейшей проблемой на пути создания высокоэффективных систем передачи информации является проблема согласования модемов и кодеков с учетом статистических свойств непрерывного канала. Наиболее общий подход сводится к совместной оптимизации модема и кодека. Кодирование и модуляцию необходимо рассматривать как единый процесс формирования наилучшего сигнала, а демодуляцию и декодирование как процесс наилучшей обработки принятого сигнала.