що кожному каналу привласнюється унікальний двухбітовий індекс, що залежить від поєднання частот генераторів G1 і G2. Бінарний канал передачі моделюється за допомогою стандартного блоку Binary Symmetric Channel.
Графік прийнятих повідомлень представлений на малюнку Б.2 у додатку Б.
5. Побудова кодів
. 1 Побудова коду з подвоєнням
Код з подвоєнням характеризується введенням додаткових символів для кожного символу інформаційної частини комбінації, причому «1» доповнюється «0» і перетвориться в «10», а «0» доповнюється «1» і перетвориться в «01 ».
Приклад.
Показником спотворення коду буде поява в «парних» елементах поєднань виду «00» або «11». Код виявляє всі помилки за винятком дворазових в «парних» елементах.
Надмірність коду
5.2 Побудова циклічного коду
Циклічні коди можуть бути використані для виявлення і корекції як одиночних, так і систематичних помилок. Основне їх властивість полягає в тому, що кожна кодова комбінація може бути отримана шляхом циклічної перестановки символів комбінації, що належить до даного коду.
Формування кодових комбінацій (код, виправляє одиночні помилки):
) Розрахувати співвідношення між контрольними та інформаційними символами:
Визначити p (або n) виходячи з k інформаційних символів:
(5.1)
Так як в каналі передачі можлива наявність 8 різних команд то для передачі нам буде потрібно: k? log2 8=4 інформаційних символу.
Графічне вирішення рівняння 5.1 представлено на малюнку 5.1
Малюнок 5.1 - Визначення розрядності коду
передача дані датчик код
Виходячи з рішення рівняння 5.1 розрядність коду дорівнює 7.
) Вибрати утворює поліном за таблицями непріводімих довічних поліномів або побудувати. Утворює поліном Р (х) слід вибирати мінімальної довжини, але його порядок повинен бути не менше (n - k), а число ненульових членів - не менше мінімального кодового відстані d0.
В якості утворює многочлена вибираємо: х3 + х + 1
) Побудувати одиничну транспоновану матрицю, у якої число стовпців (рядків) дорівнює числу інформаційних розрядів.
Для 4 інформаційних розрядів матриця має наступний вигляд
) Скласти створюючу матрицю шляхом множення елементів одиничної транспонований матриці на утворює поліном.
Утворююча матриця має вигляд:
0001? 1011=0001011
? 1011=0010110
? 1011=0101100
1000? 1011=1011000
5) Комбінаціями шуканого коду є рядки утворює матриці і всі можливі суми по модулю 2 різних сполучень рядків утворює матриці.
Згрупуємо отримані коди за зростанням:
1) 0001011 2) 0010110 3) 0101100 4) 1011000 5) 01100016) 1100010 7) 1000101 8) 0011101 9) 0111010 10) 1110100
Виявлення і виправлення помилок
Виявлення і виправлення помилок здійснюється по залишках від ділення прийнятої комбінації F (x) на утворює поліном P (x). Якщо прийнята комбінація ділиться на утворює поліном без залишку - код прийнятий безпомилково. Остаток від ділення свідчить про наявність помилки, але не вказує її положення.
Пошук помилкових розрядів:
) прийняту кодову комбінацію (КК) розділити на утворює поліном;
) визначити вагу залишку (?)
а) якщо? ? ? (допустима кратність помилки) то прийняту комбінацію складають по модулю 2 з отриманим залишком. Сума дасть виправлену комбінацію.
б) якщо? gt; ? то:
) виконати циклічний зсув прийнятої КК F (x) на один розряд вліво. КК, отриману в результаті циклічного зсуву розділити на Р (х). Якщо? ? ? , То ділене підсумовують із залишком;
) виконати циклічний зсув вправо на один розряд комбінації, отриманої в результаті підсумовування останнього діленого з останнім залишком.
Отримана в результаті комбінація не містить помилок.
) Якщо після першого циклічного зсуву і подальшого поділу вага залишку такої, що? gt; ? ,
то:
в) повторювати операцію пункту а) до тих пір, поки не буде виконана умова? ? ?. У цьому випадку комбінацію, отриману в результаті циклічного зсуву, підсумовувати із залишком від ділення цієї комбінації на Р (х);
г) виконати циклічний зсув вправо на стільки розрядів, на скільки була зрушена вліво Просумованих з останнім залишком комбінація щодо прийнятої комбінації.
У результаті буде отримана виправлена ??комбін...