REALIZACE DEKODÉR KONVOLU NÍCH KÓD REALISATION OF CONVOLUTIONAL DECODERS

Podobné dokumenty
Ochrana dat před shluky chyb, Berlekamp- Preparatův kód

PÍRUKA A NÁVODY PRO ÚELY: - RUTINNÍ PRÁCE S DATY

Cykly Intermezzo. FOR cyklus

Zbytky zákaznického materiálu

Pravdpodobnost výskytu náhodné veliiny na njakém intervalu urujeme na základ tchto vztah: f(x)

[1] samoopravné kódy: terminologie, princip

Každý datový objekt Pythonu má minimáln ti vlastnosti. Identitu, datový typ a hodnotu.

27. asové, kmitotové a kódové dlení (TDM, FDM, CDM). Funkce a poslání úzkopásmových a širokopásmových sítí.

4. Lineární diferenciální rovnice rovnice 1. ádu

Správa obsahu ízené dokumentace v aplikaci SPM Vema

IMPORT DAT Z TABULEK MICROSOFT EXCEL

Pedání smny. Popis systémového protokolování. Autor: Ing. Jaroslav Halva V Plzni Strana 1/6

Pídavný modul rozvaha lze vyvolat z hlavní nabídky po stisku tlaítka Výkazy / pídavné moduly.

2. PÍKLAD DÍLÍ ÁSTI SOUSTAVY - DÍLÍ ÁST SDÍLENÍ TEPLA

Ing. Jaroslav Halva. UDS Fakturace

POPIS TESTOVACÍHO PROSTEDÍ 1 ZÁLOŽKA PARSER

Prezentaní program PowerPoint

DUM. Databáze - úvod

9. Kombinatorika, pravd podobnost a statistika

VYTVÁENÍ VÝBROVÝCH DOTAZ

4 - Architektura poítae a základní principy jeho innosti

Efektivní hodnota proudu a nap tí

1 Píklady popisu typických konstrukcí

Vysoká škola báská Technická univerzita Ostrava Institut geoinformatiky. Analýza dojíždní z dotazníkového šetení v MSK. Semestrální projekt

