
- •1 Пояснювальна записка
- •1.1 Емуляція ділення цілих без знакових чисел
- •1.2 Десяткова корекція у мікро контролері ріс
- •1.2.1 Додавання у bcd – форматі
- •1.2.2 Віднімання у bcd – форматі
- •1.3 Циклічний надлишковий код, що коректує, 7,4 (crc3)
- •1.3.1 Зв’язок коректованої здатності коду з кодовою відстанню
- •1.3.2 Побудова циклічного надлишкового коду 7,4
- •Метод виправлення помилок з використанням матриці
- •1.4 Код Ріда – Соломона рс 31,16 (crc15)
- •2 Склад адмністративної контрольної роботи
- •2.1 Завдання №1
- •Приклад виконання варіанту №30
- •2.2 Завдання №2
- •2.3 Завдання №3
- •Приклад виконання варіанту №30
- •2.4 Завдання №4
- •Приклад виконання варіанту №30
1.3 Циклічний надлишковий код, що коректує, 7,4 (crc3)
Найважливішою вимогою до системи передачі даних є забезпечення високої достовірності повідомлень, які приймаються.
Надлишкові коди - одне з найбільш ефективних засобів забезпечення високої достовірності повідомлень, які передаються і приймаються у каналі зв’язку. При побудові надлишкового коду для передачі інформації використовується лише частина кодових комбінацій – дозволені комбінації, які відрізняються одна від одної більше, ніж в одному розряді. Решта комбінацій не використовується і відноситься до заборонених. Це означає, що з n символів кодової комбінації для передачі інформації використовується k символів. Тоді:
N=2n (1)
Де: N – загальне число кодових комбінацій;
N e=2k (2)
Де: N e – дозволені комбінації для передачі у каналі зв’язку.
У відповідності з вище наведеним всю множину повідомлень N можна поділити на дві групи:
- множина N e=2k дозволених комбінацій;
- множина (N - N e)= 2n - 2k заборонених комбінацій;
Неважко побачити, що при використанні надлишкових кодів помилка в одному розряді приводить до заміни дозволеної комбінації на заборонену.
При достатньо великому відрізненні дозволених комбінацій однієї від іншої можна виявити двох кратну, трьох кратну і т.д. помилки, оскільки вони приведуть до створення заборонених комбінацій.
Більшість розроблених кодів призначені для коректування взаємно незалежних помилок визначеної кратності і пакетів помилок.
1.3.1 Зв’язок коректованої здатності коду з кодовою відстанню
Для оцінки ступеню різниці між любими комбінаціями даного коду використовується термін мінімальної кодової відстані d min (distance - відстань). Для виявлення всіх помилок кратності t r (revelation - виявлення) ця відстань повинна відповідати умові:
d min >= t r + 1 (3)
Розглянемо приклад коду CRC3 з n=7, k=4 та r=3, який призначений для виявлення і виправлення всіх одно кратних помилок - d min=3. Кодова матриця відстаней набуде наступного вигляду:
Таблиця 1 – Матриця кодових відстаней для CRC3 k=4
|
Code |
1000 101 |
0100 111 |
0010 110 |
0001 011 |
1100 010 |
1010 011 |
1001 110 |
0110 001 |
0101 100 |
0011 101 |
1110 100 |
1011 000 |
0111 010 |
1101 001 |
1111 111 |
0000 000 |
|
1000 101 |
0 |
3 |
4 |
4 |
4 |
3 |
3 |
4 |
4 |
3 |
3 |
4 |
7 |
3 |
4 |
3 |
|
0100 111 |
3 |
0 |
3 |
3 |
3 |
4 |
4 |
3 |
3 |
4 |
4 |
7 |
4 |
4 |
3 |
4 |
|
0010 110 |
4 |
3 |
0 |
4 |
4 |
3 |
3 |
4 |
4 |
3 |
3 |
4 |
3 |
7 |
4 |
3 |
|
0001 011 |
4 |
3 |
4 |
0 |
4 |
3 |
3 |
4 |
4 |
3 |
7 |
4 |
3 |
3 |
4 |
3 |
|
1100 010 |
4 |
3 |
4 |
4 |
0 |
3 |
3 |
4 |
4 |
7 |
3 |
4 |
3 |
3 |
4 |
3 |
|
1010 011 |
3 |
4 |
3 |
3 |
3 |
0 |
4 |
3 |
7 |
4 |
4 |
3 |
4 |
4 |
3 |
4 |
|
1001 110 |
3 |
4 |
3 |
3 |
3 |
4 |
0 |
7 |
3 |
4 |
4 |
3 |
4 |
4 |
3 |
4 |
|
0110 001 |
4 |
3 |
4 |
4 |
4 |
3 |
7 |
0 |
4 |
3 |
3 |
4 |
3 |
3 |
4 |
3 |
|
0101 100 |
4 |
3 |
4 |
4 |
4 |
7 |
3 |
4 |
0 |
3 |
3 |
4 |
3 |
3 |
4 |
3 |
|
0011 101 |
3 |
4 |
3 |
3 |
7 |
4 |
4 |
3 |
3 |
0 |
4 |
3 |
4 |
4 |
3 |
4 |
|
1110 100 |
3 |
4 |
3 |
7 |
3 |
4 |
4 |
3 |
3 |
4 |
0 |
3 |
4 |
4 |
3 |
4 |
|
1011 000 |
4 |
7 |
4 |
4 |
4 |
3 |
3 |
4 |
4 |
3 |
3 |
0 |
3 |
3 |
4 |
3 |
|
0111 010 |
7 |
4 |
3 |
3 |
3 |
4 |
4 |
3 |
3 |
4 |
4 |
3 |
0 |
4 |
3 |
4 |
|
1101 001 |
3 |
4 |
7 |
3 |
3 |
4 |
4 |
3 |
3 |
4 |
4 |
3 |
4 |
0 |
3 |
4 |
|
1111 111 |
4 |
3 |
4 |
4 |
4 |
3 |
3 |
4 |
4 |
3 |
3 |
4 |
3 |
3 |
0 |
7 |
|
0000 000 |
3 |
4 |
3 |
3 |
3 |
4 |
4 |
3 |
3 |
4 |
4 |
3 |
4 |
4 |
7 |
0 |
Рисунок 3 – Обчислена кодова відстань d min для коду CRC3
Як видно з матриці відстаней d min>3. Очевидна справедливість умови:
d<=n (4)
Тому неможливо виявити помилки кратності n.
Для виправлення помилок кратності t c (correction - виправлення) кодова відстань повинна задовольняти умові:
d min >= 2*t с + 1 (5)
При цьому вся множина заборонених комбінацій ділиться на N під множин, які не пересікаються, кожне з яких ставиться у відповідність однієї з дозволених комбінацій. Спосіб ділення на під множини залежить від того, які помилки повинні виправлятися даним кодом.
Для виправлення всіх помилок кратності до t c і одночасного виявлення всіх помилок кратності t r (t r >= t c) кодова відстань повинна відповідати умові:
d min >= t r + t с + 1 (6)
При цьому необхідно мати на увазі, що, якщо виявлена кодом помилка має кратність t r > t с, така помилка виправлена бути не може, тобто у даному випадку код тільки виявляє помилку.
Можливості коду, що дозволяють коректувати, у залежності від кодової відстані наведені у таблиці:
Таблиця 2 – Залежність здатності коректування коду від кодової відстані
d min |
t r |
t с |
Можливість, яка надається кодом |
1 |
0 |
0 |
Відрізняти одну комбінацію від іншої |
2 |
1 |
0 |
Виявляти одно кратні помилки |
3 |
1 |
1 |
Виправляти (з виявленням) одно кратні помилки |
3 |
2 |
0 |
Виявляти двох кратні помилки |
4 |
2 |
1 |
Виправляти однократні і виявляти двох кратні помилки |
4 |
3 |
0 |
Виявляти трьох кратні помилки |
5 |
2 |
2 |
Виправляти (з виявленням) двох кратні помилки |
5 |
3 |
1 |
Виправляти одно кратні і виявляти трьох кратні помилки |
5 |
4 |
0 |
Виявляти чотирьох кратні помилки |
Ідея побудови коду з даною коректованою здатністю ґрунтується у внесенні у код такого надлишку r (redundancy - надлишок), який забезпечив би відстань між любими кодовими комбінаціями даного коду не менше d min. Нажаль питання про визначення мінімальної кількості надлишкових символів у коді не вирішений. Експериментально визначено, що найбільш близькі значення дає межа Варшамова – Гілберта:
Для кодів з d min=3 отримане точне співвідношення між числом перевірочних символів r і довжиною коду n:
r>=log 2 (1 + n) (8)