
- •Введение в помехоустойчивое кодирование
- •Функциональная схема процесса повышения достоверности
- •Двоичное блоковое кодирование
- •Двоичный блоковый (n, k) код
- •Структура декодирующего устройства
- •Геометрическая интерпретация вероятности
- •Независимость событий A и B
- •Геометрическая интерпретация формул полной вероятности и формул Байеса для вычисления вероятностей гипотез
- •Оценивание по принципу максимального правдоподобия
- •Оценивание по принципу максимального правдоподобия
- •Другие возможные соображения по выбору правил принятия решений.
- •Алгебраическая модель представления искажений при передаче двоичного вектора по ненадежному каналу
- •Некоторые новые обозначения
- •Некоторые упрощения для варианта оценивания по максимуму правдоподобия
- •Декодирование по минимуму расстояния
- •Пример декодирования по минимуму расстояния: распознавание написания цифр почтового индекса.
- •Исправление ошибок считывания
- •Двоичные групповые коды
- •Матричное кодирование – способ построения группового кода.
- •Систематический код
- •Замкнутое множество допустимых кодовых слов
- •Разбиение множества двоичных векторов на смежные классы по подгруппе допустимых кодовых слов и
- •Таблица стандартной расстановки
- •Выбор образующих элементов – лидеров классов
- •Иллюстрация к схеме декодирования посредством лидеров классов.
- •Пример декодирования посредством лидеров для (6,3) кода
- •Декодирование посредством лидеров следует правилу декодирования по минимуму расстояния.
- •Варианты построения декодера
- •Проверочная матрица для систематического кода
- •Примеры вычисления значений синдромов
- •Свойства синдромов
- •Иллюстрация проверки эквивалентности векторов
- •Синдромный декодер (6, 3)-кода
- •Пример исправления ошибки синдромным декодером
- •Все реализуют принцип максимального правдоподобия
- •Исправляемые конфигурации ошибок
- •Какова вероятность неправильного декодирования?
- •Пример для (6, 3)-кода
- •Вероятность ошибочного декодирования блока (6, 3)-кода
- •Частичное декодирование
- •Пример: Частичное декодирование (6, 3)-кода
- •Вариант частичного декодера

Систематический код
M E |
|
G |
Матрица из блоков |
|
||||
1 |
0 |
0 |
G11 |
G12 |
G1n k |
|||
0 |
1 |
|
0 |
G |
G |
|
G |
|
M |
|
|
21 |
22 |
|
|
2n k |
|
|
|
|
|
|
||||
0 |
0 |
|
1 |
G |
G |
|
G |
|
|
|
|
|
k1 |
k 2 |
|
k ,n k |
k столбцов |
n–k столбцов |
единичной |
матрицы G |
матрицы E |
(произвольной) |
|
|
x j |
, j k |
|
y |
|
|
k |
|
j |
|
|
||
|
|
xi & Gi, j k |
, j k |
|
|
|
|
||
|
|
|
i 1 |
|
k строк
y x, |
x G |
Информационные символы
Проверочные символы

