|
||||||||||||||||||||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Систематичні коди ( у вузькому розумінні )Вихідними даними для складання систематичного коду являються: кількість кодуючих елементів N; кодова відстань S, що визначається за формулами (3.12) - (3.16); кількість інформаційних символів кодової інформації k, яка визначається за формулою (3.17); значність коду n, що визначається по табл.3.6. Побудова коду полягає у визначенні всіх кодових комбінацій, перевірку того, як складеним набором кодових комбінацій виконуються вимоги, які пред’являються до коду, і формулюванню закономірностей, необхідних для здійснення ефективного декодування, т.б. використання виправляючих і виявляючих помилки властивостей коду. В склад кодової комбінації систематичного коду першим включається нульовий вектор, т.б. кодова комбінація, що складається виключно з нулів. Далі складається так звана похідна матриця G, яка містить k ненульових, лінійно-незалежних векторів. Правило її складання зводиться до початкових записів діагональної матриці (k-рядків, k-стовбців), рядки якої доповнюються контрольними символами в кількості n-k кожен. Контрольні символи дописуються так, щоб кількість одиниць в кожному рядку була не менша заданої кодової відстані. Кодова відстань повинна бути витримана також між всіма векторами продуктивної матриці.
Таблиця 3.6 – Визначення кількості інформаційних символів кодової комбінації
Інші N-k-1 кодові вектори отримуються як лінійні комбінації векторів, що входять в продуктивну матрицю. Можливі випадки, коли складання коду по попередньо отриманому значенні n виявляється неможливим. Тоді n слід збільшити на одну одиницю. В якості прикладу нижче визначаються всі кодові комбінації для коду з N=8, ρ=2 і показниками коду (5.3). Отримаємо нульовий вектор 0000
1 0 0 0 1 Продуктивну матрицю G= 0 1 0 1 0 0 0 1 1 1
Інші кодові вектори, позначивши рядки матриці відповідно через v2, v3, v4, отримаємо у вигляді: v2 + v 3 = 1 1 0 1 1, v 2 + v 4 = 1 0 1 1 0, v 3 + v 4 =0 1 1 0 1, v 2 + v 3 + v 4 = 1 1 1 0 0. Перевірка вимог, що пред’являються коду, проводиться складанням матриці відстаней. Для приведеного прикладу матриця відстаней має наступний вигляд (кодові комбінації позначені порядковими номерами, в порядку їх отримання): 1 2 3 4 5 6 7 8 1 0 2 2 3 4 3 3 3 2 0 4 3 2 3 3 3 3 0 3 2 3 3 3 4 0 3 2 2 4 5 0 3 3 3 6 0 4 2 7 0 2 8 0 Тут, як бачимо, кодова відстань, т.б. найменша із записаних в матрицю відстаней, рівна 2. Отже, складений код задовільняє вимогам. Для здійснення ефективного декодування необхідно знати провірочну (контрольну) матрицю Н. Вона містить n-k рядків, які, являючись лінійно незалежними, повинні задовільнити рівность: де v – вектор матриці; u - вектор контрольної матриці; ai і bi – символи кодових комбінацій відповідно продуктивної й контрольної матриць. Для складання контрольної матриці попередньо за формулою (3.18) записуються умови, яким повинні відповідати всі вектори, а потім складається сама матриця. У випадку розглядаючого прикладу з формули (3.18) витікають умови: b1 + b5 = 0; b2 + b4 = 0; b3 + b4 + b5 = 0. По цих умовах, виключаючи нульовий вектор, може бути складено декілька варіантів контрольних матриць. Наприклад: 1 0 1 0 1 0 1 1 1 0 Н1=; Н2 = і т.д. 1 1 0 1 1 1 0 1 0 1 Контрольна матриця є основою для складання таблиці, по якій здійснюється перевірка прийнятих кодових комбінацій на парність. В цій таблиці відмічаються символи, правильність яких перевіряється в кожній із наступних перевірок. Перевірка зводиться до сумування відмічених в таблиці символів принятої кодової комбінації. Перевірку вважаємо такою, що виконується, якщо вказана сума дорівнює нулю або є парним числом. Кількість перевірок відповідає кількості рядків контрольної матриці. Таблиця являється відозміною контрольної матриці, в якій, підлягаючі перевірці символи позначені хрестиками. Наводимо таблицю перевірок для контрольної матриці Н2 нашого прикладу (табл.3.7). Таблиця 3.7 – Перевірка контрольної матриці
В залежності від вибраної кодової віддалі перевірка на парність дає можливість виправити або тільки виявити існуючі помилки. Якщо кодова комбінація прийнята правильно, то всі перевірки на парність виконуються. Якщо прийнята комбінація містить помилку, то одна або декілька перевірок не виконується. Сполучення перевірок, що виконуються і що не виконуються, вказують на місце знаходження помилки. В приведеному прикладі при наявності однократної помилки в прийнятій комбінації містяться три можливості. Не виконується ні одна з перевірок – значить, помилка в 3-му символі (так як тільки цей символ присутній в обох перевірках). Перша перевірка виконується, друга ні – значить, помилка в 1-му або 5-му символі. Перша перевірка не виконується, друга виконується – значить, помилка в 2-му або 4-му символі. Крім перевірки на парність виправлення прийнятих кодових комбінацій можливе шляхом обчислення виправляючого вектора с. Його складові сj – скалярні добутки прийнятого вектора vх і рядка контрольної матриці uy. Так як будь-який прийнятий вектор є сумою переданої кодової комбінації vі і можливої помилки еі, то, враховуючи формулу (3.18), маємо: сj = vх uj = (vi + ei) uj = еі uy . (3.19) Певний виправляючий вектор с представляється (n – k)- значним, двійковим числом. При відсутності помилки він дорівнює нулю. В залежності від вибраної кодової віддалі кожному виправляючому вектору відповідає одна або декілька можливих помилок. Для виправлення помилок кожному виправляючому вектору необхідно протиставити одну визначену помилку. Виправлення заключається в сумуванні прийнятої кодової комбінації з цією помилкою. Для розглянутого прикладу (по контрольній матриці Н2) визначаємо виправляючий вектор, що відповідає помилці 00001. с1 = (0 0 0 0 1 х 0 1 1 1 0) = 0+0+0+0+0=0 с = 01 с2 = (0 0 0 0 1 х 1 0 1 0 1) = 0+0+0+0+1=1
По такій же закономірності встановлюємо відповідність решти помилок, що виправляються, вектору, що виправляє: Помилка с Виправляючий вектор с
0 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 1 0 0 1 1 При прийомі будь-якої дозволеної кодової комбінації одержуємо с = 00. При прийомі будь-якої комбінації з однократною помилкою, наприклад п’ятої комбінації з помилкою в 3-му символі, одержимо: с1 = (1 1 1 1 1 х 0 1 1 1 0) = 0+1+1+1+0=0 с = 11 с2 = (1 1 1 1 1 х 1 0 1 0 1) = 1+ 0+1+0+1=1 Треба особливо підкреслити, що виправлення помилок методом виправляючого вектора не може усунути обмежень, що накладаються на можливості коду його кодовою віддалю. Одержана однозначність виправлення уявна, так як при недостатній кодовій надлишковості один і той же виправляючий вектор відповідає декільком різним помилкам. Це легко перевірити, продовжуючи приведену вище таблицю відповідностей.
Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.005 сек.) |