Promnné. [citováno z

1. Exponenciální rst Spojitý pípad. Rstový zákon je vyjáden diferenciální rovnicí

2. M ení t ecích ztrát na vodní trati

1 KOMBINATORIKA, KLASICKÁ PRAVDPODOBNOST

Základní pojmy klasického sudoku hlavolamu. Techniky odkrývání bunk. Technika Naked Single. Technika Hidden Single

WWW poštovní klient s úložištm v MySQL databázi

Související ustanovení ObZ: 66, 290, 1116 až 1157, 1158 a násl., 1223 až 1235, 1694, 1868 odst. 1, 2719, 2721, 2746, 2994, 3055, 3062, 3063,

METODY OCEOVÁNÍ PODNIKU DEFINICE PODNIKU. Obchodní zákoník 5:

dq T dq ds = definice entropie T Entropie Pi pohledu na Clausiv integrál pro vratné cykly :

U Úvod do modelování a simulace systémů

B-ISDN, ATM (vlastnosti)

IV. CVIENÍ ZE STATISTIKY

Obsah Úvod...2 Slovníek pojm Popis instalace...3 Nároky na hardware a software...3 Instalace a spouštní...3 Vstupní soubory

ROBOTICKÉ PROSTŘEDKY PRO TĚLESNĚ POSTIŽENÉ

64 - BITOVÉ PROCESORY AMD

1. MODELY A MODELOVÁNÍ. as ke studiu: 30 minut. Cíl: Po prostudování této kapitoly budete umt: Výklad Model

Služba Zvýšená servisní podpora

DOPRAVNÍ INŽENÝRSTVÍ

Tabulkový procesor Excel

Sbírka zahrnuje základní autory, výbr nejdležitjších prací a spektrum názor Dsledn udržována

SIMULACE BIKVADRATICKÉ SEKCE S KVANTIZANÍ ZPTNOU VAZBOU. Lukáš Rukay a Jakub Šastný. Katedra teorie obvod VUT FEL Praha Technická 2 Praha

Efektivní uení. Žádná zpráva dobrá zpráva. (Structured training) Schopnost pracovat nezávisí od IQ. Marc Gold

Žákovský (roníkový projekt)

GYMNÁZIUM CHEB SEMINÁRNÍ PRÁCE

VYUŽITÍ PROGRAMOVÝCH PROSTEDK MATLAB PRO ROZODOVÁNÍ ZA PRÁVNÍ NEJISTOTY

Splajny a metoda nejmenších tverc

Rzné algoritmy mají rznou složitost

Ladící pípravek DisplayKit

Datový typ POLE. Jednorozmrné pole - vektor

OBSAH... 1 TYPY DATOVÝCH SÍTÍ...

Lineární algebra Petriho sítí

Pravidla orientaního bhu

Role a integrace HR systém

Konzistentnost. Pro a proti replikaci. Vztah ke škálovatelnosti (1)

POTRUBNÍ SYSTÉMY PROGRAMU INVENTOR PROFESSIONAL V REALIZACI ISTÍRNY ODPADNÍCH VOD

3 NÁHODNÁ VELIINA. as ke studiu kapitoly: 80 minut. Cíl: Po prostudování tohoto odstavce budete umt

Způsoby realizace této funkce:

1 Co jsou lineární kódy

Základy MIDI komunikace

Informace pro autory píspvk na konferenci ICTM 2007

VYUŽITÍ MODULU EXCELENT PRO MANAŽERSKÉ ANALÝZY V APLIKACÍCH VEMA

PRAVDPODOBNOSTNÍ VÝPOTY METODOU PDPV SE ZÁVISLÝMI NÁHODNÝMI VELIINAMI

Druhá vta termodynamiky a její matematické vyjádení

Hammingovy kódy. dekódování H.kódů. konstrukce. šifrování. Fanova rovina charakteristický vektor. princip generující a prověrková matice

2.1 Pokyny k otev eným úlohám. 2.2 Pokyny k uzav eným úlohám. Testový sešit neotvírejte, po kejte na pokyn!

MATEMATIKA MATEMATIKA

SEKVENČNÍ LOGICKÉ OBVODY

Digitální ortofoto. struná teorie

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ FAKULTA ELEKTROTECHNIKY A KOMUNIKAČNÍCH TECHNOLOGIÍ ÚSTAV TELEKOMUNIKACÍ

ÚSTAV AUTOMATIZACE A MICÍ TECHNIKY Fakulta elektrotechniky a komunikaních technologií Vysoké uení technické v Brn

1.16 Lineární stabilita (pouze Fin 3D)

KUSOVNÍK Zásady vyplování

Prostedky automatického ízení

Úvodní studie (pokraov

EXPORT DAT TABULEK V MÍŽKÁCH HROMADNÉHO PROHLÍŽENÍ

Stanovení požadavk protismykových vlastností vozovek s ohledem na nehodovost

Dodatek dokumentace KEO-Moderní kancelá verze 7.40

Rozvrhování na více procesorech

Statistické ízení finanních tok

Programovací jazyky, syntaxe, sémantika, zpsoby popisu

Dlitel, násobek Znak dlitelnosti Prvoíslo, íslo složené, rozklad na prvoinitele Nejvtší spolený dlitel, nejmenší spolený násobek

KOMBINAČNÍ LOGICKÉ OBVODY

ORACLE MANUFACTURING SCHEDULING ORACLE HLAVNÍ PLÁNOVÁNÍ VÝROBY

Algoritmy I. Číselné soustavy přečíst!!! ALGI 2018/19

10. EŠENÍ INDIVIDUÁLNÍCH PRACOVNPRÁVNÍCH SPOR

1. Signatura datového typu

1 Sémantika a její vztah k syntaxi

III. CVIENÍ ZE STATISTIKY

Finální verze žádosti (LZZ-GP)

Paralelní kompenzace elektrického vedení (Distribuce Elektrické Energie - BDEE)

Bezpenost dtí v okolí škol z pohledu bezpenostního auditora

Podpora výroby energie v zaízeních na energetické využití odpad

Podílový fond PLUS. komplexní zabezpeení na penzi

Vysoká škola ekonomická v Praze. Fakulta managementu v Jindichov Hradci. Bakaláská práce. Iva Klípová - 1 -

DIPLOMOVÝ PROJEKT ELEKTRONICKÁ ZA ÍZENÍ PRO OSOBNÍ AUTOMOBILY

Transkript:

VYSOKÉ UENÍ TECHNICKÉ V BRN BRNO UNIVERSITY OF TECHNOLOGY FAKULTA ELEKTROTECHNIKY A KOMUNIKANÍCH TECHNOLOGIÍ ÚSTAV TELEKOMUNIKACÍ FACULTY OF ELECTRICAL ENGINEERING AND COMMUNICATION DEPARTMENT OF TELECOMMUNICATIONS REALIZACE DEKODÉR KONVOLUNÍCH KÓD REALISATION OF CONVOLUTIONAL DECODERS BAKALÁSKÁ PRÁCE BACHELOR S THESIS AUTOR PRÁCE AUTHOR VEDOUCÍ PRÁCE SUPERVISOR JIÍ ŠICNER doc. Ing. KAREL NMEC, CSc. BRNO 29

ABSTRAKT: Tato práce se zabývá problematikou konvoluních kód. Práce je rozdlena do kolika ástí. Úvodní ást obsahuje základní popis konvoluních kód, jejich vlastnosti a rozdlení. Jsou zde stru popsány nkteré metody dekódování konvoluních kód. Další ást obsahuje návrh konkrétního kódu dle zadání a realizaci dekodéru pro tento kód. Celý návrh je zde potom oven pomocí programu Matlab Simulink. Poslední ást zahrnuje návrh plošného spoje pro kodér a dekodér. ABSTRACT: This work deals with convolution codes. The work is divided into several parts. The introductory part contains basic description of convolution codes, their properties and distribution. There are briefly outlined some methods of decoding convolution codes. Another part of the proposal includes a specific code according to the award and implementation of decoder for this code. Then the full proposal is verified here by using Matlab Simulink. The last part includes a proposal for printed circuit encoder and decoder. KLÍOVÁ SLOVA: Majoritní dekódování, kodér, dekodér, samoortogonální kód, korekní schopnost. KEYWORDS: Majority - Logic Decoding, encoder, decoder, self-orthogonal code, error-correcting capability.

Bibliografická citace práce ŠICNER, J. Realizace dekodér konvoluních kód. Brno: Vysoké uení technické v Brn, Fakulta elektrotechniky a komunikaních technologií, 29. 57 s. Vedoucí bakaláské práce doc. Ing. Karel Nmec, CSc.

Prohlášení autora o pvodnosti práce Prohlašuji, že svou bakaláskou práci na téma Realizace dekodér konvoluních kód jsem vypracoval samostatn pod vedením vedoucího diplomové práce s použitím odborné literatury a dalších informaních zdroj, které jsou všechny uvedeny v seznamu literatury na konci práce. Jako autor uvedené bakaláské práce dále prohlašuji, že v souvislosti s vytvoením této diplomové práce jsem neporušil autorská práva tetích osob, zejména jsem nezasáhl nedovoleným zpsobem do cizích autorských práv osobnostních a jsem si pln vdom následk porušení ustanovení 11 a následujících autorského zákona. 121/2 Sb., vetn možných trestnprávních dsledk vyplývajících z ustanovení 152 trestního zákona. 14/1961 Sb. V Brn dne...... podpis autora

OBSAH Úvod 1 1. Konvoluní kódy, základní popis 11 1.1 Zpsoby zadávání konvoluních kód... 12 1.1.1 Zadávání vytváecími mnoholeny... 13 1.1.2 Zadávání vytváecí maticí. 13 1.2 Základní vlastnosti konvoluních kód. 15 2. Druhy konvoluních kód 16 2.1 Kódy pro zabezpeení proti shlukovým chybám... 16 2.1.1 Hagelbargerv kód 16 2.1.2 Iwadariho Maseryv kód...17 2.1.3 Berlekamp Preparatv kód. 19 2.2 Kódy pro zabezpeení proti nezávislým chybám... 19 2.2.1 Samoortogonální kódy.. 2 2.2.2 Ortogonalizovatelné kódy. 21 2.2.3 Rovnomrné kódy. 24 2.2.4 Wyner Ashovy kódy.. 25 3. Metody dekódování 26 3.1 Viterbiho dekódování. 26 3.2 Sekvenní dekódování... 27 3.2.1 Stack algoritmus 27 3.2.2 Fano algoritmus. 29 3.3 Majoritní dekódování. 3 3.4 Srovnání jednotlivých metod dekódování.. 32 3.4.1 Dekódovací rychlost.. 32 3.4.2 Dekódovací zpoždní 32 3.4.3 Složitost implementace. 32

4. Volba kódu a návrh kodéru 33 5. Návrh dekodéru 37 5.1 Kodér pijímae.. 37 5.2 Generátor syndromu... 38 5.3 Pevodník [S] [E]. 38 5.4 Korekce.. 46 6. Ovení fuknosti 48 7. Návrh plošného spoje pro kodér a dekodér 52 7.1 Kodér.. 52 7.2 Dekodér.. 53 8. Závr 55 Literatura 56

SEZNAM OBRÁZK 1.1 Schéma kodéru stromového kódu s paraleln uspoádanou vstupní pamtí... 11 3.1 Mížový diagram pro (n, k, m) konvoluní kód. 26 3.2 Vývojový diagram pro Stack algoritmus 28 3.3 Vývojový diagram pro Fano algoritmus. 29 4.1 Zapojení kodéru samoortogonálního kódu (7 ; 35) odvozené ze zadávacích mnoholen. 34 4.2 Zapojení kodéru samoortogonálního kódu (7 ; 35) odvozené z blokové matice.. 36 5.1 Obecné blokové schéma dekodéru pro konvoluní kód s R = 1/2. 37 5.2 Obecná realizace generátoru syndromu pro systematický kód s R = 1/2... 38 5.3 Kontrolní trojúhelník (rovnice 5.4). 39 5.4 Vznik vektoru syndromu [S] podle lit. [9] (rovnice 5.5) 4 5.5 Zapojení osmivstupého majoritního lenu v programu Matlab Simulink.. 45 5.6 Zapojení dekodéru konvoluního kódu (7 ; 35) 47 6.1 Zapojení kodéru konvoluního kódu (7 ; 35) v programu Matlab Simulink 48 6.2 Zapojení dekodéru konvoluního kódu (7 ; 35) v programu Matlab Simulink 49 6.3 Blokové zapojení kodeku konvoluního kódu (7 ; 35) v programu Matlab Simulink.. 5 6.4 Grafy jednotlivých posloupností bit z osciloskopu... 51 7.1 Schéma zapojení kodéru konvoluního kódu (7 ; 35) v programu Eagle. 52 7.2 Návrh plošného spoje pro kodér konvoluního kódu (7 ; 35).. 53 7.3 Schéma zapojení dekodéru konvoluního kódu (7 ; 35) v programu Eagle... 53 7.4 Návrh plošného spoje pro dekodér konvoluního kódu (7 ; 35). 54

SEZNAM TABULEK 2.1 Samoortogonální kódy. 2 2.2 Ortogonalizovatelné kódy 23 5.1 Pravdivostní tabulka pro osmivstupý majoritní len... 43

Úvod Tato bakaláská práce se zabývá problematikou konvoluních kód a jejich dekódováním. Cílem práce, jak ho definuje zadání, je návrh vhodného kódu, který bude zabezpeovat penos proti nezávislým chybám a zvolit pro nj metodu dekodóvání. Práce je rozdlena na dv základní ásti. První ást je teoretická a seznamuje tenáe o základních vlastnostech konvoluních kód. Z dvodu volby vhodného kódu je zde vytvoen struný seznam nejbžnjších konvoluních kód. U jednotlivých kód jsou stru popsány jejich korekní schopnosti a zpsoby jejich zadávání. Dále je zde uveden struný popis základních dekódovacích metod. Druhá ást je praktická. Je v ní zvolen kód splující zadání a ukázka výpo jeho parametr potebných k realizaci a návrhu kodeku. Dále ást obsahuje postup pi navrhování dekodéru pro tento kód. Následuje uvedení celého kodeku a ovení jeho funknosti. 1

1. Konvoluní kódy, základní popis i penášení dat v komunikaních systémech díky poteb neustále zvyšovat enosové rychlosti se stále astji setkáváme se vznikem chyb, které mají tendenci se shlukovat. Jedním ze zpsob ochrany jsou konvoluní kódy, ty jsou schopny penos dostate zabezpeit. Konvoluní kódy patí mezi stromové kódy. Svj název získali odvozením od latinského slova konvolut - propletenec. Schéma na obrázku 1.1 znázoruje, jak vzniká zabezpeená posloupnost z nezabezpeené. Obr. 1.1: Schéma kodéru stromového kódu s paraleln uspoádanou vstupní pamtí. k oznauje poet dílích vstupních tok vzniklých rozdlením sériového nezabezpeeného toku signálových prvk. Zabezpeení zajišují kódovací obvody v bloku, který je nazvaný Realizace zabezpeení. Z nj vystupuje n dílích výstupních tok a ty se pevedou na výstupní sériový tok zabezpeených signálových prvk. Pi zadání kódu nás zajímá vztah mezi vstupními a výstupními dílími bitovými toky kodéru. V podstat máme dv možnosti zadání konvoluního kódu, jedná se o zadání kódu vytváecí maticí a zadání souborem vytváecích mnoholen, ob možnosti budou stru popsány o nco níže. Základním parametrem konvoluního kódu je informaní rychlost R. [7] k n R. (1.1) 11

Dalším, nemén dležitým parametrem je kódové ohraniení n A. Jak je uvedeno v [7] vyjadujeme ji vztahem n ( m 1). (1.2) Tento parametr nám udává v potech bit, jak dlouho se podílí bit z nezabezpeené posloupnosti na zabezpeovacím procesu. Tím také uruje poet pamových bunk pamti zabezpeovacího procesu. Poet úsek nezabezpeené bitové posloupnosti, které jsou použity pro vytvoení zabezpeeného toku bit, je však o jeden úsek k tší, než je kódové ohraniení, protože každého zabezpeovacím kroku je úasten práv jeden nový neuložený úsek k. Proto se setkáme s parametrem stromového kódu, který tuto skutenost vyjaduje. Nazývá se Nezabezpeený blok k stromového kódu. Jeho velikost je urena rovnicí podle [7]: k ( m 1) k. (1.3) Na výstupní stran tomuto parametru odpovídá parametr Zabezpeený blok n stromového kódu. Jeho velikost je urena rovnicí jak je uvedeno v [7]: n ( m 1) n. (1.4) 1.1 Zpsoby zadávání konvoluních kód Jak již bylo uvedeno, konvoluní kód lze zadat dvma zpsoby a to zadáním pomocí vytváecích mnoholen a pomocí vytváecí matice. Pojme si nyní oba zpsoby popsat. 1.1.1 Zadávání konvoluních kód vytváecími mnoholeny Nejprve je nutno vysvtlit význam tzv. operátoru zpoždní D. Ten se používá pi vyjádení prchodu signálového prvku posuvným registrem kodéru konvoluního kódu. Budeme vycházet z pedpokladu, že všechny signálové prvky mají stejnou asovou délku D. Bude-li první prvek njakého signálového toku oznaen p, potom asový výskyt následujícího prvku vyjádíme p 1.D, dalšího p 2 D 1, atd.... až k obecné asové 12

poloze p X D X... atd. Obecný j-tý vstupní dílí tok pak mžeme vyjádit zápisem podle [7] ( j) ( j) ( j) ( j ) 2 X p ( D) p p1 D p2 D... px D. (1.5) Podobn pomocí D vyjadujeme dílí výstupní toky. Nap. i-tý dílí výstupní tok žeme zapsat: F ( i) ( D) D ( i) ( i) ( i) 2 f f1 D f2. (1.6) Vztah mezi vstupním a výstupním celkovým tokem vyjádíme rovnicí: F ( i) k j ( j) ( D) Gi ( D) p ( D). (1.7) j 1 ( ) Výraz G j ( i ) ( D) budeme nazývat vytváecí mnoholen konvoluního kódu a platí pro nj vztah uvedený v [7]: G m ( m) ( j) u ( i) ( D) g( i) u D. (1.8) u 1 Konvoluní kód je pak uren souborem vytváecích mnoholen. Ze vztahu (1.7) potom vyplývá, že na vytvoení jedné dílí posloupnosti F (i) se mže podílet všech k vstupních dílích posloupností. Nech m je nejvyšší stupe mezi všemi stupni vytváecích mnoholen, které urují konvoluní kód. Jednotlivý prvek vstupní posloupnosti mže ovlivovat výstupní posloupnost po dobu maximáln m + 1 asových jednotek D. Za tuto dobu vystoupí z kodéru n prvk. Veliinu již známe jako zabezpeený blok stromového kódu n viz ( 1.4 ). 1.1.2 Zadávání konvoluních kód vytváecí maticí Princip odvození toku zabezpeených prvk od toku nezabezpeených prvk, tak jak je znám u blokových systematických kód, je použit také u konvoluních kód. 13

Dílí vstupní toky je možno zapsat jako ádky matice [P], dílí výstupní toky jako ádky matice [F]. Vztah mezi tmito maticemi mžeme vyjádit maticovou rovnicí: [F] = [P] x [G], (1.9) kde [G] je vytváecí matice konvoluního kódu, viz vztah ( 1.1 ). Matici [G] nazýváme polonekonenou proto, že je z jedné strany ohraniená zaátkem kódování, tj. asem t = a na druhé stran je ohraniena délkou zprávy, která mže být teoreticky nekonená. [G] se sestavuje z tzv. dílích vytváecích matic [G t ]. Matice [G t ] má k ádk a n sloupc. Umožuje pepoítat sloupec vstupní matice [P] pro asový okamžik t na sloupec výstupní matice [F] pro stejný asový okamžik. Ze vztahu z [7] ( 1.1 ) je ejmé, že k popisu kódu pomocí [G] nám staí znát sestavu matic [G t ] pro t = 1, 2,...m. G, G1, G 2,..., G m,...... G, G 1, G 2,..., G m,... G, G, G, G,.................................... 1 2 m.................. G (1.1) G,,,...,,............ G1 G2 Gm Dílí matice lze odvodit ze znalosti soustavy vytváecích mnoholen G (i), jak je znázornno zápisem G t podle [7] v ( 1.11 ). G t g g g ( k) t D ; g t D ; g t D ; g ( k) t D ; t D ; t D ;...,...,..., g g g ( n) ( n) ( k) ( n) t D t D t D (1.11) Prvky vytváecích mnoholen urují jednikové prvky dílích matic [G t ]. Ostatní prvky tchto matic jsou nulové, protože jsou nulové i ve vytváecích 14

mnoholenech G (j) (k) nebo proto, že pro zadávaný kód píslušné vytváecí mnoholeny neexistují. 1.2 Základní vlastnosti konvoluních kód U konvoluních kód mžeme najít nkolik dležitých vlastností. Za základní vlastnosti konvoluních kód podle [7] mžeme považovat: Lineárnost - Pro popis kód a realizace protichybového zabezpeovacího procesu se používají prostedky lineární algebry, tj. pro definování kódu je možno použít vytváecí a kontrolní matici. Konená délka kódového ohraniení - Pro praktickou realizaci konvoluních kód má konenou velikost. Význam této skutenosti pro praktické pípady není eba dále rozebírat. asová stálost Pokud mžeme rozdlit dv libovolné rzné nezabezpeené bitové posloupnosti do uritého potu ástí k a jim odpovídající zabezpeené výstupní bitové posloupnosti jsou rozdlitelné na stejný poet dílích ástí n, pak tento konvoluní kód mžeme oznait za asov stálý. 15

2. Druhy konvoluních kód Konvoluní kódy lze rozdlit na dv základní skupiny, na kódy zabezpeující proti shlukujícím se chybám a na kódy zabezpeující proti nezávislým chybám. V této kapitole budou popsány nkteré typy kód z tchto dvou skupin. 2.1 Kódy pro zabezpeení proti shlukujícím se chybám V této ásti si pedstavíme nkolik typ kód. Nejprve Hagelbargerovy kódy, které byly pedstaveny jako první konvoluní kódy pro opravu shlukových chyb. Následovány efektivnjšími kódy od Iwadariho a Maseryho, ty mly stejnou korekní schopnost, ovšem kratší ochranné intervaly než Hagelbargerovi kódy. Pozdji byly pro opravu postupných shlukových chyb objeveny optimální kódy Berlekampem a Preparatem. 2.1.1 Hagelbargerv kód (n ; n -1) Tento kód lze zadat pomocí blokové matice B D, která je v dekadickém tvaru a má tvar tvercové matice o velikosti n n. Matice je uspoádána tak, že má v každém ádku v míst odpovídající prvku na úhlopce dekadické íslo, které je liché. ádky jsou íslovány odspodu. V prvním ádku je trojka, v (n -1) ádku je (2n -1), poslední ádek pak obsahuje jedniku. Schematicky je podle [9] matice zapsána takto: B D 3 5 7 9 11 13 1 (2.1) i použití binárních kód se matice B D musí pevést na blokovou matici v binárním tvaru B. Tato matice má opt n sloupc, ale poet ádk se zmní. Ten je uren souinem n a potem míst potebných pro binární zapsání nejvtšího dekadického ísla z B D. Poet míst dekadického ísla n, které jsou poteba pro jeho 16

zapsání binárním íslem, oznaujeme L(n), což bude nejmenší celé íslo vyhovující nerovnosti podle [9]: n L 2 1 log n. (2.2) Binární ísla vyjádená na menší poet míst mají v matici B na nepoužitých místech nuly. První íslo odspodu má vždy pouze dva ádky, protože nuly v místech nepoužitých binárních míst by zpsobovaly v realizaci kodéru pouze neužitené asové zpoždní. Pro poet ádk dvojkové matice jde tedy odvodit následující vztah: ( n 1) L( n) 2. (2.3) Tento Hagelbargerv kód má schopnost opravit shluky chyb o délce b bit, kde pro b platí vztah podle [9]: b n. (2.4) Dále platí podmínka, že mezi tmito shluky chyb musí být v bitové posloupnosti bezchybný úsek o urité délce. Jak uvádí [9] tento úsek definuje parametr ochranný interval A vyjádený vztahem: 2 A n L( n) 1. (2.5) 2.1.2 Iwadari-Maseryv kód (mn ; mk ) Iwadariho kód je systematický konvoluní kód. Tento kód je také popsán vytváecí blokovou maticí B s n sloupci. Sloupce jsou znaeny zleva doprava poínaje a i, ádky jsou íslovány odspodu. Na nejvyšším ádku úpln vpravo je umístna jednika, která pedstavuje zabezpeovací prvek. Následují nulové ádky až do potu n. V dalším ádku se umístná jednika posune o jednu pozici doleva oproti pvodní pozici. Následující ádek má jedniku na stejné pozici. Tímto zpsobem je zajištna oprava jednoho bitu. Pro opravu dalších je poteba se znovu posunout o jednu pozici 17

18 doleva a poet vložených nulových ádk mezi dvma jednikami ve stejném sloupci vždy vzrstá o jeden ádek až do celkové velikosti n jak je uvedeno názorn v rovnici 2.6 podle [9].... 1............ 1... 1... 1...... 1... 1... 1............... 1... B (2.6) Pro jednotlivé parametry kódu podle [9] platí: ; k m n m B, (2.7) kde m a k jsou ureny vztahy: 1. 1), (2 2 1) ( n k n n n m (2.8,2.9) Korekní schopnost kódu je stejná jako u Hagelbargerova kódu: n b. (2.1) Ochranný interval A je potom dán vztahem: 1 m n A. (2.11)

2.1.3 Berlekamp-Preparatv kód (n ; n - 1; m) Je to systematický konvoluní kód, který je optimální pro korekci postupných shlukových chyb. Kód byl vytvoen nezávisle na sob Berlekampem a Preparatem. Je vytvoen tak, že spluje Gallageerovy meze. To znamená, že jakýkoliv konvoluní kód o informaní rychlosti R, který spluje podle [1] A b 1 1 R R, (2.12) má schopnost opravit všechny shluky chyb o délce b nebo kratší vzhledem k ochrannému intervalu délky A. Jak uvádí [1] tento kód lze opt popsat vytváecí maticí B, která se skládá ze svou podmatic a její rozmry budou n 2n. Ob podmatice budou mít rozmr n n. V první podmatici jsou jedniky na vedlejší diagonále a druhá podmatice má jedniky na hlavní diagonálou. Zbylé prvky jsou nuly. 1 1 1 1 1 1 1 B (2.13) 1 1 1 Velikost ochranného intervalu délky A dostaneme ze vztahu 2.12 pi podmínce R=(n -1)/ n A m m m b. (2.14) 2.2 Kódy pro zabezpeení proti nezávislým chybám V této kapitole budou popsány nkteré kódy se schopností opravovat nezávislé chyby, více se zde zamuji na popis kód, které jsou vhodné k aplikaci metody majoritního dekódování, to z dvodu, že tuto metodu použiji pro ešení mého úkolu. Pro podrobnjší studium jednotlivých kód bych tenái doporuil napíklad literaturu [6] 19

2.2.1 Samoortogonální kódy Samoortogonální kódy byly poprvé uvedeny Masseyem. Efektivnjší konstrukce, založená na pojmu rozdíl soustav, byla uvedena Robinsonem a Bernsteinem. Podle literatury [6] pro konstrukci samoortogonálního kódu je základem následující definice. Kód je konstruován tak, aby pro nj byla zaruena existence systému kontrolních rovnic A, kde je poet tchto rovnic, kontrolujících informaní chybový prvek e ( i), psobící na i-tý informaní prvek v ase t, je ortogonální vzhledem k tomuto prvku. Podle této myšlenky Robinson a Bernstein vyvinuli postup pro konstrukci (n, n-1, k) samoortogonálních konvoluních kód. Pro tyto kódy platí J i = J = d min 1, i = 1, 2, 3,, n-1, a korekní chopnost je dána vztahem J / 2 t d min 1 t ml / 2. Pro lepší pedstavu je v tabulce 2.1 uveden seznam samoortogonálních kód pro ( ) n=2,3,4,5. Vytváecí mnoholen g n i ( D) je v tabulce zadán jako soubor ísel {l 1, l 2, l 3,,l j }, které urují pozici nenulových len. Tab. 2.1: Samoortogonální kódy podle [6] R=1/2 t ML m g 1 1 1 {,1} 2 6 {, 2, 5, 6} 3 17 {, 2, 7, 13, 16, 17} 4 35 {, 7, 1, 16, 18, 3, 31, 35} 5 55 {, 2, 14, 21, 29, 32, 45, 49, 54, 55} 6 85 {, 2, 6, 24, 29, 4, 43, 55, 68, 75, 76, 85} 7 127 {, 5, 28, 38, 41, 49, 5, 68, 75, 92, 17, 121, 123, 127} 8 179 {, 6, 19, 4, 58, 67, 78, 83, 19, 132, 133, 162, 165, 169, 177, 179} 9 216 {, 2, 1, 22, 53, 56, 82, 83, 89, 98, 13, 148, 153, 167, 188, 192, 25, 216} 1 283 {, 24, 3, 43, 55, 71, 75, 89, 14, 125, 127, 162, 167, 189, 26, 215, 272, 275, 282, 283} 11 358 {, 3, 16, 45, 5, 51, 65, 14, 125, 142, 182, 26, 21, 218, 228, 237, 289, 3, 326, 333, 356, 358} 12 425 {, 22, 41, 57, 72, 93, 99, 139, 147, 153, 197, 2, 214, 253, 263, 265, 276, 283, 38, 367, 368, 372, 396, 425} 2

Tab. 2.1: (pokraování) R=2/3 (3) g 1 t ML m 1 2 {, 1} {, 2} 2 13 {, 8, 9, 12} {, 6, 11, 13} 3 4 {, 2, 6, 24, 29, 4} {, 3, 15, 28, 35, 36} 4 86 {, 1, 27, 3, 61, 73, 81, 83} {, 18, 23, 37, 58, 62, 75, 86} 5 13 {, 1, 6, 25, 32, 72, 1, 18, 12, 13} 6 195 7 288 {, 17, 46, 5, 52, 66, 88, 125, 15, 165, 168, 195} {, 2, 7, 42, 45, 117, 163, 185, 195, 216, 229, 246, 255, 279} (3) g 2 {, 23, 39, 57, 6, 74, 11, 13, 112, 116} {, 26, 34, 47, 57, 58, 112, 121, 14, 181, 188, 193} {, 8, 12, 27, 28, 64, 113, 131, 154, 16, 28, 219, 233, 288} R=3/4 (4) g 1 (4) g 2 t ML m 1 3 {, 1} {, 2} {, 3} 2 19 {, 3, 15, 19} {, 8, 17, 18} {, 6, 11, 13} 3 67 {, 5, 15, 34, 35, 42} {, 31, 33, 44, 47, 56} {, 17, 21, 43, 49, 67} 4 129 5 22 {, 9, 33, 37, 38, 97, 122, 129} {, 7, 27, 76, 113, 137, 155, 156, 17, 22} {, 11, 13, 23, 62, 76, 79, 123} {, 8, 38, 48, 59, 82, 111, 146, 15, 152} (4) g 3 {, 19, 35, 5, 71, 77, 117, 125} {, 12, 25, 26, 76, 81, 98, 17, 143, 197} R=4/5 (5) g 1 (5) g 2 (5) (5) g 3 g 4 t ML m 1 4 {, 1} {, 2} {, 3} {, 4} 2 26 {, 16, 2, 21} {, 2, 1, 25} {, 14, 17, 26} {, 11, 18, 24} 3 78 4 178 {, 5, 26, 51, 55, 69} {, 6, 7, 41, 6, 72} {, 19, 59, 68, 85, 88, 13, 141} {, 39, 87, 117, 138, 148, 154, 162} {, 8, 11, 24, 44, 78} {, 2, 13, 25, 96, 118, 168, 172} {, 1, 32, 47, 49, 77} {, 7, 65, 7, 97, 98, 144, 178} 2.2.2 Ortogonalizovatelné systematické konvoluní kódy Kompletn ortogonalizovatelné konvoluní kódy mohou být také konstruovány použitím metody experimentální metodou. U tchto kód je poteba které kontrolní rovnice sestavit vhodnou kombinací dvou syndromových vektor, aby bylo splnno pravidlo ortogoonalizace. Seznam kompletn ortogonalizovatelných kód byl vytvoen Masseyem a je uveden v tabulce 2.2. Zápis použitý pro popsaní pravidel pro sestavení soustavy kontrolních rovnic vysvtlím na ukázkovém píkladu. 21

Vezmme kód (3, 1, 7) uvedený v tabulce 2.2, jehož vytváecí mnoholeny (3) g ( D) a g ( D) jsou definovány množinou ísel {, 1, 7} a {, 2, 3, 4, 6} tj. g ( D) D 7 1 D a g (3) ( D) D 2 3 4 6 1 D D D. Pravidla pro sestavení kontrolních rovnic jsou dána sadou ísel {( 2 ), ( 3 ), (1 2 ), (2 3 ), (1 3 3 3 ), (2 2 4 3 ), (7 2 ), (3 2 5 2 6 2 6 3 )}, kde se íslem k i rozumí, že (i) s k uruje rovnici, která bude ortogonální k e a ísla (k i l j ) udávají, že bude rovnice dána soutem kontrolních rovnic pro tento kód bude vypadat: s s. Z toho vyplývá, že J=8 ( i) ( j) k l A s A A A A 1 2 A s 3 4 5 6 7 A s 8 s s s s A s (3) 1 (3) 2 (3) 1 2 7 3 s s s (3) 3 (3) 4 5 s 6 s (3) 6 Tento kód má d min = 9, je kompletn ortogonalizovatelný a má korekní schopnost t J / 2 ( dmin 1) / 2 4 t ML. Všimnme si, že (n, k, m) ortogonalizovatelné kódy umí dosáhnout dané korekní schopnosti t pi menší pamti m než je tomu u samoortogonálních kód. To je zpsobeno zvýšením flexibility, což je dosaženo pi použití sou syndrom pi tvorb kontrolních matic pro ortogonalizovatelné kódy. Hlavní nevýhodou tchto kód je, že neumožnují automatickou resynchronizaci, která by omezovala tzv. rozmnožení chyby i použití dekodéru se zptnou vazbou. Dalším negativem je, že pokud se použije metoda prahového dekódování, je korekní schopnost kódu snížena. 22

Tab. 2.2: Ortogonalizovatelné kódy podle [6] R=1/2 t ML m g 1 ortogonalizaní pravidla 2 5 {, 3, 4, 5} ( 2 )(3 2 )(4 2 )(1 2 5 2 ) 3 11 {, 6, 7, 9, 1, 11} ( 2 )(6 2 )(7 2 )(9 2 )(1 2 3 2 1 2 )(4 2 8 2 11 2 ) 4 21 {, 11, 13, 16, 17, 19, 2, 21} ( 2 )(11 2 )(13 2 )(16 2 )(17 2 )(2 2 3 2 6 2 19 2 )(4 2 14 2 2 2 )(1 2 5 2 8 2 15 2 21 2 ) 5 35 {, 18, 19, 27, 28, 29, 3, 32, 33, 35} ( 2 )(18 2 )(19 2 )(27 2 )(1 2 9 2 28 2 )(1 2 2 2 29 2 )(11 2 3 2 31 2 )(13 2 21 2 23 2 32 2 ) (14 2 33 2 34 2 ) (2 2 3 2 16 2 24 2 26 2 35 2 ) 6 51 {, 26, 27, 39, 4, 41, 42, 44, 45, 47, 48, 51} ( 2 )(26 2 )(27 2 )(39 2 )(1 2 13 2 4 2 )(14 2 28 2 41 2 )(15 2 42 2 43 2 ) (17 2 29 2 31 2 44 2 ) (18 2 45 2 46 2 )(2 2 3 2 2 2 32 2 34 2 47 2 )(21 2 35 2 48 2 49 2 5 2 ) (24 2 3 2 33 2 36 2 38 2 51 2 ) R=1/3 t ML m g 1 g (3) 1 ortogonalizaní pravidla 3 4 {, 1} {, 2, 3, 4} ( 2 )( 3 )(1 2 )(2 3 )(1 3 3 3 )(2 2 4 3 ) 4 7 {, 1, 7} {, 2, 3, 4, 6} ( 2 )( 3 )(1 2 )(2 3 )(1 3 3 3 )(2 2 4 3 )(7 2 )(3 2 5 2 6 2 6 3 ) 5 1 {, 1, 9} {, 1, 2, 3, 5, 8, 9} ( 2 )( 3 )(1 2 )(2 2 2 3 )(9 2 )(3 3 4 3 )(3 2 5 2 5 3 )(1 3 4 2 6 2 6 3 ) (8 2 8 3 )(7 3 9 3 1 3 ) 6 17 7 22 8 35 {, 4, 5, 6, 7, 9, 12, 13, 16} {, 4, 5, 6, 7, 9, 12, 13, 16, 19, 2, 21} {, 4, 5, 6, 7, 9, 12, 16, 17, 3, 31} {, 1, 14, 15, 16} {, 1, 2, 22} {, 1, 22, 25, 35} ( 2 )( 3 )(1 2 1 3 )(4 2 )(5 2 )(2 3 6 2 )(14 3 )(7 2 1 2 11 2 11 3 ) (3 3 5 3 9 2 )(6 3 8 3 12 2 )(3 3 16 3 17 3 )(4 3 1 3 12 3 16 2 ) ( 2 )( 3 )(1 2 1 3 )(4 2 )(5 2 )(2 3 6 2 )(7 2 1 2 11 2 11 3 )(3 3 5 3 9 2 ) (19 3 2 3 )(22 3 )(6 3 8 3 12 2 )(4 3 1 3 12 3 16 2 )(3 2 7 3 13 3 15 3 19 2 ) (9 3 13 2 14 3 18 2 2 2 21 2 21 3 ) ( 2 )( 3 )(1 2 1 3 )(4 2 )(5 2 )(2 3 6 2 )(22 3 )(7 2 1 2 11 2 11 3 )(3 2 25 3 ) (3 3 5 3 9 2 )(6 3 8 3 12 2 )(7 3 14 2 17 2 18 2 18 3 )(9 3 16 2 19 2 2 2 2 3 ) (14 3 15 3 35 3 )(12 3 21 3 28 2 31 2 32 2 )(1 3 13 3 19 3 26 3 29 3 3 2 ) 23

Tab. 2.2: (pokraování) R=1/5 t ML m g 1 (3) g 1 (4) g 1 g (5) 1 ortogonalizaní pravidla 3 1 {, 1} {, 1} {} {} ( 2 )( 3 )( 4 )( 5 )(1 2 1 4 )(1 3 1 5 ) 4 2 {, 1, 2} {, 1} {, 2} {} ( 2 )( 3 )( 4 )( 5 )(1 2 1 4 )(1 3 1 5 )(2 2 2 3 )(2 4 2 5 ) 5 3 {, 1, 2, 3} {, 1} {, 2} {, 3} ( 2 )( 3 )( 4 )( 5 )(1 2 1 4 )(1 3 1 5 )(2 2 2 3 )(2 4 2 5 )(3 5 )(3 2 3 3 ) 6 5 {, 1, 2, {, 3, ( 2 )( 3 )( 4 )( 5 )(1 2 1 4 )(1 3 1 5 )(2 2 2 3 ) {, 1} {, 2, 5} 3, 4} 5} (2 4 2 5 )(3 5 )(3 2 3 3 )(3 4 4 2 4 4 )(5 5 )(4 3 5 3 5 4 ) 7 6 {, 1, 2, {, 2, 5, {, 3, ( 2 )( 3 )( 4 )( 5 )(1 2 1 4 )(1 3 1 5 )(2 2 2 3 ) {, 1} 3, 4} 6} 5} (2 4 2 5 )(3 5 )(3 2 3 3 )(3 4 4 2 4 4 )(5 5 )(4 3 5 3 5 4 )(4 5 6 4 ) 8 8 9 1 1 12 11 15 {, 1, 2, 3, 4} {, 1, 2, 3, 5, 6, 8, 1} {, 1, 2, 3, 5, 6, 8, 1} {, 1, 2, 3, 5, 6, 8, 1, 11, 13, 14} {, 1, 8} {, 3, 5, 6, 8} {, 3, 5, 6, 8} {, 3, 5, 6, 8} {, 2, 5, 6, 7} {, 1} {, 1, 1} {, 1, 1} {, 3, 5} {, 2, 1} {, 2, 1, 12} {, 2, 1, 12, 15} ( 2 )( 3 )( 4 )( 5 )(1 2 1 4 )(1 3 1 5 )(2 2 2 3 ) (2 4 2 5 )(3 5 )(3 2 3 3 )(3 4 4 2 4 4 )(5 5 )(4 3 5 3 5 4 )(4 5 6 4 )(8 3 )(5 2 6 3 7 2 7 4 ) ( 2 )( 3 )( 4 )( 5 )(1 2 )(2 2 2 4 )(3 3 )(1 4 1 5 )(2 3 2 5 ) (3 2 4 2 )(3 4 5 2 5 4 )(9 4 1 2 1 3 )(5 3 )(3 5 6 3 )(1 5 ) (1 3 4 4 6 2 6 4 )(7 2 7 4 8 2 9 2 )(4 3 5 5 7 3 8 3 8 4 ) ( 2 )( 3 )( 4 )( 5 )(1 2 )(2 2 2 4 )(3 3 )(1 4 1 5 )(2 3 2 5 ) (3 2 4 2 )(3 4 5 2 5 4 )(9 4 1 2 1 3 )(5 3 )(3 5 6 3 )(1 5 ) (1 3 4 4 6 2 6 4 )(7 2 7 4 8 2 9 2 )(4 3 5 5 7 3 8 3 8 4 )(6 5 9 5 12 3 )(1 4 11 5 12 4 12 5 ) ( 2 )( 3 )( 4 )( 5 )(1 2 )(2 2 2 4 )(3 3 )(1 4 1 5 )(2 3 2 5 ) (3 2 4 2 )(3 4 5 2 5 4 )(9 4 1 2 1 3 )(5 3 )(3 5 6 3 )(1 5 ) (1 3 4 4 6 2 6 4 )(7 2 7 4 8 2 9 2 )(4 3 5 5 7 3 8 3 8 4 )(6 5 9 5 12 3 )(1 4 11 5 12 4 12 5 ) (4 5 13 4 14 2 14 3 )(13 5 14 4 15 4 15 5 ) 2.2.3 Rovnomrné kódy (Uniform codes) Nyní vezmme tídu (2 m, 1, m) konvoluních kód jejichž vytváecí mnoholeny j 2 g g ( j) ( D) ( j ) ( j) ( j) m ( j) ( j) j g g1 D gm D jsou takové, že ( 1, g2,..., gm) g pro m 1,2...,, jsou všechny 2 m nesporn m-násobné, kde pro usnadnní zvolíme ( D) 1. Tyto kódy mají vlastnost, že kódové slovo odpovídající libovolné informaní posloupnosti u s u má w m1 v ( m 2)2 m ; z toho plyne, že všechny kódové slova s nenulovým prvním informaním blokem mají stejnou váhu po celé kódové délce. To naznauje, že pro tyto kódy bude d m1 min ( m 2) 2. Jako první tyto kódy studoval Massey a pojmenoval je uniform codes. Prezentují tídu konvoluních kód s malým informaním pomrem a velkou korekní schopností. Kódy mžou být kompletn ortogonalizovatelné a lze je dekódovat pomocí majoritního dekódování. 24

2.2.4 Wyner-Ashovy kódy Vlastnostmi jsou tyto kódy velmi blízké Hammingovým kódm. Podle [13] žeme íct, že pro každé kladné m existuje Wyner-Ashv kód ((m+1)2 m, (m+1)(2 m -1)). Kód lze definovat pomocí kontrolní matice H Hammingova kódu (2 m -1, 2 m -1-m). To je kontrolní matice m (2 m -1), ve které je každý z sloupc nenulový. matic Sestavme následující matici: ádky jsou definovány jako soustava 1 (2 m -1) P,...,P T T 1 m. Nech T P je ádkový vektor, jehož všechny (2 m -1) prvky jsou jedniky. Potom úplná kontrolní matice Wyner-Ashova kódu má podle [13] tvar: T P 1...... T T P1 P1 1...... T T T P 1...... 2 P1 P T H............ P1............... (2.15) T P m T Pm...... a zkrácená kontrolní matice je zapisována jako: T P 1 T T P1 P 1 (( m1)2m) T T T H P 1 2 P1 P (2.16)............ T T T T Pm Pm 1 Pm 2...... P 1 Minimální vzdálenost Wyner-Ashova kódu je d = 3, to znamená, že se jedná o konvoluní kód, který opravuje jednu chybu. 25

3. Metody dekódování Doposud byly uvedeny rzné vlastnosti a parametry konvoluních kód. V této kapitole se budu vnovat rzným metodám jejich dekódování. Pro kódování konvoluních kód je známa celá ada metod. Zde bude uvedeny základní principy pi dekódování pomocí nkterých z tchto metod. Konkrétn jsem zvolil tyto:viterbiho dekódování, Sekvenní dekódování (Sequential decoding) a Majoritní dekódování (Majority logic decoding). Existuje celá škála dalších metod, které ovšem principov vychází z nkterých zde uvedených metod. Pro jejich studium bych doporuil napíklad literaturu [3]. V popisu jednotlivých technik dekódování se vnuji pedevším algoritmu dekódování a vycházím zejména z literatury [3] a [5]. 3.1 Viterbiho dekódování K provedení optimálního dekódování Viterbi navrhnul dekódovací algoritmus pro konvoluní kódy v roce 1967. V technické praxi se tato metoda rozšíila nejvíce. Její nevýhodou je však znaná náronost na poet numerických operací. Pro praktické realizace dekodéru se používá mikropoíta. Vezmme si (n, k, m) konvoluní binární kód s omezením délky a celkové pamti enkodéru K. Existuje 2 k pechod mezi stavy v trellisu, jak je znázornno na obrázku 3.2 Obr. 3.1: Mížový diagram pro (n, k, m) konvoluní kód. 26

edpokládáme, že kodér je zpoátku ve stavu, existují 2-1)k cesty pro první -1 vtve. Y, Y 1,, Y -1 oznaují možné kanálové kódové posloupnosti související s cestami na trellis. Z obdržené posloupnosti {R -2 } dekodér vypoítá všechny 2-1)k metriky M -2 (R / Y, R 1 / Y 1,, R -2 / Y -2 ) spojených s 2-1)k cesty a uchová je. Po obdržení nového segmentu obdržené posloupnosti {R -1 } dekodér používá trellis a vytváí odhadovanou posloupnost { -1 } z posloupnosti { Y -1 }.ásti metriky M(R -1 / Y -1 ) z 2 k cest vstupujících do stavu v trellisu jsou spoítány. Každá z tchto ástí metriky je pidána do odpovídající ásti metriky M -2 (R / Y, R 1 / Y 1,, R -2 / Y -2 ). Trasa s nejvtší metrikou cesty vstupující do každého stavu je zachována, a je zde 2 k ežívajících cest. To znamená, že dekodér zajišuje maximální-pravdpodobností hledaní z nejvtších cest metrikou M(R -1 / Y -1 )+ M -2 (R / Y, R 1 / Y 1,, R -2 / Y -2 ). Proces se opakuje tímto zpsobem, když je pijato dekodérem více segment. 3.2 Sekvenní dekódování konvoluních kód (Sequential decoding) Chcete-li dosáhnout libovoln malé pravdpodobnosti chyby, je žádoucí mít dekódovací postup, jehož dekódovací výkon je nezávislý na celkové pamti enkodéru, K, tohoto kódu tak, aby mohlo být použito velmi dlouhé omezení délky konvoluního kódu. Sekvenní dekódování je práv takovým postupem dekódování. Sekvenní dekódování bylo poprvé uvedeno Wozencraftem v roce 1957 a nový dekódovací algoritmus byl navržen Fanem v roce 1963. Stack algoritmus byl objeven Zigangirovem a Jelinkem. Podstata sekvenního dekódování je založena na kodéru stromového diagramu. Tato kapitola se zabývá sekvenním dekódováním pomocí Stack a Fano algoritmu. 3.2.1 Stack algoritmus dekódování konvoluních kód (Stack algorithm decoding) U Stack algoritmu, je uspoádaný seznam díve prozkoumaných cest rzné délky uchován v pamti. Každý Stack vstup obsahuje cestu spolu s jeho metrikou. Každý krok dekódování se skládá z rozšíení nejvyšší cesty o poítání vtví metriky z jeho 2 K následujících vtví a potom je pidá do metriky nejvyšší cesty pro vytvoení 2 K nových cest. Tyto nové cesty jsou umístny na spodní stran zásobníku a nejvyšší cesta je smazána ze zásobníku. Stack je poté peskupen do sestupného poadí podle metrických 27

