Mřížkové kódování

Transkript

Mřížkové kódování
Mřížkové kódování
Ivan Pravda
Autor: Ivan Pravda
Název díla: Mřížkové kódování
Zpracoval(a): České vysoké učení technické v Praze
Fakulta elektrotechnická
Kontaktní adresa: Technická 2, Praha 6
Inovace předmětů a studijních materiálů pro
e-learningovou výuku v prezenční a kombinované
formě studia
Evropský sociální fond
Praha & EU: Investujeme do vaší budoucnosti
VYSVĚTLIVKY
Definice
Zajímavost
Poznámka
Příklad
Shrnutí
Výhody
Nevýhody
ANOTACE
Modul se podrobně věnuje problematice a významu kódování v současných
telekomunikačních sítích. Modul zahrnuje popis konvolučních kódů a vysvětlení principu
jejich vlastností. Dále je zde uvedena problematika paralelního zřetězení související
s implementací moderních typů kódovacích předpisů známých dnes jak tzv. TURBO kódy
a zmíněny možnosti detekce prvků přenášené informační posloupnosti.
CÍLE
Student má možnost se podrobněji seznámit s problematikou kódování využívaného napříč
různými typy telekomunikačních sítí. Výklad je v modulu podrobněji věnován konvolučním
kódům v návaznosti na jejich možné paralelní zřetězení, které je promítnuto do implementace
moderních TURBO kódů. Student zde najde popis a definici konvolučních kódů, chování
kodérů a dekodérů příslušných kódů. V neposlední řadě jsou zde uvedeny možnosti
a navržena možná řešení pro detekci jednotlivých prvků přenášené informační posloupnosti,
tzv. tvrdé a měkké rozhodování.
LITERATURA
[1]
Vlček, K.: Komprese a kódová zabezpečení v multimediálních komunikacích
(2.vydání). Nakladatelství BEN – technická literatura, Praha 2004. 260 str. ISBN 807300-134-9.
[2]
Dobeš, J.; Žalud, V.: Moderní radiotechnika (1.vydání). Nakladatelství BEN – technická
literatura, Praha 2006. 768 str. ISBN 80-7300-132-2.
[3]
Schlegel, Ch.: Trellis Coding. IEEE Press, New York 1997. 274 p. ISBN 0-7803-10527.
[4]
Adámek, J.: Kódování. Státní nakladatelství technické literatury (SNTL), Praha 1989.
191 str.
[5]
Adámek, J.: Foundations od Coding: Theory and Applications of Error-Correcting
Codes With an Introduction to Cryptography and Information Theory. John Wiley &
Sons, Inc. 1991. 352 p. ISBN 0-471-62187-0.
Obsah
1 Konvoluční kódy................................................................................................................... 6
1.1
Vlastnosti konvolučního kódování ............................................................................. 6
1.2
Rozdíl v popisu konvolučních kódů a kodérů ............................................................ 8
1.3
Definice konvolučního kódu ...................................................................................... 9
1.4
Definice kodéru konvolučního kódu ........................................................................ 11
1.5
Popisy chování konvolučního kodéru ...................................................................... 13
1.6
Minimální kódová vzdálenost konvolučního kódu .................................................. 16
1.7
Dekódování konvolučního kódu .............................................................................. 17
1.8
Konvoluční kódy řešitelné pomocí syndromu.......................................................... 19
1.9
Tvrdé a měkké rozhodování ..................................................................................... 21
1.10
Kódování konvolučního WA-kódu .......................................................................... 23
1.11
Dekódování a oprava chyb u WA-kódu ................................................................... 25
1.12
Kodér WA-kódu ....................................................................................................... 27
1.13
Dekódování konvolučního WA-kódu ...................................................................... 29
1.14
Srovnání účinnosti Hammingova kódu a WA-kódu pro TV .................................... 31
2 TURBO kódy ...................................................................................................................... 33
2.1
Paralelní zřetězení .................................................................................................... 33
2.2
Rekurzivní kodér ...................................................................................................... 35
2.3
Kodér TURBO kódu ................................................................................................ 36
2.4
Dekódování .............................................................................................................. 38
2.5
Dekodér TURBO kódu ............................................................................................. 39
2.6
Výkonnost TURBO kódu ......................................................................................... 41
2.7
Závěrečný test........................................................................................................... 44
1 Konvoluční kódy
1.1 Vlastnosti konvolučního kódování
Obecně lze říci, že hlavním účelem zavádění různých typů kódů a kódovacích
schémat, je zvýšení spolehlivosti přenosu informací nezávisle na metodách jeho
zabezpečení (parita, cyklické kódy), což ve svém důsledku přináší podstatné
zvýšení pravděpodobnosti bezchybného rozpoznání přijatého signálového prvku.
Kodéry lze v zásadě rozdělit na dvě kategorie. První kategorii kodérů lze označit
jako tzv. zdroje zpráv bez paměti. Toto označení vychází z rozboru činnosti
kodérů.
Jako zdroje zpráv bez paměti jsou označovány ty kodéry, které vždy, když je na
jejich vstup přivedena informační posloupnost, se na jejich výstupu objeví kódová
posloupnost. Jinými slovy řečeno, n-tice kódové posloupnosti je závislá POUZE
na k-tici aktuální (právě zpracovávané) informační posloupnosti.
Druhá kategorie kodérů je označována jako tzv. zdroje zpráv s pamětí. Do této
kategorie spadají i konvoluční kodéry.
Konvoluční kódy jsou předpisem pro kódový systém, který generuje kódová slova
na základě obsahu rámce několika vstupních slov. To, jakým způsobem bude
zakódována určitá informační posloupnost, tedy závisí nejenom na aktuální
vstupní informační posloupnosti, ale také na m předchozích informačních slovech.
Konvoluční kódy lze popsat pomocí generujících polynomů a generujících matic.
Ze znalosti generujících polynomů, resp. generujících matic, lze odvodit postupy
dekódování, které umožňují provádět vlastní opravu chyb. Nejznámějším
postupem je tzv. Viterbiho algoritmus.
Základní vlastností konvolučních kódů je LINEARITA.
Tuto vlastnost je možné matematicky popsat pomocí následující relace –
v ( x ) = K u ( x )  .
Pro předpis kódování K, má-li splňovat požadavky exaktní řešitelnosti, pak musí
platit, že:
1. Kód K je lineární, tj. K u ( x ) + u´( x )  = K u ( x )  + K u´( x ) 
a K t ⋅ u ( x )  = t ⋅ K u ( x )  .
2. Kód K je časově invariantní (stálý, neměnný), tzn. že časové zpoždění
o k kroků na vstupu kodéru vyvolá odpovídající časové zpoždění o n kroků
na výstupu kodéru. Časová zpoždění jsou vyjádřena pomocí polynomů
K  x k ⋅ u ( x )  = x k ⋅ K  u ( x )  .
3. Kód K nevyžaduje zdroj s pamětí, jestliže je kódové slovo závislé pouze
na aktuální k-tici informační posloupnosti a nikoliv na k-ticích, které byly
na vstupu v době vytvoření předešlých kódových slov.
V souvislosti s bodem 2., ve kterém je popisována podmínka časové
invariantnosti, to znamená, že změna k symbolů informačního slova u na vstupu
kodéru způsobí pouze změnu prvních n symbolů kódové zprávy na výstupu
kodéru.
7
1.2 Rozdíl v popisu konvolučních kódů a kodérů
Při popisu konvolučního kódování se často směšují definice pojmů konvoluční
kód a konvoluční kodér. Pojmy konvoluční kód a konvoluční kodér jsou sice
v úzkém vztahu, ale jsou to zároveň rozdílné pojmy. Abychom zabránili tomuto
směšování, je nezbytné, abychom porozuměli rozdílům mezi příbuznými pojmy:
•
konvoluční kodér,
•
operace konvolučního kódování a
•
konvoluční kód.
Kodér je součástka nebo stroj, operace kódování je prováděna kodérem. Objekty,
které jsou kódovány, jsou informační posloupnosti a odpovídající výstupy jsou
kódové posloupnosti. Konečně pak konvoluční kód je soubor kódových
posloupností, které odpovídají všem možným informačním posloupnostem.
V souhrnu to znamená, že konvoluční kodér specifikuje strukturu obvodového
zapojení a konvoluční kód pak udává strukturu kódových posloupností.
Definice konvolučního kodéru, které lze nalézt v literatuře, se liší podle stupně
zobecnění. Existují dvě úrovně – matematická a obvodově realizační.
Je zde však také i otázka pořadí, v nichž jsou pojmy kód a kodér definovány.
V literatuře se opět objevují dva přístupy. První přístup definuje nejdříve pojem
kód, a to jako k-rozměrný podprostor n-rozměrného vektorového prostoru nad
vhodným tělesem, pojem kodér pak definuje jako matici o rozměrech n × k, jejíž
řádky jsou tvořeny bází kódu. Druhý přístup definuje pojem kodér jako lineární
sekvenční obvod LSC (Linear Sequential Circuit) s k-vstupy a n-výstupy a pojem
kód jako soubor výstupních posloupností generovaných kodérem pro všechny
možné vstupní posloupnosti.
Dle prvního přístupu je kód řádkem v generující matici kodéru, dle druhého
přístupu realizuje LSC zobrazení mezi k-rozměrným a n-rozměrným vektorovým
prostorem, jehož obrazovým souborem je kód.
Srovnáním obou těchto přístupů zjistíme, že oba popisují totéž, i když v různém
pořadí.
8
1.3 Definice konvolučního kódu
Předpis pro konvoluční kódování K je vyjádřen linearitou a časovou
invariantností. Podmínka, popisovaná jako zdroj zpráv bez paměti, pro konvoluční
kódy NEPLATÍ. Na základě těchto poznatků je možné vyslovit nejobecnější
definici konvolučního kódu.
Nechť F je konečné těles. Jako konvoluční (n, k)-kód je míněn takový předpis K,
který přiřazuje pro každý mnohočlen u(x) nad tělesem F mnohočlen K[u(x)], který
je lineární a časově invariantní.
Definice může být popsána také zapojením kodéru konvolučního kódu. Takový
popis je pak ekvivalentní popisu pomocí tzv. generujícího polynomu.
Konvoluční kodér může být tvořen ze dvou klopných obvodů posuvného registru,
ze tří obvodů pro sčítání MODULO 2 a z dvoubitové výstupní vyrovnávací
paměti, která v každém kroku, ve kterém kodér přijímá jeden bit informačního
slova, vysílá dva bity kódového slova. Mezi vstupním a výstupním slovem je
lineární vztah. Ke zpracování jsou použity pouze lineární prvky.
Kodér konvolučního (2, 1)-kódu s g(x) = 1 + x + x2 + x3 + x5
Časová invariance obvodu se projevuje tím, že je-li před vstupní informační slovo
zařazena jedna prodleva, tzn. jedna nula navíc, projeví se to na výstupu kodéru
dvěma nulami před odpovídajícím kódovým slovem. Zadaný kodér realizuje
konvoluční (2, 1)-kód.
Na začátku pozorování je v posuvném registru nulový obsah. Odezva na symbol 1
na vstupu kodéru je kombinace symbolů 11 na výstupu kodéru. Při prvním posuvu
je odezvou rovněž kombinace symbolů 11. Při druhém posuvu je odezva na
výstupu kodéru kombinací symbolů 01. Při třetím posuvu jsou v posuvném
registru již pouze symboly 0. Použijeme-li pro zápis mnohočlenů, můžeme
předchozí operace zapsat následovně – K[1] = 111101 = 1 + x + x2 + x3 + x5. Platí
časová invariantnost – K[01] = 00111101, K[001] = 0000111101, atd. Linearitu
9
kódu je možné ověřit tím, že vytvoříme rozklad slova 101 = 100 + 001 a platí –
K[101] = K[1] + K[001] = 1111101101.
Konvoluční kodéry jsou nejčastěji realizovány posuvnými registry s odlišnou
rychlostí posuvu (viz následující obrázek). V jednom kroku, ve kterém je
vytvořeno kódové slovo, dojde k posuvu na vstupu kodéru o k bitů informačního
slova, ale na výstupu kodéru bude posuv o n bitů kódového slova.
Obecné blokové schéma konvolučního kodéru
Přepínač na vstupu kodéru slouží k převodu sériové bitové posloupnosti na
vstupní paralelní kombinaci ut a přepínač na výstupu kodéru převádí kombinaci vt
zpět na sériovou bitovou posloupnost. Významným parametrem konvolučních
kódů je tzv. omezující délka (Constraint Length), která udává, kolik k-tic
zdrojových symbolů ovlivňuje jednu n-tici kódových symbolů, respektive kolik ntic kódových symbolů je ovlivňováno jednou k-ticí zdrojových symbolů. Kódový
poměr je pak vyjadřován podílem k/n.
10
1.4 Definice kodéru konvolučního kódu
Kodér je stroj, který přijímá k-tice ui jako vstupy v čase i a vytváří n-tice vi jako
výstupy rovněž v čase i. Stroj má paměť tj. n-tice vi je výslednicí působení nejen
k-tice ui, ale také informací obsažených v k-ticích uj, kde j ≠ i.
Závislost kódové posloupnosti na zdrojové posloupnosti popisuje generující
matice.
Jako příklad kodéru konvolučního kódu je zadán následující kodér. Generující
posloupnost kódu vypočítáme přivedením 1 na vstup. Výsledkem je posloupnost
11101100…,
které
odpovídá
generující
mnohočlen
2
4
5
g ( x ) = 1 + x + x + x + x . Z generujících mnohočlenů je sestavena
generující matice. V případě, že generujících mnohočlenů je více, jsou napsány
pod sebou bez posunutí a tvoří blok o stejné délce. Další pokračování generující
matice je vytvořeno s ohledem na počet výstupních bitů kódového slova v jednom
kroku kódování. V tomto případě jsou v každém kroku vytvářeny dva bity,
posunutí dalšího pokračování bude tedy o dvě pozice doprava. Generující matice
má tedy tvar:
1
0