|
|
|
Реализация систематического кода с матричным кодированием |
|
|
|||||||||||||||||||
|
|
1 |
0 |
0 |
1 |
1 |
1 |
|
|
k |
|
|
|
|
|
|
|
|
1 |
|
|
1 |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
y j |
xi |
& Mij , j 1 n |
|
|
|
|
|
|
|
|
|
|
|
||||
M |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
0 1 0 |
1 0 1 |
|
|
i 1 |
|
|
|
|
G 1 |
|
|
0 1 |
|
|||||||||||
|
0 |
0 |
1 |
0 |
1 |
1 |
y j |
xi , |
j 1 n |
|
|
|
|
|
0 |
|
|
1 |
1 |
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
k 3 |
n 6 |
|
n k 3 |
||||||||||||
|
|
|
|
|
|
|
|
|
|
i:Mij 1 |
|
|
|
|
||||||||||
x1 |
|
|
|
|
|
|
|
|
|
|
y1 |
|
|
|
|
y1 x1 |
|
|
|
|||||
x2 |
|
|
|
|
|
|
|
|
|
|
y2 |
k информационных |
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
y |
2 |
x |
2 |
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
символов |
|
|
|
|
|
|
||||||||
x3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
y3 |
|
|
|
|
y3 x3 |
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
y4 |
|
|
|
|
y4 x1 |
x2 |
|
||||||
|
|
|
|
|
|
|
|
|
|
|
y5 |
n–k проверочных |
|
y5 x1 |
x3 |
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
символов |
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
y6 x1 x2 x3 |
|||||||||
|
|
|
G |
|
|
|
|
|
|
|
y6 |
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Код с обобщенными |
|
|||||||||
КУ систематического кода |
|
|
|
|
yˆ |
|
|
проверками на четность |
||||||||||||||||
|
|
~ |
|
|
|
y4 0 x1 x2 0 |
|
|||||||||||||||||
|
|
|
|
|
|
y[1 k] |
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
y |
|
|
|
ˆ |
|
|
|
|
|
|
|
|
|
|
|
||
x |
|
|
|
|
|
|
|
y |
|
? |
|
[1…k] |
x |
y5 |
0 x1 |
x3 |
0 |
|
||||||
|
|
|
|
y[k 1 n] |
|
|
|
|
||||||||||||||||
|
|
|
G |
|
|
|
|
ДКУ |
|
|
y6 |
0 x1 |
x2 |
x3 |
0 |
|||||||||
|
|
|
|
|
|
|
|
|
систематического кода |
|

Замкнутое множество допустимых кодовых слов
|
x |
|
|
|
|
y f (x) |
|
||
x1 |
x2 |
x3 |
|
y1 |
y2 |
y3 |
y4 |
y5 |
y6 |
|
|||||||||
0 |
0 |
0 |
|
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
|
0 |
0 |
1 |
0 |
1 |
1 |
0 |
1 |
0 |
|
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
|
0 |
1 |
1 |
1 |
1 |
0 |
1 |
0 |
0 |
|
1 |
0 |
0 |
1 |
1 |
1 |
1 |
0 |
1 |
|
1 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
|
1 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
|
1 |
1 |
1 |
0 |
0 |
1 |
y1 x1 y2 x2 y3 x3
y4 x1 x2 y5 x1 x3
y6 x1 x2 x3
1 |
0 |
1 |
1 |
0 |
0 |
|
0 |
1 |
1 |
1 |
1 |
0 |
|
1 |
1 |
0 |
0 |
1 |
0 |
|
B = {000000, 001011, 010101, 011110, 100111, 101100, 110010, 111001}
~ |
d=4 |
d=3 |
d=1 |
d=2 |
d=4 |
d=3 |
d=5 |
d=2 |
y 011101 |
||||||||
|
|
|
min |
|
|
|
|
|
|
|
|
ˆ |
|
ˆ |
|
|
|
|
|
|
y 010101 x 010 |
|
|
|

Разбиение множества двоичных векторов на смежные классы по подгруппе допустимых кодовых слов и таблица стандартной расстановки двоичного группового кода
z B {z b | b B} |
|
A |
|
B |
{z B | z A} |
|
|
|
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
A |
|
|
|
|
B |
|
2k z |
|
z B |
|
2k |
|
A |
|
2n |
|
A |
B |
|
|
|
|
|
|
2n k |
||
|
|
|
|
|
|
|
|
|
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
||||||||||||||||
|
|
|
|
|
|
|
B |
|
|
|||||||||||||
|
|
|
|
|
|
|
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
A B — 2n–k классов по 2k векторов
z z z B Каждый вектор принадлежит своему классу
0 B
0 B B
Одним из классов является подгруппа допустимых кодовых слов. Он порождается, в частности, нулевым вектором, который тоже является допустимым кодовым словом.
u z B u B z B Каждый класс есть в точности множество |
||
образующих его векторов. |
|
|
Отношение эквивалентности между двоичными векторами по |
A |
B |
u 1 u u v u v B u v B |
|
|
|
|

