- •Лабораторна робота №3 Вивчення принципів побудови циклічних кодів і пристроїв кодування-декодування
- •3.1. Методичні вказівки до вибору утворюючого многочлена
- •3.2. Методика вибору параметрів коду для довільної кількості інформаційних символів
- •3.3. Способи кодування й декодування циклічних кодів
- •3.4. Методичні вказівки до побудови пристроїв кодування та декодування циклічних кодів
- •3.5. Порядок виконання роботи
3.2. Методика вибору параметрів коду для довільної кількості інформаційних символів
При побудові апаратури кодування-декодування в першу чергу необхідно знайти довжину коду за заданою кількістю інформаційних символів і кодовою відстанню.
З
розглянутого матеріалу випливає, що
для
циклічний код можна побудувати тільки
в тому випадку, якщо його довжина
задовольняє певним співвідношенням.
Так, у випадку непарного
маємо
,
для парного
додається ще один перевірочний символ,
тому
,
де
– будь-яке ціле число, більше одиниці.
Очевидно, на кількість інформаційних
символів також накладаються певні
обмеження. Оскільки кількість інформаційних
символів визначається джерелом
інформації, бажано мати можливість
будувати коди з необхідним
для довільної кількості
інформаційних символів.
Для
будь-якого лінійного
‑коду
завжди можна побудувати лінійний
‑код,
заміняючи
інформаційних символів нулями й
виключаючи їх з кодових векторів, тобто
в канал ці символи не передаються. Якщо
дане правило застосовується до циклічного
коду, то отриманий код називається
вкороченим циклічним. Його коригувальні
властивості будуть не гірше, ніж у
повного (невкороченого) коду, на основі
якого він отриманий. У вкороченому
циклічному коді не для всіх кодових
комбінацій зберігається властивість
циклічності, тому його називають ще
псевдоциклічним.
Приклад 2.
Знайти утворюючий поліном
для циклічного коду з кодовою відстанню
,
інформаційна частина якого містить
символів.
З
табл. 3.1 визначаємо, що коди з довжиною
(
)
і більше мають не менше 16 інформаційних
символів і забезпечують кодову відстань
.
Для спрощення побудови апаратури
кодування-декодування й мінімізації
надмірності вибираємо утворюючий
многочлен 5‑го степеня з мінімальною
кількістю ненульових коефіцієнтів.
Таких многочленів у табл. 3.1 два;
кожного з них можна вибрати в якості
утворюючого. Візьмемо
.
Цей многочлен дасть код з
.
Для отримання утворюючого многочлена
коду з
необхідно помножити
на
:
.
Отриманий
код буде мати
перевірочних символів й
інформаційних, тобто код
.
3.3. Способи кодування й декодування циклічних кодів
Кожен
многочлен
,
який відповідає кодовій комбінації
циклічного коду, повинен без остачі
ділитися на утворюючий многочлен
.
Щоб виконати цю умову, досить помножити
многочлен
інформаційної частини, степінь якого
не перевищує
,
на утворюючий многочлен
,
і отриманий многочлен вважати многочленом
циклічного коду. Однак при кодуванні у
такий спосіб інформаційна частина
змінюється, і отриманий код виявляється
нероздільним, тобто таким, для якого
неможливо вказати позиції, на яких
знаходяться інформаційні символи. Хоча
принципових утруднень при декодуванні
таких кодів немає (для неспотвореного
многочлена коду інформація буде
відновлена в процесі декодування), на
практиці зазвичай застосовується інший
алгоритм кодування, в результаті якого
виходить роздільний код.
Процедура
кодування в цьому випадку така. Многочлен
,
який відповідає
-символьній
інформаційній частині коду, помножується
на
,
і отриманий добуток ділиться на утворюючий
многочлен
.
При цьому виходить деяка частка
й остача
,
степінь якої менше
.
Остача додається до
,
у результаті чого виходить многочлен
.
Легко показати, що
ділиться на
без остачі. Дійсно, запишемо результат
ділення
на
:
|
(3.1) |
Помножимо
(3.1) на
і перенесемо
в ліву частину; одержимо
,
звідки випливає подільність
на
.
Оскільки
степінь
не перевищує
,
а в многочлені
степінь
не може бути менше
,
то перевірочні символи, яким відповідає
,
займають у комбінації
молодших розрядів, а інформаційні
символи, яким відповідає
,
–
старших розрядів. Таким чином, код є
роздільним, і інформаційна частина при
кодуванні не видозмінюється.
Приклад
3.
Нехай як утворюючий многочлен для коду
з
обраний
.
Побудувати кодову комбінацію циклічного
коду, інформаційна частина якого має
вигляд
1010.
Інформаційній
частині відповідає многочлен
.
Оскільки
,
помножимо
на
:
.
Остача від ділення
на
дорівнює
.
Тому
.
Цьому многочлену відповідає кодова
комбінація 1010011.
Перші чотири символи є інформаційними
(вони не змінилися), останні три –
перевірочними. При декодуванні прийнятий
многочлен
ділиться на утворюючий многочлен
.
Якщо остача від ділення виявилася
нульовою, кодова комбінація вважається
без помилок. У випадку ненульової остачі
подальші операції залежать від режиму
роботи декодера. Якщо декодер працює в
режимі виявлення помилок, кодова
комбінація бракується (виробляється
сигнал "Стирання"), якщо в режимі
виправлення, по отриманій остачі
визначається вектор помилок (зазвичай,
найбільш імовірний) і кодова комбінація
коректується.
