Побудова групового корректірующегоій коду обсягом 9 слів

[ виправити ] текст може містити помилки, будь ласка перевіряйте перш ніж використовувати.

скачати

;; ;; ;; ;; ;; ;; ;; ;; ;;;

Індивідуальне завдання по Теорії інформації

Підготував В.С. Прохоров

Побудувати груповий коригуючий код обсягом 9 слів. Код повинен забезпечувати виправлення одиночних і виявлення подвійних помилок.

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

Визначимо число інформаційних розрядів коду зі співвідношення

,

де Q - необхідний обсяг коду. У нашому випадку Q = 9, тому

Звідси отримуємо .

Далі знаходимо число n з нерівності

Підставляємо і підбором знаходимо мінімальне n, що задовольняє нерівності. У нашому випадку .

Далі ми повинні скласти таблицю розпізнавальних знаків. Для цього необхідно ввести поняття вектора помилок і розпізнавальні знаки. Вектор помилок це n-розрядна двійкова послідовність, що має одиниці у всіх розрядах, які зазнали спотворення, і нулі в інших розрядах. (Приклад: спотворення піддалися два молодших розряду 6-розрядного повідомлення - тоді вектор помилки буде виглядати як 000011), а опізнавач - деяка зіставлена ​​цього вектору контрольна послідовність символів. У нашому випадку вектори помилок мають розрядність 7 біт, так як , Розпізнавальні знаки мають розрядність 3 біт, так як . Розпізнавальні знаки рекомендується записувати у порядку зростання (нульову комбінацію не використовуємо).


Вектори помилок

Розпізнавальні знаки

1

0000001

001

2

0000010

010

3

0000100

011

4

0001000

100

5

0010000

101

6

0100000

110

7

1000000

111

Тепер необхідно визначити перевірочні рівності і сформулювати правила побудови коду, здатного виправляти всі одиночні помилки.

Вибираємо з таблиці рядки, де розпізнавальні знаки мають у першому (молодшому) розряді одиницю. Це рядки 1, 3, 5 і 7. Тоді перше перевірочне рівність буде виглядати так:

Тепер вибираємо рядки, де розпізнавальні знаки мають у другому розряді одиницю.

Це рядки 2, 3, 6, 7.

Тоді друге перевірочне правило виглядає так:

І, нарешті вибираємо рядки, де розпізнавальні знаки мають одиницю в третьому розряді. Це рядки 4, 5, 6, 7. Отже третє перевірочне рівність виглядає так:

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

Ці три рівняння і називаються правилами побудови коду. Код, побудований за цими правилами, може виправити всі одиночні помилки. Але нам необхідно, щоб код також міг виявляти подвійні помилки. Для цього додамо до трьох рівнянь, отриманим раніше, ще одне:

Ми отримали остаточні правила побудови коду, здатного виправляти всі одиночні і виявляти подвійні помилки:

Використовуючи правила побудови коригуючого коду (*), побудуємо таблицю дозволених комбінацій групового коду обсягом 9 слів, здатного виправляти всі одиночні і виявляти подвійні помилки. У колонку «безнадлишкових код» записуємо дев'ять (за завданням Q = 9) комбінацій за зростанням (нульову комбінацію не використовуємо).



(*)

Всі колонки, крім , , і , Вміст яких визначається формулами (*), заповнюємо цифрами з безнадлишкових коду:

слово

безнадлишкових код

код



0001


0

0

0


1



0010


0

0

1


0



0011


0

0

1


1



0100


0

1

0


0



0101


0

1

0


1



0110


0

1

1


0



0111


0

1

1


1



1000


1

0

0


0



1001


1

0

0


1



Щоб заповнити колонки , , і , Підставляємо значення необхідних змінних у відповідні рівняння з (*). Наприклад, для рядка 9 (слово ) Отримуємо таке:

слово

безнадлишкових код

надлишковий код



0001

1

0

0

0

0

1

1

1

0010

1

0

0

1

1

0

0

1

0011

0

0

0

1

1

1

1

0

0100

1

0

1

0

1

0

1

0

0101

0

0

1

0

1

1

0

1

0110

0

0

1

1

0

0

1

1

0111

1

0

1

1

0

1

0

0

1000

0

1

0

0

1

0

1

1

1001

1

1

0

0

1

1

0

0

Перейдемо до побудови функціональної схеми кодує пристрої (див. відповідний малюнок нижче). Призначення кодує пристрої - внесення надмірності в код за заданими нами правилами. Схему будуємо на підставі рівностей (*). На схемі використовується логічний елемент «суматор за модулем два», позначений М2. На схемі є два регістри, побудовані на D-тригерах. Один з них містить безнадлишкових код і має розрядність 4 біт, так як , А інший містить надлишковий код і має розрядність 8 біт, так як . Принцип роботи схеми такий: за сигналом синхронізації на k-розрядний регістр надходить кодова комбінація, яка підлягає кодуванню. Потім за допомогою суматорів ця комбінація кодується (вноситься надмірність). Суматор С1 реалізує перший рівність з (*), суматор С2 - друге, С3 - третє, а С4 - четверте. І, нарешті, по сигналу синхронізації отриманий надлишковий код записується у 8-розрядний регістр. Далі починається кодування наступної комбінації.

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

(**)

Позначимо літерою ознака одиночної помилки. Якщо , То мала місце одиночна помилка, якщо ж , То одиночної помилки не було. Через позначимо результат спільної перевірки на парність.

Запишемо алгоритм декодування, нехтуючи можливістю виникнення помилок кратності 3 і вище.

Висновок

0

0

помилок немає

0

1

помилка у 8-му розряді

1

0

подвійна помилка (повторна передача)

1

1

одиночна помилка (виправлення)

