- •3. Помехоустойчивые коды
- •Оку (Обнаруживающий код удвоения).
- •Исходник: 1001101 1000001 1010001 1010011 1000001
- •Принято:10011011000001101000110100111000001 10011011000001 101000110100110111110
- •Оки (Обнаруживающий код инверсный)
- •Исходник: 1001101 1000001 1010001 1010011 1000001
- •Корректирующий циклический код кцк генерируется порождающим полиномом
- •Корректирующий мажоритарный код кмк: генерация, диагностика, коррекция, декодирование и эффективность
Оки (Обнаруживающий код инверсный)
Генерация.
-
Исходник: 1001101 1000001 1010001 1010011 1000001
Макет:10011011000001101000110100111000001К1К2К3К4К5К6К7К8К9К10К11К12К13К14К15К16К17К18К19К20К21К22К23К24К25К26К27К28К29К30К31К32К33К34К35
ОКИ(70;35) = 1001101 1000001 1010001 1010011 1000001 0110010 0111110 0101110 0101100 0111110
Диагностика.
Принято:0110001100000110100011010011100000101100100111110 01011100101100 0111110
Диагностика:
01100011000001101000110100111000001
01100100111110010111001011000111110
00000111111111111111111111111111111
Вывод. Существует ошибка:
- либо в позиции 1, либо в 36
- либо в позиции 2, либо в 37
- либо в позиции 3, либо в 38
- либо в позиции 4, либо в 39
- либо в позиции 5, либо в 40
- в остальных позициях ошибки нет.
Эффективность
- простой удобный алгоритм генерации и диагностики кода.
- количество контрольных бит = количеству информационных
- частично указывает адрес ошибки.
- большое количество контрольных бит.
ОК – СТК №3(стандартный телеграфный код):
Обнаруживающий код СТК№3 является международным телеграфным кодом постоянного веса (вес равен количеству единиц в коде = 3).
Генерация
Всем символам подобраны 7-битовые двоичные слова равного веса. Каждое 7-ми битовое бинарное слово содержит три единицы.
Диагностика
Если принятое семибитовое слово содержит три единицы – ошибки нет. Если количество единиц > или < трех, то символ содержит ошибку и удаляется семибитовое слово (т.е. один символ).
Эффективность. (СТК №3 – код постоянного веса).
- отсутствие контрольных бит
- очень простой и удобный алгоритм генерации и диагностики
- не указывает адрес ошибки.
-
Корректирующие коды. Назначение.
Они позволяют определить наличие одной или нескольких ошибок, вычислить адрес ошибки и скорректировать ее.
Корректирующий систематический код Хемминга.
Генерация.
Исходник: 1001001 1001101
Вычислим позиции для контрольных бит:
Пi = 2i-1
К
1:
П1
=
20
=
1 = > К1
П1
К
2:
П2
=
21
=
2 = > К2
П2
К
3:
П3
=
22
=
4 = > К3
П4
К
4:
П4
=
23
=
8 = > К4
П8
К
5:
П5
=
24
=
16 = > К5
П16
|
Пі |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
|
Макет |
К1 |
К2 |
1 |
К3 |
0 |
0 |
1 |
К4 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
К5 |
1 |
0 |
1 |
|
КСКХ |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
КСКХ(19;14)
Построение правил четности Хемминга:
|
Пі |
ПЧ№5 |
ПЧ№4 |
ПЧ№3 |
ПЧ№2 |
ПЧ№1 |
|
1 |
0 |
0 |
0 |
0 |
1 |
|
2 |
0 |
0 |
0 |
1 |
0 |
|
3 |
0 |
0 |
0 |
1 |
1 |
|
4 |
0 |
0 |
1 |
0 |
0 |
|
5 |
0 |
0 |
1 |
0 |
1 |
|
6 |
0 |
0 |
1 |
1 |
0 |
|
7 |
0 |
0 |
1 |
1 |
1 |
|
8 |
0 |
1 |
0 |
0 |
0 |
|
9 |
0 |
1 |
0 |
0 |
1 |
|
10 |
0 |
1 |
0 |
1 |
0 |
|
11 |
0 |
1 |
0 |
1 |
1 |
|
12 |
0 |
1 |
1 |
0 |
0 |
|
13 |
0 |
1 |
1 |
0 |
1 |
|
14 |
0 |
1 |
1 |
1 |
0 |
|
15 |
0 |
1 |
1 |
1 |
1 |
|
16 |
1 |
0 |
0 |
0 |
0 |
|
17 |
1 |
0 |
0 |
0 |
1 |
|
18 |
1 |
0 |
0 |
1 |
0 |
|
19 |
1 |
0 |
0 |
1 |
1 |
ПЧ №1: П1П3П5П7П9П11П13П15П17П19= 0
ПЧ №2: П2П3П6П7П10П11П14П15П18П19=0
ПЧ №3: П4П5П6П7П12П13П14П15=0
ПЧ №4: П8П9П10П11П12П13П14П15=0
ПЧ №5: П16П17П18П19=0
Вычислим значение контрольных бит, обрабатывая макет правилами четности:
ПЧ №1: К1101010111 = 0 К1=0
ПЧ №2: К2101010101 = 0 К2=1
ПЧ №3: К30011001 = 0 К3=1
ПЧ №4: К40011001 = 0 К4 =1
ПЧ №5: К5101 = 0 К5=0
КСКХ построен.
Диагностика.
Принято КСКХ с 1 ошибкой.
Допустим, в П1 есть ошибка.
1111001100110010101
Принятый КСКХ обрабатываем правилами четности.
ПЧ №1: 1101010111 = 1 – младший розряд адреса ошибки.
ПЧ №2: 1101010101 = 0
ПЧ №3: 10011001 = 0
ПЧ №4: 10011001 = 0
ПЧ №5: 0101 = 0
Адрес ошибки = 000012=110
Коррекция.
Инверсия позиции с ошибкой. 10.
Декодирование.
После исправления ошибки отбрасываем все контрольные биты.
Эффективность.
- минимальное количество контрольных бит
- обнаруживает и корректирует 1 ошибку
- генерация и диагностика выполняются по одним и тем же правилам четности.