0
G=
0
 ..

 ..
1 1 0 1 1 0 0 .. .. 
0 1 1 1 0 1 1 .. .. 

0 0 0 1 1 1 0 .. .. 

0 0 0 0 0 1 1 .. .. 
.. .. .. .. .. .. .. .. .. 

.. .. .. .. .. .. .. .. .. 
Generující matice není ukončena, protože konvoluční kódy nemají blokovou
strukturu. Pro zachycení zdrojové posloupnosti jsou většinou rozměry matice
nepraktické. Pro výpočet kódových slov jsou výhodnější vyjádření pomocí
mnohočlenů. Názornou grafickou možností popisu je tzv. mřížkový diagram
(trellis diagram).
Mřížkový diagram je grafickým znázorněním, které je ekvivalentní úplnému
kódovému stromu, ale má sloučené shodné stavy.
Pro kodér z předchozího příkladu je mřížkový diagram znázorněn na následujícím
obrázku. Jednotlivé posloupnosti stavů jsou nazývány pojmem cesta (path). Nechť
zdrojová posloupnost je 10011. Kódová posloupnost je 1110111101. Kodér je na
počátku zprávy v nulovém stavu. Začátku zprávy odpovídá prvních pět kroků (0
až 4) v levé části obrázku. Pravá část obrázku ukazuje konec zakódované zprávy.
Zdrojová posloupnost 10011 byla doplněna o nuly, které se nazývají pojmem
11
konec zprávy (tail of the message). Kódová posloupnost pokračuje tak, aby se
kodér dostal po odeslání zdrojových bitů zpět do nulového stavu. Počet
připojených nul je k(K-1). Výstupní kódová posloupnost je tedy 11101111010111.
Začátek a konec zprávy konvolučního kodéru (2, 1)-kódu s generujícím mnohočlenem g(x) = 1 + x
+ x2 + x4 + x5
12
1.5 Popisy chování konvolučního kodéru
Popis pomocí tabulky
V následující tabulce se ukážeme odezvu na posloupnost u = [u0; u1; u2] = [1;0;0]
pro kodér podle obrázku 1 uvedeného v kapitole 3. Výstup za prvým registrem
typu D je označen ut-1, výstup za druhým registrem ut-2. Ve výchozím klidovém
stavu jsou oba registry vynulovány (ve sloupcích B a C tabulky jsou nuly) a na
vstup přichází hodnota u0 =1 (sloupec A tabulky), což odpovídá řádku 2 tabulky.
Odezvou budou jedničky ve sloupcích F a G, tedy v01 =1; v02 =1. V následném
stavu přejdeme podle hodnot v řádku 2 sloupců D a E ut-1 =1 a ut-2 = 0 a vstupní
hodnotu u1 = 0 do řádku 5 tabulky, kde se uvedená kombinace vyskytuje ve
sloupcích A, B, C. Odezvou bude ve sloupcích F a G v11 =1; v12 =0. Obdobně
získáme přechodem do řádku 3 hodnoty v21 =1; v22 =1. Tím jsme obdrželi dílčí
výstupní posloupnosti v1 = [1;1;1], v2= [1;0;1] a multiplexováním, tj. proložením
bit po bitu obdržíme výstupní posloupnost v = [1;1;1;0;1;1].
Popis chování konvolučního kodéru pomocí tabulky
Zdrojové
bity
A
Výchozí stav
Následný stav
Výstup
B
C
D
E
F
G
ut
ut-1
ut-2
ut-1
ut-2
v1
v2
1
0
0
0
0
0
0
0
2
1
0
0
1
0
1
1
3
0
0
1
0
0
1
1
4
1
0
1
1
0
0
0
5
0
1
0
0
1
1
0
6
1
1
0
1
1
0
1
7
0
1
1
0
1
0
1
8
1
1
1
1
1
1
0
Popis pomocí stavového diagramu
Další možností pro popis funkce konvolučního kodéru je stavový diagram, který
je opět pro stejný příklad z obrázku 1 uvedeného v kapitole 3. Stavy S0, S1, S2, S3,
jsou stavy kodéru a odpovídají kombinacím ut-1 a ut-2 na výstupu registrů
[0;0],[0;1],[1;0],[1;1]. Každý příchod vstupního bitu způsobí přechod do nového
stavu. Stavový diagram má 2k větví vycházejících z každého stavu, každá větev je
označena vstupními/výstupními hodnotami ut/v1v2. Každá větev odpovídá
jednomu řádku dle předchozí tabulky.
13
Stavový diagram konvolučního kodéru
Popis pomocí mřížkového diagramu
Znázorněním stavového diagramu v závislosti na čase dojdeme k reprezentaci tzv.
mřížkovým diagramem (viz následující obrázek). Odtud také pochází název
mřížkový kód resp. trellis kód. Větev je popsána vstupními/výstupními hodnotami
kodéru stejně jako větve ve stavovém diagramu. Cesta zvýrazněná čárkovanou
čarou odpovídá příkladu vstupní posloupnosti u = [1;0;0], pro kterou se prochází
sledem stavů z počátečního S0 přes S2 a S1 zpět do výchozího stavu S0. Cesta
zvýrazněná plnou čarou je příklad pro vstupní sekvenci u = [0;1;1;0;0].
Odpovídající výstupní posloupnost je pak v = [0;0;1;1;0;1;0;1;1;1]. Všechny
uvedené způsoby popisu chování konvolučního kodéru jsou ekvivalentní, nicméně
znázornění pomocí mřížkového diagramu je názorné s ohledem na přiblížení
průběhu dekódování konvolučního kódu.
14
Mřížkový diagram konvolučního kodéru
15
1.6 Minimální kódová vzdálenost konvolučního
kódu
Konvoluční kódy jsou lineární, proto platí, že minimální kódová vzdálenost je
rovna nejmenší Hammingově vzdálenosti nenulového kódového slova.
Kódovým slovem je ovšem celá posloupnost, minimální kódová vzdálenost je
rovna nejmenší Hammingově vzdálenosti nenulové kódové posloupnosti, která
začíná a končí nulou.
Tato minimální kódová vzdálenost je nazývána jako volná kódová vzdálenost
a bývá označována dfree.
U jednoduchých kodérů můžeme tuto posloupnost stanovit přímo z grafického
zobrazení. Hledaná kódová cesta v předchozím obrázku je vyjádřena kódovou
posloupností 111011. Minimální kódová vzdálenost je tedy dfree = 5 (kódová
posloupnost obsahuje pět jedniček). Z toho můžeme poznat, že kód opravuje až
dvojnásobné chyby v kódové posloupnosti.
16
1.7 Dekódování konvolučního kódu
U konvolučních kódů není možné při dekódování zprávy stanovit dekódování
deterministicky. Pracuje se pouze s nejpravděpodobnějším předpokladem toho,
jaká zpráva byla vyslána. Zpráva s poruchou obsahuje chybu. I v této situaci jsme
tedy pracovali s nejpravděpodobnějším řešením, když jsme stanovovali
informační slova dekódováním.
Pro nalezení nejpravděpodobnějšího odhadu slouží u konvolučních kódů tzv.
Viterbiho algoritmus. Je to však jen jeden z několika možných způsobů
dekódování konvolučního kódu odvozený již v roce 1967.
Princip Viterbiho algoritmu je založen na vyhledávání nejmenší Hammingovy
vzdálenosti dekódované posloupnosti od posloupnosti přijaté. Obrázek uvedený
v kapitole 4 ukazuje všechny cesty, se kterými konvoluční kodér pracuje. Cesta,
kterou hledáme, bude postupně zkoumána podle tohoto kritéria. Souhrn všech
kroků této cesty se nazývá přijatá cesta.
Předpokládejme nyní, že jsme ji určili pro každý stav mřížkového diagramu.
Porovnáním
kódových
vzdáleností
přijatých
cest
můžeme
určit
nejpravděpodobnější cestu, a tím i zdrojovou posloupnost pro daný časový úsek.
Po příjmu dalších kódových n-tic se však může situace změnit. Rozhodnutí je
proto potvrzeno až na konci zprávy.
Po přijetí celé zprávy má být kodér v nulovém stavu. Jeho přijatá cesta určuje
hledanou posloupnost. Je-li zdrojová posloupnost 10011 zakódována do
posloupnosti 11101111010111 kodérem konvolučního (2, 1)-kódu s generujícím
polynomem g ( x ) = 1 + x + x 2 + x 4 + x 5 , pak při přenosu došlo ke dvěma chybám.
Přijata
byla
totiž
posloupnost
111010110111111.
Při
určování
nejpravděpodobnější cesty bude nyní použit Viterbiho algoritmus. Pro znázornění
postupu řešení je použit mřížkový diagram.
V následujícím obrázku jsou v mřížkovém diagramu plnou čarou znázorněny
přijaté cesty a přerušovanou čarou zamítnuté cesty, a to v každém kroku řešení.
Výrazně zesílenou čarou je vyznačen výsledný odhad.
17
Znázornění činnosti Viterbiho algoritmu
U každého stavu jsou vyznačeny minimální vzdálenosti v daném okamžiku
dekódování. Cestě s minimální vzdáleností odpovídá správná posloupnost
zdrojových znaků 1001100. Obě chyby jsou tedy opraveny. Viterbiho algoritmus
poskytuje nejpravděpodobnější odhad vyslané zprávy až po přijetí celé zprávy.
Zdlouhavost vyhodnocování cesty s minimální vzdáleností může způsobovat
neúměrně velká zpoždění zprávy. U dlouhých posloupností vznikají velké nároky
na kapacitu paměti, do které se ukládá pro každý stav cesta s minimální
vzdáleností.
18
1.8 Konvoluční kódy řešitelné pomocí syndromu
Nevýhodou Viterbiho algoritmu je jeho náročnost na počet numerických operací.
Počet operací potřebný k dekódování L-znakové zdrojové posloupnosti je roven
L ⋅ 2k ( K −1) .
Proto se Viterbiho algoritmu používá pro dekódování kódů s relativně krátkými
omezujícími délkami. Pro ilustraci je možné uvést, že při omezující délce K=7
konvolučního kódu je obvodová náročnost přibližně 8000 hradel. Závislost počtu
operací na omezující délce K je exponenciální. Největší omezující délka, pro
kterou bylo vytvořeno zapojení v podobě podpůrné paralelně pracující výpočetní
jednotky, byla K=10.
Nicméně velkých volných vzdáleností je možné dosáhnout jen při velkých
omezujících délkách. Proto jsou pro dekódování kódů s velkými omezujícími
délkami používány algoritmy, jejichž závislost je na omezující délce konstantní,
a jsou označovány jako tzv. sekvenční algoritmy.
Sekvenční algoritmus vychází ze známé pravděpodobnosti p chyby každého
kódového symbolu. Vzdálenost cesty je pak v každém i-tém kroku přibližně rovna
součinu i·n·p. Odhad cesty je volen ten, jehož kódová n-tice má nejmenší
Hammingovu vzdálenost. Pro správnou funkci sekvenčního algoritmu je důležité
správně zvolit práh rozhodování. Při malém prahu se dekodér neustále vrací zpět
a při velkém prahu je špatná cesta detekována příliš pozdě. Nejpoužívanější
sekvenční algoritmus je Fanoův algoritmus.
Výčet konvolučních kódů, jejichž kodéry a dekodéry jsou snadno obvodově
řešitelné, není příliš rozsáhlý. Řešení pro opravy vícenásobných chyb jsou velmi
náročná. Většina z účinných konvolučních kódů byla objevena pomocí počítačové
simulace. V dalším textu bude nejdříve popsána obecná třída konvolučních kódů,
které jsou schopny opravovat jednoduché chyby. Na příkladu aplikace pak budou
následovat experimentální výsledky, které ukazují, že kódy této třídy jsou účinné
i při výskytu shlukových chyb.
Třída konvolučních kódů, které opravují jednoduché chyby, nese název
Wynerovy-Ashovy kódy (WA-kódy).
Vlastnostmi jsou blízké Hammingovým kódům. Pro každé kladné m existuje
Wyner-Ashův ((m+1)2m, (m+1)(2m – 1))-kód. Kód je definován pomocí tzv.
kontrolní matice H´ Hammingova (2m – 1, 2m – 1 – m)-kódu. To je kontrolní
matice m × (2m – 1), ve které je každý ze sloupců nenulový.
Sestavme tedy následující matici. Řádky jsou definovány jako soustava 1 × (2m-1)
matic P1T, …, PmT. Nechť P0T je řádkový vektor, jehož všechny (2m-1) prvky jsou
jedničky. Potom úplná kontrolní matice Wynerova-Ashova kódu má následující
tvar:
19
 P0T
 T
 P1
 P2T

