Кодирование неразделимым циклическим кодом заключается в умножении полинома сообщения на генераторный полином F(x)=Q(x)*P(x).
Рассмотрим кодирование неразделимым ЦК на примере: P(x)=1+x3+x4, Q(x)=1+x2+x3.
F(x)=Q(x)*P(x)=(1+x2+x4)(1+x3+x4)=1+x2+x4+x5+x7=10101101
Для реализации кодера потребуется два сумматора по модулю два и 4 триггерных ячейки (элемента задержки), т.к. 4 – это максимальная степень полинома P(x).
Кодирование будет проходить за (n+m)+1=4+3+1=8 тактов, где m и n – это максимальные степени полиномов Q(x) и P(x).
Схема кодера с вынесенными сумматорами приведена на рисунке. На вход схемы поступает многочлен Q(x), начиная с коэффициентов высших порядков.

Таблица пошаговой работы схемы
| шаг | Q(x) | 4 | 3 | 2 | 1 | F(x) |
| 0 | 0
| 0
| 0
| 0 | 0 | |
| 1 | 1
| 1 | 0 | 0 | 0 | 1 |
| 2 | 1 | 1 | 1 | 0 | 0 | 0 |
| 3 | 0 | 0 | 1 | 1 | 0 | 1 |
| 4 | 1 | 1 | 0 | 1 | 1 | 1 |
| 5 | 0 | 0 | 1 | 0 | 1 | 0 |
| 6 | 0 | 0 | 0 | 1 | 0 | 1 |
| 7 | 0 | 0 | 0 | 0 | 1 | 0 |
| 8 | 0 | 0 | 0 | 0 | 0 | 1 |
– начальное состояние
F(x)i=Q(x)iÅ4i-1Å1i-1
При кодировании разделимым кодом существует два варианта построения кодирующего устройства в зависимости от соотношения между
и l:
1) если k > l, то кодер реализуется по порождающему полиному
;
2) если k < l, то кодер реализуется по проверочному полиному
.
При этом минимизируется число ячеек памяти в регистре сдвига.
Кодер, реализованный по полиному g ( x ) содержит
-разрядный регистр сдвига и определяет остаток от деления Q(x)×xl на генераторный полином P(x).
Пример: P(x)=1+x2+x3, Q(x)=1+х+x2+x3.
Схема кодера изображена на рисунке и работает следующим образом: вначале ключ
находится в положении 1, а ключ
замкнут. Информационные символы, подаваемые на вход через ключ
, поступают на выход, а через ключ
– в кодирующее устройство, где через
=4 тактов образуется
=7-4=3 проверочных символа. После этого ключ
переводится в положение 2, а ключ
– размыкается. Затем регистр делает еще
=3 такта, выдавая контрольные символы из ячеек регистра на выход кодера.

Таблица пошаговой работы схемы
| шаг | Q(x) | z | 1 | 2 | 3 | F(x) |
| 0 | 0 | 0
| 0 | 0 | 0 | |
| 1 | 1 | 1
| 1
| 0 | 1 | 1 |
| 2 | 1 | 0
| 0
| 1 | 0 | 1 |
| 3 | 1 | 1
| 1
| 0 | 0 | 1 |
| 4 | 1 | 1
| 1 | 1 | 1 | 1 |
| 5 | 0 | 0 | 0 | 1 | 1 | 1
|
| 6 | 0 | 0 | 0 | 0 | 1 | 1 |
| 7 | 0 | 0 | 0 | 0 | 0 | 1 |
– начальное состояние
zi=Q(x)iÅ3i-1
1→2 (2i=1i-1)
3i=2i-1Åzi
F(x)i=Q(x)i
Перед 5-ым тактом переключаются ключи в схеме
Получили F(x)=1111111
Кодер, реализованный по полиному h ( x ), работает следующим образом: сначала ключ
находится в положении 1, и на вход подаются информационные символы. После
тактов информационные символы занимают все
ячеек регистра. Затем ключ переводится в положение 2, и регистр совершает еще n тактов, при каждом из которых на выходе появляется очередной символ кодового слова. Уже при первом из этих
тактов в первой ячейке формируется проверочный символ. За
тактов весь кодовый вектор сформирован,
символов выданы на выход, а остальные
символов находятся в регистре. Ключ возвращается в положение 1, и в регистр вводится
информационных символов следующего вектора, а оставшиеся в регистре
символы предыдущего вектора выводятся на выход кодера.

Рис. Кодер c k-разрядным регистром, реализованный по полиному h(x)
Дата: 2018-12-28, просмотров: 854.