ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 05.06.2019
Просмотров: 1659
Скачиваний: 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 |
|