Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТМ / Теория / TM_Lectures.pdf
Скачиваний:
107
Добавлен:
24.02.2016
Размер:
6.53 Mб
Скачать

При наличии ошибки в одном из информационных символов комбинации F * (x) на выходах соответствующего элемента И DD5…DD8 появится еди-

ничный сигнал, который при прохождении информационного символа через выходной сумматор по модулю 2 DD9…DD12 изменит его на противополож-

ный. Процесс декодирования кодовой комбинации F*(x) =1&000101 показан на

схеме в виде состояния отдельных элементов. В данном случае зафиксировано искажение символа k2, который скорректирован выходным сумматором по мо-

дулю 2 DD10 c 0 на 1.

4.10. Кодирующее и декодирующее устройство кода Хемминга

Принцип построения кодирующего устройства не зависит от числа информационных разрядов передаваемого кода. Поэтому рассмотрим схему кодирующего устройства (рис. 4.22) для числа информационных символов k = 4, контрольных символов r = 4 и d = 4, хотя она без принципиальных изменений может быть использована для кодирования любого числа k за счет увеличения числа сумматоров по модулю 2 и числа входов отдельных элементов.

Кодер состоит из входного регистра DD1, куда записываются комбинации, подлежащие кодированию; формирователя контрольных символов на элементах DD2…DD5 и преобразователя параллельного кода в последовательный на мультиплексоре DD6.

В соответствии с методикой формирования контрольных символов, изложенной в подразд.2.3.2, можно записать, что r1 = k4 k3 k1,

r2 = k4 k2 k1 , r3 = k3 k2 k1 , r4 = k4 k3 k2 k1 r1 r2 r3 . Со-

гласно этим выражениям осуществляем подключение входов сумматоров по модулю 2 к информационным шинам k1…k4. Порядок подачи информационных и контрольных символов на вход мультиплексора, а следовательно, и очередность их передачи в линию связи может быть различна: сначала информационные, а потом контрольные или наоборот, или классический вариант – на местах, кратных 2i , где i = 0,1,2 … r, контрольные, а на остальных – информационные.

Порядок кодирования комбинации G(x)= k4k3k2k1 = 1011 показан на рис. 4.22 в виде состояния элементов. В результате в линию связи поступит кодовая комбинация F(x) = 01100110 с классическим порядком следования контрольных и информационных символов.

122

 

K4

 

 

 

 

1

 

 

0

 

 

 

D0

RG

K4

1

0

M2

0

X1

MS

 

K3

 

 

1

r1

1

X2

Вход

D1

 

 

0

DD2

 

1

 

 

 

K3

 

 

 

X3

 

 

K2

D2

 

 

 

1

 

 

0

X4

 

 

K1

D3

 

K2

1

1

M2

1

0

X5

 

 

 

 

 

 

 

 

 

 

 

1

DD3r2

 

1

X6

Выход

 

 

 

 

K1

1

 

 

 

1

 

 

упр

 

 

 

 

0

X7

F(X) =

 

 

PE

 

 

 

0

M2

 

X8

 

 

 

 

 

0

 

01100110

 

 

зап

 

 

 

1

 

 

 

 

C1

DD1

 

 

1 DD4r3

СТ2

1

S0

 

 

 

 

 

 

 

 

 

2

S1

 

 

 

 

 

 

 

1

 

от

4

S2

 

 

 

 

 

 

 

M2

 

 

_

DD6

 

 

 

 

 

 

0

 

 

E

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

1

r4

0

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

1

DD5

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

Рис. 4.22. Кодер кода Хемминга с d = 4

Декодирование заключается в нахождении ошибок, их исправлении и выводе полезной информации потребителю. Схема декодера для кода (8,4), позволяющего исправлять одиночные и обнаруживать двойные ошибки, приведена на рис. 4.23. Декодер состоит из входного регистра DD1, определителя синдрома S1S2S3 на элементах DD2…DD4, определителя общей проверки на четность SΣ на элементе DD15, дешифратора синдрома S1S2S3 на элементе DD5, дешифратора двойной ошибки на элементе И DD6, устройства коррекции ошибок на элементах "исключающее ИЛИ" DD7…DD10 и устройства вывода на элементах И DD11…DD14.

Входы определителя синдрома DD2…DD4 подключаются в соответствии с принятым алгоритмом кодирования. Для кода (8,4) сумматор по модулю 2 DD2 осуществляет проверку S1 = r1 k4 k3 k1 , сумматор DD3 —

123

S2 = r2 k4 k2 k1 , сумматор DD4 – S3 = r3 k3 k2 k1. Общая проверка на четность принятой кодовой комбинации производится сумматором DD15 – SΣ = r1 r2 k4 r3 k3 k2 k1 r4 . Дешифратор синдрома представляет обычный дешифратор двоичного кода 4–2–1 в десятичный.

