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

3.8 Понятие об итерактивных и каскадных кодах

Различные коды обладают разными корректирующими способностями. Для получения более совершенных кодов можно использовать комбинации двух и более кодов. Одним из таких классов кодов являются итерированные коды. Их получают путем расположения информационных символов в виде таблицы (рис. 3.4). Каждая строка этой таблицы кодируется каким-либо кодом, а затем кодируется каждый столбец, причем не обязательно тем же кодом. Символы, расположенные в правом нижнем углу таблицы, получают в результате проверки проверочных символов. Они могут быть построены на основе проверки по строкам. Тогда они будут удовлетворять проверке по столбцам, и наоборот.

В качестве примера рассмотрим итерированные коды (рис. 3.5) с одной проверкой на четность для каждого столбца и строки. Такой код имеет большую корректирующую способность по сравнению с кодом с одной проверкой на четность, который позволяет только обнаруживать одиночные и нечетнократные ошибки. Итерированный код позволяет исправить все одиночные ошибки, так как пересечение строки и столбца, содержащих ошибку, однозначно указывает ее место.

Информационные символы

Проверочные

символы

по строкам

Проверочные символы по столбцам

Проверка

проверок

Рис. 3.4 - Расположение символов итерированого кода

Минимальное кодовое расстояние итерированного кода равно произведению кодовых расстояний итерируемых кодов. Действительно, если минимальный вес одного кода равен 1, а другого2, то кодовое слово, соответствующее произведению кодов, должно иметь, по крайней мере,1ненулевых элементов в каждой строке, которая содержит ненулевые элементы и, по крайней мере,2ненулевых элементов в каждом столбце, который содержит ненулевые элементы. Следовательно, он должен иметь12ненулевых элементов. Поскольку минимальное кодовое расстояние равно минимальному весу, то кодовое расстояние рассматриваемого кодаd0=d01d02=22=4. Поэтому простейший итерированный код позволяет обнаруживать все ошибки кратностью до трех. Он также обнаруживает все ошибки нечетной кратности, а также любые пакеты ошибок длиной не болееl+1, гдеl— длина строки.

Итерированные коды благодаря простоте реализации (особенно при использовании ЭВМ) нашли широкое применение в низкоскоростных системах ПД.

Каскадные коды, как и итерированные, состоят из двух или более кодов, но в отличие от них строятся ступенчатым образом: кодовые слова одного кода являются информационными символами для кода следующей ступени. Каскадный принцип построения кода иллюстрируется схемой, представленной на рис. 3.6. Как видно из рисунка, система «внутренний кодер — дискретный канал — внутренний декодер» создает относительно внешних кодера и декодера как бы расширенный внешний канал, имеющий словарь из 2Nкодовых векторов, где N — разрядность внутреннего кода. Если разрядность внешнего кода равнаn, то разрядность каскадного кодаN0=nN, и он содержит 2Nnкодовых слов. Процедура кодирования каскадным кодом сводится к следующему: информационные символы разбиваются наk2подблоков поk1 символов

1 0 0 1 1

1 1 0 0 1

1 0 0 0 1

1 1 1 1 1

1 0 0 0 0

0 0 1 1 0

1

1

0

1

1

0

1 0 0 1 0

0

Рис. 3.5 - Пример итерированного кода

в каждом. Каждый подблок из k1символов записывается как элемент поляGF(), в результате чего получается вектор изk2символов над нолемGF().

Полученный вектор над GF() рассматривается как информационный вектор некоторого линейного кода над полемGF() длинойn2сk2информационными символами и кодируется указанным кодом (n2,k2), называемым кодом второй ступени. В результате кодирования получается кодовое слово кода второй ступени, т. е. некоторый вектор длинойn2надGF(). Каждый изn2символов кода второй ступени представляется как вектор длиныk1и кодируется кодом (n1,k1) первой ступени. В результате получается кодовое слово длинойn=n1n2, которое и является кодовым словом каскадного кода (рис. 3.7).

Показано, что каскадные коды являются линейными и кодовое расстояние d0не меньше, чем произведение кодовых расстояний кодов первой и второй ступеней:dod01d02;n=n1n2;k=k1k2.

Достоинствами каскадных кодов являются относительно небольшая сложность их технической реализации и возможность исправления не только независимых (одиночных) ошибок, но и пакетов ошибок. Это достигается за счет того, что в качестве внутреннего кода используется код, исправляющий одиночные ошибки, а в качестве внешнего кода — код, обнаруживающий и исправляющий пакеты ошибок. Наиболее полно исследованы каскадные коды, где внутренними являются коды Хемминга, а внешними коды Рида — Соломона.

Принцип каскадного декодирования аналогичен действию получателя искаженной телеграммы: если и имеются отдельные ошибки в словах (независимые ошибки), то они могут быть обнаружены и исправлены за счет других букв того же слова (внутреннее кодирование), а если до неузнаваемости искажены отдельные слова из-за пакетов ошибок, то исправление таких ошибок возможно только с помощью других слов или текста в целом (внешнее кодирование).