Таблица стандартной расстановки
0 = 0+0 |
b1 = 0+b1 |
b2 = 0+b2 |
… |
b2k–1 = 0+b2k–1 |
|
|
|
|
|
||||||
z1= z1+0 |
z1 + b1 |
z1 + b2 |
… |
z1 + b2k–1 |
|
|
|
z2 = z2+0 |
z2 + b1 |
z2 + b2 |
… |
z2 + b2k–1 |
|
2n–k |
|
… |
… |
… |
… |
… |
|
|
|
z2n–k–1 = z2n–k–1+0 |
z2n–k–1 + b1 |
z2n–k–1 + b2 |
… |
z2n–k–1 + b2k–1 |
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
2k
Строки – различные классы разбиения – смежные классы образующего элемента zm по подгруппе B.
Заголовочная строка – класс, образованный вектором 0 – подгруппа допустимых кодовых слов
Заголовки столбцов – элементы B – допустимые кодовые слова.
Заголовки строк – образующие элементы классов.

Выбор образующих элементов – лидеров классов
u z B |
w(z) w(u) |
z Лидер класса z+B
Лидер класса – вектор минимального веса в своем классе.
Каждый класс есть в точности множество образующих его векторов.
Выберем в качестве образующих элементов вектора минимального веса – лидеры классов.
|
~ |
|
|
Декодирование посредством лидеров |
ˆ |
|
|
|||
|
|
|
& u z B |
w(z) w(u) |
|
|
||||
|
y z B |
e z |
|
|||||||
~ |
|
|
|
~ |
|
|
|
|
|
|
y z B |
b B y |
z b |
|
|
|
|
|
|||
~ |
|
~ |
|
|
|
|
|
|
|
|
d( y,b) w( y b) w(z b b) w(z) |
|
|
|
|
||||||
|
~ |
|
~ |
|
|
|
|
|
|
|
b B d( y |
,b ) w( y |
b ) w(z |
b b ) |
|
|
|
|
|||
b B & b B b b B. b b b . |
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
~ |
|
~ |
,b) w(z) |
|
b B z b b z b u z B d( y |
,b ) w(u) d( y |

Иллюстрация к схеме декодирования посредством лидеров классов.
Расстояния между векторами в таблице стандартной расстановки двоичного группового кода
u z B |
w(z) w(u) |
0
z
yˆ b
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
b |
|
|
b |
|
|
|
|
|
|
~ |
|
b |
||||
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
~ |
,b) |
w(z) |
|
|
|
|
,b ) w(u) w(z) |
|
|||||
|
|
|
|
||||||||||||||
|
|
|
|
d( y |
|
|
|
|
d( y |
|
|||||||
|
|
|
|
|
~ |
|
|
|
|
|
|
|
|
|
|
|
|
u z b |
|
|
|
|
|
|
|
|
|
|
|
|
|||||
y z b |
|
|
|
|
|
|
|
|
|
|
|
|
ˆ |
z |
|
Заголовок столбца |
e |
Заголовок строки |
|
|
|

Пример декодирования посредством лидеров для (6,3) кода
B = {000000, 001011, 010101, 011110, 100111, 101100, 110010, 111001}
000000 |
|
001011 |
010101 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
100111 |
101100 |
110010 |
111001 |
||||||||||||||||||||||
|
|
011110 |
|
|
|
|
||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
000001 |
|
001010 |
010100 |
011111 |
|
100110 |
101101 |
110011 |
111000 |
|||||||||||||||||||||||||||||||||||
000010 |
|
001001 |
010111 |
011100 |
|
100101 |
101110 |
110000 |
111011 |
|||||||||||||||||||||||||||||||||||
000100 |
|
001111 |
010001 |
011010 |
|
100011 |
101000 |
110110 |
111101 |
|||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
000011 |
011101 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
101111 |
100100 |
111010 |
110001 |
|||
001000 |
|
|
|
|
|
|
010110 |
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
010000 |
|
011011 |
000101 |
001110 |
|
110111 |
111100 |
100010 |
101001 |
|||||||||||||||||||||||||||||||||||
100000 |
|
101011 |
110101 |
111110 |
|
000111 |
001100 |
010010 |
011001 |
|||||||||||||||||||||||||||||||||||
011000 |
|
010011 |
001101 |
000110 |
|
111111 |
110100 |
101010 |
100001 |
В первых 7 строках единственный выбор лидера:
000000, 000001, 000010, 000100, 001000, 010000, 100000.
В последней строке три равноправных варианта выбора лидера: 011000, 000110, 100001 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
~ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
~ |
~ |
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
y 010110 |
|
001000 B : 010110 |
|
001000 |
|
|
011110 |
|
|
|
d( y,000000) w( y) 3 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
010110+ |
010110+ |
010110+ |
010110+ |
|
010110+ |
|
|
|
|
010110+ |
010110+ |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
001011= 010101= 011110= 100111= 101100= |
|
|
|
|
110010= |
111001= |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
011101 |
|
|
|
|
|
|
|
000011 |
001000 |
110001 |
|
|
|
|
|
111010 |
|
|
|
|
|
|
|
|
100100 |
101111 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
d=4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
d=2 |
|
d=1 |
|
d=3 |
|
|
|
|
|
|
d=4 |
|
d=2 |
d=5 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ˆ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
y 011110 |

000000 |
001011 |
010101 |
011110 |
100111 |
101100 |
110010 |
111001 |
000001 |
001010 |
010100 |
011111 |
100110 |
101101 |
110011 |
111000 |
000010 |
001001 |
010111 |
011100 |
100101 |
101110 |
110000 |
111011 |
000100 |
001111 |
010001 |
011010 |
100011 |
101000 |
110110 |
111101 |
001000 |
000011 |
011101 |
010110 |
101111 |
100100 |
111010 |
110001 |
010000 |
011011 |
000101 |
001110 |
110111 |
111100 |
100010 |
101001 |
100000 |
101011 |
110101 |
111110 |
000111 |
001100 |
010010 |
011001 |
011000 |
010011 |
001101 |
000110 |
111111 |
110100 |
101010 |
100001 |
~ Решение (выбор варианта исправления ошибки) не всегда единственное:
y 110100 011000 B :110100 011000 101100
110100+ |
110100+ |
110100+ |
110100+ |
110100+ |
110100+ |
110100+ |
110100+ |
||||||
000000= |
001011= |
010101= 011110= 100111= |
101100= 110010= 111001= |
||||||||||
110100 |
111111 |
100001 |
101010 |
010011 |
011000 |
000110 |
001101 |
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
d=3 |
d=6 |
|
d=2 |
|
d=3 |
d=3 |
|
d=2 |
|
|
d=2 |
|
d=3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Три равноправных максимально правдоподобных варианта для исправления ошибки ( yˆ ): 110100, 110100, 110100. Выбранный лидер Оценки вектора ошибок ( eˆ ): 100001, 011000, 000110. (произвольно)

Декодирование посредством лидеров следует правилу декодирования по минимуму расстояния.
Настоящий вектор ошибок |
e |
|
|
~ |
|
|||
и принятое искаженное сообщение y всегда |
||||||||
находятся в одном классе. |
|
~ |
|
|
|
|||
|
|
|
|
|
e y |
|
|
|
Максимально правдоподобные варианты оценок вектора ошибок |
ˆ |
– |
||||||
|
|
|
|
|
|
|
|
|
лидеры классов. |
|
|
|
|
e |
|
||
|
|
|
|
|
|
|||
L {z | u z B |
w(z) w(u)} Множество лидеров классов |
|||||||
ˆ |
|
|
~ |
|
Множество максимально |
|
|
|
ˆ |
ˆ |
ˆ |
правдоподобных оценок |
~ |
|
|
||
|
|
|
|
|||||
|
|
|
|
|
||||
E {e | e L & y e} |
вектора ошибки для |
|
|
|||||
y |
|
|
||||||
|
|
|
|
|
исправления принятого |
|
|
Если для каждого класса отобрать один вариант, то имеем поиск по 2n–k вариантам (классам ошибок), а не 2k допустимым кодовым словам.
2n–k<<2k при кодировании большими блоками с малой избыточностью
n=56 k=48 n–k=8: 256<<281474976710656