Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
PDI_anya.docx
Скачиваний:
4
Добавлен:
17.08.2019
Размер:
597.87 Кб
Скачать

2.2 Формирование проверочной матрицы

Проверочная матрица Н формируется для определения алгоритма (правила) проверки правильности формирования РКК и принадлежности к разрешенным кодовым комбинациям при декодировании.

Проверочная матрица состоит из двух подматриц:

1. Первая формируется путем транспонирования столбцов подматрицы проверочных символов производящей подматрицы. Первый столбец производящей становится первой строкой проверочной подматрицы и т.д.

2. Вторая подматрица в проверочной матрице формируется как единичная, линейная матрица.

Таким образом, получена проверочная матрица Н(9,5) кода (9,5), построенная на базе производящей.

Проверочная матрица позволяет сформировать алгоритм формирования проверочной части кода (проверочных символов), то есть с ее помощью может быть определено или проверено значение разрядов проверочной части кода. Это правило определяется следующим образом.

В единичной подматрице проверочной матрицы определяется проверяемый или формируемый разряд проверочных символов (br). Он определяется строкой, в которой проверочный символ имеет единичный разряд “1”.

Разряды, имеющие значность “1” в этой строке транспонированной подматрицы и определяются те информационные разряды, которые участвуют в формировании этого правила.

Для этого суммируются по модулю «2» разряда информационных символов, имеющих “1” в соответствующей строке.

Так, первая строка позволяет сформировать правило проверки первого проверочного символа:

b1= a2a3a4a5

Вторая строка позволяет сформировать правило проверки второго проверочного символа:

b2= a1a3a4a5

И так далее:

b3= a1 a2а4a5

b4= a1 a2 а3a5

Полученное правило (или алгоритм) позволяет по известной информационной части кода сформировать его проверочную часть. Это означает, что при формирование разрешенных кодовых комбинаций в кодирующем устройстве достаточно знать информационную часть кода, а проверочные формируются как дополнение для получения полной разрядности разрешенной кодовой комбинации.

3. Определение адреса (синдрома) ошибки

При декодировании принимаемых кодовых команд всегда следует предполагать, что любая из принятых комбинаций может быть ошибочна, хотя бы в одном из разрядов. Для принятой кодовой комбинации введем отличительный знак (‘) принимаемых разрядов, предполагающий, что любой из разрядов может быть искажен, то есть ошибочен.

Синдром помогает определить адрес этой ошибки, то есть ошибочный разряд, если в принимаемом коде произошла единичная ошибка.

Алгоритм формирования синдрома состоит в следующем: в принятой кодовой комбинации определяем значность разрядов проверочной части кода, введя отличительный признак (*). Для этого суммируем по модулю «2» соответствующие значения разрядов проверочной части кода (b*) с принятыми разрядами (b’). Результат суммирования обозначим (**). То есть,

b1** = b1* b1

b2** = b2* b2

... … …. .… …

br** = br* br

где: b1* = a2’a3’a4’a5

b2* = a1’a3’a4’a5’ и т.д. – значности разрядов проверочной части принятого кода вычисленные, по правилу проверки проверочных символов.

b1’; b2’; и т.д. – фактические значности разрядов проверочных символов принятого кода.

Синдром ошибки (вектор ошибки или адрес ошибки) определяется кодовой комбинацией, полученной из совокупности разрядов b**:

b1**, b2**, b3**, …br**.

Синдром ошибки позволяет определить:

1. Наличие ошибки в принятой кодовой комбинации, т.е. решить является ли принятая кодовая комбинация разрешенной или она относится к запрещенной.

В первом случае принятая кодовая комбинация считается верной и она исполняется. Во втором – либо игнорируется, либо исправляется.

2. Определить адрес разряда кодового слова, в котором произошла одиночная ошибка, что позволяет его исправить.

Если синдром ошибки нулевой, то считается, что принятая комбинация безошибочна. Каждому ошибочно принятому разряду соответствует лишь свой код, характеризующий синдром ошибки.

Поясним на примере порядок формирования синдрома ошибки.

Вычислим синдромы ошибок, то есть адреса или разряд, в котором произошла ошибка, для одной из разрешенных, например первой разрешенной кодовой комбинации 10000111.

1. Допустим, что кодовая комбинация принята без ошибок (штрихи над значностью разрядов кодовой комбинации означают, что рассматривается принятый код, а не переданный):

a1’ a2’ a3’ a4’ a5’ b1’ b2’ b3’ b4

1 0 0 0 0 0 1 1 1

В соответствии с правилом формирования проверочных символов:

b1 = a2 a3Åa4Åa5, вычисляем

