Материал: 636_Nosov_V.I._Seti_radiodostupa_CH.1_

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

r (n k) log2 (n 1).

(4.9)

Из (4.7) и (4.9) следует, что в коде Хэмминга возможны комбинации

(n,k): (7,4); (15,11); (31,26); (63,57) и т.д.

Возможна реализация кодов Хэмминга и с другими значениями количества бит данных и проверочных бит для исправления одиночных ошибок таблица 4.2.

Таблица 4.2 Соотношение между битами данных и проверочных

Биты данных k

от3 до 4

от 5 до 11

от12 до 26

от27 до 57

от27 до 57

Проверочные биты r

3

4

5

6

7

Вкачестве примера рассмотрим реализацию кода Хэмминга для r = (n-k)

=3. Из (4.6 – 4.9) и таблицы 4.2 следует, что в этом случае необходимо использовать код (7,4), т.е. каждый блок содержит n = 7 бит, из которых k

=4 информационных бита, которые дополняются r = (n-k) = 3 проверочными битами. Проверочные (контрольные) биты определяются (рассчитываются) путем сложения по модулю 2 (исключающее ИЛИ) информационных бит. При определении каждого из проверочных бит информационные биты участвуют, по крайней мере, дважды. Для рассматриваемого примера при заданных четырех информационных битах (i1,i2 ,i3,i4 ) каждое кодовое слово дополняется тремя проверочными битами,

определяемыми равенствами

r1

i1

i2

i3 ,

 

r2

i2

i3

i4 ,

(4.10)

r3

i1

i2

i4 .

 

Шестнадцать разрешенных семибитовых кодовых слов (7,4) – кода Хэмминга (i1,i2 ,i3,i4 ,r1,r2 ,r3 ) представлены в таблице 4.3.

Схемная реализация кодера (7,4) – кода Хэмминга в соответствии с формулой (4.10) и таблицей 4.3 представлена на рисунке 4.3.

При вычислении проверочных бит (r1,r2 ,r3 ) согласно (4.10) и рисунка

4.3 осуществляется проверка на четность комбинации из трех информационных бит, если рассматриваемая комбинация четная, то ri = 0, если нечетная – ri = 1.

Таблица 4.3 Разрешенные комбинации (7,4) – кода Хэмминга

0000000

 

1000101

0001011

 

1001110

0010110

 

1010011

 

111

0011101

1011000

0100111

1100010

0101100

1101001

0110001

1110100

0111010

1111111

4-битовое

7-битовое

слово данных

кодовое слово

i1

i1

i2

i2

i3

i3

i4

i4

 

r1

 

r2

 

r3

 

Рис. 4.3 Кодер (7,4) – кода Хэмминга

При передаче по каналу связи возможно появление ошибок, поэтому принятое семибитовое кодовое слово (i1 ,i2 ,i3 ,i4 ,r1 ,r2 ,r3 ) . По изображенному на рисунке 4.4 алгоритму вычисляются биты

112

s1

r1

i1

i2

i3 ,

 

s2

r2

i2

i3

i4

,

 

 

 

 

 

(4.11)

s3

r3

i1

i2

i4.

7-битовое

 

 

 

 

 

4-битовое

кодовое слово

 

 

 

 

 

кодовое слово

i1

 

 

 

 

 

i1

i2

 

 

 

 

 

i2

i3

 

 

 

 

 

i3

i4

 

 

 

 

 

i4

r1

e4

e

3

e

e

1

 

 

2

 

r2

Корректирующая

 

 

логика

 

 

 

 

 

 

 

r3

s1

s2

s3

Рис.4.4 Декодер (7,4) – кода Хэмминга

Если в канале отсутствуют ошибки, то согласно (4.10) и (4.11) биты s1, s2, s3 будут равны нулю, что и свидетельствует об отсутствии ошибок. Трехбитовая последовательность (s1, s2s3 ) называется синдромом, структура

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

113

На рисунке 4.5 темным цветом выделены ошибочно принятые биты. Из рисунка 4.5 видно, что при наличии ошибки в одном из информационных (i1,i2 ,i3,i4 ) бит синдром имеет в своем составе две единицы. Если же ошибки

происходят в проверочных битах (r1,r2 ,r3 ) , то синдром имеет в своем составе

одну единицу.

На основе вычисленного в декодере Хэмминга синдрома рисунок 4.4 корректирующая логика вырабатывает сигнал (e1,e2 ,e3,e4 ) для исправления

ошибок в информационных битах (i1,i2 ,i3,i4 ) . Очевидно, что ошибки в проверочных битах (r1,r2 ,r3 ) исправлять не нужно.

i1

i2

i3

i4

 

 

 

 

 

 

 

Передаваемое четырехбитовое слово

0

1

1

0

 

 

 

 

 

 

 

данных

 

 

 

 

 

 

 

 

i1

i2