H =  ...
 PT
 m
0
 ...

1
0
0
0
P1T
P1T
0
1
0
0
0
P0T
0
0
1
0
0
0
0
0
0
...
...
...
...
0
0
...
...
P1T
...
...
...
...
...
PmT
0
... 

... 
... 

... 





Zkrácená kontrolní matice je pak zapisována jako:



H =




P0T
1
0
0
0
0
P1T
P2T
0
0
P0T
P1T
1
0
0
P0T
0
1
...
PmT
...
0
...
PmT−1
...
0
PmT− 2
0
...
...
P0T






1 
Minimální vzdálenost Wynerova-Ashova kódu je d=3, a to znamená, že se jedná
o konvoluční kód, který opravuje jednu chybu.
20
1.9 Tvrdé a měkké rozhodování
V digitálních přijímačích většinou nemá výstupní signál demodulátoru vlivem
šumu a interferencí zřetelnou podobu diskrétního binárního signálu, nýbrž spíše
připomíná spojitý náhodný signál. Proto za demodulátorem následuje tzv.
rozhodovací obvod, který rozhoduje, jakou logickou úroveň má demodulovaný
signál v aktuálním bitovém intervalu. Tento obvod může vlastní proces
rozhodování implementovat dvojí způsobem.
Tvrdé rozhodování HD (Hard Decision), zvané též „rozhodování bit po bitu“,
realizuje rozhodovací proces za pomoci prahového detektoru, který může být
implementován např. jako napěťový komparátor. Jeho výstup je jednoznačně buď
logická 1 (log 1), nebo logická 0 (log 0), a to podle toho zda úroveň
vyhodnocovaného bitu je nad nebo pod jeho specifikovanou rozhodovací úrovní.
Prahový detektor, obecně rozhodovací obvod, tedy kvantuje demodulovaný signál
pouze do dvou hladin, tzn. binárně. Výstup rozhodovacího obvodu je následně
přiveden na kanálový dekodér, který musí být uzpůsoben pro tento tvrdý vstup HI
(Hard Input). Odhadnutý vzorek se poté ihned eliminuje a přistupuje se k odhadu
vzorku následujícího.
Tvrdé rozhodování má velkou výhodu v relativně jednoduché implementaci.
Bohužel se při jeho aplikaci nevyužívají dva důležité typy informace, které v sobě
demodulovaný signál nese. Nebere se v úvahu jednak kvalita zpracovávaného
signálu, tj. jeho skutečná velikost, resp. energie, apod. Kromě toho se nevyužívá
určitý typ korelace mezi po sobě následujícími symboly, kterou v sobě může
obsahovat již vysílaný signál a k níž může dále přispívat i radiový kanál. Tím se
ztrácí určité množství kontextuální (související) informace. Oba výše uvedené
faktory ve svých důsledcích snižují věrohodnost rozhodovacího procesu.
Měkké rozhodování SD (Soft Decision), zvané též „rozhodování po kódových
slovech“, provádí opět rozhodovací obvod. Ten však oproti předchozímu typu
rozhodovacího procesu kvantuje vzorky výstupního signálu demodulátoru nikoliv
binárně, nýbrž do více kvantizačních úrovní než dvou.
Předpokládejme, že je demodulovaný signál polární, to znamená, že úrovni log 1
odpovídá například napětí +1 V a úrovni log 0 následně napětí -1 V. V praxi se
u takových binárních signálů často vystačí s „tříbitovým“ kvantováním,
poskytujícím množinu celkem osmi kvantizačních úrovní, označených čísly (-4, 3, -2, -1, 0, 1, 2, 3, 4). Tato čísla reprezentují tzv. spolehlivostní faktor (reliability
factor), resp. spolehlivostní metriku (reliability metric), poskytující přídavné
21
informace (side information, likelihood information, log-likelihood ratios)
o amplitudě a případně i o dalších důležitých vlastnostech zpracovávaného bitu
resp. symbolu.
Čím vyšší je absolutní hodnota spolehlivostního faktoru, tím vyšší je i míra
jistoty, že daný bit zaujímá uvažovanou aktuální pozici. Tedy např. hodnoty +4
resp. -4 poskytují vysokou míru důvěry, že úroveň bitu je +1 V resp. -1 V, kdežto
např. při hodnotách +2 resp. -2 je důvěra v hodnotu bitu +1 V resp. -1 V podstatně
nižší. Druhým přídavným činitelem uplatňujícím se při měkkém rozhodování je
kontextuální (související) informace. Ta může být využita spolu se
spolehlivostním faktorem různými způsoby, např. pro zvýšení věrohodnosti
příjmu přijímaných bitů, resp. symbolů.
Dokonalejší metoda dekódování s měkkým rozhodováním aplikuje jako metriku
Euklidovu vzdálenost a díky tomu bere v úvahu nejen prostou velikost
(amplitudu) jednotlivých bitů přijatého kódového slova, nýbrž i jejich poměr
signál/šum.
Ve výše uvedeném příkladu bylo uvažováno tříbitové, tj. osmiúrovňové
kvantování výstupu demodulátoru. Některé systémy však aplikují mnohem
dokonalejší téměř optimální kvantování do podstatně většího počtu úrovní. Tak
například v buňkovém systému GSM se uplatňuje osmibitové kvantování výstupu
demodulátoru do 256 úrovní. Výstup rozhodovacího obvodu potom přináší velice
detailní přídavnou informaci o kvalitě zpracovávaného bitu resp. symbolu.
Využití měkkého rozhodování je snadné u konvolučních kódů. Naproti tomu
u blokových kódů je implementace této techniky obtížnější, i když vývoj
z posledních let naznačuje, že principy měkkého rozhodování bude možné
úspěšně aplikovat i zde. Měkké rozhodování přináší výrazné zlepšení tzv.
kódového zisku, a to zejména při malých poměrech odstupu signálu od šumu.
V kanálech se šumem AWGN je to o cca 2 až 3 dB, v kanálech postižených navíc
únikem vedoucím ke shlukům chyb potom dokonce o 4 až 6 dB.
22
1.10 Kódování konvolučního WA-kódu
Jak vyplývá z předchozích kapitol, jsou kontrolní bity konvolučních kódů
vytvářeny jak vzhledem k informačním k bitům právě přenášeného bloku, tak
k informačním bitům N-1 předcházejících bloků. Skupinu N bloků použitých
k vytvoření zabezpečujících kontrolních bitů označujeme skupinovou délkou
bloku. Při kódování se kontrolní bity přenášeného bloku vytvářejí ve vztahu
k informačním bitům všech bloků obsažených ve skupině.
Toto rozdělení konvolučního kódu na části zprávy je zavedeno kvůli snadnějšímu
technickému řešení kodéru a dekodéru.
Při dekódování se dekódované slovo vytváří ve vztahu k informačním bitům
právě přenášeného kódového slova a kontrolním bitům celé skupiny. Takto
uspořádané kódování a dekódování se nazývá kanálové kódování a kanálové
dekódování.
V praxi používaným kódem je Wynerův-Ashův konvoluční kód (WA-kód).
Uspořádání WA-kódu tedy představuje konvoluční (n, k)-kód, který pro p = 1, 2,
3, … vyhovuje podmínkám definovaným následujícími rovnicemi:
•
počet bitů výsledného zabezpečeného slova je n = 2p,
•
počet informačních bitů v bloku je k = 2p – 1 = n – 1,
•
délka skupiny zabezpečovaných bloků je N = p + 1.
Každému kódovému slovu o n bitech tedy přísluší jeden kontrolní bit pro celou
skupinovou délku o N = p + 1 slovech. Kontrolní bit se vytváří funkcí XOR
z vybraných informačních bitů bloku.
Princip vytváření WA-kódu: a) kódování, b) dekódování
23
Při použití konvolučního kódu je zřejmé, že dekódovaná informace bude
k dispozici až po dokončení přenosu skupiny bitů, ze kterých jsou vytvářeny
kontrolní bity. Dekódované slovo je tedy možné získat až po uplynutí
„dopravního zpoždění“, které vzniká při sériovém přenosu zprávy.
24
1.11 Dekódování a oprava chyb u WA-kódu
Příklad konvolučního (8,7)-kódu ukazuje, že řádky vybraných pozic
předcházejících N-1 kódových slov skupiny určuje ve dvojkové reprezentaci číslo
odpovídající poloze informačních bitů v N-tém slově skupiny. Toho se využívá
při dekódování.
Při dekódování se vypočítávají bity syndromu na základě porovnání přijatých
kontrolních bitů a kontrolních bitů odvozených z přijatých informačních bitů
jednotlivých N kódových slov skupiny. Odvození probíhá podle stejných pravidel
jako na straně vysílání zprávy.
Pokud nevznikne během přenosu chyba, oba kontrolní bity souhlasí a syndrom
odpovídá hodnotě „0“. Nastane-li ovšem během přenosu chyba, kontrolní bity pak
nesouhlasí a syndrom odpovídá hodnotě „1“. Syndrom tedy lokalizuje přesnou
polohu chyby ve dvojkovém vyjádření zprávy. Tato vlastnost vyplývá
z konstrukce konvolučního kódu, neboť přijatý kontrolní bit je vytvářen funkcí
XOR s ohledem na polohu informačních bitů v jednotlivých kódových slovech.
V kódových slovech (posloupnostech) následujících za právě dekódovanou
kódovou posloupností se příslušný kontrolní bit vytváří z chybně přenesené
výchozí posloupnosti. V takovém případě bude chyba například v poloze prvního
informačního bitu indikována nesouhlasem kontrolních bitů a lokalizována trojicí
syndromů „100“, neboť chyba v poloze prvního informačního bitu ovlivní
kontrolní bit pouze následující kódové posloupnosti. Chyba v poloze druhého
informačního bitu by ovlivnila pouze kontrolní bit druhého kódového slova.
Projeví se tedy syndromem „010“, atd. Jako ilustrace výše uvedených skutečností
je uveden jednoduchý příklad pro N=4 (viz následující obrázek).
Konvoluční kód o N kódových slovech
V příkladu ilustrovaném na předchozím obrázku vyžaduje detekce a korekce
jedné chyby celkem čtyř kontrolních bitů ve skupině bloků N=4, který má celkem
32 bitů (z toho 28 bitů je informačních). Teoretické omezení WA-kódu je na
jednotlivou chybu ve 32 symbolech zprávy. Je zřejmé, že kód nevyžaduje zvláštní
zabezpečování přenosu kontrolních bitů, neboť detekuje i chybu v kontrolním
25
bitu. Takovému případu odpovídá skupina syndromů tvořená symboly „1000“,
v nichž „1“ signalizuje chybu v bloku „000“ nultou polohu chybného bitu
v kódové posloupnosti.
Wynerův-Ashův konvoluční (8,7)-kód je využit např. ke zlepšení kvality
televizního vysílání podle normy PAL. S ohledem na vysoké přenosové rychlosti
se v této aplikaci předpokládá demultiplexování sériového PCM kódu. Přenos
kontrolních bitů se provádí formou společného osmibitového slova kontrolních
bitů. Kontrolní slovo obsahuje 2×4 bity pro dva informační bloky. Tímto
uspořádáním se výrazně sníží šířka pásma výsledného multiplexovaného signálu,
která by byla nutná, pokud by byla slova přenášena jako osmibitová.
Vzorkovací kmitočet fvz = 13,3 MHz se zvýší pouze na hodnotu
(15/14)·13,3 = 14,25 MHz. Hodnota zaváděné redundance je přitom pouze
1/15 = 0,07. Přitom je možné dosáhnout opravy jedné chyby v posloupnosti
patnácti kódových slov.
26
1.12 Kodér WA-kódu
Princip uspořádání vlastního kodéru blokového WA-kódu, který pracuje podle
pravidel uvedených v předchozí kapitole, je znázorněn na následujícím obrázku.
Posloupnost informačních bitů paralelního přenosového kanálu zaplní postupně
sedmibitový posuvný registr PR. V posuvném registru jsou ukládány informační
bity téže váhy ze sedmi po sobě následujících slov. Pro každý takový informační
blok jsou provedeny operace logickou funkcí XOR a je uložen kontrolní bit S do
paměťového obvodu P, jehož výstup je zpracováván operací logické funkce XOR
s bitem, který vznikl jako kontrolní bit následujícího informačního slova.
Skupinové schéma zapojení kodéru konvolučního (8,7)-kódu
Tak je postupně vytvořen výsledný kontrolní bit, aniž je nutné vytvářet simultánní
bloky celé skupiny N. Přitom je však nutné, aby paměťové obvody pracovaly
rychlostí, která je rovna 1/7 rychlosti výstupních informačních bitů. Úplné
uspořádání kodéru WA-kódu využívá pro čtyři nejvýznamnější bity kodéry
z následujícího obrázku.
27
Skupinové schéma úplného kodéru WA-kódu
V nezabezpečovaných kanálech, které jsou tvořeny nižšími čtyřmi bity, jsou
zařazeny pouze posuvné registry pro vyrovnání časového zpoždění. Součástí
úplného uspořádání kodéru je obvod pro vytváření sériového toku dat, který
provádí multiplexování informačních a kontrolních bitů do formátu, v němž jsou
všechny kontrolní bity dvou bloků seřazeny do osmibitového slova.
Multiplexní obvod vytváří zprávu popsaného uspořádání na základě sdružení bitů
informačních (MSB (Most Significant Bit) + LSB (Least Significant Bit))
a kontrolních bitů jednotlivých paralelních kanálů sdružených do společného
osmibitového kontrolního slova. Výstupní paralelně-sériový převodník vytváří
výslednou zabezpečenou zprávu v sériovém tvaru.
28
1.13 Dekódování konvolučního WA-kódu
Dekódování konvolučního (8,7)-kódu spočívá ve vytvoření syndromů pro korekci
chyb v kódové zprávě. Dekodér proto obsahuje základní Wynerův-Ashův kodér,
který má za úkol generovat kontrolní bity zprávy na přijímací straně. Výstup
tohoto kodéru se porovnává s příslušným přeneseným kontrolním bitem.
Kontrolní bity se na přijímací straně ukládají postupně do N-členného posuvného
registru PR.
Výpočet bitů syndromu je zřejmý z následujícího obrázku. Při výpočtu je použit
čítač, který vytváří dvojková čísla 001 až 111 rychlostí shodnou s rychlostí
posuvu posuvného registru ve funkci vyrovnávací paměti. Obvody s logickou
funkcí XOR vytvářejí logickou hodnotu „1“ v případě neshody hodnoty
syndromu a výstupu dvojkového čítače. Je-li současně detekována chyba ve
skupině bloků, je první syndromový bit nastaven na hodnotu „1“, je na výstupu
logického obvodu součinu H1 korekční signál v hodnotě „1“. Tím je zajištěna
oprava chyby v posloupnosti přenášené zprávy. Aby byl opravován správný bit
zprávy obvodem H2 a logickou funkcí XOR, je nutné, aby procházející zpráva
byla zpožděna přídavným posuvným registrem, který zpozdí zprávu právě
o dvacet jedna taktů zdroje synchronizace. Teprve potom je opravován právě
chybný symbol.
Schéma zapojení dekodéru Wynerova-Ashova (8,7)-kódu v jednom kanále
V zapojení obvodu dekodéru je použito zapojení kodéru WA-kódu. V předchozím
obrázku je nakreslen jako blok v místě vstupu přijaté zprávy.
Skupinové schéma dekodéru pro všechny přenosové kanály je na následujícím
obrázku. Zpráva vstupuje prostřednictvím sériově-paralelního převodníku do
29
obvodu demultiplexoru, ve kterém jsou nejdříve vytvořeny paralelní kanály
informačních bitů.
Skupinové schéma Wynerova-Ashova dekodéru (8,7)-kódu
Každý ze zabezpečovaných kanálů bitů MSB obsahuje vlastní Wynerův-Ashův
dekodér. Blok zpracování kontrolních bitů vytváří jednotlivé kontrolní bity ze
složeného kontrolního slova. V nezabezpečovaných kanálech bitů LSB se provádí
přídavným časovým zpožděním vyrovnávání skupiny příslušných bitů MSB
a LSB.
30
1.14 Srovnání účinnosti Hammingova kódu
a WA-kódu pro TV
Použití blokových a konvolučních kódů, které umožňují detekci a opravu
jednotlivých chyb, a po použití prokladu i krátkých skupinových chyb, je velmi
často požadováno proto, že neodstraněné chyby způsobují po zpracování přijatého
TV signálu rozsáhlé poškození tohoto signálu. Tento jev je možné vysvětlit tím,
že před vlastním přenosem je signál podroben kompresi, aby nebylo nutné
rozšiřovat šířku pásma TV kanálu.
Zpráva podrobená kompresi tak obsahuje podstatně více informací, tj. je výrazně
omezena redundance bitů a symbolů v přenášeném signálu (zprávě). Výskytem
chyb je tedy přenášený komprimovaný signál poškozován mnohem více.
V příjmu digitálního TV signálu se při dostatečném pokrytí území uvažuje jen
malá pravděpodobnost výskytu chyby. Pro takové případy platí experimentální
vztah pc = β ⋅ p 2 , kde pc udává pravděpodobnost chyby v bitu p. Činitel β je
přitom možné považovat za kritérium kvality pro hodnocení kódů. Pro
Hammingův kód je činitel kvality kódu β H =
βWA =
n ⋅ (2 N − 1) − 1
.
2
n −1
, pro konvoluční WA-kód je
2
Odvození přechozích vztahů uvádí s velmi pečlivě provedenými experimentálními
zkouškami prováděnými britskou BBC literární prameny [4] a [5]. Platí, že
kvalitnější zabezpečovací kód se vyznačuje nižší hodnotou činitele β. Oba typy
kódů jsou pro srovnání uvedeny v následující tabulce. Je zde také uvedeno
i množství zaváděné redundance.
Srovnání účinnosti Hammingova a WA-kódu pro TV
Hammingův kód
Typ
(n,k)
(7,4)
Wynerův-Ashův kód
Délka
Typ (n,k)
Redundance
N
(2,1)
2
0,500
0,429
Činitel
βH
3
(15,11)
0,267
7
(4,3)
3
0,250
9,5
(31,26)
0,161
15
(8,7)
4
0,125
27,5
(63,57)
0,095
31
(16,15)
5
0,063
71,5
Redundance
Činitel
βWA
2,5
Podle údajů uvedených v tabulce je možné konstatovat, že při zhruba stejné
hodnotě redundance je Hammingovým kódem dosaženo lepšího činitele β.
Realizace Hammingova kódu je však obvodově složitější. Pro účely použití při
zabezpečení TV kanálu jsou vhodné Hammingův (31,26)-kód a Wynerův-Ashův
(8,7)-kód. Z těchto dvou možností byl BBC doporučen Wynerův-Ashův (8,7)31
kód, a to nejen z hlediska jednodušší implementace, ale také proto, že má
vhodnější vlastnosti při ochraně zpráv před vlivem skupinových chyb. Obojí
vyplývá z kontextu výše uvedených zkoušek.
Z výsledků provedených zkoušek dále vyplynulo, že vliv opravy skupinové chyby
výrazněji ovlivňuje kvalitu obrazu než oprava chyb jednotlivých. Experimentální
výsledky jsou dokladem o vhodnosti řešení a o dostatečné účinnosti
implementačně relativně jednoduchého WA-kódu pro aplikaci v přenosových
kanálech PCM s chybovostí do hodnoty 10-5.
Při přenosu nebo záznamu TV obrazu jsou nejčastější chyby skupinové,
postihující najednou několik symbolů přenášené zprávy. Vysoká přenosová
rychlost v digitální televizi však dovoluje aplikovat pouze implementačně
jednoduché zabezpečovací kódy. Wynerův-Ashův kód vykazuje přijatelnou míru
obvodové složitosti a přitom zajišťuje v dostatečné míře opravu jak
u jednotlivých, tak u skupinových chyb.
32
2 TURBO kódy
2.1 Paralelní zřetězení
Před uvedením TURBO kódů byly nároky na vysokou účinnost potlačení chyb
v informačním kanálu řešitelné například konvolučním kódem s velkou hodnotou
omezující délky kódu (tzv. délka kódového omezení). Podmínkou zde však byla
velká délka vnitřní paměti kodéru konvolučního kódu. Dekódování takového
konvolučního kódu bylo velmi komplikované. V roce 1993 byly poprvé popsány
tzv. TURBO kódy. Dnes patří TURBO kódy k nejvýznamnějším objevům v teorii
kódování. Jejich vlastnosti je řadí k nejdůležitějším efektivně použitelným kódům.
TURBO kódy se stávají nejvážnějšími kandidáty nových průmyslových standardů
pro připravované systémy v oblasti bezdrátového přenosu informace.
TURBO kódy jsou vytvářeny jako paralelně zřetězené konvoluční kódy. Kodéry
i dekodéry jsou tvořeny zřetězením dvou nebo více modulů. Moduly dekodérů
jsou nazývány SISO (Soft-Input Soft-Output). Moduly SISO jsou propojeny
rovněž navzájem několika bloky na proklad (Interleaver) a zpětný proklad
(Deinterleaver) informace ve zprávě. Moduly dekodéru spolupracují podle
interaktivního algoritmu, při kterém dochází k výměně dílčích výsledků
dekódování mezi jednotlivými SISO moduly. Dekodér je v tomto uspořádání
schopen se přiblížit, při dlouhých posloupnostech prokladu informace, hodnotám
velmi blízkým limitní kapacitě kanálu.
V dalších kapitolách bude vysvětlen základní princip TURBO kódů včetně řízení
vlastností kódu, analýzy a zlepšování mezních parametrů návrhu základních
kodérů a bloku prokladu informace ve zprávě. Základem účinnosti dekodéru je
tzv. algoritmus interaktivního dekódování. Další principy zřetězení a použití
prokladu, které zahrnuje sériové a hybridní zřetězení dekodérů je uváděno
v souvislosti s typickými hodnotami využití limitních hodnot kapacity
informačního kanálu.
TURBO kódy jsou intenzivně zkoumány v souvislosti s použitím komunikace
s omezeným výkonem zdroje zpráv (Space Communication). Téměř hotov je nový
standard pro kódování telemetrických spojů. Doporučení pro CCSDS
(Consultative Committee for Space Data Systems), pro ATM (Asynchronous
Transfer Mode) i pro bezdrátové aplikace, pro kanály s velkým únikem,
s digitálním satelitním přenosem a pro další aplikace digitálních komunikací jsou
ve velmi pokročilém stádiu příprav. TURBO kódy představují novou třídu kódů
pro kódové zabezpečení, jejichž dekódování je řešeno praktickou implementací.
Srovnání vlastností bude v dalším textu provedeno v souvislosti s kodérem
a dekodérem konvolučního kódu. Konvoluční kód může být realizován například
kodérem s poměrem r = ½ s omezující délkou (Constraint Length) K = 3, která
označuje celkový počet bitů informační zprávy zpracovávaných do výstupní
kódové zprávy.
33
Pro popis kodéru konvolučního kódu je možné použít vstupní posloupnosti u a
posloupností, které se podílí na výstupní kódové posloupnosti v(1) a v(2).
V časovém okamžiku i se vstupní informační bit ui rozkládá na dva prvky uložené
ve vnitřní paměti kodéru: ui-1 a ui-2. Popis zachycuje posloupnost hodnot, ze
kterých jsou vytvářeny hodnoty výstupní. S ohledem na to, že se jedná o popis
nekauzálního systému, je výhodnější používat pro popis vstupní posloupnosti
mnohočlenu u(D), a pro popis výstupní posloupnosti mnohočlenu v(D), kde D je
proměnná v obrazovém definičním oboru.
Konvoluční kodér s poměrem r = 1/2 a s délkou kódového omezení K = 3
Generující matici kodéru konvolučního kódu dle předchozího obrázku je potom
možné zapsat jako:
G ( D ) =  g (1) ( D ) g ( 2 ) ( D )  , G ( D ) = 1 + D 2 1 + D + D 2  .
Kódovou posloupnost v(D) odpovídající vstupní posloupnosti u(D) je možné
zapsat jako u ( D ) G ( D ) =  u ( D ) g (1) ( D ) u ( D ) g ( 2 ) ( D )  . Stejná kódová
posloupnost
vzniká
také
tehdy,
je-li
u '( D ) = u ( D ) g (1) ( D ) ,
přitom
 g (2) ( D) 
