Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Лишково - Хеммінгові і лишково-матричні коди




У лишково - Хеммінгових (ЛХ) кодах, як і при контрольному додаванні, двійкові базові кодові слова розбиваються на n b − розрядних узагальнених символів і записуються у вигляді α1, α2,..., α n, де α i ≤ 2 b – 1, а
N = bn. Так само, як і в двійковому коді Хеммінга (класична форма запису коду) узагальнені символи з номерами 2 j (j = 0, 1,…) є перевірочними, решта символів - інформаційні. Причому для отримання перевірочних символів при кодування використовується алгоритм, аналогічний алгоритму для двійкового коду Хеммінга, тобто для отримання першого перевірочного символу необхідно скласти по деякому модулю (одержати лишки) всі узагальнені символи, що мають в коді свого номера одиницю в першому (молодшому) розряді; для отримання другого перевірочного символу - скласти по модулю усі символи, що мають в коді свого номера одиницю в другому розряді і т.д.

Як модуль для отримання контрольних символів необхідно використовувати величину s = 2 b, тобто

α1 = {α3 + α5 + α7 + ………………} s ,

α2 = {α3 + α5 + α6 + α7 + …………} s ,

………………………………

При декодування зберігається той же алгоритм розрахунку перевірочних α i символів, що і при кодуванні, без використання в модульному складання контрольних символів. Знов одержані перевірочні символи порівнюються з відповідними перевірочними символами, обчисленими при кодувань. При їх відповідності робіться висновок про відсутність спотворення, в решті випадків - про наявність спотворення.

Якщо приписати результатам порівняння значення 0, а результатам не порівняння - значення 1, то одержана сукупність нулів і одиниць утворює код, який також, як і в двійковому коді Хеммінга, є номером спотвореного символу.

Приклад. Хай необхідно закодувати ЛХ-кодом восьми розрядну
(M = 8) послідовність 10001101 Якщо код орієнтований на виправлення двократних спотворень, то b = 2, а s = 4. Кількість узагальнених символів
m = M / b = 4. Відомо, що при цьому потрібно три перевірочні символи α1, α2, α4, а інформаційними символами є α3 = 10, α5 = 00, α6 = 11, α7 = 01. Для отримання першого перевірочного символу складемо по модулю чотири α3, α5, α7.

α1 = {α3 + α5 + α7}4 = 11

Аналогічно цьому

α2 = {α3 + α6 + α7}4 = 10,

α4 = {α5 + α6 + α7}4 = 00.

Після кодування одержано код

11. 10. 10. 00. 00. 11. 01 = α1, α2, α3, α4, α5, α6, α7,

який повинен бути записаним в ЗП, переданим в канал зв’язку і т.д.

Хай зчитаний або прийнятий з каналу зв’язку код має спотворення у п’ятому символі:

α1, α2, α3, α4, ά5, α6, α7 = 11.10.10.00.01.11.01.

Після обчислення нових контрольних символів, одержимо

α1 = {α3 + ά5 + α7}4 = 00 (11)→1,

α2 = {α3 + α6 + α7}4 = 10 (10) →0,

α4 = {ά5 + α6 + α7}4 = 01 (00) →1.

Результати порівняння дадуть код 101, оскільки перший а третій перевірочні символи не співпадають. Це свідчить об виявлення помилки в п’ятому символі, що і було насправді.

Неважко визначити і величину спотворення. Насправді, будь-який з перевірочних символів, наприклад αi, при спотворень будь-якого інформаційного, наприклад αj, що приймає участь у формуванні символу αi має величину

ά і = {α c + α d + …… + { αj + Δαj } + ……}s = { αі + Δαj } s. (1)

Звідки

Δαj = {ά i − α i } s . (2)

Для вищерозглянутого прикладу

Δα5 = {ά1 – α1}4 = {00 − 11}4 = 01

або

Δα5 = {ά4 – α4}4 = {01 − 00}4 = 01.

 

Знаючи величину (ά i) і місце спотворення (i), легко здійснити корекцію, оскільки з (2) слідує

Αi = { άi − Δαj } s .

У нашому прикладі

α5 = {ά5 – Δα5}4 = {01 – 01}4 = 00.

Алгоритм декодування ЛХ − коду може бути спрощеним, якщо при кодуванні замість перевірочних символів αi в записану або передану послідовність записувати величину

Δα і = { s − Δαj } s.

а при декодуванні використовувати алгоритм, повністю відповідний алгоритму Хеммінга, тобто включати в перевірку і необхідні перевірочні символи.

Тоді для вже розглянутого прикладу Δα1 = 01, Δα2 = 10, Δα4 = 00 необхідно записати (передати) код

α1, α2, α3, α4, α5, α6, α7 = 11. 10. 10. 00. 00. 01. 11.

Якщо зчитано або прийнято слово з тим же спотворенням, що і раніше, тобто

α1, α2, α3, α4, ά5, α6, α7, = 11.10.10.00.01.01.11,

то після декодування отримаємо

Δ α 1 = { α 1 + α3 + ά5 + α7}4 = 01,

Δ α 2 = { α 2 + α3 + α6 + α7}4 = 00,

Δ α 4 = { α 4 + ά5 + α6 + α7}4 = 01.

При цьому, якщо відмінним від нуля перевірочним символам приписати значення 1, а іншим - код 0, то одержимо код синдрому S = 101, що визначає місце спотворення, величина якого дорівнює значенню будь-якого ненульового перевірочного символу. Для розглянутого прикладу величина спотворення
Δα і = 01, корекція якого нескладна.

У лишково − матричних кодах початковий код розбивається на узагальнені символи, які зводяться в прямокутну матрицю розмірності mn (m стовпців і n рядків) вигляду

.

Ця матриця при кодуванні розширюється на один рядок і один стовпець за рахунок перевірочних символів, кожний з яких є доповненням до s суми по модулю s елементів відповідного рядка або відповідного стовпця, при цьому одержують нову матрицю

Одержана розширена матриця записується в ЗП (передається в канал зв’язку). При декодуванні ті перевірочні елементи з додаткових рядка і стовпця, які відповідають рядку або стовпцю, що містить спотворені символи, відрізнятимуться від нуля, що дає можливість визначати місце спотворення. Якщо спотворений тільки один елемент в рядку і стовпці, то ненульове значення відповідних перевірочних символів визначить величину цієї помилки. У цьому значенні можливості ЛМ-коду до відношенню до узагальнених символів повністю співпадатимуть з можливостями по виявленню і виправленню спотворень двійкового матричного коду по відношенню до двійкових символів.

Приклад. Хай необхідно закодувати ЛМ-кодом восьми розрядну послідовність 10.00.11.10 Для b = 2 і s = 4 одержимо матрицю

= .

Після кодування розширена матриця має вигляд

=

Хай зчитана (прийнята з каналу зв’язку) послідовність, що відповідає матриці (спотворений елемент першого рядка другого стовпчика)

.

В результаті декодування, одержуємо матрицю

,

з якої виходить, що спотвореним є елемент першого рядка і другого стовпця, а величина спотворення дорівнює 01. Після чого корекція спотворення стає тривіальною.

 




Поделиться с друзьями:


Дата добавления: 2014-01-04; Просмотров: 524; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.007 сек.