b1 = a2’ a3’Åa4’Åa5’ = 0  0 0  0 = 0, b1** = b1* b1

тогда: b1** = 0  0 = 0

Аналогично для других разрядов проверочных символов получаем:

b2 = a1’ a3’  a4’  a5’ = 1  0  0  0 = 1, b2** = 1  1 = 0

b3 = a1’ a2’  a4’  a5’ = 1  0  0  0 = 1, b3** = 1  1 = 0

b4 = a1’ a2’ a3’  a5’ = 1  0  0  0 = 1, b4** = 1  1 = 0

Синдром ошибки: b1** b2** b3** b4** = 0000.

Таким образом, если принятая РКК не искажена, то получаем нулевой синдром. Все нули являются признаком неискаженной кодовой комбинации.

2. Положим, что ошибка произошла во втором разряде принятой комбинации.

По аналогии с алгоритмом, изложенным выше, получим:

a1’ a2’ a3’ a4’ a5’ b1’ b2’ b3’ b4

1 (1) 0 0 0 0 1 1 1

b1 = a2’ a3’Åa4’Åa5’ = 1  0 0  0 = 1, b1** = 1  0 = 1

b2 = a1’ a3’  a4’  a5’ = 1  0  0  0 b2** = 1  1 = 0

b3 = a1’ a2’  a4’  a5’ = 1  1  0 0 = 0, b3** = 0  1 = 1

b4 = a1’ a2’ a3’  a5’ = 1  1  0 0 = 0, b4** = 0  1 = 1

Синдром ошибки: 1011, что характеризует код ошибки в 2 разряде.

Для ошибки в третьем разряде:

a1’ a2’ a3’ a4’ a5’ b1’ b2’ b3’ b4

1 0 (1) 0 0 0 1 1 1

b1 = a2’  a3’ Åa4 ’Åa5’ = 0  1 0  0 = 1, b1** = 1  0 = 1

b2 = a1’ a3’  a4’ a5’ = 1  1  0  0 =0, b2** = 0  1 = 1

b3 = a1’ a2’  a4’ a5’ = 1  0  0 0 = 1, b3** = 1  1 = 0

b4 = a1’ a2’ a3’  a5’ = 1  0  1 0 = 0, b4** = 0  1 = 1

Синдром ошибки: 1101.

Для ошибки в четвертом разряде разряде:

a1’ a2’ a3’ a4’ a5’ b1’ b2’ b3’ b4

1 0 0 (1) 0 0 1 1 1

b1 = a2’ a3’Åa4’Åa5’ = 0  0 1  0 = 1, b1** = 1  0 = 1

b2 = a1’ a3’  a4’  a5’ = 1  0  1  0 =0, b2** = 0  1 = 1

b3 = a1’ a2’  a4’  a5’ = 1  0  1 0 = 0, b3** = 0  1 = 1

b4 = a1’ a2’ a3’  a5’ = 1  0  0 0 = 1, b4** = 1  1 = 0

Синдром ошибки: 1110.

Для ошибки в пятом разряде:

a1’ a2’ a3’ a4’ a5’ b1’ b2’ b3’ b4

1 0 0 0 (1) 0 1 1 1

b1 = a2’ a3’Åa4’Åa5’ = 0  0 0  1 = 1, b1** = 1  0 = 1

b2 = a1’ a3’  a4’  a5’ = 1  0 0  1 =0, b2** = 0  1 = 1

b3 = a1’ a2’  a4’  a5’ = 1  0  0 1 = 0, b3** = 0  1 = 1

b4 = a1’ a2’ a3’  a5’ = 1  0  0 1 = 0, b4** = 0  1 =1

Синдром ошибки: 1111.

Искажение в проверочной части кода не приведет к исправлению информационной части кода.

Синдромы (адреса) ошибок в зависимости от разрядов, в которых они произошли, сведены в табл. 3.1

Номер разряда, в котором произошла ошибка

Синдром ошибки

b1**

b2**

b3**

b4**

ошибки не произошло

0

0

0

0

a2

1

0

1

1

a3

1

1

0

1

a4

1

1

1

0

a5

1

1

1

1

Таким образом, видно:

а) Только в случае, когда принятая кодовая комбинация не искажена, синдром ошибки нулевой.

б) Синдромы ошибок отличны от нуля, если ошибочно принимается любой из разрядов кодовой комбинации.

в) Синдромы ошибок отличаются друг от друга, не меньше, чем в одном разряде.

г) Синдромы ошибок сформированных одной производящей матрицей является величиной постоянной.

Для проверки правильности полученных синдромов ошибок можно обратиться к исходной подматрице проверочных символов производящей матрицы G(9,5). Видно, что каждая строка этой подматрицы и является синдромом ошибки.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]