Що таке кодова відстань

Що таке кодова відстань



Коригувальні коди

Коригуючими називаються коди, що дозволяють виявляти і виправляти помилки. Вони характеризуються кодовою (або хемінговою) відстанню, що позначається буквою d.

Кодова відстань – це мінімальна кількість елементів, у яких одна кодова комбінація відрізняється від іншої. Для визначення кодової відстані достатньо порівняти дві кодові комбінації за модулем 2.

Так, склавши дві комбінації визначимо, що відстань між ними d = 7.

Код з n = 3 і d = 1 передачі використовуються всі вісім кодових комбінацій 000, 001, . 111. Такий код є не на заваді стійким, він не в змозі виявити помилку.

Якщо виберемо комбінації з кодовою відстанню d = 2, наприклад, 000,110,101,011, такий код дозволить виявляти одноразові помилки. Назвемо ці комбінації дозволеними, призначеними передачі інформації. Решта 001, 010, 100, 111 – заборонені. Будь-яка одиночна помилка призводить до того, що дозволена комбінація перетворюється на найближчу, заборонену комбінацію. Отримавши заборонену комбінацію, ми виявимо помилку.

Комбінації для коду з d = 3:

Такий код може виправити одну помилку або виявити дві помилки. Таким чином, збільшуючи кодову відстань можна збільшити стійкість до перешкод коду. У загальному випадку кодова відстань визначається за формулою d = (S + r)+ 1, де S - Число виправлених помилок, r - Число виявлених помилок. Зазвичай r > S.

Більшість коригувальних кодів є лінійними кодами. Лінійні коди – це коди, у яких контрольні символи утворюються шляхом лінійної комбінації інформаційних символів.

Крім того, коригувальні коди є груповими кодами. Групові коди (Gn) – це такі коди, які мають одну основну операцію. При цьому має дотримуватися умова замкнутості (тобто, при складанні двох елементів групи виходить елемент, що належить цій групі). Число розрядів у групі не повинно збільшуватись. Цій умові задовольняє операція порозрядного додавання по модулю 2. У групі, крім того, має бути нульовий елемент.

Приклади кодових комбінацій:

1) 1101 1110 0111 1011 - не група, тому що немає нульового елемента;

2) 0000 1101 1110 0111 - не група, тому що не дотримується умова замкнутості (1101 + 1110 = 0011);

3) 000 001 010 011 100 101 110 111 – група;

4) 000001010111 - підгрупа.

Більшість коригувальних кодів утворюються шляхом додавання до вихідної m - Комбінації k - Контрольних символів. У результаті лінію передаються n = m + k символів. При цьому коригувальні коди називаються (n,m) кодами.

Для побудови коду здатного виявляти та виправляти одиночну помилку необхідне число контрольних розрядів становитиме n - m ≥ log (n + 1).

Якщо необхідно виправити дві помилки, то кількість різних результатів складатиме Cn 2 . Тоді n - m ≥ log (1+ Cn 1 + Cn 2), у цьому випадку виявляються одноразові та дворазові помилки. У загальному випадку число контрольних символів має бути не менше:

Ця формула називається нерівністю Хеммінгу, або нижньою межею Хеммінгу для числа контрольних символів.

Код Хеммінгу.Код Хеммінга, що є груповим (n,m) кодом, з мінімальною відстанню d=3 дозволяє виявляти та виправляти одноразові помилки. Побудова кодів Хеммінгу базується на принципі перевірки на парність ваги W (Кількості одиничних символів) в інформаційній групі кодового блоку.

Для кожного числа перевірочних символів k = 3,4,5… існує класичний код Хеммінгу з маркуванням (n,m) = (2 k -1, 2 k -1 - k), тобто. - (7,4), (15,11), (31,26) ...

Наприклад розглянемо класичний код Хеммінга (7,4). У найпростішому варіанті при заданих чотирьох (m = 4) інформаційні символи (i1, i2, i3, i4) будемо вважати, що вони згруповані на початку кодового слова, хоча це не обов'язково. Доповнимо ці інформаційні символи трьома перевірочними символами (k = 3), задаючи їх наступними рівностями перевірки на парність, що визначаються відповідними алгоритмами:

k3 = i1 i2 i4, де знак означає додавання за модулем 2.

Відповідно до цього алгоритму визначення значень перевірочних символів ki можливі 16 кодових слів (7,4) – коду Хеммінгу.

m = 4 k = 3
i1 i2 i3 i4 k1 k2 k3

На вхід декодера надходить кодове слово V = (i1', i2', i3', i4', k1', k2', k3'), апостроф означає, що будь-який символ слова може бути спотворений на заваді в каналі передачі.

У декодері у режимі виправлення помилок будується послідовність:

Трисимвольна послідовність (s1, s2, s3) називається синдромом S.

Синдром S = (s1, s2, s3) є поєднанням результатів перевірки на парність відповідних символів кодової групи і характеризує певну конфігурацію помилок (шумовий вектор).

Число можливих синдромів визначається виразом: S = 2 k.

Мал. 16.1. Кодер простого (7, 4) – коду Хеммінгу

Мал. 16.2. Декодер простого (7, 4) – коду Хеммінгу

У числі перевірочних символів k = 3 є вісім можливих синдромів (23 = 8). Нульовий синдром (000) вказує на те, що помилки при прийомі відсутні або не виявлені.Будь-якому ненульовому синдрому відповідає певна зміна помилок, що й виправляється. Класичні коди Хеммінга мають число синдромів, що дорівнює їх необхідному числу, дозволяють виправити всі одноразові помилки в будь-якому інформативному і перевірочному символах і включають один нульовий синдром. Такі коди називаються щільно запакованими.

Усічені коди є нещільноупакованими, оскільки кількість синдромів у них перевищує необхідне. Так, у коді (9,5) при чотирьох перевірочних символах число синдромів дорівнюватиме 2 4 =16, тоді як необхідно всього 10. Зайві 6 синдромів свідчать про неповну упаковку коду (9,5). Для коду (7,4), що розглядається, в таблиці 16.1 представлені ненульові синдроми і відповідні конфігурації помилок.

Таким чином, код (7,4) дозволяє виправити усі поодинокі помилки. Проста перевірка показує, що кожна помилка має свій єдиний синдром. При цьому можливе створення такого цифрового коректора помилок (дешифратора синдрому), який за відповідним синдромом виправляє відповідний символ прийнятої кодової групи.

Відповідність синдромів конфігураціям помилок

Синдром
Конфігурація помилок
Помилка у символі k3 k2 i4 k1 i1 i3 i2

Циклічні коди.Циклічним кодом називається такий груповий код, який пов'язаний з додатковою умовою циклічності. Усі рядки утворюючої матриці такого коду можуть бути отримані циклічним зсувом однієї комбінації, яка називається утворюючою для даного коду.

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

- висока ефективність, так як циклічні коди мають порівняно невелику надмірність, відрізняються простотою реалізації кодуючих і декодуючих пристроїв;

- Висока завадостійкість - за рахунок здатності коду до виявлення та виправлення помилок.

Для оптимального коду кількість помилок, що виправляються, дорівнює 2 k -1, де k - Число контрольних розрядів.

Цифрові коди, що застосовуються в даний час, містять n розрядів, з яких m є інформаційними, а k = n-m - Контрольними (перевірочними), розташованими в кінці кодової комбінації. Так як інформаційні та контрольні розряди займають строго певні місця та довжина кодової комбінації постійна, то циклічні коди відносяться до систематичних кодів.

Для опису циклічних кодів зазвичай користуються записом будь-якого n-розрядного двійкового числа у вигляді багаточлена ступеня (n-1). Наприклад, кодова комбінація 1011001 записується як багаточлен x 6 + x 4 + x 3+1, тобто. Коефіцієнти многочлена не пишуться, а члени з коефіцієнтами 0 опускаються. Найвища ступінь числа з коефіцієнтом 1 називається ступенем полінома (багаточлена). Так, у прикладі розглянуто багаточлен 6-го ступеня.

Таким чином, дії над кодовими числами можна звести до дій багаточленів. При цьому використовують теорію комутативних кілець. Комутативним кільцем називають безліч, у якому особливим чином визначено операції складання та множення.

У циклічному кодуванні всі математичні операції додавання проводяться з використанням додавання по mod 2 і з наведенням подібних членів.

Операцію множення символічно проводять за такими правилами:

1) Спочатку всі багаточлени перемножуються за звичайними правилами, але з приведенням подібних членів за mod 2.