hodnot. Tento dekódovací algoritmus koní, když nejvyšší cesta ve stacku dosáhne konce stromu a nejvyšší cesta je pak brána jako dekódovaná cesta. V praxi velikost Stacku musí být konená. Ped koncem dekódovacího procesu hrozí výskyt peteení. Pro ešení tohoto problému, mžeme nechat odtékat cestu na spodku stacku. Tato cesta má nejmenší metriku. Pro velký zásobník, pravdpodobnost, že cesta byla rozšíena a dosáhla na vrchol Stacku, je velmi malá. Ztráta v dekódovacím výkonu je zanedbatelná. V souhrnu lze konstatovat, že dekódovací kroky jsou následující 1. Nate se stack s poátením uzlem ve strom, jehož metrika je nastavena na nulu. 2. Rozšíí nejvyšší cestu a výpote metriky spojené s 2 K nových cest. 3. Odstraní se nejvyšší cesta stacku. 4. 2 K nových cest se umístí na spodek stacku a znovu se uspoádají všechny cesty v sestupném poadí podle hodnot metriky. 5. Pokud nejvyšší cesta dosáhne konce stromu, zastaví. V opaném pípad, se musí vrátit zpt ke kroku 2. Kompletní vývojový diagram pro Stack algoritmus je znázornn na obrázku 3.3 Obr. 3.3 Vývojový diagram pro Stack algoritmus. 28

