
- •Применение циклических кодов в каналах с независимыми ошибками
- •1. Кодирование при помощи порождающего полинома g(X)
- •1.1. Общие принципы кодирования
- •1.2. Кодирующие устройства бчх-кодов, построенные при помощи порождающего полинома g(X)
- •С предварительным умножением на x3
- •2. Декодирование циклических кодов (бчх-кодов)
- •2.1. Принципы декодирования бчх-кодов по алгоритму Меггита (декодер Меггита)
- •2.2. Проектирование декодеров Меггита
- •2.3. Декодер Меггита для укороченных бчх-кодов
2.3. Декодер Меггита для укороченных бчх-кодов
Для декодирования укороченных БЧХ-кодов при построении декодера Меггита с предварительным умножением на xk необходимо построить дополнительный полином d(x), который рассчитывается следующим образом:
d(x) = xi+k mod g(x), (2.7)
где i – количество символов, на которые был укорочен код.
Изменения
в структуре декодера Меггита можно
рассмотреть на следующей схеме (рис.
2.4).
Рис. 2.4. Пояснения к дополнению структуры декодера Меггита
На
рис. 2.4 Dk–1
– последний элемент памяти генератора
синдрома. Обозначение «dg»
означает, что обратная связь с выхода
сумматора заводится на элементы памяти
с номерами, совпадающими с показателями
степеней слагаемых, которые входят и в
порождающий полином g(x),
и в дополнительный полином d(x).
Обозначение «»
означает, что обратная связь с выхода
элемента памяти Dk–1
заводится на элементы памяти с номерами,
совпадающими с показателями степеней
слагаемых, которые входят в порождающий
полином g(x)
и при этом не входят в дополнительный
полином d(x).
Обозначение «
»
означает, что прямая связь с входа
заводится на элементы памяти с номерами,
совпадающими с показателями степеней
слагаемых, которые входят в дополнительный
полином d(x)
и при этом не входят в порождающий
полином g(x).
Из анализа вида дополнительного полинома d(x) можно сделать вывод о том, что для неукороченного кода дополнительные связи в декодере отсутствуют. Действительно, полином d(x) определяется следующим образом:
d(x) = xi+k mod g(x) = | i = 0 = xk mod g(x).
Значит,
полином d(x)
содержит все слагаемые полинома g(x),
за исключением слагаемого xk.
Поэтому связь «dg»
с выхода последнего сумматора заводится
по полиному g(x),
связь «»
содержит один компонент xk
и является вырожденной (отсутствует),
связь «
»
не содержит ни одного компонента и также
является вырожденной (отсутствует).
Пример 2.4. Для укороченного циклического кода (5,2,3) и проверочного полинома g(x) = 1 x2 x3 построить декодер Меггита с предварительным умножением на xk.
Код (5,2,3) построен от табличного кода (7,3,4) путем укорочения информационной части на i = 2. Построим дополнительный полином d(x):
d(x)=xi+k mod g(x)= x2+3 mod (1 x2 x3) = 1 x.
Определим сочетания для введенных обозначений.
dg (слагаемые есть и в g(x), и в d(x)): 1;
(слагаемые
есть в g(x),
но нет в d(x)):
x2,
x3;
(слагаемые
есть в d(x),
но нет в g(x)):
x.
Настройка селектора определяется как xk–1= x3.
С учетом дополнительных связей построим декодер Меггита для укороченного кода с предварительным умножением на xk (с универсальной настройкой селектора) (рис. 2.5).
Рис. 2.5. Декодер Меггита для укороченного кода (5,2,3)
Запишем функции возбуждения для элементов памяти:
Промоделируем работу декодирующего устройства для полинома V(x) = 1 x2 x3 при однократной ошибке в разряде a3 (полином ошибки e(x) = x3). Результаты моделирования сведем в табл. 2.6.
Таблица 2.6
e(x) = x3 | ||||
| ||||
№ такта |
e |
D0 |
D1 |
D2 |
0 |
0 |
0 | ||
1 |
0 |
0 |
0 |
0 |
2 |
1 |
1 |
1 |
0 |
3 |
0 |
0 |
1 |
1 |
4 |
0 |
1 |
0 |
0 |
5 |
0 |
0 |
1 |
0 |
6 |
0 |
0 |
0 |
1 |
7 |
0 |
0 |
0 |
0 |
В рассматриваемом случае полином V'(x) будет выглядеть так: V'(x) = V(x) e(x) = 1 x2 x3 x3 = 1 x2.
Согласно предварительным расчетам селектор сработает (ошибочный разряд a3 попадает в старший разряд буферного регистра) на такте с номером: 25 – 3 – 1 = 6. Исправление произойдет на следующем такте, т. е. на такте с номером 25 – 3 = 7. На этом такте произойдет обнуление элементов памяти генератора синдрома.
Алгоритмы синдромного декодирования укороченных БЧХ-кодов в каналах с независимыми ошибками при исправлении и обнаружении ошибок произвольной кратности аналогичны рассмотренным в предыдущих разделах.
Действительно, для обнаружения ошибок необходимо только вычислить синдром и проверить его на неравенство нулю. В этом случае нет необходимости в вычислении дополнительного полинома d(x), поскольку обнаружение ошибки (стирание сообщения) происходит на (n + 1)-м такте работы декодирующего устройства. Напомним, что дополнительный полином d(x) строится для обеспечения свойства замкнутости укороченного (псевдоциклического) БЧХ-кода относительно операции циклического сдвига, а это необходимо только для исправления ошибок.
Для исправления и обнаружения ошибок укороченными БЧХ-кодами используется либо частный (для кодов Хэмминга), либо общий подход к построению декодирующих устройств. Вне зависимости от применяемого подхода, в подсистеме, реализующей исправление ошибок, необходимо учитывать настройки дополнительного полинома d(x). Все остальное (элементы, настройки, алгоритмы работы) соответствуют декодирующим устройствам неукороченных кодов, подробно рассмотренных ранее.