n="justify"> int getV ();
В· bool * getDec ();
В· bool * getErr ();
В· void setDec (bool *);
В· void setErr (bool *);
В· void coder :: Cod ();
В· void coder :: Decod ().
Функція Init () - конструктор класу.
Більшість функцій класу призначені для В«вилученняВ» або зміни значення закритих змінних класу. Найбільший практичний інтерес представляють функції кодування (void Cod ()) та декодування (void Decod ()) інформації. br/>
В
Малюнок 4.1 - Блок-схема алгоритму функції Cod ()
В
Малюнок 4.2 - Блок-схема алгоритму функції Decod ()
Моделювання роботи системи відбувається в кілька етапів:
1. ініціалізація утворює полінома;
2. формування інформаційної послідовності;
. кодування;
. накладення вектора помилок;
. декодування.
Всі перераховані етапи відображені в інтерфейсі програми.
В
Малюнок 4.3 - Інтерфейс програми.
4.2 Тестування програмної реалізації
Нехай обсяг вихідної інформації дорівнює 1 байту: I = 10111011
Поліном четвертого ступеня:
Для кодування потрібно помножити вихідну інформацію на xr і розділити на який утворює поліном. Отриманий залишок від ділення скласти по модулю два з вихідною послідовністю, помноженої на xr. Для аналізу роботи кодера і декодера потрібно знати не приватна, а лише залишок від ділення. p> Тест перший - нульовий вектор помилок
1011101100001100111001111001100110111110011110011001101001100111000110110011 Малюнок 4.4 - Кодування вихідної послідовності
Залишок від ділення в двійковому вигляді: 0011.
101110110000000000000011101110110011
Для декодування розділимо інформацію на який утворює поліном
1011101100111100111001111001100110111110011110011001101011100011011110110000 Малюнок 4.5 Декодування інформаційної послідовності (нульовий вектор помилок)
Нульовий вага залишку свідчить про відсутність помилок у прийнятій послідовності.
Тест другий (одиночна помилка).