u ( D )G ( D ) = u ( D ) g ( D )G R ( D ) , kde GR ( D) = 1
.
(1)
 g ( D) 
(1)
Generující matice GR(D) se nazývá rekurzivní generující matice RGM (Recursive
Generating Matrix).
34
2.2 Rekurzivní kodér
Kodér konvolučního kódu pracující podle rekurzivní matice je označován jako
kodér RSC (Recursive Systematic Convolutional encoder).
Kódy mohou být konstruovány pomocí této rekurzivní matice jako systematické,
u kterých je neměnné umístění kontrolních bitů v kódové posloupnosti.
Systematický konvoluční kód má stejnou volnou kódovou vzdálenost jako
konvoluční kód s nerekurzivní generující maticí v uspořádání dle obrázku
z předchozí kapitoly.
Uspořádání RSC kodéru rekurzivního systematického konvolučního kódu je na
následujícím obrázku.
RSC kodér
35
2.3 Kodér TURBO kódu
TURBO kódy jsou kódovány paralelně zřetězenými kodéry RSC kódů. Kodéry
jsou odděleny blokem prokladu dat.
Příklad kodéru TURBO kódu je na následujícím obrázku. Zde jsou paralelně
zřetězeny dva identické 1/2 RSC kodéry.
Příklad kodéru TURBO kódu
Horní kodér přijímá informační posloupnost přímo, zatímco spodní kodér přijímá
data upravená v bloku prokladu podle funkce permutace α. Proklad je
pseudonáhodný, to znamená, že symbol v poloze i je transformován do polohy
α(i) podle předem daných, ale přesto náhodných pravidel. Blok prokladu pracuje
na daném úseku posloupnosti symbolů.
Dochází k výměně L bitů v jedné dávce zpracování, to znamená, že TURBO kódy
jsou ve skutečnosti blokové kódy. Protože oba kodéry jsou systematické a pracují
se stejnými symboly (přestože jsou tyto symboly přeházené permutací), je zřejmé,
že může být odeslána pouze jedna kódová zpráva a přesto je možné ji dekódovat.
Výsledný systematický kód je obvykle výstupem horního kodéru, zatímco
systematický kód spodního kodéru není přenášen. Nicméně kontrolní symboly
(bity) obou kodérů přenášeny jsou. Celkový kódový poměr dvou paralelně
zřetězených systematických kódů s poměrem 1/2 je r = 1/3.
Kódový poměr se může zlepšit tzv. zúžením (puncturing), což je proces vypuštění
některých kontrolních bitů. Kódový poměr TURBO kódů je zpravidla zlepšen na
36
r = 1/2 tím, že jsou přenášeny pouze liché kontrolní bity horního kodéru a sudé
kontrolní bity spodního kodéru (spolu se všemi informačními bity z horního
kodéru).
37
2.4 Dekódování
Dekodér konvolučního kódu pracuje tak, že hledá nejpravděpodobnější
posloupnosti bitů v kódové posloupnosti, která je porušena chybami. Tzv.
Viterbiho algoritmus řeší tento úkol s nejvyšší mírou pravděpodobnosti.
{
}
mˆ = arg m ax P [ m | y ]
m
Symbol m̂ představuje posloupnost bitů, která je získána z přijaté posloupnosti y.
Rovnice je řešena například pomocí Viterbiho algoritmu. Je tím získána
maximálně pravděpodobná přijatá posloupnost ML (Maximal Likelihood).
U konvolučních kódů je možné získat řešení ML posloupnosti použitím
předcházející rovnice, která je řešitelná Viterbiho algoritmem. Složitost tohoto
algoritmu je úměrná hodnotě O(2L), kde L je velikost datového rámce (velikost
bloku prokladu). Pro příliš velkou složitost výpočtu ML posloupnosti je
u TURBO kódů využito suboptimálního řešení, které vyžaduje mnohem menší
složitost výpočtu.
Dobré výsledky poskytuje řešení následující soustavy rovnic
Λ i(1) = log
P  m i = 1 | y ( 0 ) , y (1) , z ( 2 ) 
 ( 0 ) (1)  ( 2 ) 
 