2) Якщо старший ступінь отриманого в результаті множення багаточлена не перевищує (n-1), цей многочлен є результатом символічного множення.

3) Якщо старший ступінь отриманого в результаті множення багаточлена більший (n-1), то багаточлен твору поділяється на двочлен x n +1. І тут результатом символічного множення вважається залишок від розподілу (відрахування).

приклад: Маємо кодові комбінації 001101 та 101110, де n = 6.

Ці комбінації відповідають багаточленам: x 3 + x 2 + 1 та x 5 + x 3 + x 2 + x.

Допустимо, необхідно провести двічі циклічний зсув цих кодових комбінацій. В результаті отримаємо:

Для цієї операції з многочленами необхідно їх символічно помножити на x×x = x 2 :

1) (x 3 + x 2 + 1) × x 2 = x 5 + x 4 + x 2, т.к. ступінь отриманого багаточлена не перевищує (n-1) = 5, цей многочлен приймається за результат множення і дійсно відповідає зрушеної кодової комбінації 110100.

2) (x 5 + x 3 + x 2 + x) × x 2 = x 7 + x 5 + x 4 + x3, т.к. ступінь отриманого багаточлена перевищує (n-1), то для отримання результату символічного множення необхідно зробити розподіл цього многочлена на двочлен (x n +1):

Залишок від розподілу x 5 + x 4 + x 3 + x приймається результат символічного множення, що відповідає циклічно зрушеної кодової комбінації 111010.

В основі утворення циклічного коду лежить використання так званого багаточлена (полінома), що утворює (неприводиться). Вибір утворюючого полінома визначає тип циклічного коду і характеризує його виявляють і виправляючі здібності.

Ступінь утворюючого полінома дорівнює k, тобто. числу контрольних символів.Будь-який многочлен циклічного коду повинен ділитися без залишку на поліном, що утворює.

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

Для отримання циклічного коду, багаточлен G(x) (відповідний кодовим комбінаціям без надлишкового m – розрядного коду), множать на x k . Це відповідає припису з боку молодших розрядів k нулів до кодових комбінацій.

