К наиболее эффективным методам обеспечения высокого качества цифровой передачи в условиях высокого уровня шума канала связи относятся весьма мощные алгоритмы формирования корректирующих кодов, в разработке которых теория помехоустойчивого кодирования имеет значительные успехи.
За годы развития в технику связи успешно внедрены пороговые декодеры, алгоритм Витерби, коды Рида-Соломона, каскадные схемы кодирования, а также разработки последнего времени – алгоритмы для турбо кодов, многопороговые декодеры и каскадные методы кодирования и декодирования.
Однако требования к алгоритмам коррекции ошибок в каналах связи с помехами, в частности в спутниковых каналах, непрерывно растут и главная проблема – декодирование с эффективностью, близкой к оптимальной по энергетике канала, но при максимально простой реализации.
Основными характеристиками методов коррекции ошибок являются:
- средняя вероятность ошибки в информационном бите или последовательности бит;
- энергетический выигрыш кодирования (ЭВК), показывающий величину снижения энергии, необходимой для передачи одного бита данных при некоторой выбранной средней вероятности ошибки;
- сложность реализации алгоритма как программной так и аппаратной. Данная характеристика имеет большое значение, так как применяя очень сложные методы кодирования, получают высокий ЭВК, но эти методы практического применения не находят.
На сегодняшний день известно множество различных классов помехоустойчивых кодов, отличающихся друг от друга структурой, функциональным назначением, энергетической эффективностью, алгоритмами кодирования и декодирования и многими другими параметрами. На рисунке 2.2 представлена классификация помехоустойчивых кодов.
К основным наиболее распространенным кодам можно отнести:
1) блоковые коды, в которых кодирование и декодирование производится в пределах кодовой комбинации или блока. К ним относят коды Боуза-Чоудхури-Хоквингема, коды Рида-Соломона, мажоритарно декодируемые коды;
2) сверточные коды, в которых обработка символов производится непрерывно, без разделения на блоки;
3) линейные коды, образующие векторное пространство и обладающие важным свойством: два кодовых сообщения можно сложить, используя подходящее определение суммы, и получить третье кодовое слово. Данное свойство упрощает процедуру кодирования и декодирования. Важный подкласс линейных кодов составляют циклические коды или CRC коды (Cyclic Redundancy Codes – Циклические Избыточные Коды);
4) каскадные схемы кодирования, в основе построения которых лежит идея совместного использования нескольких составляющих кодов. Данный подход позволил существенно повысить эффективность применения кодирования по сравнению с базовыми некаскадными методами. Примером могут служить каскадные коды, построенные с использованием кода Хемминга и его модификации, особое место среди кодовых схем занимают каскадирование с кодами контроля по четности, а также каскадные схемы с методами параллельного кодирования, образуя турбо коды, которые формируются при параллельном каскадировании двух или более составляющих кодов.