Кіріспе

Жоғары өнімділіктегі алдын ала қате түзету кодтары

Ақпарат теориясында турбо кодтар (алғашқыда француз тілінде Turbocodes) – 1990–91 жылдары жасалған, бірақ алғаш рет 1993 жылы жарияланған жоғары өнімділіктегі алдын ала қате түзету (FEC) кодтарының класы. Олар нақты шу деңгейін ескере отырып, сенімді байланыс мүмкін болатын код жылдамдығының теориялық шегі – Шеннон лимитіне жақын тұрған, алғашқы практикалық кодтар болды. Турбо кодтар 3G/4G ұялы байланыста (мысалы, UMTS және LTE) және (аспан кеңістігіндегі) спутниктік байланыста, сондай-ақ деректердің бұзылуына себеп болатын шу болғанда, жолақтық ені немесе жауап уақыты шектеулі байланыс арналары арқылы сенімді ақпарат беруді қамтамасыз етуді көздейтін басқа да қолдануларда қолданылады. Турбо кодтар ұқсас өнімділікті ұсынатын (бірақ патенттелмеген) төмен тығыздықпен тепе-теңдік тексеру (LDPC) кодтарымен бәсекелеседі. "Турбо код" атауы турбо кодты декодтау кезінде қолданылатын кері байланыс циклінен туындады, ол қозғалтқышты турбо зарядтау үшін қолданылатын газ шығарудың кері байланысына ұқсас болды. Хагенауэр турбо код термині қате қолданылған деп санайды, себебі кодтау процесінде кері байланыс болмайды.

Тарих

Турбо кодтарға арналған негізгі патенттік өтінім 1991 жылдың 23 сәуірінде тіркелген. Патенттік өтінімде Клод Берру турбо кодтардың жалғыз ойлап табушысы ретінде көрсетілген. Патентті тіркеу нәтижесінде бірнеше патент алынды, оның ішінде 2013 жылдың 29 тамызында мерзімі біткен АҚШ патенті 5,446,747. Турбо кодтар туралы алғашқы жарияланған мақала – "Шаннон шегіне жуық қате түзетуді кодтау және декодтау: Турбо кодтар". Бұл мақала 1993 жылы IEEE Халықаралық коммуникациялар конференциясының материалдарында жарияланды. 1993 жылғы мақала кеңістік шектеулеріне байланысты біріктірілген үш жекелеген ұсыныстан тұрды. Біріктіру салдарынан мақала үш авторды көрсетті: Берру, Главикс және Титимажишима (Télécom Bretagne, бұрынғы ENST Bretagne, Франция). Алайда, бастапқы патенттік өтінімнен Берру турбо кодтардың жалғыз ойлап табушысы екені және мақаланың басқа авторлары негізгі түсініктерден өзге материалдарды қосқандығы анық көрінеді. Турбо кодтар енгізілген кезде революциялық болды, сондықтан кодтау саласындағы көптеген сарапшылар жарияланған нәтижелерге күмәнданды. Нәтижелер расталғаннан кейін кодтау әлемінде шағын революция болды, ол көптеген басқа итеративтік сигналды өңдеу түрлерін зерттеуге әкелді. Турбо кодтардың алғашқы класы – параллель конкатенацияланған конволюциялық код (PCCC). 1993 жылы түпнұсқа параллель турбо кодтар енгізілгеннен бері, турбо кодтардың көптеген басқа кластары ашылды, соның ішінде сериялық түрлері, сериялық конкатенацияланған конволюциялық кодтар және қайталап жинақтау кодтары. Итеративтік турбо декодтау әдістері сондай-ақ дәстүрлі FEC жүйелеріне қолданылды, оның ішінде Рид-Соломон түзетілген конволюциялық кодтар, бірақ бұл жүйелер итеративтік декодерлерді іске асыру үшін тым күрделі. Турбо теңдеу де турбо кодтау тұжырымынан туындады. Турбо кодтардан басқа, Берру рекурсивті жүйелі конволюциялық (RSC) кодтарын да ойлап тапты, олар патентте сипатталған турбо кодтардың мысалдық іске асырылуында қолданылады. RSC кодтарын пайдаланатын турбо кодтар RSC кодтарын пайдаланбайтын турбо кодтардан жақсы нәтижелер көрсетеді. Турбо кодтарға дейін ең жақсы құрылымдар – сыртқы Рид-Соломон қатесін түзету кодына негізделген, ішкі Витерби декодталған қысқа шектеу ұзындығы конволюциялық кодымен біріктірілген сериялық конкатенацияланған кодтар, сондай-ақ RSV кодтары деп белгілі кодтар болды. Кейінгі мақаласында Берру "80-ші жылдардың соңында ықтималдық өңдеуге қызығушылық танытқан G. Battail, J. Hagenauer және P. Hoeher-дің интуициясына" ризашылық білдірді. Ол сондай-ақ "Р. Галлагер және М. Таннер кодтау және декодтау техникаларын ойлап тапқан, олардың жалпы принциптері тығыз байланысты", дегенмен сол кезде қажетті есептеулер практикалық емес еді деп қосты.

Биттерді табу үшін гипотезаларды шешу

Турбо кодтардың негізгі жаңалығы – екі декодер арасындағы қарама-қайшылықтарды шешу үшін ықтималдық деректерін қолдану болып табылады. Екі конволюциялық декодердің әрқайсысы пайдалы жүктеме кіші блогындағы m биттің үлгісі үшін гипотеза (туынды ықтималдықтармен бірге) құрайды. Гипотезалық бит үлгілері салыстырылады, егер олар өзгеше болса, декодерлер гипотезадағы әр бит үшін туынды ықтималдықтарды алмасады. Әр декодер екінші декодерден алынған ықтималдық бағалауларын пайдаланып, пайдалы жүктемедегі биттер үшін жаңа гипотеза жасайды. Содан кейін олар осы жаңа гипотезаларды салыстырады. Бұл итеративтік процесс екі декодердің де жүктемедегі m бит үлгісі үшін бірдей гипотезаға келуіне дейін, әдетте 15-18 цикл ішінде жалғасады. Бұл процесті кроссворд немесе судоку сияқты өзара байланысты сөзжұмбақтарды шешумен салыстыруға болады. Толық емес, мүмкін бұрмаланған кроссвордты қарастырайық. Екі сөзжұмбақ шешуші (декодерлер) оны шешуге тырысады: біреуі тек "төменге" (паритет биттері) берілген нұсқауларды, ал екіншісі тек "қарсыға" берілген нұсқауларды біледі. Бастапқыда, екі шешуші де өздерінің нұсқауларына жауаптарды (гипотезаларды) болжайды, сонымен қатар әр әріпке (пайдалы жүктеме биті) қаншалықты сенімді екендерін жазып алады. Содан кейін олар жауаптар мен сенімділік деңгейлерін алмасып, қайда және қалай ерекшеленетінін анықтап, салыстырады. Осы жаңа мәліметтерге сүйене отырып, олар жаңартылған жауаптар мен сенімділік деңгейлерін жасайды, осы процесті бір шешімге келгенше қайталайды.

Өнер көрсету

Турбо кодтар арнада кодтың кездейсоқ сипатталуының және физикалық жүзеге асырылатын декодтау құрылымының үйлесімді комбинациясының арқасында жақсы жұмыс істейді. Турбо кодтар қателік еденіне ұшырайды.

Бейес формуласы

Жасанды интеллект көзқарасынан, турбо кодтарды Байес желілеріндегі циклдық сенім таратудың бір мысалы ретінде қарастыруға болады.