ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 05.06.2019
Просмотров: 623
Скачиваний: 1
0 такт: все ячейки памяти находятся в нуле, ключ К1 открыт, К2 закрыт, на входе и на выходе сигналов нет.
1 такт: на вход поступает 1-ый информационный символ 1, на m2 происходит его суммирование со значением ячейки D3 (которое было на предыдущем такте): результат идет через открытый ключ К1 в обратную связь. В регистре происходит сдвиг. Ячейка D1 изменяет своё состояние на 1(записывается значение сигнала пришедшего по обратной связи). В D2 записывается 0 (значение ячейки D1 на предыдущем такте). В ячейку памяти D3 записывается сумма по mod 2 сигнала обратной связи и значения ячейки D2 (на предыдущем такте), получаем . На выход поступает сигнал со входа, т.е. 1.
2-4 такт: работа аналогична работе кодера на 1-ом такте.
5 такт: ключ К1 закрывается, а К2 открывается, т.ет обратная связь разрывается, а на выход поступает значение из регистра. Получаем D1 становится в 0 (т.к. обратная связь разорвана). В D2 передвигается значение из D1 (которое было на предыдущем такте). В D3 записывается предыдущее значение D2 1. Как видим кодер, начиняя с 5(m+1) такта работает как сдвиговый регистр.
6-7 такт: работает в режиме сдвигового регистра со сдвигом вправо.
Временная диаграмма:
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 поступает сигнал исправления ошибки ( ), и по обратной связи (обозначенной пунктирными стрелками) поступает сигнал коррекции в генератор синдрома и в счетчик (в таблицах обозначен серым цветом), происходит обнуление синдрома и счетчика. Оставшиеся символы выталкиваются из буферного регистра. Декодер считает, что исправил ошибку, но на самом деле происходит трансформация принятого сообщения (одно сообщение заменяется другим).
1.7.11 Пример 11
Дан код (7,3,4):
;
.
.
Пусть:
,
тогда:
Найдем r(x):
Итак,
.
Тогда кодовый вектор:
,
где первые три символа – произвольно выбранные информационные символы, а последние четыре – соответствующие им проверочные символы (счет справа налево).
Структура декодера, приведена на рис.5а (построен с помощью обобщенной структурной схемы декодера см.рис.5)
рис.5а. Структурная схема декодера Меггита для кода (7,3,4)
в режиме исправления и обнаружения ошибок (частный случай) на основе
Промоделируем работу декодера для различных режимов передачи сообщения:
-
правильная передача;
-
однократная ошибка;
-
двукратная ошибка;
-
трехкратная ошибка;
В декодере селектор ошибок настроен на определенную ошибочную комбинацию, его работа не зависит от входного вектора, поэтому может моделировать как входной вектор, так и вектор ошибок. При подаче на вход вектора ошибок на n=7 такте получаем такое же значение синдрома, как и при моделировании входного вектора.
Режим приема безошибочной комбинации:
Состояние ключей |
№ такта |
Вход |
Разряд регистра |
|||
D0 |
D1 |
D2 |
D3 |
|||
|
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
0 |
|
2 |
0 |
0 |
1 |
1 |
1 |
|
3 |
0 |
1 |
1 |
0 |
1 |
|
4 |
1 |
0 |
1 |
1 |
0 |
|
5 |
0 |
0 |
0 |
1 |
1 |
|
6 |
1 |
0 |
0 |
0 |
1 |
|
7 |
1 |
0 |
0 |
0 |
0 |
(см.схему)
На 7-ом такте работы генератор синдрома выработал комбинацию 0000, т.е. произошла правильная передача сообщения. Последующие 7 тактов принятое сообщение будет выталкиваться из буферного регистра на выход.
Режим однократной ошибки (ошибка обозначена красным цветом):
Состояние ключей |
№ такта |
Вход |
Разряд регистра |
|||
D0 |
D1 |
D2 |
D3 |
|||
|
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
0 |
|
2 |
0 |
0 |
1 |
1 |
1 |
|
3 |
0 |
1 |
1 |
0 |
1 |
|
4 |
0 |
1 |
0 |
0 |
0 |
|
5 |
0 |
0 |
1 |
0 |
0 |
|
6 |
1 |
1 |
1 |
0 |
0 |
|
7 |
1 |
1 |
0 |
0 |
0 |
|
|
8 |
0 |
0 |
1 |
0 |
0 |
9 |
0 |
0 |
0 |
1 |
0 |
|
10 |
0 |
0 |
0 |
0 |
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 |
1 |
1 |
0 |
|
5 |
0 |
0 |
1 |
1 |
1 |
|
6 |
0 |
1 |
1 |
0 |
1 |
|
7 |
0 |
1 |
0 |
0 |
0 |
|
|
8 |
0 |
0 |
1 |
0 |
0 |
9 |
0 |
0 |
0 |
1 |
0 |
|
10 |
0 |
0 |
0 |
0 |
1 |
|
11 |
0/1 |
0 |
0 |
0 |
0 |
(см.схему)
На 11-ом такте работы через ключ K1 (открылся на 8 такте работы декодера) поступает сигнал исправления ошибки ( ), и по обратной связи (обозначенной пунктирной стрелкой) поступает сигнал коррекции в генератор синдрома (в таблицах обозначен серым цветом), происходит обнуление синдрома. Не смотря на то, что исправление произошло на 11-ом такте, декодер работает 14 тактов (выталкивает из буферного регистра оставшиеся символы).
Режим двукратной ошибки:
Состояние ключей |
№ такта |
Вход |
Разряд регистра |
|||
D0 |
D1 |
D2 |
D3 |
|||
|
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
0 |
|
2 |
0 |
0 |
1 |
1 |
1 |
|
3 |
0 |
1 |
1 |
0 |
1 |
|
4 |
0 |
1 |
0 |
0 |
0 |
|
5 |
0 |
0 |
1 |
0 |
0 |
|
6 |
1 |
1 |
1 |
0 |
0 |
|
7 |
0 |
0 |
1 |
1 |
0 |
|
|
8 |
0 |
0 |
0 |
1 |
1 |
9 |
0 |
1 |
1 |
1 |
1 |
|
10 |
0 |
1 |
0 |
0 |
1 |
|
11 |
0 |
1 |
0 |
1 |
0 |
|
12 |
0 |
0 |
1 |
0 |
1 |
|
13 |
0 |
1 |
1 |
0 |
0 |
|
14 |
0 |
0 |
1 |
1 |
0 |
|
|
15 |
0 |
0 |
0 |
1 |
1 |
(см.схему)
Режим двукратной ошибки (моделируем вектор ошибок):
Состояние ключей |
№ такта |
Вход |
Разряд регистра |
|||
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 |
1 |
1 |
0 |
|
5 |
0 |
0 |
1 |
1 |
1 |
|
6 |
0 |
1 |
1 |
0 |
1 |
|
7 |
1 |
0 |
1 |
1 |
0 |
|
|
8 |
0 |
0 |
0 |
1 |
1 |
9 |
0 |
1 |
1 |
1 |
1 |
|
10 |
0 |
1 |
0 |
0 |
1 |
|
11 |
0 |
1 |
0 |
1 |
0 |
|
12 |
0 |
0 |
1 |
0 |
1 |
|
13 |
0 |
1 |
1 |
0 |
0 |
|
14 |
0 |
0 |
1 |
1 |
0 |
|
|
15 |
0 |
0 |
0 |
1 |
1 |
(см.схему)
На 15-ом такте работы декодера открылся ключ К2 (генератор синдрома выработал комбинацию 0110 на предыдущем такте). Через элемент «ИЛИ» (вход 0110, выход 1) и открытый ключ К2 вырабатывает сигнал стирания буферного регистра.
Режим трехкратной ошибки:
Состояние ключей |
№ такта |
Вход |
Разряд регистра |
|||
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 |
1 |
1 |
0 |
|
7 |
0 |
0 |
1 |
1 |
1 |
|
|
8 |
0 |
1 |
1 |
0 |
1 |
9 |
0 |
1 |
0 |
0 |
0 |
|
10 |
0 |
0 |
1 |
0 |
0 |
|
11 |
0 |
0 |
0 |
1 |
0 |
|
12 |
0 |
0 |
0 |
0 |
1 |
|
13 |
0/1 |
0 |
0 |
0 |
0 |