Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Глава 7 укр.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
2.31 Mб
Скачать

7.4.4 Декодування в коді Хеммінга

Розглянемо процедуру декодування на прикладі коду Хеммінга (7,4). Схема декодера (рис.7.5) містить регістр зсуву (РЗ), в який з каналу поступає комбінація . Три суматори по модулю 2 здійснюють три перевірки відповідно до співвідношень (7.21). Виходи суматорів підводяться на вхід схеми «АБО» для фіксації однократних і двократних помилок і на входи чотирьох дешифраторів помилок (схема І) по числу інформаційних символів комбінації.

Під час надходження всієї комбінації в РЗ її символи відповідно до співвідношень (7.21) подаються на три суматори для вироблення складових синдрому . Якщо складові синдрому рівні, то згідно рівнянням перевірок (7.21) помилки в прийнятій комбінації не було або даною перевіркою вона не виявлена. Якщо лише один з , то є помилка. Таким чином, синдром помилки є сукупність результатів рівнянь перевірок, яка відповідає i-му спотвореному символу прийнятої комбінації. Оскільки стовпці матриці Н різні (згідно (7.21), то однократні помилки будуть виправлені. Для цього в схемі декодера встановлені дешифратори помилок (схеми І), налаштовані на комбінації, відповідні першим чотирьом стовпцям матриці Н.

Рисунок 7.5 – Структурна схема декодера Хеммінга

Допустимо, що при перевірці комбінації на наявність помилки на виходах суматорів отримана комбінація вигляду 111. Тоді на виході схеми «АБО» з'являться одиниці, що означає наявність помилки, і на виході першого дешифратора також з'явиться 1, а значення а1 в РЗ змінене на зворотне. Це означає, що для коду Хеммінга оцінка символу здійснюється за правилом .

Недоліком такої схеми декодера є швидке збільшення кількості дешифраторів помилок при зростанні числа інформаційних символів коду, що обмежує їх застосування і вимагає використання лінійних кодів, що дозволяють зменшити об'єм обладнання декодера.

7.5 Циклічні коди

7.5.1 Способи завдання і кодування

Лінійний код називається циклічним, якщо при циклічному зсуві символів кодової комбінації на один розряд управо (вліво) утворюються комбінації, що також належать коду.

Для алгебраїчного опису циклічних кодів кожної комбінації ставиться у відповідність многочлен (поліном) від формальної змінної х. Множення на х збільшує ступінь многочлена U(x) і викликає подовження кодової комбінації на один символ. Щоб уникнути збільшення ступеня U(x), хn замінюють на 1 ( =1 або ):

Для безлічі многочленів, відповідних n-символьним комбінаціям, вводяться операції складання, віднімання, множення, які співпадають із звичайними операціями над многочленами. Складання коефіцієнтів многочлена виконується по модулю 2, при цьому операції складання і віднімання співпадають. Множення многочленів виконується по модулю , причому = . Таким чином, для опису і побудови циклічних кодів використовується алгебра многочленів по модулю , званому модулем по множенню.

При представленні кодових комбінацій многочленами, циклічним кодом називається безліч многочленів Ui(x) ступеня не більше , які діляться без залишку на деякий многочлен ступеня , званий проізводящим (породжучим).

Многочлен є проізводящим для циклічного коду, якщо він є дільником многочлена , тобто

,

де - многочлен ступеня k, званий перевірочним многочленом коду, який так само як і задає циклічний код.

Циклічно код має мінімальну кодову відстань , якщо вага комбінації, відповідна проізводящему многочлену , не менше . Це означає, що кількість доданків проізводящого многочлена повинно бути не менше .

проізводящий многочлен циклічного коду, який виправляє однократні помилки, є неприводимим, тобто ділиться сам на себе і на 1. Для виправлення помилок більшої кратності розкладається на множники , число яких рівне кратності помилки і кожний з них є неприводимим.

Допустимо, що потрібно побудувати циклічний код (7,4), який виправляє всі однократні помилки. проізводящий многочлен такого коду має ступінь і число доданків не менше трьох, оскільки мінімальна кодова відстань коду . У якості виберемо многочлен вигляду . Переконаємося, що він є проізводящим для коду (7,4), для чого розділимо модуль по множенню на :

Багаточлен є перевірочним . Оскільки ділення виконане без залишку, то многочлен є проізводящим для коду (7,4). По многочленах і можуть бути побудовані проізводяща і перевірочна матриці.

проізводяща матриця G містить чотири рядки, утворені комбінаціями з семи символів, відповідними многочленам і додатковими нулями:

.

Перевірочна матриця Н містить три рядки, утворені комбінаціями, відповідними многочленам і представляється у вигляді

Порівняння отриманих матриць з матрицями (7.16) лінійного коду (7,4) показує, що вони відрізняються розташуванням стовпців, тому коди, їм відповідні, є еквівалентними.

При заданому кодові багаточлени систематичного коду утворюються за правилом

, (7.25)

де - многочлен, відповідний інформаційній послідовності з k-символів; - залишок від ділення многочлена на .

Розглянемо приклад для коду (7,4). Припустимо, що l=1001, їй відповідає . Многочлен розділимо на :

звідси витікає, що залишок від ділення або в двійковому коді 110.

Кодовому багаточлену  = відповідає кодова комбінація 1001110, в якій чотири перших символи - інформаційні (1001), три що залишилися – перевірочні.

Схема кодера, що реалізовує алгоритм кодування (7.25), будується по проізводящему многочлену і є схемою ділення на . Один з варіантів схеми показаний на рис.7.6,а. Схема складається з n-k-елементів регістра зсуву на D-тригерах і суматорів по модулю 2, число яких рівне числу знаків складання в . Побудова схеми заснована на уявленні у вигляді , де

Для коду (7,4) структурна схема кодера приведена на рис.7.6,б. Роботу схеми зручно розглядати по тактах, оскільки D-тригери зазвичай використовуються як елементи регістра зсуву. Для опису їх стану вводиться поняття затримки D на один такт.

Стан елементів РЗ визначається наступними співвідношеннями:

.

Рисунок 7.6 – Варианти структурних схем кодерів циклічного коду

Початковий стан D-тригерів – нульовий. Схема працює таким чином. Перші чотири такти ключ К знаходиться в положенні 1, і інформаційна послідовність l з чотирьох символів поступає в канал і на вхід схеми, де відбувається її ділення на . Після 4-го такту ключ К переходить в положення 2, закорачивая вхід суматора I. В результаті цього стан S1 після 5-го такту залишається нульовим до кінця роботи схеми. Починаючи з 5-го такту в канал поступають три перевірочні символи з виходу суматора II, які формуються складанням станів S2 і . Робота схеми при подачі на її вхід послідовності = 1001 або пояснюється табл.7.1. Кодер працює 7 тактів по числу символів в кодовій комбінації (= 7). У перші 4 такти в канал поступають інформаційні символи (= 7), а з 5-го по 7-ій такти – перевірочні (n-k = 3).

Таблиця 7.1 – Стан єлементів регістра зсуву в схемі код ера

Такт

Положення ключа К

l

Стан элементів РЗ

U

S1

S2

S3

S2+ S3

1-й

2-й

3-й

4-й

1

1

0

0

1

0

1

0

1

0

0

1

0

0

0

0

1

1

0

0

1

5-й

6-й

7-й

2

0

0

0

0

0

0

1

0

0

0

1

0

1

1

0

1

1

0

8-й

-

0

0

0

0

0