3.2.2 Fano algoristmus dekódování konvoluních kód (Fano algorithm decoding) Dalším zpsobem pístupu k sekvennímu dekódování je použití Fano algoritmu. Ve Fano algoritmu je intuitivní experimentální metoda použita pro hledání vhodné cesty ve stromu kodéru. Dekodér vždy pracuje na jediné cest. Postupuje bu dopedu nebo dozadu podél cesty sledováním metriky cesty vi prahu. Pi neexistenci chybných kanál, bžící cesta metriky z metriky sledované dekodérem je rostoucí funkce. Kvli omezenému potu cest hledaných v dekodéru Fano algoritmu, dekódovaná cesta na konci stromu mže být odlišná od nejpravdpodobnjší cesty zvolené dekodérem Viterbiho algoritmu. Obrázek 3.4 zobrazuje vývojový diagram Fano algoritmu. Obr. 3.4 Vývojový diagram pro Fano algoritmus. Dekodér zaíná na poátením uzlu, který odpovídá koenu stromu kodéru a koní u jednoho z uzl na konci tohoto stromu. V každé fázi dekódování, se dekodér nachází na nkterém uzlu N" ve stromové struktue. Z tohoto uzlu dekodér oekává 2 K následných uzl opouštjící uzel N". Spoítá dopednou cestu metriky {M f } všech cest opouštjící uzel N" pidáním odpovídající vtve metriky do probíhající cesty metriky 29

