- •1. Циклические коды (цк)
- •1.1 Циклические корректирующие коды
- •1.2 Построение цк
- •1.3 Определение параметров цк(цск) по m,s,r
- •1.4 Определение параметров цк, обеспечивающих заданную вероятность передачи по каналу с шумом
- •1.5 Кодеры цск
- •1.5.1 Кодирование с помощью полинома h(X)
- •1.5.2 Кодирование с помощью полинома g(X)
- •1.6 Декодеры цск
- •1.6.1 Декодеры Меггита
- •1.6.1.1 Режим исправления и обнаружения ошибок
- •1.6.1.2 Режим обнаружения ошибок
- •1.7 Примеры
- •1.7.1 Пример 1
- •1.7.2 Пример 2
- •1.7.3 Пример 3
- •1.7.4 Пример 4
- •1.7.5 Пример 5
- •1.7.7 Пример 7
- •1.7.8 Пример 8
- •1.7.9 Пример 9
- •1.7.10 Пример 10
- •1.7.11 Пример 11
- •1.8 Справочные материалы
- •1.8.1 Теоремы бчх
- •1.8.2 Таблица неприводимых многочленов
1.7.7 Пример 7
Требуется построить кодер по полиномуh(x)имеет вид:
h(x)=1+x2+x3+x4.
Выберем произвольно m=4 информационных символов:
В нашем случае кодовый вектор, в соответствии с (12), имеет вид:
Информационными являются символы: a0,a1,a2,a3
Контрольными – a4,a5,a6.
По формуле (11`), найдем:
Таким образом, вид кодового вектора, посылаемого в линию связи, начиная с информационных разрядов, такой:
а6 а5 а4 а3 а2 а1 а0
0 1 1 0 0 0 1
Для реализации данного способа кодирования требуется регистр, сдвига с логическими обратными связями, содержащий m=4 ячеек памяти. Вид обратной связи полностью определяется полиномомh(x) (смотри соотношение 11 и 11`). Нарис.1а приведен указанный кодирующий регистр (построен с помощью обобщенной структурной схемы кодера по полиномуh(x)см.рис.1).
рис.1а. Кодирующий регистр кода (7,4,3) на основе
(m2 – сумматор по модулю 2)
Работа устройства. В исходном состоянии в регистр записывают произвольно выбранные m=4 информационных разрядов. Далее на регистр от генератор тактовых (сдвиговых) импульсов поступаетn=7 импульсов. С выхода 1-й ячейки памяти (D0 ) регистра в линию связи поступают кодовые элементы систематического циклического кода, начиная с информационных символов. При этом на каждом такте в 4-ю ячейку (D3) регистра записывается символ, значение которого определяется на основании выражения (11`):
(i=– номер такта).
Таблица переходов:
№ такта |
Разряд регистра |
Выход | ||||
D3 |
D2 |
D1 |
D0 | |||
0 |
0 |
0 |
0 |
1 |
- | |
1 |
1 |
0 |
0 |
0 |
1 |
m=4 |
2 |
1 |
1 |
0 |
0 |
0 | |
3 |
0 |
1 |
1 |
0 |
0 | |
4 |
1 |
0 |
1 |
1 |
0 | |
5 |
0 |
1 |
0 |
1 |
1 |
k=3 |
6 |
0 |
0 |
1 |
0 |
1 | |
7 |
0 |
0 |
0 |
1 |
0 |
Временная диаграмма:
1.7.8 Пример 8
Задан порождающий полином:
Данному полиному соответствует код (7,4), т.е. m=4,k=3.
Пусть:
Тогда:
Найдем r(x):
Итак,
Тогда кодовый вектор:
,
где первые четыре символа – произвольно выбранные информационные символы, а последние три – соответствующие им проверочные символы (счет справа налево).
При реализации данного способа кодирования требуется регистр сдвига с логическими обратными связями, содержащий k=3 ячеек памяти. Необходимое число сумматоров поmod2 определяется, как количество плюсов в полиномеg(x)(У нас 2).
Вид обратной связи полностью определятся полиномом g(x) =1+x2+x3. (Пояснение:D3соответствуетx2 в полиномеg(x), значит в кодере должен присутствовать сумматор, который ставиться переда данной ячейкой памяти и осуществляет суммирование поmod2 значения предыдущей памяти на предыдущем такте и обратной связи на данном такте). Структура кодера (кодопреобразователя), приведена нарис.2а, в ней регистр выполняет деление векторана полиномg(x)(построен с помощью обобщенной структурной схемы кодера по полиномуg(x). см. рис.2).
рис.2а. Кодирующий регистр кода (7,4) на основе
с предварительным умножением
В таблице переходов приведена последовательность смены состояний регистра (см.рис.2а) с обратными связями (ОС) при подаче на его вход последовательности 0001, начиная с крайней правой единицы.
Таблица переходов:
Состояние ключей |
№ такта |
Вход |
Разряд регистра |
Выход | |||
D1 |
D2 |
D3 | |||||
0 |
0 |
0 |
0 |
0 |
- | ||
1 |
1 |
1 |
0 |
1 |
1 |
m=4 | |
2 |
0 |
1 |
1 |
1 |
0 | ||
3 |
0 |
1 |
1 |
0 |
0 | ||
4 |
0 |
0 |
1 |
1 |
0 | ||
5 |
0 |
1 |
0 |
1 |
1 |
k=3 | |
6 |
0 |
0 |
1 |
0 |
1 | ||
7 |
0 |
0 |
0 |
1 |
0 |
Рассмотрим потактно работу схемы.
0 такт: все ячейки памяти находятся в нуле, ключ К1 открыт, К2 закрыт, на входе и на выходе сигналов нет.
1 такт: на вход поступает 1-ый информационный символ 1, на m2 происходит его суммирование со значением ячейкиD3 (которое было на предыдущем такте):результат идет через открытый ключ К1 в обратную связь. В регистре происходит сдвиг. ЯчейкаD1 изменяет своё состояние на 1(записывается значение сигнала пришедшего по обратной связи). ВD2 записывается 0 (значение ячейкиD1 на предыдущем такте). В ячейку памятиD3 записывается сумма поmod2 сигнала обратной связи и значения ячейкиD2 (на предыдущем такте), получаем. На выход поступает сигнал со входа, т.е. 1.
2-4 такт: работа аналогична работе кодера на 1-ом такте.
5 такт: ключ К1 закрывается, а К2 открывается, т.ет обратная связь разрывается, а на выход поступает значение из регистра. ПолучаемD1 становится в 0 (т.к. обратная связь разорвана). ВD2 передвигается значение изD1 (которое было на предыдущем такте). ВD3 записывается предыдущее значениеD2 1. Как видим кодер, начиняя с 5(m+1) такта работает как сдвиговый регистр.
6-7 такт: работает в режиме сдвигового регистра со сдвигом вправо.
Временная диаграмма: