VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA ELEKTROTECHNIKY A KOMUNIKAČNÍCH TECHNOLOGIÍ ÚSTAV TELEKOMUNIKACÍ FACULTY OF ELECTRICAL ENGINEERING AND COMMUNICATION DEPARTMENT OF TELECOMMUNICATIONS TURBO KÓDY A JEJICH APLIKACE TURBO CODES AND THEIR APPLICATIONS DIPLOMOVÁ PRÁCE MASTER'S THESIS AUTOR PRÁCE AUTHOR VEDOUCÍ PRÁCE SUPERVISOR Bc. STANISLAV PLOŠTICA Ing. PAVEL ŠILHAVÝ, Ph.D. BRNO 2009
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ Faulta eletrotechniy a omuniačních technologií Ústav teleomuniací Diplomová práce magistersý navazující studijní obor Teleomuniační a informační technia Student: Bc. Stanislav Ploštica ID: 88560 Roční: 2 Aademicý ro: 2008/2009 NÁZEV TÉMATU: Turbo ódy a jejich apliace POKYNY PRO VYPRACOVÁNÍ: Nastudujte problematiu protichybového zabezpečení pomocí turbo ódů. Dále se zaměřte na problematiu deódování zprávy zabezpečené pomocí Turbo ódů. Porovnejte jednotlivé přístupy. V programovém prostředí Matlab vytvořte demonstrační program, terý bude možno využít jao výuovou pomůcu. Na záladě zísaných zušeností implementujte s pomocí programu MATLAB-SIMULINK na vývojovém KITu TI TMS320C673 s modulem ZigBee odér a deodér Turbo ódu. Na implementovaném omuniačním systému realizujte měření. DOPORUČENÁ LITERATURA: [] Heegard, Chris and Stephen B. Wicer, Turbo Coding,. Boston, Kluwer Academic Publishers, 999 ISBN:0792383788. [2] Lin, S., Costello, D. J.. Error Control Coding: Fundamentals and Applications, second edition, Prentice Hall: Englewood Cliffs, NJ, 2005 ISBN: 0-3-042672-5. [3] Salar, B.. Digital Communications, Fundamentals and applications, Prentice-Hall, 2003, ISBN 0-3-084788-7. Termín zadání: 9.2.2009 Termín odevzdání: 26.5.2009 Vedoucí práce: Ing. Pavel Šilhavý, Ph.D. prof. Ing. Kamil Vrba, CSc. Předseda oborové rady UPOZORNĚNÍ: Autor diplomové práce nesmí při vytváření diplomové práce porušit autorsá práve třetích osob, zejména nesmí zasahovat nedovoleným způsobem do cizích autorsých práv osobnostních a musí si být plně vědom následů porušení ustanovení a následujících autorsého záona č. 2/2000 Sb., včetně možných trestněprávních důsledů vyplývajících z ustanovení 52 trestního záona č. 40/96 Sb.
Anotace Cílem této diplomové práce je objasnit problematiu ódování použitím Turbo ódů. Tyto ódy náleží do supiny samoopravných ódů. Jejich použitím je možné dosáhnout vysoé výonnosti systému. První část je věnována teoreticému rozboru procesu ódování a deódování. Popisuje jednotlivé části odéru a deodéru. Princip ódování a deódování je předveden na jednoduchém příladě. Jsou zde popsány dva nejpoužívanější deódovací algoritmy (SOVA a MAP). Druhá část obsahuje popis programu vytvořeného pro využití jao výuové pomůcy. Tento program byl vytvořen v programu Matlab GUI. Umožňuje procházet proces zabezpečení ro po rou. Obsahuje graficé rozhraní s možností nastavení různých parametrů odeu a zobrazení výsledů. Ve třetí části je popsán program vytvořený v Matlab Simulin pro implementaci na it TMS320C673 a postup měření na tomto itu. Pro ověření výonnosti turbo ódů v závislosti na jednotlivých parametrech byly změřeny napřílad: vliv počtu deódovacích cylů, děrovaní a použitý generující polynom. V poslední části jsou uvedeny naměřené hodnoty a zhodnoceny výsledy měření. Klíčová slova: turbo ódy, odér, deodér, SOVA, MAP, Matlab GUI, Matlab Simulin, it TMS320C673. Abstract This Diploma thesis aims to explain the data coding using turbo codes. These codes belong to the group of error correction codes. We can reach the high efficiency using these codes. The first part describes process of encoding and decoding. There are describes parts of encoder and decoder. Principle of encoding and decoding demonstrate a simple example. The end of this part contains description of two most frequently used decoding algorithms (SOVA and MAP). The second part contains description of computer program that was made for using as teaching aid. This program was created in Matlab GUI. This program enables to browse error correction process step by step. This program contains graphic interface with many options and display results. In the third part is described program created in Matlab Simulin that was implemented into the TMS320C673 it and there is description of measuring procedure. For verification of efficiency of turbo codes was measured any parameters. Some of these parameters are: number of decoding iterations, generating polynoms and using of puncturing. The last part contains measured value and result evaluation. Keywords: turbo codes, encoder, decoder, SOVA, MAP, Matlab GUI, Matlab Simulin, it TMS320C673.
PLOŠTICA, S. Turbo ódy a jejich apliace. Brno: Vysoé učení technicé v Brně, Faulta eletrotechniy a omuniačních technologií, 2009. 59 s. Vedoucí diplomové práce Ing. Pavel Šilhavý, Ph.D. 4
Prohlášení o původu práce Prohlašuji, že svou diplomovou práci na téma Turbo ódy a jejich apliace jsem vypracoval samostatně pod vedením vedoucího semestrálního projetu a s použitím odborné literatury a dalších informačních zdrojů, teré jsou všechny citovány v práci a uvedeny v seznamu literatury na onci práce. Jao autor uvedené diplomové práce dále prohlašuji, že v souvislosti s vytvořením tohoto projetu jsem neporušil autorsá práva třetích osob, zejména jsem nezasáhl nedovoleným způsobem do cizích autorsých práv osobnostních a jsem si plně vědom následů porušení ustanovení a následujících autorsého záona č. 2/2000 Sb., včetně možných trestněprávních důsledů vyplývajících z ustanovení 52 trestního záona č. 40/96 Sb. V Brně dne:. podpis autora 5
Poděování Děuji vedoucímu diplomové práce Ing. Pavlu Šilhavému, Ph.D., za velmi užitečnou metodicou pomoc a cenné rady při zpracování práce. V Brně dne:. podpis autora 6
Obsah Obsah...7 Seznam obrázů a tabule...8 Úvod...0 Turbo odér.... RSC odér....2 Proládání...3.3 Děrování...4.4 Princip ódování...5 2 Turbo deodér...6 2. Viterbiho algoritmus...6 2.2 Princip deódování Turbo ódů...9 2.2. SOVA algoritmus...9 2.2.2 Maximum A-Posteriori Algoritmus (MAP)...25 3 Demonstrační program...28 3. Popis programu v Matlab GUI...28 3.. Blo Kodéru...28 3..2 Blo Přenosový anál...29 3..3 Blo Deodér...30 4 Vyhodnocení výsledů z vytvořeného programu...33 4. Přílad...33 4.2 Přílad 2...34 5 Výonnost turbo ódů...36 5. Počet cylů deódování...36 5.2 Děrování...37 5.3 Použitý deódovací algoritmus...37 5.4 Déla ódového slova...37 5.5 Volba generujících polynomů...37 5.6 Proládání...37 6 Model odeu v prostředí Matlab Simulin...38 6. Záladní model...38 6.2 Synchronizace...40 6.2. Realizace synchronizace v Matlab Simulin...42 6.3 Modulace...44 7 Implementace odeu na it TMS320C673...47 7. Vývojový it TMS320C673...47 7.2 Program pro it...48 7.3 Měření na implementované omuniačním systému...49 8 Hodnocení výsledů měření...50 8. Počet deódovacích cylů...5 8.2 Vliv volby generujících polynomů...52 8.3 Vliv děrování na výonnost turbo odeu...53 8.4 Shrnutí výsledů...55 9 Závěr...56 Seznam použité literatury...57 Seznam použitých zrate...58 7
Seznam obrázů a tabule Obr..: Bloové schéma Turbo odéru... Obr..2: Zapojení RSC odéru...2 Obr..3: Pseudonáhodné proládání...3 Obr..4: Proládání pomocí matice proládání...3 Obr..5: Schéma odéru s děrováním...4 Obr..6: Schéma zapojení RSC odéru s nulováním...5 Obr. 2.: Mřížový diagram pro 5 bitovou posloupnost...6 Obr. 2.2: jeden stavově-časový přechod mřížového diagramu...7 Obr. 2.3: Výsledná deódovaná cesta mřížovým grafem...8 Obr. 2.4: Schéma zapojení deodéru Turbo ódu...9 Obr. 2.5: Stavový diagram přechodů pro RSC odér daný generujícími polynomy G (D)=[] a G 2 (D)=[0]....20 Obr. 2.6: Mřížový diagram s tučně vyznačenou nejpravděpodobnější cestou...22 Obr. 2.7: Mřížový diagram s přežívající cestou a všemi onurenčními cestami...23 Obr. 2.8: Část mřížového diagramu pro dopředný průchod...26 Obr. 2.9: Část mřížového diagramu pro zpětný průchod...27 Obr. 3.: Schéma rozdělení výuového programu na dílčí části...29 Obr. 3.2: Schéma deódovacího procesu převzato z demonstračního programu...3 Obr. 3.3: Podrobné schéma deódování ono demonstračního programu...3 Obr. 3.4: Ono výuového programu s grafem...32 Obr. 4.: Graf pravděpodobnosti U = pro 0 deódovacích cylů z příladu...34 Obr. 4.2: Graf pravděpodobnosti U = pro 5 deódovacích cylů z příladu 2...35 Obr. 6.: Záladní bloové schéma Turbo odeu v Matlab Simulin...38 Obr. 6.2: Schéma zapojení odéru v Matlab Simulin...38 Obr. 6.3: Posloupnosti vystupující: a) z bernoulliho generátoru, b) z turbo odéru...39 Obr. 6.4: Schéma zapojení deodéru v Matlab Simulin...39 Obr. 6.5: Časový průběh synchronizace: a) datová posloupnost z odéru, b) synchronizační impulzy, c) datová posloupnost na straně přijímače...4 Obr. 6.6: Schéma zapojení z programu Matlab Simulin se synchronizací...4 Obr. 6.7: Schéma zapojení blou Turbo oder enable...42 Obr. 6.8: Schéma zapojení blou Tvorba synchronizace...43 Obr. 6.9: Schéma zapojení blou Obnova synchronizace...43 Obr. 6.0: Schéma zapojení blou Obnova ramcu...43 Obr. 6.: Schéma zapojení modulátoru...44 Obr. 6.2: Schéma zapojení demodulátoru...44 Obr. 6.3: Časový průběh datového signálu vystupující z: a) odéru, b) modulátoru, c) přenosového análu, d) digitálního filtru, e) Zero-Order Hold, f) demodulátoru...46 Obr. 7.: Bloové schéma vývojového itu TMS320C673 DSP...47 Obr. 7.2: Schéma zapojení implementované na it TMS320C673: a) Kodér, b) Deodér...48 Obr. 7.3: Schéma měřícího pracoviště...50 Obr. 7.4: Schéma zapojení pro měření v Matlab Simulin...50 Obr. 8.: Vliv počtu deódovacích cylů...5 Obr. 8.2: Vliv volby generujících polynomů...52 Obr. 8.3: Vliv děrování na výonnost turbo odeu...54 8
Tab..: Tabula přechodů a výstupů...2 Tab. 2.: Tabula přechodů a výstupů pro odér G (D)=[] a G 2 (D)=[0]...6 Tab. 2.2: Hodnoty metriy d A...8 Tab. 2.3: Nejnižší hodnoty d A zísané zpětným trasováním...8 Tab. 2.4: Tabula přechodů a výstupů pro RSC odér danýgenerujícími polynomy G (D)=[] a G 2 (D)=[0]....20 Tab. 2.5: Posloupnosti zastoupené v deódovacím procesu...2 Tab. 2.6: Hodnoty aumulovaných metri...22 Tab. 2.7: Přehled parametrů zísaných při deódování v deodéru...24 Tab. 4.: Hodnoty pravděpodobností že deódované bity U = pro cyly až 0...34 Tab. 4.2: Hodnoty pravděpodobností že deódovaný bit U = pro cyly až 5...36 9
Úvod Turbo ódy byly poprvé představeny v roce 993. Claude Berrou, Alain Glavieux a Punya Thitimajshima ve svém článu uvedli výsledy svého výzumu. Předvedli, že tyto ódy vyazují velý ódový zis i při vysoých datových rychlostech, a to při relativně jednoduché realizaci. Díy svým vlastnostem mohou Turbo ódy zajistit nízou chybovost BER (Bit Error Rate) řádu 0-5 až 0-7, při malých hodnotách poměru signál/šum, terý se blíží Shannonovu limitu (Eb/No=-,6 db). Shannonův teorém říá, že frevence výsytu chyb v datech, teré jsou přenášeny pásmově omezeným análem za přítomnosti šumu, může být vhodným ódováním reduována na libovolně malou hodnotu, poud je rychlost přenosu informace menší než apacita přenosového análu [9]. Do této doby převládal názor, že těchto výsledů je možné dosáhnout pouze použitím ódů s extrémně dlouhou délou ódového slova, jejichž deódování je vša značně náročné. Prvním cílem diplomové práce bylo nastudovat problematiu zabezpečení dat pomocí turbo ódů. Této části jsou věnovány apitoly a 2. Zde je popsána teorie zabezpečení pomocí turbo ódů a popis jednotlivých částí odéru a deodéru. Princip je vysvětlen na jednoduchém přiladu. V apitole 3 je popsán výuový program vytvořený v programu MATLAB GUI, terý vyhovuje další části zadání této práce. V apitole 4 jsou popsány dva přílady zísané z výuového programu a zhodnoceny zísané výsledy deódování. 5. apitola popisuje výonnost turbo ódů a jednotlivé parametry teré tuto výonnost ovlivňují. Informace obsažené v této apitole byly čerpány z literatury [7]. Kapitoly 6 a 7 jsou věnovány návrhu programu v Matlab Simulin pro implementaci na it TMS320C673. Kromě odéru a deodéru byla řešena problematia návrhu synchronizace a modulace přenášeného signálu. V závěru apitoly 7 je popsán postup měření. Závěrečná apitola 8 zahrnuje prezentaci naměřených výsledů formou grafů, jejich popis a zhodnocení zísaných výsledů. 0
Turbo odér Záladní zapojení Turbo odéru je zobrazena na Obr... Je tvořen dvěma paralelně zapojenými RSC (Recursive Systematic Convolutional) odéry teré jsou odděleny bloem proládání. V něterých případech se můžeme setat i s více RSC odéry zapojenými paralelně. Princip ódování je stejný jao u záladního zapojení se dvěma odéry a v této práci bude disutováno právě zapojení z Obr... Následuje popis jednotlivých částí.. RSC odér RSC odér je odvozen z lasicého nereurzivního onvolučního (NRC) odéru přidáním zpětné vazby. Záladním prvem tohoto odéru je posuvný registr sládající se z něolia paměťových buně, teré uchovávají hodnoty příchozích bitů. Výstupní posloupnost je pa dána lineární ombinací současných a předchozích vstupních hodnot. Na Obr..2 je přílad zapojení RSC odéru. Záladními parametry jsou informační rychlost R a déla ódového ohraničení K. Informační rychlost udává poměr počtu bitů vstupujících do odéru a vystupujících z odéru. Déla ódového ohraničení udává ja dlouho se jeden bit vstupní posloupnosti podílí na procesu ódování. Pro jeho výpočet platí: K = m +, (..) de m je počet paměťových buně odéru. Tento odér je možné popsat pomocí generující matice. Její tvar je: ( D) ( ) D G G =,, (..2) G2 de značí systematicý výstup, G (D) je generující polynom pro přímou větev a G 2 (D) je generující polynom pro zpětnou vazbu. RSC odér Multiplexer Blo proládání RSC odér Obr..: Bloové schéma Turbo odéru
Vstupní bity Systematicé bity D D D Paritní bity Obr..2: Zapojení RSC odéru Všechny stavy výstupu a přechodů pro výše uvedené zapojení RSC odéru je možné popsat pomocí tabuly (viz. Tab..). Tab..: Tabula přechodů a výstupů Současný Následují Vstup stav paměti stav paměti Výstup D D2 D3 X D D2 D3 x x y 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2
.2 Proládání Proládání je používáno v digitálních datových přenosech z důvodu ochrany přenášených dat proti shluům chyb. Díy proládání je shlu chyb rozdělen do více bloů přenášené posloupnosti, což zabraňuje přeročení zabezpečovací schopnosti ódu. V případě Turbo ódů je proládání použito pro zvýšení Hammingovy váhy ódového slova. Hammingova váha vyjadřuje počet nenulových prvů v ódovém slově. Poud se na vstupu odéru objeví něterá z posloupností s malou Hammingovou váhou, terá by na straně deodéru mohla způsobit nejednoznačnost v procesu deódování, je tato posloupnost přesládána na jinou s velou váhou ódového slova. Příladem taové posloupnosti je dlouhá posloupnost nul ve teré se objeví posloupnost odpovídající generujícímu polynomu G 2 (D). Pro výše zmíněný RSC odér, de G 2 (D) = + D 2 + D 3, by taová posloupnost vypadala následovně X = (0000.00000). Obecně se tyto posloupnosti označují jao samouončovací sevence. Příladem proladačů jsou pseudonáhodné proladače, jejichž realizace je možná např. pomocí mapovací tabuly. Přílad taového proladače je na Obr..3. Další způsob realizace může být použití matice proládání. Princip je založen na zapisování vstupní posloupnosti do sloupců matice a čtení výstupní posloupnosti z řádů této matice (viz. Obr..4) Vstup 0 0 0 0 Převod 3 6 8 2 7 4 5 Výstup 0 0 0 0 Obr..3: Pseudonáhodné proládání čtení 0 zápis...... 0 0............... 0 0...... 0 0 Obr..4: Proládání pomocí matice proládání 3
.3 Děrování Používá se pro zmenšení počtu přenášených bitů. Výhodou je zmenšení přenosové šířy pásma. Nevýhodou naopa snížení výonnosti zabezpečovacího procesu. Princip spočívá v odstranění něterých bitů z odesílané posloupnosti podle definovaných pravidel. Výše uvedený odér (Obr..2) má informační rychlost R=/2. V procesu ódování jsou obvyle použity dva tyto odéry. Výstupní zabezpečená posloupnost bude mít 3x vetší délu než vstupní. Pro aždý vstupní bit je na výstupu deodéru trojice bitů, jeden systematicý a dva 2 2 2 paritní bity, tj. posloupnost { x, y, y, x, y, y,..., x, y, y }. Což dává výslednou 2 2 2 informační rychlost R=/3. Děrováním bitů y a y 2 dosáhneme vyšších informačních rychlostí. Nejjednodušším případem je střídavé děrování y a y 2. Princip je naznačen na Obr..5. Do přenášené posloupnosti se vládají systematicé bity a střídavě paritní bit y a 2 y. Výsledná posloupnost vstupující do přenosového análu pa má tvar 2 2 u = { x, y, x, y,..., x, y, x, y } a R=/2. 2 2 l l Na straně deodéru jsou v demultiplexoru chybějící bity paritních posloupnostech nahrazeny nulami. Stíží se tím proces deódování, jeliož nemáme celovou informaci paritních bitů. vstup RSC odér x y Multiplexer u výstup Blo proládání RSC odér 2 y Obr..5: Schéma odéru s děrováním 4
.4 Princip ódování Na vstup odéru je přiváděna nezabezpečená posloupnost bitů X={X,X 2,,X }. Tato posloupnost vstupuje přímo do RSC odéru a proládaná do odéru 2. Jednotlivé bity pa procházejí paměťovými buňami RSC odéru a jsou pomocí operace XOR (exlusivního součtu) sčítány. Výstupem aždého deodéru je pro jeden vstupní bit X dvojice bitů výstupních, systematicý x a paritní y. Z dvojice systematicých x a x 2 bitů je do odesílané posloupnosti zahrnut jen jeden, obvyle z odéru ( x ), jeliož systematicý výstup z druhého odéru je pouze proládaný výstup prvního. Na přijímací straně je pa tento druhý výstup jednoduše odvozen. Poud nepoužijeme děrování jsou do výstupní posloupnosti zahrnuty pro aždý vstupní bit X oba paritní y i pa má tvar: 2 y. Výsledná zabezpečená posloupnost 2 2 2 u = { x, y, y, x, y, y,..., x, y, y } (.4.) 2 2 2 Pro další správnou funci odéru je nutné uvést odér do původního stavu, tzn. vynulovat paměťové buňy. U lasicých onvolučních odéru se toho dosáhne přivedením nulové posloupnosti o délce m, odpovídající počtu paměťových buně. U RSC odérů není díy zpětné vazbě tento princip možné použít, jeliož nidy nevíme jaé hodnoty jsou v dané chvíli v jednotlivých paměťových buňách zastoupeny. Zjištění této nulovací posloupnosti pro jeden odér neřeší problém vynulování druhého odéru, jeliož v blou proládání dojde přesládání této posloupnosti. Jednoduché řešení je zobrazeno na Obr..6. Do schématu původního zapojení RSC odéru je přidán přepínač terý se po průchodu vstupní ódové posloupnosti přepne ze stavu do 2 a provede se m dalších roů, teré již zaručí vynulování všech paměťových buně. Tato posloupnost bitů, terá je rovněž zaódována, je pa přidána na onec zabezpečené posloupnosti jao uončující bity v anglicé literatuře označována jao tail bits. Vstupní bity X 2 Systematicé bity x D D D y Obr..6: Schéma zapojení RSC odéru s nulováním Paritní bity 5
2 Turbo deodér Pro deódování onvolučních ódů se používá Viterbiho algoritmus. Jeliož záladním prvem Turbo ódů je RSC odér, bude vysvětlen princip deódování pomocí Viterbiho algoritmu. Modifiace Viterbiho algoritmu teré se používají pro deódování Turbo ódů budou popsány v další části textu. 2. Viterbiho algoritmus Funce Viterbiho algoritmu pro deódování je nejlépe popsatelná pomocí mřížového (trellis) diagramu. Vysvětlení principu bude realizováno na jednoduchém příladu. Na Obr. 2. je uveden mřížový diagram terý by odpovídal RSC odéru s dvěmi paměťovými buňami a generujícími polynomy G (D)=[] a G 2 (D)=[0]. Tab. 2. je tabulou přechodů a výstupů, terá jednoznačně definuje všechny stavy. Stav: 0 0 00 : 0 2 3 4 5 6 7 8 9 0 2 3 4 5 6 7 Obr. 2.: Mřížový diagram pro 5 bitovou posloupnost Tab. 2.: Tabula přechodů a výstupů pro odér G (D)=[] a G 2 (D)=[0] Současný stav Vstup Následující stav Výstup D D2 X D D2 x y 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6
Stav: 0 0 0 0 0 0 00 00 00 + Obr. 2.2: jeden stavově-časový přechod mřížového diagramu Na Obr. 2.2 je znázorněn jeden stavově-časový přechod mřížového diagramu z Obr. 2.. Dvoubitová čísla uvedená v rámeču označují výstupy odéru x a y. Vlevo jsou uvedeny jednotlivé stavy paměťových buně odéru. Uvažujme posloupnost bitů vstupující do odéru ve tvaru X = {00000000}. Tato posloupnost je pomocí Tab. 2. v odéru zaódována a na její onec jsou přidány dva uončovací bity. Výsledná posloupnost odesílaná na přenosový anál má potom tvar: u = {00 0 00 0 0 0 0 00 0 00 0 }. Přijatá posloupnost napadená chybou na přenosovém anále bude mít tvar: u = {00 00 0 0 0 0 00 00 00 0 }. Na podtržených místech vznila při přenosu chyba. Mřížový diagram pro tento přílad je uveden výše na Obr. 2.. Čtyři možné stavy teré mohou nastat jsou v tomto diagramu označeny tečami. Vlevo jsou pa hodnoty těchto stavů. Diagram má 7 sloupců. To odpovídá 5 bitové posloupnosti + 2 uončující bity. Trellis začíná i ončí ve stavu 00. Přechody znázorněné plnou čarou se šipou odpovídají vstupní informaci, přerušované 0. Všechny přechody jsou odvozeny z Tab. 2.. Při aždém přijetí dvojice bitů se vypočte vzdálenost mezi přijatou dvojicí a všemi možnými dvojicemi teré bychom mohli přijmou. Touto vzdáleností je Hammingova vzdálenost nazývaná metria větve d A. Pro náš přílad může nabývat hodno 0, nebo 2. Pro tuto metriu platí vztah: d A _ atua ln í = d A _ přředchoz + atuální Hammingova vzdálenost bitů (2..) 7
Pro průchod diagramem volíme tu cestu s nejnižší metriou. Tímto způsobem dojdeme až na onec grafu. Výsledem je nejvíce pravděpodobná cesta. Při tomto procesu může nastat případ dy dostaneme pro jeden stav více stejných nejmenších hodnot d A. To se řeší v zásadě dvěma způsoby mezi terými není rozdíl a je tedy možné použít terýoliv z nich. První spočívá v náhodném výběru. Druhý ve volbě cesty podle předem daného pravidla, např. vybereme vždy cestu směřující vzhůru. Hodnoty metriy d A jsou uvedeny v Tab. 2.2. Tab. 2.2: Hodnoty metriy d A Kro 0 2 3 4 5 6 7 8 9 0 2 3 4 5 6 7 Stav 3 3 2 3 4 4 3 4 2 3 4 4 Stav 2 2 0 2 3 3 4 3 4 4 3 3 2 Stav 3 2 2 3 4 4 4 2 3 4 4 2 Stav 0 0 2 3 3 3 3 4 3 4 3 3 2 2 4 5 2 Dalším roem je zpětné trasování. Zpětně procházíme Tab. 2.2 a vybíráme ty s nejnižší hodnotou d A. Pro tyto hodnoty d A si zapamatujeme hodnotu stavu. Výsledem je následující Tab. 2.3 zapamatovaných stavů. Tab. 2.3: Nejnižší hodnoty d A zísané zpětným trasováním Kro : 0 2 3 4 5 6 7 8 9 0 2 3 4 5 6 7 Stav s: 0 0 2 2 3 3 0 2 2 0 0 2 0 Při tomto procesu dochází e oreci chyb. Napřílad v rou 3 docházelo nejednoznačnosti volby cesty, jeliož existují dvě stejné nejnižší hodnoty d A. Tato nejednoznačnost je ve zpětném trasování odstraněna, jeliož z rou 4 do rou 3 nevede žádná cesta do stavu 3, ale pouze do stavu (viz. Obr. 2.3). Posledním roem je procházet graf v dopředném směru podle Tab. 2.3 a z Tab. 2. zjišťovat terý vstupní bit odpovídá danému přechodu. Výsledem je deódovaná posloupnost U. Výsledná cesta mřížovým grafem je zobrazena na Obr. 2.3. Stavy: 3 2 0 Kroy: 0 2 3 4 5 6 7 8 9 0 2 3 4 5 6 7 U : 0 0 0 0 0 0 0 0 Obr. 2.3: Výsledná deódovaná cesta mřížovým grafem 8
2.2 Princip deódování Turbo ódů Záladní strutura turbo deodéru je zobrazena na Obr. 2.4. Dva deodéry jsou odděleny bloem proládání, podobně jao u odéru. Do aždého deodéru vstupují 3 posloupnosti: systematicé bity y t,, paritní bity t, 2 y a informace ( ) L z druhého deodéru. Tato informace se nazývá apriorní informace. Každý deodér využívá oba vstupy z análu a tuto apriorní informaci z druhého deodéru. Výstupem aždého deodéru je romě deódované posloupnosti i měý výstup (soft-output) pro deódované bity. Tento měý výstup nám udává pravděpodobnost správného deódování. Záladními algoritmy pro deódování Turbo ódů jsou Soft-Output Viterbi Algorithm (SOVA) a Maximum A-Posteriori algorithm (MAP). u 2.2. SOVA algoritmus Ja již název napovídá, jedná se o modifiaci lasicého Viterbiho algoritmu. SOVA algoritmus má oproti lasicému Viterbiho dvě modifiace, teré dovolují jeho použití pro deódování Turbo ódů. Metria cesty terá je používána, je modifiována pro zísání apriorní informace, terá vybírá maximálně pravděpodobnou cestu mřížovým diagramem. Druhou modifiací je posytnutí měého výstupu ve formě apriorní informace pro aždý deódovaný bit. x u vstup Demultiplex 2 y Deodér Proladač ( ) u L 2 Proladač y 2 x Deodér 2 Inverzní proladač ( ) u L U výstup Obr. 2.4: Schéma zapojení deodéru Turbo ódu 9
Stav: 00 -- 0 0 -- +- ++ ++ -+ -+ +- + Obr. 2.5: Stavový diagram přechodů pro RSC odér daný generujícími polynomy G (D)=[] a G 2 (D)=[0]. Tab. 2.4: Tabula přechodů a výstupů pro RSC odér danýgenerujícími polynomy G (D)=[] a G 2 (D)=[0]. Současný stav Vstup Následující stav Výstup (s) ( s) ( s D D2 u D D2 x, x 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Postup deódování bude vysvětlen na přiladu. Uvažujme Turbo ód s použitím RSC odéru jehož generující polynomy jsou G (D)=[] a G 2 (D)=[0], v deadicé formě 7 a 5. Přenášená posloupnost bude obsahovat 9 systematicých bitů z nichž 7 je informačních a zbylé 2 jsou uončující bity. Stavový diagram přechodů je znázorněn na Obr. 2.5. Proces deódování je v obou deodérech shodný. Bude popsán postup pro deodér. Pro jednoduchost uvažujme vstupní posloupnost samých nul X = { 0000000} odérem dostaneme následující posloupnosti. Systematicá posloupnost = { 000000000} paritní posloupnost y = { 000000000}. ),2. Po průchodu x, 20
Data přijatá z přenosového análu jsou demultiplexována. Jsou zísány jednotlivé posloupnosti pro deodér a 2. Před samotným procesem deódování je nutné mapovat jednotlivé posloupnosti do {-,+} rozsahu. To se děje následujícím způsobem: bity 0 jsou nahrazeny -, bity jsou ponechány. Děje se to proto, aby nulové bity nenulovaly ostatní parametry ve vzorcích. Jednotlivé posloupnosti mapované do rozsahu {-,+} budou mít následující tvar: y, = {- - - - - - - -}, y, 2 = {- - - - - - - -}. Na podtržených místech uvažujeme chybu vznilou v přenosovém anále. Přehled jednotlivých posloupností je uveden v Tab. 2.5. Tab. 2.5: Posloupnosti zastoupené v deódovacím procesu Vstupní bity Systematicé bity Paritní bity Přenášené bity Přenesené bity X x y u Přijaté bity Přijaté mapované bity y u y t, y t, 2 y t, t, 2 0 0 0 00 00 0 0 - - 0 0 0 00 0 0-0 0 0 00 00 0 0 - - 0 0 0 00 00 0 0 - - 0 0 0 00 0 0-0 0 0 00 00 0 0 - - 0 0 0 00 00 0 0 - - - 0 0 00 00 0 0 - - - 0 0 00 00 0 0 - - Následuje samotné deódování. Pro jednotlivé uzly mřížového diagramu jsou vypočteny aumulované hodnoty metriy. Pro SOVA algoritmus podle vztahu: M ( s) = M L N ( s) c ( s) ( s) c ( s) ( s) + u y, + x, j y, j + 2 2 j= 2 Pro N=2 lze pro zjednodušení zapsat tento vztah do formy: Kde: M ( s) L L L 2 u 2 ( s) L ( u ) ( u ) (2.2..) ( s) c ( s) ( s) c ( s) ( s) ( s) = M + u y, + x,2 y,2 + u L (2.2..2) 2 (s) M aumulovaná hodnota metriy pro přechod ze stavu s v rou, M aumulovaná hodnota metriy v rou - (předchozí stav), ( s) (s) u systematicý bit orespondující s vysílanou hodnotou (viz. Tab. 2.4), x paritní bit orespondující s vysílanou hodnotou (viz. Tab. 2.4), ( s),2 2 y a ( s),2 y dvojice bitů přijatá z přenosového análu, ( s), 2
L ( u ) apriorní hodnota pro bit u z předchozího deodéru. V případě prvního u deódovacího cylu ( ) = 0. L L c spolehlivost přenosového análu. Pro AWGN anál: de: E b N 0 vyjadřuje odstup signálu od šumu v decibelech. E L = b c 4, (2.2..2) N 0 Dále se vyhledá nejpravděpodobnější cesta grafem. Postup je stejný jao v případě lasicého Viterbiho algoritmu. Rozdíl je v tom, že volíme tu cestu s vyšší hodnotou aumulované metriy. Tímto je zísána deódovaná bitová posloupnost U ={u,u 2, u }. Hodnoty aumulovaných metri pro jednotlivé uzly grafu jsou uvedeny v Tab. 2.6. Parametr spolehlivost přenosového análu zvolen L = 4. Tučně je vyznačena zvolená cesta grafem. Poud pro jeden uzel v grafu existují dvě hodnoty aumulované metriy, uchováme obě tyto hodnoty. Tab. 2.6: Hodnoty aumulovaných metri 0 2 3 4 5 6 7 8 9-4 -4 0 0-4 8 4 8 8 4 8 2-4 4-4 0 8 4 0 2 8 8 6 2 3-4 8-4 4 0 8 4 6 8 2 8 20 8 4 0 4 4 8-4 2 8 2 4 6 4 20 6 24 2 28 20 Na Obr. 2.6 je znázorněn mřížový diagram pro náš přílad. Tučně je označena nejpravděpodobnější cesta grafem. c Stav: -4 0-4 8 8 8-4 0 4 8 4 0 0 00-4 4 s c -4 8 0 8 6-4 0-4 8 8 8-4 8 4 8 6 2 20-4 0 4 2 8 2 8 4 8 6 2 20 4 4 8 2 2 6 20 24 28 : 0 2 3 4 5 6 7 8 9 přijato: 00 0 00 00 0 00 00 00 00 Obr. 2.6: Mřížový diagram s tučně vyznačenou nejpravděpodobnější cestou 22
V aždém úseu grafu je nalezena onurenční cesta přežívající a z hodnot metriy obou cest je dále vypočítána míra spolehlivosti Δ s, udávající, že při výběru cesty grafem bylo učiněno správné rozhodnutí, poud jsme jao cestu přežívající označili cestu jeliož má vyšší metriu. s s s ( c ) M ( c ) c s místo c s Δ = M (2.2..3) Na Obr. 2.7 je zobrazen mřížový diagram přežívající cesty a všech onurenčních cest. V uzlech teré jsou zaroužovány se vypočte míra spolehlivosti Δ s z hodnot teré jsou uvedeny. V dalším rou je nutné nalézt update sevenci. Ta určuje teré bity by změnily svoji hodnotu, poud bychom jao přežívající cestu zvolili onurenční. Update sevence se určuje v uzlech de se tyto dvě cesty setávají. Pro náš případ pro hodnoty =3, 4, 5, 6, 7, 8 a 9. Máme nejpravděpodobnější cestu grafem u ={000000}, pro =3 je posloupnost onurenční cesty {00}. Porovnáním těchto posloupností zjistíme na terých místech se liší. Tento rozdíl je značen a nejméně významný bit (LSB) je uveden vpravo. Pro náš případ (=3) je update sevence {}. Z této sevence vyplývá že rozdílné hodnoty by byli u bitů u, u 2 i u 3 Stejně postupujeme pro zísání zbylých sevencí. Přehled všech update sevencí je v Tab. 2.7. Stav: -4 0 0 8 8 0-4 4 8 6 0 00 s c -4 0-4 8 4 8 6 2 20 8 4 8 6 2 20 4 4 8 2 2 6 20 24 28 : 0 2 3 4 5 6 7 8 9 přijato: 00 0 00 00 0 00 00 00 00 u : 0 0 0 0 0 0 Δ : - - 2 4 8 8 4 2 8 s Obr. 2.7: Mřížový diagram s přežívající cestou a všemi onurenčními cestami 23
Tab. 2.7: Přehled parametrů zísaných při deódování v deodéru y t, u s Update s Δ min Δ sevence L ( u ) L c y t, L e ( u ) - - - - 0 0-4 4 2 - - 0 0 4-4 3-2 4 4-4 8 4-4 00 4 4-4 8 5 - - 8 0 4-4 -4 0 6 - - 8 000 8-8 -4-4 7 - - 4 00 4-4 -4 0 8 - - 2 00 8-8 -4-4 9 - - 8 00 8-8 -4-4 Pomocí update sevence jsme již schopni vypočítat měý výstup. Pro jeho výpočet platí vztah: s ( ) Δ L u = u min (2.2..4) Hodnotu s min Δ zjistíme následujícím způsobem: z Tab. 2.7 zjistíme pro stejná jao v případě update sevence (3, 4, 5, 6, 7, 8 a 9) minimální hodnotu míry pravděpodobnosti. Princip vysvětlím na přiladu pro =3. Ze sloupce update sevencí v Tab. 2.7 vezmeme pro =3 první bit (MSB), pro =4 druhý bit atd. až dojdeme do =9 ze terého vybereme devátý bit. Zísané bity jsou znázorněny tučně v Tab. 2.7. Výsledná posloupnost je {000}. Bity označují roy teré ovlivňují hodnotu bitu u 3, v našem případě (=3) jsou to tyto další = 7, 8 a 9. Nyní vybereme nejnižší hodnotu míry pravděpodobnosti s Δ pro tyto roy. Jsou to tyto: 2, 4, 2, 8 (označeny tučně v Tab. 2.7 ve sloupci Δ s ). Nejnižší z nich je 4, proto min Δ s 3 = 4. Poračujeme dále pro ostatní. Hodnoty s min Δ jsou uvedeny v Tab. 2.7. Nyní již můžeme dosadit do vzorce (2.2..4). Hodnoty měých výstupů pro jednotlivé deódované bity jsou uvedeny v Tab. 2.7. Měý výstup můžeme rozložit: ( u ) L( u ) + L y L ( u ) L = +, (2.2..5) c t, e de: L ( ) u apriorní hodnota z předchozího deodéru, L c y t, spolehlivost přenosového análu L c vynásobená systematicou hodnotou zísanou z přenosového análu y t,, L u ) výstupní hodnota produovaná deodérem. e ( 24
L Hodnoty L c y t, jsou uvedeny v Tab. 2.7, jen připomenu parametr L c = 4. Apriorní hodnota ( ) u z předchozího deodéru je nulová, jeliož se jedná o první cylus deódování. Konečnou hodnotu produovanou prvním deodérem zísáme vyjádřením L u ) ze vztahu (2.2..5): Hodnoty u ) e ( ( u ) L( u ) Lc y, e ( Le ( u ) = L t (2.2..6) L jsou uvedeny v Tab. 2.7. Apriorní hodnota L ( ) u z předchozího deodéru se odečítá proto, aby se tato hodnota nedostala zpět do deodéru ve terém vznila. Stejně ta hodnoty y t, je nutné odečíst z důvodu společných hodnot pro oba deodéry. Tímto ončí proces deódování v deodéru. Hodnota L u ) je pa předána deodéru 2 e ( jao apriorní informace a proces deódování poračuje stejným způsobem. 2.2.2 Maximum A-Posteriori Algoritmus (MAP) MAP algoritmus byl představen v roce 974 (Bahl, Coce, Jeline a Ravin). Stejně jao SOVA je nejčastěji používaným algoritmem pro deódování Turbo ódů. Kromě odhadované bitové posloupnosti posytuje taé pravděpodobnost správného deódování pro aždý deódovaný bit, tj. měý výstup. Proces deódování začíná s a-posteriori pravděpodobností (APPs) vypočtenou pro aždý datový bit, následuje výběr hodnot datových bitů teré odpovídají maximální a-posteriori pravděpodobnosti pro tyto bity. Po přijetí datové sevence z přenosového análu, proces rozhodování s APPs dovoluje MAP algoritmu zísat nejvíce pravděpodobný informační bit, terý byl přenesen v aždém časovém oamžiu. Princip deódování spočívá v dvojitém průchodu mřížovým grafem, nejprve v dopředném (s) směru a následně zpětném. V aždém uzlu jsou vypočítány stavové pravděpodobnosti α a (s) β. V dalším textu budou uvedena pouze onečná řešení pro výpočet těchto hodnot. Detailní odvození je možné nalézt v literatuře [3]. Deódování začíná průchodem mřížového grafu v dopředném směru. Pro aždý uzel grafu (s) je vypočítána hodnota α podle vzorce: de: α = α δ + α δ, (2.2.2.) ( s) b(0, s) b(0, s) b(, s) b(, s) (s) α stavová pravděpodobnost v rou pro stavu s, 25
α stavová pravděpodobnost v rou - (předchozí ro) pro stav s a b(0, s) b(0, s) b(, s) hodnotu vstupního bitu 0 ( α pro vstupní bit ), δ pravděpodobnost přechodu z rou - do, pro hodnotu ( X s) b(, s) vstupního bitu 0 ( δ pro vstupní bit ). b, stav jdoucí z rou - do pro hodnotu vstupního bitu X =0/. b( X, s) Výpočet pravděpodobnosti přechodu δ lze zjednodušeně zapsat: de: ( x y y y ) δ (2.2.2.2) b( X, s) = π exp +, π apriorní pravděpodobnost (v prvním deódovacím cylu π =0,5),,2 x, y vysílaná dvojice bitů (systematicý a paritní), y,,, 2 y přijatá dvojice bitů (systematicý a paritní). Na Obr. 2.8 jsou zobrazeny jednotlivé proměnné ze vzorce (2.2.2.) v části mřížového diagramu. Druhým roem je průchod mřížového grafu ve zpětném směru (viz. Obr. 2.9). Opět je pro (s) aždý uzel vypočítána tentorát stavová pravděpodobnost β dle vzorce: β ( s) f (0, s) 0, s f (, s) = β δ + β+ (s) β stavová pravděpodobnost v rou pro stavu s, f (0, s) + + δ (2.2.2.3) β stavová pravděpodobnost v rou + (předchozí ro) pro stav s a 0, s f (, s) hodnotu vstupního bitu 0 ( β pro vstupní bit ), δ pravděpodobnost přechodu z rou do +, pro hodnotu ( X s) +, s vstupního bitu 0 ( δ pro vstupní bit ). f, stav jdoucí z rou do + pro hodnotu vstupního bitu X =0/., s Stav: b(0, s) s α b(, s) δ X = (s) α X =0 b(0, s) δ s 2 b(, s) α Kro: - Obr. 2.8: Část mřížového diagramu pro dopředný průchod 26
Stav: s (s) β X = δ, s f (, s) β + X =0 δ 0, s s 2 b(, s) α f (0, s) β + Kro: + Obr. 2.9: Část mřížového diagramu pro zpětný průchod Po výpočtu všech těchto hodnot je již možné určit hodnotu měého hodnotu, terá určuje zda hodnota informačního bitu X byla nebo 0. Pro tento výpočet platí vztah: = log s α δ β ( s), s f (, s) + L ( u ) ( s) 0, s f (0, s) α δ β + s (2.2.2.4) Parametry ve vzorci (2.2.2.4) mají stejný význam jao ve výše uvedených (2.2.2.) a (2.2.2.2). Výraz znamená součet všech stavů teré přísluší danému uzlu pro vstupní bit s X hodnoty 0 resp.. Pro MAP algoritmus platí stejné vztahy pro rozložení měého výstupu jao v případě SOVA algoritmu: ( u ) L( u ) + L y L ( u ) L = + (2.2.2.5) c t, e ( u ) L( u ) Lc y, Le ( u ) = L t (2.2.2.6) Ze vzorce je zísána onečná hodnota deodéru, terá je přivedena na vstup dalšího deodéru jao apriorní informace. MAP algoritmus je velmi náročný na výpočty, proto se pro deódování používají různé modifiace, teré zjednoduší výpočet např. Log-MAP algoritmus nebo Max-Log-MAP. 27
3 Demonstrační program V první části byl teoreticy probrán postup ódování a deódování pomocí Turbo ódů. Dalším úolem v zadání Diplomové práce bylo vytvořit demonstrační program, terý by bylo možné použít výuce. V dalším textu je popsáno z jaých částí se tento program sládá a shrnuty poznaty z výstupů tohoto programu. Program byl vytvořen v programu Matlab GUI R2008a. Pozn.: V této apitole se v něterých případech liší značení proměnných od výše používané onvence. Jedná se o proměnné používané v programu. Označeny budou horním indexem *. 3. Popis programu v Matlab GUI Samotný program se sládá ze tří částí, teré odpovídají reálným podmínám. Jsou to odér, přenosový anál a deodér. Schéma programu včetně jednotlivých volitelných vstupů, teré může uživatel zadat, a výstupů z jednotlivých bloů, je uvedeno na Obr. 3.. 3.. Blo Kodéru Volitelnými vstupy tohoto blou jsou vstupní posloupnost x *, terou je možné zadat přímo, nebo pomocí tlačíta Random vygenerovat náhodnou posloupnost bitů. Z důvodu možného zobrazení zaódované posloupnosti je veliost vstupní posloupnosti omezena na veliost 0 bitů včetně uončujících bitů. Zaódovaná posloupnost pa má 30 bitů, tj. pro jeden vstupní bit 3 bity ódové posloupnosti (informační a 2 paritní). Dalším parametrem je zadání generujícího polynomu ve tvaru g * = [zpětná vazba, dopředná vazba]. Jednotlivé vazby jsou zadány v binární podobě. Na výběr jsou 3 polynomy z menu: g = [ ; 0 ]; g = [ 0 ; ]; g = [ ; 0 0 0 ]; Proládání bylo zvoleno pseudonáhodné. Hodnota pseudonáhodné posloupnosti je uložena v globální proměnné alpha *, terá je sdílena pro celý program. Následuje proces ódování terý je rozdělen do třech funcí. 3... Funce encoderm Vstupními parametry jsou informační bity x *, generující polynom g * a vetor proládání alpha *. Určí se déla ódového ohraničení K * a počet paměťových buně m *. Je volána funce rsc_encode. Výstupem této funce a celého blou Kodéru je vetor zabezpečené posloupnosti oder_out * o veliosti 30 bitů. V tomto vetoru jsou zastoupeny informační bity odéru a paritní byty obou odérů. 28
3...2 Funce rsc_encode Vstupními parametry funce jsou generující polynom g * a vstupní posloupnost informačních bitů x *. Z přijatého blou jsou zísávány jednotlivé bity teré jsou jao parametr předány funci encode_bit, výstupem je posloupnost y * obsahující informační a paritní bity, nejprve z odéru pa 2. 3...3 Funce encode_bit Vstupem jsou jednotlivé bity informační posloupností x *, teré jsou pomocí generujícího polynomu g * ódovány. Funce vrací hodnoty paritních bitů. Systematicé bity jsou zísány z informační posloupnosti ve funci rsc_encode. x g KODÉR oder out PŘENOSOVÝ KANÁL EbN0db chyby trans bits DEKODÉR niter soft out deoder out prol deoder2 out Obr. 3.: Schéma rozdělení výuového programu na dílčí části 3..2 Blo Přenosový anál V tomto blou dochází simulování přenosu zabezpečené posloupnosti oder_out * a napadení této posloupnosti chybou. Volitelnými parametry je hodnota odstupu signálu od šumu EbN0db * v db (decibelech) a po simulovaném přenosu (tlačíto Přenos), možnost zadání dalších chyb do této posloupnosti. Hlavní funcí tohoto blou je, ze zadané hodnoty spočítat spolehlivost přenosového análu L_c * a přičíst přenášené posloupnosti náhodně vygenerovanou posloupnost chyb. Výstupem tohoto blou je posloupnost napadená chybou trans_bits *. 29
3..3 Blo Deodér Hlavní pozornost při tvorbě tohoto programu byla věnována právě tomuto blou. Jediným parametrem terý je možno nastavit je počet cylů, teré mají proběhnout během deódovacího procesu. Prvním roem je demultiplexování přijatých dat (funce demultiplex). Dalšími funcemi jsou sova a trellis. Popis deódování byl podrobně popsán v apitole 2.2. Funce programu probíhá ve stejných rocích (viz. Obr. 3.2.) proto tyto funce nebudu blíže popisovat. Zmíním pouze možnosti, teré lze použít pro zobrazení výsledů a samotné zobrazované výsledy. Na výběr jsou zde dvě tlačíta Deódovat a Kroovat deódování. Volbou tlačíta Deódovat proběhne celý jeden cylus deódovacího procesu. Poud je zadán počet cylů proběhne tento proces právě tolirát. Cylus ončí výstupem deódované posloupnosti z deodéru 2. Pro bližší seznámení s postupem deódování je zde možnost využít tlačíto Kroovat deódování. Touto volbou uživatel prochází jednotlivými roy deódování a v aždém rou deódovacího procesu jsou zobrazovány jednotlivé výsledy, vzorce výpočtů a pohyb ve schématu deódovacího procesu. Jeden taový ro je zobrazen na Obr. 3.3. Jedná se o ono demonstračního programu. Jednotlivé zobrazované parametry jsou: Přenesené informační bity X, paritní bity Y a Y2 Informační bity X a paritní bity Y mapované do {-,+} rozsahu Měý výstup deodéru Výstupní posloupnost deodéru {0,} Výstup z proladače Výstupní posloupnost deodéru 2 Výstup inverzního proladače (deódovaná posloupnost) Dalším výstupem toho programu je graf. Jeho ono je na obrázu Obr. 3.4. V tomto grafu je možné sledovat ja se mění míra spolehlivosti pro jednotlivé deódované bity U a pravděpodobnost že deódovaný bit U =. Bližší popis bude v další části textu. 30
Obr. 3.2: Schéma deódovacího procesu převzato z demonstračního programu Obr. 3.3: Podrobné schéma deódování ono demonstračního programu 3
Obr. 3.4: Ono výuového programu s grafem 32
4 Vyhodnocení výsledů z vytvořeného programu V této části textu budou probrány možnosti vyhodnocení deódovaných výsledů. Budou demonstrovány dva přílady, teré byly zísány z vytvořeného programu. Na těchto příladech bude uvedena možnost rozhodnutí o správnosti výsledu zísaného deódováním. 4. Přílad Ve vytvořeném programu je možné jednoduše ověřit správnost deódovaných dat porovnáním se vstupními informačními bity. V reálném procesu vša tuto možnost nemáme a je nutné určit způsob rozhodnutí, dy jsme spoojeni s výsledem. V prvním příladě máme informační posloupnost vstupující do odéru ve tvaru: {000}. Zaódovaná posloupnost bude mít tvar: {000000000000}. Z přenosového análu je na straně deodéru přijata posloupnost: {0000000000000}. Na podtržených místech vnila chyba, tj. celem 5 chyb. Následuje deódování. V Obr. 4. je zobrazena pravděpodobnost že jednotlivé deódované bity jsou. Tabula 4. zobrazuje hodnoty pravděpodobností, de znamená 00% pravděpodobnost že deódovaný bit U =. Pro výpočet této pravděpodobnosti platí vztah: P u + e (4..) ( U = ) = L( ) Všechny hodnoty byly zísány z demonstračního programu pro 0 deódovacích cylů. Z grafu je zřejmé že hodnoty deódovaných bitů U se již od druhého cylu nemění. To znamená že deódované bity hodnoty mají 00% pravděpodobnost správného deódování a hodnoty bitů 0 se čím dál více blíží nule. Z tohoto pozorování je možné určit první ritérium pro rozhodnutí o správnosti deódování U. Je možné tedy určit počet cylů (např. 5) na jejichž onci bude výsledná posloupnost U brána za 00% správně deódovanou. 33
Tab. 4.: Hodnoty pravděpodobností že deódované bity U = pro cyly až 0 cylus Deódované bity U = =2 =3 =4 =5 =6 =7 =8,7 0-08 0,98,7 0-02,9 0-03 0,92,00,00 0,92 2, 0-2,00 2,0 0-04 8,5 0-07,00,00,00,00 3 3,9 0-5,00,2 0-7 9,3 0-3,00,00,00,00 4,4 0-26,00,3 0-27 4,4 0-25,00,00,00,00 5 4,9 0-35,00 4,7 0-36 4,9 0-35,00,00,00,00 6,7 0-43,00,7 0-44,7 0-43,00,00,00,00 7 6,0 0-52,00 5,8 0-53 6,0 0-52,00,00,00,00 8 2, 0-60,00 2,0 0-6 2, 0-60,00,00,00,00 9 7,4 0-69,00 7,2 0-70 7,4 0-69,00,00,00,00 0 2,5 0-75,00 2,6 0-79 2,7 0-75,00,00,00,00 ( ) P U =,2,0 0,8 0,6 0,4 0,2 0,0 U : 2 3 4 5 6 7 8 Obr. 4.: Graf pravděpodobnosti U = pro 0 deódovacích cylů z příladu 4.2 Přílad 2 Jao informační bity byla použita posloupnost {00} terá po průchodu odérem byla zaódována do posloupnosti: {0000000000000}, v přenosovém anále byla napadena chybou. Výsledná posloupnost přijatá z přenosového análu je: {00000000000000}. V této posloupnosti vznilo 5 chyb (podtržené bity). Obr. 4.2 zobrazuje pravděpodobnost že deódovaný bit U =. Je vidět, že na rozdíl od příladu, se hodnoty deódovaných bitů mění 34
od cylu až 0. Poud bychom v tomto případě použili stejné ritérium jao v příladě a po 5 cylech brali hodnoty deódovaných bitů U jao 00% deódované, výsledná posloupnost by byla U ={00} což neodpovídá posloupnosti vstupující do procesu ódování. Že deódovaná posloupnost není správná lze usuzovat i z hodnot pravděpodobností pro jednotlivé bity (viz. Tab. 4.2 cylus 5). V tomto případě je lepší určit jiné ritérium pro vyhodnocení správnosti deódovaných dat. Tímto ritériem může být napřílad stanovení jisté hranice pravděpodobnosti (resp. dvou hranic), po jejímž přeročení bude deódovací proces uončen. Např. hranice pro výsledný deódovaný bit U = by byla pravděpodobnost a pro hodnotu deódovaného bitu U =0 např. pravděpodobnost < 0-0. Jamile všechny bity deódované posloupnosti U přeročí jednu z těchto pravděpodobností bude proces deódování uončen. V našem případě tuto podmínu splní všechny bity v cylu 2. Z výše uvedených příladů vyplývají výhody a nevýhody požití obou deódovacích ritérií. První ritérium z příladu 2, zadání počtu deódovacích cylů, nám dává jistotu časové náročnosti deódování, ovšem při nedoončeném procesu deódování, vlivem nízého počtu deódovacích cylů, vzniá chyba v deódované posloupnosti. Naproti tomu přílad 2, zadání hranice spolehlivosti, zvyšuje spolehlivost deódování za cenu neznámého počtu deódovacích cylů a z toho plynoucí neznáme doby deódování. P( U = ),2 0,8 0,6 0,4 0,2 0 U : 2 3 4 5 6 7 8 Obr. 4.2: Graf pravděpodobnosti U = pro 5 deódovacích cylů z příladu 2 35
Tab. 4.2: Hodnoty pravděpodobností že deódovaný bit U = pro cyly až 5 cylus Deódované bity U = =2 =3 =4 =5 =6 =7 =8,00,00,6 0-07,00 0,98,00 0,98 0,98 2,00,00 2,2 0-04,00 0,8,00 5,0 0-06 5,0 0-06 3,00,00, 0-02,00 0,88,00 0,88 0,88 4 0,92,00 2,8 0-06 4,4 0-04 8, 0-02,00 0,92 8, 0-02 5,00,00 8,0 0-09,9 0-03 0,8,00,00 0,8 6,00,00 2,3 0-2,00 0,97,00 0,97 0,97 7,00,00 2,4 0-6,00,00,7 0-04,5 0-03,5 0-03 8,00,00 2,8 0-4,00,00,00,00,00 9,00,00,3 0-3,00,00 3,0 0-08,00,00 0,00,00 9, 0-2,00 0,2,0 0-06 0,2 0,2,00,00 6, 0-05,00,00 5,0 0-08,00,00 2,00,00 2,7 0-8,00,00 8,9 0-6,00,00 3,00,00 3,9 0-29,00,00,3 0-26,00,00 4,00,00 5,6 0-40,00,00,9 0-37,00,00 5,00,00 8, 0-5,00,00 2,7 0-48,00,00 5 Výonnost turbo ódů V této části bude popsáno ja jednotlivé parametry turbo ódů ovlivňují jejich výonnost. V literatuře [7] je možné nalézt grafy ve terých je graficy znázorněna závislost BER (spolehlivost přenosového análu) na hodnotě odstup signálu od šumu (E b /N 0 ) při změně jednotlivých parametrů. Těmito parametry jsou např. počet cylů deódovaní, děrování, použitý deódovací algoritmus, déla ódového slova, volba generujících polynomů a proládání. Níže budou popsány výsledy ja jednotlivé parametry ovlivňují výonnost turbo ódů. Čerpáno z literatury [7]. 5. Počet cylů deódování Pro deódovací cylus je výonnost turbo ódů srovnatelná s onvolučními ódy. Pro hodnoty E b N0 >3dB doonce lepší. Pro vyšší hodnoty opaování pa výonnost turbo ódu rychle narůstá. Od 8 cylů je pa nárůst výonnosti malý. Např. pro počty opaování 8 a 6 je nárůst E b N0 pouze oolo 0,dB. Proto je v praxi používáno rozmezí 4 až 2 cylů deódování. 36
5.2 Děrování Princip děrování byl popsán v apitole.3. Poud přenášíme ve výsledné posloupnosti x, y i y 2 je výsledná informační rychlost R=/3. Použitím jednoduchého děrování, teré spočívá ve střídavém vysílání y a 2 y dostáváme hodnotu R=/2. Přenášením obou paritních posloupností dává oproti děrované posloupnosti zis deódovacích cylů tento rozdíl narůstá. E b N 0 0, 6dB. Zvyšování počtu 5.3 Použitý deódovací algoritmus Ja již bylo zmíněno v apitole 2.2.2 lasicý MAP algoritmus se pro svou náročnost na výpočty nepoužívá. Používají se jeho modifiace Log-MAP a Max-Log-MAP [7]. Porovnáme-li jejich výonnost, nejhorších dosahují SOVA a Max-Log-MAP algoritmy. Naopa nejlepších dosahuje MAP algoritmus, terý je jen o něco málo lepší než Log-MAP. 5.4 Déla ódového slova Turbo Kódy dosahují vysoé výonnosti při přenosu extrémně dlouhých zpráv. To znamená že se zvyšuje oreční schopnost s rostoucí délou L ódového slova. Např. pro délu L=65536bitů při E b N 0, db je BER=0-4. Ne pro všechny apliace je vhodná dlouhá déla zprávy. S tím souvisí zmenšování výonnosti turbo ódů při použití rátých zpráv. Např. pro zprávu 69bitů (přenos řeči) je dosaženo BER=0-4 až při hodnotě E b N 2, 7dB 0 =. 5.5 Volba generujících polynomů Volba vhodného polynomu je dalším důležitý parametrem pro zlepšení výonnosti turbo ódů. V literatuře [7] je možné nalézt graf ve terém je vidět že nejvýonnějším ódem je (5,7). 5.6 Proládání Ja již bylo napsáno v apitole.2, je důležité vhodně zvolit způsob proládání. Nejvyššího výonu dosahují turbo ódy při použití náhodného, nebo pseudonáhodného proladače. 37
6 Model odeu v prostředí Matlab Simulin Z výše popsaných teoreticých poznatů byl v prostředí Matlab Simulin R2008a sestaven model zabezpečení přenosu pomocí turbo ódů. Následující text bude věnován popisu jednotlivých částí vysílače a přijímače. 6. Záladní model Záladní bloové schéma je zobrazeno na Obr. 6.. V dalším textu budou zmiňovány nastavované parametry jednotlivých bloů, proto na začáte uvádím jejich přehled a význam. Hodnoty jednotlivých parametrů jsou načítány z externího m-file souboru. NumberOfIteration počet deódovacích cylu NumberOfBits počet bitů v jednom rámci vstupujících do odéru InitialSeed počáteční hodnota proládaní EbNo odstup signál/šum OffSet proměnná určující délu jednoho bitu EbNoVar =.5*0^(- EbNo/0) přepočet E b N 0 na db data data odovana data Zdroj dat Turbo oder AWGN Prenosovy anal Deodovana data deodovana data Turbo Deoder vstup Obr. 6.: Záladní bloové schéma Turbo odeu v Matlab Simulin data Convolutional Encoder Koder Random Interleaver Proladac Convolutional Encoder Koder 2 odovana data Obr. 6.2: Schéma zapojení odéru v Matlab Simulin Jao zdroj dat byl použit Bernoulliho binární generátor, terý generuje náhodnou bitovou posloupnost. Jsou generovány rámce o veliosti NumberOfBits (tj. parametr Sample per frame) s pravděpodobností nuly = 0.5 a vzorovacím časem: Sample time: 38
(NumberOfIteration / NumberOfBits) * OffSet, což odpovídá poměru počtu opaování deódovacího procesu u počtu bitů vstupujících do procesu zabezpečení. Tím je zaručena potřebná doba deódování na straně přijímače. Kodér turbo ódu (viz. Obr. 6.2) je složen ze dvou onvolučních odérů oddělených proladačem. U odérů je nastaven parametr: Trellis structure: poly2trellis(3, [7 5],7). Blo Proladac je nastaven: Numer of elements: NumberOfBits*2, Initial seed: InitialSeed. Výstupem je zaódovaná posloupnost (rámec) o veliosti NumberOfBits*3 (tj. posloupnost systematicých bitů + paritní bity odéru a 2). Na Obr. 6.3 a) je zobrazena posloupnost vystupující z Bernoulliho generátoru s 0 vzory v jednom rámci a délou trvání jednoho vzoru 4/0s, tj. doba trvání jednoho rámce je 4s. Na Obr. 6.3 b) je ódovaná posloupnost vystupující z turbo odéru o veliosti 30 vz./rámec, tj. 0 vzorů systematicé posloupnosti a 20 vzorů paritních posloupností obou odérů. bit [-] 0 veliost rámce a) bit [-] 0 0 2 4 6 8 0 2 4 6 8 b) t [s] Obr. 6.3: Posloupnosti vystupující: a) z bernoulliho generátoru, b) z turbo odéru Nulova posloupnost zeros(numberofbits,) Hard Decision vstup Unipolar to Bipolar Converter Mapovani na +/- L(u) APP Decoder L(c) Deoder L(u) L(c) Random Deinterleaver Inverzni proladac L(u) APP Decoder L(c) Deoder 2 L(u) L(c) Lin 0/ deodovana data z -N Random Interleaver Proladac Iterace Obr. 6.4: Schéma zapojení deodéru v Matlab Simulin 39