Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
200
Добавлен:
16.03.2015
Размер:
4.25 Mб
Скачать

3.2.2 Обнаружение и исправление ошибок. Декодирующее устройство

Рассмотрим процедуру обнаружения ошибок в принятой кодовой комбинации. Обнаружение ошибок может быть основано на сравнении принятой кодовой комбинации со всеми разрешенными. Если принятая кодовая комбинация совпадает с одной из разрешенных, то можно сделать вывод о том, что ошибок при передаче не было или переданная (разрешенная) кодовая комбинация Аiперешла в другую разрешенную кодовую комбинацию Аj. Если принятая кодовая комбинация не совпадает ни с одной из разрешенных, то делается вывод о том, что произошла ошибка (или ошибки) в этой кодовой комбинации. Однако такой алгоритм декодирования требует сравнения принятой кодовой комбинации со всеми разрешенными и является поэтому весьма громоздким, особенно в том случае, когда число разрешенных кодовых комбинаций велико.

Воспользуемся знанием правил формирования проверочных элементов и сформируем на приеме проверочные элементы по принятым информационным. Очевидно, что сформированные на приеме проверочные элементы ,... должны совпадать при отсутствии ошибок с принятыми проверочными элементами,

,… Они будут совпадать также и в том случае, если переданная (разрешенная) кодовая комбинация Аiперешла в другую разрешенную.

Сравнение элементов ,... и, , ... можно выполнить путем попарного суммирования этих элементов, т. е.,…При отсутствии ошибок= 0,= 0 и т. д. Последовательностьb1=,b2=... называется синдромом, элементы которогоb1,b2,b3,...,br, при отсутствии ошибок равны нулю. Если хотя бы один элемент синдрома не равен нулю, то можно утверж-дать, что принятая кодовая комбинация содержит ошибки.

Пример3.6. Пусть код (6,3) (d0= 3,tо.ош. = 2,tи.ош. = 1) задан системой проверок (3.5) — (3.7) и при передаче кодовой комбинации 101 100 на приеме получили 001 101, т. е. искажены элементыa1и а6 т.е. вектор ошибок равен Е=10000. Вычислим элементы синдромаb1,b2,b3:

Так как синдромb1,b2,b3отличен от нуля, то ошибка обнаружена.

Декодер для кода (7,4), работающий в режиме обнаружения ошибок, представлен на рис. 3.2. Выходы сумматоров, в которых формируются элементы синдрома, по-даются на схему ИЛИ. С выхода последней снимается единица (сигнал «ошибка») при

обнаружении ошибок. При этом приемник отвергает принятое кодовое слово. Такой отказ от принятого кодового слова называется стиранием и обычно предполагает повторение кодового слова заново.

Операцию нахождения синдрома можно представить как определение произведения проверочной матрицы Hна, где— транспонированный вектор принятого кодового слова. При отсутствии ошибокH= 0,

где

;.

Отсюда имеем систему уравнений

Вид синдрома будет определяться только вектором ошибок и не зависит от вида переданной кодовой комбинации. Действительно, так как , где Е — вектор ошибок, то

.

Рассмотренный в примере (3.6) код (6,3) имеет кодовое расстояние d0=3 и способен исправлять однократные ошибки. Если неправильно принят элемент а2 (Е=010000), то из системы уравнений

, (3.9)

, (3.10)

(3.11)

получаем b1= 0,b2= 1,b3= 1, так как а2входит в (3.10) и (3.11) и не входит в (3.9). Значения синдромов для случая, когда имеется одиночная ошибка в том или ином элементе, приведены в табл. 3.2.

Таблица 3.2  Значения синдромов при обнаружении одиночной ошибки

Ошибка

Синдром

101

011

111

100

010

001

Рис. 3.3 - Декодирование с исправлением ошибок для кода (7,4)

Нетрудно заметить, что вид синдрома, соответствующий искаженному элементу , совпадает сi-м столбцом матрицы (3.8). Это со всей очевидностью следует из следующей записи:

для случая, когда Е = 100000. Нетрудно догадаться, что если имела место двукратная ошибка, например, в i-иj-м элементах, то синдром был бы равен суммеi-го иj-го столбцов матрицы Н. Так, еслиi=l, аj=3, тоb1b2b3= 010, т. е. будет сделан неверный вывод о том, что искажен элемент, так как код двукратные ошибки не исправляет.

Структурная схема декодера с исправлением одиночных ошибок для кода (7,4) приведена на рис. 3.3. На вход декодера поступает кодовая комбинация, сформирован-ная кодером, изображенным на рис. 3.1. По принятой комбинации вычисляется синд-ром, который подается на дешифратор «синдром-ошибка». При одиночной ошибке на одном из выходов дешифратора появляется «1» (элемент вектора ошибки). Сложение вектора ошибки с принятой комбинацией приводит к исправлению ошибки.