a Λ ( 2 ) = log P  m i = 1 | y , y , z  ,
i
P  m i = 0 | y ( 0 ) , y (1) , z ( 2 ) 
P  m i = 0 | y ( 0 ) , y (1) , z ( 2 ) 
kde y(0) jsou přijaté informační bity, y(1) jsou přijaté kontrolní bity prvního kodéru
a y(2) jsou přijaté kontrolní bity druhého kodéru.
Vlnovka nad veličinou představuje hodnotu s prokladem, to znamená, že ỹ je
hodnota odpovídající prokladu hodnoty y. Symbol Λ je aposteriorní logaritmický
nejpravděpodobnější poměr LLR (Log-Likelihood Ratio) a z je tzv. extrinzická
informace.
Extrinzická informace je ve vztahu k LLR dle následujících rovnic:
 (2) − y (0) − z (1) .
zi(1) = Λ i(1) − yi(0) − zi(2) a zi(2) = Λ
i
i
i
Soustava posledních čtyř rovnic je řešitelná iterativním postupem, který je
naznačen v blokovém schématu dekodéru TURBO kódu v následující kapitole.
 (2) . Každým z dekodérů prochází
Dekodér 1 určuje řešení Λ(1) a dekodér 2 řeší Λ
informace ke druhému dekodéru a v něm dochází ke zlepšování aposteriorní
pravděpodobnosti použitím informace odvozené v předcházejícím dekodéru.
Konečného zlepšení přijatých dat zprávy je dosaženo po potřebném počtu iterací
výpočtu. Výstup informace je vyveden obvykle z druhého dekodéru.
38
2.5 Dekodér TURBO kódu
Algoritmus aposteriorní pravděpodobnosti LLR je možné vypočítat přímo pomocí
tzv. MAP (Maximum A Posteriori) algoritmu. Výpočet však má velmi vysokou
složitost a je citlivý k vyjádření čísel s konečnou přesností.
Tyto problémy se zmírnily prováděním algoritmu v logaritmickém vyjádření
veličin. Výsledný algoritmus je označovaný názvem Log-MAP algoritmus. Tyto
algoritmy jsou sestaveny ze dvou Viterbiho algoritmů: jeden je prováděn
v dopředné rekurzi a druhý ve zpětnovazební rekurzi (princip viz následující
obrázek). Složitost Log-MAP algoritmu je tedy asi dvojnásobná ve srovnání
s Viterbiho algoritmem.
TURBO dekodér
Blok prokladu informace ve zprávě je možné obecně znázornit jako paměťovou
matici, do které se zapisuje po řádcích, a ze které se čte informace po sloupcích
(příklad činnosti bloku prokladu viz následující obrázek).
39
Příklad činnosti bloku prokladu
40
2.6 Výkonnost TURBO kódu
Proklad informace v přenášené zprávě hraje při návrhu TURBO kódu důležitou
úlohu. Jestliže je velikost bloku prokladu velká, zlepšuje se schopnost kódu
opravovat chyby. Jestliže se blok prokladu zmenšuje, schopnost kódu opravovat
chyby klesá. Předchozí skutečnosti tak mohou vést k jednoduché úvaze, že je
nejlepší použít co největší blok prokladu.
Velikostí paměti využité v bloku prokladu se však výrazně prodlužuje tzv. latentní
doba dekodéru.
Simulovaný výkon TURBO kódu uvedený v následujícím obrázku ukazuje, jak se
mění potlačení chyb s narůstajícím počtem iterací při dekódování. Všechny
průběhy jsou simulovány při velikosti bloku prokladu L = 65536. Při počtu iterací
je hodnota mírně pod 0,7 dB. Se zlepšujícím se odstupem signálu od šumu se
počet chyb zmenšuje.
Výkon TURBO kódu s r = 1/2, K = 5 a L = 65536 s různým počtem iterací i
41
Na dalším obrázku je pak znázorněna závislost potlačení počtu chyb při měnící se
délce bloku prokladu L. Všechny průběhy jsou simulovány pro počet iterací
i = 18.
Výkon TURBO kódu s r = 1/2, K = 5 a i = 18 s různými délkami bloku prokladu L
Mimořádná schopnost TURBO kódů potlačovat vliv chyb v přenášené zprávě je
zřejmá ze srovnání výsledků konvolučního kódu bez zřetězení a TURBO kódu.
Pro dosažení stejných výsledků by musel být zkonstruován dekodér konvolučního
kódu s mezní kódovou vzdáleností K = 15. Takový dekodér je však podle
Viterbiho algoritmu příliš složitý a jen velmi obtížně realizovatelný. Tuto
skutečnost potvrzuje i tzv. asymptotická hodnota volné kódové vzdálenosti,
kterou lze teoreticky vypočítat pro oba typy kódů.
Potlačování chyb je u konvolučního kódu dosažitelné pouze zvyšováním volné
kódové vzdálenosti, která je definována jako nejmenší Hammingova váha všech
nejkratších nenulových kódových posloupností. Naopak u TURBO kódů se nabízí
možnost opakovaného řešení procesu dekódování při iterativním výpočtu
algoritmu dekódování. Dekodér přitom nedosahuje tak velkých nároků na
složitost obvodového řešení.
42
Volná kódová vzdálenost TURBO kódů nemusí být tak velká, neboť míru účinku
potlačení chyb ovlivňuje kombinace tří faktorů: pseudonáhodný proklad,
rekurzivní algoritmus a paralelní zřetězení kódu. Vlivem rekurzivního charakteru
RSC kodéru TURBO kódu vykazuje většina vstupních posloupností velkou
Hammingovu váhu. Asymptotická hodnota volné kódové vzdálenosti má proto
u TURBO kódů mnohem příznivější průběh.
43
2.7 Závěrečný test
1. Jaký je hlavní účel zavádění různých typů kódů a kódovacích schémat?
a) odstranění redundatních informací v přenášené datové posloupnosti
b) zvýšení spolehlivosti přenosu informací
c) ochrana dat před zneužitím
d) zvýšení rychlosti přenosu dat
správné řešení: b
2. Které typy kodérů jsou označovány jako zdroje zpráv bez paměti?
a) U nichž je n-tice kódové posloupnosti závislá POUZE na k-tici aktuální (právě
zpracovávané) informační posloupnosti.
b) U nichž je n-tice kódové posloupnosti závislá na předchozích k-ticích
informační posloupnosti.
c) U nichž je n-tice kódové posloupnosti závislá na všech předchozích k-ticích
informační posloupnosti.
d) U nichž není n-tice kódové posloupnosti závislá POUZE na k-tici aktuální
(právě zpracovávané) informační posloupnosti.
správné řešení: a
3. Kódové slovo konvolučního kódu je:
a) nezávislé na aktuální vstupní informační posloupnosti a na m předchozích
informačních slovech
b) závislé na aktuální vstupní informační posloupnosti
c) závislé na aktuální vstupní informační posloupnosti a na m předchozích
informačních slovech
d) závislé na m předchozích informačních slovech
správné řešení: c
4. Jakým způsobem lze popsat konvoluční kódy?
a) pomocí Taylorových řad
b) pomocí Fourierových řad
c) pomocí diferenciálních rovnic
d) pomocí generujících polynomů, resp. matic
správné řešení: d
44
5. Jak se nazývá nejznámější postup pro dekódování konvolučních kódů?
a) Fubiniho algoritmus
b) Viterbiho algoritmus
c) Wyner-Ashův algoritmus
d) Fanoův algoritmus
správné řešení: b
6. Základní vlastností konvolučních kódů je:
a) linearita
b) asociativita
c) kauzalita
d) homogenita
správné řešení: a
7. Jaká je definice konvolučního kódu?
a) Konvoluční kód je soubor kódových posloupností, které odpovídají
všempravděpodobným informačním posloupnostem.
b) Konvoluční kód je soubor kódových posloupností, které odpovídají všem
možným kódovým posloupnostem.
c) Konvoluční kód je soubor kódových posloupností, které odpovídají všem
možným informačním posloupnostem.
d) Konvoluční kód je soubor kódových posloupností, které odpovídají všem
náhodným informačním posloupnostem.
správné řešení: c
8. Co je specifikováno konvolučním kodérem?
a) struktura informačních posloupností
b) struktura konvolučního kódu
c) struktura kódových posloupností
d) struktura obvodového zapojení
správné řešení: d
45
9. Jak způsobem bývají nejčastěji realizovány konvoluční kodéry?
a) posuvnými registry s plynule proměnnou rychlostí posuvu
b) posuvnými registry s odlišnou rychlostí posuvu
c) posuvnými registry se stejnou rychlostí posuvu
d) posuvnými registry s konstantní rychlostí posuvu
správné řešení: b
10. Jaký je významný parametr konvolučních kódů?
a) omezující délka
b) generující polynom
c) úroveň zabezpečení
d) generující matice
správné řešení: a
11. Co popisuje generující matice?
a) závislost výstupní posloupnosti na kódové posloupnosti
b) závislost zdrojové posloupnosti na kódové posloupnosti
c) závislost kódové posloupnosti na zdrojové posloupnosti
d) závislost vstupní posloupnosti na kódové posloupnosti
správné řešení: c
12. Názorným grafickým popisem generující matice je:
a) kondiciogram
b) Vennův diagram
c) fázový diagram
d) mřížkový diagram
správné řešení: d
46
13. Jaká je nevýhoda Viterbiho algoritmu používaného pro dekódování
konvolučních kódů?
a) obtížně realizovatelné uspořádání dekodéru
b) náročnost na počet numerických operací
c) nemožnost dekódování kódů s relativně krátkými omezujícími délkami
d) rozměrná kontrolní matice
správné řešení: b
14. O který typ rozhodování se jedná v případě „rozhodování bit po bitu“?
a) tvrdé rozhodování
b) klouzavé rozhodování
c) měkké rozhodování
d) logické rozhodování
správné řešení: a
15. Jaká je výhoda tvrdého rozhodování?
a) relativně krátká rozhodovací doba
b) nenáročnost na počet numerických operací
c) relativně jednoduchá implementace
d) rychlost rozhodovacího procesu
správné řešení: c
16. O který typ rozhodování se jedná v případě „rozhodování po kódových
slovech“?
a) tvrdé rozhodování
b) logické rozhodování
c) klouzavé rozhodování
d) měkké rozhodování
správné řešení: d
47
17. Doplňte - Měkké rozhodování oproti rozhodování tvrdému kvantuje
vzorky výstupního signálu demodulátoru
a) do více kvantizačních úrovní
b) pouze binárně
c) s ohledem na kvalitu výstupního signálu pouze binárně
d) s ohledem na kvalitu výstupního signálu pouze do více kvantizačních úrovní
správné řešení: a
18. Jaká metrika
rozhodováním?
je
aplikována
u metody
dekódování
s měkkým
a) Pythagorova vzdálenost
b) Euklidova vzdálenost
c) Taylorova vzdálenost
d) Viterbiho vzdálenost
správné řešení: b
19. Jaká je výhoda měkkého rozhodování?
a) zlepšení účinnosti kódu
b) zjednodušení výpočtu jednotlivých symbolů konvolučního kódu
c) zlepšení kódového zisku
d) zvýšení rychlosti rozhodovacího procesu
správné řešení: c
20. Kterou logickou operací jsou vytvářeny kontrolní bity?
a) OR
b) AND
c) NOR
d) XOR
správné řešení: d
48
21. Čím lze lokalizovat přesnou polohu chyby ve dvojkovém vyjádření
zprávy?
a) pomocí syndromu
b) pomocí kontrolního bitu
c) pomocí kontrolního symbolu
d) pomocí kontrolního bytu
správné řešení: a
22. Jakým způsobem jsou vytvářeny TURBO kódy?
a) jako logicky zřetězené konvoluční kódy
b) jako paralelně zřetězené konvoluční kódy
c) jako konvolučně zřetězené konvoluční kódy
d) jako sériově zřetězené konvoluční kódy
správné řešení: b
23. Jakou zkratkou jsou označovány moduly dekodérů TURBO kódů?
a) FIFO
b) SOSI
c) SISO
d) LIFO
správné řešení: c
24. Kodér konvolučního kódu pracující podle rekurzivní matice je označován
jako:
a) Reed-Solomonův kodér
b) Read Slow kodér
c) Random Seek kodér
d) RSC kodér
správné řešení: d
49
25. Který blok odděluje jednotlivé paralelně zřetězené RSC kodéry
implementující TURBO kód?
a) blok prokladu
b) blok překladu
c) zpožďovací člen
d) vyrovnávací paměť
správné řešení: a
26. Doplňte - TURBO kódy jsou kódy
a) systematické
b) blokové
c) konvoluční
d) symbolové
správné řešení: b
27. Jakým způsobem lze zlepšit kódový poměr?
a) tzv. rozšířením, což je proces přidání dalších kontrolních bitů
b) tzv. zúžením, což je proces vypuštění všech kontrolních bitů
c) tzv. zúžením, což je proces vypuštění některých kontrolních bitů
d) tzv. rozšířením, což je proces přidání dalších kontrolních symbolů
správné řešení: c
28. Doplňte - Jestliže je velikost bloku prokladu velká,
a) zvyšuje se rychlost opravy chyb v TURBO kódu.
b) schopnost TURBO kódu opravovat chyby zůstává stejná.
c) zhoršuje se schopnost TURBO kódu opravovat chyby.
d) zlepšuje se schopnost TURBO kódu opravovat chyby.
správné řešení: d
50
29. Velikostí paměti využité v bloku prokladu se výrazně prodlužuje
a) latentní doba dekodéru
b) iterační doba dekodéru
c) Hammingova doba dekodéru
d) asymptotická doba dekodéru
správné řešení: a
51

Podobné dokumenty

Präsentation 1

Präsentation 1 zisku uvádí Čechura (2009): „Firma musí vyrábět maximální množství výstupů z daných vstupů, správně kombinovat vstupy a výstupy vzhledem k jejich cenám a rovněž vyrábět optimální rozsah produkce.“ ...

Více

1 Úvod

1 Úvod Pevný disk je umístěn uvnitř skříně PC. Občas ale potřebujete data někam odnést, nainstalovat nový program, nebo provést zálohu důležitých dat. Pak použijete některé výměnné médium pro záznam dat. ...

Více

Vybrané aspekty návrhu webových informačních systémů

Vybrané aspekty návrhu webových informačních systémů Dostává se vám do rukou kolektivní monografie, která si klade za cíl diskutovat základní aspekty návrhu webových informačních systémů. Autoři se domnívají, že uvedené oblasti jsou důležité a předst...

Více

Map Utility

Map Utility a klepnutím na tlačítko [

Více

PC hardware

PC hardware osmdesáticentimetrové zdi. Nevýhodou silencerů je to, že sice – pokud nemají poruchu – uhlídají teplotu uvnitř zdroje, ale nemusí uhlídat teplotu uvnitř skříně. Také proto jsou nové motherboardy vy...

Více