Потім твір G(xx k ділиться на утворює багаточлен Р(x). У загальному випадку ми отримуємо внаслідок такого поділу Q(x) Того ж ступеня, що і G(x) та залишок R(x). Залишок R(x) додається до G(xx k . Отримуємо багаточлен F(x) = G(xx k + R(x).

Так як у комбінаціях, що відповідають багаточлену G(xx k , перші k молодших розрядів – нулі, а R(x) – багаточлен ступеня не вище k-1, то операція отримання багаточлену відповідає приписуванню R(x) до G(x) з боку молодших розрядів.

Отриманий таким чином багаточлен F(x) буде ділитися на утворюючий багаточлен Р(x) Без залишку.

Таким чином, циклічний код можна отримати, якщо до кожної кодової комбінації безнадлишкового коду приписувати залишок від поділу многочлена, відповідного цієї кодової комбінації на багаточлен, що утворює.

Оскільки пізнавачами помилок є залишки від розподілу многочленов циклічного коду на утворює многочлен, то здатність коду, що коригує, буде тим вище, чим більше залишків від поділу можна утворити. Найбільша кількість залишків дорівнює 2 k -1 (виключаючи нульовий), може забезпечити неприводимый (простий) многочлен, тобто. такий багаточлен, який ділиться лише сам на себе. Тому як утворюючий багаточлен необхідно вибирати простий многочлен (або їх твір).

Приклад утворення циклічного коду.Нехай інформаційний код містить m = 4 розряди. Одна з N = 2 m комбінацій цього коду: 1101 як многочлена запишеться так: G(x) = x 3 + x 2 + 1.

Якщо циклічний код виявляє та виправляє одну помилку, його мінімальна кодова відстань дорівнює: dmin = S + r + 1 = 3 (де r - Число виявлених, а S - Число помилок, що виправляються).

Виберемо з Таблиці 16.2 значення k (для m = 4, k = 3).

Виберемо з таблиці 16.3 поліном P(x) для k = 3: P(x) = x 3 + x + 1 (тобто 1011)

Помножимо G(x) на x k : G(xx 3 = (x 3 + x 2 + 1)×x 3 = x 6 + x 5 + x 3 (тобто 1101 × 1000 = 1101000)

Розділимо G(xx k на поліном P(x):

В результаті отримуємо:

G(xx 3 / P(x) = (x 3 + x 2 + x + 1) + 001/ (x 3 + x + 1) або: 1111+001/1011

Відповідно до n = m + k: (x 3 + x 2 + x + 1) = Q(x) → 1111

1/(x 3 + x + 1) = R(x) / P(x) → 001 / 1011

Шуканий багаточлен F(x) дорівнює:

F(x) = Q(x) × P(x) = G(x) × x k + R(x) = x 6 + x 5 + x 3 + 1 → 1101001

Для виявлення та виправлення помилок прийнята комбінація ділиться на багаточлен, що утворює. P(х). Якщо залишок R(х) = 0, отже, комбінацію прийнято без помилок. Наявність залишку свідчить про те, що комбінацію прийнято спотвореною.

Залежність між n, m і k

Ненаведені поліноми P(x)

Неприведені багаточлени Їхні еквіваленти
q(x) = x + 1
q(x 2 ) = x 2 + x + 1
q(x 3 ) = x 3 + x + 1
q(x 3 ) = x 3 + x 2 + 1
q(x 4 ) = x 4 + x + 1
q(x 4 ) = x 4 + x 3 + 1
q(x 4 ) = x 4 + x 3 + x 2 + x + 1
q(x 5 ) = x 5 + x 2 + 1
q(x 5 ) = x 5 + x 3 + 1
q(x 5 ) = x 5 + x 3 + x 2 + x + 1
q(x 5 ) = x 5 + x 4 + x 2 + x + 1
q(x 5 ) = x 5 + x 4 + x 3 + x + 1
q(x 5 ) = x 5 + x 4 + x 3 + x 2 + 1
q(x 6 ) = x 6 + x + 1
q(x 7 ) = x 8
q(x 8 ) = x 8 + x 4 + x 3 + x 2 + 1
q(x 9 ) = x 9 + x 4 + 1
q(x 10 ) = x 10 + x 3 + 1

Якщо число перевірочних символів менше за кількість інформаційних символів, то простіше комбінації циклічного коду отримати і за допомогою матриці.

Утворююча матриця складається з двох підматриць – основної та додаткової.

Основна матриця – це поодинока транспортована матриця Im. Вона містить m стовпців та m рядків (за кількістю інформаційних розрядів коду).

Додаткова матриця – матриця залишків. Вона утворюється шляхом поділу на утворюючий поліном P(x) многочлена як одиниці з низкою нулів і виписуванням всіх проміжних залишків. Ця матриця містить k стовпців та m рядків.

За допомогою утворювальної матриці можна отримати будь-яку N = 2 m -1 дозволених комбінацій циклічного коду. Кожен із рядків утворюючої матриці – це вже комбінація циклічного коду. Інші N-m комбінацій можна отримати додаванням по модулю 2 рядків матриці.

приклад:

Кодери та декодери циклічних кодів в основному виконують операції множення та поділу багаточленів.

Операція поділу на утворюючий поліном P(x) здійснюється також за допомогою регістру зсуву, але в цьому випадку регістр має зворотні зв'язки, включені через суматори за модулем 2. Розподіл багаточленів - це операція додавання за модулем 2 дільника з розрядами поділюваного, починаючи зі старшого розряду.

Для алгоритму кодування використовується k-Розрядний регістр зсуву зі зворотними зв'язками через суматори по модулю 2. Число суматорів дорівнює числу членів утворює полінома, відмінних від нуля, мінус одиниця. Структурна схема кодуючого пристрою наведена нижче на малюнку 16.3.

Мал. 16.3. Структурна схема кодуючого пристрою

Схема працює в такий спосіб.У початковому стані ключ П2 замкнутий, ключ П1 знаходиться у положенні «1». Інформаційна кодова комбінація а(x), що має m розрядів (символів) подається на вхід через «1» П1 і одночасно регістр зсуву Р1. За k тактів роботи регістра Р1 у ньому формується залишок r(x), який є контрольними розрядами (символами) циклічного коду. Після цього ключ П2 розмикається, ключ П1 переводиться в положення «2» та контрольні символи за k Такти роботи регістра Р1 виводяться з нього, слідуючи за інформаційними символами.

Необхідно мати на увазі, що інформаційна комбінація а(x) надходить на вхід кодера у зворотній послідовності, тобто. починаючи із старших розрядів. Комбінація циклічного коду на виході кодера має таку саму послідовність.

Схема декодування (утворюється за допомогою поділу на багаточлен, що утворює):

Мал. 16.4. Схема декодування циклічного коду. АТ – аналізатор помилок.

Вихідна комбінація подається в буферний регістр і одночасно через ключ декодуючий регістр. Якщо з приходом останнього символу зафіксовано нульовий залишок, то помилок немає, і якщо не нульовий, тобто помилка. Прийнята комбінація подається через вихідний суматор і спотворений сигнал виправляється аналізатором помилок (АТ).

Мал. 16.5. Приклад схеми декодування методом поділу на поліном P(x) = x 3 +x+1

Коди Ріда-Соломона.Коди Ріда-Соломона є субнабором циклічних кодів і є лінійними блоковими кодами. Код Ріда-Соломона специфікуються як RS(n,m) s-біт символів.

Це означає, що кодувальник сприймає m інформаційних символів з s біт кожен і додає символи парності для формування n символьне кодове слово. Є n-m символів парності по s битий кожен. Декодер Ріда-Соломона може коригувати до k/2 символів, які містять помилки в кодовому слові, де k = n - m.

Мал. 16.6. Структура кодового слова R-S

приклад. Популярним кодом Ріда-Соломона є RS(255,223) із 8-бітними символами. Кожне кодове слово містить 255 байт, з яких 223 є інформаційними та 32 байтами парності. Для цього коду: n = 255, m = 223, s = 8, k = 32, k / 2 = 16.

Декодер може виправити будь-які 16 символів з помилками в кодовому слові: тобто помилки можуть бути виправлені, якщо кількість спотворених байт не перевищує 16.

Коди Ріда-Соломона базуються на спеціальному розділі математики – поля Галуа (GF), або кінцевих полях. Арифметичні дії (+, -, x, / та ін) над елементами кінцевого поля дають результат, який також є елементом цього поля. Для реалізації цих арифметичних операцій потрібне спеціальне обладнання та/або спеціалізоване програмне забезпечення.

Загальна форма утворюючого полінома має вигляд:

P(x) = (x-a i )(x-a i +1 )…(x-a i +k ),

кодове слово формується за допомогою операції:

F(x) = P(x).i(x),

де P(x) - утворює поліном, i(x) являє собою інформаційний блок, F(x) – кодове слово, яке називається простим елементом поля.

ЗАВАДА СТІЙКІСТЬ

Дата завантаження: 2017-10-04 ; переглядів: 6473 ;

Кодова відстань

Для оцінки коригуючих властивостей коду використовують ще поняття мінімальної кодової відстані dmin. Кодова відстань d(A, В) для кодових комбінацій А і визначається числом символів, якими вони відрізняються один від одного. Для визначення d(A, B), яке називають ще відстанню по Хеммінгу, Достатньо обчислити вагу третьої кодової комбінації, яка виходить в результаті додавання по mod2 вихідних комбінацій А і В. Вагом V(S) двійкової кодової комбінації називатимемо число одиниць у ній. Приклад 1. Знайти d(A, В) для кодових комбінацій А та В: А = 0110111002; В = 1001110012. Для цього складемо їх за mod2 і знайдемо вагу сумарної двійкової комбінації

яка визначає кодове відстань заданих комбінацій d(A, В). Якщо коди розглядати як деякі геометричні (просторові) фігури (наприклад, тріаду можна подати у вигляді одиничного куба, що має координати вершин, які відповідають двійковим символам (рис. 3.48)), то в цьому випадку кодова відстань сприймається як сума довжин ребер між відповідними вершинами куба (прийнято, що довжина одного ребра дорівнює одиниці). Тоді, наприклад, d(D, C) = 3. Рис. 3.48. Геометричне подання кодів Мінімальна кодова відстань dmin - Це мінімальна відстань, взята за всіма параметрами дозволених кодових комбінацій. Теоретично кодування показано, що систематичний код здатний виявляти помилки лише тоді, коли dmin > 2t, де t - кратність виявлених помилок (для поодиноких помилок t = 1). Дійсно, при dmin > 2t жодний варіант t-кратної помилки не може перевести одну дозволену кодову комбінацію в іншу дозволену. Так якщо d = 2, то при t = 1 жодна з дозволених 3-розрядних кодових комбінацій не переходить в іншу дозволену. Безліч тр може бути утворено за принципом парності у них числа 1. Так, КК 000,011,101,110 е р>; тоді 001,010,111,100 е 3>.При такому кодуванні виявляться всі помилки одиночні (t = 1), а також інші помилки непарної кратності (потрійні). Якщо ж dmin 2t + 1. Виправлення помилок. Загальна ідея виправлення помилок кратності трохи більше t у наступному. Число можливих кодових комбінацій завадостійкого коду розбивається на класи за кількістю дозволених кодових комбінацій. Розбиття здійснюється таким чином, щоб до кожного класу входили одна дозволена кодова комбінація та найближчі до неї заборонені. При декодування визначається, якому класу належить ухвалена кодова комбінація. Якщо її прийнято з помилкою, тобто. є забороненою, виправляється на дозволену кодову комбінацію, що належить тому ж класу.

Наприклад, для виправлення одиночної помилки (t=1) кожної дозволеної кодової комбінації можна порівняти підмножину заборонених. Щоб ці підмножини не перетиналися, d між дозволеними КК має бути щонайменше трьох, тобто. dmin >3. Тоді за дозволені кодові комбінації можна прийняти.0 = 0002 та А7 = 1112 і приписати кожній із них підмножину тих заборонених комбінацій, яких може призвести одиночна помилка.

Зв'язок коригуючої здатності коду з кодовою відстанню

Ступінь відмінності будь-яких двох кодових комбінацій характеризується відстанню між ними по Хеммінгу, або просто кодовою відстанню. Відстань Хеммінга cl виражається числом позицій, у яких кодові комбінації відрізняються одна від одної. Щоб підрахувати кодову відстань між двома комбінаціями двійкового коду, необхідно скласти по модулю ці дві комбінації, а потім підрахувати число одиниць у сумі. Пояснимо прикладами. приклад 1. Знайти відстань Хеммінга d між кодовими комбінаціями 10101011 і 11111011. Зробимо додавання за модулем два:

При додаванні по модулю два переносів немає, додавання проводиться розрядно за правилами: 000 = 0; 001 = 1; 101 = 0. Порахувавши число одиниць, у сумі отримуємо d=2. Приклад 2. Знайти відстань Хеммінга між кодовими комбінаціями 10101111 та 00111100. Аналогічно попередньому прикладу Для всіх можливих комбінацій багаторозрядного двійкового коду вводиться поняття мінімальної кодової відстані. Мінімальна відстань Хеммінга, взяте але всім нарам можливих кодових комбінацій даного коду називається мінімальною кодовою відстанню. Пояснимо прикладом. Для трирозрядного двійкового коду маємо комбінації: 000, 001, 010, 011, 100, 101, 110, 111. Підрахуємо відстань Хеммінгу всім пар (табл. 12.1). Таблиця 12.1 Мінімальна кодова відстань c/m;n визначає здатність коду виявляти та виправляти помилки, що виникають при передачі даних. Для розглянутого трирозрядного двійкового коду dmin = 1. Якщо для передачі використовувати всі комбінації, то будь-яка одиночна помилка трансформує передану комбінацію в іншу дозволену кодову комбінацію, тому можливості виявлення помилок немає. Для створення можливості виявлення помилок при передачі надійдемо таким чином. У трирозрядному коді для передачі вихідної інформації будемо використовувати два розряди, а третій переданий розряд для передачі формуватимемо за правилом: його значення дорівнює нулю, якщо число одиниць в інформаційних розрядах парне, і дорівнює одиниці, якщо число одиниць в інформаційних розрядах непарне. Пояснимо цей процес таблицею.

При передачі формуються і передаються завадові кодові комбінації, в яких число одиниць парне.Якщо прийнято кодову комбінацію, що містить непарне число одиниць (одна із заборонених комбінацій), то можна стверджувати, що при передачі сталася помилка. Для дозволених кодових комбінацій нашого прикладу dmm = 2, т. до.

Таким чином, при dmm = 2 виявляються всі одноразові помилки. Хемінг доведено, що в загальному випадку для можливості виявлення помилок кратності г мінімальна відстань Хеммінга dmm має бути принаймні на одиницю більше г, тобто. dmjn > г + 1.

У розглянутій ситуації у разі помилки можна сказати, що вона відбулася, але не можна сказати, у якому розряді вона відбулася.

Для створення можливості виправлення одноразової помилки надійдемо таким чином.

У трирозрядному коді під інформаційний символ відведемо один розряд, а два інших відведемо під надлишкові контрольні символи (алгоритм формування контрольних символів поки не є важливим). З усіх трирозрядних кодових комбінацій виберемо дозволеними 000 і 111. Тоді при передачі та прийомі інформації можуть виникати такі ситуації (за можливості виникнення лише однієї помилки):

Видно, що всі спотворені одноразовою помилкою кодові комбінації можна виправити. Відстань Хеммінгу між дозволеними кодовими комбінаціями для цього випадку dmn = 3.

Хемінг доведено, що в загальному випадку для забезпечення коду можливістю виправлення помилок кратності 5 мінімальна відстань Хеммінга dmi„ має бути з умови dmin >25 + 1.

Для коду, що дозволяє виявляти помилки кратності г та виправляти помилки кратності 5 > 5), мінімальна відстань Хеммінга вибирається з умови dmm >r + S+ 1.

Якщо код повинен виявляти дворазові помилки та виправляти одноразові, то t/min має дорівнювати 4.Тому код Хеммінгу з dmin = 3 може або виправляти одноразові помилки, або тільки виявляти одноразові та дворазові помилки.

Наведені формули нс дозволяють визначити необхідну кількість контрольних (надлишкових) символів та використовуються лише для теоретичної перевірки розроблених кодів.

Схожі статті

  • Що таке таблиця об'єкт об'єкт
  • Що таке Кастер у підвісці
  • Що таке соус Шою
  • Що таке МСФЗ простими словами
  • Що таке сорт м'яса
  • Що таке Фасадна панель для посудомийної машини
  • Що таке джунглі історія 5 клас
  • Що таке обсяг простими словами
  • Недавні статті

  • Чому взуття скрипить при ходьбі
  • Коли день народження у стрічці
  • Чи можна кішці їсти сіль
  • Варіанти планування ділянки 15 соток прямокутної форми
  • Що означає півмісяця знак
  • Рейсмусовий верстат для чого
  • У якому віці парують свиней
  • У чому полягає принцип нарахування та у яких випадках він застосовується