Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
97
Добавлен:
10.05.2015
Размер:
650.24 Кб
Скачать

7.9. Обобщение теории кодирования на недвоичные коды

До сих пор мы рассматривали только двоичные коды. Однако это делалось лишь для простоты. На самом деле тео­рия линейных кодов обычно излагается сразу для m-ичных кодов, где т=рL, р — простое число, L — натуральное число, т. е. для случая, когда над символами кода могут быть осуще­ствлены все арифметические действия, которые существуют над вещественными или комплексными числами. Для таких m-ичных кодов могут быть определены и доказаны все свой­ства, известные для двоичных кодов. Наиболее важным клас­сом m-ичных кодов являются коды Рида—Соломона (крат­ко - PC-коды). Они могут быть построены как систематичес­кие циклические (п, к)-коды при n = q-1, n-k = 2t, где t — число исправляемых ошибок. Коды PC являются частью стандарта цифровой записи на компакт-дисках.

Можно показать, что никакой линейный систематичес­кий m-ичный (т ≥ 2) код не может иметь d >n - k+1. Дей­ствительно, если выбрать значение k минус одного информа­ционного символа равным нулю, то это даст ненулевое кодо­вое слово веса не более, чем п-k+1, что по свойству линей­ного кода и определяет верхнюю границу для d как п-k+1. Поскольку PC-код реализует верхнюю границу для минималь­ного кодового расстояния, то он оказывается оптимальным среди всех m-ичных (п,к)-кодов в смысле исправления и обнаружения ошибок гарантированной кратности.

Выбор длины кода n = q - 1 является достаточно силь­ным ограничением, поэтому можно строить так называемые укороченные коды PC, имеющие произвольную длину nq -1. Их можно получить из полных PC-кодов, имеющих длину п — q-l, если положить часть информационных сим­волов равными нулю и выбросить их из кодовых блоков. Лег­ко видеть, что укорочение кода не может уменьшить кодового

расстояния, и поэтому (п,к)-код при nq-1 будет по-пре­жнему иметь d = n-k+1.

Такого типа коды совместно с двоичными кодами могут быть использованы для построения каскадных кодов.

7.10. Итеративные и каскадные коды

Мощные коды (т. е. коды с длинными блоками и большим кодовым расстоянием d) при сравнительно простой процеду­ре декодирования можно строить, объединяя несколько ко­ротких кодов. Так строится, например, итеративный код из двух линейных систематических кодов (n1, k1) и (п2,k2) — см. табл. 7.3. Вначале сообщение кодируется кодом первой сту­пени (n1, k1). Пусть k2 блоков кода 1-й ступени записаны в виде строк матрицы. Ее столбцы содержат по k2 символов, которые будем считать информационными для кода 2-й сту­пени (п2,k2), и подпишем к ним п2-k2 проверочных симво­лов. В результате получится блок (матрица n1 x n2), содержа­щий n1n2 символов, из которых k1k2 являются информацион­ными. Процесс построения кода можно продолжить в 3-м из­мерении и т. д.

Таблица 7.3.

При декодировании каждого блока 1-й ступени обнару­живают и исправляют ошибки. После того, как принят весь двумерный блок, вновь исправляют ошибки и стирания, но уже по столбцам, кодом 2-й ступени, причем приходится ис­правлять только те ошибки, которые не были исправлены (или были ложно "исправлены") кодом 1-й ступени. Легко убедиться, что минимальное кодовое расстояние для двухмерного итера­тивного кода d = d1d2, где d1 d2 и — соответственно мини­мальные кодовые расстояния для кодов 1-й и 2-й ступени.

Весьма эффективная разновидность мощных кодов — кас­кадные коды.

Рис.7.3. Схема каскадного кодирования и декодирования

Двухкаскадный код (рис. 7.3) строится следующим обра­зом: сначала k1 двоичных символов источника рассматрива­ется как укрупненный символ многопозиционного кода с ос­нованием т = 2к1. Затем к последовательности из k2 таких укрупненных символов добавляется п2 - k2 проверочных сим­волов m-ичного кода (каждый проверочный символ — это последовательность из k1 проверочных символов). На этом за­вершается образование внешнего кода. После этого формиру­ется внутренний код с кодовым расстоянием d1: к каждым k1 элементарным двоичным символам внешнего кода прибав­ляется n1 - k1 проверочных двоичных символов, из которых k1 · k2 являются информационными. Этим каскадный код по­хож на итеративный. Однако декодирование каскадного кода выполняется следующим образом: сначала последовательно осуществляется декодирование всех блоков внутреннего кода (с обнаружением или исправлением ошибок), затем декоди­руется блок внешнего m-ичного кода (n2, k2), причем исправ­ляются ошибки и стирания, оставшиеся после декодирования внутреннего кода. Внутренний код обычно рассчитан на исправление одиночных ошибок, внешний — на исправление пачек ошибок (которые являются одиночными ошибками в укрупненных m-ичных символах — рис. 7.3). В качестве внеш­него кода используется обычно m-ичный код Рида—Соломо­на, обеспечивающий наибольшее возможное d2 при задан­ных значениях п2 и k2, если п2<m.

Построенный каскадный код эквивалентен линейному дво­ичному коду с минимальным расстоянием d>d1d2. Факти­чески рассмотренный выше алгоритм декодирования каскад­ного кода оказывается достаточно эффективным и простым.

Использование каскадных кодов позволяет сделать скорость передачи сколь угодно близкой к пропускной способности канала. Процесс наращивания ступеней каскадного кода можно продолжить. Каскадные коды во многих случаях наиболее перспективны среди извест­ных блоковых помехоустойчивых кодов.

Соседние файлы в папке Курс ТПИ окон