Принцип роботи дешифратора такий. На приймальний регістр надходить кодова комбінація, яка може містити помилки. Суматор С1 реалізує перший рівність з (**), С2 - друге, а С3 - третє. Якщо помилок не було, то на виходах цих трьох суматорів будуть нулі. Якщо ж мала місце помилка, то в цьому випадку на виходах суматорів з'явиться опізнавач помилки. Цей опізнавач передається в дешифратор помилок ДС, який на підставі переданого в нього опізнавач видає відповідний вектор помилки. Його схема будується за наступною таблицею істинності:

Вхід (опізнавач)

Вихід (вектор помилки)

1

2

3

0

1

2

3

4

5

6

0

0

0

0

0

0

0

0

0

0

0

0

1

1

0

0

0

0

0

0

0

1

0

0

1

0

0

0

0

0

0

1

1

0

0

1

0

0

0

0

1

0

0

0

0

0

1

0

0

0

1

0

1

0

0

0

0

1

0

0

1

1

0

0

0

0

0

0

1

0

1

1

1

0

0

0

0

0

0

1

Щоб відновити вірний сигнал нам необхідно скласти по модулю два сигнал дешифратора з відповідним розрядом кодової комбінації. Ця операція виконується на суматора С5-С8. Таким чином ми виправляємо поодинокі помилки.

Щоб виявити подвійну помилку, ми передбачаємо наступне. Суматор С4 перевіряє останнє рівність з (**) - на його виході ми маємо . У разі виникнення подвійної помилки на виході цього суматора з'явиться нуль, тому що дві одиниці не змінять парності ( ). Елемент АБО перевіряє ознака одиночної помилки ( ). На цей елемент подається вектор помилки з дешифратора. А якщо вектор помилки містить хоча б одну одиницю (а це значить, що мала місце помилка), то на виході елемента АБО з'явиться одиниця. Таким чином, якщо на виході С4 ми отримали нуль, а на виході елемента АБО одиницю, ми можемо говорити, що мала місце подвійна помилка. У цьому випадку блокуємо генератор тактових імпульсів, тригери встановлюються в нуль, а на спеціально передбачений вихід ER подаємо одиницю.

Функціональна схема кодує пристрої

Функціональна схема декодуючого пристрої

Далі за функціональним схемами будуємо принципові електричні схеми. Для побудови принципових схем використовуємо програмний пакет Multisim.

Почнемо зі схеми кодує пристрої. Спочатку розташуємо джерело живлення і генератор тактових імпульсів. Встановимо значення напруги 15В, а частоту імпульсів - 1Гц. Потім помістимо на схему D-тригери. Нам потрібно 4 тригера на вхід і 8 тригерів на вихід - всього 12. Ми можемо використовувати 3 мікросхеми 74175 N, кожна з яких містить по 4 D-тригера. Розміщуємо тригери на схему, до входу CLR підключаємо джерело живлення, до входу CLK - генератор тактових імпульсів. Для вихідних тригерів сигнал від генератора необхідно пропустити через інвертор, тому що для формування вихідних імпульсів необхідно час і ми повинні «затримати» імпульс синхронізації. Далі нам необхідні три трехвходових елемента для додавання за модулем два. Ці елементи можна синтезувати з допомогою двухвходових елементів 7486 N так, як показано на малюнку. Семівходовий елемент для складання по модулю два також можна синтезувати з допомогою двухвходових елементів 7486 N. Тепер просто сполучаємо отримані частини відповідно до функціональної схемою. Отримуємо принципову електричну схему кодує пристрої. Для перевірки правильності роботи схеми на вхід можна направити дані з Word Generator 'у, який буде по черзі генерувати всі 9 слів, а на виходи підключити 8 сигналізаторів. Принципову схему дивись на розвороті.

Перейдемо до схеми декодуючого пристрою.

Спочатку, так само, як і в схемі кодує пристрої, розташовуємо джерело живлення і генератор. Встановлюємо для них ті ж параметри. Встановлюємо ті ж D-тригери. Тут нам знадобиться 8 тригерів для входу, і 4 для виходу. Також використовуємо 3 мікросхеми 74175 N, кожна з яких містить по 4 D-тригера. Тригери підключаємо аналогічно. Нам потрібні три четирехвходових і один восьмівходовий елемент для складання по модулю 2. Їх синтезуємо так само, як і при складанні схеми кодує пристрої. Семівходовий елемент АБО синтезуємо за тим же принципом. Тепер за відомою нам схемою істинності необхідно синтезувати схему дешифратора помилок. Її можна синтезувати, використовуючи такий логічний елемент, як дешифратор. У нашому випадку ми можемо використовувати мікросхему 74154 N. Ця схема є дешифратором-мультиплексором з 4-ма входами і 16-ю виходами. Її підключаємо так, як показано на малюнку (до виходів підключені інвертори 7404N). При такому підключенні ми отримаємо схему дешифратора помилок. Увага! Використовувати потрібно саме ті входи, які показані на малюнку. Далі просто сполучаємо отримані частини згідно функціональній схемі. Принципову схему дивись на розвороті.

Додати в блог або на сайт

Цей текст може містити помилки.

Програмування, комп'ютери, інформатика і кібернетика | Завдання
70.3кб. | скачати


Схожі роботи:
Автотекс автозаміна та пошук слів Використання автотексту автозаміни та пошук слів у тексті
Основи логіки поняття за обсягом і умовиводи
Проектування технологічного процесу лісосічних робіт підприємства з річним обсягом виробництва
Феномен групового тиску
Прийоми групового консультування
Психологія групового навіювання
Відкриття та характеристика генетичного коду
Переваги групового способу життя
Управління процесом прийняття групового рішення
© Усі права захищені
написати до нас