- •Введение
- •Формирование циклического кода
- •Имитация безошибочного прохождения циклического кода по системе передачи дискретных сообщений
- •Имитация прохождения циклического кода по системе передачи дискретных сообщений с ошибкой в одном разряде.
- •Построение схемы кодера циклического кода
- •Определение «особой» кодовой комбинации.
- •Построение схемы декодера циклического кода
- •Выводы:
- •Список литературы
Определение «особой» кодовой комбинации.
Для исправления однократной ошибки в принятой кодовой комбинации Н(х) необходимо определить место ошибки. С этой целью также производится деление полинома Н(х) на порождающий многочлен Р(х). Для определенности вновь обратимся к коду (11,7). Если на 11 такте в регистре-делителе (декодирующем регистре) будет зафиксирована хотя бы одна единица, то деление продолжается до тех пор, пока в регистре-делителе не будет зафиксирована “особая” кодовая комбинация. Вид этой комбинации зависит только от вида порождающего многочлена Р(х) и длины n комбинации циклического кода F(х), причем находится “особая” кодовая комбинация как остаток от деления хn на P(x).
Номер такта, на котором в регистре-делителе возникает “особая” кодовая комбинация, указывает место ошибочного разряда в принятой кодовой комбинации Н(х). При считывании этой комбинации из буферного регистра ошибочный разряд должен быть исправлен (инвертирован).
|
|
|
|
S(x)
=
= 1110 – «особая» комбинация.
Построение схемы декодера циклического кода
Рисунок 2 – Структурная схема декодера, обнаруживающего ошибки
Структурная
схема декодера строится по тем же
правилам, что и кодера. В состав декодера
циклического кода (11,7), обнаруживающего
ошибки входят: буферный регистр на 11
разрядов, декодирующий регистр
(регистр-делитель), схема ИЛИ–НЕ, схема
И, а также – управляющее устройство,
замыкающее ключ К после 11 такта (на схеме
устройство не показано). На вход
декодирующего регистра поступает
кодовая комбинация H(x),
которая делится на порождающий многочлен
P(x).
По окончании деления, после 11 тактов, в
триггерах Т1Т4
декодирующего регистра декодера
записывается и остаток от деления. Если
при этом хотя бы один из триггеров Т1Т4
находится в единичном состоянии, то это
означает, что в принятой кодовой
комбинации Н(х)
имеется ошибка. Для обнаружения ошибки
деление продолжается до
18 такта включительно, но уже “быстрыми”
тактовыми импульсами
и
на каждом из этих тактов сигналы с
выходов триггеров Т1Т4
поступают на вход схемы
ИЛИ–НЕ.
На выходе схемы ИЛИ–НЕ формируется
нулевой сигнал, который при замкнутом
ключе К поступает на второй вход схемы
И. На первый же вход этой схемы И поступает
кодовая комбинация Н(х) из буферного
регистра декодера
циклического кода.
Под действием нулевого сигнала с выхода
схемы ИЛИ-НЕ схема И запирается и кодовая
комбинация Н(х)
не поступает из буферного регистра на
выход схемы декодера.
Если же все триггеры Т1Т4 декодирующего регистра декодера обнулены после 11 такта, то на выходе схемы ИЛИ–НЕ с 12 по 18 такт имеет место единичный сигнал. Тогда схема И пропускает на выход декодера безошибочно принятую (или с необнаруженными ошибками) кодовую комбинацию из буферного регистра, причем потребителю направляются первые пять разрядов, составляющих информационную кодовую комбинацию G(х).
Покажем работу кодера при прохождении через него кода без ошибок.
H(x) = 10100010001
E(x) = 00000000000
Таблица 6. Состояние декодера при прохождении безошибочного кода
-
Такты(1-9) и “быстрые”
такты
(10-14)
Информация на входе декодера
Н(х)
Состояние триггеров
декодирующего
регистра
Информация на выходе схемы ИЛИ-НЕ
Информация на выходе декодера
Т1
Т2
Т3
Т4
После 9-го такта
1
1
1
0
0
0
-
-
2
0
0
1
0
0
3
1
1
0
1
0
4
0
0
1
0
1
5
0
1
1
1
0
6
0
0
1
1
1
7
1
0
1
1
1
8
0
1
1
1
1
9
0
1
0
1
1
10
0
1
0
0
1
11
1
0
0
0
0
12
–
0
0
0
0
1
1
13
–
0
0
0
0
1
0
14
–
0
0
0
0
1
1
15
–
0
0
0
0
1
0
16
–
0
0
0
0
1
0
17
–
0
0
0
0
1
0
18
–
0
0
0
0
1
1
После 11 такта все регистры обнулены, значит, ошибок нет, и на выходе декодера мы получаем информационную кодовую комбинацию G(х).
Сделаем одну ошибку, в 4 разряде.
H(x) = 10110010001
E(x) = 00010000000
Таблица 6. Состояние декодера при прохождении кода с ошибкой в 4 разряде
-
Такты(1-9) и “быстрые”
такты
(10-14)
Информация на входе декодера
Н(х)
Состояние триггеров
декодирующего
регистра
Информация на выходе схемы ИЛИ-НЕ
Информация на выходе декодера
Т1
Т2
Т3
Т4
После 9-го такта
1
1
1
0
0
0
-
-
2
0
0
1
0
0
3
1
1
0
1
0
4
1
1
1
0
1
5
0
1
0
1
0
6
0
0
1
0
1
7
1
0
1
1
0
8
0
0
0
1
1
9
0
1
1
0
1
10
0
1
0
1
0
11
1
1
1
0
1
12
–
1
0
1
0
0
-
13
–
0
1
0
1
0
-
14
–
1
1
1
0
0
-
15
–
0
1
1
1
0
-
16
–
1
1
1
1
0
-
17
–
1
0
1
1
0
-
18
–
1
0
0
1
0
-
После 11 такта регистры находятся в единичном состоянии, значит, декодер обнаружил единичную ошибку и на выход декодера информация не поступает.
Сделаем две ошибки, в 4 и 5 разрядах
H(x) = 10111010001
E(x) = 00011000000
Таблица 7. Состояние декодера при прохождении кода с ошибкой в 4 и 5 разрядах
-
Такты(1-9) и “быстрые”
такты
(10-14)
Информация на входе декодера
Н(х)
Состояние триггеров
декодирующего
регистра
Информация на выходе схемы ИЛИ-НЕ
Информация на выходе декодера
Т1
Т2
Т3
Т4
После 9-го такта
1
1
1
0
0
0
-
-
2
0
0
1
0
0
3
1
1
0
1
0
4
1
1
1
0
1
5
1
0
0
1
0
6
0
0
0
0
1
7
1
0
1
0
0
8
0
0
0
1
0
9
0
0
0
0
1
10
0
1
1
0
0
11
1
1
1
1
0
12
–
0
1
1
1
0
-
13
–
1
0
1
1
0
-
14
–
1
0
0
1
0
-
15
–
1
0
0
0
0
-
16
–
0
1
0
0
0
-
17
–
0
0
1
0
0
-
18
–
0
0
0
1
0
-
После 11 такта регистры находятся в единичном состоянии, значит, декодер обнаружил ошибки, и на выход декодера информация не поступает.
Рисунок 3 – Структурная схема декодера, исправляющего ошибки
Если ошибка имела место в 1 разряде принятой кодовой комбинации, то после 12 такта в ячейках регистра Т1Т4 будет записана “особая” кодовая комбинация 1010. При ошибке во 2 разряде комбинации Н(х) “особая” кодовая комбинация будет сформирована после 13 такта. И так далее, вплоть до 18 такта, включительно.
Сигналы с выходов триггеров Т1Т4 поступают на вход дешифратора “особой” кодовой комбинации 1110, с выхода которого, после замыкания ключа К, сигнал поступает на второй вход сумматора С3 по mod2. Этот сигнал равен 0, если на входе дешифратора кодовая комбинация отлична от “особой” (1110), и равен 1, если эта комбинация совпадает с “особой”.
При поступлении на сумматор С3 сигнала 1 с выхода дешифратора “особой” кодовой комбинации, на другой вход сумматора С3 из буферного регистра будет поступать ошибочный разряд принятой кодовой комбинации Н(х), который инвертируется. В итоге, однократная ошибка в принятой кодовой комбинации Н(х) исправляется, и информационная кодовая комбинация G(х) – первые пять разрядов Н(х), с учетом исправления, направляется потребителю информации.
Пусть есть одна ошибка, в 4 разряде.
H(x) = 10110010001
E(x) = 00010000000
Таблица 8. Состояние декодера при обнаружении ошибки в 4 разряде
Такты(1-9) и “быстрые” такты (10-14) |
Информация на входе декодера Н(х) |
Состояние триггеров декодирующего регистра |
Информация на выходе дешиф- ратора “особой” кодовой комбинации |
Информация на выходе декодера |
|||||
Т1 |
Т2 |
Т3 |
Т4 |
После 9-го такта |
|||||
1 |
1 |
1 |
0 |
0 |
0 |
- |
- |
||
2 |
0 |
0 |
1 |
0 |
0 |
||||
3 |
1 |
1 |
0 |
1 |
0 |
||||
4 |
1 |
1 |
1 |
0 |
1 |
||||
5 |
0 |
1 |
0 |
1 |
0 |
||||
6 |
0 |
0 |
1 |
0 |
1 |
||||
7 |
1 |
0 |
1 |
1 |
0 |
||||
8 |
0 |
0 |
0 |
1 |
1 |
||||
9 |
0 |
1 |
1 |
0 |
1 |
||||
10 |
0 |
1 |
0 |
1 |
0 |
||||
11 |
1 |
1 |
1 |
0 |
1 |
||||
12 |
– |
1 |
0 |
1 |
0 |
0 |
1 |
||
13 |
– |
0 |
1 |
0 |
1 |
0 |
0 |
||
14 |
– |
1 |
1 |
1 |
0 |
0 |
1 |
||
15 |
– |
0 |
1 |
1 |
1 |
1 |
0 |
||
16 |
– |
1 |
1 |
1 |
1 |
0 |
0 |
||
17 |
– |
1 |
0 |
1 |
1 |
0 |
0 |
||
18 |
– |
1 |
0 |
0 |
1 |
0 |
1 |
||
Декодер обнаружил ошибку, и на 15 такте зафиксировал «особую» комбинацию 1110, значит, ошибка была в 4 разряде.
Пусть есть две ошибки, в 4 и 5 разрядах.
H(x) = 10111010001
E(x) = 00011000000
Таблица 9. Состояние декодера при обнаружении ошибок в 4 и 5 разрядах
Такты(1-9) и “быстрые” такты (10-14) |
Информация на входе декодера Н(х) |
Состояние триггеров декодирующего регистра |
Информация на выходе дешиф- ратора “особой” кодовой комбинации |
Информация на выходе декодера |
|||||
Т1 |
Т2 |
Т3 |
Т4 |
После 9-го такта |
|||||
1 |
1 |
1 |
0 |
0 |
0 |
- |
- |
||
2 |
0 |
0 |
1 |
0 |
0 |
||||
3 |
1 |
1 |
0 |
1 |
0 |
||||
4 |
1 |
1 |
1 |
0 |
1 |
||||
5 |
1 |
0 |
0 |
1 |
0 |
||||
6 |
0 |
0 |
0 |
0 |
1 |
||||
7 |
1 |
0 |
1 |
0 |
0 |
||||
8 |
0 |
0 |
0 |
1 |
0 |
||||
9 |
0 |
0 |
0 |
0 |
1 |
||||
10 |
0 |
1 |
1 |
0 |
0 |
||||
11 |
1 |
1 |
1 |
1 |
0 |
||||
12 |
– |
0 |
1 |
1 |
1 |
1 |
0 |
||
13 |
– |
1 |
0 |
1 |
1 |
0 |
0 |
||
14 |
– |
1 |
0 |
0 |
1 |
0 |
1 |
||
15 |
– |
1 |
0 |
0 |
0 |
0 |
1 |
||
16 |
– |
0 |
1 |
0 |
0 |
0 |
1 |
||
17 |
– |
0 |
0 |
1 |
0 |
0 |
0 |
||
18 |
– |
0 |
0 |
0 |
1 |
0 |
1 |
||
Декодер зафиксировал «особую» комбинацию 1110 на 12 такте и выдал на выход декодера ложную комбинацию. Значит, данный декодер не может исправить две ошибки, а может исправить только одну.
