Лінійний код у теорії кодування — код з виправленням помилок, для якого будь-яка лінійна комбінація кодових слів також є кодовим словом. Лінійні коди традиційно розділяють на блокові коди і згорткові коди, хоча турбо-коди можна розглядати як гібрид цих двох типів. Лінійні коди, в порівнянні з іншими кодами, дозволяють реалізовувати більш ефективні алгоритми кодування і декодування інформації.
Лінійні коди використовуються при попередній корекції помилок і застосовуються для передачі символів (наприклад, біт) через канал зв'язку, так що, якщо відбуваються помилки в повідомленні, деякі помилки можуть бути виправлені або виявлені при отриманні блоку. Кодові слова в лінійному блоковому коді є блоком символів, які кодуються з використанням більшої кількості символів, ніж у даних для відправки. Лінійний код довжини N передає блоки, що містять N символів. Так, наприклад, [7,4,3] код Гемінга є лінійним двійковим кодом, який представляє 4-бітові повідомлення з використанням 7-розрядних кодових слів. Два різних кодових слова розрізняються принаймні в трьох бітах. Як наслідок, до двох помилок на кодове слово може бути виявлено і одна помилка може бути виправлена. Цей код містить 24 = 16 кодових слів.
де G — породжувальна матриця; H — матриця перевірки парності.
Визначення та параметри
Лінійний код довжини n і рангу k — це лінійний підпростір C з розмірністю k векторного простору , де — скінченне поле з q елементами. Такий код має назву «q-нарний код». Якщо q = 2 або q = 3, код описується як бінарний або тернарний відповідно. Вектори в C називаються кодовими словами. Розмір коду — це кількість кодових слів та дорівнює qk.
Вага кодового слова — це кількість його ненульових елементів, а відстань між двома кодовими словами — це відстань Геммінга, яка є кількістю елементів, які в них відрізняються. Відстань d лінійного коду — це мінімальна вага його ненульових кодових слів або, еквівалентно, мінімальна відстань між різними кодовими словами. Лінійний код довжини n, розмірності k та відстані d називається [n,k,d] код.
Ми хочемо використовувати у стандартний базис, оскільки кожна координата являє собою «біт», який передається через «канал з шумом» з деякою невеликою ймовірністю помилки передачі (). Якщо використовувати якийсь інший базис, тоді ця модель буде не придатна, бо відстань Геммінга не буде вимірювати кількість помилок при передачі, як нам би того хотілося.
Допустимі і недопустимі комбінації
Як уже відзначалося, завадостійкість кодування забезпечується за рахунок внесення надмірності в кодові комбінації. Це значить, що з n символів кодової комбінації для передачі інформації використовується k < n символів. Отже, із загального числа No=2n можливих кодових комбінацій для передачі інформації використовується тільки N = 2k комбінацій. Відповідно до цього вся множина No=2n можливих кодових комбінацій поділяється на дві групи. У першу групу входить множина N = 2k дозволених комбінацій, друга група містить у собі множину (No — N) = 2n−2k заборонених комбінацій.
Якщо на стороні приймання встановлено, що прийнята комбінація належить до групи дозволених, то вважається, що сигнал прийшов без перекручувань. В іншому випадку робиться висновок, що прийнята комбінація перекручена. Однак це справедливо лише для таких перешкод, коли усунута можливість переходу одних дозволених комбінацій в інші.
Коригуюча здатність коду
Коригуюча здатність коду визначається мінімальною кодовою відстанню. Складемо матрицю відстаней між кодовими комбінаціями для таких дозволених комбінацій: 00000; 01110; 10101; 11011.
Таблиця — Матриця відстаней
00000 | 01110 | 10101 | 11011 | |
---|---|---|---|---|
00000 | 0 | 3 | 3 | 4 |
01110 | 3 | 0 | 4 | 3 |
10101 | 3 | 4 | 0 | 3 |
11011 | 4 | 3 | 3 | 0 |
Як видно з матриці, мінімальна кодова відстань dmin=3. Отже, даний код здатний:
- виявляти дворазові помилки;
- усувати однократні помилки;
- усувати і виявляти однократні помилки.
Приклад: код Адамара
Код Адамара — це лінійний код, який дає можливість виправити багато помилок. Код Адамара можна побудувати за стовпцями: стовпець — це біти побітового представлення цілого числа , див. наступний приклад. Код Адамара має мінімальну відстань , отже може виправити помилку.
Приклад: Лінійний код з наступною породжувальною матрицею — це код Адамара: .
Код Адамара — це окремий випадок . Якщо взяти перший стовпець (нульовий стовпець) з , то ми отримаємо симплексний код, який є подвійним кодом коду Хеммінга.
Алгоритм найближчого сусіда
Параметр d тісно пов'язаний із можливістю виправляти помилки коду. Наступний алгоритм це ілюструє (та має назву «алгоритм найближчого сусіда»):
Вхідні дані: отриманий вектор v в .
Вихідні дані: кодове слово в найближчий до , якщо таке існує.
- Починаючи з , повторюються наступні 2 кроки.
- Перебрати елементи кулі радіусу навколо отриманого слова , позначеної .
- Для кожного в треба перевірити чи належить до . Якщо це вірно, тоді — рішення.
- Збільшити t на 1. Припинити лише коли , тоді перебір закінчено та не знайдено жодного рішення.
Лінійний код називається виправляючим -помилку, якщо є щонайбільше одне кодове слово в для кожного у .
Поширене позначення
Коди загалом часто позначаються літерою C, а код довжини n і рангу k (тобто код, який має n кодових слів у своїй основі та k рядків у його породжувальній матриці) зазвичай називають (n, k) код. Лінійні коди часто позначаються [n, k, d] кодами, де d означає мінімальну відстань коду Хеммінга між будь-якими двома кодовими словами. ([n, k, d] позначення не слід плутати з (n, M, d) позначенням, яке використовується для позначення нелінійного коду довжиною n, розміром M (тобто має M кодових слів) та мінімальною відстанню Хеммінга d.)
Примітки
- William E. Ryan and Shu Lin (2009). Channel Codes: Classical and Modern. Cambridge University Press. с. 4. ISBN .
- (2003). (PDF). Cambridge University Press. с. 9. ISBN . Архів оригіналу (PDF) за 19 жовтня 2016. Процитовано 19 грудня 2017.
In a linear block code, the extra bits are linear functions of the original bits; these extra bits are called parity-check bits
- Thomas M. Cover and Joy A. Thomas (1991). Elements of Information Theory. John Wiley & Sons, Inc. с. 210–211. ISBN .
Джерела
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Linijnij kod u teoriyi koduvannya kod z vipravlennyam pomilok dlya yakogo bud yaka linijna kombinaciya kodovih sliv takozh ye kodovim slovom Linijni kodi tradicijno rozdilyayut na blokovi kodi i zgortkovi kodi hocha turbo kodi mozhna rozglyadati yak gibrid cih dvoh tipiv Linijni kodi v porivnyanni z inshimi kodami dozvolyayut realizovuvati bilsh efektivni algoritmi koduvannya i dekoduvannya informaciyi Linijni kodi vikoristovuyutsya pri poperednij korekciyi pomilok i zastosovuyutsya dlya peredachi simvoliv napriklad bit cherez kanal zv yazku tak sho yaksho vidbuvayutsya pomilki v povidomlenni deyaki pomilki mozhut buti vipravleni abo viyavleni pri otrimanni bloku Kodovi slova v linijnomu blokovomu kodi ye blokom simvoliv yaki koduyutsya z vikoristannyam bilshoyi kilkosti simvoliv nizh u danih dlya vidpravki Linijnij kod dovzhini N peredaye bloki sho mistyat N simvoliv Tak napriklad 7 4 3 kod Geminga ye linijnim dvijkovim kodom yakij predstavlyaye 4 bitovi povidomlennya z vikoristannyam 7 rozryadnih kodovih sliv Dva riznih kodovih slova rozriznyayutsya prinajmni v troh bitah Yak naslidok do dvoh pomilok na kodove slovo mozhe buti viyavleno i odna pomilka mozhe buti vipravlena Cej kod mistit 24 16 kodovih sliv G 1 1 0 1 0 0 0 0 1 1 0 1 0 0 1 1 1 0 0 1 0 1 0 1 0 0 0 1 H 1 0 0 1 0 1 1 0 1 0 1 1 1 0 0 0 1 0 1 1 1 displaystyle boldsymbol G begin pmatrix 1 1 0 1 0 0 0 0 1 1 0 1 0 0 1 1 1 0 0 1 0 1 0 1 0 0 0 1 end pmatrix qquad boldsymbol H begin pmatrix 1 0 0 1 0 1 1 0 1 0 1 1 1 0 0 0 1 0 1 1 1 end pmatrix de G porodzhuvalna matricya H matricya perevirki parnosti Viznachennya ta parametriLinijnij kod dovzhini n i rangu k ce linijnij pidprostir C z rozmirnistyu k vektornogo prostoru F q n displaystyle mathbb F q n de F q displaystyle mathbb F q skinchenne pole z q elementami Takij kod maye nazvu q narnij kod Yaksho q 2 abo q 3 kod opisuyetsya yak binarnij abo ternarnij vidpovidno Vektori v C nazivayutsya kodovimi slovami Rozmir kodu ce kilkist kodovih sliv ta dorivnyuye qk Vaga kodovogo slova ce kilkist jogo nenulovih elementiv a vidstan mizh dvoma kodovimi slovami ce vidstan Gemminga yaka ye kilkistyu elementiv yaki v nih vidriznyayutsya Vidstan d linijnogo kodu ce minimalna vaga jogo nenulovih kodovih sliv abo ekvivalentno minimalna vidstan mizh riznimi kodovimi slovami Linijnij kod dovzhini n rozmirnosti k ta vidstani d nazivayetsya n k d kod Mi hochemo vikoristovuvati u F q n displaystyle mathbb F q n standartnij bazis oskilki kozhna koordinata yavlyaye soboyu bit yakij peredayetsya cherez kanal z shumom z deyakoyu nevelikoyu jmovirnistyu pomilki peredachi Yaksho vikoristovuvati yakijs inshij bazis todi cya model bude ne pridatna bo vidstan Gemminga ne bude vimiryuvati kilkist pomilok pri peredachi yak nam bi togo hotilosya Dopustimi i nedopustimi kombinaciyiYak uzhe vidznachalosya zavadostijkist koduvannya zabezpechuyetsya za rahunok vnesennya nadmirnosti v kodovi kombinaciyi Ce znachit sho z n simvoliv kodovoyi kombinaciyi dlya peredachi informaciyi vikoristovuyetsya k lt n simvoliv Otzhe iz zagalnogo chisla No 2n mozhlivih kodovih kombinacij dlya peredachi informaciyi vikoristovuyetsya tilki N 2k kombinacij Vidpovidno do cogo vsya mnozhina No 2n mozhlivih kodovih kombinacij podilyayetsya na dvi grupi U pershu grupu vhodit mnozhina N 2k dozvolenih kombinacij druga grupa mistit u sobi mnozhinu No N 2n 2k zaboronenih kombinacij Yaksho na storoni prijmannya vstanovleno sho prijnyata kombinaciya nalezhit do grupi dozvolenih to vvazhayetsya sho signal prijshov bez perekruchuvan V inshomu vipadku robitsya visnovok sho prijnyata kombinaciya perekruchena Odnak ce spravedlivo lishe dlya takih pereshkod koli usunuta mozhlivist perehodu odnih dozvolenih kombinacij v inshi Koriguyucha zdatnist koduKoriguyucha zdatnist kodu viznachayetsya minimalnoyu kodovoyu vidstannyu Sklademo matricyu vidstanej mizh kodovimi kombinaciyami dlya takih dozvolenih kombinacij 00000 01110 10101 11011 Tablicya Matricya vidstanej 00000 01110 10101 11011 00000 0 3 3 4 01110 3 0 4 3 10101 3 4 0 3 11011 4 3 3 0 Yak vidno z matrici minimalna kodova vidstan dmin 3 Otzhe danij kod zdatnij viyavlyati dvorazovi pomilki usuvati odnokratni pomilki usuvati i viyavlyati odnokratni pomilki Priklad kod AdamaraDokladnishe Kod Adamara Kod Adamara ce 2 r r 2 r 1 2 displaystyle 2 r r 2 r 1 2 linijnij kod yakij daye mozhlivist vipraviti bagato pomilok Kod Adamara mozhna pobuduvati za stovpcyami i t h displaystyle i th stovpec ce biti pobitovogo predstavlennya cilogo chisla i displaystyle i div nastupnij priklad Kod Adamara maye minimalnu vidstan 2 r 1 displaystyle 2 r 1 otzhe mozhe vipraviti 2 r 2 1 displaystyle 2 r 2 1 pomilku Priklad Linijnij kod z nastupnoyu porodzhuvalnoyu matriceyu ce 8 3 4 2 displaystyle 8 3 4 2 kod Adamara G H a d 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 displaystyle boldsymbol G Had begin pmatrix 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 end pmatrix Kod Adamara ce okremij vipadok Yaksho vzyati pershij stovpec nulovij stovpec z G H a d displaystyle boldsymbol G Had to mi otrimayemo 7 3 4 2 displaystyle 7 3 4 2 simpleksnij kod yakij ye podvijnim kodom kodu Hemminga Algoritm najblizhchogo susidaParametr d tisno pov yazanij iz mozhlivistyu vipravlyati pomilki kodu Nastupnij algoritm ce ilyustruye ta maye nazvu algoritm najblizhchogo susida Vhidni dani otrimanij vektor v v F q n displaystyle mathbb F q n Vihidni dani kodove slovo w displaystyle w v C displaystyle C najblizhchij do v displaystyle v yaksho take isnuye Pochinayuchi z t 0 displaystyle t 0 povtoryuyutsya nastupni 2 kroki Perebrati elementi kuli radiusu t displaystyle t navkolo otrimanogo slova v displaystyle v poznachenoyi B t v displaystyle B t v Dlya kozhnogo w displaystyle w v B t v displaystyle B t v treba pereviriti chi nalezhit w displaystyle w do C displaystyle C Yaksho ce virno todi w displaystyle w rishennya Zbilshiti t na 1 Pripiniti lishe koli t gt d 1 2 displaystyle t gt d 1 2 todi perebir zakincheno ta ne znajdeno zhodnogo rishennya Linijnij kod C displaystyle C nazivayetsya vipravlyayuchim t displaystyle t pomilku yaksho ye shonajbilshe odne kodove slovo v B t v displaystyle B t v dlya kozhnogo v displaystyle v u F q n displaystyle mathbb F q n Poshirene poznachennyaKodi zagalom chasto poznachayutsya literoyu C a kod dovzhini n i rangu k tobto kod yakij maye n kodovih sliv u svoyij osnovi ta k ryadkiv u jogo porodzhuvalnij matrici zazvichaj nazivayut n k kod Linijni kodi chasto poznachayutsya n k d kodami de d oznachaye minimalnu vidstan kodu Hemminga mizh bud yakimi dvoma kodovimi slovami n k d poznachennya ne slid plutati z n M d poznachennyam yake vikoristovuyetsya dlya poznachennya nelinijnogo kodu dovzhinoyu n rozmirom M tobto maye M kodovih sliv ta minimalnoyu vidstannyu Hemminga d PrimitkiWilliam E Ryan and Shu Lin 2009 Channel Codes Classical and Modern Cambridge University Press s 4 ISBN 978 0 521 84868 8 2003 PDF Cambridge University Press s 9 ISBN 9780521642989 Arhiv originalu PDF za 19 zhovtnya 2016 Procitovano 19 grudnya 2017 In a linear block code the extra N K displaystyle N K bits are linear functions of the original K displaystyle K bits these extra bits are called parity check bits Thomas M Cover and Joy A Thomas 1991 Elements of Information Theory John Wiley amp Sons Inc s 210 211 ISBN 0 471 06259 6 DzherelaCya stattya ye zagotovkoyu Vi mozhete dopomogti proyektu dorobivshi yiyi Ce povidomlennya varto zaminiti tochnishim