i3

i4

r1

r2

r3

 

 

 

 

Семибитовое слово на выходе кодера

 

 

 

 

 

 

 

 

 

 

 

0

1

1

0

0

0

1

 

 

 

 

Хэмминга

i1

i2

i3

i4

r1

r2

r3

 

s1

s2

s3

Принятая кодовая комбинация и значение

 

 

 

 

 

 

 

 

 

 

 

 

0

1

1

0

0

0

1

 

0

0

0

синдрома при отсутствии ошибок

i1

i2

i3

i4

r1

r2

r3

 

s1

s2

s3

Принятая кодовая комбинация и значение

 

 

 

 

 

 

 

 

 

 

 

0

1

1

1

0

0

1

 

0

1

1

синдрома при ошибке в i4

 

 

 

 

 

 

 

 

 

 

 

 

i1

i2

i3

i4

r1

r2

r3

 

s1

s2

s3

Принятая кодовая комбинация и значение

 

 

 

 

 

 

 

 

 

 

 

0

1

0

0

0

0

1

 

1

1

0

синдрома при при ошибке в i3

 

 

 

 

 

 

 

 

 

 

 

 

i1

i2

i3

i4

r1

r2

r3

 

s1

s2

s3

Принятая кодовая комбинация и значение

 

 

 

 

 

 

 

 

 

 

 

0

0

1

0

0

0

1

 

1

1

1

синдрома при при ошибке в i2

 

 

 

 

 

 

 

 

 

 

 

 

i1

i2

i3

i4

r1

r2

r3

 

s1

s2

s3

Принятая кодовая комбинация и значение

 

 

 

 

 

 

 

 

 

 

 

1

1

1

0

0

0

1

 

1

0

1

синдрома при при ошибке в i1

 

 

 

 

 

 

 

 

 

 

 

 

i1

i2

i3

i4

r1

r2

r3

 

s1

s2

s3

Принятая кодовая комбинация и значение

 

 

 

 

 

 

 

 

 

 

 

0

1

1

0

1

0

1

 

1

0

0

синдрома при при ошибке в r1

 

 

 

 

 

 

 

 

 

 

 

 

i1

i2

i3

i4

r1

r2

r3

 

s1

s2

s3

Принятая кодовая комбинация и значение

 

 

 

 

 

 

 

 

 

 

 

0

1

1

0

0

1

1

 

0

1

0

синдрома при ошибке в r2

 

 

 

 

 

 

 

 

 

 

 

 

i1

i2

i3

i4

r1

r2

r3

 

s1

s2

s3

Принятая кодовая комбинация и значение

 

 

 

 

 

 

 

 

 

 

 

0

1

1

0

0

0

0

 

0

0

1

синдрома при ошибке в r1

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 4.5 Пояснения к работе декодера Хэмминга при наличии ошибок в принятой кодовой комбинации

Рассмотрим работу корректирующей логики. Очевидно, что для исправления ошибки в информационном бите необходимо с выхода корректирующей логики подать «1» на сумматор по модулю 2 в ветвь соответствующего символа. По этому принципу построена корректирующая логика, схема которой представлена на рисунке 4.6.

114

На вход корректирующей логики поступают символы синдрома ошибок (s1, s2s3 ) , которые подаются на каждый из трех входов четырех схем совпадения

(трехвходовые схемы И). Вход со значком означает инверсию входного символа синдрома ошибки. При наличии ошибки в первом информационном символе i1 символ «1» (импульс) появится на выходе первой схемы совпадения, так как при этом значение синдрома в соответствии с рисунком 4.4 (s1, s2s3 ) =

101, а после инверсии второго символа синдрома s2 1 получим на трех входах первой схемы совпадения (s1, s2 , s3 ) 111, что даст на выходе этой схемы e1 1.

При подаче этой «1» на сумматор по модулю 2 в цепи первого информационного символа получим

( i1

i2

i3

i4 ) = ( 0

1

1

0 )

( i'1

i2

i3

i4 ) = ( 1

1

1

0 )

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

e1 = 1

 

( i1 i2 i3 i4 ) = ( 0

1 1 0 )

Принятая кодовая комбинация при отсутствии ошибок

Принятая кодовая комбинация при ошибке в i1

Сигнал на выходе первой схемы совпадения корректирующей логики

Кодовая комбинация после исправления ошибки в i1

e4

 

e3

 

e2

 

e1

 

 

 

 

 

 

 

 

 

 

4

3

2

1

s1

s2

s3

 

 

 

Рис. 4.6 Структурная схема корректирующей логики декодера (7,4) – кода Хэмминга

В кодах Хэмминга с увеличением длины кодовой комбинации n растет сложность декодирования. Коды Хэмминга в силу этой причины используются для исправления одиночных ошибок при небольшом числе информационных символов.

115

Источник: https://studfile.net/preview/16709054/