Турбо-код — паралельний, каскадний, блоковий, систематичний код, який здатен виправляти помилки, що виникають при передачі цифрової інформації каналом зв'язку з шумами. Синонімом турбо-коду є відомий в теорії кодування термін — каскадний код (англ. concatenated code) (запропонований в 1966 році).
Турбо-код складається з каскаду паралельно з'єднаних систематичних кодів. Ці складові називаються компонентними кодами. Як компонентні коди можуть використовуватися згорткові коди, коди Гемінга, Ріда — Соломона, Боуза — Чоудхурі — Хоквінгема та інші. Залежно від вибору компонентного коду турбо-коди діляться на згорткові турбо-коди (англ. Turbo Convolutional Codes, ТСС) та блокові турбо-коди добутку (англ. Turbo Product Codes, TPC).
Турбо-коди були розроблені в 1993 році і є класом високоефективних завадостійких кодів з корекцією помилок. Вони використовуються в електротехніці та цифровому зв'язку, а також знайшли своє застосування в супутниковому зв'язку та в інших областях, в яких необхідне досягнення максимальної швидкості передачі даних по каналу зв'язку з шумами в обмеженій смузі частот.
Історія
До моменту виникнення турбо-коду був широко поширений метод каскадного кодування, при якому дані кодувалися спочатку кодом Ріда — Соломона, а потім — згортковим кодуванням. Він досить близько підходить до [en] і об'єднує в собі блок корекції помилок, який використовує код Ріда — Соломона, і блок згорткових кодів, які декодуються за допомогою алгоритму Вітербі.
Турбо-коди були запропоновані К. Берроу (C. Berrou), А. Главьйо (A. Glavieux) і П. Сітімашимой (P. Thitimajshima) з (фр. Ecole Nationale Superieure des Telecommunications de Bretagne (ENST), Вища національна школа телекомунікацій Бретані (Франція)) в 1993 році в статті «Кодування і декодування з виправленням помилок поблизу межі Шеннона: турбо-коди» (англ. «Near Shannon Limit Error-correcting Coding and Decoding: Turbo-code»), опублікованій у працях IEEE. У наступній статті Берроу віддає належне інтуїції Г. Беттейла (G. Battail), Дж. Хагенауера (J. Hagenauer) і П. Хоера (P. Hoeher), які в кінці 1980-х теоретично передбачили ймовірнісну обробку даних. Також Берроу згадує, що Роберт Галлагер і М. Таннер (M. Tanner) ще у свій час представляли методи кодування і декодування із загальними принципами, дуже близькими до турбо-кодів, але в той час не були доступні необхідні обчислювальні потужності.
Структура турбо-коду
Згідно з Шенноном, найкращим кодом є код, який передає повідомлення за нескінченно великий час, формуючи випадкові кодові елементи в кожен момент часу. У приймача є нескінченні версії повідомлення, спотвореного випадковим чином. З цих копій декодер повинен вибрати копію, найбільш близьку до переданого повідомленням. Це являє собою теоретично ідеальний код, який може виправити всі помилки в сигналі. Турбо-код є кроком у цьому напрямку. Ясно, що на практиці не існує можливості посилати інформаційне повідомлення протягом нескінченного часу. Для прийнятної роботи достатньо подвоїти або потроїти час передачі, що забезпечить досить пристойні результати для каналів зв'язку.
Особливістю турбо-кодів є паралельна структура, яка складається з рекурсивних систематичних згорткових (RSC) кодів, що працюють паралельно та використовують створення випадкової версії повідомлення. Паралельна структура використовує два або більше кодів RSC, кожен з різним перемежовувачем. Мета перемежовувача полягає в тому, щоб запропонувати кожному кодеру некорельовану або випадкову версію інформації, в результаті чого паритетні біти кожного RSC стають незалежними.
У турбо-кодах блоки мають довжину кілька Кбіт. Така довжина обирається, щоб ефективно рандомізувати послідовність, яка поступає на інший кодуючий пристрій. Чим довше розмір блоку, тим менша його кореляція з повідомленням першого кодера.
Існує кілька схем турбо-кодів:
- PCCC — використовує конкатенацію паралельних згортальних кодів;
- SCCC — схема з послідовним з'єднанням згортальних кодів, коди SCCC мають високі характеристики при великих відносинах сигнал / шум;
- TPC — турбо-код-добуток, використовує блокові коди замість згортальних; два різних блокових кода (зазвичай коди Геммінга) з'єднані послідовно без проміжного перемежовувача. Оскільки два коди незалежні і працюють в рядах і колонках, що саме по собі забезпечує досить хорошу рандомізацію, то застосування перемежовувача не потрібно.
Кодування
Спочатку на вхід формувача пакетів PAD (англ. Packet Assembler / Disassembler) надходить блок даних довжиною біт. У формувачі пакетів до даних додається ще додаткових біт службової інформації у відповідності з задіяним стандартом формування пакету. Тобто результатом є пакет , що складається з біт.
Далі послідовність біт надходить паралельно на гілок, що містять послідовно з'єднані і компонентний кодер. Таким чином, використовується як вхідні дані одразу всіма компонентними кодерами.
Перемеження в турбо-кодах
На відміну від посимвольного прямокутного перемежовувача, що використовується в кодах Ріда-Соломона, у турбо-кодах використовується перемеження окремих біт, яке подібне до випадкових перестановок. В операціях декодування цей закон перемеження вважається відомим. Отримані послідовності надходять на входи кодерів.
Завдання перемежовувача — перетворити вхідну послідовність так, щоб комбінації біт , які відповідають кодовим словам з низькою вагою (вагою називається кількість ненульових біт кодового слова) на виході першого кодера, були перетворені в комбінації, що дають кодові слова з високою вагою на виходах інших кодерів. Таким чином, кодери отримують на виході кодові слова з різною вагою. При кодуванні формуються кодові слова так, щоб виходила максимально можлива середня відстань між ними (відстанню між двома кодовими словами називається число біт, в яких вони розрізняються). Через те що кодові блоки формуються з майже незалежних частин, на виході турбо-кодера середня відстань між кодовими словами більша, ніж мінімальна відстань для кожного компонентного кодера, а отже й зростає ефективність кодування.
Перестановка для кожної зазначеної довжини блоку задається певним переупорядкованням цілих чисел , як передбачено наступним алгоритмом (ECSS-E-ST-50-01C):
,
де дорівнює одному з наступних значень: , залежно від необхідної глибини перемежовувача.
Наступні операції виконуються для значень від до , щоб отримати адреси перестановки . У рівняннях нижче, позначає найбільше ціле число, яке менше або рівне , і позначає одне з наступних чотирьох простих чисел: , , , ,
Інтерпретація перестановки чисел полягає в тому, що -й біт, переданий перемежовувачем, є -м бітом вхідного інформаційного блоку, де перемежовувач здійснює запис прийнятого біта за обчисленою адресою.
Переваги та недоліки турбо-кодів
Переваги
Серед усіх практично використовуваних сучасних методів корекції помилок турбо-коди і коди з малою щільністю перевірок на парність найбільш близько підходять до межі Шеннона, теоретичної межі максимальної пропускної спроможності зашумленого каналу. Турбо-коди дозволяють збільшити швидкість передачі інформації, не вимагаючи збільшення потужності передавача, або вони можуть бути використані для зменшення необхідної потужності при передачі із заданою швидкістю. Важливою перевагою турбо-кодів є незалежність складності декодування від довжини інформаційного блоку, що дозволяє знизити ймовірність помилки декодування шляхом збільшення його довжини.
Недоліки
Основний недолік турбо-кодів — це відносно висока складність декодування і велика затримка, які роблять їх незручними для деяких застосувань. Але, наприклад, для використання в супутникових каналах цей недолік не є визначальним, оскільки довжина каналу зв'язку сама по собі вносить затримку, викликану скінченністю швидкості світла.
Ще один важливий недолік турбо-кодів — порівняно невелика кодова відстань (тобто мінімальна відстань між двома кодовими словами в сенсі обраної метрики). Це призводить до того, що, хоча при великій вхідній ймовірності помилки (тобто в поганому каналі) ефективність турбо-коду висока, при малій вхідній ймовірності помилки ефективність турбо-коду буде вкрай обмеженою. Тому в каналах стільникового зв'язку 5G для подальшого зменшення ймовірності помилки застосовують не турбо-коди, а LDPC-коди.
Див. також
Примітки
- Золотарёв В. В., Овечкин Г. В., Овечкин П. В. Многопороговое декодирование для цифровых систем передачи данных (PDF) (рос.). Архів (PDF) оригіналу за 30 січня 2012. Процитовано 14 жовтня 2015.
- Berrou C., Glavieux A., Thitmajshima P. (1993). Near Shannon Limit error-correcting coding and decoding: Turbo-codes (PDF) (англ.). Архів (PDF) оригіналу за 30 січня 2012. Процитовано 14 жовтня 2015.
- Berrou C. (2003). Ten-year-old Turbo Codes are Entering Service (PDF) (англ.). Архів (PDF) оригіналу за 30 січня 2012. Процитовано 14 жовтня 2015.
- Семенов Ю. А. Протоколы сетей X.25 (рос.). Архів оригіналу за 30 січня 2012. Процитовано 14 жовтня 2015.
- ECSS-E-ST-50-01C (англ.). Архів оригіналу за 30 січня 2012.
{{}}
: Cite має пусті невідомі параметри:|description=
та|datepublished=
() - Варгаузин В., Протопопов Л. (2000). Турбо-коды и итеративное декодирование: принципы, свойства, применение (рос.). Архів оригіналу за 30 січня 2012. Процитовано 14 жовтня 2015.
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Turbo kod paralelnij kaskadnij blokovij sistematichnij kod yakij zdaten vipravlyati pomilki sho vinikayut pri peredachi cifrovoyi informaciyi kanalom zv yazku z shumami Sinonimom turbo kodu ye vidomij v teoriyi koduvannya termin kaskadnij kod angl concatenated code zaproponovanij v 1966 roci Turbo kod skladayetsya z kaskadu paralelno z yednanih sistematichnih kodiv Ci skladovi nazivayutsya komponentnimi kodami Yak komponentni kodi mozhut vikoristovuvatisya zgortkovi kodi kodi Geminga Rida Solomona Bouza Choudhuri Hokvingema ta inshi Zalezhno vid viboru komponentnogo kodu turbo kodi dilyatsya na zgortkovi turbo kodi angl Turbo Convolutional Codes TSS ta blokovi turbo kodi dobutku angl Turbo Product Codes TPC Turbo kodi buli rozrobleni v 1993 roci i ye klasom visokoefektivnih zavadostijkih kodiv z korekciyeyu pomilok Voni vikoristovuyutsya v elektrotehnici ta cifrovomu zv yazku a takozh znajshli svoye zastosuvannya v suputnikovomu zv yazku ta v inshih oblastyah v yakih neobhidne dosyagnennya maksimalnoyi shvidkosti peredachi danih po kanalu zv yazku z shumami v obmezhenij smuzi chastot IstoriyaDo momentu viniknennya turbo kodu buv shiroko poshirenij metod kaskadnogo koduvannya pri yakomu dani koduvalisya spochatku kodom Rida Solomona a potim zgortkovim koduvannyam Vin dosit blizko pidhodit do en i ob yednuye v sobi blok korekciyi pomilok yakij vikoristovuye kod Rida Solomona i blok zgortkovih kodiv yaki dekoduyutsya za dopomogoyu algoritmu Viterbi Turbo kodi buli zaproponovani K Berrou C Berrou A Glavjo A Glavieux i P Sitimashimoj P Thitimajshima z fr Ecole Nationale Superieure des Telecommunications de Bretagne ENST Visha nacionalna shkola telekomunikacij Bretani Franciya v 1993 roci v statti Koduvannya i dekoduvannya z vipravlennyam pomilok poblizu mezhi Shennona turbo kodi angl Near Shannon Limit Error correcting Coding and Decoding Turbo code opublikovanij u pracyah IEEE U nastupnij statti Berrou viddaye nalezhne intuyiciyi G Bettejla G Battail Dzh Hagenauera J Hagenauer i P Hoera P Hoeher yaki v kinci 1980 h teoretichno peredbachili jmovirnisnu obrobku danih Takozh Berrou zgaduye sho Robert Gallager i M Tanner M Tanner she u svij chas predstavlyali metodi koduvannya i dekoduvannya iz zagalnimi principami duzhe blizkimi do turbo kodiv ale v toj chas ne buli dostupni neobhidni obchislyuvalni potuzhnosti Struktura turbo koduZgidno z Shennonom najkrashim kodom ye kod yakij peredaye povidomlennya za neskinchenno velikij chas formuyuchi vipadkovi kodovi elementi v kozhen moment chasu U prijmacha ye neskinchenni versiyi povidomlennya spotvorenogo vipadkovim chinom Z cih kopij dekoder povinen vibrati kopiyu najbilsh blizku do peredanogo povidomlennyam Ce yavlyaye soboyu teoretichno idealnij kod yakij mozhe vipraviti vsi pomilki v signali Turbo kod ye krokom u comu napryamku Yasno sho na praktici ne isnuye mozhlivosti posilati informacijne povidomlennya protyagom neskinchennogo chasu Dlya prijnyatnoyi roboti dostatno podvoyiti abo potroyiti chas peredachi sho zabezpechit dosit pristojni rezultati dlya kanaliv zv yazku Osoblivistyu turbo kodiv ye paralelna struktura yaka skladayetsya z rekursivnih sistematichnih zgortkovih RSC kodiv sho pracyuyut paralelno ta vikoristovuyut stvorennya vipadkovoyi versiyi povidomlennya Paralelna struktura vikoristovuye dva abo bilshe kodiv RSC kozhen z riznim peremezhovuvachem Meta peremezhovuvacha polyagaye v tomu shob zaproponuvati kozhnomu koderu nekorelovanu abo vipadkovu versiyu informaciyi v rezultati chogo paritetni biti kozhnogo RSC stayut nezalezhnimi U turbo kodah bloki mayut dovzhinu kilka Kbit Taka dovzhina obirayetsya shob efektivno randomizuvati poslidovnist yaka postupaye na inshij koduyuchij pristrij Chim dovshe rozmir bloku tim mensha jogo korelyaciya z povidomlennyam pershogo kodera Isnuye kilka shem turbo kodiv PCCC vikoristovuye konkatenaciyu paralelnih zgortalnih kodiv SCCC shema z poslidovnim z yednannyam zgortalnih kodiv kodi SCCC mayut visoki harakteristiki pri velikih vidnosinah signal shum TPC turbo kod dobutok vikoristovuye blokovi kodi zamist zgortalnih dva riznih blokovih koda zazvichaj kodi Gemminga z yednani poslidovno bez promizhnogo peremezhovuvacha Oskilki dva kodi nezalezhni i pracyuyut v ryadah i kolonkah sho same po sobi zabezpechuye dosit horoshu randomizaciyu to zastosuvannya peremezhovuvacha ne potribno KoduvannyaSpochatku na vhid formuvacha paketiv PAD angl Packet Assembler Disassembler nadhodit blok danih U displaystyle U dovzhinoyu k displaystyle k bit U formuvachi paketiv do danih dodayetsya she n k displaystyle n k dodatkovih bit sluzhbovoyi informaciyi u vidpovidnosti z zadiyanim standartom formuvannya paketu Tobto rezultatom ye paket X 0 displaystyle X 0 sho skladayetsya z n displaystyle n bit Dali poslidovnist bit X 0 displaystyle X 0 nadhodit paralelno na M displaystyle M gilok sho mistyat poslidovno z yednani i komponentnij koder Takim chinom X 0 displaystyle X 0 vikoristovuyetsya yak vhidni dani odrazu vsima komponentnimi koderami Peremezhennya v turbo kodah Na vidminu vid posimvolnogo pryamokutnogo peremezhovuvacha sho vikoristovuyetsya v kodah Rida Solomona u turbo kodah vikoristovuyetsya peremezhennya okremih bit yake podibne do vipadkovih perestanovok V operaciyah dekoduvannya cej zakon peremezhennya vvazhayetsya vidomim Otrimani poslidovnosti nadhodyat na vhodi koderiv Zavdannya peremezhovuvacha peretvoriti vhidnu poslidovnist tak shob kombinaciyi bit X 0 displaystyle X 0 yaki vidpovidayut kodovim slovam z nizkoyu vagoyu vagoyu nazivayetsya kilkist nenulovih bit kodovogo slova na vihodi pershogo kodera buli peretvoreni v kombinaciyi sho dayut kodovi slova z visokoyu vagoyu na vihodah inshih koderiv Takim chinom koderi otrimuyut na vihodi kodovi slova z riznoyu vagoyu Pri koduvanni formuyutsya kodovi slova tak shob vihodila maksimalno mozhliva serednya vidstan mizh nimi vidstannyu mizh dvoma kodovimi slovami nazivayetsya chislo bit v yakih voni rozriznyayutsya Cherez te sho kodovi bloki formuyutsya z majzhe nezalezhnih chastin na vihodi turbo kodera serednya vidstan mizh kodovimi slovami bilsha nizh minimalna vidstan dlya kozhnogo komponentnogo kodera a otzhe j zrostaye efektivnist koduvannya Perestanovka dlya kozhnoyi zaznachenoyi dovzhini bloku k displaystyle k zadayetsya pevnim pereuporyadkovannyam cilih chisel 1 2 k displaystyle 1 2 k yak peredbacheno nastupnim algoritmom ECSS E ST 50 01C k 8 k 0 displaystyle k 8 k 0 de k 0 displaystyle k 0 dorivnyuye odnomu z nastupnih znachen 223 223 2 223 4 223 5 displaystyle 223 223 2 223 4 223 5 zalezhno vid neobhidnoyi glibini peremezhovuvacha Nastupni operaciyi vikonuyutsya dlya znachen vid s 1 displaystyle s 1 do s k displaystyle s k shob otrimati adresi perestanovki p s displaystyle boldsymbol pi s U rivnyannyah nizhche b x c displaystyle mathcal b boldsymbol x mathcal c poznachaye najbilshe cile chislo yake menshe abo rivne x displaystyle boldsymbol x i p q displaystyle boldsymbol p q poznachaye odne z nastupnih chotiroh prostih chisel p 0 31 displaystyle p 0 31 p 1 37 displaystyle p 1 37 p 2 43 displaystyle p 2 43 p 3 47 displaystyle p 3 47 m s 1 mod 2 displaystyle m s 1 mod 2 i b s 1 2 k 0 c displaystyle i mathcal b frac s 1 2 k 0 mathcal c j b s 1 2 c i k 0 displaystyle j mathcal b frac s 1 2 mathcal c i k 0 q 19 i 1 mod 4 displaystyle q 19 i 1 mod 4 c p q j 21 m mod k 0 displaystyle c p q j 21 m mod k 0 p s 2 q 4 c 1 m displaystyle boldsymbol pi s 2 q 4 c 1 m Interpretaciya perestanovki chisel polyagaye v tomu sho s displaystyle boldsymbol s j bit peredanij peremezhovuvachem ye p s displaystyle boldsymbol pi s m bitom vhidnogo informacijnogo bloku de peremezhovuvach zdijsnyuye zapis prijnyatogo bita za obchislenoyu adresoyu Perevagi ta nedoliki turbo kodivPerevagi Sered usih praktichno vikoristovuvanih suchasnih metodiv korekciyi pomilok turbo kodi i kodi z maloyu shilnistyu perevirok na parnist najbilsh blizko pidhodyat do mezhi Shennona teoretichnoyi mezhi maksimalnoyi propusknoyi spromozhnosti zashumlenogo kanalu Turbo kodi dozvolyayut zbilshiti shvidkist peredachi informaciyi ne vimagayuchi zbilshennya potuzhnosti peredavacha abo voni mozhut buti vikoristani dlya zmenshennya neobhidnoyi potuzhnosti pri peredachi iz zadanoyu shvidkistyu Vazhlivoyu perevagoyu turbo kodiv ye nezalezhnist skladnosti dekoduvannya vid dovzhini informacijnogo bloku sho dozvolyaye zniziti jmovirnist pomilki dekoduvannya shlyahom zbilshennya jogo dovzhini Nedoliki Osnovnij nedolik turbo kodiv ce vidnosno visoka skladnist dekoduvannya i velika zatrimka yaki roblyat yih nezruchnimi dlya deyakih zastosuvan Ale napriklad dlya vikoristannya v suputnikovih kanalah cej nedolik ne ye viznachalnim oskilki dovzhina kanalu zv yazku sama po sobi vnosit zatrimku viklikanu skinchennistyu shvidkosti svitla She odin vazhlivij nedolik turbo kodiv porivnyano nevelika kodova vidstan tobto minimalna vidstan mizh dvoma kodovimi slovami v sensi obranoyi metriki Ce prizvodit do togo sho hocha pri velikij vhidnij jmovirnosti pomilki tobto v poganomu kanali efektivnist turbo kodu visoka pri malij vhidnij jmovirnosti pomilki efektivnist turbo kodu bude vkraj obmezhenoyu Tomu v kanalah stilnikovogo zv yazku 5G dlya podalshogo zmenshennya jmovirnosti pomilki zastosovuyut ne turbo kodi a LDPC kodi Div takozhLDPC Polyarni kodiPrimitkiZolotaryov V V Ovechkin G V Ovechkin P V Mnogoporogovoe dekodirovanie dlya cifrovyh sistem peredachi dannyh PDF ros Arhiv PDF originalu za 30 sichnya 2012 Procitovano 14 zhovtnya 2015 Berrou C Glavieux A Thitmajshima P 1993 Near Shannon Limit error correcting coding and decoding Turbo codes PDF angl Arhiv PDF originalu za 30 sichnya 2012 Procitovano 14 zhovtnya 2015 Berrou C 2003 Ten year old Turbo Codes are Entering Service PDF angl Arhiv PDF originalu za 30 sichnya 2012 Procitovano 14 zhovtnya 2015 Semenov Yu A Protokoly setej X 25 ros Arhiv originalu za 30 sichnya 2012 Procitovano 14 zhovtnya 2015 ECSS E ST 50 01C angl Arhiv originalu za 30 sichnya 2012 a href wiki D0 A8 D0 B0 D0 B1 D0 BB D0 BE D0 BD Cite web title Shablon Cite web cite web a Cite maye pusti nevidomi parametri description ta datepublished dovidka Vargauzin V Protopopov L 2000 Turbo kody i iterativnoe dekodirovanie principy svojstva primenenie ros Arhiv originalu za 30 sichnya 2012 Procitovano 14 zhovtnya 2015