- •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.2 Побудова циклічного надлишкового коду 7,4
Побудова циклічних надлишкових кодів CRC утворюється в периферійних мікроконтролерних системах шляхом множення визначених комбінацій С(х) (рядків одиничної діагональної матриці Ек) на утворюючий поліном Р(х) відповідного ступеню (у нашому випадку Х3+Х+1) з метою контролю правильності передачі в системі.
C(x)*xr P(x)
=
Q(x)
+
R(x) (9) P(x)
C(x)-кодова
комбінація (code combination);
д
Q(x)-приватне
(quotient);
R(x)- залишок
(remainder);
P(x)-поліном, що не
приводться (permanence numerous);
Після деяких перетворень вираз (9) набуде вигляду (10):
C(x)*xr
=
Q(x)*P(x)
+
R(x)
C(x)*xr
=
Q(x)*P(x)
+
R(x)
C(x)*xr
=
Q(x)*P(x) (10)
+
R(x)
F(x)
=
Вирази (9) та (10) сприяють утворенню пакетів 7,4: поряд з кожною кодовою комбінацією С(х) розміщаються решти від ділення, які і є перевірочними бітами R. (див. табл.1). Таки чином, спочатку утворюється матриця Gn,k, що народжує перші к пакетів.
Для побудови матриці Gn,k маємо наступні вхідні дані:
P(x)=x3+x+1 (P(x)=1011); n=7; k=4; C1(x)=0001; C2(x)=0010; C3(x)=0100; C3(x)=1000;
r=n-k=7-4=3;
Ступінь кожного рядку C матриці Е підвищується на ступінь поліному, що не приводиться і результат ділиться на поліном, що не приводиться Р(х). Залишок від ділення R є рядками під матриці Rr, k
0001*1000 1011
=
C1(x)*xr P(x)
R1(x)
= 011
0010*1000 1011
=
C2(x)*xr P(x)
R2(x)
= 110
0100*1000 1011
=
C3(x)*xr P(x)
R3(x)
=111
1000*1000 1011
=
C4(x)*xr P(x)
R4(x)
= 101
Таблиця 3 - Розділений циклічний надлишковий код 7,4 (пакети 7,4)
№ |
П |
W
Gn,k |
|
Інформаційні біти |
Перевірочні біти |
||
1 |
1000 |
101 |
1 |
2 |
0100 |
111 |
2 |
3 |
0010 |
110 |
3 |
4 |
0001 |
011 |
4 |
5 |
1100 |
010 |
1+2 |
6 |
1010 |
011 |
1+3 |
7 |
1001 |
110 |
1+4 |
8 |
0110 |
001 |
2+3 |
9 |
0101 |
100 |
2+4 |
10 |
0011 |
101 |
3+4 |
11 |
1110 |
100 |
1+2+3 |
12 |
1011 |
000 |
1+3+4 |
13 |
0111 |
010 |
2+3+4 |
14 |
1101 |
001 |
1+2+4 |
15 |
1111 |
111 |
1+2+3+4 |
16 |
0000 |
000 |
All combination |
Перші чотири рядки таблиці 1 містять матрицю, що народжує, Gn,k , рядки 5-16 - добудовані істинні інформаційні пакети. Якщо поділити на поліном, що не приводиться, любий істинний пакет з таблиці 1, то отримаємо залишок R=0. Це є ознакою передачі інформації без помилок.
Візьмемо пакет №7 (див. табл..1) і поділимо на поліном P(x)=1011.
Якщо внести помилку (наприклад у біт №3) і здійснити перевірку наявності помилок в отриманому пакеті шляхом ділення його на поліном, що не приводиться, отримаємо:
Як видно залишок від ділення не рівний 0 (R=011). Тож трапилася помилка.

акети
7,4