Вход

F*(X) = 01010110

упр

зап

сброса

S1 RG r1

r2

K4

r3

K3

PE K2

C1 K1

R DD1 r4

 

1

M2

 

 

 

 

 

9

 

&

 

 

HLR

1

3 0

 

 

 

 

 

10 1

 

 

 

 

 

0

5 0

S1

1

 

 

 

 

 

1 DD6 0

DA1

 

 

2

7 0 DD2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

1

 

 

 

 

 

 

 

 

 

 

 

 

 

3

2

 

 

 

 

 

 

 

 

 

 

 

 

 

0

M2

 

 

 

 

10 11

 

 

 

 

 

 

3 1

 

 

 

 

 

= 1

 

&

 

 

4

1

DC

0

 

 

 

K4

1

6 0

S2

1

 

3

0

 

 

 

1

 

 

11

DD7 0

DD11 0

 

7 1 DD3

 

3 0

 

0

 

5

 

12

 

0

1

 

2

 

 

 

12

 

= 1

 

&

K3

 

 

 

 

 

5

 

5

0

 

 

 

 

д

6

 

 

 

 

0

 

DD8 0

DD12 0

х о

4

M2

 

 

 

13

 

0

1

5 1

4

 

6 0 13 = 1

 

&

 

ы

 

 

 

 

 

 

 

 

 

 

 

 

 

K2

7

6 0

S3

1

DD5 7

 

14 6

0

 

1

 

0

В

 

DD9

DD13

 

 

 

 

 

 

 

1

 

 

 

1

7 1

DD4

 

 

 

1

 

 

 

 

 

8

1

 

 

 

 

 

14

 

= 1

 

&

K1

 

 

 

 

 

 

1

 

0

 

 

 

 

 

 

 

7

 

 

 

 

 

 

 

 

 

 

DD10 0

DD14 0

 

 

1

 

 

 

 

 

 

 

1

 

 

2 0

M2

 

 

 

 

 

 

 

 

 

 

 

 

 

3 1

S

 

 

 

 

 

 

 

 

 

 

 

 

 

4 0

 

 

 

 

 

 

 

 

 

считывания

 

5 1

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

6 0

 

 

 

 

 

 

 

 

 

 

 

 

9

7 1

DD15

 

 

 

 

 

 

 

 

 

 

 

 

 

8 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 4.23. Декодер кода Хемминга (8,4), позволяющего исправлять одиночные ошибки и обнаруживать двойные

В данном дешифраторе DD5 показаны прямые выходы, соответствую-

щие информационным символам, и инверсный выход 0, на котором нулевой сигнал появляется только в случае, когда S1= 0, S2= 0, S3= 0; выходы, соответствующие контрольным символам, не показаны, так как их коррекция не производится. На выходе дешифратора двойной ошибки, элементе 2И–НЕ DD6, сигнал 0 (запрета) появляется только в том случае, когда на инверсном выходе

124

DD15 будет 1 и на выходе 0 дешифратора DD5 тоже будет 1. Этот сигнал поступает на один из входов схем И DD11…DD14 и запрещает выдачу информации потребителю.

При всех других соотношениях Si и SΣ , указанных в подразд. 2.3.2, на выходе И DD6 будет сигнал, равный 1.

Процесс декодирования кодовой комбинации F*(x) = 010&1&0110 показан

на схеме в виде состояния элементов. В данном случае на выходе схемы И DD6 будет 0, а следовательно, схемы И DD11…DD14 будут закрыты, информация потребителю не поступит и будет включен индикатор HLR, свидетельствующий о двойной ошибке.

4.11. Технические средства умножения и деления многочлена на многочлен

Устройства для умножения и деления многочлена на многочлен составляют основу кодирующих и декодирующих устройств циклических кодов. Эти устройства строятся на базе регистров сдвига с обратными связями и сумматоров с приведением коэффициентов по модулю 2. Такие регистры также называют многотактными линейными переключательными схемами и линейными кодовыми фильтрами Хаффмана.

Основные правила построения схем умножителей и делителей:

1) число ячеек регистра равно старшей степени многочлена, на который происходит умножение или деление. Ячейка регистра для старшей степени

многочлена отсутствует, но всегда присутствует ячейка x0 ;

2)число сумматоров на единицу меньше числа ненулевых членов многочлена, на который производится умножение или деление, или на единицу меньше его веса;

3)при делении отбрасывается сумматор, соответствующий старшему члену многочлена, а при умножении – младшему;

4)сумматоры устанавливают перед ячейками регистра, соответствующими ненулевым членами многочлена тех же степеней;

