Файл: Циклические коды.doc

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 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