- •1. Циклические коды (цк)
- •1.1 Циклические корректирующие коды
- •1.2 Построение цк
- •1.3 Определение параметров цк(цск) по m,s,r
- •1.4 Определение параметров цк, обеспечивающих заданную вероятность передачи по каналу с шумом
- •1.5 Кодеры цск
- •1.5.1 Кодирование с помощью полинома h(X)
- •1.5.2 Кодирование с помощью полинома g(X)
- •1.6 Декодеры цск
- •1.6.1 Декодеры Меггита
- •1.6.1.1 Режим исправления и обнаружения ошибок
- •1.6.1.2 Режим обнаружения ошибок
- •1.7 Примеры
- •1.7.1 Пример 1
- •1.7.2 Пример 2
- •1.7.3 Пример 3
- •1.7.4 Пример 4
- •1.7.5 Пример 5
- •1.7.7 Пример 7
- •1.7.8 Пример 8
- •1.7.9 Пример 9
- •1.7.10 Пример 10
- •1.7.11 Пример 11
- •1.8 Справочные материалы
- •1.8.1 Теоремы бчх
- •1.8.2 Таблица неприводимых многочленов
1.7.9 Пример 9
Дан код (7,4,3)
;
.
Переходим к порождающему полиному кода с dmin=4, для этого достаточно умножить порождающий полином исходного кодаg(x)на (1+x):
.
Число проверочных символов увеличивается на единицу за счет уменьшения на единицу информационных символов, тогда полученному полиному g`(x)соответствует код (7,4,3) с параметрами:.
Кодер циклического кода (7,3) приведен на рис.2б (построен с помощью обобщенной структурной схемырис.2)
рис.2б. Кодирующий регистр на основе
кода (7,3) с dmin=4
1.7.10 Пример 10
Дан код (7,3,4):
;
.
.
Пусть:
,
тогда:
Найдем r(x):
Итак,
.
Тогда кодовый вектор:
,
где первые три символа – произвольно выбранные информационные символы, а последние четыре – соответствующие им проверочные символы (счет справа налево).
Для реализации данного вида декодера
Структура декодера, приведена на рис.4а(построен с помощью обобщенной структурной схемы декодера см.рис.4)
рис.4а. Структурная схема декодера Меггита для кода (7,3,4)
в режиме исправления и обнаружения ошибок (частный случай) на основе
Промоделируем работу декодера для различных режимов передачи сообщения:
правильная передача;
однократная ошибка;
двукратная ошибка;
трехкратная ошибка;
В декодере селектор ошибок настроен на определенную ошибочную комбинацию, его работа не зависит от входного вектора, поэтому может моделировать как входной вектор, так и вектор ошибок. При подаче на вход вектора ошибок на n=7 такте получаем такое же значение синдрома, как и при моделировании входного вектора.
Режим приема безошибочной комбинации:
Состояние ключей |
№ такта |
Вход |
Разряд регистра | ||
D1 |
D2 |
D3 | |||
0 |
0 |
0 |
0 |
0 | |
1 |
1 |
1 |
0 |
1 | |
2 |
0 |
1 |
1 |
1 | |
3 |
0 |
1 |
1 |
0 | |
4 |
0 |
0 |
1 |
1 | |
5 |
0 |
1 |
0 |
1 | |
6 |
0 |
0 |
1 |
0 | |
7 |
0 |
0 |
0 |
1 |
(см.схему)
На 7-ом такте работы генератор синдрома выработал комбинацию 000 и в ячейку памяти D3 записался 0, т.е. произошла правильная передача сообщения (см.таблицу анализа синдрома). Последующие 7 тактов принятое сообщение будет выталкиваться из буферного регистра на выход.
Режим однократной ошибки (ошибка обозначена красным цветом):
Состояние ключей |
№ такта |
Вход |
Разряд регистра | |||
D0 |
D1 |
D2 |
D3 | |||
0 |
0 |
0 |
0 |
0 |
0 | |
1 |
1 |
1 |
0 |
1 |
1 | |
2 |
0 |
1 |
1 |
1 |
1 | |
3 |
0 |
1 |
1 |
0 |
1 | |
4 |
0 |
0 |
1 |
1 |
1 | |
5 |
0 |
1 |
0 |
0 |
1 | |
6 |
1 |
1 |
1 |
1 |
0 | |
7 |
1 |
0 |
1 |
1 |
1 | |
8 |
0 |
1 |
0 |
0 |
1 | |
9 |
0 |
0 |
1 |
0 |
1 | |
10 |
0 |
0 |
0 |
1 |
1 | |
11 |
0/1 |
0 |
0 |
0 |
0 |
(см.схему)
Режим однократной ошибки (моделируем вектор ошибок)
Состояние ключей |
№ такта |
Вход |
Разряд регистра | |||
D0 |
D1 |
D2 |
D3 | |||
0 |
0 |
0 |
0 |
0 |
0 | |
1 |
0 |
0 |
0 |
0 |
0 | |
2 |
0 |
0 |
0 |
0 |
0 | |
3 |
0 |
0 |
0 |
0 |
0 | |
4 |
1 |
1 |
0 |
1 |
1 | |
5 |
0 |
1 |
1 |
1 |
1 | |
6 |
0 |
1 |
1 |
0 |
1 | |
7 |
0 |
0 |
1 |
1 |
1 | |
8 |
0 |
1 |
0 |
0 |
1 | |
9 |
0 |
0 |
1 |
0 |
1 | |
10 |
0 |
0 |
0 |
1 |
1 | |
11 |
0/1 |
0 |
0 |
0 |
0 |
(см.схему)
На 11-ом такте работы через ключ K1 поступает сигнал исправления ошибки (), и по обратной связи (обозначенной пунктирными стрелками) поступает сигнал коррекции в генератор синдрома и в счетчик (в таблицах обозначен серым цветом), происходит обнуление синдрома и счетчика. Не смотря на то, что исправление произошло на 11-ом такте, декодер работает 14 тактов (выталкивает из буферного регистра оставшиеся символы).
Режим двукратной ошибки:
Состояние ключей |
№ такта |
Вход |
Разряд регистра | |||
D0 |
D1 |
D2 |
D3 | |||
0 |
0 |
0 |
0 |
0 |
0 | |
1 |
1 |
1 |
0 |
1 |
1 | |
2 |
0 |
1 |
1 |
1 |
1 | |
3 |
0 |
1 |
1 |
0 |
1 | |
4 |
0 |
0 |
1 |
1 |
1 | |
5 |
0 |
1 |
0 |
0 |
1 | |
6 |
1 |
1 |
1 |
1 |
0 | |
7 |
0 |
1 |
1 |
0 |
0 | |
8 |
0 |
0 |
1 |
1 |
0 |
(см.схему)
Режим двукратной ошибки (моделируем вектор ошибок):
Состояние ключей |
№ такта |
Вход |
Разряд регистра | |||
D0 |
D1 |
D2 |
D3 | |||
0 |
0 |
0 |
0 |
0 |
0 | |
1 |
0 |
0 |
0 |
0 |
0 | |
2 |
0 |
0 |
0 |
0 |
0 | |
3 |
0 |
0 |
0 |
0 |
0 | |
4 |
1 |
1 |
0 |
1 |
1 | |
5 |
0 |
1 |
1 |
1 |
1 | |
6 |
0 |
1 |
1 |
0 |
1 | |
7 |
1 |
1 |
1 |
0 |
0 | |
8 |
0 |
0 |
1 |
1 |
0 |
(см.схему)
На 8-ом такте работы декодера открылись оба ключа (генератор синдрома выработал на предыдущем такте комбинацию 110 и в ячейке памяти D3 записан 0). На первом входе нижнего элемента «И» стоит 1 (поступила с элемента «ИЛИ» (вход 110, выход 1)), на втором также 1 (инверсивное состояние ячейки памятиD3), следовательно вырабатывается сигнал стирания буферного регистра. (Теоретически показано в таблице анализа синдрома).
Режим трехкратной ошибки:
Состояние ключей |
№ такта |
Вход |
Разряд регистра | |||
D0 |
D1 |
D2 |
D3 | |||
0 |
0 |
0 |
0 |
0 |
0 | |
1 |
0 |
0 |
0 |
0 |
0 | |
2 |
0 |
0 |
0 |
0 |
0 | |
3 |
0 |
0 |
0 |
0 |
0 | |
4 |
0 |
0 |
0 |
0 |
0 | |
5 |
0 |
0 |
0 |
0 |
0 | |
6 |
1 |
1 |
0 |
1 |
1 | |
7 |
0 |
1 |
1 |
1 |
1 | |
8 |
0 |
1 |
1 |
0 |
1 | |
9 |
0 |
0 |
1 |
1 |
1 | |
10 |
0 |
1 |
0 |
0 |
1 | |
11 |
0 |
0 |
1 |
0 |
1 | |
12 |
0 |
0 |
0 |
1 |
1 | |
13 |
0/1 |
0 |
0 |
0 |
0 |
(см.схему)
Режим трехкратной ошибки (моделируем вектор ошибок):
Состояние ключей |
№ такта |
Вход |
Разряд регистра | |||
D0 |
D1 |
D2 |
D3 | |||
0 |
0 |
0 |
0 |
0 |
0 | |
1 |
1 |
1 |
0 |
1 |
1 | |
2 |
0 |
1 |
1 |
1 |
1 | |
3 |
0 |
1 |
1 |
0 |
1 | |
4 |
1 |
1 |
1 |
0 |
0 | |
5 |
0 |
0 |
1 |
1 |
0 | |
6 |
0 |
1 |
0 |
0 |
0 | |
7 |
1 |
1 |
1 |
1 |
1 | |
8 |
0 |
1 |
1 |
0 |
1 | |
9 |
0 |
0 |
1 |
1 |
1 | |
10 |
0 |
1 |
0 |
0 |
1 | |
11 |
0 |
0 |
1 |
0 |
1 | |
12 |
0 |
0 |
0 |
1 |
1 | |
13 |
0/1 |
0 |
0 |
0 |
0 |
(см.схему)
На 13-ом такте работы через ключ К1 поступает сигнал исправления ошибки (), и по обратной связи (обозначенной пунктирными стрелками) поступает сигнал коррекции в генератор синдрома и в счетчик (в таблицах обозначен серым цветом), происходит обнуление синдрома и счетчика. Оставшиеся символы выталкиваются из буферного регистра. Декодер считает, что исправил ошибку, но на самом деле происходит трансформация принятого сообщения (одно сообщение заменяется другим).