sdružené s uzlem N". Následující uzly jsou seazeny v sestupném poadí podle jejich metrické hodnoty. Nejlepší uzel je spojen s nejvtší hodnotou metriky a nejhorší uzel je spojen s nejmenší hodnotou metriky. Dekodér se bude pohybovat na nejlepší uzel v pípad, že metrika M f je vtší nebo rovnající se prahu T F. Pokud dekodér dosáhne konce stromu, dekódovací proces koní a cesta je brána jako dekódovaná cesta. Pokud dekodér nedospl ke konci stromu a nejlepší následující uzel nebyl prozkoumán, následuje zúžení prahu pidáním pevné pesné konstanty k T F než se dekodér podívá znovu dopedu. Zúžení T F zajistí, aby v pípad, že dekodér se podívá dopedu a kontroluje uzel znova, práh byl vždy nižší než je aktuální vyšetení uzlu. To zabrauje zacyklení v algoritmu a zajišuje, že dekodér dosáhne konce stromu. Pokud se dekodér nemže pohnout vped od uzlu N", smuje zpt do uzlu M", vedoucímu k N". Zptná cesta metriky M b je vypoítána odeítáním vtví metriky vedoucí do N" od bžící metriky v uzlu N". Pokud zptná cesta metriky je menší než T F, dekodér nemže pokraovat zpátky. Prahová hodnota je snížena o, a dekodér smuje a snaží se posunout vped. Je-li zptná cesta metriky vtší nebo rovna T F, dekodér rozpozná nepravdpodobnou cestu a pesune se zpátky do uzlu M". Pokud uzel N" byl nejhorší, když se dekodér posunoval vped od uzlu M" na uzel N" v nkteré dívjší fázi dekódování, dekodér pokrauje smováním dozadu. Jinak dekodér hledá další cesty, smováním dopedu na další nejlepší uzel. V dekodéru fano algoritmu poet výpoetních krok závisí na hodnot. Obecn lze íci, že se snižuje poet výpo s velkou hodnotu, protože mén pravdpodobné cesty lze nyní sledovat bhem procesu hledání. Je jasné, že dekodér Fano algoritmu neskoí z uzlu do uzlu v prhu procesu hledání, jako je tomu v dekodéru Stack algoritmu. Dekodér fano algoritmu obvykle zkoumá více uzl než je tomu u Stack algoritmu. To omezuje provozní rychlost dekodéru. Nicmén, dekodér u Fano algoritmu eliminuje nutnost ukládání cest metriky z pedešlých prozkoumaných uzl, jak to vyžadováno u Stack algoritmu. 3.3 Majoritní dekódování konvoluních kód (Majority-logic decoding) Vidli jsme, že Viterbiho dekódování a sekvenní dekódování jsou efektní metody pro dekódování konvoluních kód. Vhodné konvoluní kódy používané souasn s Viterbiho nebo sekvenním kódováním poskytují dobré kódovací zisky. Vzhledem 3

