
- •1.1. Повідомлення та інформація
- •1.2. Моделі інформаційних систем
- •1.4. Предмет теорії інформації та кодування
- •2.2. Кількісна міра інформації
- •2.3. Ентропія та її властивості
- •2.4. Безумовна ентропія
- •2.5. Умовна ентропія
- •2.6. Ентропія об'єднання двох джерел
- •3.1. Продуктивність дискретного джерела та швидкість передачі інформації
- •4.1. Квантування сигналів
- •4.2. Інформаційні втрати
- •4.3. Продуктивність неперервного джерела та швидкість передачі інформації
- •IhlilhM
- •4.4. Пропускна здатність . . . .
- •5.1. Класифікація кодів і характеристики їх
- •5.4. Способи подання кодів
- •5.6. Основні теореми кодування для каналів
- •6.1. Класифікація первинних кодів
- •6.2. Нерівномірні двійкові первинні коди
- •6.2.1. Код морзе
- •6.2.2. Число-імпульсні коди
- •6.3. Рівномірні двійкові первинні коди
- •6.3.1. Числові двійкові коди
- •6.3.2. Двійково-десяткові коди
- •6.3.4. Двійково-шістнадцятковий код ;;.-,-.
- •6.3.5. Рефлексні коди
- •7.1. Двійкові коди,
- •7.1.2. Код із перевіркою на непарність
- •7.1.3. Код із простим повторенням
- •7.2. Недвійкові коди, що виявляють помилки
- •7.2.1. Код із перевіркою за модулем q
- •7.2.2. Код із повторенням
- •8"6 90472 "100562 І' • шТрИховє зОбраЖєння кодового сло-
- •8.1. Двійкові групові коди
- •8.1.1. Лінійний систематичний груповий (блоковий) код
- •8.1.2. Коди хеммінга
- •8.1.4. Коди боуза - чоудхурі - хоквінгема
- •8.1.5. Код файра
- •8.1.6. Код із багатократним повторенням
- •8.3.2. Узагальнений код хеммінга
- •8.3.3. Коди боуза - чоудхурі - хоквінгема
- •8.3.4. Коди ріда - соломона
- •8.3.6. Недвійковий ланцюговий код
- •9.1. Вірогідність передачі кодованих повідомлень
- •9.2. Стиснення інформації"
- •9.2.1. Способи стиснення даних при передачі
- •9.2.2. Способи стиснення даних при архівації
- •Збіжного рядка
- •9.3. Збільшення основи коду
- •0Сзезс99е8с0е1с10d1c242d5c3d2c6d8cbd6e8c0
- •VosooooooooooooooooOvJvJ
8.3.2. Узагальнений код хеммінга
Серед #-кодів найпростішими кодами, які мають алгебричну структуру й забезпечують нескладні процедури кодування та декодування, є лінійні блокові коди, що виправляють одну помилку. В класі двійкових кодів існує аналог їх — код Хеммін-га. Хоча між цими кодами є суттєві відмінності, #-код часто називають узагальненим кодом Хеммінга [8], маючи на увазі узагальнення коду на недвійковий алфавіт q > 2.
На відміну від двійкового символами #-коду є елементи #-поля: його перевірна матриця Я не є множиною всіх послідовних номерів позицій елементів коду в блоці завдовжки п. В ^-коді, крім визначення місця помилки в блоці, необхідно ще знати її значення є [8].
Розглянемо матричне подання узагальненого коду Хеммінга. Його перевірна матриця
Н=Щ,І=Щ, j=fr\ (8.39)
має розмір гхп. Тут / — номер рядка; j — номер стовпця; г — кількість перевірних елементів у блоці; п — довжина блока.
На відміну від двійкового коду матриця Н є підматрицею матриці
Л =[airl i=\lr\9 z = \\,qr\
розміром г х q\ у стовпцях якої послідовно записуються всі r-компонентні ^-вектори (Я= А при q = 2). Стовпці Н мають бути ненульовими, різними та лінійно незалежними. Для цього в матрицю Н необхідно ввести всі вектори-стовпці матриці А, що мають однакову першу ненульову компоненту 8.
Оскільки ця компонента відповідає умові 1 < 5 < q - 1, кількість її можливих значень дорівнює q - 1. Тому, виключивши з А нульовий вектор-стовпець, дістанемо кількість векторів-стовпців у матриці Н (отже, й довжину кодового блока) п = = (qr - \)l{q - 1), що відповідає [32].
Із побудови матриці Н випливає, що г її перших векторів-стовпців, кожний з яких містить єдину ненульову компоненту 8, утворюють діагональну підматрицю розміром г х г. Ця об-
ста вина вказує на зручні позиції для розміщення г перевірних елементів у блоці.
Загалом кодовий вектор має вигляд
X=bl...bi...bral...aj...ak, (8.40)
де а- - ^-інформаційні символи джерела; У=|1,&|; k — кількість інформаційних елементів вектора Х{к = п - г); Ьі — перевірні
елементи кодового блока (/ = |і,г|), причому
Ь(=8-1^пи+г- (8.41)
Вираз (8.41) можна дістати з матричного рівняння Шт = 0 підносно перевірних елементів, цеХт— транспонований век-
Указане у (8.40) розміщення перевірних елементів не є єдино можливим, але воно забезпечує мінімальний обсяг обчислень при кодуванні та декодуванні. При цьому вираз (8.41) установлює оптимальний алгоритм кодування.
Кодовий блок (8.40) покомпонентно передається в канал зв'язку, де він може бути спотворений завадою. Не вдаючись до суті цього явища, процес спотворень зручно подати як
7 =Х+Е,
деР— спотворений я-вимірний кодовий вектор на виході каналу передачі; Е — «-вимірний вектор помилки з єдиною не-иульовою компонентою є (в припущенні одиничної помилки). Першим кроком при декодуванні за аналогією з двійковим кодом є обчислення r-компонентного перевірного синдрому
S = HYT = Le.
ВекторS —цезначення помилки е(\ <є<q- 1), помножене на стовпець L перевірної^матриці Я, який відповідає позиції спотвореного елемента в Y. Його називають локатором помилки. Оскільки всі вектори-стовпці в Н мають першу ненульову компоненту 8, в S перша ненульова компонента визначається ниразом
sx = 8 є.
Це зумовлює другий крок процедури декодування — визначення помилки
є = 5'18"~1 = sxlb.
194
195
Із визначення S = Нїт -Le випливає третій крок процедури декодування — знаходження локатора помилки
L=Serl=S/e.
На четвертому кроці процедури декодування впорядкованим перебором стовпців перевірної матриці Н і порівнянням їх із локатором L за збігом визначається позиція спотвореного елемента в кодовому блоці.
П'ятим й останнім кроком декодування є виправлення помилки, яке загалом виконується відніманням значення помилки є від спотвореного елемента, знайденого в 7 за його локатором L. Далі спотворений елемент у блоці замінюється результатом віднімання і після виключення перевірних елементів одержувач дістає інформаційну частину кодового блока.
Усе описане вище стосується коду з довільною основою q. Зазначимо, що #-коди прийнято поділяти на дві великі групи: коди з простою основою q - /?, дер є {3,5,7,11,13,...}; коди з основою q, що розкладається. Найбільший практичний інтерес викликає тільки окремий випадок цих кодів при q = 27, коли символи мають інформаційну ємність / бітів і можуть бути зіставлені з усіма /-розрядними двійковими числами.
Вибір q впливає на визначення операцій додавання, віднімання, множення і ділення під час виконання процедур кодування та декодування. Якщо основа q — просте число, то зручно використати апарат обчислень за модулем цього числа. Якщо ж q = 2і, то необхідно звернутися до алгебричного апарата обчислень за модулем незвідного полінома (див. п.5.3). Символи коду при цьому ставляться у відповідність елементам скінченного поля порядку q.