5)при умножении множимое подается одновременно на вход и на все сумматоры;

6)при делении делимое подается только на первый сумматор, а частное – на выход и на все сумматоры;

7)множимое или делимое поступает на вход начиная со старшего разряда. Функциональная схема делителя на многочлен P(x)=x4+x3+1 приведена на

рис. 4.23.

Разделим на этот многочлен (делитель) многочлен G(x)=x7+x5+x4+x3+x1+1 (делимое). Результат деления представлен в виде табл. 4.2, где стрелками показаны направления процессов между элементами.

125

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Выход

Вход

M2

 

D

T

 

 

D

T

 

 

D

T

 

M2

 

D

T

 

DD1

 

C

x0

 

 

C

x1

 

 

C

x2

 

DD5

 

C

x3

F(X) = 1101

 

 

DD2

 

 

DD3

 

 

DD4

 

 

DD6

 

 

 

 

 

 

 

 

 

 

Q(X) = 10111011

такт

Рис. 4.24. Схема для деления на многочлен P(x) = x4 + x3 + 1

Из табл. 4.2 следует, что в такте 1 единица старшего разряда делимого записывается в ячейку DD2, в такте 2 эта единица считывается с ячейки DD2 и записывается в ячейку DD3 (косая стрелка из ячейки DD2 в ячейку DD3). Одновременно нуль делимого записывается в ячейку DD2, а нули из ячеек DD3 и DD4 переходят соответственно в ячейки DD4 и DD6, что также показано косыми стрелками. Нуль из ячейки DD6 появляется на выходе.

 

 

 

 

 

Таблица 4.2

 

 

Деление многочленов

 

 

Номер

Вход

Состояние ячеек регистра

Частное

 

 

 

 

такта

 

DD2

DD3

DD4

DD6

(Выход)

0

 

0

0

0

0

 

 

1

1

1

0

0

0

0

 

2

0

0

1

0

0

0

 

3

1

1

0

1

0

0

 

4

1

1

1

0

1

0

 

5

1

0

1

1

1

1

Частное

6

0

1

0

1

0

1

7

1

1

1

0

1

0

 

8

1

0

1

1

1

1

 

126

В тактах 3 и 4 ячейки регистра продолжают заполняться, но на выход пока поступают только сигналы 0. Вследствие того что с ячейки DD6 сигнал 1 через сумматор DD1 поступает в ячейку DD2 одновременно с 1 делимого, в ней записывается 0 (такт 4). В этом же такте на выходе появляется 1 и через сумматор DD5 происходит запись 1 в ячейку DD6 (обратная связь с ячейки DD6 на ячейку DD2 регистра и на ту же ячейку DD6 показана косыми стрелками влево и вниз). В такте 6, хотя на вход поступает 0 делимого, по обратной связи с ячейки DD6 в ячейку DD2 записывается 1. Однако из–за той же обратной связи в ячейке DD6 происходит запись 0, так как сумматор DD5 не пропустил два сигнала 1.

Заполнение ячеек регистра в такте 7 происходит без обратной связи, которая вновь сказывается в такте 8. Частное читается сверху вниз. Остатки от деления начинают записываться в ячейки регистра начиная с такта 5. Последний остаток R(x) = 1110 записан в такте 8.

На рис. 4.25 изображена схема умножителя на многочлен P(x) = x4+x3+1. Рассмотрим процесс умножения многочлена G(x) = x7+x5+x4+x3+x+1 на данный многочлен P(x). Процесс умножения представлен в табл. 4.3.

Вход

D

T

 

 

D

T

 

 

D

T

 

M2

 

D

T

 

 

M2

Выход

 

 

 

 

 

 

 

 

C

x0

 

 

C

x1

 

 

C

x2

 

DD4

 

C

x3

 

 

DD6

 

DD1

 

 

DD2

 

 

DD3

 

 

DD5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

такт

Рис. 4.25. Схема для умножения на многочлен P(x) = x4 + x3 + 1

В такте 1 единица старшего разряда записывается одновременно в ячейки DD1, DD5 и поступает на выход. В такте 2 на выход проходит сигнал 1 с ячейки DD5, а с ячейки DD1 единица переходит в ячейку DD2. В такте 3 сигнал 1 записывается с ячейки DD1 и DD5 и проходит на выход, а сигнал 1 с ячейки DD2 переходит в ячейку DD3. В такте 4 сигнал 1 записывается только в ячейку DD1, но на выход он не проходит и не записывается в ячейку DD5. Этому препятствуют сигналы 1 с ячеек DD3 и DD5. Начиная с такта 9 информация в регистр не поступает и регистр очищается, т.е. информация, записанная в такте 8, такт за тактом подается на выход. Результат умножения F(x) = 111011010011 читается сверху вниз.

127