k tomu, že poet operací potebných pro Viterbiho dekódování roste exponenciáln s kódovým omezením délky, jeho aplikace je omezena na kódy s relativn krátkým omezením délky. Na druhou stranu, poet operací pro sekvenní dekódování je náhodná promnná hodnota a je tém nezávislá na omezení délky kódu. To dlá sekvenních dekódování velmi atraktivní v aplikacích, kde je vyžadováno dlouhé omezení délky kódu. V každém z tchto dekódovacích systém je hardwarová složitost dekodéru velmi vysoká. Majoritní dekódování je alternativní zpsob pro dekódovaní konvoluních kód, které je relativn jednodušší na provedení než Viterbiho nebo sekvenní dekódování. Majoritní dekódování blokových kód je založeno na existenci tzv. kontrolních sou mezi prvky zabezpeeného mnoholenu F(x). Jestliže ke každému prvku tohoto mnoholenu máme k dispozici sou s jinými prvky tohoto mnoholenu, ve kterých je tento prvek je vždy obsažen a ostatní prvky pouze jednou, tak tento soubor kontrolních sou mám umožuje, na základ vtšinového (majoritního) rozhodnutí nad výsledky realizace tchto sou o správné hodnot tohoto prvku. Majoritní dekódování dlíme na dv základní varianty realizace: První varianta: Pro bezchybný mnoholen F(x) se vytváí soubor kontrolních sou a jejich uskutení poskytuje pi bezchybném penosu stejné výsledky. Pokud ovšem vznikne v F(x) pípustný poet chyb, tj. F(x) E(x) = J(x), potom výsledky kontrolních sou nemusí být vzhledem k jednotlivým prvkm vždy stejné a o správné hodnot se rozhoduje na základ vtšiny hodnot, tj. majorizací. Tímto zpsobem se vytvoí pímo opravený pvodní mnoholen nezabezpeené zprávy P(x). Základem pro odvození souboru kontrolních sou je vytváecí matice [G], takže kódy, které tento zpsob dekódování umožují, jsou obvykle konstruovány tak, aby struktura [G] pímo umožovala vytvoení potebn rozsáhlého souboru kontrolních sou. Není to však pravidlo. Druhá varianta: Nejprve je pomocí kontrolních sou a jejich majoritním vyhodnocením vytvoen chybový mnoholen E(x), který se použije k oprav pomocí známého vztahu J(x) E(x) = F(x). Chybový mnoholen E(x) je možno vytvoit celý a opravu se uskutení v jednom kroku. astjší je však postupná realizace chybového mnoholenu a opravu uskutenit v n krocích. Z tohoto popisu je zejmé, že se jedná o variantu syndromového dekódování, kde se pevod syndromu na chybový mnoholen uskuteuje nepímo, prostednictvím majorizace. Potebný soubor kontrolních sou se obvykle stanovuje dodate, pi hledání výhodnjšího zpsobu dekódování pro 31

