- •Циклические коды.
- •1. Операции над двоичными многочленами.
- •Аппаратное умножение двоичных многочленов
- •Аппаратное деление многочленов.
- •2.Виды многочленов
- •Двойственные полиномы
- •Восьмеричное представление двоичных многочленов
- •Требования к образующему g(X).
- •Требования к образующему полиному.
- •Этап декодирования
- •Аппаратная реализация этапов кодирования и декодирования для циклических кодов.
- •Структурная схема кодирующего устройства.
- •Аппаратная реализация алгоритма декодирования.
- •Аппаратная реализация алгоритма декодирования.
Аппаратная реализация этапов кодирования и декодирования для циклических кодов.
(Отличие от предыдущего примера: кодирование и декодирование происходит аппаратно, при этом, целесообразно пользоваться не образующей матрицей, а использовать аппаратные схемы деления многочленов.)
Структурная схема кодирующего устройства.
P(x) = x3 + x + 1
ГЕНЕРАТОР
СИНДРОМА
&
k
0
a0 a1 a2 a3
Вход
q0=1 q1=1 q2=0 q3=1
&
Y
ГТИ Сх управл.
1
Задержка
на r
=3
разряда
Выход
Y = 1, при n = 1,2,3,4,5,6,7
Y = 0, при n = 5,6,7,8,9,10
После выполнения n = 7, имеем a2 = 1, a1 = 1,a0 = 0 R(x) = 011 110.
В основе схемы лежит генератор синдрома, осуществляющий аппаратное деление на образующий полиномG(x).
Аппаратная реализация алгоритма декодирования.
При программной реализации (рассмотренной выше) декодирование осуществлялось последовательным сдвигом влево до условия [(R)] =t с последующим возвращением назад, что неудобно для аппаратной реализации.
Так как продвижение кодовых комбинаций осуществляется старшими разрядами вперед, то более рациональным является сравнение остатка с синдромом ошибки старшего разряда.
R*(x) = остаток от деления[ℓ = 100 … 0 / G(x)] = 101;
“q”
Если вектор ошибки имеет вид ℓ = 0… 010 … 0, то для полученияR*(x) необходимо дополнительно выполнить “q” циклических сдвигов.
В основе аппаратной реализации устройства декодирования лежит тот же «генератор синдрома».
Аппаратная реализация алгоритма декодирования.
G(x) = x3 + x + 1; t=1;при ℓ = 1000 000
k = 4;n =7;R(x) = 101
E(x)
с
ГЕНЕРАТОР
СИНДРОМА
011 101*1 q0=1 q1=1 q2=0 q3=1 (q r=1 всегда)
R1 R0 R2
Исправление
ЛОГИЧЕСКАЯ СХЕМА
Сравнение
с & S(x)
= 101
ошибки в старшем разряде.
L Исправление
Запоминающее
устройство на n = 7 символовã7
a*испр.
Исправл.слово
Исходная информация:
k = 1001
1 000 000 1101 1 001 000 1101
1 011 1 011
0110 010 0
000 0 000 0
11 00 10 00
10 11 10 11
1 110 0 110 r
1 011 0 000 kr
101 110 = R(x) 10*01 110
n
Ẽ(x) = 1 1*01 110
N такта |
Вход ai |
S0 |
S1 |
S2 |
L |
ầ7 |
aвых |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1* k |
1 |
0 |
0 |
0 |
0 |
0 |
2 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
3 |
1 |
0 |
1 |
1 |
0 |
0 |
0 |
4 |
1 |
0 |
1 |
1 |
0 |
0 |
0 |
5 |
1 r |
0 |
1 |
1 |
0 |
0 |
0 |
6 |
0 |
1 |
1 |
1 |
0 |
1 |
1 |
7 |
0 |
1 |
0 |
1 |
1 |
1* |
0 |
8 |
0 |
0 |
0 |
0 |
0 |
0 |
0 k |
9 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
10 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
11 |
0 |
0 |
0 |
0 |
0 |
1 |
1 r |
12 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
13 |
0 |
|
|
|
|
|
|
14 |
0 |
|
|
|
|
|
|
Тат как схема сравнения построена на вектор ошибки ℓ = 0… 01, то, после циклического сдвига, мы будем иметь в генераторе синдрома остаток от деления ℓ = 10… 0/ P(x) = 100, а именно, «1» в младшем разряде. Чтобы избежать распространение «1» после исправления ошибки, с выхода «логической схемы» заведен сигнал на сумматорmod 2 младшего разряда генератора синдрома для обеспеченияR(x) = 0 после исправления ошибки. Иными словами, вслед за остатком101в генераторе должен появиться остаток100.