kódy, které již njaký dekódovací postup mají. To také znamená, že se nám potebný soubor kontrolních sou nemusí podait najít. 3.4 Srovnání jednotlivých metod dekódování Výše uvedené metody dekódování, Viterbiho dekódování, sekvenní dekódování a majoritní dekódování, mají odlišné vlastnosti. Lze je porovnávat na základn jejich dekódovací rychlosti, dekódovacího zpoždní a složitosti jejich implementace. 3.4.1 Dekódovací rychlost Viterbiho dekodér vyžaduje 2 K výpo na jeden dekódovaný informaní bit, sekvenní dekodér má rzný poet výpo, který bývá obvykle jeden nebo dva výpoty na bit. Majoritní dekodér potebuje pouze jeden výpoet na bit (jeden cyklus registr). koliv as potebný pro vykonání jednoho výpotu je odlišný v rzných pípadech, toto porovnání naznauje, že majoritní dekodér umožuje vyšší rychlost dekódování než Viterbiho nebo sekvenní dekodér. 3.4.2 Dekódovací zpoždní Majoritní dekodér má dekódovací zpoždní práv takové jako je prh jednoho kódového ohraniení; tj. bit pijatý v ase t bude dekódován v ase t + n A. Viterbiho a sekvenní dekódování bude mít zpoždní rovnající se L + n A, kde L je délka vstupní posloupnosti. To znamená, že není uinno dekódovací rozhodnutí, dokud není celý L + n A zakódovaný blok pijat. Protože je obvykle L >> n A, dekódovací zpoždní v tomto pípad je znané. 3.4.3 Složitost implementace Majoritní dekodér je jednodušší na implementaci než sekvenní nebo Viterbiho dekodér. Mimo kopie kodéru a vyrovnávacího registru pro ukládání pijatých bit obsahuje pouze syndromový registr, nkolik hradel XOR a majoritní len. Tyto relativn nenároné požadavky pro implementaci dlají majoritní dekodéry obzvlášt atraktivní v levných aplikacích. Nicmén pi poteb velké minimální vzdálenosti je nutné dosáhnout vyššího výkonu a kódové ohraniení je velmi velké, to zvyšuje složitost implementace. V tomto pípad mže Viterbiho nebo sekvenní dekódování umožnit lepší kompromis mezi výkonem a nároností implementace. 32

4. Volba kódu a návrh kodéru. V této kapitole bude vybrán kód splující zadání a bude uveden postup pro odvození kodéru tohoto kódu. Zadání vyžaduje navrhnutí kódu, který bude schopen zabezpeit digitální enos dat proti t = 4 bity nezávislým chybám v kódovém ohraniení n A. Jak je zejmé ze zadání, budeme tedy vybírat ze skupiny kód, které jsou schopny opravovat nezávislé chyby. Vzhledem k tomu, že je za úkol i dekódovaní daného kódu, bylo nutné hledat kód, který bude vhodný pro dekódování zvolenou metodou. Má volba padla na metodu majoritního dekódování konvoluních kód. Volil jsem tak proto, že pi zvolení vhodného kódu je návrh dekodéru relativn snadný a bez nástrah a pišlo mi proto zbytené pouštt se do složitého návrhu Viterbiho nebo sekvenního dekodéru, které vyžadují velké množství numerických operací. Vzhledem k volb majoritního dekódování jsem tedy hledal mezi kódy, které je možno touhle metodou dekódovat. Nejvhodnjší pro tuto metodu jsou samoortogonální kódy. Z tabulky 2.1 tchto kód jsem tedy volil takový, který bude splovat t = 4 bity. Jak je zejmé ze vztahu podle [6] J / 2 t d min 1 t ML / 2, zvolím tedy samoortogonální konvoluní kód, který bude mít parametry dané tabulkou R=1/2, t ML =4, m=35 a vytváecí mnoholen je zadán pozicemi nenulových len {, 7, 1, 16, 18, 3, 31, 35}. Zvolený kód má tedy informaní rychlost R = k /n = 1/2 a proto k = 1 a n = 2 a je zadán vytváecími mnoholeny: G 1 ; ( 1) G( 2) 1 D 7 1 16 18 3 31 35 D D D D D D. Vytváecí mnoholeny nám urují samoortogonální konvoluní kód (7 ; 35) s následujícími parametry: n =2 ; k =1 ; J=8 ; t=4 ; m=35; n A =72 Vzhledem k tomu, že známe vytváecí mnoholeny, není problém sestavit schéma kodéru viz. obr 4.1. 33

Obr. 4.1: Zapojení kodéru samoortogonálního kódu (7 ; 35) odvozené ze zadávacích mnoholen. Toto zapojení kodéru je sice správné, pro mj píklad a pro následné zapojení dekodéru je však vhodné použít jiný zpsob zapojení, který lze urit pomocí blokové matice [B]. Pro sestavení této matice je poteba nejprve odvodit polonekonenou matici [G ]. Musíme najít první ádek této matice, který se oznauje [G ;m ]. Na toto musíme znát dílí matice, které snadno odvodíme z vytváecích mnoholen. Jejich poet bude m+1=36 a budou vypadat následovn: [G ]=[11]; [G 1 ]=[]; [G 2 ]=[]; [G 3 ]=[]; [G 4 ]=[]; [G 5 ]=[]; [G 6 ]=[]; [G 7 ]=[1]; [G 8 ]=[]; [G 9 ]=[]; [G 1 ]=[1]; [G 11 ]=[]; [G 12 ]=[]; [G 13 ]=[]; [G 14 ]=[]; [G 15 ]=[]; [G 16 ]=[1]; [G 17 ]=[]; [G 18 ]=[1]; [G 19 ]=[]; [G 2 ]=[]; [G 21 ]=[]; [G 22 ]=[]; [G 23 ]=[]; [G 24 ]=[]; [G 25 ]=[]; [G 26 ]=[]; [G 27 ]=[]; [G 28 ]=[]; [G 29 ]=[]; [G 3 ]=[1]; [G 31 ]=[1]; [G 32 ]=[]; [G 33 ]=[]; [G 34 ]=[]; [G 35 ]=[1]. První ádek [G ] potebný k jejímu vyjádení, který jsme si oznaili [G ;m ] bude tedy vypadat takto: [G ;m ]=[111111111], a polonekonenou matici [G ] potom zapíšeme: 34

Odvozená bloková matice [B] bude potom podle [8] vypadat následovn: Ze znalosti této blokové matice mžeme nyní sestavit potebné zapojení kodéru, jak je znázornno na obr. 4.2. 35

Obr. 4.2: Zapojení kodéru samoortogonálního kódu (7 ; 35) odvozené z blokové matice [B]. Tímto zapojením kodéru, které je vhodné pro použití pi sestavení dekodéru, je návrh kódu a jeho kodéru kompletní, nyní tedy mžu pejít k návrhu dekodéru. 36

5. Návrh dekodéru Jak je zmínno v pedchozí kapitole, pro zadaný úkol jsem zvolil samoortogonální konvoluní kód, který bude dekódován metodou majoritního dekódování. Pi odvozování sestavení dekodéru budeme vycházet z poznatk literatury [6] a [9]. Pro mj píklad mžeme podle [9] uvést obecné blokové schéma dekodéru viz obr 5.1. podle kterého budeme postupovat návrhy jednotlivých blok. Obr. 5.1: Obecné blokové schéma dekodéru pro konvoluní kód s R=1/2. Jak je ukázáno ve schématu, penesený bitový tok je rozdlen do dvou ástí, r bude odpovídat penesenému toku nezabezpeených bit a r odpovídá enesenému toku zabezpeovacích bit. Penesený tok nezabezpeených bit r dále pokrauje do bloku KODÉR PIJÍMAE. 5.1 Kodér pijímae Do kodéru pichází penesený tok nezabezpeených bit r a ten je zde podroben kódování, vzniká nám nový tok zabezpeovacích bit r. Zapojení tohoto kodéru je realizováno zpsobem, který je odvozen v pedchozí kapitole, viz obr. 4.2.Tok r je dále posílán do bloku generátor syndromu. 37

5.2 Generátor syndromu Jak je zejmé z literatury [6], generátor syndromu pro konvoluní kódy s informaní rychlostí R=1/2 bývá tvoen sítakou mod 2, jak je znázornno obecným schématem zapojení generátoru syndromu viz obr 5.2. Obr 5.2: Obecná realizace generátoru syndromu pro systematický kód s R=1/2. Z generátoru nám bude vycházet tok syndromových bit [S]. Matematicky to mžeme zapsat následovn: r r S s s, s 22) (,..., s. (5.1), 1 m 5.3 Pevodník [S] [E] Pro správné zapojení tohoto bloku je nutno odvodit kontrolní rovnice našeho samoortogonálního kódu. Pi sestavování kontrolních matic budeme postupovat obecným postupem, který je popsán napíklad v literatue [6] nebo [9]. Vektor [S] je nutno pevést na vektor [E]. Vyjdeme ze vztahu podle [9]: H I E S ; (5.2) kde H je polonekonená zabezpeovací podmatice, pro konkrétní píklady se používá její zkrácená podoba, kterou oznaíme H a bude mít trojúhelníkový tvar, který dává mto maticím trojúhelníkové oznaení a I je polonekonená jednotková podmatice, 38

která má v hlavní diagonále jedniky a na zbývajících místech nuly. Celá matice H ; I bývá asto nazývána kontrolní trojúhelník a bude vypadat následovn: H ; I g g1 g2 gm g g g 1 m1 g...... g ; ; ; ; 1 1 1............ 1 (5.3) pro náš píklad tedy bude tato matice vypadat následovn: Obr. 5.3: Kontrolní trojúhelník (rovnice 5.4) Rovnici 5.4 podle [9] dále rozepíšeme takto: 39

4 Obr. 5.4: Vznik vektoru syndromu [S] podle lit. [9] (rovnice 5.5)

Pro lepší znázornní si matice rozepíšeme do soustavy rovnic: s e e s 1 e 1 e 1 s 2 e 2 e 2 s 3 e 3 e 3 s 4 e 4 e 4 s 5 e 5 e 5 s 6 e 6 e 6 s 7 e e 7 e 7 s 8 e 1 e 8 e 8 s 9 e 2 e 9 e 9 s 1 e e 3 e 1 e 1 s 11 e 1 e 4 e 11 e 11 s 12 e 2 e 5 e 12 e 12 s 13 e 3 e 6 e 13 e 13 s 14 e 4 e 7 e 14 e 14 s 15 e 5 e 8 e 15 e 15 s 16 e e 6 e 9 e 16 e 16 s 17 e 1 e 7 e 1 e 17 e 17 s 18 e e 2 e 8 e 11 e 18 e 18 s 19 e 1 e 3 e 9 e 12 e 19 e 19 s 2 e 2 e 4 e 1 e 13 e 2 e 2 s 21 e 3 e 5 e 11 e 14 e 21 e 21 s 22 e 4 e 6 e 12 e 15 e 22 e 22 s 23 e 5 e 7 e 13 e 16 e 23 e 23 s 24 e 6 e 8 e 14 e 17 e 24 e 24 s 25 e 7 e 9 e 15 e 18 e 25 e 25 41

s 26 e 8 e 1 e 16 e 19 e 26 e 26 s 27 e 9 e 11 e 17 e 2 e 27 e 27 s 28 e 1 e 12 e 18 e 21 e 28 e 28 s 29 e 11 e 13 e 19 e 22 e 29 e 29 s 3 e e 12 e 14 e 2 e 23 e 3 e 3 s 31 e e 1 e 13 e 15 e 21 e 24 e 31 e 31 s 32 e 1 e 2 e 14 e 16 e 22 e 25 e 32 e 32 s 33 e 2 e 3 e 15 e 17 e 23 e 26 e 33 e 33 s 34 e 3 e 4 e 16 e 18 e 24 e 27 e 34 e 34 s 35 e e 4 e 5 e 17 e 19 e 25 e 28 e 35 e 35 Z této soustavy rovnic budeme vycházet pi hledání kontrolních rovnic, které jsou ortogonální k e. Tyto kontrolní rovnice musí splovat pravidlo ortogonalizace. Aby toto bylo splnno musí být chybový bit e, který zpsobil chybu informanímu prvku v ase t =, obsažen v každé této rovnici a ostatní chybové bity pro všechny další asové okamžiky jsou obsaženy nejvýše jednou. Toto spluje následujících soustava 8 rovnic, pro které zavedeme oznaení podle [9] {A }, pro = 1; 2;... A 1 s e e s 7 e e 7 e 7 s 1 e e 3 e 1 e 1 s 16 e e 6 e 9 e 16 e 16 s 18 e e 2 e 8 e 11 e 18 e 18 s 3 e e 12 e 14 e 2 e 23 e 3 e 3 s 31 e e 1 e 13 e 15 e 21 e 24 e 31 e 31 s 35 e e 4 e 5 e 17 e 19 e 25 e 28 e 35 e 35 42

Vzhledem k tomu, že jsme dostali 8 kontrolních rovnic, je splnna podmínka zadání, která vyžaduje korekci t = 4 nezávislých chyb. Odvození tchto rovnic nám umožní sestavit zapojení bloku PEVODNÍK [S] [E]. Ten bude složen z posuvného registru, který bude mít 35 pamových bunk, do kterých se budou ukládat syndromové prvky [S] = [ s, s 1,, s 34 ]. Realizace kontrolních rovnic bývá obecn ešeno pomocí seítaek mod 2 s potem vstup odpovídajícímu potu len kontrolní rovnice. V našem pípad je ovšem každá rovnice rovna pímo píslušnému syndromu, proto jsou pímo pivedena k majoritnímu lenu. V majoritním lenu se bude uskuteovat bit po bitu pevod [S] [E]. Majoritní len je tvoen soustavou logických obvod a má tolik vstup kolik je kontrolních rovnic. Podle [6] se na výstupu majoritního lenu vždy objeví taková hodnota bitu, jaká je vtšina bitových hodnot na vstupech. Z této úvahy mžeme sestavit pravdivostní tabulku pro tento logický obvod a sestavit pro nj funkci. Protože však náš majoritní len bude mít 8 vstup, tabulka by mla 256 možných stav a byla by rozsáhlá, tak zde pouze pro názornost uvedu ást této tabulky. Tab. 5.1:Pravdivostní tabulka pro osmivstupý majoritní len. vstup A 1 vstup A 2 vstup A 3 vstup A 4 vstup A 5 vstup A 6 vstup A 7 vstup A 8 výstup Y 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 43

44 Výsledná funkce majoritního lenu, která vychází z tabulky je zapsána takto: Y Z této funkce mžeme snadno odvodit zapojení majoritního lenu. Toto zapojení je na obr. 5.5.

45 Obr. 5.5: Zapojení osmivstupého majoritního lenu v programu Matlab Simulink.

5.4 Korekce Posledním blokem dekodéru je blok korekce. Podle [6] a [12] mžeme íct, že v ase t = bude na výstupu z kodéru pijímae bit f p e a z pevodníku [S] [E] bude v ten samý as vystupovat tedy získáme soutem mod 2 jak nám ukazuje rovnice 5.6. e. Výstupní pvodní opravený bit p f e p e e p (5.6) Z této úvahy je tedy zejmé, že blok korekce bude tvoen sítakou mod 2, která bude mít na jednom vstupu výstup z majoritního lenu a na druhém budou bity posloupnosti [R ]. Vzhledem k tomu, že máme již odvozené všechny jednotlivé bloky dekodéru, žeme díky tomu poskládat celé jeho zapojení, to je ukázáno na obr. 5.6. innost dekodéru v jednotlivých krocích mžeme popsat následovn: 1. Nejprve je vypoítána omezená délka syndromových bit s, s 1,,s 35. 2. Soustava osmi kontrolních rovnic ortogonálních k syndrových bit vypoítaných v prvním kroku. e je vytvoena ze 3. Hodnoty kontrolních rovnic jsou naítány do majoritního lenu, který bude mít na výstupu hodnotu 1 tehdy a jen tehdy když 5, 6, 7 nebo 8 (víc než polovina) vstup bude rovno 1. Jestliže bude na jeho výstupu hodnota 1, r je považován za chybný a tudíž musí být opraven. Jestliže bude na jeho výstupu hodnota, r je považován za správný. Oprava je uskutena pidáním výstupu majoritního lenu do r. Výstup majoritního lenu je také pivádn zpátky a je odeítáno z každého syndromového bitu jeho narušení. 4. ekávaný informaní bit p r e je posunut na výstup dekodéru. Syndromový registr se posune jednou doprava, další z pijatých bit ( r, r ) je posunut do dekodéru a další syndromový bit je vypoítán a posunut do nejkrajnjší ásti syndromového registru. 5. Dekodér nyní opakuje kroky 1, 2, 3 a 4 dokud není celá posloupnost dekódována. 46

47 Obr. 5.6: Zapojení dekodéru konvoluního kódu (7 ; 35).

6. Ovení funknosti Jak je dáno zadáním, je nutno výše uvedené návrhy ovit, zda fungují jak mají a zda splují uvedené podmínky dané zadáním. Toto bude splnno v následujícím textu. Pro ovení jsem zvolil simulaci v programu Matlab Simulink, která se pro tyto pípady žne používá. Zapojení kodéru v programu Matlab, které je zapojeno na základ obr. 4.1, je uvedeno na obr. 6.1. Do kodéru je poslána posloupnost bit u = (1,, 1,, 1, ). Výstup kodéru je poslán na penosový kanál, kde je nasimulováno pidání ty nezávislých chyb v kódovém ohraniení n A. Poškozená bitová posloupnost je pijata v dekodéru a je dekódována, na výstupu dostaneme oekávanou posloupnost v = (v 1, v 2, v 3, ). Jak je vidt na obr. 6.4. dekodér zprávu dekódoval správn a chyby v penosu opravil. Obr. 6.1: Zapojení kodéru konvoluního kódu (7 ; 35) v programu Matlab Simulink. Zapojení dekodéru v Matlab Simulink ukazuje obr. 6.2. Majoritní len z dvodu své velikosti je zobrazen pouze jako blok. Celé zapojení kodeku je provedeno blokov, kvli lepší názornosti, kde je zapojen osciloskop, viz obr. 6.3. Grafy znázorující vstupní posloupnost, zabezpeenou posloupnost, simulaci náhodné chyby, poškozenou posloupnost a výstupní posloupnost z dekodéru jsou na obr. 6.4. 48

49 Obr. 6.2: Zapojení dekodéru konvoluního kódu (7 ; 35) v programu Matlab Simulink.

Obr. 6.3: Blokové zapojení kodeku konvoluního kódu (7 ; 35) v programu Matlab Simulink. 5

Obr. 6.4: Grafy jednotlivých posloupností bit z osciloskopu. 51

7. Návrh plošného spoje pro kodér a dekodér V této kapitole jsou realizovány návrhy plošných spoj pro kodér a dekodér v programu Eagle od firmy Cadsoft. V návrhu je uvažována skutenost, jak je dáno zadáním, že kodér a dekodér jsou souástí protichybového kódového systému. Z toho vodu není v návrhu ešeno asování, napájení, generování signálu atd., což uvažujeme, že bude zajišovat tento protichybový kódový systém. 7.1 Kodér i návrhu kodéru vycházíme ze zapojení odvozeného z vytváecích mnoholen, viz obr. 4.1. Jako zpožovací leny jsem zvolil 8-bitové posuvné registry 74164N kaskádn zapojené. Sítaka mod 2 je potom realizována souástkou Quad 2-input EXCLUSIVE-OR 43N. Konený výstup je zajištn paraleln-seriovým evodníkem s oznaením 74LS165N. Schéma zapojení v programu Eagle je ukázáno na obr. 7.1, návrh plošného spoje je znázornn na obr 7.2. Obr. 7.1: Schéma zapojení kodéru konvoluního kódu (7 ; 35) v programu Eagle. 52

Obr. 7.2: Návrh plošného spoje pro kodér konvoluního kódu (7 ; 35). 7.2 Dekodér i realizaci dekodéru vycházíme ze schematu zapojení navrženém na obr. 5.4. Signál na vstupu je nutno rozdlit na dva paralelní toky, to je zajištno zapojením posuvného registru 74LS164N. Zpožovací leny zajišují stejn jako návrhu kodéru 8-bitové posuvné registry 74164N a stejn tak sítaky mod 2 jsou opt tvoeny souástkou Quad 2-input EXCLUSIVE-OR 43N. Majoritní len je tvoen programovatelným logickým polem od firmy Atmel, konkrétn s oznaením ATF16V8BP3. Schéma celého zapojení dekodéru v programu Eagle je zobrazeno na obr. 7.3, návrh plošného spoje je ukázán na obr 7.4. Obr. 7.3: Schéma zapojení dekodéru konvoluního kódu (7 ; 35) v programu Eagle. 53

Obr. 7.4: Návrh plošného spoje pro dekodér konvolu ního kódu (7 ; 35). 54