Download as pdf or txt
Download as pdf or txt
You are on page 1of 322

Christer Frank

Kodning fr felkontroll

KOPIERINGSFRBUD

Detta verk r skyddat av lagen om upphovsrtt. Kopiering, utver lrares rtt att kopiera fr undervisningsbruk enligt BONUS-Presskopias avtal, r frbjuden. Sdant avtal tecknas mellan upphovsrttsorganisationer och huvudman fr utbildningsanordnare t.ex. kommuner/universitet. Fr information om avtalet hnvisas till utbildningsanordnarens huvudman eller BONUS-Presskopia. Den som bryter mot lagen om upphovsrtt kan talas av allmn klagare och dmas till bter eller fngelse i upp till tv r samt bli skyldig att erlgga ersttning till upphovsman/rttsinnehavare. Denna trycksak r miljanpassad, bde nr det gller papper och tryckprocess.

Art.nr 31850 eISBN 978-91-44-04982-3 Frfattaren och Studentlitteratur 2004 Omslagslayout: Leif bjrnsson Printed in Sweden Studentlitteratur, Lund Webbadress: www.studentlitteratur.se Tryckning/r 1 2 3 4 5 6 7 8 9 10 2008 07 06 05 04

Innehll

Frord 5 1 Introduktion till felkorrigerande kodning 7 1.1 Kodtyper 8 1.2 Modulation och demodulation 9 1.2.1 Hrd och mjuk avkodning 13 1.3 Maximum Likelihoodavkodning 14 1.4 Feltyper 17 1.5 Felkontrollstrategier 18 2 Elementr algebra 19 2.1 Gruppbegreppet 19 I allmnhet 23 Slutsats 23 2.2 Ringar 26 2.3 Talkroppar (eng. Fields) 27 2.4 Vektorrum 29 2.5 Grundlggande egenskaper hos Galois-talkroppar 31 Den multiplikativa strukturen hos Galois-talkroppar 31 Den additiva strukturen hos Galois-talkroppar 33 Primitiva polynom och Galois-talkroppar av ordningen pm 33 2.6 Minimalpolynom och konjugatelement 39 Faktorisering av xn 1 43 2.7 Algebra med Mathematica 45 2.8 Cyklotomiska sidoklasser 50 2.9 variste Galois 51 Litteraturhnvisningar 56 2.10 Problem. Elementr algebra 57 3 Linjra blockkoder 61 3.1 Syndrom, felupptckt och felkorrigering 65 3.2 En kods minimidistans eller minimi- avstnd 70
Studentlitteratur

Felupptcktsfrmgan fr en blockkod 71 Sannolikheten fr oupptckta fel 71 Felkorrigeringsfrmgan fr en blockkod 72 Standarduppstllningen och syndrom- avkodning 74 Viktfrdelning fr blockkoder 81 Hammingkoder 82 Viktangivelse fr Hammingkoder 85 3.9 Modifierade linjra koder 85 Sammanfattning 86 3.10 Problem. Linjra koder 88 4 Cykliska koder 95 4.1 Grundlggande egenskaper fr cykliska koder 97 4.2 Systematisk kodningsmetod fr en cyklisk (n,k)-kod 102 4.3 Skiftregister-kodare och -avkodare fr cykliska koder 104 4.4 Systematisk kodning med hjlp av skiftregister 104 4.5 Syndromberkning, felupptckt och felkorrigering 107 4.5.1 Avkodning av cykliska koder 108 4.6 Felupptckande cykliska koder 111 4.6.1 Frkortade koder och felupptckt med CRC 111 4.7 Golaykoder 114 Aritmetisk avkodningsalgoritm fr den utstrckta Golaykoden G24 117 Sammanfattning 119 4.8 Problem. Cykliska koder 119 5 BCH- och Reed-Solomonkoder 125 5.1 Generatorpolynommetoden fr BCH-koder 125 5.2 Designprocedur fr BCH-koder 126 5.3 Grundlggande egenskaper hos Reed-Solomon-koder 129 5.3.1 Konstruktion av en t-felskorrigerande Reed-Solomon-kod med lngden qm 1 129 5.4 Avkodning av BCH-koder 131 5.4.1 Petersons direktlsnings-avkodningsalgoritm fr en binr t-felskorrigerande BCH-kod 131 5.4.2 Berlekamps avkodningsalgoritm 134 Berlekamps algoritm fr avkodning av binra BCH-koder 135 5.5 BCH-koder med Mathematica 138 5.6 Avkodning av Reed-Solomon-koder 144 5.6.1 Peterson-Gorenstein-Zierlers avkodningalgoritm 144 2
Studentlitteratur

3.3 3.4 3.5 3.6 3.7 3.8

5.6.2 Berlekamp-Masseys avkodningsalgoritm 148 Ngra av den formella derivatans viktigare egenskaper 151 Forneys algoritm 151 5.7 Binr suddningsavkodning (eng. erasure decoding) 152 5.7.1 Binr suddningsavkodningsalgoritm 154 5.7.2 Icke-binr suddningsavkodningsalgoritm 154 Sammanfattning 158 5.8 Problem. BCH- och Reed-Solomonkoder 158 6 Faltningskoder 163 6.1 Linjra faltningskoder 163 6.2 Impulssvar 165 6.3 Grafiska analysmetoder fr faltningskoder 173 6.4 Katastrofala faltningskoder 176 6.5 Grafer och viktangivelser 178 6.6 Prestationsmtt fr faltningskoder 184 Sammanfattning 185 6.7 Problem. Faltningskodare 185 7 Avkodning av faltningskoder 191 7.1 Viterbis Maximum Likelihood avkodningsalgoritm 191 Spaljdiagram (trellis diagram) 191 7.2 Viterbialgoritmen 194 7.3 Prestanda fr faltningskoder 201 7.3.1 Binrsymmetriska kanaler (BSC) 201 7.3.2 AVGB-kanaler 207 Sammanfattning 209 7.4 Problem. Avkodning av faltningskoder 209 8 Kombinerad kodning och modulation (Trellis Coded Modulation) 213 8.1 M-r signalering 214 8.2 Kodningsfrstrkning 223 8.3 En- och tv-dimensionell TCM 223 8.4 Ungerbecks designregler 234 Sammanfattning 237 Litteraturhnvisningar 237 8.5 Problem. Trellis Coded Modulation 237 9 Turbokoder 243 9.1 Introduktion 243
Studentlitteratur

9.2 Likelihood-begreppet 245 9.2.1 Log-likelihood-frhllandet 247 9.2.2 Turboavkodning (iterativ avkodning) 249 9.2.3 Exempel med tv-dimensionell enkelparitets produktkod 251 9.2.4 Rknelagar fr loglikelihoodfunktioner 253 9.2.5 Berkning av LLR extravrden 254 9.3 Komponentkodare fr turbokodning 258 9.3.1 terkopplad turboavkodare 260 9.3.2 Avkodning med terkoppling 262 9.3.3 Exempel p prestanda vid turboavkodning 264 9.4 Historik turbokoder 266 9.5 Appendix fr uttrycket (9.21) 268 10 Felupptckande koder fr system med returkanal 271 10.1 Rena ARQ-protokoll 271 10.1.1 Prestanda fr rena ARQ-protokoll 273 Genomstrmningen 274 SW-ARQ 274 GBN-ARQ 276 SR-ARQ 277 10.2 Typ-I hybrid-ARQ-protokoll 280 Tv-kodssystemet 281 En-kodssystemet 282 10.3 Typ-II hybrid-ARQ-protokoll 285 10.4 Problem. Felupptckande koder fr system med returkanal 286 11 Kodningstillmpningar 289 11.1 Compact Disk (CD) 289 11.2 Standardiserade telekommunikationsturbokoder 295 11.2.1 Turbokodsstandard fr rymddatasystem 295 12 Tabeller fr felkorrigerande kodning 299 12.1 Binra primitiva polynom 299 12.2 Galois-talkroppar, cyklotomiska sidoklasser och minimalpolynom 300 12.3 Generatorpolynom till binra narrow-sense BCH-koder 303 Sakregister 305

Studentlitteratur

Frord

Syftet med denna bok r att vara en introduktion till de grundlggande principerna fr felkorrigerande och felupptckande koder. Den r primrt avsedd att vara en kursbok vid teletekniska utbildningar men kan ven anvndas som referens fr yrkesverksamma som arbetar inom telkommunikationssektorn. Delar av innehllet har under en fljd av r getts som valfritt mne i rskurs tre vid ingenjrsskolan i Kista. Innehllet frutstter endast gymnasiekunskaper i en omfattning motsvarande Na-linjen samt ngon knnedom om matrisrkning. Avsnitt med Mathematicakod r inte ndvndiga fr att frst det vriga innehllet. Alltsedan Claude Shannon publicerade sina rn 1948 att digital information kan verfras felfritt om informationstakten inte verstiger kanalens kapacitet i bit/s och informationsbitarna frses med checkbitar, har man skt konstruera koder som uppfyller Shannons kriterier1. I boken genomgs de viktigaste av de koder som hittills konstruerats. I kapitel 1 genomgs strukturen fr ett kommunikationssystem och felkontrollstrategier. Kapitel 2 ger algebraiska grunder fr blockkoder. Kapitel 3 handlar om linjra blockkoder och deras anvndning. Kapitel 4 behandlar linjra blockkoder som dessutom r cykliska. Kapitel 5 tar upp BCH- och Reed-Solomon-koder. Kapitel 6 behandlar faltningskoder. I kapitel 7 visas hur faltningskoder avkodas. Kapitel 8 gr igenom Trellis Coded Modulation (TCM).
1

Se avsnittet om Informationsteori och kllkodning i C. Frank: Telekommunikation, Studentlitteratur, 2004.

Studentlitteratur

Frord

Kapitel 9 presenterar grunderna fr turbokoder. Kapitel 10 gr igenom de viktigaste felupptckande kodtyperna. I kapitel 11 ges ett par tillmpningsexempel p felkorrigerande kodning. I kapitel 12 nns tabeller fr berkningar p blockkoder. Fr egen del vcktes mitt intresse fr mnesomrdet vid en kurs om Error Correcting Codes and Reed-Solomon ECC respektive Combined Digital Coding and Modulation Techniques sommaren 1990 som leddes av E. J. Weldon, Jr., University of Hawai och Gottfried Ungerbeck, IBM Zrich. Flera r senare kom professor Ben Slimane, KTH att hjlpa till att ytterligare vidga mina vyer inom mnet kodning fr felkontroll vid en doktorandkurs 1997. Jag tackar honom fr detta. Knivsta i september 2004 Christer Frank

Studentlitteratur

1 Introduktion till felkorrigerande kodning

1948 visade Claude Shannon i en uppsats att fel, som uppstr p en brusig kanal, kan reduceras till en godtyckligt lg niv med hjlp av felkorrigerande kodning utan att fr den skull gra avkall p informationsverfringshastigheten frutsatt dock, att denna inte verskrider kanalens kapacitet (= maximal informationsverfringshastighet). Att koder med sdana egenskaper gr att skapa visades av Shannon. Han angav dremot inte hur koderna skulle konstrueras. Detta har lett till att mnga forskare har frskt konstruera koder, som s bra som mjligt kan minimera sannolikheten fr, efter avkodning, terstende bitfel, vanligen uttryckt som BER = Bit Error Rate. Felkorrigerande kodning anvnds vid verfring och lagring av digital information (t.ex. CD = Compact Disk). Ett typiskt dataverfrings- eller lagringssystem visas i Figur 1.1. Kllkodaren omvandlar utsignalen frn kllan till en binr informationssekvens u. Kanalkodaren omvandlar denna informationssekvens till en kodad sekvens eller ett kodord v. Modulatorn omvandlar varje symbol i kodordet v till en fr kanalen (t.ex. radiokanalen) lmplig vgform med varaktigheten T sekunder (= symboltiden). Varje sdan vgformad symbol pfrs kanalen dr den utstts fr strningar som brus och interferens. Den mottagna signalen demoduleras i demodulatorn som levererar en sekvens, r, som r en uppskattning av det snda kodordet v. Kanalavkodaren omvandlar sekvensen, r, till en binr sekvens, u , som r en uppskattning av den snda, u. Idealt r u = u men p.g.a. strningar i kanalen kan avkodningsfel uppkomma.
Studentlitteratur

1 Introduktion till felkorrigerande kodning

u
info.klla kllkodare kanalkodare

modulator el skrivenhet

s(t)
kanal el. lagringsmedium

r(t)
destination kllavkodare

kanalavkodare

demod. el. lsenhet

Figur 1.1 Blockschema fr dataverfringssystem eller lagringssystem. Kllavkodaren omvandlar den uppskattade sekvensen, u , till en uppskattning av kllans utsignal. Fr att frenkla modellen sls informationskllan och kllkodaren ihop till en digital klla medan kllavkodaren och destinationen tillsammans utgr en digital mottagare.

1.1 Kodtyper
Tv kodtyper frekommer: Blockkoder och faltningskoder. Vid binr blockkodning uppdelas informationssekvensen i block p vardera k binra informationsbitar. Ett block u = (u0,u1,,uk 1) kallas ett meddelande. Antalet mjliga meddelanden r 2k. Kodaren omvandlar varje meddelande, u, till ett kodord v = (v0,v1,,vn 1) (n > k). Mngden 2k kodord med lngden n kallas en (n,k)-blockkod. Kvoten R = k kallas kodens takt och kan tolkas som antalet informan tionsbitar, som pfrs kodaren per verfrd symbol. Kodordet ut frn kodaren beror endast av det vid samma tidpunkt frentliga meddelandet in p kodaren, d.v.s. kodaren r minnesls och kan drfr realiseras med ett grindnt.
8
Studentlitteratur

1.2 Modulation och demodulation

Skillnaden mellan antalet bitar i kodordet och meddelandeordet, n k, utgrs av redundanta (= utan informationsinnehll) bitar, som anvnds fr att korrigera de bitar i kodordet som p grund av strningar i kanalen blivit felaktigt mottagna. Faltningskodaren lmnar ocks ett n-bitars block fr varje k-bitars block, som kommer till dess ingng. Vid faltningskodning anvnds ocks symbolerna u och v men med fljande betydelse: u r en sekvens in-block och v r en sekvens ut-block. Skillnaden mot block-kodning bestr i att varje ut-block r en funktion av inte enbart motsvarande in-block utan ven av m stycken fregende block dr m kallas kodarens minneslngd. De kodade sekvenserna frn en faltningskodare ger upphov till en (n,k,m)-faltningskod. Kvoten R = k n kallas kodens takt och kodaren mste innehlla minneskretsar.

1.2 Modulation och demodulation


Modulatorn i ett kommunikationssystem anvnder en vgformsignal med tidslngden T (= symbolintervallet) som r lmplig fr transmission. Fr signaler kodade med binra symboler lmnar modulatorn en av tv vgformsignaler, s0(t) och s1(t), svarande mot binr nolla och binr etta. Ett optimalt signalval (BPSK = Binary Phase Shift Keying)) fr bredbandiga signaler r s0(t) = s1(t) = 2E sin 2f0t 0tT T 2E sin 2f0t + 0 t T T (1.1)

Vanligen strs den verfrda signalen av gaussiskt vitt brus, som modelleras som en additiv komponent (AVGB = Additivt Vitt Gaussiskt Brus), se Figur 1.2.
Studentlitteratur

1 Introduktion till felkorrigerande kodning

n(t) s(t)
+

r(t) = s(t) + n(t)

Figur 1.2 Modell fr additivt brus.

s0(t)

r(t)s0(t)dt
r(t) s1(t)
Vlj strsta

t=T

r(t)s1(t)dt
t=T

Figur 1.3 Korrelationsmottagare (= demodulator). I korrelationsmottagaren enligt Figur 1.3 avgrs om s0(t) eller s1(t) snts. Fr att berkna sannolikheten fr felbeslut kan Figur 1.4 anvndas. De tv snda signalformerna s0(t) och s1(t) avstts som signalvektorer med lngderna E och E i ett koordinatsystem dr E r energin i signalen under ett symbolintervall (0 t T). Det additiva gaussiska brusets tthetsfrdelning lggs in i diagrammet i Figur 1.4. Den betingade sannolikheten, P(r0|s1), att mottagaren beslutar att: Givet en snd etta, s1, mottaget en nolla, r0, r lika med arean under den delen av tthetsfunktionen p1(x), som ligger inom nollans beslutsomrde, d.v.s. mellan och 0.
10
Studentlitteratur

1.2 Modulation och demodulation

p2(x) =

1 e x ( E) 2/22 2

beslutsgrns

p(x)

p1(x) =

1 e x E 2/22 2

x
0 E E s0(t) P(r0|s1) P(r1|s0) s1(t) 0 1

N0 dr N0 r brusets tvsidiga spektraltthet 2 2

Figur 1.4 Sannolikhetsfrdelning fr mottagen nolla + gaussiskt brus respektive etta + gaussiskt brus i en BSC.
0

P(r0|s1) =

1 2

x E /2 2dx

= subst.

x E =y = 2E N0
(1.2)

E/

= 1 2

E e y 2/2dy = Q = Q

Fr en BSC (Binary Symmetric Channel) r P(r0|s1) = P(r1|s0) och drfr r sannolikheten att mottagaren beslutar att en snd etta r en nolla lika stor som sannolikheten att mottagaren beslutar att en snd nolla r en ettad.v.s.

P(r1 |s0) = Q

2E N0

(1.3)

Hndelserna: s1 snd r0 mottagen och s0 snd r1 mottagen r msesidigt uteslutande varfr sannolikheten fr felbeslut, Pe, utgrs av summan av sannolikheterna fr dessa hndelser men ocks av sannolikheten fr att nolla respektive etta snts, se Figur 1.5.
Studentlitteratur

11

1 Introduktion till felkorrigerande kodning

Sndare P(s0)

P(r0|s0) Mottagare r0 P(r0|s1) P(r1|s0)

P(s1)

P(r1|s1)

r1

Figur 1.5 Modell av binr kanal. Om P(r0|s1) = P(r1|s0) r kanalen av typ BSC. Pe = P(s0) P(r1|s0) + P(s1) P(r0|s1) (1.4)

En mottagare som minimerar sannolikheten fr fel vid avkodning, givet den snda symbolen, maximerar sannolikheten fr riktig avkodning, 1 Pe = P(r|s), och kallas maximum likelihoodavkodare (MLH-avkodare): 1 Pe = P(s0) P(r0|s0) + P(s1) P(r1|s1) = P(r0,r1|s0,s1) = = P(r|s) (1.5) Vid mottagningen vet man dock inte vilken symbol som snts och fr de ovan angivna betingade sannolikheterna frutsattes att de snda symbolerna var givna. Men enligt Bayes teorem: P(s|r) = P(s) P(r|s ) P(r) (1.6)

kan vi istllet ange sannolikheten fr vilka symboler som snts, givet de mottagna: 1 Pe = P(r0) P(s0|r0) + P(r1) P(s1|r1) = P(s0,s1|r0,r1) = P(s|r)(1.7) En sdan mottagare som minimerar sannolikheten fr fel vid avkodning, givet den mottagna symbolen, maximerar sannolikheten fr riktig avkodning, 1 Pe = P(s|r), och kallas maximum aposterioriavkodare (MAP-avkodare).

12

Studentlitteratur

1.2 Modulation och demodulation

Under frutsttning att sannolikheterna fr de snda symbolerna, P(s0) och P(s1) r lika stora (= 1/2) kommer sannolikheterna fr de mottagna symbolerna, P(r0) och P(r1) med en BSC ocks att bli lika stora (= 1/2) och maximum likelihoodavkodaren och maximum aposterioriavkodaren ger samma resultat, d.v.s. felsannolikheten fr en BSC vid BPSK-modulation: Pe = 1 P(r1|s0) + 1 P(r0|s1) = Q 2 2 2E N0 (1.8)

1.2.1 Hrd och mjuk avkodning


Vid binr kodning har demodulatorn tv ingngar (M = 2). Vid binr demodulering kvantiseras utgngarna till tv niver (M = 2). Detta kallas att avkodaren gr hrda beslut (hrd avkodning). Denna avkodningsmetod r vanligast eftersom implementeringen r enkel. Om M > 2 bestms hur avkodningen skall gras med hjlp av s.k. sidoinformtion. Detta kallas att avkodaren gr mjuka beslut (mjuk avkodning). Denna metod r mer komplicerad n hrd avkodning men ger avsevrt bttre prestanda. Om signalerna p demodulator(= detektor)utgngen ven beror av tidigare signaler sgs kanalen ha minne. Om en kodad symbol verfrs p T sekunder r symbolverfringstakten 1 , I ett kodat system T med kodtakten R = k blir informationsverfringstakten R bit/s. n T Fr att minimera kanalens distorderande inverkan p detekteringsprocessen till fljd av kanalens begrnsade bandbredd, krvs att kanalens teoretiskt lgsta bandbredd W = 1 1 Hz. I ett okodat sys2T 1 = 2W . tem r datatakten T
verkliga bandbredden beror av signalens vgform, accepterad distorsion och bandbreddsdefinition.
Studentlitteratur 1 Den

13

1 Introduktion till felkorrigerande kodning

I ett kodat system r datatakten R = 2RW (R < 1), d.v.s. reducerad i T frhllande till det okodade systemet. Fr att upprtthlla samma datatakt mste bandbredden i det kodade systemet expanderas. Om ytterligare bandbredd inte r tillgnglig mste ngon annan metod n binr kodning anvndas.

1.3 Maximum Likelihoodavkodning


I mottagaren kvantiseras den mottagna signalen till ett binrt (generellt: M-rt M avkodningsniver) n-bits kodord och avkodas till ett k-bits meddelandeord i avkodaren. I ett faltningskodat system r u en sekvens med k L informationsbitar medan v r ett kodord med n L + n m symboler dr k L r informationssekvensens lngd. De tillkommande n m kodade symbolerna genereras efter det att det sista informationsblocket har pfrts kodaren. Ett avkodningsfel uppstr om uppskattningen v v . Avkodarens betingade felsannolikhet betecknas: P(E|r) = P(v v |r) Avkodarens felsannolikhet r: P(E) = P(E|r) P(r)
r

(1.9)

(1.10)

dr vi summerat ver alla mjliga mottagna kodvektorer. Avkodningsstrategin r att avkoda s att P(E) minimeras. Men minimering av P(v v |r) innebr att 1 P( v v |r) = P( v = v |r) maximeras.
14
Studentlitteratur

(1.11)

1.3 Maximum Likelihoodavkodning

Om alla kodord r lika sannolika, d.v.s. P(v) och P(r) r konstanta fr alla kodord och sekvenser r, r maximering av (1.11) ekvivalent med att maximera P(r|v). Fr en DMC (Discrete Memoryless Channel) r P(r|v ) = P(ri |v i)
i

(1.12)

En avkodare som maximerar (1.12) r en MLD (Maximum Likelihood Decoder). Fr att slippa utfra produkten denieras vanligen en loglikelihoodfunktion: logP(r|v ) = logP(ri |v i)
i

(1.13)

Maximering av log-likelihoodfunktionen ger en optimal avkodning frutsatt att alla kodord r lika sannolika.
Exempel 1.1 Avkodning med MLD vid BSC Sndare Mottagare 1p 0 0

p p
1 1p 1

n v = 1011001 r = 1111100 d(r,v) = 1 +1+1 = 3

t.ex.:

Figur 1.6 BSC. Fr en blockkod med lngden n r: logP(r|v) = d(r,v)logp + (n d(r,v))log(1 p) = d(r,v)log p + nlog(1 p) 1p (1.14)

Tolkning av (1.14): Om p < 1 avkodning enligt MLD innebr fr BSC, att avkodaren vljer det 2 kodord, som skiljer sig t frn det mottagna i minst antal positioner.
Studentlitteratur

15

1 Introduktion till felkorrigerande kodning

Shannon visade, att, fr en kanal med kapaciteten C (bit/s) och om R < C, det nns koder med takten R, som med MLD ger godtyckligt lg avkodningsfelsannolikhet P(E). Fr alla R < C nns det blockkoder med lngden n s att P(E) 2 n Eb(R) och faltningskoder av m:te ordningen2 s att P(E) 2 nA Ef(R) (1.16) (1.15)

dr kodens constraint length3 nA = (m + 1)n medan Eb(R) och Ef(R) r positiva funktioner av R gllande fr R < C och fullstndigt bestmda av kanalens egenskaper. (1.15) och (1.16) visar att felsannolikheten P(E) kan gras godtyckligt liten om n och nA grs stora under frutsttning att (m + 1)n R = n = nA = k k k (1.17)

d.v.s. genom att fr blockkoder ka n och k i samma proportion och fr faltningskoder ka m medan n och k hlls konstanta.

Slutsats: Lg avkodningsfelsannolikhet krver mycket lnga koder, vilket leder till mnga och komplicerade berkningar fr avkodaren det blir opraktiskt att ska uppn lg felsannolikhet m.hj.a. MLD.

Resten av boken gnas t att: Konstruera bra, lnga koder vars egenskaper med MLD skall satisera (1.15) och (1.16) och att nna ltt implementerbara metoder att koda och avkoda s att kodernas egenskaper kommer s nra som mjligt de som gr att uppn med MLD.
2 m:te ordningens 3 det frekommer

skiftregister = lngden av kodarens lngsta skiftregister. ven en definition nA = m + 1 fr constraint length.


Studentlitteratur

16

1.4 Feltyper

1.4 Feltyper
I minneslsa kanaler, random error channels, pverkar bruset varje symbol oberoende av de andra. I kanaler med minne, burst error channels (skurfelskanaler), r bruspverkan p successiva symboler inte oberoende. Figur 1.7 visar en modell av en sdan kanal (Gilbert-Elliot-modellen). Modellen har tv tillstnd, ett bra och ett dligt. Kanalen benner sig i det bra tillstndet den lngsta tiden, men kan ibland g ver i det dliga tillstndet till fljd av en djup fdningsdip, d.v.s. d signalbrusfrhllandet (SNR = Signal to Noise Ratio) blir mycket lgt. Vid sdana tillfllen kan era symboler efter varandra bli felaktiga.

q1 och q2 r vergngssannolikheter
1 q1 bra

q1 q1 q2 q2
dligt 1 q2

Tillstnd bra Sndare 0 1 p1 Mottagare 0

Tillstnd dligt Sndare 0 1 p2 Mottagare 0

p1 p1
1 1 p1 1 1 1 p2

p2 p2
1

p1 0

p2 0,5

Figur 1.7 Gilbert-Elliot-modell fr skurfelskanal.


Studentlitteratur

17

1 Introduktion till felkorrigerande kodning

1.5 Felkontrollstrategier
Fr system i vilka informationsdet endast gr i en riktning, sndare mottagare eller inspelning avspelning, mste felkorrigeringen utfras med hjlp av de redundanta bitarna i kodordet. Detta kallas FEC (= Forward Error Correction). I en del fall nns ocks en returkanal, varvid felupptckt och tersndning anvnds. Detta kallas ARQ (= Automatic Repeat reQuest). Den frmsta frdelen med ARQ i frhllande till FEC r att felupptckt r betydligt enklare n felkorrigering. Vid felupptckt begrs omsndning, d.v.s. meddelanden behver bara omsndas om fel upptckts. Detta gr att verfringshastigheten inte reduceras s mycket, tminstone inte om felsannolikheten r lg. ARQ frekommer framfrallt i trdbundna system dr felhalten i allmnhet r lgre n i trdlsa.

18

Studentlitteratur

2 Elementr algebra

2.1 Gruppbegreppet
En mngd G bestende av ett antal element sgs vara en grupp om vissa samband mellan elementen existerar. Denition 2.1 Gruppbegreppet En binr operation p G r en regel, som fr varje par element a och b p ett unikt stt tillordnar ett element c = a b, som ocks r element i G. Nr en sdan operation denieras p G, sgs G vara sluten under . Fljande binra operationer mste glla fr att G skall vara en grupp: 1. Associativitet: (a b) c = a (b c) fr a, b, c G. 2. Identitet: Det nns ett identitetselement e i G s att a e = e a = a fr a G. 3. Fr varje a G nns ett unikt inverselement a 1 s att a a 1 = e. Gruppen kan dessutom ha egenskapen att vara kommutativ eller abelsk om det fr varje par a, b gller att a b = b a.
Studentlitteratur

19

2 Elementr algebra

Om operationen r + sgs gruppen vara en additiv grupp. Om operationen r sgs gruppen vara en multiplikativ grupp.
Exempel 2.1 Exempel p grupper Mngden av alla heltal r en ondlig kommutativ grupp under addition. Identitetselementet r 0. Fr varje heltal i nns ett inverst heltal i s att i + ( i) = 0. Detta gller inte under multiplikation eftersom det d inte nns en multiplikativ invers. Mngden av alla rationella tal utom 0 formar en ondlig kommutativ grupp under multiplikation. Identitetselementet r 1 och fr varje rationellt tal, p , dr q q p q=1 p och q r heltal, nns ett inverst rationellt tal s att . p q p

Exemplen visar grupper med ondligt antal element. Det nns ocks grupper med ndligt antal element.
Exempel 2.2 Mngden G = {0,1} Deniera en binr operation modulo-2 addition p fljande stt: 0 0 = 0; 0 1 = 1; 1 0 = 1; 1 1 = 0 Mngden G = {0,1} r en grupp under modulo-2 addition r associativ 0 r identitetselement 0 r sin egen invers 1 r sin egen invers Mngden G r en kommutativ grupp under modulo-2 addition.

Antalet element i en mngd r mngdens kardinaltal. Antalet element i en grupp r gruppens ordning. kardinaltal = ordning. Fr kodning r ndliga grupper mest intressanta. En av de enklaste metoderna att konstruera ndliga grupper r m.hj.a. modulr aritmetik p heltal.
20
Studentlitteratur

2.1 Gruppbegreppet

Denition 2.2 Addition modulo m Addition modulo m uttrycks p fljande stt: a + b = c modulo m som fs genom att addera a och b p vanligt stt och drefter dividera resultatet med m; c r den uppkomna positiva resttermen.
Exempel 2.3 13 + 18 = 11 modulo 20 9 + 5 = 4 modulo 10 18 + 27 = 0 modulo 5 3 + 8 = 11 modulo 20 2 + 4 = 0 modulo 6 15 + 100 = 50 modulo 65

Addition modulo m grupperar den ondliga heltalsmngden i m distinkta ekvivalensklasser. Tv heltal a och b r i samma ekvivalensklass modulo m om a kan skrivas som a = x m + b fr ngot heltal x.
Exempel 2.4 Om m = 2 fr vi tv ekvivalensklasser, den ena bestende av alla jmna tal och den andra av alla udda tal.

Varje element i en ekvivalensklass modulo m r ekvivalent p s stt att det kan utbytas mot ett annat element i samma ekvivalensklass utan att ndra resultatet av modulo m operationen. Ekvivalensklasser bestende av heltal anges vanligen med sitt minsta icke-negativa tal.
Studentlitteratur

21

2 Elementr algebra Exempel 2.5 Ekvivalensklasser under modulo 5 addition etikett 0 1 2 3 4 ekvivalensklass {..., 20, 15, 10, 5,0,5,10,...} {..., 19, 14, 9, 4,1,6,11,.....} {..., 18, 13, 8, 3,2,7,12,.....} {..., 17, 12, 7, 2, 3, 8,13,....} {..., 16, 11, 6, 1,4,9,14,......}

I fortsttningen refereras till en ekvivalensklass genom dess etikett. Teorem 2.1 Ekvivalensklasserna {0,1,2,3,...,m 1} formar en kommutativ grupp av m:te ordningen under modulo m heltalsaddition fr varje positivt heltal m.
Exempel 2.6 Gruppen med ordning 7 under modulo 7 addition + 0 1 2 3 4 5 6 0 0 1 2 3 4 5 6 1 1 2 3 4 5 6 0 2 2 3 4 5 6 0 1 3 3 4 5 6 0 1 2 4 4 5 6 0 1 2 3 5 5 6 0 1 2 3 4 6 6 0 1 2 3 4 5

Multiplikation modulo m ver heltal utfrs p liknande stt som addition modulo m d.v.s. resultatet av multiplikationen divideras med m och den positiva resten behlls som resultatet av den modulra operationen.
22
Studentlitteratur

2.1 Gruppbegreppet Exempel 2.7 11 5 = 15 modulo 20 9 7 = 13 modulo 50 4 17 = 0 modulo 2 6 4 = 6 modulo 18 2 5 = 0 modulo 10 6 5 = 0 modulo 6

Den avgrande skillnaden mellan modulr addition och modulr multiplikation r att den senare inte kan skapa en ndlig grupp av heltalen och en godtycklig modul.
Exempel 2.8 {1,2,3,4,5,6,7} under modulo 8 heltalsmultiplikation Eftersom 2 4 = 0 modulo 8 och 0 inte ingr i mngden r operationen inte sluten ver mngden och vi har inte en grupp. ven om vi lter 0 ing i mngden fr vi nd inte en grupp eftersom 0 inte har en multiplikativ invers, d.v.s. det nns inget x s att 0 x = 1 modulo 8. Problemet ligger i att mngden {1,2,3,4,5,6,7} har tskilliga nolldivisorer. En nolldivisor utgrs av ett godtyckligt nollskilt tal a fr vilket det nns ett nollskilt b s att a b = 0 modulo m.

I allmnhet
Om modulen m har andra faktorer n 1 i en given mngd s har denna mngd nolldivisorer under modulo m multiplikation.

Slutsats
Fr att kunna konstruera en multiplikativ analogi till det frut givna Teorem 2.1 mste vi begrnsa vra moduler m till primtal. Teorem 2.2 Elementen S = {1,2,3,...,p 1} formar en grupp under modulo p multiplikation omm (= om och endast om) p r ett primtal.
Studentlitteratur

23

2 Elementr algebra Exempel 2.9 Gruppen av ordning 6 under modulo 7 multiplikation 1 2 3 4 5 6 1 1 2 3 4 5 6 2 2 4 6 1 3 5 3 3 6 2 5 1 4 4 4 1 5 2 6 3 5 5 3 1 6 4 2 6 6 5 4 3 2 1

P samma stt som en grupp har en ordning har vart och ett av elementen i gruppen en ordning. Dessa tv ordningsbegrepp, gruppens ordning och ett elements ordning r beslktade men inte lika. Denition 2.3 Ordningen, ord(g), fr ett gruppelement g g r ett element i gruppen G med gruppoperationen . Ordningen fr g r det minsta heltal, ord(g), s att gord(g) r gruppens identitetselement.
Exempel 2.10 Gruppen av ordning 6 under modulo 7 multiplikation element 1 2 3 4 5 6 ordning 1 3 6 3 6 2

24

Studentlitteratur

2.1 Gruppbegreppet

Lt S vara en delmngd av gruppen G. S r en delgrupp till G om S r sluten under de gruppoperationer som gller fr G och i vrigt satiserar alla gruppvillkor. En delgrupp r drmed ocks en grupp. En delgrupp S r en kta delgrupp till G om S
Exempel 2.11 Heltalsgruppen under modulo 9 addition innehller de kta delgrupperna {0} och {0,3,6}. Heltalsgruppen under modulo 16 addition innehller de kta delgrupperna {0},{0,8}, {0,4,8,12} och {0,2,4,6,8,10,12,14}.

G men S G.

I de diskuterade modulo-operationerna har det sagts att tv heltal r ekvivalenta om de skiljer sig t ett heltal ggr modulo m. Denna id kan generaliseras genom att lta modulen vara en delgrupp S. P s stt kan ekvivalensklasser konstrueras vars ingende element skiljer sig t i ngot element i S. Ekvivalensklasserna kallas sidoklasser (eng. cosets).

Exempel 2.12 Sidoklasser Heltalsgruppen G under modulo 9 addition innehller den kta delgruppen S = {0,3,6}. De till S hrande distinkta sidoklasserna r {0,3,6}, {1,4,7} och {2,5,8}. sidoklassledare sidoklass {0,3,6} {1,4,7} {2,5,8} ekvivalensklass ...,{ 9, 6, 3},{0,3,6},{9,12,15},... ...,{ 8, 5, 2},{1,4,7},{10,13,16},... ...,{ 7, 4, 1},{2,5,8},{11,14,17},...

Exempel 2.13 Sidoklasser Heltalsgruppen G under modulo 16 addition innehller bl.a. en kta delgrupp S = {0,4,8,12}, som bestr av de distinkta sidoklasserna {0,4,8,12}, {1,5,9,13}, {2,6,10,14} och {3,7,11,15} sidoklassledare
Studentlitteratur

25

2 Elementr algebra sidoklass {0,4,8,12} {1,5,9,13} ekvivalensklass ...,{ 16, 12, 8, 4},{0,4,8,12},{16,20,24,28},... ...,{ 15, 11, 7, 3},{1,5,9,13},{17,21,25,29},...

{2,6,10,14} ...,{ 14, 10, 6, 2},{2,6,10,14},{18,22,26,30},... {3,7,11,15} ...,{ 13, 9, 5, 1},{3,7,11,15},{19,23,27,31},...

2.2 Ringar
En ring r en samling element R med tv binra operationer + och denierade och med fljande egenskaper: 1. 2. R utgr en kommutativ additiv grupp. Det additiva identitetselementet r 0. Multiplikationsoperationen r associativ: (a b) c = a (b c) fr a, b, c R 3. Multiplikationsoperationen distribueras ver additionsoperationen a (b + c) = (a b) + (a c) 4. En ring r en kommutativ ring om a b = b a (multiplikationsoperationen r kommutativ) 5. En ring r en ring med identitet om Multiplikationsoperatorn har ett identitetselement 1.

Exempel 2.14 Matriser med heltalselement utgr en ring med identitet vid normal matris-addition och -multiplikation. Identitetsmatrisen ger egenskapen multiplikativ identitet. Matrismultiplikation r i allmnhet inte kommutativ vi har en icke-kommutativ ring med identitet.

26

Studentlitteratur

2.3 Talkroppar (eng. Fields) Exempel 2.15 Heltal under modulo m addition och multiplikation formar en kommutativ ring med identitet. Exempel 2.16 Mngden av alla polynom med binra koefcienter formar en kommutativ ring under vanlig polynom-addition och -multiplikation. En sdan ring kallas F2[x] eller GF(2)[x].

2.3 Talkroppar (eng. Fields)


F r en mngd element p vilken vi kan utfra de fyra rknestten utan att lmna mngden. Denition 2.4 Talkroppsbegreppet F r en mngd objekt med operationerna + och denierade. F r en talkropp om 1. 2. F r en additiv kommutativ grupp med det additiva identitetselementet 0. F exklusive det additiva identitetselementet 0 r en multiplikativ kommutativ grupp med det multiplikativa identitetselementet 1. Multiplikation distribueras ver addition, d.v.s. a (b + c) = (a b) + (a c). En talkropp kan ocks denieras som en kommutativ ring med identitetselement och i vilken varje element har en multiplikativ invers.
Exempel 2.17 Olika ondliga talkroppar De rationella talen utgr en av de minsta ondliga talkropparna (kardinaltal 0, alef-noll). De reella talen liksom de komplexa utgr ondliga talkroppar.
Studentlitteratur

3.

27

2 Elementr algebra Heltalen utgr inte en talkropp eftersom de esta heltalen inte har en multiplikativ invers.

Talkroppar med ndlig ordning (= kardinaltal) r speciellt intressanta fr kodningsteorin. ndliga talkroppar upptcktes av variste Galois och kallas ocks Galois-talkroppar. En Galois-talkropp av ordning q betecknas GF(q). Den enklaste Galois-talkroppen r GF(2) som t.ex. kan representeras av mngden {0,1} med vanlig binr addition och multiplikation. + 0 1 0 0 1 1 1 0 0 1 0 0 0 1 0 1

Galois-talkroppar av ordningen p dr p r ett primtal kan konstrueras med hjlp av Teorem 2.1 och Teorem 2.2. Heltalsmngden {1,2,...,p 1} formar en multiplikativ kommutativ grupp modulo p och heltalsmngden {0,1,2,...,p 1} formar en additiv kommutativ grupp modulo p. Vid heltalsaritmetik distribueras multiplikation ver addition och vi har drfr enligt Denition 2.4.3 en talkropp
Exempel 2.18 Anvnd heltalsmngden {0,1,2} under modulo 3 addition och multiplikation. Multiplikativ distribution ver addition r skrad genom att stta 0 a = 0 fr a GF(3) + 0 1 2 0 0 1 2 1 1 2 0 2 2 0 1 1 2 1 1 2 2 2 1

28

Studentlitteratur

2.4 Vektorrum

ndliga talkroppar av primtalsordning r ltt att konstruera. Det nns ven andra ordningar, som ger ndliga talkroppar, men q i GF(q) fr inte vara ett godtyckligt heltal, endast q = pm dr p r ett primtal och m ett heltal r mjliga. GF(q) = GF(pm) r en utvidgningstalkropp (eng. extension eld) till GF(p). Fr att konstruera talkroppar av ordning pm mste andra mer komplexa metoder n modulorkning anvndas.

2.4 Vektorrum
Lt V vara en mngd element kallade vektorer och F en talkropp bestende av element kallade skalrer. 1. 2. V r en kommutativ grupp under +. Fr ett godtyckligt element a F och v V r a v = u V. 3. + och distribueras: a (u + v) = a u + a v och (a + b) v = a v + b v. 4. Associativitet: Fr a, b F och v V gller att (a b) v = a (b v). 5. Det multiplikativa identitetselementet 1 i F fungerar som multiplikativt identitetselement vid skalr multiplikation fr v V och 1 v = v.

F kallas skalrkroppen eller grundkroppen av vektorrummet V. n-tupeln v = (v0,v1,...,vn 1) av elementen {vj} tagen frn grundkroppen F r ett slags vektor. vektoraddition: u + v = (u0 + v0, u1 + v1, u2 + v2,...,un 1 + vn 1) skalr multiplikation: a v = (a v0, a v1,a v2,...,a vn 1).
Studentlitteratur

29

2 Elementr algebra Exempel 2.19 En samling vektorer G = {v1,v2,...,vn} med alla linjrkombinationer spnner upp ett vektorrum V. Exempel 2.20 Vektorerna {(1000),(0110),(1100),(0011),(1001)} spnner upp rummet V4. Dessa fem vektorer r nmligen linjrt beroende, d.v.s. en av dem t.ex. (1001) kan fs som en linjrkombination av de vriga (0110) + (1100) + + (0011) = = (1001).

Denition 2.5 En bas fr V En bas fr V r den mngd vektorer, som har lgst kardinaltal och som spnner upp V.
Exempel 2.21 En kanonisk bas fr V4 r {(1000),(0100),(0010),(0001)}.

Denition 2.6 Dimensionen hos en bas En bas fr V med k element har dimensionen k dim(v) = k. Denition 2.7 Vektordelrum Mindre vektorrum inne i V kallas vektordelrum och deras frhllande till vektorrummet V r av avgrande betydelse fr teorin fr linjra blockkoder. Denition 2.8 Duala vektorrum Om S r ett k-dimensionellt vektordelrum av ett vektorrum V s r S det till S hrande duala vektordelrummet om det fr varje u S och varje v S gller att u v = 0.
Anm.: Lgg mrke till att S och S inte r msesidigt uteslutande eftersom 0 nns i bda, det nns t.o.m. vektordelrum fr vilka det gller att S = S.

Det gller ocks att dim(S) + dim(S) = dim(V).


30
Studentlitteratur

2.5 Grundlggande egenskaper hos Galois-talkroppar

2.5 Grundlggande egenskaper hos Galois-talkroppar


En Galois-talkropp r fullstndigt specicerad och drmed unik genom sin ordning.
Exempel 2.22 Lt vara ett element i GF(q) medan 1 r det multiplikativa identitetselementet. Eftersom GF(q) r sluten under , nns fljande element i GF(q) 1,,2,3,4,... men antalet element r ndligt ngonstans uppstr en repetition och det frsta element som repeteras r 1.

Denition 2.9 Ordningen hos ett talkroppselement Om r ett element i GF(q) s r ordningen hos , ord() = det minsta positiva heltal m som ger m = 1.
Anm.: Denna denition r densamma som ordningen fr ett gruppelement men den denierade ordningen gller den multiplikativa operationen, inte den additiva.

Denition 2.10 Primitivt element Ett element med ordningen (q 1) i GF(q) kallas ett primitivt element i GF(q).

Den multiplikativa strukturen hos Galois-talkroppar


Teorem 2.3 Ordningen fr varje element delare till q 1, eller ord()|(q 1). Denition 2.11 Eulers -funktion Antalet element med ord(), dr GF(q), kan berknas med hjlp av Eulers -funktion som betecknas (t):
Studentlitteratur

GF(q) r

31

2 Elementr algebra

(ord()) = ord()

p|ord()

11 p

(2.1)

dr produkten utfrs ver alla positiva heltal p < ord() dr p|ord() och (1) = 1. Av Denition 2.11 fljer att: Om p r ett primtal (p) = p 1 eftersom alla nollskilda element r relativt prima till ett primtal. Om p1 och p2 r tv olika primtal (p1 p2) = (p1) (p2) = = (p1 1)(p2 1). Om p r ett primtal (pm) = pm 1(p 1). Om p1 och p2 r tv olika primtal m n m n p1 p2 = p1 1 p2 1(p1 1)(p2 1) .
Exempel 2.23 Elementens ordning i GF(11) Enligt Teorem 2.3 r de frekommande ordningarna till elementen i GF(11) delare till 10, d.v.s. 1, 2, 5 och 10. Antalet element med ordning 1 r (1) = 1, antalet element med ordning 2 r, eftersom 2 r ett primtal, (2) = 2 1 = 1, antalet element med ordning 5 r, eftersom 5 r ett primtal, (5) = 5 1 = 4, antalet element med ordning 10 r

(10) = 10 1 1 = 10 1 1 1 1 = 4 , d.v.s. det nns 4 primitiva p p|10 2 5 element i GF(11).


En underskning visar att: elementet med ordning 1 r 1, elementet med ordning 2 r 10, elementen med ordning 5 r 3, 4, 5 och 9, elementen med ordning 10 r 2, 6, 7 och 8. Om vi istllet kallar elementen i GF(11) {0,1,,2,3,4,5,6,7,8,9}, s fr vi att elementet med ordning 1 r 1, elementet med ordning 2 r 5,

32

Studentlitteratur

2.5 Grundlggande egenskaper hos Galois-talkroppar elementen med ordning 5 r 2, 4, 6och 8, elementen med ordning 10 r ,3,7och 9.

Den additiva strukturen hos Galois-talkroppar


Betrakta elementen i en Galois-talkropp uppkomna genom addition 0,1,1 + 1,1 + 1 + 1,1 + 1 + 1 + 1,... Antalet element r ndligt ngonstans uppstr en upprepning. Deniera m(1) = summan av m stycken ettor. Denition 2.12 Talkroppens karakteristik Karakteristiken fr en Galois-talkropp GF(q) r det minsta antal ettor, m, som gr att m(1) = 0. I en Galois-talkropp med karakteristiken p gller allts att p() = 0 fr GF(q) eftersom p() = p( 1) = p(1) = 0 = 0. Om q p gller att pm = q och p r ett primtal.

Primitiva polynom och Galois-talkroppar av ordningen pm


Det som ska visas i detta avsnitt bygger p ngra redan erhllna resultat, nmligen: 1. 2. GF(q) kan representeras av 0 och q 1 konsekutiva potenser av ett primitivt element GF(q). Multiplikation i en Galois-talkropp, som inte har primtalsordning kan drfr gras genom att representera elementen som potenser av och addera exponenterna modulo (q 1). GF(q) innehller en delkropp av ordning p vars additiva operation r heltalsaddition modulo p.
33

3.

Studentlitteratur

2 Elementr algebra

I detta avsnitt ska den additiva operationen utstrckas till att glla hela GF(q) = GF(pm). Metoden fr detta grundar sig p polynom vars koefcienter tas frn GF(q) (i detta fall behver q inte vara ett primtal men msta vara en potens av ett primtal). Vi infr beteckningen GF(q)[x] fr alla polynom av godtyckligt gradtal av x med koefcienterna {ai} frn den ndliga talkroppen GF(q). Om q = pm kan man tnka sig olika fall, d.v.s. koefcienterna kan tas frn GF(p), GF(p2),...,GF(pm) = GF(q).
Exempel 2.24 (x5 + x2) + (x2 + x +1) = x5 + 2x2 + x + 1 (x5 + x2) + (x2 + x +1) = x5 + x + 1 GF(3)[x]

GF(2)[x]

Denition 2.13 Irreducibla polynom Ett polynom f(x) r irreducibelt i GF(q)[x] om f(x) inte kan faktoriseras i en produkt av lgre grads polynom i GF(q)[x].
Exempel 2.25 Polynom av grad 2 i GF(2)[x], som nns r x2 + x + 1 irreducibelt, ingen rot x2 + x = x(x + 1) rtter: x = 0 och x = 1 x2 + 1 = (x + 1)2 dubbelrot: x = 1 x2 = x x dubbelrot: x = 0 men x2 + x + 1 = (x 1)2 i GF(3)[x]

Teorem 2.4 Varje irreducibelt polynom ver GF(2)[x] av m grad m r delare till x 2 1 + 1 .
34
Studentlitteratur

2.5 Grundlggande egenskaper hos Galois-talkroppar

Denition 2.14 Primitiva polynom Ett irreducibelt polynom p(x) GF(p)[x] av grad m kallas primitivt om det minsta heltal n fr vilket p(x) r delare till xn 1 r n = pm 1. Ett primitivt polynom p(x) GF(p)[x] r alltid irreducibelt i GF(p)[x] men irreducibla polynom r inte alltid primitiva. Teorem 2.5 Rtterna { j} till ett m:te grads primitivt polynom p(x) GF(p)[x] r av ordning pm 1. Av detta fljer: En rot till p(x) r . r av ordning pm 1. De pm 1 konsekutiva potenserna av genererar en multiplikativ grupp som r av ordning pm 1. Multiplikationsoperationen grs genom att addera potensexponenten modulo pm 1. Exponentrepresentationen kan uttryckas genom att reducera sekvensen av potenser modulo det primitiva polynomet.

Exempel 2.26 Konstruktion av GF(8) p(x) = x3 + x + 1 r primitivt i GF(2)[x] eftersom det minsta polynom av formen xn 1 fr vilket p(x) r divisor mste vara xp
m1

1 = x2

31

1 = x7 1.

Till att brja med kontrollerar vi att p(x) inte r divisor till ngot polynom av lgre gradtal n 7: 1. Det framgr direkt att p(x) = x3 + x + 1 inte r divisor till x3 1. 2. r p(x) = x3 + x + 1 divisor till x4 1? x x4 + 1 x4 + x2 + x x2 + x + 1

x3

+x+1

Nej, eftersom divisionen inte gick jmnt upp.

Studentlitteratur

35

2 Elementr algebra 3. r p(x) = x3 + x + 1 divisor till x5 1? x3 + x + 1 x2 + 1 x5 + 1 x5 + x3 + x2 x3 + x2 + 1 x3 + x + 1 x2 + x

Nej, eftersom divisionen inte gick jmnt upp. 4. r p(x) = x3 + x + 1 divisor till x6 1? x3 +x+1 x3 + x + 1 x6 + 1 x6 + x4 + x3 x4 + x3 + 1 x4 + x 2+ x x3 + x 2 + x + 1 x3 +x+1 x2

Nej, eftersom divisionen inte gick jmnt upp. 5. r p(x) = x3 + x + 1 divisor till x7 1? x3 x4 + x2 + x + 1 x7 + 1 x7 + x5 + x4 x5 + x4 + 1 x5 + x3 + x2 x4 + x3 + x2+ 1 x4 + x2 + x x3 + x + 1 x3 + x + 1 0

+x+1

Ja, eftersom divisionen gick jmnt upp och vi har drmed visat att p(x) = x3 + x + 1 r primitivt i GF(2)[x]. Lt vara en rot till p(x). De 8 elementen i GF(8) kan skrivas p fljande stt dr mngden {1,,2} r en bas fr vektorformrepresentationen:

36

Studentlitteratur

2.5 Grundlggande egenskaper hos Galois-talkroppar exponentialform 0 1 polynomform 0 1 vektorform 000 100 010 001 110 011 111 101

2 3 4 5 6 2

2 +1 2 2
+ +1 ++1

Exempel 2.27 Konstruktion av GF(16) = GF(24) p(x) = x4 + x + 1 r ett primitivt polynom ver GF(2) exponentialform 0 1 polynomform 0 1 vektorform 0000 1000 0100 0010 0001 1100 0110 0011 1101 1010 0101 1110 0111 1111 1011 1001

2 3 4 5 6 7 8 9 10 11 12 13 14

Studentlitteratur

2 3 +1 2
+

3 + 2 2 + 3 + 2

3 + + 1
+1

3 +

+1
++1 +1 1

3 + 2 + 3 + 2

3 +

37

2 Elementr algebra

Vi kan konstatera att polynomrepresentationen av den ndliga kroppen GF(pm) har koefcienter frn grundkroppen GF(p). GF(pm) kan drfr tolkas som ett vektorrum med m dimensioner ver GF(p). GF(pm) kallas ibland utvidgningstalkropp till GF(p). P samma stt som grupper kan innehlla mnga delgrupper, kan en talkropp GF(pm) innehlla deltalkroppar GF(pb), dr b r delare till m.
Exempel 2.28 GF(64) = GF(26) innehller GF(26), GF(23), GF(22) och GF(2) som deltalkroppar.

Teorem 2.6 Ett element omm q = .

i GF(qm) nns i deltalkroppen

Exempel 2.29 Deltalkroppselement i GF(64)

r ett primitivt element i GF(64) = GF(26). Enligt fregende exempel finns deltalkropparna GF(64), GF(8), GF(4) och GF(2).
Ett element j r i en deltalkropp GF(q) omm j q = j modulo 63. GF(64) = {0,1,1,2,...,62} GF(8): j 8 n 63 = j n = 1 j = 9; n = 2 j = 18 o.s.v. GF(8) = {0,1,9,18,27,36,45,54} GF(4): j 4 n 63 = j n = 1 j = 21; n = 2 j = 42 GF(4) = {0,1,21,42} GF(2) = {0,1}

38

Studentlitteratur

2.6 Minimalpolynom och konjugatelement

2.6 Minimalpolynom och konjugatelement


Vid konstruktion av algebraiska koder fokuserar vi p val av polynom ver ndliga talkroppar med en specicerad mngd rtter valda ur en given talkropp GF(qm). Polynomens koefcienter tas ur deltalkroppen GF(q). Polynomen skall ha minimalt gradtal. Denition 2.15 Minimalpolynom

r ett element i talkroppen GF(qm).


Minimalpolynomet i med avseende p GF(q) r det nollskilda lgstagradspolynom p(x) i GF(q)[x] fr vilket p() = 0. Kunskap om faktorisering av hgre ordningars talkroppar i minimalpolynom r viktig fr frstelsen av cykliska koder. Den viktigaste frgestllningen vid konstruktion av en sdan kod r: Om vi vill att ett polynom p(x) med koefcienter frn GF(q) skall ha en rot frn GF(qm), vilka vriga rtter mste polynomet ha? Fr att angripa detta problem brjar vi med en denition. Denition 2.16 Konjugater till talkroppselement Om r ett godtyckligt element i GF(qm) s r :s konjugater med avseende p deltalkroppen GF(q): , , , ,... Tag t.ex. elementet = . Det gller att alla konjugater:
q0 q1 q2 q3

q , q , q , q ,... till med avseende p GF(q) formar en konjugatklass.


0 1 2 3

Teorem 2.7 Konjugatklassen

GF(qm) med avseende p d GF(q) innehller d element med q = och d|m (d r delare (= divisor) till m).

Varje ndlig talkropp innehller ett ndligt antal element. Efter att elementen angivits upprepas de: q , q , q ,..., q = q .
0 1 2 d 0

Studentlitteratur

39

2 Elementr algebra Exempel 2.30

r ett primitivt element till GF(24) = GF(16). = 5 r ett element av 3:e ordningen (5, 10, 1) i GF(16). Konjugaterna till med avseende p GF(2) r , 2 , 2 = , 2 , 3 + 1 = , 2 , .
Konjugatklassen till med avseende p GF(2) r {,2}. Exempel 2.31
2

r ett primitivt element till GF(52) = GF(25). = 4 r ett element av 6:e ordningen (4, 8, 12, 16 , 20 , 1) i GF(25). Konjugaterna till med avseende p GF(5) r , 5 , 5 , 5 , 5 , 5 = , 5 , 25 , 125 , 625 , 15625 =
= , 5 , , 5 , , 5 Konjugatklassen till med avseende p GF(5) r {,5}.
2 3 4 5

Teorem 2.8 Lt vara ett element i GF(qm). Om p(x) r minimalpolynomet i med avseende p GF(q) s r rtterna till p(x) konjugaterna till med avseende p GF(q).
Exempel 2.32 Minimalpolynomen till elementen i GF(8) med avseende p GF(2), p(x) = x3 + x + 1. exponentialform 0 1 polynomform 0 1 vektorform 000 100 010 001 110 011 111 101

2 3 4 5 6

2 +1 2 2
+ +1

2 + + 1

De 8 elementen i GF(8) ordnas i konjugatklasser och motsvarande minimalpolynom berknas:

40

Studentlitteratur

2.6 Minimalpolynom och konjugatelement konjugatklass {0} {1} {1,2,4} {3,6,5} associerat minimalpolynom M.(x) = (x 0) = x M0(x) = (x 1) = x + 1

1(x) = (x )(x 2)(x 4) = x3 + x + 1 3(x) = (x 3)(x 6)(x 5) = x3 + x2 + 1

Exempel 2.33 Minimalpolynom till elementen i GF(16). med avseende p GF(4), p(x) = x4 + x + 1 exponentialform 0 1 polynomform 0 1 vektorform 0000 1000 0100 0010 0001 1100 0110 0011 1101 1010 0101 1110 0111 1111 1011 1001

2 3 4 5 6 7 8 9 10 11 12 13 14

2 3 +1 2
+

3 + 2 2 + 3 + 2

3 + + 1
+1

3 +

+1
++1 +1 1

3 + 2 + 3 + 2

3 +

De skta minimalpolynomen har koefcienter frn GF(4) som r en deltalkropp till GF(16). Deltalkroppselementen i GF(4) kan identieras eftersom man vet att element i GF(4) satiserar sambandet 4 = (se Teorem 2.6) och elementen i GF(4) r (se ven Exempel 2.29):

Studentlitteratur

41

2 Elementr algebra j 4 n 15 = j n = 1 j = 5; n = 2 j = 10 GF(4) ={0,1,5,10}

konjugatklass {0} {1} {1,4} {2,8} {3,12} {5} {6,9} {7,13} {10} {11,14}

associerat minimalpolynom M.(x) = (x 0) = x M0(x) = (x 1) = x + 1

1(x) = (x )(x 4) = x2 + x + 5 2(x) = (x 2)(x 8) = x2 + x + 10 3(x) = (x 3)(x 12) = x2 + 10x + 1 5(x) = (x 5) = x + 5 6(x) = (x 6)(x 9) = x2 + 5x + 1 7(x) = (x 7)(x 13) = x2 + 5x + 5 10(x) = (x 10) = x + 10 11(x) = (x 11)(x 14) = x2 + 10x + 10

Exempel 2.34 Minimalpolynom till elementen i GF(16) med avseende p GF(2) konjugatklass {0} {1} { , , , }
1 2 4 8

associerat minimalpolynom M.(x) = (x 0) = x M0(x) = (x 1) = x + 1

1(x) = (x )(x 2)(x 4)(x 8) = x4 + x + 1 3(x) = (x 3)(x 6)(x 12)(x 9) = x4 + x3 + x2 + x + 1 5(x) = (x 5)(x 10) = x2 + x + 1 7(x) = (x 7)(x 14)(x 13)(x 11) = x4 + x3 + 1

{3,6,12,9} {5,10} {7,14,13,11}

42

Studentlitteratur

2.6 Minimalpolynom och konjugatelement

Faktorisering av xn 1
Multiplicera ihop alla associerade minimalpolynom i det senaste exemplet: M.(x) M0(x) M1(x) M3(x) M5(x) M7(x) = x16 + x = x(x15 + 1), d.v.s. M0(x) M1(x) M3(x) M5(x) M7(x) = x15 + 1 och generellt: I Teorem 2.3 utsades att varje element GF(qm) har en ordning, ord(), som r delare till (qm 1). Drav fljer: Teorem 2.9 Mngden av alla nollskilda element i GF(qm) m utgr den totala mngden rtter till x q 1 1 = 0 (n = qm 1 i exemplet r 15 = 24 1) eller, vilket r ekvivalent, elementen i GF(qm) r (qm 1):e enhetsrtter. Anvndningen av konjugatklasser vid faktorisering av polynom p formen x q m 1 1 kan utvidgas till den mer generella formen xn 1. Alla rtter till xn 1 r n:te enhetsrtter och det gller bara (se Teorem 2.3) att hitta den utvidgningstalkropp, qm, fr vilken det gller att n|(qm 1).
Exempel 2.35 Faktorisera x9 1 i GF(2)[x]. Lt vara en 9:e enhetsrot, d.v.s. ett element med ordning 9 nns i en talkropp GF(2m) dr 9|(2m 1) och dr vi berknar minsta m med Mathematica: For[m = 1, IntegerQ[(2m - 1)/9] == False, m++]; m 6 Hur mnga gnger gr 9 i 26 1? (26-1)/9
Studentlitteratur

43

2 Elementr algebra 7 Frst berknar vi konjugatklasserna. Frst har vi alltid konjugatklassen {1}. vriga konjugatklasser berknar vi med hjlp av Mathematica For[m = 1; M1 = , !Mod[2 m, 9] == 1, m = Mod[2 m, 9],
Mod[2 m, 9]]]];

M1 = Flatten[Append[{M1}, { , 2 , 4 , 8 , 7 , 5}

M1

Nu kan vi teckna motsvarande minimalpolynom p faktoriserad form: mp1 = Times @@ Apply[Plus, {x, M1}]

(x + )(x + 2)(x + 4)(x + 5)(x + 7)(x + 8) Eftersom 3 fattas r frsta elementet i nsta konjugatklass 3: For[m = 3; M3 = m = Mod[2 m, 9], M3 = Flatten[Append[{M3}, {
3, 6} Mod[2 m, 9]]]]; 3,

!Mod[2 m, 9] == 3,

M3

Motsvarande minimalpolynom: mp3 = Times @@ Apply[Plus, {x, M3}]

(x + 3)(x + 6) Lt vara ett primitivt element i GF(26). Fr ett element av 9:e ordningen gller d att = 7. Elementen i GF(26) kan anges p exponentialform reducerade modulo ett primitivt polynom. Ett primitivt polynom med avseende p GF(26) r 1 + + 6. Fr att bestmma minimalpolynomen lter vi Mathematica frst utfra bytet 7 mp1 = mp1 /. ->
7

(x + 7)(x + 14)(x + 28)(x + 35)(x + 49)(x + 56)

44

Studentlitteratur

2.7 Algebra med Mathematica mp3 = mp3 /. ->


7

(x + 21)(x + 42) och drefter kan vi f minimalpolynomen p polynomform: mp0 = 1 + x; mp1 = PolynomialMod[PolynomialMod[mp1 , 1 + 1 + x3 + +
6],

2]

x6

mp3 = PolynomialMod[PolynomialMod[mp3 , 1 + +
6],

2]

1 + x + x2

2.7 Algebra med Mathematica


Ladda paketen FiniteFields och MatrixManipulation: Needs["Algebra`FiniteFields`"] Needs["LinearAlgebra`MatrixManipulation`"] Vi brjar med att underska GF(2): GF[2] GF[2, {0, 1}] Hr betyder {0,1} ett irreducibelt polynom, p(x) = 0 x0 + 1 x1, som man kan ta reda p genom fljande operation IrreduciblePolynomial[x, 2, 1] x
Studentlitteratur

45

2 Elementr algebra

Elementen reduceras modulo det irreducibla polynomet p(x) = x, d.v.s. elementen r: 0, 1. Undersk hur mnga element som nns i GF(2): FieldSize[GF[2]] 2 Vi antar att elementen i GF(2) r 0 och 1. Hur anges elementen i Mathematica? GF[2][{0}] {0}2 GF[2][{1}] {1}2 I en utvidgningstalkropp (extension eld), t.ex. fld1 = GF[16] GF[2, {1, 0, 0, 1, 1}] eller GF[2, 4] GF[2, {1, 0, 0, 1, 1}] kan vi underska modulo vilket polynom elementen reduceras: IrreduciblePolynomial[ , 2, 4] 1 + 3 + 4 eller FieldIrreducible[fld1,
46

]
Studentlitteratur

2.7 Algebra med Mathematica

1 + 3 + 4 Antalet element r FieldSize[fld1] 16 Alla element utom 0 kan genereras som potenser av ett primitivt element modulo det irreducibla polynomet p() = 1 + 3 + 4 elementlista1 = Table[ElementToPolynomial[fld1[PowerList[fld1][[k]]], ], {k, 1, FieldSize[fld1] 1}] {1,,2,3,1+3,1++3,1++2+3,1++2, +2+3,1+2,+3,1+2+3,1+,+2,2+3} eller p matrisform: MatrixForm[elementlista1] 1 2 3 1+ 3 1++ 3 1++ 2+ 3 1++ 2 + 2+ 3 1+ 2 + 3 1+ 2+ 3 1+ + 2 2+ 3
Studentlitteratur

47

2 Elementr algebra

Vi kan utfra multiplikation och addition i GF(16). Fr att gra detta gr vi om elementen till polynomform. Kopiera tv element frn ovanstende matris och gr om dem till elementform. a1 = PolynomialToElement[fld1, 1 + {1,1,0,0}2 b1 = PolynomialToElement[fld1, {0,0,1,1}2 Multiplicera ihop elementen: a1 b1 {1,0,1,1}2 Omvandla ter till polynomform: ElementToPolynomial[a1 b1, 1 + 2 + 3 Berkna summan: ElementToPolynomial[a1 + b1, ] 1 + + 2 + 3 Minimalpolynom Vi undersker minimalpolynomen till elementen i GF(16) med avseende p GF(4). GF(4) r en delkropp av GF(16) med elementen {0,1,5,10}, Vi denierar ett annat irreducibelt polynom n Mathematicas defaultpolynom. fld2 = GF[2, {1, 1, 0, 0, 1}] GF[2, {1, 1, 0, 0, 1}]
48
Studentlitteratur

2.7 Algebra med Mathematica

elementlista2 = Table[ElementToPolynomial[fld2[PowerList[fld2][[k]]] ], {k, 1, FieldSize[fld2] - 1}] {1,,2,3,1+,+2,2+3,1++3,1+2, +3,1++2,+2+3,1++2+3,1+2+3,1+3} Fr att t.ex. berkna det till konjugatklassen {2,8} associerade minimalpolynomet (x + 2)(x + 8) kan vi gra s hr: c2 = Apart[(x +
2)

(x +

8)]

x2 + x2 + x8 + 10 d2 = CoefficientList[c2, x] {10,2 + 8,1} 10 och 1 r element i GF(4) men inte 2 + 8. Vi frsker reducera 2 + 8 modulo vrt irreducibla polynom 1 + + 4: e2 = PolynomialMod[PolynomialMod[ 1 + 1 Minimalpolynomet associerat med konjugatklassen {2,8} r allts x2 + x + 10. +
4],2] 2

8,

Studentlitteratur

49

2 Elementr algebra

2.8 Cyklotomiska sidoklasser


I mnga fall r det uppenbart vad grundelementet i en konjugatklass r, t.ex. , och det kan drfr frutsttas utan att behva anges. Nr grundelementet utelmnas bildar potenserna av grundelementet cyklotomiska sidoklasser. Denition 2.17 Cyklotomiska sidoklasser De cyklotomiska sidoklasserna modulo n med avseende p GF(q) utgr en uppdelning av heltalen {0,1,,n 1} i mngder p formen {a,aq,aq2,aq3,,aqn 1}
Exempel 2.36 Cyklotomiska sidoklasser De konjugatklasser som bildas av potenserna av , som r en primitiv 15:e enhetsrot med avseende p GF(7) och motsvarande cyklotomiska sidoklasser kan anges p fljande stt:

konjugatklass {1} {,7,4,13} {2,14,8,11} {3,6,12,9} {5} {10}

cyklotomisk sidoklass {0} {1,7,4,13} {2,14,8,11} {3,6,12,9} {5} {10}

50

Studentlitteratur

2.9 variste Galois

2.9 variste Galois

variste Galois fddes i Bourg-la-Reine 25 oktober 1811 nra Paris och dog i en duell vid 20 rs lder 31 maj i Paris. Galois r bermd fr sina bidrag till den del av algebran som kallasgruppteori. Med Galois teori kunde mnga ditintills olsta problem, som omjligheten av cirkelns kvadratur och vinkelns tredelning, f sin lsning. Hans frldrar var Nicolas-Gabriel Galois, som under hundradagarsregimen efter Napoleons ykt till Elba valdes till borgmstare i Bourg-la-Reine, och modern Adelade-Marie Demante som kom frn en knd juristfamilj. Adelade-Marie svarade fr varistes skolgng i hemmet till 1823 d han brjade i Lyce Louis-le-Grand dr Robespierre och Victor Hugo studerat. Bland eleverna frodades liberala och antirojalistiska ider och redan under frsta terminen blev relationerna mellan den nyutnmnde rektorn och eleverna spnda. Galois redan frut starka misstro mot
Studentlitteratur

51

2 Elementr algebra

verheten frstrktes av rektorns auktoritra ledarstil, som tog sig uttryck i att mnga elever relegerades, eftersom de bl.a. vgrat sjunga i skolans kapell och att lsa hgt ur bibeln p lektionerna. Hans begvning visade sig tidigt under hans skolgng d han under de frsta ren erhll era pris i latin och grekiska och fem eller sex hedersomnmnanden. Vid uppndda femton r tvingades han dock g om tredje klassen eftersom hans resultat i retorik inte blivit godknda. Samtidigt anmlde han sig till en kurs i matematik. Under ledning av kursledaren Hippolyte Jean Vernier gjorde Galois stora framsteg inom matematiken och han lste p mycket kort tid in de klassiska lrobckerna fr att sedan verg till Legendres arbeten i geometri och Lagranges avhandlingar: Rsolution des quations algbriques (Lsning av algebraiska ekvationer), Thorie des fonctions analytiques (Teorin fr analytiska funktioner) och Leon sur le calcul des fonctions (Frelsningar i funktionslra). Dessa verk kom att f en djupgende inverkan p Galois liv och personlighet. Han frsummade de andra skolmnena, vilket gjorde att lrarna i de humanistiska mnena blev entligt instllda till honom men han struntade i deras tillsgelser och frmaningar att arbeta mera systematiskt. Istllet skte han intrde vid cole Polytechnique utan att ha lst den preparandkurs, som gavs som frberedelse. Eftersom han slunda saknade baskunskaper misslyckades han med intrdesprovet. Sjlv ansg han dock att misslyckandet var orttvist och hndelsen bidrog till att hans opposition mot auktoriteter ytterligare hrdnade. Vid 17 rs lder grep han sig an med ett av de svraste problemen inom ekvationsteorin, ett problem som matematiker gtt bet p i hundratals r. Huvudproblemet inom ekvationsteorin var vid denna tidpunkt, 1829: Under vilka frutsttningar kan man lsa en ekvation? Eller mer specikt: Finn en metod att lsa en polynomekvation med rationella koefcienter och en obekant. Ekvationens hgstagradsterm r xn. Fr att bestmma lsningen fr de fyra rknestten och rotutdragningar anvndas. De p s stt erhllna lsningarna kallas rtter till
52
Studentlitteratur

2.9 variste Galois

ekvationen. Att lsningen kan erhllas med de nmnda rknestten anges genom att sga att ekvationen kan lsas med radikaler. Redan babylonierna kunde lsa den allmnna andragradsekvationen: ax2 + bx + c = 0 med dessa rknestt och italienarna Scipione del Ferro (1465-1526) och Niccol Fontana (1499-1557) lste den allmnna tredjegradsekvationen ax3 + bx2 + cx + d = 0. Nstan samtidigt lste Ludovico Ferrari (1522-1560), ven han italienare, den allmnna fjrdegradsekvationen ax4 + bx3 + cx2 + dx + e = 0. Drefter frskte man i nsta trehundra r att med samma rknestt lsa femte- och hgregradsekvationer utan att lyckas. Galois angav exakta kriterier fr om en given ekvation kan lsas med radikaler. Den metod han uppfann fr detta ligger lngt frn ekvationsteorin och kallas gruppteori. De frsta artiklarna om det som skulle visa sig bli gruppteori presenterade han fr Franska Vetenskapsakademin 25 maj och 1 juni 1829 strax innan han avslutade sitt sista r p Lyce Louis-le-Grand. Knappt tv mnader senare skte han p nytt in till cole Polytechnique. terigen mttes han d av olycka och otur: Ngra veckor fre intrdesproven, 2 juli, begick hans pappa sjlvmord i sin vning i Paris efter att ha blivit rekrnkt av en jesuitprst. Dessutom ville Galois inte flja examinatorns instruktioner fr sin muntliga framstllning. Fljden blev att han fr andra och sista gngen kuggades i intrdesproven till cole Polytechnique. Hndelserna underblste ytterligare hans hat mot den konservativa hierarki som rdde i det dtida Frankrike. Han blev drfr tvungen att nja sig med att frska komma in p det mindre prestigefyllda cole Prparatoire (numera cole Normale) men fr att vinna intrde krvdes baccalaurat (ung, studentexamen), vilket han, tack vare ett mycket hgt betyg i matematik, klarade i november 1829. Ungefr samtidigt skulle hans arbeten i gruppteori presenteras infr Vetenskapsakademin. Genom en serie olyckliga omstndigheter, vars exakta anledningar aldrig blivit helt klarlagda, kom de emellertid aldrig att presenteras. Cauchy utsgs till referent men han blev sjuk och

Studentlitteratur

53

2 Elementr algebra

glmde senare bort presentationen. Artiklarna sndes sedan till Fourier, akademins dtida stndiga sekreterare, men frsvann. Trots dessa motgngar, som bara kade p hans redan frut negativa instllning till myndigheter och verhet, frblev han en mycket produktiv matematiker. Han publicerade mnga viktiga rn i baron de Ferrussacs1 Bulletin des Sciences Mathmatiques, Astronomiques, Physiques et Chimiques (Rapport om de matematiska, astronomiska, fysiska och kemiska vetenskaperna). Dessa artiklar visar att Galois 1830 var den mest avancerade forskaren vad gller villkoren fr att lsa en ekvation med radikaler. Dock var hans lsning inte fullstndig men p uppmaning av Poisson utarbetade han en mer fullstndig lsning, som fanns frdig fre januari 1831, och som han presenterade fr Vetenskapsakademin. Revolutionen 1830 snde den siste bourboniske kungen, Karl X, i exil men republikanerna till vilka Galois hrde blev djupt besvikna nr Lois-Philippe, den avsatte kungens kusin, insattes p tronen. Vid en bankett 9 maj 1831 d 19 frislppta artilleriofcerare, anklagade fr att ha konspirerat mot kungen, deltog, reste sig Galois med ett glas i ena handen och en dolk i den andra och utbringade en skl med orden: Till Louis-Philippe. Detta uppfattaddes som en grov provokation och Galois fngslades och placerades i Sainte-Plagie-fngelset en mnad. Efter en mnad i frihet fngslades han p nytt fr att ha burit artillerigardets uniform. Nu ck han sitta inne tta mnader. I mitten av mars 1832 verfrdes Galois frn Sainte-Plagie-fngelset till Sieur Faultrier-kliniken p.g.a. en koleraepidemi. P sjukhuset kom han i kontakt med en kvinna (troligen Stphanie Dumotel dotter till en lkare vid kliniken), med vilken han hade en kortvarig relation. Hon ingr i det efterlmnade historiska materialet bland de mnga som misstnks ha konspirerat mot och bidragit till hans frtidiga dd. Efterlmnade dokument visar att han fortsatte sin forskning under hela fngelsetiden och fram till sin dd om vilken har spunnits en hel
1

Baron Andr dAudebard de Ferrussac, 1786-1836, gav under tiden 1823-1831 ut denna tidskrift i Paris.
Studentlitteratur

54

2.9 variste Galois

del myter. Troligen var det ett grl som ledde fram till den desdigra duellen som ndade hans liv 31 maj 1832. Galois kvarlmnade manuskript publicerades 1846 av Joseph Liouville i Journal de Mathmatiques Pures et Appliques. 1870 publicerade Camille Jordan hela Galois teori: Trait des Substitutions. Dessa arbeten gjorde hans arbeten tillgngliga och skrade hans plats i matematikens historia. 13 juni 1909 uppsattes en plakett vid hans ansprkslsa fdelseplats i Bourg-la-Reine och matematikern Jules Tannery hll ett uttrycksfullt tal tillgnat Galois, ett tal som samma r publicerades i Bulletin des Sciences et Mathmatiques.

Sammanfattning Sambandet mellan de beskrivna algebraiska strukturerna beskrivs i Figur 2.1. En grupp kan vara additiv eller multiplikativ men inte ndvndigtvis kommutativ. En abelsk grupp (= kommutativ grupp), r additiv eller multiplikativ med invers. En ring r kommutativ additiv men inte kommutativ multiplikativ. En talkropp r bde kommutativ additiv och kommutativ multiplikativ, vilket r detsamma som en ring, som dessutom har egenskapen att vara kommutativ multiplikativ, ngot som knnetecknar en ring med identitet. Minimalpolynom denieras med hjlp av dessa algebraiska strukturer. Minimalpolynom utgr grundstenar vid konstruktion av cykliska koder.
Studentlitteratur

55

2 Elementr algebra

Mngd Grupp Abelsk grupp Ring Talkropp

Figur 2.1 Samband mellan algebraiska strukturer.

Litteraturhnvisningar
Stephen B. Wicker, Error Control Systems for Digital communication and Storage, Prentice Hall, New Jersey, 1995. Kenneth W. Cattermole, Mathematical Foundations for Communication Engineering, Volume 2 Statistical Analysis and Finite Structures, Pentech Press, London, 1986. Zhe-xian Wan, Introduction to Abstract and Linear Algebra, Studentlitteratur, Lund, 1992. Rudolf Lidl, Harald Niederreiter, Introduction to nite elds and their applications, Revised Edition, Cambridge University Press, Cambridge, 1994.
56
Studentlitteratur

2.10 Problem. Elementr algebra

Robert J. McEliece, Finite Fields for Computer Scientists and Engineers, Kluwer Academic Publishers, Dordrecht, 1987. van der Waerden, B.L., Algebra, vol. 1, 7th edition, Springer-Verlag, Berlin, 1966.

2.10 Problem. Elementr algebra


Problem 2.1
Konstruera en tabell fr gruppen av ordning 6 under modulo-6 addition.

Problem 2.2
Konstruera en tabell fr gruppen av ordning 2 under modulo-3 multiplikation.

Problem 2.3
Konstruera en tabell fr gruppen av ordning 13 under modulo-13 addition.

Problem 2.4
Konstruera en tabell fr gruppen av ordning 12 under modulo-13 multiplikation.

Problem 2.5
Bestm ordningen hos elementen i GF(13). Hur mnga primitiva element nns?
Studentlitteratur

57

2 Elementr algebra Svar: element 1 2 3 4 5 6 7 8 9 10 11 12 Tabell 2.1 4 primitiva element ordning 1 12 3 6 4 12 12 4 3 6 12 2

Problem 2.6
Visa att polynomet x5 + x3 + 1 r irreducibelt ver GF(2)[x].

Problem 2.7
Lt vara ett element av ordning 65535 i GF(65536). Bestm konjugaterna till med avseende p GF(2), GF(4), GF(16) och GF(256).

Problem 2.8
Bestm graden hos minimalpolynomet med avseende p GF(2)[x] fr talkroppselementen med ordningen 5, 9 och 13. Svar: 4, 6 och 12

Problem 2.9
Bestm de binra minimalpolynomen till x5 + 1.

58

Studentlitteratur

2.10 Problem. Elementr algebra Svar: (x + 1)(x4 + x3 + x2 + x + 1)

Problem 2.10
Bestm antalet binra irreducibla polynom vid faktorisering av x19 + 1. Svar: 2

Problem 2.11
Uppdela x17 + 1 i binra minimalpolynom.

Problem 2.12
Bestm antalet irreducibla polynom med avseende p GF(3)[x] vid faktorisering av x13 1. Svar: 5

Studentlitteratur

59

3 Linjra blockkoder

Okodad seriell datastrm

delas upp i block varje block om k bitar kodas i en blockkodare

k bitar

blockkodare

n bitar

Figur 3.1 Principen fr blockkodning. Varje kodat block innehller n bitar och n > k. I en binr kod med block om k bitar nns det 2k olika meddelanden. Varje k-bits meddelande eller block representeras av en k-dimensionell meddelandevektor u. Varje k-bits block kodas till ett n-bits kodord, som kan representeras av en kodvektor v. Denition 3.1 En blockkod med lngden n innehllande 2k kodord r en binr linjr (n,k)-kod om de 2k kodorden utgr ett k-dimensionellt delrum av det n-dimensionella vektorrummet ver GF(2). Generellt kan GF(2) ersttas av GF(q).
Studentlitteratur

61

3 Linjra blockkoder

Eftersom en binr linjr (n,k)-kod C r ett k-dimensionellt delrum i vektorrummet Vn, r det mjligt att hitta k linjrt oberoende kodord g0, g1,..., gk 1 i C s att varje kodord v i C r en linjrkombination av dessa k kodord: v = u0g0 + u1g1 + ... + uk 1gk 1. Det gller g0 g1 G= gk 1 = gk 1 0 gk 1 1 gk 1 n 1 (3.2) Om ett meddelande u skall kodas blir motsvarande kodord: v = u G = u0g0 + u1g1 + ... + uk 1gk 1. (3.3) g 00 g 10 g 01 g 11 g0 n 1 g1 n 1 (3.1)

De k raderna i G spnner upp ett k-dimensionellt delrum av Vn, d.v.s. den (n,k)-linjra koden C. G r en generatormatris fr C. Eftersom dessa k rader entydigt bestmmer (n,k)-koden behver kodaren bara lagra dessa rader fr att skapa alla linjrkombinationer av dem, d.v.s. generera alla kodord.
Exempel 3.1 Fljande generatormatris r given 1 1 0 1 0 0 0 G= 0 1 1 0 1 0 0 1 1 1 0 0 1 0 1 0 1 0 0 0 1 Meddelandet u = (1101) skall kodas g0 g1 = u0g0 + u1g1 + u2g2 + u3g3 = g2 g3
Studentlitteratur

v = u G = u0 u1 u2 u3

62

1 1 0 1 0 0 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 +1 0 1 0 0 0 1 0 0 0 1 1 0 1 nk k ofrndrade meddelandebitar

Detta r ett exempel p systematisk kodning vid vilken det ursprungliga meddelandet ternns ograverat i brjan eller slutet av kodordet. Vi har allts en linjr systematisk blockkod. Vid systematisk kodning kan en k n G-matris . . . . . . . . . . . . . . . . . . . . . . . . . . . .

G =

k rader

n kolumner delas upp i en k (n k) P-matris och en k k enhetsmatris 1 0 0 0 G = 0 1 0 0 0 0 1 0 0 0 0 1 nk k kolumner kolumner G = [P Ik]. Exempel 3.2 v = (v0 v1 v2 v3 v4 v5 v6) 1 1 0 1 0 0 0 v = (u0 u1 u2 u3) 0 1 1 0 1 0 0 1 1 1 0 0 1 0 1 0 1 0 0 0 1 k rader

Studentlitteratur

63

3 Linjra blockkoder v 0 = u0 +u 2 + u3 v 1 = u0 +u 1 + u2 kodens paritetscheckekvationer v 2 = u1 +u 2 + u3 v3 = u0 v4 = u1 v5 = u2 v6 = u3.

Enligt vad vi sett frut, nns till varje delrum ett dualt delrum och summan av delrummets och det duala delrummets dimensioner = = rummets dimension. Teorem 3.1 Fr varje k n matris G ver GF(2) med k linjrt oberoende rader nns en (n k) n matris H ver GF(2) med n k linjrt oberoende rader s att varje radvektor i G r ortogonal mot var och en av H:s rader. H r den till G duala matrisen (paritetscheckmatrisen), d.v.s. en n-tupel v r en (n,k)-kod genererad av G omm v HT = 0 och G HT = 0. De 2n k linjra kombinationerna av de n k raderna i H utgr en till C[(n,k)-kod] dual kod Cd[(n,n k)-kod]. Om G r p systematisk form, G = [P Ik], s r H = [In k
Exempel 3.3 1 1 0 1 0 0 0 G= 0 1 1 0 1 0 0 1 1 1 0 0 1 0 1 0 1 0 0 0 1 P Ik

PT].

64

Studentlitteratur

3.1 Syndrom, felupptckt och felkorrigering 1 0 0 1 0 1 1 H = 0 1 0 1 1 1 0 0 0 1 0 1 1 1 In k PT

3.1 Syndrom, felupptckt och felkorrigering


Snd kodvektor r v. Mottagen kodvektor r r. Felvektorn r e = r + v. Ettor i felvektorn representerar fel. Det gller r = v + e. Vid mottagning berknas syndromvektorn s = r HT = (v + e) HT = 0 + e HT. Om s = 0 r r ett kodord. Om s 0 r r inte ett kodord, d.v.s. ett fel har upptckts. s kan anvndas fr att korrigera fel. Strategin fr att korrigera fel r 1. Berkna e. 2. Bilda r + e som r det snda kodordet. Problem: Berkning av e ur de n k ekvationerna s = r HT ger inte en entydig lsning utan vi fr 2k olika felmnster, som ger samma syndrom. Man frsker drfr att nna den lsning fr e, som minimerar sannolikheten fr felaktig avkodning. Om kanalen r BSC och strningen r AVGB, r det sannolikaste felmnstret e, det som har minst antal ettor.
Studentlitteratur

(3.4)

65

3 Linjra blockkoder Exempel 3.4 Koden (n,k) = (7,4) med generatormatris och paritetscheckmatris enligt Exempel 3.3 anvnds och snd kodvektor r v = (1001011) medan mottagen kodvektor r r = (1001001). Vi berknar syndromet 1 0 0 1 0 1 1 s = r H T = (1 0 0 1 0 0 1) 0 1 0 1 1 1 0 0 0 1 0 1 1 1 med Mathematica: Ange r och H i Mathematica: r = {1, 0, 0, 1, 0, 0, 1}; H = {{1, 0, 0, 1, 0, 1, 1}, {0, 1, 0, 1, 1, 1, 0}, {0, 0, 1, 0, 1, 1, 1}}; Syndromet blir s = PolynomialMod[r.Transpose[H], 2] {1, 1, 1} Eftersom det nns 27 = 128 mjliga kodvektorer och drmed lika mnga felvektorer (eller felmnster) medan det nns 23 = 8 mjliga syndrom, motsvarar varje syndrom 27 3 = 24 = 16 olika felmnster Den troligaste felvektorn r den med minst antal ettor (= minst antal fel). Med hjlp av Mathematica kan vi berkna vilken denna felvektor r: Lt oss till att brja med gra en lista med alla 27 = 128 mjliga binra kodord, men vi tar inte med (den lnga) utskriften lista = IntegerDigits[Table[i, {i, 0, 127}], 2]]; Fr att f en ungefrlig uppfattning om listans utseende gr vi en frkortad utskrift s hr: Short[lista]
T

66

Studentlitteratur

3.1 Syndrom, felupptckt och felkorrigering {{0}, <<126>>, {1, 1, 1, 1, 1, 1, 1}} Fr att f alla kodord att innehlla 7 binra symboler fyller vi p med nollor p dem som har frre n 7. tabell = Table[PadLeft[lista[[n]], Length[lista]}]; En frkortad utskrift visar resultatet: Short[tabell] {{0, 0, 0, 0, 0, 0, 0}, << 126 >>, {1, 1, 1, 1, 1, 1, 1}} Kalla felvektorn e = (e0,e1,e2,e3,e4,e5,e6) Enligt (3.4) r s = e HT varfr e = {e0, e1, e2, e3, e4, e5, e6}; s = e.Transpose[H] {e0 + e3 + e5 + e6, e1 + e3 + e4 + e5, e2 + e4 + e5 + e6} d.v.s. vi har ekvationssystemet 1 = e0 + e3 + e5 + e6 1 = e1 + e3 + e4 + e5 1 = e2 + e4 +e5 + e6 Lgg mrke till att index fr felbitarna i felvektorn r en enhet mindre n motsvarande elementnummer i lista. Nu kan vi lta Mathematica underska vilka felvektorer som satiserar ekvationssystemet: nylista = Table[{Mod[Apply[Plus, {tabell[[n, 1]], tabell[[n, 4]], tabell[[n, 6]], tabell[[n, 7]]}], 2] == 1 && Mod[Apply[Plus, {tabell[[n, 2]], tabell[[n, 4]], tabell[[n, 5]],tabell[[n, 6]]}], 2] == 1 &&
Studentlitteratur

7],

{n,

1,

67

3 Linjra blockkoder Mod[Apply[Plus, {tabell[[n, 3]],tabell[[n, 5]], tabell[[n, 6]], tabell[[n, 7]]}], 2] == 1},{n, 1, Length[tabell]}]; Om vi laddar in matrismanipuleringspaketet kan vi se alla lsningar p ett skdligt stt: Needs["LinearAlgebra`MatrixManipulation`"] MatrixForm[Drop[Sort[Table[If[nylista[[n, 1]] == True, tabell[[n]],], {n, 1, Length[nylista]}]], 112]] i0 j j0 j j j j j j0 j j j j j0 j j j j j0 j j j j j0 j j j j j0 j j j j j0 j j j j j j1 j j j j j1 j j j j j1 j j j j j1 j j j j j1 j j j j j1 j j j j j1 j j j j k1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 0 0 1 1 0 1 0 0 1 1 0 0 1 1 1 0 0 0 0 1 1 0 0 1 1 1 1 0 0 0y z z z 1z z z z z 1z z z z z 0z z z z z 1z z z z z 0z z z z z 0z z z z z z 1z z z z z 0z z z z z 1z z z z z 1z z z z z 0z z z z z 1z z z z z 0z z z z z 0z z z z 1{

Av matrisen framgr att det nns endast en felvektor med en etta (minimalt antal ettor), och den troligaste felvektorn r drfr e = (0000010) och efter korrigering fr vi v* = e + r = (0000010) + (1001001) = (1001011). Syndromet, som har 3 bitar, kan anta 23 = 8 olika vrden, motsvarande 1 felfritt kodord med syndromet (000), samt ytterligare 7 andra kodord, vart och ett med ett enkelfel. Fr att ta reda p varje syndroms motsvarande felvektor bildar vi en matris, ematris, fr alla e-vektorer och anvnder oss av sambandet s = e HT enligt (3.4): ematris = {{0, 0, 0, 0, 0, 0, 0}, {1, 0, 0, 0, 0, 0, 0},{0, 1, 0, 0, 0, 0, 0},

68

Studentlitteratur

3.1 Syndrom, felupptckt och felkorrigering {0, 0, 1, 0, 0, 0, 0},{0, 0, 0, 1, 0, 0, 0}, {0, 0, 0, 0, 1, 0, 0}, {0, 0, 0, 0, 0, 1, 0}, {0, 0, 0, 0, 0, 0, 1}}; eller p matrisform: MatrixForm[ematris] i0 j j j1 j j j j j0 j j j j j0 j j j j j0 j j j j j0 j j j j j0 j j j j k0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0y z z z 0z z z z z 0z z z z z 0z z z z z 0z z z z z 0z z z z z 0z z z z 1{

och slutligen fr vi motsvarande smatris: smatris = MatrixForm[e.Transpose[H]] i0 j j j1 j j j j j0 j j j j j0 j j j j j1 j j j j j0 j j j j j1 j j j j k1 0 0 1 0 1 1 1 0 0y z z z 0z z z z z 0z z z z z 1z z z z z 0z z z z z 1z z z z z 1z z z z 1{

Studentlitteratur

69

3 Linjra blockkoder

3.2 En kods minimidistans eller minimiavstnd


Denition 3.2 Antalet ettor i ett kodord v betecknas w(v) = = kodens Hammingvikt, men ofta bara vikt. Denition 3.3 Hammingavstndet mellan tv kodord v och w r antalet positioner som kodorden r olika och betecknas d(v,w). Fljande samband rder d(v,w) = w(v + w) En kods C minimiavstnd dmin denieras: dmin = min{w(v + w); v,w C, v w} = = min{w(x); x C, x 0} wmin. (3.6) (3.5)

wmin r den linjra kodens minimivikt. Teorem 3.2 En linjr kods minimiavstnd = minimivikten (egentligen avstndet till nollkodvektorn, som alltid ingr i en linjr kod). Om C r en linjr kod med paritetscheckmatrisen H s r kodens minimiavstnd lika med det minsta antalet kolumner i H vars summa r 0 och man kan visa att antalet kolumner = dmin n k 1 (Singleton-grnsen)
Exempel 3.5 H fr den givna (7,4)-koden r 1 0 0 1 0 1 1 H = 0 1 0 1 1 1 0 0 0 1 0 1 1 1 kolumn nr 0 1 2 3 4 5 6 Eftersom alla kolumner r olika kan inte tv kolumner summeras till 0 men summeras kolumnerna 0, 2 och 6 fr vi 0 kodens minimavstnd r 3.

(3.7)

70

Studentlitteratur

3.3 Felupptcktsfrmgan fr en blockkod

3.3 Felupptcktsfrmgan fr en blockkod


Ett kodord skiljer sig frn ett annat i minst dmin positioner. Koden kan drmed alltid upptcka fel i hgst dmin 1 positioner. Det nns 2n mjliga kodord, varav ett r riktigt och 2n 1 felaktiga. Det nns 2k giltiga kodord, varav ett r riktigt men 2k 1 r giltiga och drmed oupptckbara. Upptckbara fel r allts 2n 1 (2k 1) = 2n 2k, d.v.s. i dessa fall fr vi en syndromvektor s 0.

3.4 Sannolikheten fr oupptckta fel


C r en (n,k) linjr kod. Ai r antalet giltiga kodvektorer med vikt i och vi antar att vi har en binrsymmetrisk kanal enligt Figur 3.2. p r sannolikheten fr bitfel. Uttrycket fr sannolikheten att ett fel i en kodvektor inte upptcks r lika med sannolikheten att fel uppstr p s stt att den mottagna kodvektorn verfrs till en annan giltig kodvektor:

1p 0 0

p p
1 1p BSC 1

Figur 3.2 Modell ver binrsymmetrisk kanal (Binary Symmetric Channel = BSC).
Studentlitteratur

71

3 Linjra blockkoder

P u(E) =

i = dmin

Ai p i 1 p n i

(3.8)

Uttrycket kan enklast uppfattas som sannolikheten att ett snt nollkodord verfrs till ett annat giltigt kodord.

3.5 Felkorrigeringsfrmgan fr en blockkod


Minimiavstndet r antingen jmnt eller udda.
Exempel 3.6 dmin r udda.

dmin (= 7) udda

kodsfrer kodord grannkodord

andra kodord p Hammingavstnd 1, 2, ..., 7 frn kodord Figur 3.3 Kodord och grannkodord p udda Hamming-avstnd. Exempel 3.7 dmin r jmnt dmin (= 8) jmnt

kodsfrer kodord grannkodord

andra kodord p Hammingavstnd 1, 2, ..., 8 frn kodord Figur 3.4 Kodord och grannkodord p jmnt Hamming-avstnd.

72

Studentlitteratur

3.5 Felkorrigeringsfrmgan fr en blockkod I bda fallen gller att korrekt avkodning sker om kodvektorn hamnar innanfr respektive kodords kodsfr, d.v.s. felkorrigeringsfrmgan

Felkorrigeringsfrmgan: fr en blockkod r: t= dmin 1 , 2 (3.9)

vilket utlses som att t r heltalsdelen av dmin 1 . 2 Ett kodord blir felaktigt avkodat om det uppstr er n t fel. Om felen r oberoende av varandra blir sannolikheten fr felaktig avkodning av ett kodord: Pko(E) =

i=t+1

n pi 1 p n i . i

(3.10)

Felaktig avkodning uppstr allts nr det avkodade kodordet hamnat inom fel kodsfr. Om nollkodordet snts betyder detta att vikten hos det felaktiga kodordet r t + 1. Fr att t.ex. hamna inom grannkodordets kodsfr rcker det med att felet r just t + 1 om dmin r udda. En konservativ uppskattning av en vre grns fr bitfelssannolikheten r att vi antar att maximalt ytterligare t fel kan ha intrffat nr vi fr en felaktig avkodning till ett visst felaktigt kodord. Eftersom felen r oberoende r sannolikheten fr bitfel likformigt frdelad ver de i kodordet ingende n bitarna varfr vi fr fljande uttryck fr en vre grns fr bitfelssannolikheten: Pb(E)

i=t+1

i + t n pi 1 p n i . n i

(3.11)

Studentlitteratur

73

3 Linjra blockkoder

3.6 Standarduppstllningen och syndromavkodning


Teorem 3.3 En sidoklass bestr av alla kodord med ett givet syndrom. Inom varje sidoklass r sidoklassledaren det kodord som har lgst vikt. Teorem 3.4 Om r r det mottagna ordet, bestr mngden mjliga felaktiga kodord av den sidoklass som innehller r. Den troligaste felvektorn utgrs av sidoklassledaren i den sidoklass som innehller det mottagna kodordet r. Principen fr avkodning av en linjr kod r: Berkna syndromet enligt ekvation (3.4), subtrahera felvektorn associerad med detta syndrom frn r fr att nna det troligast snda kodordet. Slepians standarduppstllning bestr av att 1. P en rad stlla upp de tilltna (okodade) meddelandeorden med nollmeddelandeordet lngst till vnster. 2. Ett steg till vnster om nollmeddelandeordet och med brjan p nsta rad stlla upp syndromen, med nollsyndromet verst, i en kolumn. 3. I nsta kolumn, under nollmeddelandeordet, stlla upp de med syndromen associerade felvektorerna som sidoklassledare. 4. Bilda mjliga felkodord i varje kolumn under de felfria kodorden genom att till vart och ett av dessa addera sidoklassledaren, som benner sig nst lngst till vnster p varje rad. Varje rad i standarduppstllningen kommer p detta stt att utgra en sidoklass.

Exempel 3.8 En punkterad (7,3)-kod r (6,3)-koden (betrffande punkterad kod 3.9 ). Kodens generatormatris och paritetscheckmatris r

74

Studentlitteratur

3.6 Standarduppstllningen och syndrom- avkodning 1 0 0 1 1 0 G= 0 1 0 1 0 1 0 0 1 0 1 1 H= 1 1 0 1 0 0 1 0 1 0 1 0 0 1 1 0 0 1

Fr att bilda kodorden tar vi hjlp av Mathematica: Needs["LinearAlgebra`MatrixManipulation`"] meddelandeorden = {{0, 0, 0}, {0, 0, 1}, {0, 1, 0}, {1, 0, 0},{0, 1, 1}, {1, 0, 1}, {1, 1, 0}, {1, 1, 1}}; generatormatrisen = {{1, 0, 0, 1, 1, 0}, {0, 1, 0, 1, 0, 1},{0, 0, 1, 0, 1, 1}}; kodorden = MatrixForm[PolynomialMod[meddelandeorden . generatormatrisen, 2]] i0 j j j0 j j j j j0 j j j j j j1 j j j j j0 j j j j j1 j j j j j j1 j j j k1 0 0 1 0 1 0 1 1 0 1 0 0 1 1 0 1 0 0 1 1 1 1 0 0 0 1 0 1 1 0 1 0 0y z z z 1z z z z z 1z z z z z z 0z z z z z 0z z z z z 1z z z z z z 1z z z 0{

Drefter bildar vi enligt ekvation (3.4) syndromen fr de 6 olika mjliga enkelfelen: paritetscheckmatrisen = {{1, 1, 0, 1, 0, 0}, {1, 0, 1, 0, 1, 0}, {0, 1, 1, 0, 0, 1}}; felvektorerna = {{0, 0, 0, 0, 0, 1}, {0, 0, 0, 0, 1, 0}, {0, 0, 0, 1, 0, 0}, {0, 0, 1, 0, 0, 0}, {0, 1, 0, 0, 0, 0}, {1, 0, 0, 0, 0, 0}}; syndromen = MatrixForm[PolynomialMod[felvektorerna. Transpose[paritetscheckmatrisen], 2]]

Studentlitteratur

75

3 Linjra blockkoder i0 j j j0 j j j j j1 j j j j j j0 j j j j j1 j j j j k1 0 1 0 1 0 1 1y z z z 0z z z z z 0z z z z z z 1z z z z z 1z z z z 0{

Dessa 6 syndrom motsvarar 6 enkelfel, d.v.s. alla enkelfel som r mjliga. Fr att bestmma de felvektorer som motsvarar syndromet 111 undersker vi drfr vilka syndrom som bildas av alla mjliga dubbelfel. Det nns 6 = 15 mjliga 2 dubbelfel. De mjliga dubbelfelen berknas med Mathematica genom att bestmma alla permutationer av ett av de mjliga dubbelfelen: dubbelfelvektorer = Permutations[{1, 1, 0, 0, 0, 0}] {{1, 1, 0, 0, 0, 0}, {1, 0, 1, 0, 0, 0}, {1, 0, 0, 1, 0, 0},{1, 0, 0, 0, 1, 0}, {1, 0, 0, 0, 0, 1}, {0, 1, 1, 0, 0, 0}, {0, 1, 0, 1, 0, 0}, {0, 1, 0, 0, 1, 0}, {0, 1, 0, 0, 0, 1},{0, 0, 1, 1, 0, 0}, {0, 0, 1, 0, 1, 0}, {0, 0, 1, 0, 0, 1}, {0, 0, 0, 1, 1, 0}, {0, 0, 0, 1, 0, 1}, {0, 0, 0, 0, 1, 1}} Syndromen som bildas av dessa dubbelfel fs med fljande Mathematicainstruktion: MatrixForm[PolynomialMod[dubbelfelvektorer. Transpose[paritetscheckmatrisen], 2]]

76

Studentlitteratur

3.6 Standarduppstllningen och syndrom- avkodning i0 j j j1 j j j j j0 j j j j j1 j j j j j j1 j j j j j1 j j j j j j0 j j j j j1 j j j j j1 j j j j j j1 j j j j j0 j j j j j0 j j j j j j1 j j j j j1 j j j j k0 1 0 1 0 1 1 0 1 0 1 0 1 1 0 1 1y z z z 1z z z z z 0z z z z z z 0z z z z z 1z z z z z 0z z z z z z 1z z z z z 1z z z z z 0z z z z z z 1z z z z z 1z z z z z 0z z z z z z 0z z z z z 1z z z z 1{

Det framgr att svl den 5:e, 8:e som den 10:e felvektorn bildar syndromet 111, d.v.s. vid en verfring pverkad av additivt vitt gaussiskt brus r felvektorerna (100001), (010010) och (001100) lika sannolika om syndromet 111 bildats. Detta innebr att ett mottaget felaktigt kodord med syndromet 111 har Hamming-avstndet 2 till tre olika riktiga kodord och man kan vlja att korrigera det mottagna kodordet till vilket som helst av dessa tre riktiga kodord. Standarduppstllningsschemat fr fljande utseende syndrom 000 001 010 100 011 101 110 111 000 000000 000001 000010 000100 001000 010000 100000 010010 001 001011 001010 001001 001111 000011 011011 101011 011001 010 010101 010100 010111 010001 011101 000101 110101 000111 100 100110 100111 100100 100010 101110 110110 000110 110100 011 011110 011111 011100 011010 010110 001110 111110 001100 101 101101 101100 101111 101001 100101 111101 001101 111111 110 110011 110010 110001 110111 111011 100011 010011 100001 111 111000 111001 111010 111100 110000 101000 011000 101010

Figur 3.5 Standarduppstllningsschema till Exempel 3.8.

Studentlitteratur

77

3 Linjra blockkoder

Av Exempel 3.8 framgr att mottagaren endast behver lagra syndromen och de med dessa associerade felvektorerna fr att gra en riktig felkorrigering, ty fr varje mottaget kodord behver vi endast berkna syndromet varefter det riktiga - korrigerade - kodordet erhlls genom att frn det mottagna kodordet subtrahera den mot det berknade syndromet svarande felvektorn. Trots denna besparing av lagringsutrymme blir standarduppstllningen snabbt otymplig nr kodordslngden blir strre. Standarduppstllningen r nd principiellt viktig eftersom avkodningen sker enligt principen Maximum Likelihood. Fr strre kodordslngder mste andra - ofta suboptimala metoder tillgripas. Prestanda fr dessa br nrma sig dem som uppns med korrigering enligt Maximum Likelihood-principen.
Exempel 3.9 Bestm bitfelssannolikheten fr (6,3)-koden i Exempel 3.8. Se Figur 3.5: I versta raden nns meddelandeorden, vart och ett med 3 bitar. I nsta rad ternns motsvarande kodord. Drefter fljer 6 rader med kodord som skiljer sig frn det riktiga i en bit. Allra sist nns en rad med kodord som skiljer sig frn de riktiga i tv bitar. Om vi antar att nollkodordet snts s kan vi konstruera en tabell fr Bitfelssannolikheten fr (6,3)-koden Kolumn 1 2 3 4 5 6 7 8 (1 p)6 + 6p(1 p)5 + p2(1 p)4 3p2(1 p)4 + 2p3(1 p)3 + 3p4(1 p)2 3p2(1 p)4 + 2p3(1 p)3 + 3p4(1 p)2 3p2(1 p)4 + 2p3(1 p)3 + 3p4(1 p)2 p2(1 p)4 + 4p3(1 p)3 + p4(1 p)2 +2p5(1 p) 4p3(1 p)3 + p4(1 p)2 +2p5(1 p) + p6 p2(1 p)4 + 4p3(1 p)3 + p4(1 p)2 +2p5(1 p) 3p2(1 p)4 + 2p3(1 p)3 + 3p4(1 p)2 Antal fel 0 1 1 1 2 2 2 3
Studentlitteratur

78

3.6 Standarduppstllningen och syndrom- avkodning Bitfelssannolikheten: Pb = 1 {0 [(1 p)6 + 6p(1 p)5 + p2(1 p)4] + 1 [9p2(1 p)4 + 3 + 6p3(1 p)3 + 9p4(1 p)2] + 2 [2p2(1 p)4 + 12p3(1 p)3 + 3p4(1 p)2 + + 6p5(1 p) + p6] + 3 [3p2(1 p)4 + 2p3(1 p)3 + 3p4(1 p)2]} = = 1 {22p2(1 p)4 + 36p3(1 p)3 + 24p4(1 p)2 + 12p5(1 p) + 2p6} = 3 = {p = 0,01} 0,00072. Approximativa uttryck fr bitfelssannolikheten Som jmfrelse kan bitfelssannolikheten ocks rknas ut med hjlp av en enkel approximativ formel och med den p fregende sida givna uppskattningen fr en vre grns fr bitfelshalten: Pb d Pko = d 6 p i 1 p 6 i = 3 1 n ni = 2 i 6
6

i=0

6 pi 1 p 6 i = i

= 3 1 1 p 6 6p 1 p 5 = {p = 0,01} = 3 0,0015 0,00075 6 6 Med Pb

i+1 i=2 6

6 pi 1 p i

6i

3 6 p 2 1 p 4 + 4 6 p 3 1 p 3 + ... 6 2 6 3

0,00072 + 0,00001 0,00073 Exempel 3.10 Syndromavkodning Betrakta (7,4)-koden i Exempel 3.5. Paritetscheckmatrisen r 1 0 0 1 0 1 1 H = 0 1 0 1 1 1 0 0 0 1 0 1 1 1 Koden har 23 = 8 sidoklasser och det nns drfr 8 korrigerbara felmnster inklusive nollvektorn. dmin = 3 alla felmnster med vikt 0 och 1 kan korrigeras (det med vikt 0 r dock rtt redan frn brjan).
Studentlitteratur

79

3 Linjra blockkoder Med Mathematica berknar vi de mot de 7 enkelfelvektorerna svarande syndromen. Needs["LinearAlgebra`MatrixManipulation`"] H = {{1, 0, 0, 1, 0, 1, 1}, {0, 1, 0, 1, 1, 1, 0}, {0, 0, 1, 0, 1, 1, 1}}; felvektorer = {{0, 0, 0, 0, 0, 0, 1}, {0, 0, 0, 0, 0, 1, 0},{0, 0, 0, 0, 1, 0, 0}, {0, 0, 0, 1, 0, 0, 0},{0, 0, 1, 0, 0, 0, 0}, {0, 1, 0, 0, 0, 0, 0},{1, 0, 0, 0, 0, 0, 0}}; syndrom = MatrixForm[PolynomialMod[felvektorer.Transpose[H], 2]] i1 j j j1 j j j j j0 j j j j j j1 j j j j j0 j j j j j0 j j j j k1 0 1 1 1 0 1 0 1y z z 1z z z z 1z z z z 0z z z z z 1z z z z 0z z z 0{

Vi kan nu stlla upp en tabell ver kodens syndrom och de drmed associerade felvektorerna: syndrom 101 111 011 110 001 010 100 felvektor 0000001 0000010 0000100 0001000 0010000 0100000 1000000

Anm.: Lgg mrke till att syndromen utgrs av elementen i H:s kolumner.

80

Studentlitteratur

3.7 Viktfrdelning fr blockkoder Om v = (1001011) snts och r = (1001111) mottagits s brjar vi med att berkna syndromet s = r HT 1 0 0 0 1 0 0 0 1 s = (1001111) 1 1 0 0 1 1 1 1 1 1 0 1 Ur tabellen ovan ser vi att detta motsvarar e = (0000100). Mottaget kodord v r den maximalt troliga uppskattningen av det snda kodordet v och v = r + e = (1001011). = (011)

3.7 Viktfrdelning fr blockkoder


Fr att kunna gra en exakt bestmning av en kods egenskaper vad betrffar felupptcktsfrmga och felkorrigeringsfrmga mste man veta kodens viktfrdelning. Viktfrdelningen fr en kod anges med ett polynom A(x) = A0 + A1x + A2x 2 + + Anx n kallat viktangivelsen (weight enumerator). Fr mnga koder r viktangivelsen inte knd men fr ett antal klasser, bl.a. Reed-Solomon-koderna, r viktangivelsen knd. I mnga fall r det lttare att arbeta med den duala kodens viktangivelse n med kodens egna viktangivelse. Fljande samband mellan en kods och dess duala kods viktangivelser gller:
Studentlitteratur

(3.12)

81

3 Linjra blockkoder

Teorem 3.5 MacWilliams identitet. A(x) och B(x) r viktangivelser fr en (n,k) kod C och dess duala (n,n k)-kod C. Sambandet mellan A(x) och B(x) r B(x) = 2 k 1 + x n A 1x 1+x (3.13)

3.8 Hammingkoder
Hammingkoderna tillhr de ldsta koderna. De beskrevs i en artikel av Hamming i april 19501 fastn de var vl utvecklade redan 1947 och 1948. De anvndes frst fr felkorrigering vid lngdistanstelefoni. De binra Hamming-kodernas egenskaper anges vanligen med hjlp av: ett heltal: m 2 kodordslngden: n = 2m 1 antalet informationsbitar: k = 2m m 1 antalet paritetsbitar: m = n k felkorrigeringsfrmgan: t = 1 Hamming-koder r alltid enkelfelskorrigerande Hammingkoder r perfekta koder, d.v.s. alla kodord ligger innanfr kodordssfrer. Paritetscheckmatrisens, H, kolumner bestr av alla nollskilda m-tupler. Om H r angiven p systematisk form kan H skrivas p fljande stt: H = [Im Q]
1

(3.14)

R.W. Hamming, Error Detecting and Error Correcting Codes, Bell Syst. Tech. J., 29, sid. 147-160, April 1950.

82

Studentlitteratur

3.8 Hammingkoder

dr Im r en m m enhetsmatris medan Q bestr av 2m m 1 kolumner med vikten 2 eller mer.


Exempel 3.11 Lt m = 3 d blir kodordslngden n = 2m 1 = 23 1 = 7. En kod med kodordslngden 7 och som ven i vrigt uppfyller alla kriterier p en Hamming-kod ternns i Exempel 3.5 som har paritetscheckmatrisen 1 0 0 1 0 1 1 H = 0 1 0 1 1 1 0 0 0 1 0 1 1 1 och generatormatrisen 1 1 0 1 0 0 0 G= 0 1 1 0 1 0 0 1 1 1 0 0 1 0 1 0 1 0 0 0 1 Det minsta antal kolumner i H som kan summeras till 0 r 3. .

I Exempel 3.10 uppmrksammade vi att syndromen utgrs av elementen i H:s kolumner. Orsaken till detta sammanhnger med att Hamming-koderna r enkel-felskorrigerande. Lt nmligen r vara en mottagen kodordsvektor, som har ett enkelfel motsvarande en felvektor e med ett fel i position j. Paritetscheckmatrisens rader benmner vi [d0 d1 dn 1]. I mottagaren berknas syndromet:
T d0 T d1

s = rH

T=

eHT =

(0 0 0 0 1 0 0)

= djT

(3.15)

T dn 1

d.v.s. vi erhller den transponerade j:te kolumnen av H.


Studentlitteratur

83

3 Linjra blockkoder

Korrigering av ett mottaget Hamming-kodord, som innehller noll eller ett fel, kan d utfras p fljande stt: 1. Berkna mottaget kodords syndrom. 2. Bestm positionen, j, hos den kolumn i paritetscheckmatrisen som r likadan som det transponerade syndromet. 3. Komplementera den j:te biten i det mottagna kodordet.
Exempel 3.12 Korrigering och avkodning av mottagna (7,4)-Hamming-kodord. Fljande kodord har mottagits: r1 = (1 1 0 0 0 1 1) r2 = (1 0 0 0 1 0 0) r3 = (1 0 1 1 1 0 0) Vi berknar syndromen fr de mottagna kodorden Needs["LinearAlgebra`MatrixManipulation`"] generatormatris = {{1, 1, 0, 1, 0, 0, 0}, {0, 1, 1, 0, 1, 0, 0},{1, 1, 1, 0, 0, 1, 0}, {1, 0, 1, 0, 0, 0, 1}}; r1 = {1,1,0,0,0,1,1}; r2 = {1,0,0,0,1,0,0}; r3 = {1,0,1,1,1,0,0}; H = {{1, 0, 0, 1, 0, 1, 1}, {0, 1, 0, 1, 1, 1, 0}, {0, 0, 1, 0, 1, 1, 1}}; syndrom = MatrixForm[PolynomialMod[{r1,r2,r3}. Transpose[H], 2]] i1 0 0y z j j z j1 1 1z z j z j z j z j k0 0 0{ Frsta raden i syndrommatrisen motsvarar kolumnen i position 0 i H-matrisen komplementera elementet i position 0 i r1, d.v.s. r1korr = (0 1 0 0 0 1 1) och avkodat (0 1 1). Andra raden i syndrommatrisen motsvarar kolumnen i position 5 i H-matrisen komplementera elementet i position 5 i r2, d.v.s. r2korr =

84

Studentlitteratur

3.9 Modifierade linjra koder = (1 0 0 0 1 1 0) och avkodat (1 1 0). Tredje raden i syndrommatrisen r 0 varfr mottaget kodord r3 = (1 0 1 1 1 0 0) r korrekt och avkodat (1 0 0).

Viktangivelse fr Hammingkoder
Viktangivelsen fr en Hamming-kod r

A(x) =

1 1 + x n + n 1 x 1 x2 n+1

n 1 /2

(3.16)

dr koefcienten Ai fr termen xi r antalet kodord med vikten i.


Exempel 3.13 Viktangivelsen fr en Hamming-(7,4)-kod fs p fljande stt: Kodordslngden n = 7 vilket gr att A(x) = 1 1 + x 7 + 7 1 x 1 x 2 8 Detta innebr att det nns 1 kodord med vikten 0 7 kodord med vikten 3 7 kodord med vikten 4 1 kodord med vikten 7
7 1 /2

= 1 + 7x 3 + 7x 4 + x 7

3.9 Modierade linjra koder


I mnga tillmpningar nns dels yttre begrnsningar och/eller bivillkor, som inte har med felkorrigeringsegenskaperna att gra, som bestmmer lngden p blocken i koden. S har t.ex datortillmpningar krav p att ordlngden skall vara en multipel av 8, medan kodens naturliga lngd avviker hrifrn. Det r d mjligt att modiera kodens lngd (dock frsvinner en del av de algebraiska egenskaperna).
Studentlitteratur

85

3 Linjra blockkoder

Fljande benmningar p kodmodiering anvnds. Punktering (eng. puncturing) (n,k) (n 1,k) Utstrckning (eng. extending) (n,k) (n + 1,k) Frkortning (eng. shortening) (n,k) (n 1,k 1) Frlngning (eng. lengthening) (n,k) (n + 1,k + 1) Rensning (eng. expurgating) (n,k) (n,k 1) Utkning (eng. augmenting) (n,k) (n,k + 1). Exemplen visar 1 bits frndring av kodordslngd eller antal informationsbitar. Metoden r dock inte begrnsad till bara 1 bits frndring utan exemplen visar bara principen. Figur 3.6 visar en grask beskrivning enligt Berlekamp2 av olika modieringar.

Sammanfattning
Den binra informationsstrmmen indelas i block vart och ett med lngden k och kodas i en linjr binrkodare till ett kodord med lngden n dr n > k. Kodningen kan formellt uppfattas som att en meddelandevektor u multipliceras med en generatormatris G till en kodordsvektor v. Vid systematisk kodning bestr kodordet av det sammanhngande k bitar lnga meddelandeordet tfljt eller fregnget av de n k checkbitarna. Maximum Likelihood-korrigering och avkodning innebr att ett mottaget kodord r korrigeras till det giltiga kodord, som skiljer sig frn det mottagna i minst antal binra positioner (minsta Hamming-avstnd). Detta frutstter att den felgenererande strningen modelleras som additivt vitt gaussiskt brus. Det gller nmligen d att sm brussignaler r mer sannolika n stora, d.v.s. frre fel r troligare n er.
E.R. Berlekamp, Algebraic Coding Theory, New York: McGraw-Hill, 1968 (rev. ed., Laguna Hills, Aegan Press, 1984)
2

86

Studentlitteratur

3.9 Modifierade linjra koder

(7,4) linjr kod 1 1 0 1 0 0 0 rensa

(7,3) linjr kod 1 0 1 1 1 0 0

G=

0 1 1 0 1 0 0 0 0 1 1 0 1 0 0 0 0 1 1 0 1 0 0 1 0 1 1 1

G= 0 1 0 1 1 1 0
0 0 1 0 1 1 1 1 1 1 1 1 1 1

utka

H= 0 1 0 1 1 1 0
1 0 0 1 0 1 1 utstrck (8,4) linjr kod

H=

0 0 1 0 1 1 1 0 1 0 1 1 1 0 1 0 0 1 0 1 1 frkorta

1 1 1 1 1 1 1 1

G=
punktera

0 1 0 1 1 1 0 0 0 0 1 0 1 1 1 0 0 0 0 1 0 1 1 1 1 1 1 1 1 1 1 1 frlng

H=

0 0 0 1 0 1 1 1 0 0 1 0 1 1 1 0 0 1 0 0 1 0 1 1

Figur 3.6 Metoder att modiera linjra blockkoder enligt Berlekamp. En kods felupptcktsfrmga och felkorrigeringsfrmga beror av minimiavstndet mellan tv godtyckliga kodord. Eftersom nollkodordet alltid ingr i en linjr kod r detta minimiavstnd ekvivalent med vikten hos det nollskilda kodord som har minst antal ettor - kodens minimivikt. Vid korrigering och avkodning i mottagaren berknas frst syndromet varefter den med syndromet associerade felvektorn subtraheras frn den mottagna kodordsvektorn. Hamming-koder r enkelfelskorrigerande. Hamming-koder r perfekta koder.
Studentlitteratur

87

3 Linjra blockkoder

3.10 Problem. Linjra koder


Problem 3.1
Givet: En kod C med fljande fyra kodord C = {(00100),(10010),(01001),(11111)} Om en ML-avkodare anvnds i en mottagare, besluta vilket kodord som snts a) om r = (00000) mottagits b) om r = (00111) mottagits c) om r = (01101) mottagits d) om r = (10110) mottagits.

Svar: a) 00100 b) 00100 eller 11111 c) 01001 d) 10010 e) 01001 eller 10010

Problem 3.2
Betrakta en systematisk (8,4)-kod med paritetscheckekvationerna v0 = u1 + u2 + u3 v1 = u0 + u1 + u2 v2 = u0 + u1 + u3 v3 = u0 + u2 + u3 dr u0,u1,u2 och u3 r meddelandebitar medan v0,v1,v2 och v3 r paritetscheckbitar. Bestm kodens generator- och paritetscheckmatriser. Visa att kodens minimidistans r 4.

88

Studentlitteratur

3.10 Problem. Linjra koder Svar: 0 1 1 1 1 0 0 0 G= 1 1 1 0 0 1 0 0 1 1 0 1 0 0 1 0 1 0 1 1 0 0 0 1 och H = 1 0 0 0 0 1 1 1 0 1 0 0 1 1 1 0 0 0 1 0 1 1 0 1 0 0 0 1 1 0 1 1

Problem 3.3
Visa att en repetitionskod med jmn lngd aldrig kan vara perfekt.

Problem 3.4
Bestm lngd, dimension och minimidistans fr en kod vars paritetscheckmatris r 1 0 0 0 1 0 1 H= 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 0 0 1 0 1 1 Svar: lngd = 7 dimension = 3 minimidistans = 3

Problem 3.5
Bestm en paritetscheckmatris till koden med generatormatrisen 1 0 1 0 1 1 G= 1 1 0 1 0 1 1 1 1 1 0 1 1 0 0 0 1 1

Studentlitteratur

89

3 Linjra blockkoder Svar: 0 1 0 1 0 0 H= 1 1 0 0 1 0 1 0 0 0 0 1

Problem 3.6
Konstruera paritetscheck- och generatormatris fr en (7,4) Hamming-kod. Svar: 1 0 0 1 0 1 1 H= 0 1 0 1 1 0 1 0 0 1 0 1 1 1 1 1 1 0 0 0 1 och G = 0 1 1 0 1 0 0 1 0 1 0 0 1 0 1 1 0 1 0 0 0

Problem 3.7
Konstruera en syndromavkodningstabell fr en (7,4) Hamming-kod. Svar: syndrom 100 010 001 110 011 101 111 felpositioner 1000000 0100000 0010000 0001000 0000100 0000010 0000001

Problem 3.8
Korrigera och avkoda fljande mottagna vektorer a) r = (010000000000000) b) r = (001111100000000) med paritetscheckmatrisen

90

Studentlitteratur

3.10 Problem. Linjra koder 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 H= 0 1 0 0 1 1 1 0 0 0 0 1 1 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 0 0 0 1 1 0 1 1 1 0 1 0 1 0 1 Svar: a) 000000000000000 b) 001111000000000

Problem 3.9
En kllkodare frser symboler med kvart-tupler enligt nedan: mellanslag0011 E 1100 H 0110 L 0100 M 0010 P 1101 U 1010 A 0101 En kanalkodare anvnder matrisen G enligt nedan: 0 0 0 1 1 1 0 1 G= 1 0 0 1 0 1 1 0 0 1 0 1 1 0 1 0 0 0 1 0 1 1 1 0 fr att koda meddelanden. Avkoda fljande sekvens. Korrigera drvid varje vektor till nrmaste kodord. 11010110 10001011 10011000 10101101 11110100 01000110 10100101 Svar: LEAP UP

Studentlitteratur

91

3 Linjra blockkoder

Problem 3.10
Lt H vara paritetscheckmatrisen till en linjr (n,k)-kod C. Konstruera en ny linjr kod C1 med fljande paritetscheckmatris: 0 0 0 0 H1 = 0 0 0 0 1 1 1 .. .. 1 Visa att C1 r en linjr (n + 1,k)-kod. C1 kallas en utstrckning av C. H

Problem 3.11
Tilldela tecken till 4-tuplar enligt fljande lista: mellanslag 0000 A B C D E F G 0001 0010 0100 1000 0011 0110 1100 M N O R S T U Y 1001 1010 0101 0111 1110 1011 1101 1111

4-tuplarna kodas med fljande generatormatris 1 1 1 0 0 0 0 G= 1 0 0 1 1 0 0 0 1 0 1 0 1 0 1 1 0 1 0 0 1

92

Studentlitteratur

3.10 Problem. Linjra koder Avkoda, under frutsttning att hgst ett fel kan uppst i vart och ett av de kodade 7-bitarsorden, fljande mottagna sekvenser: a) 111000 0101011 b) 1110011 0100111 0010110 c) 1010110 0000000 Svar: a) DECODE B b) TEARS FOR FEARS c) SEE YOU SOON 1000011 0000011 0001000 1100101 1101111 0000101 1011010 1110101 1000111 1111001 0011111 1100111 0010110 1100011 1000000 1101001 1100110 1001111 1100011 1001100 0100111 0110000 1000011 1000000

0001111 0000001

0011110 0100101

Studentlitteratur

93

4 Cykliska koder

Cykliska koder studerades frsta av Prange1. De utgr en viktig delklass av linjra koder eftersom de ltt kan genereras och avkodas med skiftregister. Denition 4.1 En (n,k) linjr kod C r en cyklisk kod om varje skift av en kodvektor i C ocks r en kodvektor, d.v.s. givet ett kodord: c = (c0,c1,c2,...,cn 1) C s nns det ocks ett kodord c= (cn 1,c0,c1,...,cn 2) C. Hrdvarumssigt innebr det att c r ett cykliskt hgerskift av c och att alla n cykliska skift av c ocks mste vara kodord. Fr att frst den underliggande strukturen hos cykliska koder associerar vi med varje kodord c ett kodpolynom c(x) = c0 + c1x + c2x2 +... + cn 1xn 1. (4.1)

Om c r en q-nr (n,k)-kod s utgr alla kodord i c ett vektorrum av dimension k av alla n-tupler ver GF(q). Kodpolynom associerade GF(q)[x] med C formar ett vektorrum ver n , d.v.s. om kodordet c r x 1 ett cykliskt hgerskift av kodordet c C
1

E. Prange, Cyclic Error-Correcting Codes in Two Symbols, Air Force Cambridge Research Center-TN-57-103, Cambridge. MA: September 1957.

Studentlitteratur

95

4 Cykliska koder

c(x) = x c(x) modulo(xn 1) C vilket framgr av att x c(x) = (c0x + c1x2 + ... + cn 1xn) mod(xn 1) = = (cn 1 + c0x + c1x2 + ... + cn 2xn 1) mod(xn 1) = = c(x) mod(xn 1)

(4.2)

(4.3)

Om a(x) = a0 + a1x + a2x2 + ... + an 1xn 1 r ett godtyckligt polyGF(q)[x] nom i n s r produkten a(x) c(x) en linjrkombination av x 1 cykliska skift av c. Eftersom C spnner upp ett vektorrum mste a(x) c(x) vara ett giltigt kodpolynom a(x) c(x) C fr a(x) En cyklisk kod r ett ideal i GF(q)[x] , C. xn 1

GF(q)[x] . xn 1

Repetition av begreppet ideal: Lt R vara en ring. En icke-tom delmngd I R r ett ideal om

a) I r en grupp under addition i R. b) a r = b I fr a I och r I.

96

Studentlitteratur

4.1 Grundlggande egenskaper fr cykliska koder

4.1 Grundlggande egenskaper fr cykliska koder


Teorem 4.1 Lt C vara en q-nr (n,k) linjr cyklisk kod. I mngden av kodpolynom i C nns ett unikt moniskt kodpolynom g(x) (moniskt polynom r ett polynom dr koefcienten fr hgstagradstermen r 1) med minimal grad r (= n k) < n. g(x) kallas C:s generatorpolynom. Varje kodpolynom c(x) i C kan uttryckas entydigt som c(x) = m(x) g(x) dr g(x) r generatorpolynomet i C och m(x) r ett polynom med grad lgre n n r (= k) i GF(q)[x]. Generatorpolynomet g(x) i C r en faktor till (xn 1) i GF(q)[x].
Exempel 4.1 En cyklisk kod av lngd 15 mste ha ett generatorpolynom som r delare till x15 1. x15 1 kan delas upp i en produkt av minimalpolynom av nollskilda element i GF(16) med avseende p GF(2). I sjlva verket behver man inte hrleda dessa polynom fr att bestmma vilka cykliska koder av lngd 15, som r mjliga. Man behver bara se p de nollskilda konjugatklasserna, som man kan bilda med hjlp av potenser av , som r ett element av ordning 15 (och drigenom ett primitivt element): {1} {1,2,4,8} {3,6,12,9} {5,10} {7,14,13,11} D.v.s. x15 1 kan faktoriseras i ett frstagradspolynom, ett andragradspolynom och tre fjrdegradspolynom. Fljaktligen kan man konstruera generatorpolynom av godtyckligt gradtal mellan 1 och 15 fr en binr cyklisk kod av lngd 15. Exempel 4.2 Undersk vilka gradtal generatorpolynomet till en kod av lngd 25 kan ha, d.v.s. faktorisera x25 1.
Studentlitteratur

97

4 Cykliska koder Vi brjar med att skriva upp konjugatklasserna baserat p ett primitivt element av ordning 25: {1} {1,2,4,8,16,7,14,3,6,12,24,23,21,17,9,18,11,22,19,13} {5,10,20,15} Detta innebr att x25 1 kan faktoriseras i ett frstagradspolynom, ett fjrdegradspolynom och ett tjugondegradspolynom. Fljande koder r mjliga: {(25,1),(25,4),(25,5),(25,20),(25,21),(25,24),(25,25)}.

Egenskapen, att Varje kodpolynom c(x) i C kan uttryckas entydigt som c(x) = = m(x) g(x) dr g(x) r generatorpolynomet i C och m(x) r ett polynom med grad lgre n k i GF(q)[x], enligt Teorem 4.1, anger en praktisk metod fr att avbilda meddelanden p kodord i en cyklisk kod. Antag nmligen att g(x) r av grad (n k) fr en cyklisk (n,k)-kod. Ett meddelandeord av lngden k, (m0,m1,...,mk 1), kan d associeras med ett meddelandepolynom m0 + m1x + ... + mk 1xk 1 och kodas genom att multipliceras med generatorpolynomet p fljande stt: cm(x) = m(x) g(x) = (m0 + m1x + ... + mk 1xk 1) g(x) = = m0 g(x) + m1 x g(x) + ... + mk 1xk 1 g(x) = g(x) m0 m1 mk 1 x g(x)

x k 1 g(x) eller g0 0 0
98

cm = m

g1 g0 0

gn k g1 0 g0

0 gn k g1

0 0

0 0 gn k

= m G (4.4)

Studentlitteratur

4.1 Grundlggande egenskaper fr cykliska koder

P ett likartat stt kan en generell form fr paritetscheckmatrisen erhllas uttryckt i koefcienterna fr paritetscheckpolynomet. Eftersom enligt Teorem 4.1 Generatorpolynomet g(x) i C r en faktor till (xn 1) i GF(q)[x] fljer att det fr varje generatorpolynom g(x) av grad (n k) existerar ett paritetspolynom h(x) av grad k s att g(x) h(x) = xn 1. Eftersom ett kodpolynom c(x) r ett kodpolynom omm det r en multipel av g(x), fljer det att c(x) r ett kodpolynom omm c(x) h(x) = 0 modulo (xn 1). Polynomprodukten c(x) h(x) modulo (xn 1) r ett polynom av formen s(x) = s0 + s1x + ... + sn 1xn 1 GF(q)[x] . xn 1 (4.5)

Om s(x) r identiskt lika med 0 d mste de n koefcienterna {sj} vara 0 fr j = 0,1,...,n 1. Detta medfr att vi fr n stycken paritetscheckekvationer:
n1

c(x) =

i=0 n 1

n1

cix i ,

h(x) =

j=0 n 1

hjx j ,

(4.6)
n 1

s(x) =

t=0

s tx t = c(x)h(x) =

i=0

cix i

j=0

hjx j 0 mod x n 1 (4.7)

n 1

st =

i=0

cth(t i) mod n = 0,

t = 0,1,..., n 1

(4.8)

De sista (n k) av dessa paritetscheckekvationer kan uttryckas i matrisform.

Studentlitteratur

99

4 Cykliska koder
n1 i=0 n1 T

cih(k i) mod n

sk s = sk + 1 sn 1

i=0

cih(k + 1 i) mod n =

n1 i=0

cih(n 1 i) mod n h k h1 h0 0 0 0 0 0 h k h1 h0 0 0 0
T

c0

c1

cn 1 0 0 0 h k h1 h0 0 0 0 0 0 h k h1 h0

= cH T (4.9)

Teorem 4.2 Om C r en cyklisk (n,k)-kod med generatorpolynomet g(x) s r C en dual cyklisk (n,n k)-kod med generatorpolynomet h*(x), som r det till C reciproka2 paritetscheckpolynomet.
Exempel 4.3 Binr cyklisk kod med lngd 7 Vi behver ett generatorpolynom, som r en faktor i (x7 1) i GF(2)[x]. Konjugatklasserna i GF(8) skapade av potenser av , ett element av ordning 7, med associerade minimalpolynom r: {1} x + 1 {1,2,4} x3 + x + 1 {3,6,5} x3 + x2 + 1 Fljande koder kan skapas: {(7,1),(7,3),(7,4),(7,6),(7,7)}. Det reciproka polynomet till ett n:te grads polynom f(x) = f0 + f1x + ... + + fnxn r f*(x) = xnf(x 1) = fn + fn 1x + ... + f0xn.
2

100

Studentlitteratur

4.1 Grundlggande egenskaper fr cykliska koder Lt oss skapa en (7,3)-kod (enkelfelsrttande). grad g(x) = n k = 7 3 = 4. Tag t.ex. g(x) = (x + 1)(x3 + x + 1) = x4 + x3 + x2 + 1. D blir h(x) = x3 + x2 + 1 (eftersom g(x) h(x) 0 mod (x7 1)).

Meddelandepolynomen m(x) bestr av alla polynom med gradtal 2 eller lgre. m(x) g(x) 0 g(x) 1 g(x) x g(x) x2 g(x) (x2 + 1) g(x) (x2 + x + 1) g(x) (x + 1) g(x) (x2 + x) g(x) c0 = c1 = c2 = c3 = c4 = c5 = c6 = c7 = kodpolynom 0 1 + x2 + x3 + x4 x + x3 + x4 + x5 x2 + x4 + x5 + x6 1 + x3 + x5 + x6 1 + x + x4 + x6 1 + x + x2 + x5 x + x2 + x3 + x6 00 10 01 00 10 11 11 01 x0x1 meddelandeord kodord 0000 1110 0111 1011 0101 0010 1001 1100 0 0 0 1 1 1 0 1 x2

1 0 1 1 1 0 0 G= 0 1 0 1 1 1 0 0 0 1 0 1 1 1 1 1 0 1 0 0 0 H= 0 1 1 0 1 0 0 0 0 1 1 0 1 0 0 0 0 1 1 0 1
Studentlitteratur

g(x) = 1 + x2 + x3 + x4

h(x) = 1 + x2 + x3

101

4 Cykliska koder

Kodning med hjlp av polynommultiplikation r enkel men r, som framgr av det senaste exemplet, oftast icke systematisk. Systematisk kodning kan utfras med en procedur, som bara r en aning mer komplicerad n den beskrivna, som skulle kunna kallas: Polynommultiplikation med generatorpolynom. Om vi utgr frn en cyklisk (n,k)-kod C med generatorpolynomet g(x) och ett k symboler lngt meddelande m = (m0,m1,...,mk 1) s kan man anvnda en

4.2 Systematisk kodningsmetod fr en cyklisk (n,k)-kod


1. Multiplicera meddelandepolynomet m(x) med xn k. 2. Dividera resultatet med generatorpolynomet g(x). 3. Stt c(x) = xn k m(x) d(x).

Exempel 4.4 Systematisk kodning av (7,3)-koden Om vi t.ex. kodar meddelandeordet 101 svarande mot meddelandepolynomet x2 + 1 fr vi enligt detta recept: 1. 2. xn k m(x) = x4(x2 + 1) = x6 + x4 (x6 + x4)/g(x)

102

Studentlitteratur

4.2 Systematisk kodningsmetod fr en cyklisk (n,k)-kod x2 + x + 1 = q(x) x4 + x3 + x2 + 1 x6 + x4 + x2 + x2 +x

x6 + x5 + x4 x5 x5 + x4 + x3

x4 + x3 + x2 + x x4 + x3 + x2 +1 x + 1 = d(x) xn k m(x) = q(x) g(x) + d(x) 3. c(x) = q(x) g(x) = xn k m(x) d(x) = = 1 + x + x4 + x6 cm = (1100101) meddelande 000 100 010 001 101 111 110 011 m(x) 0 1 x x2 1 + x2 1 + x + x2 1+x x + x2 c0 = c1 = c2 = c3 = c4 = c5 = c6 = c7 = kodpolynom 0 1 + x2 + x3 + x4 1 + x + x2 + x5 x + x2 + x3 + x6 1 + x + x4 + x6 x2 + x4 + x5 + x6 x + x3 + x4 + x5 1 + x3 + x5 + x6 kodord 0000 1011 1110 0111 1100 0010 0101 1001 000 100 010 001 101 111 110 011 x0x1x2 Fr att f G p systematisk form vljer vi de kodord, som motsvarar meddelandeorden: (100), (010) och (001) (kanoniska basvektorer).

Studentlitteratur

103

4 Cykliska koder 1 0 1 1 1 0 0 G= 1 1 1 0 0 1 0 0 1 1 1 0 0 1 1 0 0 0 1 1 0 H= 0 1 0 0 0 1 1 0 0 1 0 1 1 1 0 0 0 1 1 0 1

4.3 Skiftregister-kodare och -avkodare fr cykliska koder


Skiftregister hr till de enklaste digitala kretsarna och kan drfr arbeta med hastigheter som nrmar sig dem, som kan uppns fr en grind med en given teknologi. Datahastigheter uppemot tusentals megabit/sekund r vanliga i mnga applikationer och det r drfr ndvndigt att anvnda kretskongurationer, som klarar dessa hga hastigheter. Skiftregisterkopplingar r i mnga fall de enda kopplingar som kan anvndas.

4.4 Systematisk kodning med hjlp av skiftregister


Alla tre operationer under rubrik 4.2 Systematisk kodningsmetod fr en cyklisk (n,k)-kod kan utfras med en divisionskrets (som berknar resten vid division), som implementeras med ett terkopplat linjrt (n k)-skiftregister baserat p generatorpolynomet g(x) = 1 + g1 x + ... + xn k
104

(4.10)
Studentlitteratur

4.4 Systematisk kodning med hjlp av skiftregister

Med hnvisning till Figur 4.1 kan vi flja de olika deloperationerna vid den systematisk kodningen: 1. Med grindarna i lge A skiftas de k informationsbitarna m0,m1,...,mk 1 in i kommunikationskanalen och samtidigt in i skiftregistret. 2. Bryt grindarna: A . 3. Paritetscheckbitarna skiftas ut i kommunikationskanalen.

A g1 d0 d1 g2 d2 gn k 1 dn k 1

meddelandeblockingng m0,m1,...,mk 1

B
kodordsutgng

kommunikationskanal

c0,c1,...,cn 2,cn 1= d0,...dn k 2,dn k 1,m0,...,mk 2,mk 1


B A

Figur 4.1 Systematisk cyklisk kodning med skiftregister.


Studentlitteratur

105

4 Cykliska koder

A g0 = 1 1 d0
+

g1 = 1 x d1

g2 = 0 x2 d2 x3 +

meddelandeblockingng m0,m1,...,mk 1

B
kodordsutgng

kommunikationskanal

c0,c1,...,cn 2,cn 1= d0,...dn k 2,dn k 1,m0,...,mk 2,mk 1


B A

Figur 4.2 Systematisk kodningskrets till Exempel 4.5. Exempel 4.5 Koda meddelandeordet m = (1011) med en (7,4)-kod Anvnd g(x) = 1 + x + x3 som generatorpolynom 1. 2. xn k = x7 4(1 + x2 + x3) = x3 + x5 + x6 (x3 + x5 + x6)/g(x) x3 + x + 1 = q(x) x3 + x2 + x x6 + x5 x6 + x3 + x4 + x3 x5 + x4 x5 x4 x4 +x +1 + x3 + x2 + x2 + x + 1 + x2 + x 1 = d(x)

106

Studentlitteratur

4.5 Syndromberkning, felupptckt och felkorrigering 3. c(x) = q(x) g(x) = xn k m(x) d(x) = 1 + x3 + x5 + x6 meddelandeord 0 1 1 0 1 registerinnehll 000 110 101 100 100 skiftantal 0 skift 1 skift 2 skift 3 skift 4 skift

Efter utskiftning fs (1001011) eller 1 + x3 + x5 + x6.

4.5 Syndromberkning, felupptckt och felkorrigering


1. Konstruera ett uppskattat meddelandeblock m och ett restblock d med hjlp av meddelandeblocket och paritetscheckblocket i den mottagna vektorn: r = (r0,r1,...,rn 1) = (d0,d1,...,dn k 1,m0,m1,...,mn 1) 2. Koda m med en kodare identisk med den i sndaren och erhll drvid ett uppskattat restblock d. 3. Jmfr d och d. Om de inte r lika r r inte ett giltigt kodord och indikerar p s stt att det nns ett fel i det mottagna kodordet. I kapitel 3 visades att syndromet erhlls genom matrisprodukten rHT och det kan visas att syndromet s fr det mottagna kodordet r helt enkelt r skillnaden s = d d. Felkorrigering av en linjr kod med hjlp av standarduppstllningsschemat med syndromtabell enligt kapitel 3 utfrs genom att varje syndromvrde associeras med en bestmd sidoklass. Felmnstret
Studentlitteratur

107

4 Cykliska koder

med den lgsta Hamming-vikten inom en given sidoklass r den troligaste att intrffa och vljs drfr som sidoklassledare. Avkodning enligt MLH-metoden utfrs drfr genom att syndromet fr den mottagna kodvektorn berknas varefter motsvarande sidoklassledare subtraheras frn den mottagna kodvektorn, Nackdelen med MLH-metoden r att syndromtabellen fr kande kodordslngd snabbt blir otympligt stor. Fr cykliska koder blir syndromtabellen reducerad i storlek med faktorn 1 dr n r kodordslngden. n Teorem 4.3 Om s(x) r syndrompolynomet fr ett mottaget kodpolynom r(x) s r r(1)(x) det polynom som bildas vid ett cykliskt hgerskift av r(x). Restpolynomet vid division av sx(x) med g(x) r syndromet s(1)(x) till r(1)(x). Detta teorem medfr att syndromtabellens storlek reduceras drastiskt.

4.5.1 Avkodning av cykliska koder


Avkodning av cykliska koder bestr liksom av avkodning av linjra koder av 3 steg: 1. Syndromberkning. 2. Framtagning av motsvarande felmnster. 3. Felkorrigering.

Exempel 4.6 Avkodning av mottaget (7,4) binrt cykliskt kodord. I detta exempel visas hur avkodning av en enkel cyklisk (7,4)-kod utfrs. Generatorpolynomet r g(x) = x3 + x + 1 och paritetscheckpolynomet r (x7 + 1)/(x3 + x + 1) = x4 + x2 + x + 1. Vi anger paritetscheckmatrisen p den form som anges i uttrycket (4.9):

108

Studentlitteratur

4.5 Syndromberkning, felupptckt och felkorrigering 1 0 1 1 1 0 0 H= 0 1 0 1 1 1 0 0 0 1 0 1 1 1 Eftersom kolumnerna i paritetscheckmatrisen bestr av alla nollskilda 3-tupler r koden en perfekt (Hamming) enkelfelskorrigerande kod. De korrigerbara felmnstren och motsvarande syndrom r.

Felmnster 0000000 1000000 0100000 0010000 0001000 0000100 0000010 0000001

Felpolynom 0 1 x x2 x3 x4 x5 x6

Syndrom 000 100 010 001 110 011 111 101

Syndrompolynom 0 1 x x2 1+x x + x2 1 + x + x2 1 + x2

Tabell 4.1 Felmnster och syndrom till Exempel 4.6. Av Tabell 4.1framgr att felmnstren bestr av alla cykliska skift av 0000001 och av Teorem 4.3 fljer att avkodaren bara behver knna igen ett av de mjliga felmnstren fr att kunna avkoda alla de andra. Vi vljer att avkoda det syndrom, 101, som motsvarar felmnstret 0000001 eftersom det ger oss mjlighet att skifta ut korrigerade kodordsbitar innan felets position bestmts. Avkodningen brjar med att registret fr det mottagna kodordet nollstlls, se Figur 4.3. Drefter skiftas det mottagna kodordet samtidigt in i detta register och i syndromberkningsregistret. Efter inskiftning nns det mottagna kodordets syndrom i syndromberkningsregistret. Vid varje fortsatt skift av kodordsregistret och syndromberkningsregistret berknar syndromberkningsregistret syndromen fr cykliskt skiftade versioner av det mottagna kodordet och korrigerade bitar skiftas ut p utgngen (p ut i Figur 4.3). Om syndromet 101 uppstr vid ngot skift blir utgngen p OCH-kretsen hg och den bit som samtidigt nns p kodordsutgngen korrigeras (felkorrektionsaddern i Figur 4.3). Studera fallet att mottaget kodord r 1101011. Vi kan berkna syndromet p vanligt stt enligt: s = r HT och fr d s = 010, d.v.s. den andra biten i det mottagna kodordet r felaktig eftersom syndromet 010 = den andra kolumnen i H.

Studentlitteratur

109

4 Cykliska koder

register fr mottaget kodord in

felkorrektion ut +

Y
+

syndromberkningsregister

X
&

Figur 4.3 Skiftregisteravkodare till Exempel 4.6.

Skift Kodordsregister Syndrom 0 1 2 3 4 5 6 1101011 -110101 --11010 ---1101 ----110 -----11 ------1 01 001 110 011 111 101 100

Korrigerat kodord 1 11 011 1011 01011 001011 1001011

Tabell 4.2 Kodordsregisterinnehll och syndrom till Exempel 4.6. Nr kodordsregisterinnehllet skiftats 5 gnger samtidigt som syndromregistret skiftats 5 gnger har den sjtte biten frn hger kommit i lge att bli korrigerad. Anm.: Lgg mrke till att syndromberkningsregistret r uppbyggt med samma sorts divisionskrets som den som berknade paritetscheckbitarna i Figur 4.2 till Exempel 4.5.

110

Studentlitteratur

4.6 Felupptckande cykliska koder

4.6 Felupptckande cykliska koder


Att upptcka fel i ett kodord r betydligt enklare n att bda upptcka och korrigera fel. I de fall d det nns en returkanal och fel har upptckts i ett mottaget kodord begr man bara omsndning av det felaktiga kodordet. Den vanligaste metoden r enkelbits paritetscheck som utfrs genom att till det snda kodordet foga ytterligare en bit, nolla eller etta, s att hela kodordet innehller ett jmnt/udda (jmn/udda paritet) antal ettor. Vid den drnst vanligaste metoden anvnder man sig av olika felupptckande CRC-koder (Cyclic Redundancy Check). Paritetscheckmetoden r relativt enkel medan metoden med CRC-koder inte r lika enkel, varfr ngot om dess principer skall genomgs hrnst.

4.6.1 Frkortade koder och felupptckt med CRC


I avsnittet 3.9 Modierade linjra koder angavs olika stt att frndra ett kodords lngd. Fr konstruktion av CRC-koder utgr vi frn frkortade koder. En systematisk (n,k)-kod C som skall frkortas med j bitar bildas genom att utvlja de kodord vars j hgra (meddelande)bitar = 0. Dessa kodord utgr en delmngd, som vi kan kalla S, av alla kodord. Den frkortade koden C bildas nu genom att i denna delmngd S ta bort de j hgra nollbitarna och vi fr drigenom en frkortad systematisk (n j,k j)-kod. Eftersom en frkortning minskar kodens relativa takt, R = k , r den n frkortade kodens felupptckts- och felkorrigeringsfrmga tminstone lika bra som fr den ursprungliga kod p vilken frkortningen gjorts. Frkortning av cykliska koder frambringar nstan alltid icke-cykliska koder men dessa kan dock genereras och avkodas med samma skiftregisterkodare och avkodare som den ursprungliga koden.
Studentlitteratur

111

4 Cykliska koder

Betrakta den systematiska cykliska kodaren i Figur 4.4. Innan kodningen startar nollstlls registret. Om de j frsta bitarna (mk 1 till mk 1 j) alla r lika med noll pverkas inte registrets tillstnd utan resulterar bara i lika mnga nollor vid utskiftningen p kodordsutgngen. Borttagandet av dessa j nollor har drmed ingen inverkan p kodningsprocessen. Eftersom syndromberkningen utfrs i en likadan divisionskrets som den som berknar paritetsbitarna i kodaren (se anm. i slutet av Exempel 4.6) kan drfr ocks syndromberkningen fr den frkortade koden utfras med den ursprungliga kodens syndromberkningskrets. Frkortade cykliska koder, som enligt ovan i allmnhet inte r cykliska, har ftt vidstrckt anvndning som felupptckande koder med namnet CRC (Cyclic Redundancy Check). Vid anvndning fr felupptckt drar man frdel av cykliska koders stora frmga att upptcka skurfel3.

A g1 d0 d1 g2 d2 gn k 1 dn k 1

meddelandeblockingng m0,m1,...,mk 1

B
kodordsutgng

kommunikationskanal

c0,c1,...,cn 2,cn 1= d0,...dn k 2,dn k 1,m0,...,mk 2,mk 1


B A

Figur 4.4 Systematisk cyklisk kodare.


3

Skurfel r bitfel som upptrder flera efter varandra i ett eller flera kodord och kan uppst t.ex. vid fdning i en radiokanal.
Studentlitteratur

112

4.6 Felupptckande cykliska koder

CRC-koder anges genom ett generatorpolynom g(x). Kodordslngden r godtycklig upp till den ursprungliga kodordslngden. Vanligen vljs g(x) = (x + 1)b(x) dr b(x) r ett primitivt polynom. Genom faktorn (x + 1) frskrar man sig om att alla uddavikts felmnster upptcks. I Tabell 4.3 visas ngra CRC-polynom av olika lngd
CRC-kod CRC-4 CRC-12 CRC-ANSI CRC-SDLC =( CRC-CCITT (X25) Generatorpolynom

g4(x) = x4 + x3 + x2 + x + 1 g12(x) = x12 + x11 + x3 + x2 + x + 1 = (x11 + x + 1)(x + 1) gANSI(x) = x16 + x15 + x2 + 1 = (x15 + x + 1)(x + 1) x14 gSDLC(x) = x16 + x15 + x13 + x7 + x4 + x2 + x + 1 = + x13 + x12 + x10 + x8 + x6 + x5 + x4 + x3 + x + 1)(x + 1)2

gCCITT(x) = x16 + x12 + x5 + 1 = = x15 + x14 + x13 + x12 + x4 + x3 + x2 + x + 1)(x + 1)

CRC-32 x32 + x26 + x23 + x22 + x16 + x12 + x11 + x10 + x8 + x7 + x5 + x4 (Ethernet) + x2 + x + 1

Tabell 4.3 Generatorpolynom till CRC-koder. Koderna CRC-SDLC och CRC-CCITT r internationella standarder. CRC-12-koden har ett generatorpolynom som r delare till x 2 1 1 = x 2047 1 men inget polynom av lgre grad p formen xm 1, d.v.s. g12(x) denierar en cyklisk kod med lngden 2047 och med dimensionen 2047 12 = 2035. Man kan allts anvnda koden fr att generera CRC-koder med lngder upp till 2035 med 12 redundanta bitar. CRC-kodernas frmga att upptcka felaktiga kodord anges genom tckningen (eng. coverage) , som anger hur stor brkdel av alla felaktiga kodord som koden kan upptcka. Tckningen r kvoten mellan alla felaktiga kodord och alla kodord. Fr en binr CRC-kod r tckningen
Studentlitteratur
11

113

4 Cykliska koder

2n j 2k j = 1 2k n nj 2

(4.11)

Tckningen r allts endast en funktion av antalet redundanta bitar, n k, i det snda kodordet. Endast om bitfelen r sdana att det snda kodordet har ndrats till ett annat giltigt kodord kan de inte upptckas. De som inte kan upptckas utgr brkdelen 1 av alla mjliga fel. (Felupptckts)tckningen fr en CRC-4 kod r 1 2 4 = 0,9375 CRC-12 kod r 1 2 12 = 0,999756 CRC-16 kod r 1 2 16 = 0,999985 CRC-32 kod r 1 2 32 = 0,99999999977

4.7 Golaykoder
Den binra Golay4-koden, G23, (23,12,7) och den ternra Golay-koden (12,6,6) r de enda perfekta koderna frutom Hammingkoderna och repetitionskoden med udda lngd som nns. Lt vara ett primitivt element i GF(211) och lt = 89. Eftersom 211 1 = 89 23 r av 23:e ordningen, d.v.s. r en primitiv 23:e enhetsrot (23 = 1). De olika potenserna av genererar fljande konjugatklasser och drmed associerade minimalpolynom:

Golay, Notes on Digital Coding, Proceedings of the IRE, Vol. 37, p. 657, June 1949.

4 M.J.E.

114

Studentlitteratur

4.7 Golaykoder

konjugatklass {1} {, , , , , , , , , , }
2 4 8 16 9 18 13 3 6 12

associerat minimalpolynom

x+1 x
11

+x

10

+ x + x5 + x4 + x2 + 1

{5,10,20,17,11,22,21,19,15,7,14} x11 + x9 + x7 + x6 + x5 + x + 1

x23 + 1 kan drfr faktoriseras i 3 irreducibla minimalpolynom. De associerade (stora) minimalpolynomen kan bestmmas med Mathematica men eftersom det blir mycket stora exponenter under utrkningens gng, som gr att datorn hnger sig, r det ndvndigt att dela upp utrkningarna i ett antal mindre delberkningar, t.ex. s hr5: a = PolynomialMod[PolynomialMod[(x + 89) (x + 2 89)(x + 3 89)(x + 4 89)(x + 6 89), 11 + 9 + 1], 2]; b = PolynomialMod[PolynomialMod[(x + 8 89) (x + 9 89)(x + 12 89), 11 + 9 + 1], 2]; c = PolynomialMod[PolynomialMod[a b, 11 + 9 + 1], 2]; d = PolynomialMod[ PolynomialMod[(x + 16 89), 11 + 9 + 1],2];

utfrs modulo det irreducibla polynomet 11 + 9 + 1. Fler irreducibla polynom terfinns bl.a. i W.W. Peterson and E.J. Weldon, Error-Correcting Codes, Second Edition, The MIT Press, Cambridge, 1972.
5 Divisionen Studentlitteratur

115

4 Cykliska koder

e = PolynomialMod[PolynomialMod[(x + 13 89), 11 + 9 + 1], 2]; f = PolynomialMod[PolynomialMod[(x + 18 89), 11 + 9 + 1], 2]; g = PolynomialMod[PolynomialMod[d e f, 11 + 9 + 1], 2]; PolynomialMod[PolynomialMod[c 1], 2] g, 11 + 9 +

1 + x2 + x4 + x5 + x6 + x10 + x11

Det nns drfr tv mjliga generatorpolynom: g1(x) = x11 + x10 + x6 + x5 + x4 + x2 + 1 g2(x) = x11 + x9 + x7 + x6 + x5 + x + 1 G23-koden har fljande egenskaper: Vikten hos kodord med jmn vikt r delbar med 4. Minimidistansen r 7 varfr koden r trippelfelsrttande. Koden r perfekt. Fr att bttre passa i datorkretsar anvnder man ofta den utstrckta versionen G246, (24,12,8), som erhlls genom att addera en paritetsbit. Generatormatrisen fr G24 r sjlvdual vilket gr att den samtidigt r sin egen paritetscheckmatris.
anvndes av Voyager mellan 1979 och 1981 fr att snda bilder av Jupiter och Saturnus. Varje bildpixel innehll 12 bildbitar och 12 checkbitar.
6G 24

116

Studentlitteratur

4.7 Golaykoder 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 0 1 0 0 0 0 0 0 0 0 0 0 1 1 1 0 1 1 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 1 1 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 1 1 0 0 0 1 0 1 1 0 0 0 0 1 0 0 0 0 0 0 0 1 1 1 1 0 0 0 1 0 1 1 0 G 24 = 0 0 0 0 0 1 0 0 0 0 0 0 1 1 1 0 0 0 1 0 1 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 1 0 1 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 1 1 0 1 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 1 1 0 1 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 1 1 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 0 1 1 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 1 0 1 1 1 0 0 0 1

Figur 4.5 Generatormatris fr G24, den utstrckta Golay-koden. En mjlig generatormatris visas i Figur 4.5.

Aritmetisk avkodningsalgoritm fr den utstrckta Golaykoden G24


Lt G = [I12 |B] vara generatormatrisen. Lt I1, I2, ,I12 vara B:s kolumner och r1, r2, ,r12 dess rader. Lt 0 beteckna 12-tupeln av alla nollor. Lt {xi} och {yi} beteckna mngder av binra 12-tupler i vilka endast den i:te koordinaten innehller ett nollskilt vrde. Lt r vara en mottagen kodvektor. 1. Berkna syndromet s = GrT. 2. Om w(s) 3, stt felvektorn e = (sT,0) och g till steg 8. 3. Om w(s + Ii) 2 fr ngon kolumnvektor Ii, stt e = ((s + Ii)T, yi). 4. Berkna BTs.
Studentlitteratur

117

4 Cykliska koder

5. Om w(BTs) 3, stt felvektorn e = (0,(BTs)T) och g till steg 8. 6. Om w(BTs + r iT ) 2 fr ngon radvektor ri, stt e = (xi,(BTs)T + ri) och g till steg 8. 7. Minst 4 fel har intrffat. Omsndning och terstart p steg 1. 8. Avkoda r till r + e.
Exempel 4.7 Avkoda den mottagna kodvektorn r = (1000 1000 0000 1001 0001 1101). 1. Berkna s = GrT sT = (0111 1101 1111). 2. w(s) r inte mindre n eller lika med 3 g till steg 3. 3. w(s + I0) = w(0000 0010 0000) 2, stt e = ((s + I0)T,y0) = = (0000 0010 0000 1000 0000 0000) och g till steg 8. 8. c = r + e = (0000 0000 0000 0000 0000 0000) Anm.: Lgg mrke till att resultatet utgrs av summan av generatormatrisens rad 1 och rad 2. Exempel 4.8 Avkoda den mottagna kodvektorn r = (0011 1101 0000 0011 0000 1010). 1. Berkna s = GrT sT = (0001 0100 1000). 2. w(s) = 3 stt e = (sT,0) = (0001 0100 1000 0000 0000 0000) och g till steg 8. 8. c = r + e = (0010 1001 1000 0011 0000 1010). Exempel 4.9 Avkoda den mottagna kodvektorn r = (1111 0110 1111 0011 0000 1110). 1. Berkna s = GrT sT = (0111 0010 1011). 2. w(s) r inte mindre n eller lika med 3 g till steg 3. 3. Inga Ii satiserar w(s + Ii) 2 g till steg 4. 4. Berkna BTs = (1011 0101 0000)T.

118

Studentlitteratur

4.8 Problem. Cykliska koder 5. w(BTs) r inte mindre n eller lika med 3 g till steg 6.
T 6. w(BTs + r 1 1 ) = 2, stt e = (x11,(BTs)T + r11) = (0000 0000 0001 0000 0010

0001) och g till steg 8. 8. c = r + e = (1111 0110 1110 0011 0010 1111),

Sammanfattning
Cykliska koder utgr en delklass av de linjra koderna. Cykliska koder kan ltt genereras och avkodas med skiftregister. Skiftregisterkopplingar r ndvndiga fr att kunna uppn hga datahastigheter. Fr konstruktion av cykliska koder r teorin fr minimalpolynom grundlggande.

4.8 Problem. Cykliska koder


Problem 4.1
a) Bestm paritetscheckpolynomet h(x) till den cykliska (15,11)-Hamming-koden genererad av g(x) = 1 + x + x4. Bestm generatorpolynomet till den duala koden. Bestm generator- och paritetscheck-matriser p systematisk form fr koden enligt a).

b) c)

Svar: a) h(x) = x11 + x8 + x7 + x5 + x3 + x2 + x + 1 b) gD(x) = x11 + x10 + x9 + x8 + x6 + x4 + x3 + 1


Studentlitteratur

119

4 Cykliska koder 1 0 0 0 1 0 0 1 1 0 1 0 1 1 1 c) H = 0 1 0 0 1 1 0 1 0 1 1 1 1 0 0 0 0 1 0 0 1 1 0 1 0 1 1 1 1 0 0 0 0 1 0 0 1 1 0 1 0 1 1 1 1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 G= 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 1 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1

Problem 4.2
a) b) Visa att g(x) = 1 + x2 + x4 + x6 + x7 + x10 genererar en cyklisk (21,11)-kod. r(x) = 1 + x5 + x17 r en mottagen vektor. Bestm syndromet fr r(x).

Svar: b) x8 + x6 + x4 + x3 + 1

Problem 4.3
Polynomet g(x) = 1 + x + x2 + x3 + x6 genererar en cyklisk (15,9)-kod. Bestm det systematiskt kodade kodpolynomet fr meddelandepolynomet 1 + x2 + x5 + + x8. Svar: 1 + x3 + x4 + x6 + x8 + x11 + x14

Problem 4.4
C1 r en binr cyklisk kod av lngd 15 med generatorpolynomet

120

Studentlitteratur

4.8 Problem. Cykliska koder g(x) = x5 + x4 + x2 + 1 Bestm kodpolynomen och motsvarande kodvektorer fr meddelandepolynomen a) b) x2 x7 + x3 + x

Svar: a) c(x) = x7 + x3 + x2 + 1 b) c(x) = x12 + x8 + x6 + x4 (1 1 0 1 0 0 0 1 1 1 0 0 1 0) (1 0 1 0 1 0 1 0 1 0 0 0 1 0 0) + x2 + 1

Problem 4.5
C1 r en binr cyklisk kod av lngd 15 med generatorpolynomet g(x) = x5 + x4 + x2 + 1 Bestm kodpolynomet och motsvarande kodvektor fr meddelandepolynomet x8 + x7 + x6 + x5 + x4 Svar: c(x) = x13 + x12 + x11 + x10 + x9 + 1 (1 0 0 0 0 0 0 0 0 1 1 1 1 1 0)

Problem 4.6
En cyklisk (15,11)-Hammingkod C genereras av g(x) = 1 + x + x4. a) Bestm paritetscheckpolynomet h(x) till koden C. b) Bestm generatorpolynomet till den duala koden C . c) Bestm generator- och paritets-matris fr koden C p systematisk form. Svar: a) h(x) = x
15

+ 1 = x11 + x8 + x7 + x5 + x3 + x2 + x + 1 g(x)

b) Enligt Teorem 4.2 r gdual(x) = h*(x) = x11 h(x 1) = x11 + x10 + x9 + x8 + x6 + x4 + x3 + 1 1 0 0 0 1 0 0 1 1 0 1 0 1 1 1 c) Hsyst = 0 1 0 0 1 1 0 1 0 1 1 1 1 0 0 0 0 1 0 0 1 1 0 1 0 1 1 1 1 0 0 0 0 1 0 0 1 1 0 1 0 1 1 1 1
Studentlitteratur

121

4 Cykliska koder 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 G syst = 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 1 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1

Problem 4.7
Bestm antalet binra cykliska koder av lngd 31 och ange respektive kods dimension. Svar: 12 olika cykliska koder med mjliga dimensioner 1,5,6,10,11,15,16,20,21,25,26,30

Problem 4.8
Bestm minimal blocklngd fr en binr cyklisk kod som kan genereras med det irreducibla polynomet g(x) = 1 + x + x2 + x4 + x6 + x7 + x8 Svar: n = 17

Problem 4.9
Undersk om 1 + x2 + x4 kan generera en cyklisk kod med en kodordslngd n 7. Bestm (n,k) fr de koder som kan genereras. Svar: Koden (n,k) = (6,2) kan genereras.

122

Studentlitteratur

4.8 Problem. Cykliska koder

Problem 4.10
Berkna fr den cykliska (15,11)-Hammingkoden med generatorpolynomet g(x) = 1 + x + x4 a) Paritetscheckpolynomet h(x). b) Generatorpolynomet gD(x) fr den duala koden. c) Generator- och paritetscheckmatriserna p systematisk form. Svar: a) h(x) = 1 + x + x2 + x3 +x5 + x7 + x8 +x11 b) gD(x) = 1 + x3 + x4 + x6 + x8 +x9 + x10 + x11 0 0 0 1 0 0 1 1 0 1 0 1 1 1 1 c) 0 0 1 0 0 1 1 0 1 0 1 1 1 1 0 0 1 0 0 1 1 0 1 0 1 1 1 1 0 0 1 0 0 1 1 0 1 0 1 1 1 1 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 G= 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 1 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1

Studentlitteratur

123

5 BCH- och Reed-Solomonkoder

BCH- och Reed-Solomonkoder utgr krnan av de mest kraftfulla knda algebraiska koderna och har anvnts i mycket vitt spridda tilllmpningar under de senaste fyrtio ren. Binra BCH-koder beskrevs 1959 av A. Hocquenghem och 1960 av Bose och Ray-Chaudhury. BCH-koder r cykliska. De utgr en delklass av s.k. Goppa-koder, som i allmnhet inte r cykliska. Reed-Solomonkoder, som r icke-binra, beskrevs av Reed och Solomon 1960. Reed-Solomonkoder kan matematiskt beskrivas som icke-binra BCH-koder.

5.1 Generatorpolynommetoden fr BCH-koder


En kods viktigaste egenskap r dess felkorrigeringsfrmga. Felkorrigeringsfrmgan bestms av kodens minimidistans. Fr att utrna minimidistansen fr ett godtyckligt givet generatorpolynom mste man gra en datorskning av alla nollskilda kodord fr att bestmma minimivikterna hos koden och drmed minimidistansen. Fr BCH-koder nns emellertid en sats, som garanterar ett minimiavstnd, givet vissa uppgifter om generatorpolynomet. Teorem 5.1 BCH-grnsen: Lt C vara en q-nr cyklisk (n,k)-kod med generatorpolynomet g(x). Lt m vara den multiplikativa ordningen av q modulo n. GF(qm) r drmed den
Studentlitteratur

125

5 BCH- och Reed-Solomonkoder

minsta utvidgningstalkroppen av GF(q), som innehller en primitiv n:te enhetsrot (eng. root of unity; om C r en rot till xn 1 d r n = 1 och kallas en n:te enhetsrot). Lt vara en primitiv n:te enhetsrot. Vlj g(x) att vara ett minimalgradspolynom i GF(q)[x] s att g(b) = g(b + 1) = g(b + 2) = ... = = g(b + 2) = 0 fr ngot heltal b 0 och 1. g(x) har drmed 1 konsekutiva potenser av som nollstllen. Koden C definierad av g(x) har minimidistansen dmin . Parametern kallas BCH-kodens designdistans och den denieras av generatorpolynomet g(x).

5.2 Designprocedur fr BCH-koder


Fr att konstruera en t-felsrttande kod med lngden n frfar man enligt fljande recept: 1. Utg frn en primitiv n:te enhetsrot i en kropp GF(qm) dr m r minimal (det minsta m fr vilket n|(qm 1)). 2. Vlj 1 = 2t konsekutiva potenser av , startande med b dr b r ett icke-negativt heltal. 3. Lt g(x) vara den minsta gemensamma multipeln (eng. LCM = = Least Common Multiple) av minimalpolynomen till de valda potenserna av med avseende p GF(q). Varje minimalpolynom fr bara frekomma en gng i produkten.

Denition 5.1 Inskrnkt mening (eng. narrow sense) Om b = 1 r BCH-koden en BCH-kod i inskrnkt mening.
126
Studentlitteratur

5.2 Designprocedur fr BCH-koder

Denition 5.2 Primitiv BCH-kod Om n = qm 1 fr ngot positivt heltal m, s r BCH-koden primitiv fr den n:te enhetsroten , som r ett primitivt element i GF(qm). Generellt gller fr en binr BCH-kod: Blocklngd: n = 2m 1 Paritetscheckbitar: n k m t Minimidistans: dmin 2 t + 1
Exempel 5.1 Binr BCH-kod med lngden 31 Lt vara en rot till det primitiva polynomet x5 + x2 + 1. Det r drmed primitivt element i GF(32). Eftersom 31 r av formen 2m 1 r BCH-koden i exemplet primitiv. Bestm frst de cyklotomiska sidoklasserna (de cyklotomiska sidoklasserna bestr av exponenterna till elementen i konjugatklasserna) modulo 31 med avseende p GF(2) och de associerade minimalpolynomen konjugatklass 1 {,2,4,8,16} {3,6,12,24,17} {5,10,20,9,18} {7,14,28,25,19} {11,22,13,26,21} {15,30,29,27,23} cyklotomisk sidoklass C0 = C1 = C3 = C5 = C7 = C11 = C15 = {0} {1,2,4,8,16} {3,6,12,24,17] {5,10,20,9,18} {7,14,28,25,19} {11,22,13,26,21} {15,30,29,27,23} minimalpolynom M0(x) = M1(x) = M3(x) = M5(x) = M7(x) = M11(x) = M15(x) = x+1 x5 + x2 + 1 x5 + x4 + x3 + x2 + 1 x5 + x4 + x2 + x + 1 x5 + x3 + x2 + x + 1 x5 + x4 + x3 + x + 1 x5 + x3 + 1

Om C skall vara en linjr cyklisk kod mste den ha ett generatorpolynom g(x), som kan faktoriseras i ett eller era av dessa minimalpolynom.
Studentlitteratur

127

5 BCH- och Reed-Solomonkoder

Om C skall vara en t-felskorrigerande BCH-kod mste g(x) ha 2 t konsekutiva potenser av som nollstllen.
Exempel 5.2 Enkelfelskorrigerande (t = 1) narrow sense primitiv BCH-kod Eftersom koden skall vara narrow-sense r b = 1 och eftersom det enligt punkt 2 i designproceduren fr BCH-koder skall glla: 1 = 2 t = 2, skall vi ha 2 konsekutiva potenser av som nollstllen till g(x), d.v.s. [(b)]b = 1 = och [(b + 1)]b = 1 = 2 skall vara nollstllen till g(x). Generatorpolynomet blir drfr: g(x) = LCM[M1(x) M2(x)] = M1(x) = x5 + x2 + 1 Eftersom grad g(x) = 5, r dimensionen fr den resulterande koden: n (n k) = 31 5 = 26. g(x) denierar drfr en (31,26) enkelfelsrttande kod. En generell paritetscheckmatris kan skrivas p fljande form 1 1 H= 1 1

b b + 1 b+ 3 b+ 2

2b 2(b + 1) 2(b + 3) 2(b + 2)

(n 1)b (n 1)(b + 1) (n 1)(b + 3) (n 1)(b + 2)

varfr en paritetscheckmatris fr den enkelfelsrttande (31,26)-koden blir H= 1 1

2 4

29 30 27 29

Eftersom varje binrt polynom, som har som nollstlle ocks mste ha 2 och de andra konjugaterna av som nollstllen, r denna paritetscheckmatris redundant och man kan t.ex. stryka den andra raden. Exempel 5.3 Dubbelfelskorrigerande (t = 2) narrow-sense primitiv BCH-kod b = 1; = 5 varfr g(x) mste ha fyra konsekutiva nollstllen nmligen , 2, 3, 4. Vi fr g(x) = LCM[M1(x) M2(x) M3(x) M4(x)] = M1(x) M3(x) = = (x5 + x2 + 1)(x5 + x4 + x3 + x2 + 1) = = x10 + x9 + x8 + x6 + x5 + x3 + 1. grad g(x) = 10 s vi fr en (31,21) binr dubbelfelskorrigerande BCH-kod.

128

Studentlitteratur

5.3 Grundlggande egenskaper hos Reed-Solomon-koder Exempel 5.4 Trippelfelsrttande (t = 3) narrow sense primitiv BCH-kod b = 1; = 7 varfr g(x) mste ha sex konsekutiva nollstllen nmligen , 2, 3, 4, 5, 6. Vi fr g(x) = LCM[M1(x) M2(x) M3(x) M4(x) M5(x) M6(x)] = = M1(x) M3(x) M5(x) = = (x5 + x2 + 1)(x5 + x4 + x3 + x2 + 1)(x5 + x4 + x2 + x + 1) = = x15 + x13 + x12 + x11 + x7 + x5 + x3 + x2 + x + 1. grad g(x) = 15 s vi fr en (31,16) binr trippelfelskorrigerande BCH-kod.

5.3 Grundlggande egenskaper hos Reed-Solomon-koder


Reed-Solomon-koderna kan ses som en naturlig utvidgning av BCH-koderna. Denition 5.3 En Reed-Solomon-kod r en qm-r BCH- kod med lngden qm 1.

5.3.1 Konstruktion av en t-felskorrigerande Reed-Solomon-kod med lngden qm 1


Fr Reed-Solomon-koder blir det enkelt att konstruera generatorpolynomet g(x) fr en t-felskorrigerande kod eftersom minimalpolynomet till varje cyklotomisk sidoklass r av typen (x k). Fr en t-felskorrigerande kod fr vi drfr fr 2 t konsekutiva rtter g(x) = (x b)(x b + 1)(x b + 2) ... (x b + 2t 1)
Studentlitteratur

(5.1)
129

5 BCH- och Reed-Solomonkoder Exempel 5.5 Dubbelfelskorrigerande oktal Reed-Solomon-kod med lngden 7 Oktal innebr 8 = 23 lngd: 23 1.

r en primitiv 7:e grads enhetsrot till det primitiva polynomet x3 + x + 1. GF(8) kan representeras som konsekutiva potenser av . = 2= 2 3 = + 1 4 = 2 + 5 = 2 + + 1 6 = 2 + 1 7 = 1
Fr dubbelfelskorrigering mste vi ha 2t = 4 konsekutiva potenser av som nollstllen. Ett narrow sense generatorpolynom r g(x) = (x )(x 2)(x 3)(x 4) = = x4 + 3x3 + x2 + x + 3 Generatorpolynomets gradtal r 4 varfr koden r en (7,3) oktal Reed-Solomon-kod och antalet kodord r 83 = 512. Exempel 5.6 Trippelfelskorrigerande 64-nr Reed-Solomon-kod med lngden 63

r en primitiv 63:e grads enhetsrot till det primitiva polynomet x6 + x + 1.


g(x) = (x )(x 2)(x 3)(x 4)(x 5)(x 6) = = x6 + 59x5 + 48x4 + 43x3 +55x2 + 10x + 21. Generatorpolynomets gradtal r 6 varfr koden r en (63,57) 64-nr Reed-Solomon-kod och antalet kodord r 6457 8,96 10102 (antalet elektroner i universum uppskattas fr nrvarande till c:a 1075).

130

Studentlitteratur

5.4 Avkodning av BCH-koder

5.4 Avkodning av BCH-koder


5.4.1 Petersons direktlsnings-avkodningsalgoritm fr en binr t-felskorrigerande BCH-kod
1. Berkna syndromen fr r: {Sj} = {r ( j )}, j = 1,2,3,...,2t. 2. Konstruera syndrommatrisen A.
1 S2 S4 S6 0 S1 S3 S5 0 1 S2 S4 0 0 S1 S3 0 0 0 0 0 0 0 0

A =

1 2 3 4 t 1 t

S1 S3 S5 S7

S 2t 4 S 2t 5 S 2t 6 S 2t 7 S 2t 2 S 2t 3 S 2t 4 S 2t 5

St 2 St 3 St St 1

S2t 3 S2t 1

(I ekvationen r fellokaliseringsvektorn). 3. Berkna determinanten fr syndrommatrisen. Om determinanten r nollskild, g till steg 5. 4. Konstruera en ny syndrommatris genom att ta bort tv kolumner lngst till hger. G till steg 3. 5. Ls ekvationssystemet i steg 2 med avseende p och konstruera fellokaliseringspolynomet

(x) =
6. 7.

8. 9.

dr 0 = 1. Berkna rtterna till (x). Om rtterna inte r enkelrtter eller (x) inte har rtter i den nskade talkroppen, g till steg 9. Komplementera bitpositionerna i r angivna av (x). Om antalet fel r mindre n t, veriera att det resulterande korrigerade kodordet satiserar alla de 2t syndromekvationerna. Om inte, g till steg 9. Berkna och skriv ut det korrekta avkodade meddelandeordet och stoppa. Skriv ut Avkodningsmisslyckande.
131

l=1

1 Xlx = x + 1x 1 + ... + 1x + 0

(5.2)

Studentlitteratur

5 BCH- och Reed-Solomonkoder Exempel 5.7 Dubbelfelskorrigering av ett kodord med lngden 31 med Petersons algoritm Fr en narrow-sense dubbelfelskorrigerande kod med lngden 31 med generatorpolynomet g(x) = 1 + x3 + x5 + x6 + x8 + x9 + x10 har vi mottagit r = (0010000110011000000000000000000) eller r(x) = x2 + x7 + x8 + x11 + x12 1. Berkna syndromen fr 2t = 4 konsekutiva potenser av . Det gller:
n 1

Sj = r(j) = c(j) + e(j) =

k=0

e k( j) , j = 1,2,...,2t.

S1 = r() = 2 + 7 + 8 + 11 + 12 Med hjlp av tabell ver GF(32) kan summan berknas genom att g ver till motsvarande vektorrepresentation:

2 00100 7 00101 8 10110 1111100


1201110 Summa 700101 S1 = 7 S2 = r(2) = (S1)2 = 14 S3 = r(3) = 6 + 21 + 24 + 2 + 5

6 01010 2100011 2401111 2 00100


5 10100 Summa 8 10110

132

Studentlitteratur

5.4 Avkodning av BCH-koder S3 = 8 S4 = r(4) = (S2)2 = (S1)4 = 28 2. Konstruera syndrommatrisen A= 1 0 S2 S1 = 1 0

14 7

3. Berkna determinanten fr syndrommatrisen |A| = 1 7 0 14 = 7 > 0 g till steg 5. 4. Hoppa ver. 5. Ls ekvationssystemet enligt steg 2 med avseende p och konstruera (x). 1 0

1 2

7 8

14 7

1 = 7 14 7 1 + 2 = 8
Substituera i :

14 7 + 7 2 = 8 14 + 2 =
varav 2 = + 14 = 15 Sledes blir (x) = 1 + 7x + 15x2 6. Berkna rtterna till (x) genom att successivt prva alla mjliga rtter:

0,1,...,30

Prvning visar att x = 26 r en rot:

(26) = 1 + 7 26 + 15 52 = 1 + 2 + 5 = 0.
Studentlitteratur

133

5 BCH- och Reed-Solomonkoder Den andra roten fs genom att dividera bort faktorn med den frsta:

15x + 5
x + 26 15x2 + 7x + 1

15x2 + 10x 5x + 1 5x + 1
0 Sledes blir (x) = (x + 26)(15x + 5) = 15(x + 26)(x + 21). 7. Komplementera bitpositionerna i r: 31 26 = 5 31 21 = 10. Bitpositionerna fr de felaktiga bitarna r 5 och 10. r=(0 0 1 0 felpositioner
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 )

c = (0010010110111000000000000000000). Dividera c(x) med generatorpolynomet g(x): c(x) = x2 + x5 + x7 + x8 + x10 + x11 + x12 = x2 g(x) Det korrekta meddelandepolynomet = x2 Antalet bitar i meddelandeordet: k = 31 grad g(x) = 31 10 = 21 Meddelandeordet: (001000000000000000000) 8. Skriv ut: (001000000000000000000) STOPP

5.4.2 Berlekamps avkodningsalgoritm1


Petersons algoritm r relativt enkel men tyvrr kar komplexiteten snabbt med felantalen och tillter i praktiken inte korrigering av er n ungefr 7 fel. Komplexiteten hos Berlekamps algoritm kar lngsammare med felantalen och tillter felkorrigering av tiotals fel.
1

E.R. Berlekamp, Algebraic Coding Theory, New York, McGraw-Hill, 1968, reprinted and revised edition: Laguna Hills, Aegean Park press, 1984.
Studentlitteratur

134

5.4 Avkodning av BCH-koder

Tyvrr r teorin fr Berlekamps algoritm mer svrtillgnglig n fr Petersons men ett exempel visar hur den anvnds.

Berlekamps algoritm fr avkodning av binra BCH-koder


1. Stll in startvrden: k = 0, (0)(x) = 1, T(0) = 1. 2. Lt (2k) vara koefcient fr x2k + 1 i produkten

(2k)(x)[1 + S(x)]. 3. Berkna (2k + 2) = (2k)(x) + (2k)[x T(2k)(x)]. 4. Berkna


x 2T (2k)(x) om (2k) = 0 eller om grad (2k)(x) > k T [2k + 2](x) = x (2k)(x) om (2k) 0 och grad (2k)(x) k (2k) 5. Stt k = k + 1, om k < t, g till steg 2. 6. Bestm rtterna till (x) = (2k)(x). Om rtterna r enkelrtter och ligger i den nskade talkroppen, korrigera motsvarande positioner i det mottagna kodordet och stoppa. 7. Avkodningsmisslyckande och stoppa.
Exempel 5.8 Transmissionskoden r en dubbelfelskorrigerande, narrow-sense, binr BCH-kod med n = 15. Generatorpolynomet r g(x) = 1 + x4 + x6 + x7 + x8. Avkoda kodvektorn r = (101010000100000) = 1 + x2 + x4 + x9 med Berlekamps algoritm. Lsning: Bestm syndromen: 1000 0010 S1 = 1 + 2 + 4 + 9 = 1 1 0 0 = 6 0101 0011
Studentlitteratur

135

5 BCH- och Reed-Solomonkoder S 2 = 1 + 4 + 8 + 18 = 1 + 4 + 8 + 3 = 1000 1100 = 1 0 1 0 = 12 0001 1111 S 3 = 1 + 6 + 12 + 27 = 1 + 6 + 12 + 12 = 1 3 S 4 = 1 + 8 + 16 + 36 = 1 + 8 + + 4 = 6 1000 1010 = 0100 = 9 0011 0101 1. Stll in startvrden: k = 0, (0)(x) = 1, T(0) = 1. 2. (0)(x) 1 + 6 x + 12 x 2 + 13 x 3 + 9 x 4

(0) = 6
(2) (0) (0) (0) 3, (x) = (x) + x T (x) = 1 + 6 x (0) 4. T (2)(x) = x (x) = x 1 = 6 x = 9 x 6 (0) (0) 0 grad (0)(x) k = 0

5. Stt k = k + 1, d.v.s. k = 0 + 1 = 1, g till steg 2. 2. (2)(x) 1 + S(x) = = 1 + 6 x 1 + 6 x + 12 x 2 + 13 x 3 + 9 x 4 = = 1 + 6 x + 12 x 2 + 13 x 3 + 9 x 4 + + 6 x + 12 x 2 + 18 x 3 + 19 x 4 + 15 x 5

(2) = 13 + 18 = 13 + 3 = 3 1 + 1 0 = 3 5 = 8 (4)(x) = (2)(x) + (2) x T (2)(x) = = 1 + 6 x + 8 x 9 x = 1 + 6 x + 2 x2


6. Bestm rtterna genom prvning:

(1) = 1 + 6 + 2 = 13 + 2 = 2 1 + 4 = 14 1 r inte en rot ( ) = 1 + 6 + 2 2 = 1 + 7 + 4 = 9 + 4 = = 4 1 + 5 = 4 10 r inte en rot

136

Studentlitteratur

5.4 Avkodning av BCH-koder

( 2) = 1 + 6 2 + 2 4 = 1 + 8 + 6 = 2 + 6 = = 2 1 + 4 = 3 2 r inte en rot ( 3) = 1 + 6 3 + 2 6 = 1 + 9 + 8 = 7 + 8 = = 7 1 + = 11 3 r inte en rot ( 4) = 1 + 6 4 + 2 8 = 1 + 10 + 10 = 1 4 r inte en rot ( 5) = 1 + 6 5 + 2 10 = 1 + 11 + 12 = = 12 + 12 = 0 5 r en rot


Den andra roten fr vi genom att dividera kodpolynomet med faktorn x + 5: x + 5

2x + 10 2x2 + 6x + 1 2x2 + 7x 6 + 7 x + 1
= 10 10x + 15 0

(x) = x + 5 2 x + 1 0 = 2 x + 5 x + 8 Felen fs med 5 och 8, d.v.s. i positionerna 15 5 = 10 och 15 8 = 7. Den korrigerade kodvektorn r: rkorr = (101010010110000) med motsvarande kodpolynom: 1 + x2 + x4 + x7 + x9+ x10. Nu terstr bara att avkoda det korrigerade kodpolynomet, vilket enklast grs genom att dividera rkorr(x) med generatorpolynomet, d.v.s. cavk(x) = rkorr(x) . g(x) x2 + 1 x8 + x7 + x6 + x4 + 1 x10 + x9 + x7 + x4 + x2 + 1 x10 + x9 + x8 + x6 + x2 x8 + x7 + x6 + x4 + 1 x8 + x7 + x6 + x4 + 1 0 cavk = (1010000).

Studentlitteratur

137

5 BCH- och Reed-Solomonkoder

5.5 BCH-koder med Mathematica


Ladda paketen FiniteFields och MatrixManipulation Vi brjar med att titta p dubbelfelskorrigering av ett kodord med lngden 31 med Petersons algoritm. Generatorpolynomet r: g(x) = 1 + x3 + x5 + x6 + x8 + x9 + x10 Vi har mottagit vektorn r = (0010000110011000000000000000000) eller r(x) = x2 + x7 + x8 + x11 + x12 Frst ska vi berkna syndromen fr 2t = 4 konsekutiva potenser av : S1 = r() = 2 + 7 + 8 + 11 + 12 Fr att berkna summan anvnder vi oss av GF[32] och vi ska inte anvnda Mathematicas defaultirreducibla polynom. fld = GF[2, {1, 0, 1, 0, 0, 1}] GF[2, {1, 0, 1, 0, 0, 1}] Frst gr vi en lista med syndromets S-termer som element selement[ _] = { {2,7,8,11,12} Sedan anger vi de 4 syndromens element som s smningom ska adderas s1element = selement[ ] {2,7,8,11,12} s2element = selement[ {4,14,16,22,24}
138
Studentlitteratur

2, 7, 8, 11, 12}

2]

5.5 BCH-koder med Mathematica

s3element = se3ement[ {6,21,24,33,36}

3]

s4element = se4ement[ ] {8,28,32,44,48} Drefter reducerar vi elementen modulo vrt irreducibla polynom s1red = Table[PolynomialMod[s1element[[n]], 1 +
2

5,

{n, 1, Length[s1element]}]

{2,-2-4,1+2-3,-1+-2+23,-+2-3+24} s2red = Table[PolynomialMod[s1element[[n]], 1 +


2

5,

{n, 1, Length[s2element]}]

{4,1-2+2-33+4,3-+42-33+4,5-6+72-103 +54,10-5+152-113+74} s3red = Table[PolynomialMod[s1element[[n]], 1 +


2

5,

{n, 1, Length[s3element]}]

{--3,-6+2-102+53-54,10-5+152-113+74, -34+36-572+583-444,57-58+1012-923+804} s4red = Table[PolynomialMod[s1element[[n]], 1 +


2

5,

{n, 1, Length[s4element]}]

{1+2-3,12-15+232-223+214,36-23+582 -443+344,250-230+4312-3793+3194,549-431 +9282-7503+6294} Det verkar som det blev en hel del koefcienter som skiljer sig avsevrt frn dem vi anvnder, nmligen 0 och 1, men vi lter det vara s lnge.
Studentlitteratur

139

5 BCH- och Reed-Solomonkoder

Nu ska vi addera elementen i listan. s1sum = Sum[s1red[[n]],{n,1,Length[s1red]}] 2 + 4 s2sum = Sum[s2red[[n]],{n,1,Length[s2red]}] 19 - 14 + 272 - 273 + 154 s3sum = Sum[s3red[[n]],{n,1,Length[s4red]}] 27- 26 + 492 - 413 + 384 s4sum = Sum[s4red[[n]],{n,1,Length[s4red]}] 848- 699 + 14412 - 11963 + 10034 Nu ska vi frska xa till dom stora koefcienterna och slutligen f fram syndromen. s1 = PolynomialMod[s1sum, 2] 2 + 4 s2 = PolynomialMod[s2sum, 2] 1 + 2 + 3 + 4 s3 = PolynomialMod[s3sum, 2] 1 + 2 + 3 s4 = PolynomialMod[s4sum, 2] + 2 + 4 Nu ska vi bilda determinanten fr syndrommatrisen. detsyndmat = Det[{{1, 0}, {s2, s1}}] 2 + 4
140
Studentlitteratur

5.5 BCH-koder med Mathematica

Determinanten r skild frn noll varfr vi frsker lsa ekvationssystemet enligt steg 2 i Petersons direktlsnings-avkodningsalgoritm fr en binr t-fels-korrigerande BCH-kod - se avsnitt 5.4 . lsning = Solve[{{1, 0}, {s2,s1}}.{{ 1}, { 2}} == {{s1},{s3}},{ 1, 2}]
3 4 5 6 7 8 {{2 - - 1 - + 2 + + 2 + + , 2 + 4 1 2 + 4}}

2 har en form som vi ska frska ordna till. kvotform = PolynomialMod[ 2/.lsning [[1, 1]], 2] 1 + 3 + 5 + 7 + 8, 2 + 4 drefter reducerar vi med vrt irreducibla polynom tljare = PolynomialMod[PolynomialMod[Numerator[kvotform],1 + 2 + 5], 2] 1 + 2 + 4 nmnare = Denominator[kvotform] 2 + 4 Man kan bestmma de tv polynomens (tljarens och nmnarens) plats i GF[32] och drmed f dessa polynoms form att verg i exponentialform elementlista = Table[ElementToPolynomial[fld [PowerList[fld][[k]]],
Studentlitteratur

]],
141

5 BCH- och Reed-Solomonkoder

{k, 1, FieldSize[fld] - 1}] {1,,2,3,4,1+2,+3,2+4,1+2+3,+3+4, 1+4,1++2,+2+3,2+3+4,1+2+3+4, 1++2+3+4,1++3+4,1++4,1+,+2,2+3, 3+4,1+2+4,1++2+3,+2+3+4,1+3+4, 1++2+4,1++3,+2+4,1+3,+4} exptljare = Flatten[Position[elementlista, tljare]][[1]] - 1 22 expnmnare = Flatten[Position[elementlista, nmnare]][[1]] - 1 7 Nu kan vi f den riktiga formen p 2 2riktigform = 15 Vi kan gra om 1 till exponentialform polyform 1 = PolynomialMod[ 1 /. lsning [[1, 2]], 2] 2 + 4 1riktigform = 7 Fr bekvmlighets skull infr vi kortare beteckningar fr 1riktigform och 2riktigform
142
Studentlitteratur

exptljare/ expnmnare

^(Flatten

[Position[elementlista, polyform 1]][[1]] - 1)

5.5 BCH-koder med Mathematica

L1 = 7 L2 = 15

1riktigform

2riktigform

Vi ska nu berkna rtterna till (x) = 1 + L1 x + L2 x2= 0 Det nns 31 mjliga rtter (x = 0,1,2, ,30) och vi fr prva en i taget. testlista = Table[{PolynomialMod[ PolynomialMod[1 + L1 1 +
2 n

+ L2

2n,

5],

2]}, {n, 0, 30}]

{{+3},{1++2+3+4},{1+2+3+4},{3}, {1+3},{+2+4},{+2+4},{1+2+4}, {1++2+3+4},{+2+3+4},{},{3},{+3}, {2+3+4},{1++2+4},{1+3},{1+2+4}, {2+3+4},{2+4},{1+},{2+4},{0}, {+2+3+4},{1},{},{1++3},{0}, {1+2+3+4},{1++3},{1+},{1++2+4}} Lsningarna fs fr de platser i testlista som har nolla. Lgg mrke till att positionen fr frsta elementet i testlista ska uppfattas som 0 varfr den riktiga lsningen krver att man subtraherar 1. matrisposition = Table[Position [testlista, 0][[n, 1]], {n, 1, 2}] {22,27} x1 =
matrisposition[[1]]-1

Studentlitteratur

143

5 BCH- och Reed-Solomonkoder

21 x2 = 26 Bitpositionerna fr de felaktiga bitarna r 31 - (matrisposition[[1]] - 1) 10 och 31 - (matrisposition[[2]] - 1) 5


matrisposition[[2]]-1

5.6 Avkodning av Reed-Solomon-koder


Vid avkodning av Reed-Solomon-koder mste inte endast felens positioner bestmmas utan ven deras vrden (eller storlek). Nedan presenteras frst en metod, som r en generalisering av Petersons direktlsnings-avkodningsalgoritm, kallad Peterson-GorensteinZierlers avkodningsalgoritm. Drefter genomgs motsvarande generalisering av Berlekamps algoritm kallad Berlekamp-Masseys avkodningsalgoritm.

5.6.1 Peterson-Gorenstein-Zierlers avkodningalgoritm


1. Berkna syndromen fr r: {Sl} = {r ( l)}, l = 1,2,3,,2t. 2. Konstruera syndrommatrisen A.
144
Studentlitteratur

5.6 Avkodning av Reed-Solomon-koder S1 S2 S3 S4 S2 S3 S4 S5 S3 S4 S5 S6 S4 S5 S6 S7 St 1 St St St + 1 St + 1 St + 2 St + 2 St + 3 S t 3 S 2t 2 S 2t 2 S 2t 1

A =

t t 1 t 2 t 3 = 2 1

St + 1 St + 2 St + 3 St + 4

St 1 St St + 1 St + 2 St St + 1 St + 2 St + 3

S2t 1 S2t

3. Berkna determinanten fr syndrommatrisen. Om determinanten r nollskild, g till steg 5. 4. Konstruera en ny syndrommatris genom att ta bort kolumnen lngst till hger och raden lngst ner. Korta av kolumnvektorn en koordinat genom att ta bort t fr det strsta terstende vrdet p t. G till steg 3. 5. Ls ekvationssystemet och konstruera (x). 6. Berkna rtterna till (x). Om rtterna inte r enkelrtter eller (x) inte har rtter i den nskade talkroppen, g till steg 10. 7. Konstruera matrisen B
X1 X2 2 2 Be = X 1 X 2
X1 X2

X 2 X
X

e i1 S1 e i2 = S 2 ei S

och bestm felvrdena. 8. Subtrahera felvrdena frn de felaktiga vrdena i den mottagna kodvektorn. 9. Skriv ut det korrigerade kodordet och stoppa. 10. Skriv ut: Avkodningsmisslyckande och stoppa.

Exempel 5.9 Korrigera den mottagna kodvektorn r = (0301410) Koden r en dubbelfelskorrigerande (7,3)-Reed-Solomon-kod med generatorpolynomet g(x) = 3 + x + x2 + 3x3 + x4. Lsning: r = (0 3 0 1 4 1 0) har kodpolynomet r(x) = 3x + x3 + 4x4 + x5 1. Berkna syndromen

Studentlitteratur

145

5 BCH- och Reed-Solomonkoder 011 110 S1 = 4 + 3 + 8 + 5 = 4 + 3 + + 5 = 0 1 0 = 0 111 000 S2 = 3 2 + 6 + 4 8 + 10 = 5 + 6 + 12 + 10 = 101 = 5 + 6 + 5 + 3 = 1 1 0 = 4 011 S3 = 3 3 + 9 + 4 12 + 15 = 101 = 6 + 2 + 2 + = 0 1 0 = 5 111 S4 = 3 4 + 12 + 4 16 + 20 = 1 + 5 = 4
4 2. A = 04 5 3. A = 8 = 0 4. Hoppa ver.

5.

0 4 4 5
4

1 = S 3 = 5 2 S4 4

4 1 = 5 1 = 2 + 5 1 = 4 2 + 1 = 1 2 + 2 = 1 2 = 1 + 2 2 = 6 (x) = 6 x 2 + x + 1 6. Bestm rtterna genom prvning: (1) = 6 + + 1 = 6 + 3 = 3 1 + 3 = 4, 1 r inte en rot. ( ) = 8 + 2 + 1 = + 2 + 1 = = + 6 = 1 + 5 = 5, r inte en rot. ( 2) = 6 4 + 2 + 1 = 3 + 3 + 1 = 1 2 r inte en rot. ( 3 ) = 6 6 + 3 + 1 = 5 + 4 + 1 = = 5 + 5 = 0, 3 r en rot.
Den andra roten fr vi genom att dividera kodpolynomet med faktorn x + 3:

146

Studentlitteratur

5.6 Avkodning av Reed-Solomon-koder

x + 3

6x + 4 6x2 + x + 1 6x2 + 9x + 9 x + 1
= 4 4x + 7 0

(x) = x + 3 6 x + 4 = 6 x + 3 x + 2 = = 6 x + 3 x + 5
Felen fs med 3 och 5, d.v.s. i positionerna 7 3 = 4 och 7 5 = 2.
2 4 7. Be = = e2 = 0 4 e4 4

2 e 2 + 4e4 = 0 ekv. 1 e2 = 2 e 4 4 e 2 + e 4 = 4 ekv. 2 4 2e4 + e4 = 4 5 + 1 e4 = 3 4e4 = 3 e4 = 1 = 6 e2 = 2 6 = 8 =


e(x) = x + 6 x 2 8. Mottaget korrigerat kodpolynom: rkorr(x) = r(x) + e(x) = 3 x + x 3 + 4 x 4 + x 5 + x 2 + 6 x 4 = = 3x + x 2 + x 3 + 4 + 6 x 4 + x 5 = = 3x + x 2 + x 3 + 3x 4 + x 5 rkorr = 0 3 1 3 1 0 Nu terstr bara att avkoda det korrigerade kodpolynomet, vilket enklast grs genom att dividera rkorr(x) med generatorpolynomet, d.v.s. x x5 + 3x4 + x3 + x2 + 3x x5 + 3x4 + x3 + x2 + 3x 0

x4 + 3x3 + x2 + x + 3

Den korrigerade, avkodade kodvektorn (d.v.s. den uppskattade meddelandevektorn) r allts (0 1 0).
Studentlitteratur

147

5 BCH- och Reed-Solomonkoder

5.6.2 Berlekamp-Masseys avkodningsalgoritm


1. Berkna syndromen: S1,S2,,S2t. 2. Initiera algoritmvariablerna s hr: k = 0, (0)(x) = 1, L = 0 och T(x) = x. 3. Stt k = k + 1. Berkna diskrepansen (k) genom att subtrahera den k:te utgngen p det linjra skiftregistret2 denierat av

(k 1)(x) frn det k:te syndromet enligt (k) = Sk =


4. Om

i=1

i(k 1)S k i

(k) =

0 g till steg 8.

5. Modiera anslutningspolynomet: (k)(x) = (k 1)(x) (k)T(x). 6. Om 2L k g till steg 8. 7. Stt L = k L och T(x) =

8. Stt T(x) = x T(x). 9. Om k < 2t g till steg 3. 10. Bestm rtterna till ekvationen (x) = (2k)(x). Om rtterna r enkla och ligger i rtt talkropp, bestm felvrdena och korrigera felen i motsvarande positioner med Forneys algoritm3 i kodordet och stoppa. 11. Avkodningsmisslyckande och stoppa.
Exempel 5.10 Korrigera den mottagna kodvektorn r = (1 5 4 0 1 4 0) Koden r en dubbelfelskorrigerande (7,3)-Reed-Solomon-kod med generatorpolynomet g(x) = 3 + x + x2 + 3x3 + x4 (samma g(x) som i Exempel 5.9). Lsning: r = (1 5 4 0 1 4 0) har kodpolynomet r(x) = 1 + 5x + 4x2 + x4 + 4x5 1. Berkna syndromen
2

(k 1)(x) . (k)

Fellokaliseringspolynomet konstrueras med hjlp av ett skiftregister - fr detaljer se S.W. Golomb, Shift Register Sequences, San Francisco: Holden-Day, 1967, revised edition, Laguna Hills: Aegean Park Press, 1982. 3 Principerna fr Forneys algoritm genomgs i Exempel 5.10.

148

Studentlitteratur

5.6 Avkodning av Reed-Solomon-koder S1 = 1 + 5 + 4 2 + 4 + 4 5 = 1 + 6 + 6 + 4 + 2 = = 100 0 1 1 = 3 001 110

S2 = 1 + 5 2 + 4 4 + 4 10 = 1 S3 = 1 + 5 3 + 4 6 + 12 + 4 15 = 1 + 8 + 10 + 12 + 19 = = 1 + + 3 + 5 + 5 = 100 010 =0 110 000

S4 = 1 + 5 4 + 4 8 + 16 + 4 20 = 1 + 2 + 5 + 2 + 3 = 100 1 1 1 = 6 1 1 0 101 2. k = 0, (0)(x) = 1, L = 0 och T(x) = x = 3. k = 1; (1) = S1

4. (1) = 3 0 5. (1)(x) = (0)(x) (1) T(x) = 1 + 3 x 6. 2L = 0 k = 1

1 i(0)S1 i = 3 i=

(0)(x) = 1 = 3 = 4 7. L = k L = 1 0 = 1; T(x) = 3 (1) 4x 8. T(x) = x T(x) = 9. 1 = k < 2t = 4 2. k = 2 (2) = S2


L=1 i=1

i(1)S 2 i = 1 + 3 3 = 2

4. (2) = 2 0 5. (2)(x) = (1)(x) (2) T(x) = 1 + 3 x + 2 4 x = = 1 + 3(1 + 3)x = 1 + 4 x 6. 2 = 2L k = 2 8. T(x) = x T(x) = 4 x2 9. 2 = k < 2t = 4 3. k = 3
Studentlitteratur

149

5 BCH- och Reed-Solomonkoder

(3) = S3

L=1

i=1

i(2)S 3 i = 0 + 4 1 = 4

4. (3) = 4 0 5. (3)(x) = (2)(x) (3) T(x) = 1 + 4 x + 4 4 x2 = = 1 + 4 x + x2 6. 2 = 2L k = 3


(2) 4 7. L = k L = 3 1 = 2; T(x) = (x) = 1 + x = 3 + x (3) 4 8. T(x) = x T(x) = 3 x + x2 9. 3 = k < 2t = 4 3. k = 4

S3

S2

(4) = S4

L=2 i=1

i(3)S 4 i

= 6 + 4 0 + 1 = 6 + 5

4. (4) = 5 0 5. (4)(x) = (3)(x) (4) T(x) = 1 + 4 x + x2 + 5( 3 x) = = 1 + 4 x + x2 + 8 x + 5 x2 = = 1 + (4 + )x + ( + 5)x2 = 1 + 2 x + 6 x2 10. (x) = 1 + 2 x + 6 x2 Bestm rtterna genom prvning:

(1) = 1 + 2+ 6 = 6 + 6 = 0 1 r en rot.
Den andra roten fr vi genom att dividera kodpolynomet med faktorn. (x + 1):

6x + 1 x + 1 6x2 + 2x + 1 6x2 + 6x x+1 x+1 0

Fellokaliseringspolynomet r

(x) = (x + 1)(6 x + 1) = 1 + 2 x + 6 x2

Felen kan drmed lokaliseras till positionerna 0 och 6.

150

Studentlitteratur

5.6 Avkodning av Reed-Solomon-koder Fr att bestmma felens vrden behver vi fljande:

Denition 5.4 Formell derivata f (x) = f0 + f1x + f2x2 + + fnxn + r ett polynom med koefcienter tagna frn GF(q). Den formella derivatan av f(x) denieras enligt: f (x) = f1 + 2f2x + + nfnxn 1 + (5.3)

Ngra av den formella derivatans viktigare egenskaper


Om f 2(x) r delare till g(x) f (x) r delare till g (x). {f (x) g(x)} = f (x) g(x) + f (x) g (x). Om f (x) GF(2m)[x] f (x) har inga termer med udda potens.

Forneys algoritm4
Felens vrden berknas enligt e ik =
Xk X k 1 X k 1

(5.4)

Vi fortstter nu med Exempel 5.10: Fr att bestmma felens vrden bildar vi frst

(x) = (x)[1 + S(x)]mod x2t + 1 =


= (1 + 2 x + 6 x2)(1 + 3 x + x2 + 0 x3 + 6 x4)mod x5 = = 1 + 2 x + 6 x2 3 x + 5 x2 + 9 x3 x2 + 2 x3 + endast termer upp till x2 behvs 5 x + 3 x2 1+ Koefcienterna till (x) tas frn GF(2) (x) = 2 Fr detaljer hnvisas till: G.D. Forney, On Decoding BCH Codes, IEEE Transactions on Information Theory, Vol. IT-11, pp. 549-557, October 1965.
Studentlitteratur 4

151

5 BCH- och Reed-Solomonkoder Xk 1 + 5 Xk 1 + 3 Xk 2 = 5 Xk + 3 + Xk 1 2

eik =

e0 = 5 + 3 + = 4 e6 = 5 6 + 3 + 6 = 1 e(x) = 4 + x6 rkorr(x) = r(x) + e(x) = 1 + 5x + 4x2 + x4 + 4x5 + 4 + x6 = = 5 + 5x + 4x2 + x4 + 4x5 + x6 r = (5 5 4 0 1 4 1) Genom att dividera det korrigerade kodpolynomet med generatorpolynomet fs slutligen det uppskattade meddelandepolynomet: x2 + 6 x + 2 x4 + 3 x3 + x2 + x + 3 x6 + 4 x5 + x4 + 4 x2 + x + 5 x6 + 3 x5 + x4 + x3 + 3 x2

6 x5 + x3 + 6 x2 + 5 x + 5 6 x5 + 2 x4 + 6 x3 + x2 + 2 x 2 x4 + 5 x3 + 2 x2 + 3 x + 5 2 x4 + 5 x3 + 2 x2 + 3 x + 5 0
Uppskattat meddelandepolynom r allts x2 + 6 x + 2 och uppskattat meddelandeord r (2 6 1)

5.7 Binr suddningsavkodning (eng. erasure decoding)


I en mottagare med hrd avkodning beslutar mottagaren (binra signaler) att antingen en nolla eller en etta mottagits (hard-decision receiver). Men vid vefring via en skurfelskanal5 dr felen inte r oberoende och gaussiska kan era symboler efter varandra f s lg
152
Studentlitteratur

5.7 Binr suddningsavkodning (eng. erasure decoding)

1 mottagen niv besluta etta 0 besluta suddning besluta nolla

Figur 5.1 Enkel form av mjuk avkodning med suddning. niv att det r meningslst att frska besluta om en etta eller en nolla mottagits. I sdana fall fr mottagaren sidoinformation om att vissa symboler kasseras eller suddas. Mottagaren gr d en mjuk avkodning (soft-decision receiver) - se Figur 5.1, d.v.s. frutom nolla eller etta kan mottagaren besluta att den mottagna symbolen r suddad. Vid felkorrigering behver mottagaren d inte berkna felets position utan bara felets vrde (eller storlek), vilket gr att dubbelt s mnga suddningsfel som bitfel kan korrigeras. I avsnittet 3.5 sg vi nmligen att felkorrigeringsfrmgan d 1 men fr ett system dr bde fel och suddningar fret = min 2 kommer fattar avkodaren ett riktigt beslut om 2e + f < dmin dr e r antalet (bit)fel och f antalet suddningsfel, eller te = dmin f 1 2 (5.6) (5.5)

d.v.s. te fel kan korrigeras om det samtidigt frekommer f suddningsfel. Av (5.5) framgr att om vi vljer att enbart korrigera suddningsfel kan enligt vad som nyss psttts dubbelt s mnga korrigeras som om vi valt att enbart korrigera fel.
5 T.ex.

en fdande radiokanal.

Studentlitteratur

153

5 BCH- och Reed-Solomonkoder

Suddningsavkodning med Reed-Solomonkodning spelar en viktig roll i felkontrollsystem i CD-spelare. Genom smrre modieringar av standardavkodningen kan vi utfra suddningsavkodning med

5.7.1 Binr suddningsavkodningsalgoritm


1. Stt nollor i alla suddningsfelpositioner i det mottagna kodordet r och felkorrigera p normalt stt. Kalla det korrigerade kodordet c0. 2. Stt i stllet ettor i alla suddningsfelpositioner i det mottagna kodordet och felkorrigera p normalt stt. Kalla det korrigerade kodordet c1. 3. Jmfr c0 och c1 med r och vlj det korrigerade kodord, c0 eller c1, som r nrmast r mtt i hammingavstnd.

5.7.2 Icke-binr suddningsavkodningsalgoritm6


1. Bestm suddningsfelpolynomet (x) med hjlp av suddningsinformationen (sidoinformationen) frn mottagaren. 2. Erstt de suddade positionerna med nollor och berkna syndrompolynomet S(x). 3. Berkna det modierade syndrompolynomet (x) = (x)[1 + S(x)] 1. 4. Tillmpa Berlekamp-Masseys algoritm fr att berkna anslutningspolynomet (x) till det linjra skiftregistret (se fotnot 4), som genererar de modierade syndromkoefcienterna 1, 2, , 3. 5. Bestm rtterna till (x) som utgr felpositionerna. 6. Bestm vrdena (eller storleken) p felen och suddningsfelen.

6 Enligt

Berlekamp-Massey.
Studentlitteratur

154

5.7 Binr suddningsavkodning (eng. erasure decoding) Exempel 5.11 Korrigera den mottagna kodvektorn r = (0 f 1 f 1 0) Koden r en dubbelfelskorrigerande (7,3)-Reed-Solomon-kod med generatorpolynomet g(x) = 3 + x + x2 + 3x3 + x4 (samma g(x) som i Exempel 5.9). Lsning: r = (0 f 1 f 1 0) har kodpolynomet r(x) = f x + x2 + x3 + f x4 + x5. Suddningsfel nns i positionerna Y1 = och i Y2 = 4 Bilda suddningsfelpolynomet: (x) = (1 + x)(1 + 4 x) = 1 + 2 x + 5 x2 Placera nollor i suddningsfelpositionerna och berkna syndromen: Sl = l + l + l S1 = 2 + 3 + 5 = 5 S2 =
2 3 5

10 =

111 101 =1 110 100 100 0 0 1 = 5 010 111 001 1 1 1 = 4 101 011

S3 = 6 + 9 + 15 = 1 + 2 + =

S4 = 8 + 12 + 20 = 2 + 5 + 6 =

Det modierade syndrompolynomet: 1 + (x) = (x)[1 + S(x)]mod x2k + 1 1 + (x) = (1 + 2 x + 5 x2)(1 + 5 x + x2 + 5 x3 + 4 x4)mod x5 1 + 2 x + 5 x2

5 x + 7 x2 + 10 x3
x2 + 2 x3 + 5 x4

5 x3 + 7 x4 4 x4
1 + 3 x + 5 x2 Sledes r (x) = 3 x + 5 x2
Studentlitteratur

+ 0 x3 + 0 x4

155

5 BCH- och Reed-Solomonkoder 1. 1 = 3

2 = 5

3 = 0

4 = 0

2. k = 0, (0)(x) = 1, L = 0 och T(x) = x 3. k = 1; (1) = 1 4. (1) = 3 0 5. (1)(x) = (0)(x) (1) T(x) = 1 + 3 x 6. 2L = 0 k = 1


(0) 7. L = k L = 1 0; T(x) = (x) = 1 = 3 = 4 3 (1)

i(0) 1 i = 3 i=1

8. T(x) = x T(x) = 4 x 9. 1 = k < 2t = 4 2. k = 2

(2) = 2
4. (2) = 0

L=1

i=1

i(1) 2 i = 5 + 3 3 = 5(1 + ) = 8 =

5. (2)(x) = (1)(x) (2) T(x)

(2)(x) = 1 + 3 x + 4 x = 1 + 3(1 + 2)x = 1 + 3 4 x = 1 + 2 x


6. 2 = 2L k = 2 8. T(x) = x T(x) = 4 x2 9. 2 = k < 2t = 4 3. k = 3

(3) = 3
4. (3) = 1 0

L=1 i=1

i(2) 2 i = 0 + 2 5 = 1

5. (3)(x) = (2)(x) (3) T(x)

(3)(x) = 1 + 2 x + 1 4 x2 = 1 + 2 x + 4 x2
6. 2 = 2L k = 3

156

Studentlitteratur

5.7 Binr suddningsavkodning (eng. erasure decoding)


(2) 2 7. L = k L = 3 1 = 2; T(x) = (x) = 1 + x = 1 + 2 x 1 (3)

8. T(x) = x T(x) = x + 2 x2 9. 3 = k < 2t = 4 3. k = 4

(4) = 4
4. (4) = 2 0

L=2 i=1

i(3) 4 i = 0 + 2 0 + 4 5 = 2

5. (4)(x) = (3)(x) (4) T(x)

(4)(x) = 1 + 2 x + 4 x2 + 2(x + 2 x2) = 1 inga fel

Suddningsfelpolynomet:
(x) = (x) (x) = 1 (1 + 2 x + 5 x2) = (1 + x)(1 + 4 x) (x) = 2
fik = Y k 1 + 3 Yk 1 + 5 Yk 2 = 2 Y k 1 = 5 Yk + + 3 Yk 1 = 101 0 1 0 = 3 001 110 Yk Y k 1

f1 = 5 + + 3 1 = 6 + + 2 =

f4 = 5 4 + + 3 4 = 2 + + 6 = 3 f(x) = 3 x + 3 x4 rkorr(x) = r(x) + e(x) + f(x) = f x + x2 + x3 + f x4 + x5 + f(x) = =0 = 3 x + x2 + x3 + 3 x4 + x5 Fr att slutligen f fram meddelandepolynomet dividerar vi det korrigerade kodpolynomet med generatorpolynomet:
Studentlitteratur

157

5 BCH- och Reed-Solomonkoder

x x +
4

x3

x2 +

x +

x5 + 3 x4 + x3 + x2 + 3 x x5 + 3 x4 + x3 + x2 + 3 x 0

korrigerat och avkodat kodpolynom = uppskattat meddelande polynom: cavk(x) = x och motsvarande meddelandevektor: (0 1 0)

Sammanfattning
BCH- och Reed-Solomon-koder r de viktigaste knda cykliska koderna. Reed-Solomon-koderna kan uppfattas som en icke-binr utvidgning av BCH-koderna.

5.8 Problem. BCH- och Reed-Solomonkoder


Problem 5.1
Finns det ngra bra BCH-koder av lngd 19? Motivera svaret. Svar: Nej

Problem 5.2
Transmissionskoden r en enkelfelskorrigerande, narrow-sense, binr BCH-kod med lngden 15. Generatorpolynomet r g(x) = 1 + x + x4. Anvnd Petersons metod fr att korrigera fljande mottagna vektorer: a) r = (111110000000000) b) r = (111011000000000) c) r = (000001101101010)

158

Studentlitteratur

5.8 Problem. BCH- och Reed-Solomonkoder Svar: a) 111110100000000 b) 101011000000000 c) 000000101101010

Problem 5.3
En dubbelfelskorrigerande narrow-sense binr BCH-kod av lngd 15 har generatorpolynomet g(x) = 1 + x4 + x6 + x7 + x8 Anvnd Petersons metod fr att korrigera och avkoda fljande mottagna kodvektorer: a) r = (010000000000000) b) r = (001110110000000) Svar: a) 0000000 b) 0011100

Problem 5.4
Transmissionskoden r en dubbelfelsrttande, narrow-sense, binr BCH-kod med lngden 15. Generatorpolynomet r g(x) = 1 + x4 + x6 + x7 + x8. Anvnd Berlekamps metod fr att korrigera och avkoda fljande mottagna vektorer: a) r = (001000000000000) b) r = (000110001100000) c) r = (101110110010000) Svar: a) 0000000 b) 0001100 c) 0011100

Problem 5.5
Bestm generatorpolynom, takt, generator- och paritetscheckmatris fr en narrow-sense Reed-Solomonkod av lngd 15 och designdistans 3.
Studentlitteratur

159

5 BCH- och Reed-Solomonkoder Svar: g(x) = x2 + 5x + 3 R = 13 15 3 5 1 0 0 0 0 0 0 0 0 0 0 0 0 3 5 1 0 0 0 0 0 0 0 0 0 0 0 0 3 5 1 0 0 0 0 0 0 0 0 0 0 0 0 3 5 1 0 0 0 0 0 0 0 0 0 0 0 0 3 5 1 0 0 0 0 0 0 0 0 0 0 0 0 3 5 1 0 0 0 0 0 0 G = 0 0 0 0 0 0 3 5 1 0 0 0 0 0 0 0 0 0 0 0 0 3 5 1 0 0 0 0 0 0 0 0 0 0 0 0 3 5 1 0 0 0 0 0 0 0 0 0 0 0 0 3 5 1 0 0 0 0 0 0 0 0 0 0 0 0 3 5 1 0 0 0 0 0 0 0 0 0 0 0 0 3 5 1 0 0 0 0 0 0 0 0 0 0 0 0 3 5 H= 1 1

0 0 0 0 0 0 0 0 0 0 0 0 1

2 3 4 5 6 7 8 9 10 11 12 13 14 2 4 6 8 10 12 14 3 5 7 9 11 13

Problem 5.6
Bestm ett generatorpolynom fr en narrow-sense dubbelfelskorrigerande Reed-Solomon-kod av lngd 31. Ledning: Fr reduktion av koefcienterna i kodpolynomet modulo 31, se tabeller Svar: x4 + 24x3 + 19x2 + 29x + 10

Problem 5.7
En dubbelfelskorrigerande narrow-sense Reed-Solomon-kod av lngd 7 har generatorpolynomet g(x) = 3 + x + x2 + 3x3 + x4 Anvnd Peterson-Gorenstein-Zierlers metod fr att korrigera och avkoda fljande mottagna kodvektorer: a) r = (0002000) b) r = (5144010) c) r = (1541141)

160

Studentlitteratur

5.8 Problem. BCH- och Reed-Solomonkoder Svar: a) r = (000) b) r = (210) c) r = (261)

Problem 5.8
En dubbelfelskorrigerande narrow-sense Reed-Solomon-kod av lngd 7 har generatorpolynomet g(x) = 3 + x + x2 + 3x3 + x4 Anvnd Berlekamp-Masseys metod fr att korrigera och avkoda fljande mottagna kodvektorer: a) r = (000100) b) r = (6013100) c) r = (0500450) Svar: a) r = (000) b) r = (100) c) r = (021)

Problem 5.9
En dubbelfelskorrigerande narrow-sense Reed-Solomon-kod av lngd 7 har generatorpolynomet g(x) = 3 + x + x2 + 3x3 + x4 Anvnd Berlekamp-Masseys metod fr att korrigera och avkoda fljande mottagna kodvektorer: a) r = (00ff 000) b) r = (f 04f 512) Svar. a) r = (000) b) 2 fel och 2 suddningsfel fr mnga fel fr att kunna korrigeras.

Studentlitteratur

161

6 Faltningskoder

En faltningskod omvandlar en hel datastrm, oberoende av dess lngd, till ett enda kodord. Konstruktion av blockkoder bygger p algebraisk teknik medan man vid konstruktion av faltningskoder anvnder heuristiska metoder. Faltningskoder introducerades 1955 av P. Elias. Han visade att datastrmmar kan tillfras redundans med hjlp av linjra skiftregister. Han visade ocks att de resulterande koderna var mycket bra om de valdes stokastiskt. En faltningskod betecknas (n,k,m). Kodaren har n utgngar och k ingngar medan m r minneslngden, d.v.s. vrdena p de n utgngarna beror inte enbart p de k ingngarna. k och n r vanligen sm heltal med k < n. Fr att minska felantalen br m vara stor. I det fljande kommer faltningskoders grundlggande struktur och hur kodningen utfrs att genomgs.

6.1 Linjra faltningskoder


Figur 6.1 visar en (2,1,3)-kod eller 1 -takts kod. Takten bestms av att 2 kodaren lmnar ut tv binra symboler fr varje insymbol. Datastrmmen x = (x0,x1,x2,...) matas in i ett skiftregister, som bestr av en serie minneselement. Fr varje successiv klockpuls matas en binr symbol in medan vrdena p minneselementen kodas av och lmnar ett par utgende kodade datastrmmar:
Studentlitteratur

163

6 Faltningskoder

(0) (0) (0) ... y2 ,y 1 ,y0

... x2,x1,x0

+
Figur 6.1 (2,1,3)-faltningskodare.
(0) (0) (0) y(0) = (y0 , y1 , y2 ,...)

(1) (1) (1) ... y2 ,y 1 ,y0

(6.1)

och
(1) (1) (1) y(1) = (y0 , y1 , y2 ,...) .

(6.2)

Dessa datastrmmar kan multiplexas fr att skapa en enda kodad datastrm:


(0) (1) (0) (1) (0) (1) y = (y0 y0 , y1 y1 , y2 y2 ,...)

(6.3)

dr y r det faltade kodordet. Varje element i utgngsstrmmen y r en linjrkombination av elementen i ingngsstrmmen. Om skiftregistret r nollstllt frn brjan s blir utgngssekvenserna:
(0) (0) y 0 = x0 + 0 + 0 (0) (0) y 1 = x1 + 0 + 0 (0) (0) (0) y2 = x2 + x0 + 0 (0) (0) (0) (0) y3 = x3 + x1 + x0 (1) (0) y 0 = x0 + 0 + 0 (1) (0) (0) y1 = x1 + x0 + 0 (1) (0) (0) y2 = x2 + x1 + 0 (0) (0) (1) (0) y3 = x3 + x2 + x0
Studentlitteratur

164

6.2 Impulssvar
(0) (0) (0) (0) y4 = x4 + x2 + x1 (0) (1) (0) (0) y4 = x4 + x3 + x1

... yi(0) = xi(0) + xi(0) 2 + xi(0) 3


Exempel 6.1

... yi(1) = xi(0) + xi(0) 1 + xi(0) 3

Kodaren med 1 -takt enligt Figur 6.1 anvnds fr att koda informationssekven2 sen x = (10110). Vi fr fljande utsekvens y(0) = (10001010) y(1) = (11111110). Det faltningskodade kodordet motsvarande x = (10110) blir drfr y = (11 01 01 01 11 01 11 00). Sambanden enligt ovan kan generaliseras: y i(0) = x(0) + x(0)2 + x(0)3 och y i(1) = x(0) + x(0)1 + x(0)3 i i i i i i och visar att en faltningskodare enligt Figur 6.1 r linjr eftersom om y1 och y2 r kodord svarande mot insekvenserna y1 och y2 s svarar kodordet (y1 + y2) mot insekvensen (x1 + x2). Den linjra strukturen hos denna kod gr det mjligt att tillmpa en del kraftfulla satser frn linjr systemteori.

6.2 Impulssvar
(i) Ett impulssvar gj erhlls frn den i:te utgngen av en faltningskodare om en ensam etta ansluts till den j:te ingngen, fljd av en strng nollor. Strngar av nollor ansluts ocks till vriga ingngar.
Studentlitteratur

165

6 Faltningskoder

Impulssekvensen hos kodaren i Figur 6.1 r g (0)= (1011) g (1)= (1101) . Denition 6.1 Spannet (eng. constraint length) K i en faltningskod r det maximala antalet bitar i utsekvensen, som kan pverkas av en insekvensbit. Vanligen denieras K som det lngsta i kodaren ingende skiftregistret + 1: K 1 + max m i .
i

(6.4) (6.5)

Denna denition r vanlig i industriella och militra publikationer. En annan denition som ocks frekommer i litteraturen r K n 1 + max m i .
i

Totalt minne, M, fr en faltningskodare r summan av alla minneselement i faltningskodaren:


k1

M=

i=0

mi

(6.6)

Storleken av M pverkar starkt avkodarens komplexitet. Av det nyss genomgngna exemplet framgr att kodordet r lngre n dubbla lngden av det kodade meddelandeordet, vilket beror p att kodordet inte r komplett frrn alla minnesceller har tmts. De tillkommande redundanta tmningsbitarna reducerar kodens effektiva takt och stadkommer en relativ taktfrlust (eng. fractional rate loss). Efter det att den sista biten i ett L-bits meddelande har klockats in i registret mste skiftregistren klockas ytterligare m gnger innan alla minnesceller har tmts ut i datastrmmen. Eftersom det nns n utgngsstrmmar mste allts ytterligare nm bitar lggas till kodordet.
166
Studentlitteratur

6.2 Impulssvar

Taktens relativa frlust fr ett L-bits meddelande blir drfr: k L n n L + nm k = = km k L + km n

R R effektiv R

(6.7)

Om L q km r frsumbar.
Exempel 6.2 I vrt exempel blir, med meddelandelngden L = 5, k = 1 och m = 3, taktens relativa frlust:

k m = 1 3 = 3 = 0,375 . L + km 5 + 1 3 8

Uttrycken fr utgngssekvenserna i vrt exempel yi(0) = xi(0) + xi(0) 2 + xi(0) 3 och yi(1) = xi(0) + xi(0) 1 + xi(0) 3 kan generaliseras till (en ingng) yi(j) =

l=0

xi lgl(j) ,

(6.8)

vilket r uttrycket fr faltningen mellan tv sekvenser, varifrn uttrycket faltningskod kommer. Varje kodad utsekvens y(i) i en 1 -takts kod r lika med faltningen n mellan ingngssekvensen x och impulssekvenssvaret g(i): y(i) = x * g(i). (6.9)

Vi kan ytterligare generalisera sambandet till att glla en kodare med k ingngar:
k1

yj(i) =

t=0 l=0
Studentlitteratur

(i) xjt lg t,l

(6.10)
167

6 Faltningskoder

som kan uttryckas som


k1

y (i)

t=0

x t * gt(i)

(6.11)

Ett annat stt att uttrycka kodningen kan gras med en matrismultiplikation mellan en meddelandevektor och en generatormatris p motsvarande stt som gjordes vid cykliska blockkoder. Skillnaden i frhllande till blockkoder r att insekvensens lngd inte ndvndigtvis r begrnsad, varfr generator- och paritetscheck-matriser fr faltningskoder r semiinnita. Fr en faltningskod med 1 -takt, som i vrt exempel, fr vi generator2 matrisen genom att vva samman (interleave) de tv generatorsekvenserna g(0) och g(1) s hr:
(0) (1) (0) (1) (0) (1) g0 g0 g1 g1 g2 g2 (0) (1) gm gm

0
(0) (1) gm gm

0 0 0 (6.12)

G=

0 0

(0) (1) (0) (1) (0) (1) g0 g0 g1 g1 g2 g2

Vi kan nu skriva sambandet mellan ut- och in-sekvens p fljande kompakta form: y = xG
Exempel 6.3 Vi ska koda sekvensen x = (1011) med kodaren i vrt exempel. Generatorsekvenserna r: g (0) = (1011) g (1) = (1101) . D insekvensen har lngden 4, fr generatormatrisen 4 rader; 11 01 10 11 00 00 00 00 11 01 10 11 00 00 = (11 01 01 01 11 01 11). 00 00 11 01 10 11 00 00 00 00 11 01 10 11
Studentlitteratur

(6.13)

y = xG = 1 0 1 1

168

6.2 Impulssvar

(0) (0) (0) ... y2 ,y1 ,y0

(0) (0) (0) ... x2 ,x1 ,x0

+
(1) (1) (1) ... x2 ,x1 ,x0

(1) (1) (1) ... y2 ,y1 ,y0

(2) (2) (2) ... y2 ,y1 ,y0

Figur 6.2 (3,2,1)-faltningskodare. Ett annat exempel p en faltningskodare visas i Figur 6.2. I detta fall har vi tv ingngar varfr k = 2. Det nns tv generatorsekvenser fr varje ingngssekvens och gi(j) = (gi,0(j),gi,1(j),...,gi,m(j)) motsvarar generatorsekvensen frn ingng i till utgng j. Generatorsekvenserna fr faltningskodaren i Figur 6.2 r g0(0) = (1 1) g1(0) = (0 1) g0(1) = (0 1) g1(1) = (1 0) g0(2) = (1 1) g1(2) = (1 0)

Generellt kan generatormatrisen fr en (3,2,m)-faltningskodare skrivas:


Studentlitteratur

169

6 Faltningskoder
(0) (1) (2) (0) (1) (2) g 0,0g 0,0g 0,0 g 0,1g 0,1g 0,1 (0) (1) (2) g 1,0g 1,0g 1,0 (0) (1) (2) g 1,1g 1,1g 1,1 (0) (1) (2) g 0,0g 0,0g 0,0 (0) (1) (2) g 1,0g 1,0g 1,0 (0) (1) (2) g0,mg0,mg0,m (0) (1) (2) g1,mg1,mg1,m (0) (1) (2) g 0,1g 0,1g 0,1 (0) (1) (2) g 1,1g 1,1g 1,1

0 0
(0) (1) (2) g0,mg0,mg0,m (0) (1) (2) g1,mg1,mg1,m

0 0 0 0

0 0 0 0
(0) (1) (2) g0,mg0,mg0,m (0) (1) (2) g1,mg1,mg1,m

0 G= 0 0 0

0 0

0 0

(0) (1) (2) (0) (1) (2) g 0,0g 0,0g 0,0 g 0,1g 0,1g 0,1 (0) (1) (2) (0) (1) (2) g 1,0g 1,0g 1,0 g 1,1g 1,1g 1,1

Exempel 6.4 Bestm utsekvensen fr faltningskodaren enligt Figur 6.2 om insekvensen x = (11 01 10), d.v.s. x(0) = (1 0 1) och x(1) = (1 1 0) 101 111 0 0 011 100 0 0 10) 0 101 111 0 = (110 0 011 100 0 0 0 101 111 0 0 011 100

y = xG = (11

01

000

001

111)

Ett annat stt att skriva sekvenserna kan gras med frdrjningsoperatorn eller D-transformen (eng. Delay). Fljande samband rder mellan insekvensen skriven p vanlig form och skriven med D-transformen:
(i) (i) (i) (i) (i) (i) x(i) = (x0 , x1 , x2 ,...) X(i)(D) = x0 + x1 D + x2 D 2 + ... ,

varfr vi istllet fr y = xG kan skriva: Y(i) = X(i)(D)G(i)(D). (6.14)

Fr ett kodningssystem med era ingngar blir motsvarande uttryck:


k1

Y (i)(D) =

j=0

X (i)(D)G j(i)(D)

(6.15)

som kan skrivas som en matrismultiplikation p fljande stt:


170
Studentlitteratur

6.2 Impulssvar
(i) G 0 (D)

Y (i)(D)

X (0)(D)

X (1)(D)

X (k 1)(D)

(i) G 1 (D)

(i) G k 1(D)

(6.16) Med denitionen Y(D) = (Y(0)(D) Y(1)(D) ... Y(k 1)(D)) fr vi fljande uttryck fr hela kodningsoperationen: Y(D) = X(D) G(D) =
(0) G 0 (D) (0) G 1 (D) (1) G 0 (D) (1) G 1 (D) (n G 0 1)(D) (n G 1 1)(D)

(6.17)

= X (0)(D) X (1)(D)

X (k 1)(D)

(0) (1) G k 1 (D) G k 1 (D)

(n G k 11)(D)

(6.18) G(D) kallas verfringsfunktionsmatrisen (eng. transfer function matrix).


Exempel 6.5 2 -takt kodaren enligt Figur 6.3 anvnds fr att koda meddelandet 3 x = (11 10 11). Meddelandet delas upp i tv datastrmmar X(0)(D) = 1 + D + D2 X(1)(D) = 1 + D2

Studentlitteratur

171

6 Faltningskoder

(0) (0) (0) ... x2 x 1 x 0

(0) (0) (0) ... y2 ,y 1 ,y0

(1) (1) (1) ... y2 ,y 1 ,y0

(1) (1) (1) ... x2 x 1 x 0

(2) (2) (2) ... y2 ,y 1 ,y0

Figur 6.3 (3,2,3)-faltningskodare till Exempel 6.5. D-transformen fr de kodade datastrmmarna berknas p fljande stt: Y(D) = 1 + D + D 2 1 + D2 1 + D3 D + D2 D + D 2+ D 3 1 + D2 1 +D D =

= [1 + D + D2 + D3 + D4 + D5 + D + D2 + D3 + D4 D + D2 + D3 + D2 + D3 + D4 + D3 + D4 + D5 + 1 + D2 + D2 + D4 1 + D + D + D2 + D2 + D3 + D + D3] = = [1 + D5 1 + D + D3 + D4 + D5 1 + D].

Om vi tergr till binrform fr vi fljande utsekvenser: y(0) = (100001) y(1) = (110111) y(2) = (110000) och hela kodordet y = (111 011 000 010 010 110).

172

Studentlitteratur

6.3 Grafiska analysmetoder fr faltningskoder

(0) (0) (0) ... y2 ,y1 ,y0

(0) (0) (0) ...x2 ,x1 ,x0

+
Figur 6.4 Systematisk 1 -takts faltningskodare. 2 Denition 6.2

(1) (1) (1) ... y2 ,y 1 ,y 0

En faltningskod r systematisk om i likhet med systematisk blockkodning, ingngsdata nns reproducerade i ofrndrad form i kodordet p faltningskodarens utgng. Figur 6.4 visar ett exempel p en systematisk 1 -takts faltningsko2 dare.

6.3 Graska analysmetoder fr faltningskoder


Tillstndsdiagram
terg till den enkla faltningskodaren - Figur 6.5. De tre minneselementen utgr tillsammans en nit tillstndsmaskin med tta mjliga tillstnd (S0 S1 S2 S3 S4 S5 S6 S7) enligt
Studentlitteratur

173

6 Faltningskoder

tillstnd S0 S1 S2 S3 S4 S5 S6 S7

minnesinnehll 000 100 010 110 001 101 011 111

Lgg mrke till att minnesinnehllets numrering r omvnd i frhllande till vanlig binrrepresentation av tillstndstal. Frndringar i tillstnd bekrivs med ett tillstndsdiagram. Tillstnden frbinds med riktade grenar. Varje gren har en etikett av formen X/YY dr X r ingngsbiten som frorsakar tillstndsndringen. YY r motsvarande par av utgngsbitar.

(0) (0) (0) ... y2 ,y 1 ,y0

... x2,x1,x0

+
174

(1) (1) (1) ... y2 ,y 1 ,y0

Studentlitteratur

6.3 Grafiska analysmetoder fr faltningskoder

Figur 6.5 (2,1,3)-faltningskodare.

S1
1/ 11 01 0/
1/00

1/10

S3
00 1/ 1/ 01
1/11

1/01

0/11

S0
0/00

S2
0/ 10
0/10 0/01

S5
10 1/

S7
0/ 00

Figur 6.6 Tillstndsdiagram fr faltningskodaren i Figur 6.5. Kodarens tillstnd kan uppfattas som en viktad riktad graf. Denition 6.3 En graf r en samling noder (tillstnd) som p ngot stt r sammanbundna via en serie grenar. En graf r riktad om dess grenar har en associerad riktning. En graf r viktad om grenetiketterna anger ngon kvantitet som ackumuleras nr grafen genomlps. Exempel p en sdan viktad kvantitet r meddelandeordets och motsvarande kodords Hamming-vikt. Denition 6.4 En vg (eng. path) genom en graf r en sekvens noder av vilka varje par nrbelgna noder r sammanbundna av en gren. En vg r en krets om den startar och slutar i samma nod. En krets r en slinga om den inte genomlper en nod mer n en gng. Kodarens tillstndsdiagram kallas ocks kodargraf.

Studentlitteratur

11 0/

S4

S6

175

6 Faltningskoder

Eftersom kodningsprocessen brjar och slutar i S0-tillstndet (the all-zero state) kan varje faltningskod uppfattas som en krets genom kodargrafen med start- och slutpunkt i S0-tillstndet.
Exempel 6.6 Utg frn vr vanliga 1 -takts kodare. Insekvensen r 2 x = (1011). Denna insekvens anger vgen S0 S1 S2 S5 S3 S6 S4 S0 genom kodargrafen. S snart som insekvensen blivit inmatad i kodaren benner den sig i tillstndet S3. Kretsen kompletteras drefter genom att mata in ytterligare nollor tills kodaren tergr till S0-tillstndet. Motsvarande kodord r (11 01 01 01 11 01 11), vilket r detsamma som vi p annat stt erhllit frut.

6.4 Katastrofala faltningskoder


Denition 6.5 En faltningskod r katastrofal om dess kodargraf innehller en krets i vilken en nollskild sekvens genererar en nollsekvens.
Exempel 6.7 I detta exempel, se Figur 6.7 och Figur 6.8, genererar en rad ettor en utsekvens betende av bara nollor om kodaren benner sig i tillstndet S7, som man kommer till om man startar i tillstnd S0 och bara ettor kommer in: x = (111111111...) genererar y = (11 00 11 00 00 00 00 00 00 ...). En maximum likelihood-avkodare beslutar fr ett sdant fall att ett meddelande med bara nollor snts, d.v.s. ett ondligt antal felavkodningar.

176

Studentlitteratur

6.4 Katastrofala faltningskoder

S1
1/ 11 11 0/
1/00

1/00

S3
11 1/ 1/ 11
1/00

1/00

0/00

S0
0/00

S2
0/ 11
0/00 0/00

S5
11 1/

S7
0/ 11

Figur 6.7 Tillstndsdiagram fr Exempel 6.7.

11 0/

S4

S6

(0) (0) (0) ... y2 ,y1 ,y0

... x2,x1,x0

(1) (1) (1) ... y2 ,y1 ,y0

Figur 6.8 Katastrofal faltningskodare till Exempel 6.7.

Studentlitteratur

177

6 Faltningskoder

Forney har visat att exakt

1 2n 1 1

av alla faltningskoder med 1 -takt n

och givet spann r katastrofala.

6.5 Grafer och viktangivelser


Om vi utgr frn att kodaren frn brjan r i tillstndet S0 s kan vi f kodordet genom att flja vgen genom kodargrafen bestmd av insekvensen och anteckna motsvarande utgngsvrden angivna av grenetiketterna. Efter den sista nollskilda binra nollsymbolen terfrs kodaren till nolltillstndet S0 genom m stycken noll-block. Tillstndsdiagrammet (kodargrafen) kan modieras p fljande stt till att ge underlag fr att kunna berkna Hamming-vikten (viktdistributionsfunktionen) fr alla nollskilda kodord: Tillstndet S0 delas upp i ett startlge och ett slutlge, egenslingan runt S0 tas bort och vi berknar en genererande funktion eller viktangivelse p formen

T(X, Y) =

i=1 j=1

a i,j X iY j

(6.19)

dr ai,j r antalet kodord med vikt i som motsvarar insekvenser med vikt j. En given grens etikett Y/X (OBS! Nu r Y invektor och X utvektor) byts mot etiketten XiYj dr j r vikten p invektorn Y och i r vikten p utvektorn X. Vi fr p s stt fljande diagram fr vrt vanliga exempel. Betrakta vgen S0 S1 S3 S6 S4 S0 som motsvarar insekvensen (11000) och kodordet (11 10 11 01 11). Vikterna fr motsvarande grenar r X2Y, XY, X2, X, X2 som ihopmultiplicerade ger
178
Studentlitteratur

6.5 Grafer och viktangivelser

grenfrstrkningen X8Y2, d.v.s. insekvensvikten r 2 och kodordsvikten r 8. Med hjlp av Masons formel, som r en grask metod att lsa ekvationssystem, kan transmissionen T frn klla till snka berknas fr en signaldesgraf. Transmissionen r en produkt av grenfrstrkningarna fr alla de grenar som brjar och slutar i tillstndet S0.
X2Y S7
1

Y
S3
XY

S6

S5 XY X S2 Y

XY
X
X

XY

S0

X2 Y

X
S1

S4

X2

S0

Figur 6.9 Signaldesgraf fr faltningskodaren i Figur 6.5. Fr att frst Masons formel behvs ngra denitioner: En slinga r en krets som inte anlper ngot tillstnd mer n en gng. En framslinga r en slinga som startar och slutar i tillstndet S0. En mngd slingor sgs vara icke vidrrande om de inte passerar ngot gemensamt tillstnd. K = {K1,K2,...} r mngden av alla framslingor. F = {F1,F2,...} r motsvarande mngd grenfrstrkningar s att t.ex. F1 r grenfrstrkningen i framslingan K1. L = {L1,L2,...} r alla slingor i diagrammet som inte passerar S0 medan
Studentlitteratur

179

6 Faltningskoder

C = {C1,C2,...} r motsvarande grenfrstrkningar. Transmissionen T(X,Y) kan enligt Mason uttryckas p fljande stt:

Fll
T(X.Y) =
l

(6.20)

dr grafdeterminanten berknas enligt

= 1 Cl +
Ll

(Ll,Lm)

C lC m

(Ll,Lm,Ln)

ClCmCn....

(6.21)

och dr den frsta summationen utfrs ver alla index i fr slingorna {Li} = L medan den andra summationen tas ver alla indexpar {(l,m)} sdana att (Ll,Lm) r ett par icke vidrrande slingor i L. P samma stt utfrs den tredje summationen ver alla indextripletter sdana att (Ll,Lm,Ln) utgr tripletter av icke vidrrande slingor. Processen fortstter tills inte er samtidigt icke vidrrande slingor kan hittas. Berkningen av i, slingans Ki cofaktor, utfrs p samma stt som fr grafdeterminanten med den skillnaden att alla slingor som vidrr Ki utesluts vid summationen:

i = 1

K i,L l

Cl +

(K i,L l,L m)

C lC m

(K i,L l,L m,L n)

ClCmCn....

(6.22)

Exempel 6.8 Berkna transmissionen T(X,Y) fr faltningskodaren i Figur 6.5, I kodargrafen enligt Figur 6.9 nns det 7 framslingor K: K1: S0 - S1 - S3 - S7 - S6 - S5 - S2 - S4 - S0F1 = X8Y4 K2: S0 - S1 - S3 - S7 - S6 - S4 - S0F2 = X6Y3 K3: S0 - S1 - S3 - S6 - S5 - S2 - S4 - S0F3 = X10Y3 K4: S0 - S1 - S3 - S6 - S4 - S0F4 = X8Y2 K5: S0 - S1 - S2 - S5 - S3 - S7 - S6 - S4 - S0F5 = X8Y4 K6: S0 - S1 - S2 - S5 - S3 - S6 - S4 - S0F6 = X10Y3 K7: S0 - S1 - S2 - S4 - S0F1 = X6Y

180

Studentlitteratur

6.5 Grafer och viktangivelser Det nns 11 slingor L: L1: S1 - S3 - S7 - S6 - S5 - S2 - S4 - S1C1 = X4Y4 L2: S1 - S3 - S7 - S6 - S4 - S1C2 = X2Y3 L3: S1 - S3 - S6 - S5 - S2 - S4 - S1C3 = X6Y3 L4: S1 - S3 - S6 - S4 - S1C4 = X4Y2 L5: S1 - S2 - S5 - S3 - S7 - S6 - S4 - S1C5 = X4Y4 L6: S1 - S2 - S5 - S3 - S6 - S4 - S1C6 = X6Y3 L7: S1 - S2 - S4 - S1C7 = X2Y L8: S2 - S5 - S2C8 = X2Y L9: S3 - S7 - S6 - S5- S3C9 = X2Y3 L10: S3 - S6 - S5- S3C10 = X4Y2 L11: S7 - S7C11 = X2Y Det nns 10 par icke vidrrande slingor i L: (L2,L8)C2C8 = X4Y4 (L3,L11)C3C11 = X8Y4 (L4,L8)C4C8 = X6Y3 (L4,L11)C4C11 = X6Y3 (L6,L11)C6C11 = X8Y4 (L7,L9)C7C9 = X4Y4 (L7,L10)C7C10 = X6Y3 (L7,L11)C7C11 = X4Y2 (L8,L11)C8C11 = X4Y2 (L10,L11)C10C11 = X6Y3 Det nns 2 tripletter icke vidrrande slingor i L: (L4,L8,L11)C4C8C11 = X8Y4 (L7,L10,L11)C7C10C11 = X8Y4 Eftersom det inte nns fyra eller er icke vidrrande slingor kan vi verg till att berkna grafdeterminanten som blir

= 1 (X4 Y4 + X2Y3 + X6Y3 + X4Y2 + X4Y4 + X6Y3 + X2Y + X2Y + X2Y3 + X4Y2
Studentlitteratur

181

6 Faltningskoder + X2Y) + (X4Y4 + X8Y4 + X6Y3 + X6Y3 + X8Y4 + X4Y4 + X6Y3 + X4Y2 + X4Y2 + X6Y3) (X8Y4 + X8Y4) = 1 2X2Y3 3X2Y + 2X6Y3 Fr berkning av framslingornas cofaktorer frfar vi p fljande stt: Det nns inga slingor som inte innehller tillstnd som genomlps av framslingorna K1 och K5. 1 = 5 = 1 Framslingorna K3 och K6 genomlper inte tillstndet S7 och vidrr drfr inte slingan L11. K3 och K6 vidrr alla andra slingor. 3 = 6 = 1 C11 = 1 X2Y Framslingan K4 visas i Figur 6.10. Man kan se att de skuggade slingorna L8 och L11 inte vidrr framslingan K4. Dessutom framgr det att L8 och L11 utgr ett par icke vidrrande slingor 4 = 1 (C8 + C11) + C8C11 = 1 2X2Y + X4Y2 Framslingan K7 visas i Figur 6.11. P samma stt som i Figur 6.10 r de tillstnd - S3, S5, S6 och S7 - som inte passeras av K7 skuggade, d.v.s. K7 vidrr inte slingorna L9, L10, L11 av vilka L10 och L11 r ett icke vidrrande par 7 = 1 (C9 + C10 + C11) + (C10C11) = 1 (X2Y3 + X4Y2 + X2Y) + (X6Y3) Vi kan nu anvnda Masons formel fr att f faltningskodarens transmission: X 8 Y 4(1) + X 6 Y 3(1 X 2 Y) + X 10 Y 3 (1 X 2 Y) + X Y 2(1 2X 2 Y + X 4 Y 2 ) ++ X 8 Y 4(1) + X 10 Y 3(1 X 2 Y) + X 6 Y(1 X 2 Y 3 X 4 Y 2 + X 6 Y 3) T(X,Y) = = 1 2X 2 Y 3 3X 2 Y + 2X 6 Y 3
8

X6Y 3 X1 0 3 + X6Y Y 1 2X 2Y 3 3X 2Y + 2X 6Y 3

182

Studentlitteratur

6.5 Grafer och viktangivelser

X2 Y S7
1

Y
S3
XY

X2 S5 XY X S2 Y
X

S6

XY
X

XY

S0

X2Y

X
S1

S4

X2

S0

Figur 6.10 Framslingan K4 och slingorna som inte vidrr K4.

X2Y S7
1

Y
S3
XY

S6

S5 XY X S2 Y

XY
X
X

XY

S0

X2Y

X
S1

S4

X2

S0

Figur 6.11 Framslinga K7 och slingor som inte vidrr K7. Nr uttrycket fr transmissionen utvecklas via polynomdivision fr vi den information som vi nskar: = X6(Y + Y3) + X8(3Y2 + 5Y4 + 2Y6) + X10(8Y3 + 21Y5 + 16Y7 + 4Y9) + ....,

Studentlitteratur

183

6 Faltningskoder som innebr att det nns tv kodord med vikt 6, det ena motsvarande en insekvens med vikt 1 och det andra med vikt 3, det nns 10 kodord med vikt 8, 49 med vikt 10 o.s.v. I stllet fr att anvnda Masons formel kan vi frska lsa ekvationssystemet med hjlp av Mathematica:
2 2 a = Flatten[Solve[{T == X Y S4 X , S1 S4 Y

S2 == S1 X + S5 X, S3 == S1 X Y + S5 X Y, S4 == S2 X + S6 X, S5 == S2 X Y + S6 X Y, S6 == S3 X2 + S7, S7 == S3 Y + S7 X2 Y}, T, {S1, S2, S3, S4, S5, S6, S7}]] T X6Y(-1-Y2+X4Y2) 1-3X2Y-2X2Y3+2X6Y3

Polynomdivisionen grs t.ex. s hr v = T /. a; b = Series[v, {Y, 0, 12}]; c = Normal[b]; Series[c, {X, 0, 10}] (Y + Y3)X6 + (3 Y2 + 5 Y4 + 2 Y6)X8 + (8 Y3 + 21 Y5 + 16 Y7 + 4 Y9) X10 +O[X]11

6.6 Prestationsmtt fr faltningskoder


Denition 6.6 Det viktigaste avstndsmttet fr faltningskoder r det minsta fria avstndet dfri dfri = min{d(y,y)|y y}
184
Studentlitteratur

6.7 Problem. Faltningskodare

som fr linjra koder vergr i dfri = min{w(y)|y 0}, som r det minsta Hamming-avstndet mellan alla par kompletta faltningskodord. Det har visats (Costello och Forney) att icke-systematiska faltningskoder har ett strre minsta fria avstnd n systematiska med samma spann (eng. constraint length) och takt.

Sammanfattning
Faltningskodare r konstruerade p ett helt annat stt n blockkoder. Analysmetoderna fr faltningskodare bygger p heuristiska metoder. Elias visade 1955 att redundans kan infras i datastrmmen med hjlp av skiftregister och att de resulterande koderna blir mycket bra om koderna vljs slumpmssigt.

6.7 Problem. Faltningskodare


Problem 6.1
En (3,1,2)-faltningskodare har generatorsekvenserna g(0) = (1 1 0) g(1) = (1 0 1) g(2) = (1 1 1) a) Rita ett blockschema fr kodaren. b) Bestm generatormatrisen G. c) Bestm kodvektorn v som svarar mot meddelandevektorn u = (1 1 1 0 1). d) Bestm verfringsmatrisen G(D).
Studentlitteratur

185

6 Faltningskoder e) Bestm utsekvensen v(D) som svarar mot meddelandesekvensen enligt ovan. f ) Rita kodarens tillstndsdiagram. Svar: 111 101 011 000 000 000 000 000 111 101 011 000 000 000 b) G = 000 000 111 101 011 000 000 000 000 000 111 101 011 000 000 000 000 000 111 101 011 c) v = 111 010 001 110 100 101 011 1+D 1 + D2 1 + D + D2

d) G(D) = e) 10111

Problem 6.2
En (3,1,5) systematisk kod har g(1) = (1 0 1 1 0 1) g(2) = (1 1 0 0 1 1) a) Bestm generatormatrisen G(D) dr D r frdrjningsoperatorn. b) Bestm utsekvensen om meddelandesekvensen r u = (1 1 0 1). Svar: a) G(D) = [1 1 + D2 + D3 + D5 1 + D + D4 + D5]

b) y = (111 110 011 111 010 000 001 001 011)

Problem 6.3
a) Rita tillstndsdiagram fr en (2,1,2)-faltningskod med generatorsekvenserna: g(0) = (110) g(1) = (101)

b) Avgr om koden r katastrofal och ange i s fall ett exempel som visar detta. Svar: b) ja den r katastrofal

186

Studentlitteratur

6.7 Problem. Faltningskodare

Problem 6.4
En faltningskodare har fljande generatormatris G(D) = 1 + D + D 2 1 + D3

Avgr om koden genererar en katastrofal kod. Svar: ja det gr den

Problem 6.5
a) Bestm impulssekvenssvaret till kodaren i Figur 6.12. b) Bestm verfringsfunktionsmatrisen fr kodaren i Figur 6.12. c) Anvnd verfringsfunktionsmatrisen fr att bestmma det bildade kodordet fr insekvensen x = (11 10 01).

Figur 6.12 2/3-takts faltningskodare till Problem 6.5. Svar:


(0) a) g0 = (0101) (0) g 1 = (0110) (1) g0 = (1011) (1) g1 = (1011) (2) g0 = (1110) (2) g1 = (0100)

b) G(D) =

D + D3 D + D2

1 + D2 + D3 1 + D + D2 1 + D2 + D3 D

c) y = (001 011 010 010 000 010)

Problem 6.6
Studentlitteratur

187

6 Faltningskoder Ange fr faltningskodaren i Figur 6.13

(0) (0) (0) ... x2 x1 x0

+ + +
(1) (1) (1) ... x2 x1 x0

(0) (0) ... y2 , y(0), y0 1 (1) (1) (1) ... y2 , y1 , y0

(2) (2) (2) ... y2 , y1 , y0

Figur 6.13 Faltningskodare till Problem 6.6. a) Generatormatrisen G. b) Matrisen G(D), dr D r frdrjningsoperatorn. c) Utsekvensen om insekvensen r 10 11 10. Svar: 111 101 000 010 110 000 000 000 111 101 000 000 a) G = 000 010 110 000 000 000 000 000 111 101 000 000 000 000 010 110 000 000 000 000 000 b) G(D) = 1+D D 1 1+D 1+D 0 000 000 000 000 000 000 000 000 000

c) y = (111 000 100 101)

Problem 6.7
En faltningskod med rate 1/3 har generatorpolynomen: g1(x) = 1 + x + x2 + x3

188

Studentlitteratur

6.7 Problem. Faltningskodare g2(x) = 1 + x + x3 g3(x) = 1 + x2 + x3 Gr en skiss av kodaren.

Problem 6.8
Konstruera ett tillstndsdiagram fr nedanstende faltningskodare, Figur 6.14.

+ +
Figur 6.14 Faltningskodare till Problem 6.8.

Studentlitteratur

189

7 Avkodning av faltningskoder

7.1 Viterbis Maximum Likelihood avkodningsalgoritm


Viterbi introducerade 1967 en avkodningsalgoritm fr faltningskoder, som numera kallas Viterbialgoritmen.

Spaljdiagram (trellis diagram)


Ett spaljdiagram r en utveckling av en faltningskods tillstndsdiagram, som visar hur tillstnden ndras som funktion av tiden.
Exempel 7.1 I Figur 7.1 visas en 1 -taktskodare och i Figur 7.2 tillstndsdiagram fr samma 3 kodare. 1 -taktskodaren har tv minnesceller, vilket gr att tillstndsdiagrammet fr 4 3 tillstnd

(0) (0) (0) ... y2 ,y 1 ,y0

... x2,x1,x0

(1) (1) (1) ... y2 ,y 1 ,y0

+
Figur 7.1 (3,1,2)-faltningskodare till Exempel 7.1.
Studentlitteratur

(2) (2) (2) ... y2 ,y 1 ,y0

191

7 Avkodning av faltningskoder

0/000

S0
0/ 11 0 1 11 1/
0/111

S2
1/ 00 0
1/001

S1

Figur 7.2 Tillstndsdiagram fr faltningskodare i Exempel 7.1. Grenarna i spaljdiagrammet - Figur 7.3 - r mrkta med de utgngsvrden (y(0),y(1),y(2)), som motsvarar det nya tillstndet.

1 00 0/

S3
1/110

S3
11 000 1

110

110

110

11 000 1

S2

11 000 1 00 1 1
110

S1
11 1 11 1

11 1

11 1

11 000 1

000 000 000 000 000 S0 t=0 t=1 t=2 t=3 t=4 t=5

Figur 7.3 Spaljdiagram till faltningskodaren i Exempel 7.1.

11 1
Studentlitteratur

00 1 00 1
110

00 1 00
110

00 1

192

7.1 Viterbis Maximum Likelihood avkodningsalgoritm

Varje kodord i en faltningskod motsvaras av en unik vg i spaljdiagrammet som brjar och slutar i tillstndet S0. Spaljdiagrammet gr det mjligt att utfra en del berkningar genom vilka det r mjligt att komma fram till ngra anvndbara resultat, t.ex. fljande: Utg frn en allmn binr (n,k) faltningskodare med M minnesceller och med ett lngsta skiftregister bestende av m minnesceller. Motsvarande spaljdiagram har 2M noder eller tillstnd vid varje tidpunkt. Frn varje nod utgr 2k grenar eller en gren fr varje mjlig kombination av ingngsvrden. Efter tiden t = m nns det ocks 2k grenar som kommer till varje nod. Efter att insekvensen (meddelandet) har pfrts kodaren tgr det ytterligare m tillstndsfrndringar fr att terfra kodaren till grundtillstndet S0. Fr en insekvens med kL bitar mste spaljdiagrammet ha L + m steg. Det frsta steget startar frn, och det sista steget slutar i, tillstndet S0. Det nns 2kL olika vgar genom spaljdiagrammet, var och en motsvarande ett kodord med lngden n(L + m).
Fortsttning p Exempel 7.1: Om vi utgr frn en 3-bitars insekvens, t.ex. x = (011) fr vi en 5-grens vg och ett 3(3 + 2) = 15 bitars kodord y = (000 111 000 001 110).

S3
11 000 1

110

S2

11 000 1

11 1 1
110

00 1 00
110

00 1
110

S1
11 1 11 1

11 1

000 000 000 000 000 S0 x1 = 1 x2 = 1 insekvens x0 = 0 0 0 t=0 t=1 t=2 t=3 t=4 t=5 Figur 7.4 Avkodningsvg i spaljdiagrammet till Exempel 7.1.
Studentlitteratur

11 1

193

7 Avkodning av faltningskoder

7.2 Viterbialgoritmen
brus

y x
faltningskodare kanal

r
faltningsavkodare

Figur 7.5

Principschema fr verfring av faltningskodat kodord ver en brusig kanal.

Antag, att informationssekvensen x kodas till ett faltningskodord y som snds ver en brusig kanal. Faltningsavkodaren utgr frn den mottagna vektorn r och genererar ett estimat y av det snda kodordet y. Maximum likelihoodavkodaren (ML) vljer det estimat y som maximerar sannolikheten p(r|y) medan maximum aposterioriavkodaren (MAP) vljer det estimat som maximerar p(y|r). Om frdelningen av informationssekvensen {x} r likfomig blir de bda avkodarna identiska. I allmnhet gller enligt Bayes lag: p(r|y) p(y) = p(y|r) p(r). (7.1)

k En n -takts faltningskodare tar in k bitar och genererar n bitar fr varje skift av dess register. Om vi pfr kodaren L st. k-bits block s fr vi p utgngen L st. n-bits block samt ytterligare m st. block dr m r lngden av det lngsta skiftregistret. Om nu en bruspverkad version r av det snda ordet kommer till mottagaren s bildar den ett maximum likelihoodestimat y av den snda sekvensen. r och y har fljande form:
(0) (1) (n (0) (1) (n (n 1) r = {r0 r0 ... r0 1) r1 r1 ... r1 1) ... rL +m 1}

(7.2)
Studentlitteratur

194

7.2 Viterbialgoritmen
(n 1) y = {y(0) y(1) ... y(n 1) y(0) y(1) ... y(n 1) ... yL +m 1} . (7.3) 0 0 0 1 1 1

Fr att frenkla och renodla problematiken antar vi vidare att kanalen r minnesls, d.v.s. att brusets pverkan p en bit i kodordet r oberoende av dess pverkan p varje annan bit. Eftersom sannolikheten fr simultana oberoende hndelser r lika med produkten av sannolikheterna fr de individuella hndelserna fr vi att
L+m1

p(r |y) = =

i=0 L+m1 n1 i=0

[p(ri(0)|y(0))p(ri(1)|y(1))...p(ri(n 1)|y(n 1)) = i i i


(j) p(ri(j)|yi )

(7.4)

j=0

Denna ekvation kallas ibland likelihoodfunktionen fr y. Eftersom logaritmfunktionen kar monotont r det estimat som maximerar p(r|y) ocks samma estimat som maximerar log[p(r|y)]. Frdelen med att verg till logaritmfunktionen r att man d kan arbeta med mer lttverskdliga och ltthanterliga summafunktioner istllet fr multiplikationer och produkter (jfr. dB och ggr). Genom att logaritmera likelihoodfunktionen fr y fr vi loglikelihoodfunktionen:
L+m1 n1

log[p(r |y)] =

log p r
i=0 j=0

(j) (j) i |yi

(7.5)

Fr att lttare kunna implementera Viterbi-avkodaren i hrdvara omvandlas summatermerna till en enklare form som kallas bitmetrik: M ri(j)|y(j) = a log p(ri(j)|y(j) + b i i (7.6)

dr a och b vljs s att bitmetriken blir sm heltal som ltt kan behandlas i digitala kretsar.

Studentlitteratur

195

7 Avkodning av faltningskoder

Vgmetriken (eng. path metric) fr ett kodord y berknas p fljande stt:


L+m1 n1

M[(r |y)] =

Mp r
i=0 j=0

(j) (j) i |yi

(7.7)

Om a > 0 och reellt och b r reellt s kommer det kodord y som maximerar p(r|y) ocks att maximera M(r|y). Om man istllet vljer a < 0 skall y vljas s att M(r|y) minimeras. Denition 7.1 Den k:te grenmetriken fr ett kodord y r summan av bitmetriken fr det k:te blocket i r givet y:
n1

M r k |y k =

Mr
j=0

(j) (j) k |y k

(7.8)

Den k:te partiella vgmetriken fs genom att summera grenmetriken fr de k frsta grenarna som vgen genomlper:
k1

M k(r |y) =

M(r |y ) = M r
i i i=0 i=0 j=0

k1 n1

(j) (j) i |yi

(7.9)

Viterbialgoritmen
Viterbialgoritmen behandlar r p ett iterativt stt. Efter varje steg jmfr den metriken fr alla vgar som anlnder till varje tillstnd och lagrar vgen med den strsta metriken med dess metrik. Denna vg kallas verlevare (eng. survivor). Lt noden motsvarande tillstndet Sj vid tidpunkten t kallas Sj,t. Varje nod i spaljn skall tillordnas ett vrde V(Sj,t). Vrdena berknas p fljande stt: 1. Stt V(S0,0) = 0 och t = 1.
196
Studentlitteratur

7.2 Viterbialgoritmen

2. Vid tiden t: Berkna den partiella vgmetriken fr alla grenar som anlnder till varje nod. 3. Stt V(Sk,t) lika med den bsta partiella vgmetriken som anlper tillstndet Sk vid tiden t. Om det nns er n en vg med bst metrik kan man vlja vilken som helst. Icke verlevande grenar utesluts genom att kryssmarkeras. 4. Om t < L + m, ka t med 1 och g till steg 2. Nr alla nodvrden har berknats, starta vid tillstndet S0, tidpunkten t = L + m och flj de s verlevande grenarna bakt i spaljdiagrammet. Den p s stt funna vgen r unik och motsvarar maximum likelihoodkodordet.
Exempel 7.2 Mjuk avkodning Betrakta en DMC (Discrete Memoryless Channel) med tv ingngar och fyra utgngar enligt Figur 7.6. Stt i uttrycket a log p ri(j)|y(j) + b ; b = + 1 s att alla tal blir icke-negativa i och anvnd frslagsvis logaritmer med basen 10, d.v.s. lg 0,4 + 1 0,6 lg 0,3 + 1 0,48 lg 0,2 + 1 0,3 lg 0,1 + 1 = 0 Gr a s att alla tal blir heltal, t.ex. a = 17. D fr vi: 17(lg 0,4 + 1) 10 17(lg 0,3 + 1) 8 17(lg 0,2 + 1) 5 0
0,4 0,1
0,2 0,2

01
0,3

02 12 11

0,1 0,3
0,4

Figur 7.6 DMC till Exempel 7.2.


Studentlitteratur

197

7 Avkodning av faltningskoder 17(lg 0,1 + 1) = 0 eller

ri yi 0
1

01 10 0

02 8 5

12 5 8

11 0 10

Med en (3,1,2)-kod med spaljdiagram enligt nedan har fljande sekvens mottagits: r = (111201 111102 111101 111111 011201 120211 120111) Den slutliga verlevande vgen motsvarar y = (111 010 110 011 000 000 000) och avkodat (11000). De m (hr: m = 2) sista bitarna motsvarar 0 st. inbitar och ingr ej i informationen.

S3
10 1/010 1

36 001 60 001 70 001 104

0 11

10 010 1

S2

33

66

80

10 010 1

10 010 1

S1
11 1 1/

10

0/ 0 11 0 10 11 0
53

0 11 0 10 /011 0

0 11
88

117

0 10 11 0

011

011

18

40

76

95

11 1

11 1

11 1

S0

0/000 0/000 000 000 000 0/000 86 111 139 15 23 43 124 111101 111111 011201 120211 120111 r = 111201 111102 t=7 t=0 t=1 t=2 t=3 t=4 t=5 t=6 000

Figur 7.7 Spaljdiagram till Exempel 7.2.

11 1

198

Studentlitteratur

7.2 Viterbialgoritmen Exempel 7.3 Hrd avkodning Fr specialfallet BSC (Binary Symmetric Channel) med vergngssannolikhet p<1 2 r den mottagna sekvensen binr och loglikelihoodfunktionen blir log p r|y = log p ri|yi =
i

= {p(ri|yi) = p om ri yi; p(ri|yi) = 1 p om ri = yi; r y = d(r,y); lngd r = l} = d(r,y) log p + [l d(r,y)] log (1 p) = = {l = N (= n(L + m))} = d(r,y) log p + N log (1 p), 1p

p < 0 och 1p N log (1 p) r konstant fr alla y s blir en MLD (Maximum Likelihood Decoder) fr en BSC (Binary Symmetric Channel) en avkodare som vljer det estimat y som minimerar Hamming-avstndet dr d(r,y) r Hamming-avstndet mellan r och y. Eftersom log
L + m 1

d(r,y) =

i=0

N1

d(ri,yi) =

i=0

d(ri,yi)

d.v.s nr Viterbi-algoritmen tillmpas p en BSC blir d(ri,yi) grenmetriken och d(ri,yi) bitmetriken och algoritmen mste hitta den vg genom spaljn som har den minsta metriken eller vgen som r nrmast r mtt med Hamming-avstndsmtt. 1p 0

p
1 1p BSC Figur 7.8 BSC-kanal till Exempel 7.3.
Studentlitteratur

199

7 Avkodning av faltningskoder Vi mottar samma sekvens som i Exempel 7.2 r = (110 110 110 111 010 101 101) men nu ver en BSC Den slutliga verlevaren y = (111 010 110 011 111 101 011) ger x = (11001). Att den slutliga verlevaren har en metrik = 7 innebr att ingen annan vg genom spaljdiagrammet skiljer sig frn r i frre n 7 positioner. Lgg mrke till att en del mjliga vgar inte r kryssade. Detta innebr att det nns alternativa vgar som ocks ger minimimetriken 7. Det nns allts ibland era avkodningsmjligheter. Vilken variant som vljs har ingen pverkan p sannolikheten fr avkodningsfel.

S3
10 1/010 1

2 001

4 001

6 001 4

0 11

10 010 1

S2

10 010 1

10 010 1

S1
11 1 1/

10

0/ 0 11 0 10 11 0
4

0 11 0 10 /011 0

0 11
7

0 10 11 0

011

011

11 1

11 1

11 1

S0

0/000 0/000 000 000 000 0/000 3 4 7 6 2 4 5 r = 110 110 110 111 010 101 101 t=7 t=0 t=1 t=2 t=3 t=4 t=5 t=6 000

Figur 7.9 Spaljdiagram till Exempel 7.3. Det har frut ppekats att mjuk avkodning har bttre prestanda n hrd avkodning. De tv exemplen med tillmpning av Viterbi-algoritmen illustrerar detta. Om de fyra utgngarna 01, 02, 11 och 12 reduceras till 0 och 1 vergr DMC-kanalen till en BSC-kanal med p = 0,3. Den vg som vi ck med hrd avkodning skulle i fallet mjuk avkodning ha gett en bitmetrik p 135 istllet fr

11 1

200

Studentlitteratur

7.3 Prestanda fr faltningskoder 139, d.v.s. inte maximum likelihoodavkodning. Man kan sga att en del information (sidoinformation) om kanalen frsvinner vid hrd avkodning.

7.3 Prestanda fr faltningskoder


7.3.1 Binrsymmetriska kanaler (BSC)
Vi brjar med att betrakta (2,1,3)-kodaren i Figur 6.5. Vi utgr frn att nollkodordet har snts. Kodaren har transmissionen T X,Y = X 6 Y 1 + Y 2 X 4 Y 2 = 1 3X 2Y 2X 2Y 3+ 2X 6Y 3 = Y + Y 3 X 6 + 3Y 2 + 5Y 4 + 2Y 6 X 8 +

vilket betyder att det nns ett kodord med vikt 6 genererat av en insekvens med vikt 1, ett kodord med vikt 6 genererat av en insekvens med vikt 3, 3 kodord med vikt 8 genererade av insekvenser med vikt 2 o.s.v. En frsta felhndelse (rst event error) intrffar vid en godtycklig tidpunkt j, om 0-vgen (= den riktiga vgen nr nollkodordet snts) elimineras frsta gngen vid tidpunkten j av en felaktig konkurrerande vg - se Figur 7.10. Detta beror p att det intrffat en utbrytning frn den riktiga 0-vgen och en tergng fr frsta gngen till den riktiga vgen vid tidpunkten j. Om det r vikt-6-vgen, intrffar ett frsta fel, om i de 6 positioner den riktiga och den felaktiga vgen skiljer sig t, den mottagna binrsekvensen r sammanfaller med den felaktiga vgen i 3 eller er av dessa positioner, d.v.s. r har 3 eller er ettor i dessa 6 positioner. Om verfringssannolikheten fr fel i BSC-kanalen r p - se Figur 7.8 - s r sannolikheten att fel i 3 eller er positioner enligt ovan intrffat:

Studentlitteratur

201

7 Avkodning av faltningskoder

S4

S3

felaktig vg

S1

S0

j4
riktig vg

Figur 7.10

Illustration av begrepper frsta felhndelse vid tidpunkten j.

P6 = P 3 eller flera fel i 6 positioner = = 1 6 p3 1 p 3 + 2 3


e=4

6 pe 1 p 6 e 3

Den frsta termen beror p att sannolikheten fr felkorrigering r en halv nr hammingavstndet r lika stort till den riktiga som till den felaktiga sekvensen. I ett generellt fall, nr den felaktiga vgen har vikten d r sannolikheten fr en frsta felhndelse, om d r udda: Pd =

e = d + 1 /2

d pe 1 p d e e

(7.10)

och om d r jmnt: d Pd = 1 d/2 p d/2 1 p d/2 + 2

e = d/2 + 1

d pe 1 p d e e

(7.11)

Eftersom alla felaktiga vgar med lngden j eller kortare kan frorsaka en frsta felhndelse vid tidpunkten j, kan vi nna en vre begrnsning av sannolikheten fr en frsta felhndelse vid tidpunkten j genom att summera sannolikheterna fr alla dessa felaktiga
202
Studentlitteratur

7.3 Prestanda fr faltningskoder

vgar. I begrnsningen tar vi dessutom med alla felaktiga vgar som r lngre n j och fr: En vre begrnsning av sannolikheten fr en frsta1 felhndelse:

Pf E, j <

d = dfri

AdPd

(7.12)

dr Ad r antalet kodord med vikt d. Eftersom begrnsningen r oberoende av j gller den fr vilken tidpunkt som helst och vi kan drfr ange sannolikheten fr en frsta felhndelse enligt:

Pf E <

d = dfri

AdPd

(7.13)

Uttrycket (7.13) fr begrnsningen kan frenklas eftersom fr fallet nr d r udda gller:


d d

Pd = = =

e = d + 1 /2

d pe 1 p d e < e
d/2

e = d + 1 /2

d p d/2 1 p d/2 = e
d

p d/2 2d

1p

p d/2

e = d + 1 /2 p d/2

d < p d/2 1 p d/2 d = e e


e=0

(7.14)

och man kan visa att uttrycket (7.14) ocks utgr en vre begrnsning fr Pd om d r ett jmnt tal, vilket medfr att uttrycket (7.13) kan skrivas enligt:

Pf E <

d = dfri

Ad 2 p 1 p

(7.15)

och fr en godtycklig faltningskod med transmissionsfunktionen


1 Indexet

f i Pf syftar p frsta i frsta felhndelse.

Studentlitteratur

203

7 Avkodning av faltningskoder

T(X) =

d = dfri

AdX d

(7.16)

framgr det vid en jmfrelse med uttrycket (7.15) att Pf(E) < T(X) X = 2
p (1 p)

(7.17)

Man kan visa att uttrycket (7.17) inte endast gller vid en frsta felhndelse utan vid godtyckliga tidpunkter, d.v.s. sannolikheten fr felhndelse r P(E) <

d = dfri

AdPd < T(X) X = 2

p (1 p)

(7.18)

Fr sm p dominerar den frsta termen i uttrycket (7.18) och sannolikheten fr felhndelse kan approximeras till P(E) Adfri 2 p (1 p)
dfri

Adfri2dfrip dfri/2

(7.19)

Exempel 7.4 Fr (2,1,3)-kodaren i Figur 6.5 r dfri = 6 och A d fri = 2 och med p = 10 2 r P(E) 2 26 p6/2 = 27 10 6 = 1,28 10 4

Fr berkningar av en verfringskanals prestanda r bitfelssannolikheten, Pb mer intressant, d.v.s. sannolikheten fr felavkodning per avkodad informationsbit. Varje felhndelse frorsakar lika mnga bitfel som antalet nollskilda informationsbitar i den felaktiga vgen. Detta medfr att om varje felhndelseterm Pd viktas med antalet nollskilda informationsbitar lngs vgen med vikten d, eller om det nns mer n en vg med vikten d, av det totala antalet nollskilda informationsbitar lngs alla vgar med vikten d, s kan en vre grns fr sannolikheten fr avkodade bitfel vid en godtycklig tidpunkt gras enligt:
204
Studentlitteratur

7.3 Prestanda fr faltningskoder

Pb < 1 BdPd k d = dfri

(7.20)

dr Bd r antalet nollskilda informationsbitar lngs alla vgar med vikten d denierat av Bd =

b=1

bAd,b

(7.21)

och eftersom T(X,Y) = fljer att T(X,Y) = Y Y = 1 d fri =d

d = dfri b = 1

Ad,bX dY b

(7.22)

b=1

bAd,b

Xd =

d = dfri

BdX d

(7.23)

Vi substituerar nu uttrycket (7.14) i uttrycket (7.20) och fr: Pb < 1 Bd2d p d/2 1 p d/2 k d = dfri

(7.24)

Om vi nu jmfr uttrycket (7.24) med uttrycket (7.23) ser vi att. Pb < 1 Bd2d p d/2 1 p d/2 = k d = dfri T(X,Y) =1 Y X = 2 p (1 p) , Y = 1 k

(7.25)

ett samband som gller fr en godtycklig faltningskod med transmissionsfunktionen T(X,Y).

Studentlitteratur

205

7 Avkodning av faltningskoder

En undre grns fr bitfelssannolikheten r2 om d r ett udda tal: Pb 1 Pdfri = 1 k k e=

dfri + 1 /2

dfri

dfri p e 1 p dfri e e

(7.26)

och om d r ett jmnt tal: Pb 1 Pdfri = k d = 1 d fri p dfri/2 1 p dfri/2 + 1 2k fri/2 ke =


Exempel 7.5 BSC-kanal. Berkna och rita kurvor fr undre och vre begrnsningar av bitfelssannolikheten (BER = Bit Error Rate) fr (2,1,3)-faltningskodaren i Figur 6.5 som enligt berkningar i avsnitt 6.5 har transmissionsfunktionen T(X,Y) = Lsning: Vi berknar frst en vre begrnsning med uttrycket (7.25): P b < 1 T(X,Y) = k Y X = 2 p (1 p), Y = 1 6 8 10 12 = 4X 2X 3X +2X 1 5X 2 + 2X 6
2 X = 2 p (1 p)

dfri/2 + 1

dfri

dfri p e 1 p dfri e e (7.27)

X 6 Y( 1 Y 2 + X 4 Y 2) . 1 3X 2 Y 2X 2 Y 3 + 2X 6 Y 3

och drefter en undre begrnsning med uttrycket (7.27) eftersom dfri i vrt exempel r ett jmnt tal = 6:
6 Pb 1 6 p 3 1 p 3 + 6 p e 1 p 6 e = 4 2 3 e=4 = 10p 3 1 p 3 + 15p 4 1 p 2 + 6p 5 1 p + p 6

Som referens ritar vi kurvan fr det okodade fallet.


2 Fr

detaljer se A.J. Viterbi, Error Bounds for Convolutional Codes and an Asymptotically optimum Decoding Algorithm, IEEE Transactions on Information Theory, Vol. IT-13, pp.260-269, april 1967.
Studentlitteratur

206

7.3 Prestanda fr faltningskoder

0,0 2,5 -5,0 lg BER -7,5 -10,0 -12,5 -15,0 -17,5 -6

okodat

g nin ns r ing beg nsn vre r beg re und

-5

-4 lg p

-3

-2

Figur 7.11 vre och undre begrnsningar fr (2,1,3)-faltningskoden till Exempel 7.5 Studera kurvorna i Figur 7.11.

7.3.2 AVGB-kanaler
Fr fallet med en kanal strd av AVGB tillmpar vi den vgmetrik som angetts i uttrycket (7.7) och vars id bygger p att minimera det geometriska eller euklidiska avstndet mellan riktigt och felaktigt kodord till skillnad mot fallet med BSC-kanalen dr det i stllet r hammingavstndet mellan felaktigt och riktigt kodord som skall minimeras. Den mottagna signalen som gr till avkodaren frutstts vara okvantiserad, d.v.s. analog men en analys byggd p att signalen kvantiseras i en analogdigitalomvandlare med tre eller era bitars precision utgr en tillrckligt bra approximation. Vi utgr i ett praktiskt fall frn att BPSK-modulerade signaler snds ver en AVGB-kanal med den tvsidiga brusspektralttheten N0/2 [V2/Hz]. De vre och undre begrnsningarna fr bitfelssannolikheten kan visas vara:

Studentlitteratur

207

7 Avkodning av faltningskoder

Pb 1 edfri Eb/N0 Q k och Pb 1 Pdfri = 1 Q k k

2dfriEb T(X,Y) N0 Y X = e E /N ,Y = 1
b 0

(7.28)

2dfriEb N0

(7.29)

dr Eb r bitfelssannolikheten vid verfringen p AVGB-kanalen.


Exempel 7.6 AVGB-kanal Berkna och rita kurvor fr undre och vre begrnsningar av bitfelssannolikheten (BER = Bit Error Rate) fr (2,1,3)-faltningskodaren i Figur 6.5 och jmfr med motsvarande BSC-kanal enligt Exempel 7.5. I Exempel 7.5 omvandlas de mottagna signalerna till nollor och ettor i en hrd avkodare innan de skickas till avkodaren. Lsning: I fallet med hrd avkodning omvandlas den mottagna sekvensen till nollor och ettor innan den avkodas. Detta medfr att avkodaren arbetar p en BSC-kanalmed bitfelssannolikheten p = Q 2Eb dr E r bitenergin p kanalen varb N0 efter vre och undre begrnsningar av bitfelssannolikheten berknas p samma stt som i Exempel 7.5. Dock skall man lgga mrke till att energin per informationsbit Es = E b dr R r kodens relativa takt skall anvndas vid berkR ningen fr att kunna bestmma kodningsfrstrkningen. Mjuk avkodning: Sekvensen snds direkt till avkodaren utan att frst ha kvantiserats till tv niver (den analoga insekvensen kvantiseras till minst 23 niver, vilket utgr en god approximation till en analog insekvens). De vre och undre grnserna fr bitfelssannolikheten kan d berknas med uttrycken (7.28) och (7.29). Kodningsfrstrkningen kan avlsas i Figur 7.12. Exempelvis kan man se att en bitfelssannolikhet p 10 6 krver ungefr 6 dB fr Es/N0 medan det okodade systemet krver 10,5 dB, d.v.s. AVGB-systemet med mjuk avkodning ger en kodningsfrstrkning p 10,5 6 = 4,5 dB.

208

Studentlitteratur

7.4 Problem. Avkodning av faltningskoder

0 -2 -4 lg BER -6 -8 -10 -12 -14 3

vre hrd grn avk s vid okodat odn ing undre g rns vid hrd avko d und vning re mju re g k a rns mjuk gr vko vi av ns dni d ko vid ng dn ing

6 7 E s dB N0

10

Figur 7.12 Grnser vid hrd och mjuk avkodning vid en AVGB-kanal till Exempel 7.6.

Sammanfattning
Viterbialgoritmen r bde en ML (Maximum-Likelihood) och en MAP (Maximum A Posteriori) avkodningsalgoritm.

7.4 Problem. Avkodning av faltningskoder


Problem 7.1
Bestm en lmplig bitmetrik fr kanalen i Figur 7.13
Studentlitteratur

209

7 Avkodning av faltningskoder
.

0,9 0 Snd symbol 0,3 0 Mottagen symbol

0,1 1 0,7 Figur 7.13 Kanal till Problem 7.1. Svar: snd = 0 mott = 0 mott = 1 6 0 snd = 1 5 3 1

Problem 7.2
En faltningskodares generatormatris r

G(D) =

1 + D2

1 + D + D2

Kodorden snds ver en BSC. Bestm ML-kodordet fr den mottagna sekvensen r = (10 11 11 11 01 00). Svar: 1010

Problem 7.3
Ett faltningskodat ord r = (10 10 10 10 01 11) har mottagits. Vilket meddelandeord har troligast snts om faltningskodarens generatormatris r G(D) = (1 1 + D + D2)?

Gr en ML-spaljavkodning enligt Viterbi med all partiell vgmetrik infrd i spaljdiagrammet, icke-verlevare kryssade och verlevarvgen markerad. Svar: 1101

210

Studentlitteratur

7.4 Problem. Avkodning av faltningskoder

Problem 7.4
Ett faltningskodat ord r = (10 10 10 10 01 11) har mottagits. Vilket meddelandeord har troligast snts om faltningskodarens generatormatris r G(D) = 1 1 + D + D2

Gr en ML-spaljavkodning enligt Viterbi med all partiell vgmetrik infrd i spaljdiagrammet, icke-verlevare kryssade och verlevarvgen markerad. Svar: 1101

Problem 7.5
Meddelanden kodas med en kodare enligt Figur 7.14 och snds ver en symmetrisk minnesls kanal med bitmetriken enligt nedanstende tabell. Avkoda fljande mottagna sekvens: r =10 01 10 11 00 10 11 00 M(r|y) y=0 y=1 r=0 0 6 r=0 1 3 r=1 3 1 r=1 6 0

... y 2 ,y1 , y0

(0)

(0)

(0)

... x2,x1,x0

+
Figur 7.14 Faltningskodare till Problem 7.5. Svar: 000110

... y 2 ,y1 , y0

(1)

(1)

(1)

Problem 7.6
En (2,1,3)-faltningskod har
Studentlitteratur

211

7 Avkodning av faltningskoder G(D) = [1 + D2 + D3 1 + D + D2 + D3]

a) Rita spaljdiagram fr en meddelandesekvens med lngden L = 4. b) Avkoda den mottagna sekvensen r = (11 00 01 00 01 10 11). Svar: b) 1111

Problem 7.7
Berkna en lmplig uppsttning bitmetrik fr kanalen enligt Figur 7.15.

0,6 0,2 0 snd symbol 1 0,5 0,3 0,3 0,1

mottagen symbol

Figur 7.15 vergngssannolikheter fr kanalen i Problem 7.7 Svar:

m(r|y) r=0 r=E r=1

y=0 5 3 0

y=1 2 3 5

212

Studentlitteratur

8 Kombinerad kodning och modulation (Trellis Coded Modulation)

1974 freslog Massey att kodning och modulation skulle behandlas som oskiljbara delar av ett och samma system. Tv r senare presenterade Ungerbeck en metod fr att integrera kodning och modulation. Metoden kallas numera Trellis Coded Modulation (TCM) (sv. ungefr spaljkodad modulation. Termen kodulering frekommer i viss mn i svensk litteratur). Vid TCM anvnds faltningskoder och mngdimensionella signaluppsttningar (eller vgformer) fr att stadkomma tillfrlitlig hghastighetskommunikation ver bandbegrnsade kanaler. De frsta tillmpningarna av TCM skedde inom omrdet digital datatransmission ver vanliga telefonledningar. En telefonikanal har en bandbredd av ungefr 2.700 Hz. I brjan av 60-talet ansg mnga ingenjrer 2.400 bps (bits per second) vara den maximala datahastighet som ngonsin skulle kunna uppns vid datakommunikation ver en sdan kanal. Omkring 1970 trodde man att 9.600 bps var en grns som inte kunde verskridas. 1994 fanns kommersiella modem fr verfring p det vanliga telefonntet med 19.200 bps. TCM har ocks ftt stor betydelse fr andra bandbegrnsade tillmpningar som mobil- och satellitkommunikation. Vi brjar med att betrakta en- och tv-dimensionella signaluppsttningar och frhllandet mellan spektrum- och effekt-verkningsgrad (eng. spectrum- and power-efciency). Drefter undersker vi en- och tv-dimensionella TCM-system. Tyngdpunkten kommer att lggas p fljande tre nyckelbegrepp: 1. Expanderade signaluppsttningar.
Studentlitteratur

213

8 Kombinerad kodning och modulation (Trellis Coded Modulation)

2. Signaluppsttningspartitionering. 3. Val av partitioneringar med faltningskodare

8.1 M-r signalering


I brjan av kursen genomgicks principerna fr ett digitalt kommunikationssystem. Sdana system r digitala i meningen att de verfr information i form av diskreta symboler. I ett binrt system, t.ex. BPSK och BFSK, kan varje verfrd symbol anta ett av tv mjliga vrden. Nyquist-bandbredden fr signalen motsvaras av hastigheten med vilken symbolerna snds. Om symbolerna r binra krver en Rs bps datahastighet en Rs Hz Nyquist-bandbredd. Ett systems spektrala verkningsgrad denieras som det antal bitar per sekund som verfrs vid 1 Hz bandbredd. Det nyss angivna exemplet har sledes en spektral verkningsgrad p 1 bit/ s/Hz. Den binra signaluppsttningen vid BPSK kan representeras av tv punkter p den reella tallinjen dr signalens polra koordinater motsvarar signalens amplitud och fas eller roten ur vgformens energi
T

under ett bitintervall,


0

u 2(t) dt = E b , och fas. Vanligen nor-

meras koordinaterna till heltal. Figur 8.1 visar ett BPSK-diagram. Symbolfelfrekvensen berknas genom att bestmma sannolikheten att kanalbruset gr att den mottagna signalen ligger nrmare den icke snda n den snda signalen.

Eb
1 0

Eb
+1

Figur 8.1 BPSK-diagram.


214
Studentlitteratur

8.1 M-r signalering

n x

r=x+n

Figur 8.2 AVGB-kanalen. En vanlig kanalmodell r AVGB-kanalen (Additivt Vitt Gaussiskt Brus) med den tvsidiga spektrala brusttheten N0 [W/Hz] p motta2 garingngen. Bruset representeras av en gaussisk stokastisk variabel n, medan den mottagna signalen r r = x + n. Under frutsttning att de frekommande signalerna snds med lika stor sannolikhet kommer en ML-mottagare att besluta att den signal som avstndsmssigt ligger nrmast den mottagna signalen r den snda. Detta avstnd kallas det euklidiska eller geometriska avstndet till skillnad mot Hamming-avstndet.
Exempel 8.1 Binra symboler snds i ett BPSK-system ver en BSC-kanal enligt Figur 8.3. Maximum likelihoodavkodaren minimerar sannolikheten fr felaktig verfring under frutsttning att sannolikheterna fr de snda kodorden r lika stora, P(c0) = P(c1) = 0,5; BER = P(E) = P(c0) P(r1|c0) + P(c1) P(r0|c1) = 0,5 p + 0,5 p = p. Lt de snda symbolen representeras av Eb och Eb dr Eb r bitenergin under ett symbolintervall. Om bruset r gaussiskt blir sannolikheten fr felaktig avkodning lika med sannolikheten att en snd etta, Eb . (se Figur 8.4). Eb r Eb r = P u= r dr = Eb = Eb r
Eb

Eb, tas emot som nolla,

BERPSK = P

Eb r 0 =

1 e = 2

(r Eb) /22

du = 1 dr

1 e (u2/2)du = 2

Studentlitteratur

215

8 Kombinerad kodning och modulation (Trellis Coded Modulation) 1p

snt kodord c0 = 0

mottaget kodord r0 = 0

p c1 = 1
1p BSC Figur 8.3 BSC-kanal till Exempel 8.1.

r1 = 1

Eb r

Eb r

Eb

Eb

Figur 8.4 Gaussisk sannolikhetsfrdelning av brus kring Eb vid BPSK.

=
Eb

1 e (u2/2)du = Q Eb = = 2

N0 = Q 2

2Eb N0

I mnga tillmpningar verskrider den nskade dataverfringshastigheten (i bit/s) den tillgngliga bandbredden (i Hz). I sdana fall mste systemets spektrala verkningsgrad kas. Detta grs genom att ka storleken p signaluppsttningen medan symbolverfringshastigheten bibehlls genom att antalet vrden, som varje symbol kan anta, kas.
Exempel 8.2 8-AM I Exempel 8.1 med BPSK kan antalet symboler utkas till t.ex. 8 s att vi fr 8-AM p det stt som visas i Figur 8.5 (M = 8). Vid stora signalbrusfrhllanden r den mest sannolika felhndelsen att en snd symbol frvxlas med en av sina nrmaste grannar.

216

Studentlitteratur

8.1 M-r signalering

d min Eb

Eb

Eb

Figur 8.5 8-AM. Om det minimala euklidiska avstndet i en signaluppsttning mellan tv signaler r dmin Eb s blir symbolfelfrekvensen lika med sannolikheten att en symbol frvxlas med en av sina nrmaste grannar. Om alla symboler (= amplitudniver) r lika sannolika blir den genomsnittliga sannolikheten fr fel helt enkelt att den stokastiska brusvariabeln n verskrider halva avstndet mellan symbolernas amplitudniver. Fr fallet med de tv strsta niverna (M 1) = = (8 1) = 7 kan ett fel uppst i endast en riktning. Vi fr fr felsannolikheten vid 8-AM: P(fel) 8-AM = 1 P{fel| 7} + 1 P{fel| 5} + 1 P{fel| 3} + 1 P{fel| 1} + 8 8 8 8 + 1 P{fel|7} + 1 P{fel|5} + 1 P{fel|3} + 1 P{fel|1} = 8 8 8 8 = 1 P{fel| 7 4

7} + 3 P{fel| 5 4
Eb

5} =

=1 4

Eb

1 e (u2/2)du + 2 3 4 2

1 e (u2/2)du = 2

= =

N0 = 1 Q 2 4

2Eb + 6 Q N0 4

2Eb = 7 Q N0 4

2Eb N0

Allmnt med M niver: P(fel) M-AM = 2 M 1 Q M


2 dmin Eb N0

(8.1)

Studentlitteratur

217

8 Kombinerad kodning och modulation (Trellis Coded Modulation)

m=2 QPSK

m=3 8-CROSS

m=4 16-QASK

m=2 QPSK

m=3 8-PSK

m=4 16-PSK

Figur 8.6 Signaluppsttningar Mngden energi som tgr fr att snda en enskild symbol r proportionell mot kvadraten p dess avstnd till origo. Om avstndet mellan nrliggande symboler skall vara detsamma som i BPSK-fallet krvs i genomsnitt 12 + 3 2 + 5 2 + 7 2 = 21 ggr mer energi och generellt fr en 2m-nr AM-signal4 m uppsttning Sm = 4 1 ggr mer energi n fr BPSK-fallet och medelenergin 3 fr en 2m + 1-nr AM-signaluppsttning i frhllande till medelenergin fr en 2m-nr AM-signaluppsttning r Sm + 1 = 4Sm + 1 eller ungefr 4 ggr (6 dB) mer energi/symbol.

AM-signaluppsttningen i Exempel 8.2 r en-dimensionell. Genom att infra tv-dimensionell, kvadraturamplitudmodulation, QAM, eller M-r fasskift (MPSK) kan vi f bttre prestanda. Bda typerna har sina fr- och nackdelar. Den rektangulra signaluppsttningen har ett bttre minimidistans- till medelenergi-frhllande men utstts fr distorsion nr den passerar olinjra kretsar (t.ex. vandringsvgrr och andra frstrkartyper som ocks arbetar i mttnadsomrdet)
218
Studentlitteratur

8.1 M-r signalering

X
formatering

+
osc. 90

binr datastrm

Figur 8.7 Implementering av tv-dimensionell signaluppsttning. I MPSK-signaluppsttningar r minimidistansen relativt liten men de modulerade signalerna har konstant envelopp och utstts drmed inte fr olinjriteter i kanalen. Tv-dimensionella signaluppsttningar kan implementeras genom att modulera ett par ortogonala brvgor enligt Figur 8.7. m bitar tas frn kllan och avbildas p ett ordnat par (X;Y). Dessa tv koordinater anvnds sedan fr att modulera ett par ortogonala brvgor som drefter adderas fr att bilda en komplex signal Z. De modulerade vgorna r ortogonala och pverkar inte varandra p en linjr kanal. Tv-dimensionella rektangulra signaluppsttningar kan drfr ses som ett par ortogonala en-dimensionella signaluppsttningar.

m=6 64-QASK

2 ortogonala 8-AM signaluppsttningar

Figur 8.8
Studentlitteratur

64-QASK kan bildas av 2 ortogonala 8-AM-signaluppsttningar.


219

8 Kombinerad kodning och modulation (Trellis Coded Modulation)

Om vi nu granskar 64-QASK lite noggrannare ser vi att eftersom det i varje transmissionsintervall kan sndas en av 64 olika signaler s representerar varje signal 6 bitar (64 = 26) och motsvarande spektralverkningsgrad r 6 bitar/s/Hz. Signaluppsttningen r exakt kvadratisk och kan ses som ett par ortogonala 8-AM signaluppsttningar. P s stt kan vi ocks uppfatta att signaluppsttningen ger oss 3 bitar/s/Hz/dimension. Uttrycket fr den normerade medelsignalenergin Sm = 4m 1 3 (8.2)

kan anvndas fr att bestmma medelenergin/dimension vid m bitar/s/Hz/dimension och den totala medelenergin fs genom att multiplicera med antalet dimensioner. Medelenergin fr de olika CROSS-signaluppsttningarna (CROSS vid m udda) fr berknas direkt, signalpunkt fr signalpunkt, men visar sig ligga ngonstans mellan motsvarande jmna vrden p m (QASK vid m jmn).

Om vi frutstter att alla rektangulra signaluppsttningar har ett minimiavstnd p 2 blir medelenergin Sm vid m = 3 bitar/s/Hz/dimension 43 1 = 21 . 3 Multiplicera med antalet dimensioner, d.v.s. 2, s fr vi fr 64-QASK S3 = Sm = 6 = 2 21 = 42 (16,2 dB). Man kan stlla upp fljande tabell fr QASK och CROSS-modulation med minimiavstnd = 2.

220

Studentlitteratur

8.1 M-r signalering

m AM QPSK CROSS QASK CROSS QASK CROSS QASK 1 2 3 4 5 6 7 8

ant. punkter 2 4 8 16 32 64 128 256

medelenergi S 1 2 5,5 10 20 42 82 170

S (dB) 0,0 3,0 7,4 10,0 13,0 16,2 19,1 22,3

P samma stt kan man gra motsvarande analys fr MPSK-signaluppsttningar. Om signalpunkterna ligger p radien av enhetscirkeln blir dmin = 2 sin . 2m (8.3)

Fr att bibehlla minimiavstndet 2 mste allts radien kas i cirkeln, vilket motsvaras av att medelenergin kas med faktorn

1 sin 2m

(8.4)

Studentlitteratur

221

8 Kombinerad kodning och modulation (Trellis Coded Modulation)


.

dmin = 2 sin 2m
1

Figur 8.9 Del av MPSK-signaluppsttning.

Motsvarande tabell fr MPSK blir


m 1 2 3 4 5 6 7 ant. punkter 2 4 8 16 32 64 128 medelenergi S 1 2 6,8 26,3 104,1 415,3 1660,4 S (dB) 0,0 3,0 8,3 14,2 20,2 26,2 32,3

Av tabellen framgr att MPSK krver ungefr 6 dB kning av energin fr varje ytterligare bit/s/Hz medan de rektangulra signaluppsttningarna bara krver c:a 3 dB kning fr varje ytterligare kning av antalet bit/s/Hz.

222

Studentlitteratur

8.2 Kodningsfrstrkning

8.2 Kodningsfrstrkning
Ett begrepp av central betydelse i samband med kodning r kodningsfrstrkning. Som vi sett s infrs vid block- och faltningskodning redundanta bitar i datastrmmen s att mottagaren med hjlp av dessa kan upptcka och mjligen ocks korrigera fel som uppsttt under verfringen. Kvantitativt anges redundansen som kodtakten eller kodhastigheten R = k/n. Om informations- eller datahastigheten Rs skall vara konstant mste symbolhastigheten kas till Rs/R. Om sndarens effektniv hlls konstant kommer den mottagna bitenergin att reduceras frn Es till R Es. BER fr strmmen av mottagna kodord kommer drfr att ka i frhllande till BER fr en tnkt strm av okodade meddelandeord. Emellertid kommer de redundanta bitarna tillsammans med databitarna i kodorden att kunna korrigera en del av felen s att BER, fr de korrigerade och till meddelandeord avkodade kodorden, blir lgre n fr den tnkta okodade datastrmmen (under frutsttning att koden r vl vald, nota bene). Frbttringen i BER uttryckt som kodningsfrstrkning (eng. code gain) denieras som den effekt ett okodat system mste tillfras fr att dess BER skall bli densamma som hos det kodade systemet.

8.3 En- och tv-dimensionell TCM


Vid block- och faltningskodning erhlls kodningsfrstrkning genom att redundanta bitar tillfrs. Om det kodade systemet skall bibehlla samma datahastighet som det okodade mste symbolhastigheten och drmed Nyquist-bandbredden hos det kodade systemet kas 1/R ggr dr R = k/n. I ett bandbegrnsat system uppstr det d problem eftersom den ytterligare bandbredd som krvs fr de redundanta bitarna inte r till Studentlitteratur

223

8 Kombinerad kodning och modulation (Trellis Coded Modulation)

gnglig. Ett alternativ r att snka datahastigheten s att de redundanta bitarna fr plats, men i mnga tillmpningar r den varianten svr eller omjlig.

Ett annat kraftfullt alternativ utgrs av TCM. Gottfried Ungerbeck introducerade en metod att tillfra redundans fr felkontroll utan att ka signalbandbredden (Ronneby 1976). Metoden kan beskrivas som en 3-stegsprocedur: 1. Lgg till en redundant bit till varje m-bitars block. 2. Expandera signaluppsttningen frn 2m till 2m + 1 signaler. 3. Anvnd de (m + 1)-bitars kodade blocken (frn kllan) till att vlja signaler frn den expanderade signaluppsttningen. Symbolverfringshastigheten fr det kodade systemet r lika stor som fr det okodade Nyquist-bandbredden kar inte. Det geniala i Ungerbecks system ligger i sttet p vilket de m informationsbitarna avbildas p de 2m + 1 signalerna i den expanderade signaluppsttningen. Denna avbildning stadkoms genom mngdpartitionering (eng. set partitioning).

De esta praktiska signaluppsttningar kan delas upp (partitioneras) p ett systematiskt stt s att en serie mindre delsignaluppsttningar bildas. Om man gr uppdelningen riktigt s fr de resulterande delsignaluppsttningarna strre minimi-distans n frldrasignaluppsttningen. Figur 8.10 visar partitioneringstrdet fr en 32-CROSS-signaluppsttning.

224

Studentlitteratur

8.3 En- och tv-dimensionell TCM

A0

B0

B1

C0

C2

C1

C3

D0

D2

D1

D3

2 2

(000)

D4

(010)

D6

(001)

D5

(011)

D7

(100)

(110)

(101)

(111)

Figur 8.10 Partitioneringstrd fr 32-CROSS signaluppsttning. Frldrauppsttningen (A0) har dmin = . A0 delas upp i B0 och B1. B0 och B1 har dmin = 2 . B0 och B1 delas vidare upp i C0 och C2 respektive C1 och C3. C0 delas upp i D0 och D4. C2 delas upp i D2 och D6. C1 delas upp i D1 och D5. C3 delas upp i D3 och D7. Varje ny partitionering resulterar i delsignaluppsttningar med dmin = 2 ggr strre n nrmast fregende delsignaluppsttning. P niv av trdet (A0 r p niv 0) nns det sledes 2 signaluppsttningar med dmin = 2 .
Studentlitteratur

225

8 Kombinerad kodning och modulation (Trellis Coded Modulation)

.
A0
= 2 sin (/16) 0,3902

B0

B1

2 sin (/8) 0,7654 1,9615

C0

C2

C1

C3

2 sin (/4) 1,4142 3,6243

D0

D4

D1

D5

(000)

(100)D2

D6 (001)

D (101) 3

D7
2 sin (/2) = = 2 5,1256

(010)

(110)

(011)

(111)

Figur 8.11 Partitioneringstrd fr 16-PSK signaluppsttning. Lgg mrke till att varje uppdelning lngst ner i Figur 8.10 r utmrkt med ett binrt tal. Dessa tal kan tolkas som en trdadress: varje koordinat motsvarar ett steg nert i trdet. Grenar t vnster ger 0:a och grenar t hger 1:a Figur 8.11 visar hur partitionering kan tillmpas vid MPSK-signaluppsttningar. I detta fall har vi en 16-PSK-signaluppsttning som partitioneras i ett par 8-BPSK-signaluppsttningar. Den genomsnittliga symbolenergin fr alla signaluppsttningar r 1. Lgg mrke till att dmin kar snabbare med varje partition med 16-PSK n med 32-CROSS. En Ungerbeck-kodare fungerar p fljande stt: m informationsbitar, x1, x2, ..., xm, tas frn datastrmmen fr att avbildas p en signal frn den 2m + 1-nra signaluppsttningen. k av
226
Studentlitteratur

8.3 En- och tv-dimensionell TCM

k -takts faltningskodare. k +1 De resulterande (k + 1) bitarna anvnds fr att vlja en av de 2k + 1 partitionerna av den 2m + 1-nra signalen p den (k + 1):a signaluppsttningsnivn av partitioneringstrdet. De terstende (m k) informationsbitarna anvnds sedan fr att vlja en signal i den utpekade partitionen. de m informationsbitarna kodas med en

Faltningskodaren i Ungerbeck-kodaren ger en spaljstruktur till de tilltna signalsekvenserna. Av den anledningen kallas kodaren ett TCM-system.

Exempel 8.3 Jmfr okodad QPSK med ett kodat 8-PSK-system Det okodade systemet, QPSK, har m = 2, d.v.s. spektralverkningsgraden 2 bitar/s/Hz

xm xk + 2 xk + 1 ck c1 c0

vlj signal i partition

xk

x2 x1

k k+1 takts faltn.kodare

vlj signalpartition

Figur 8.12 Ungerbeck-kodare.

Studentlitteratur

227

8 Kombinerad kodning och modulation (Trellis Coded Modulation)

3 m=2 Figur 8.13 Okodat system, QPSK med m = 2 i Exempel 8.3. Det okodade systemet skall nu kodas till ett 8-PSK-system. Enligt Ungerbecks kodningsprincip skall vi ta k av de m informationsbitarna och koda i en k -takts faltningskodare. Eftersom m = 2 tar vi k = 1, vilket leder till att faltk+1 ningskodarens takt blir k = 1 = 1 . k+1 1+1 2 Som faltningskodare vljer vi den som visas i Figur 8.14. k = 1 skall de (k + 1) = 2 bitarna k+1 2 anvndas fr att vlja en av de 2k + 1 = 21 + 1 = 4 partitionerna av de 2m + 1 = Eftersom faltningskodarens takt r = 22 + 1 = 8 signaluppsttningarna p den (k + 1):a = 2:a nivn i partitioneringsdiagrammet.

c1

x1

c0
Figur 8.14 Faltningskodare till Exempel 8.3.

228

Studentlitteratur

8.3 En- och tv-dimensionell TCM

3 4

A0 2

1 0 niv 0 7 3 5 C1 1 5 (01) (11) 3 7

B0 2
4 0 6 0 (00) 6 (10)

B1

1 niv 1 7

C0
4

C2 2

C3
niv (k + 1) = 1+1=2

Figur 8.15 Signaluppsttningspartitionering till Exempel 8.3. Signaluppstt ning C0 (0,4) C2 (2,6) C1 (1,5) C3 (3,7) . Tillstnd S0 (0 0) S1 (1 0) S2 (0 1) S3 (1 1)

x2

c2

0 0 0 0 1 1 1 1

z
0 1 2 3 4 5 6 7

+
x1

c1

0 0 1 1 0 0 1 1

C0C1C2 C3C0C1C2C3 c0
0 1 0 1 0 1 0 1

Figur 8.16 8-PSK Ungerbeck-kodare till Exempel 8.3.


Studentlitteratur

229

8 Kombinerad kodning och modulation (Trellis Coded Modulation) De terstende (m k) = (2 1) = 1 informationsbitarna anvnds till att vlja ut en signal, z, i den utpekade partitionen. Utgngen frn en 4-tillstnds faltningskodare vljer en av de fyra partitionerna C0, C1, C2, C3 medan den okodade databiten x2 vljer en av de tv signalerna i den valda partitionen. Jmfr det okodade med det kodade fallet med hjlp av spaljdiagram. I det okodade fallet tas tv informationsbitar i taget och avbildas p en av de fyra signalerna i QPSK-signaluppsttningen. 1

3 Figur 8.17 Okodat system, QPSK, i Exempel 8.3.

3 2 1 0 tid

3 2 1 0

3 2 1 0

t1

t+1

...

Figur 8.18 Spaljdiagram till okodat QPSK-system i Exempel 8.3.

C0 0/00 S0

C2/10 1

0/ C2 10

C1 0/01
1/00 C0

S2
1/ 1 3 1 11 0/ C3

S1

S3

C1 1/01

Figur 8.19 Tillstndsdiagram fr faltningskodaren i Figur 8.14.

230

Studentlitteratur

8.3 En- och tv-dimensionell TCM Eftersom det inte nns ngot minne i systemet kan vilken som helst av de fyra signalerna vljas i varje tidslucka. Sannolikheten fr symbolfel vid transmission via en brusig kanal beror av det minsta euklidiska avstndet mellan par av tskilda signalsekvenser. Det minsta euklidiska avstndet mellan ett par giltiga tskilda symbolsekvenser kallas den minimala fria distansen (eng. minimum free distance, dfree) dfri. I det okodade fallet kan tv giltiga symbolsekvenser skilja sig t i endast en koordinat (ex. 00 01 respektive 00 00). Den minimala fria distansen mellan ngot par av okodade sekvenser blir drmed i fallet QPSK lika med det kortaste avstndet mellan tv signaler i QPSK-signaluppsttningen. I det kodade fallet har vi en intressantare situation. De giltiga sekvenserna kan skdliggras med hjlp av spaljdiagram. Tillstnden kan beskrivas med ett 4-tillstnds spaljdiagram. Tillstnden motsvarar innehllet av minneselementen i faltningskodaren som ingr i Ungerbeck-kodaren. P grenarna anges de signalpartitioner frn vilka signaler kan vljas, s kan t.ex. endast en signal frn partition C2 (= 2,6) vljas nr faltningskodaren ndrar sitt tillstnd frn S0 (00) till S1 (10). Eftersom varje gren i spaljdiagrammet motsvarar er n en signal, i vrt fall tv signaler, kan vi ha signalsekvenser som bara skiljer sig t i en enda parallell vergng. Exempelvis r signalsekvenserna z1 = 0000... och z2 = 0400... bda giltiga och skiljer sig t i endast en koordinat. Den minimala fria distansen fr parallella vergngar r lika med den minimala distansen mellan signaler i de partitioner som nns p de olika grenarna, d.v.s. i vrt fall den minimala minimidistansen bland signaler i partitionerna C0, C1, C2 och C3 som r dfriparallell = 2. Fastn parallella vergngar endast skiljer sig t i en enda gren motsvarar de inte med ndvndighet de par av sekvenser som har det kortaste avstndet mellan sig. 1 2 1

dfri,okodad = 2

Figur 8.20 Minimal fri distans i det okodade fallet = kortaste avstndet mellan tv signaler i QPSK-signaluppsttningen (Exempel 8.3).

Studentlitteratur

231

8 Kombinerad kodning och modulation (Trellis Coded Modulation)

S3

C1

C1

C1

C3

C3

S2

S1
2

S0

C0

C0

Figur 8.21 Spaljdiagram vid Ungerbeck-kodning i Exempel 8.3.

C0
4 2 0

C0

C3

Figur 8.22 Minimidistans vid parallella vergngar vid Ungerbeck-kodning i Exempel 8.3.

Figur 8.23 Avstnd mellan signalpartitioner vid Ungerbeck-kodning i Exempel 8.3.

C3
C2 2
2 6

C3

C3 C

C0
C2
C2 dmin(C0,C2)

C0
C2
C1
2 1

C0
C2
3

C3
2 7

C1 dmin(C0,C1) C0

232

Studentlitteratur

8.3 En- och tv-dimensionell TCM Spaljdiagrammet visar ett stt p vilket tv icke-parallella sekvenser kan skilja sig t i tre p varandra fljande grenar. Detta icke-parallella sekvenspar r ett av dem som har minst avstnd mellan sig i denna kodare. Fr att bestmma detta avstnd anvnds den euklidiska metriken och Pythagoras sats. Lt nmligen dmin(CA,CB) vara det kortaste avstndet mellan signaler i partition CA och signaler i partition CB. dfri,icke-parallell = =
2 2 2 dmin(C0,C2) + dmin(C0,C1) + dmin(C0,C2) =

2 2 + 2 sin + 2 2,14 8

Den minimala fria distansen fr kodaren r den minsta av dfri,parallell och dfri,icke-parallell. I vrt fall utgrs den parallella vergngen av de sekvenspar som r nrmast varandra och vi kan fljaktligen skriva dfri,kodad = 2.

Prestandafrbttringen genom det kodade systemet relativt det okodade anges genom den asymptotiska kodningsfrstrkningen . Om Sokodad r den normerade mottagna medelenergin fr det okodade fallet och Skodad motsvarande fr det kodade fallet s denieras den asymptotiska kodningsfrstrkningen: Sokodad
2 dfri,okodad Skodad 2 dfri,kodad

(8.5)

Detta uttryck kan omformas s att det bttre illustrerar inverkan p kodningsfrstrkningen fr den utkade energi som behvs fr den expanderade signaluppsttningen och den kade fria distansen som uppstr tack vare den infrda redundansen. Den utkade energin representeras av en signaluppsttningsexpansionsfaktor c (c = constellation) medan den utkade minimala fria distansen representeras av en utkad distansfaktor D.
2 Sokodad dfri,kodad = . = c D 2 Skodad dfri,okodad
Studentlitteratur

(8.6)

233

8 Kombinerad kodning och modulation (Trellis Coded Modulation)

Eftersom den asymptotiska kodningsfrstrkningen r en funktion av


2 dfri fr de kodade och okodade fallen r det ofta mer praktiskt att 2 direkt arbeta med dfri . I vrt exempel, okodad QPSK och kodad 8-PSK, har vi samma energi (normerad till 1), varfr vi fr:

2 dfri,kodad 2 dfri,okodad

2 = 2 = 2 ( 3 dB) . 22

(8.7)

Spaljns utseende - Figur 8.21 - avspeglar ngra heuristiska design2 regler vars ml r att maximera dfri. Ungerbeck har formulerat dessa regler p fljande stt:

8.4 Ungerbecks designregler


1. Signaler i samma, den lgsta partitionen, i trdet tillgnas parallella vergngar. 2. Signaler i nrmast fregende partition tillgnas vergngar som brjar och slutar i samma tillstnd. 3. Alla signaler anvnds lika ofta. Regel 1 maximerar distansen mellan signaler i parallellvergngar. Regel 2 maximerar distansen mellan icke-parallella vgar vid deras frsta och sista grenar, d.v.s. de punkter dr de avviker frn varandra och senare sammanstrlar.

Den asymptotiska kodningsfrstrkningen fr 8-PSK Ungerbeck-kodaren kan ytterligare kas genom att ka minnet och faltningskodarens takt enligt Figur 8.24. Eftersom det inte nns ngra parallella vergngar i detta exempel behver vi bara underska icke-parallella vgar fr att bestmma kodens minimala fria distans. I detta fall motsvarar paret
234
Studentlitteratur

8.4 Ungerbecks designregler

S0 S3 S6 S0 och S0 S0 S0 S0 de nrmast varandra belgna signalsekvenserna. Sekvenserna motsvaras av 6,7,6 och 0,0,0.
2 d fri,icke-parallell = 2 + 2sin 8 2

+ 2 4,58

d2 4,58 = Sokodad fri,kodad = 1 2,29 ( 3,6 dB) 2 1 2 Skodad dfri,okodad Den extra minnescellen i kodaren har kat kodningsfrstrkningen med c:a 0,6 dB. Emellertid r komplexitetskningen betydande vid vergng frn 1 -takts- till 2 -takts- faltningskodare 2 3
x2
2

x1

+ +

c2 c1 c0

00001111 00110011 01010101 01234567

Figur 8.24

Utkad asymptotisk kodningsfrstrkning genom utkat minne i faltningskodaren.


2

4
2

0
2sin 8

7 6

Figur 8.25
Studentlitteratur

Euklidiska avstnd mellan signaler i 8-PSK.


235

8 Kombinerad kodning och modulation (Trellis Coded Modulation) 11/1 10 01 /5 /3


/7

7351 S7 6240 S6 3715 S5 2604 S4 5173 S3 4062 S2

S7 S6 S5 S4 S3 S2 S6

0426 S0

11 /

1537 S1

00

/2 10 4 01/ 00/0

S1

S0

S0

S0

Figur 8.26

Spaljdiagram fr 8-PSK Ungerbeck-kodare med utkat minne.


Minneselement 1 0 1 0 1 0 1 0 1 Minneselement 2 0 0 1 1 0 0 1 1 Minneselement 3 0 0 0 0 1 1 1 1

Tillstnd S0 S1 S2 S3 S4 S5 S6 S7

Tillstndstabell fr faltningskodare i Figur 8.24.


236
Studentlitteratur

8.5 Problem. Trellis Coded Modulation

Sammanfattning
Historiskt r modulation och kodning tv separata delar i ett system. Ungerbeck publicerade 1976 en artikel1 dr han freslog en metod att integrera modulation och kodning kallad Trellis Coded Modulation (TCM). Med TCM kan kodningsfrstrkning stadkommas utan vare sig bandbreddsexpansion eller uteffekthjning. TCM bygger p tre principer: 1.Expanderade signaluppsttningar. 2.Signaluppsttningspartitionering. 3.Val av partitioner med faltningskodare.

Litteraturhnvisningar
E.Biglieri, D.Divsalar, P.J.McLane, M.K.Simon, Introduction to Trellis-Coded Modulation with Applications, New York: Macmillan Publishing Company, 1991.

8.5 Problem. Trellis Coded Modulation


Problem 8.1
Konstruera ett partitionstrd fr signaluppsttningen i Figur 8.27 och bestm minimidistansen fr varje niv i partitionstrdet. och J.Csajka, On Improving Data LinkPerformance by Increasing the Channel Alphabet and Introducing Sequence Coding, 1976 International Symposium on Information Theory, Ronneby, Sverige. Juni 1976.
Studentlitteratur 1 G.Ungerbeck

237

8 Kombinerad kodning och modulation (Trellis Coded Modulation)

2 1

Figur 8.27 Signaluppsttning till Problem 8.1.

Problem 8.2
Konstruera ett partitionstrd fr 16-kors-signaluppsttningen enligt Figur 8.28. P den slutliga nivn skall antalet signaler per signaluppsttning vara 2. Ange fr varje niv, fr.o.m. niv 0, minimiavstndet uttryckt i delar av .

Figur 8.28 Signaluppsttning till Problem 8.2.

Problem 8.3
Konstruera ett partitionstrd fr signaluppsttningen Figur 8.29 och visa med berkning minimidistansen med nrmevrde fr varje niv i partitionstrdet. I den slutliga partitionen skall det i varje signaluppsttning ing fyra signaler. Signalpunkterna benner sig p cirklar med radierna 1, 2, 3, 4, 5, 6, 7 och 8

238

Studentlitteratur

8.5 Problem. Trellis Coded Modulation


.

Figur 8.29 Signaluppsttning till Problem 8.3.

Problem 8.4
En signaluppsttning med 8 olika signaler bestr av 4 signaler med koordinaterna (1,0), (0,1), ( 1,0) och ( 1,1) samt 4 signaler med koordinaterna

k 1 , 1 , k 1 , 1 , k 1 , 1 och k 1 , 1 i ett signalvektordia2 2 2 2 2 2 2 2


gram. Bestm k s att medelsignalenergin blir 4/3. Sannolikheten fr var och en av de fyra frsta signalerna r lika stor. Sannolikheten fr var och en av de fyra senare signalerna r bara hlften av var och en av de frsta. Bestm minimiavstndet i den hgsta partitionen med detta k-vrde. Svar:

k= 2
2 = 5

Studentlitteratur

239

8 Kombinerad kodning och modulation (Trellis Coded Modulation)

Problem 8.5
Konstruera ett partitionstrd fr signaluppsttningen i Figur 8.30 och bestm minimidistansen exakt och med nrmevrde fr varje niv i partitionstrdet. I den slutliga partitionen skall det i varje signaluppsttning ing fyra signaler.

Figur 8.30 Signaluppsttning till Problem 8.5.

Problem 8.6
Konstruera ett partitionstrd fr 4 4 -kvadraters-signaluppsttningen i Figur 8.31. P den slutliga nivn skall antalet signaler per signaluppsttning vara 2. Ange fr varje niv, fr.o.m. niv 0, minimiavstndet om koordinaterna fr signalpunkterna r (1,0), (0, 1), ( 1,0), (0,1), (3,0), (2, 1), (1, 2), (0, 3), ( 1, 2), ( 2, 1), ( 3,0), ( 2,1), ( 1,2), (0,3), (1,2), (2,1).

240

Studentlitteratur

8.5 Problem. Trellis Coded Modulation

Figur 8.31 Signaluppsttning till Problem 8.6. Svar: dmin =

2 2

dmin = 2 dmin = 2 dmin = 4

Problem 8.7
Signaluppsttningen enligt Figur 8.32 r tagen frn ett hexagonalt gitter och placerad s att signalenergin minimeras. Berkna den genomsnittliga signalenergin under frutsttning att alla signaler r lika sannolika.

Studentlitteratur

241

8 Kombinerad kodning och modulation (Trellis Coded Modulation)

0,5

1 1

Figur 8.32 . Signaluppsttning till Problem 8.7. Svar: Medelenergin r 1,09

242

Studentlitteratur

9 Turbokoder

9.1 Introduktion
Att i en och samma kodare stadkomma en bra avvgning mellan koden (mjukvaran), som skall stadkomma hg kodningsfrstrkning, och kodaren (hrdvaran), som skall vara s enkel som mjligt, r inte ltt eftersom dessa egenskaper i hg grad r motstridiga. En metod fr att komma runt detta problem freslogs 1966 av Forney. Metoden gr ut p att kombinera tv eller era relativt enkla kodare eller komponentkodare i en sammanlnkad kod (eng. concatenated code). Den sammanlnkade koden har en felkorrigeringsfrmga motsvarande den hos mycket lngre koder medan avkodningsproceduren kan gras relativt okomplicerad. Fr effektbegrnsade tillmpningar, exempelvis i rymdsonder, anvnds seriesammanlnkade koder som implementeras med en yttre Reed-Solomon-kodare (frst kodad, sist avkodad) fljd av en inre faltningskodare (sist kodad, frst avkodad). Turbokodning1 bygger p en liknande id och turbokodare konstrueras genom att tv (eller era) parallellanslutna komponentkodare fr koda olika interleavade2 versioner av samma informationssekvens, d.v.s. ett diversitetsfrfarande. Traditionellt lmnar en avkodare sym1

Turbokoder introducerades 1993 i en artikel av C. Berrou, A. Glavieux och P. Thitmajshima, Near Shannon Limit Error-Correcting Coding and Decoding: Turbo Codes, IEEE Proc. ICC 93, Geneva, Switzerland, May 1993, pp. 1064-1070. Frfattarna rapporterar dr att fr en given bitfelssannolikhet och kodtakt erforderligt Eb/N0 endast obetydligt verskrider (< 1 dB) Shannons grns. 2 Ls om interleaving och diversitet i L. Ahlin, C. Frank, J. Zander: Mobil radiokommunikation, Studentlitteratur, 2001.
Studentlitteratur

243

9 Turbokoder

boler via hrda beslut (eng. hard decisions) men fr att en turbokodare skall fungera riktigt skall avkodningsalgoritmen snarare utbyta mjuka n hrda beslut mellan de tv (eller era) avkodarna. Fr ett avkodarsystem bestende av tv avkodare snds mjuka beslut (eng. soft decisions) frn den ena avkodaren till den andra som i sin tur snder tillbaka sina mjuka beslut till den frsta. Fr att f bttre beslut, d.v.s. lgre bitfelshalt, itereras proceduren era gnger. De mjuka avkodningsbesluten grundar sig vid varje tillflle p det, bland era avkodningsalternativ, troligaste. En turbokodare konstrueras genom att tv rekursiva systematiska faltningskodare tskilda av en pseudoslumpinterleaver sammanlnkas. Eftersom bda kodarna arbetar p samma bitmngd, i motsats till fallet d den ena kodaren bearbetar utdata frn den andra, kallas kodarstrukturen parallell. Av samma anledning kallas drfr turbokodare ven parallellt sammanlnkade faltningskodare. Figur 9.1 visar den 1/2-turbokodare som Berrou, Glavieux och Thitmajshima presenterade i den artikel som introducerade turbokoden. Observera att switchen gr att koden blir punkterad till en 1/2-kod. Utan switch hade det blivit en 1/3-kod.
dk dk

+
frdrjningskrets

C1 rekursiv systematisk kod

interleaver

v1k v2k

vk

+
C2 rekursiv systematisk kod

Figur 9.1
244

Turbokodare uppbyggd med tv rekursiva systematiska faltningskodare med parallell sammanlnkning.


Studentlitteratur

9.2 Likelihood-begreppet

Den iterativa avkodningsproceduren bygger vid varje iteration p att berkna det troligast snda meddelandet och fr en analys av turbokodarens funktionsstt fljer i nsta avsnitt en beskrivning av likelihoodbegreppet och dess tillmpning i samband med iterativ avkodning.

9.2 Likelihood-begreppet
Likelihood-begreppet anvnds vid statistisk hypotesprvning och bygger p Bayes teorem om frhllandet mellan de betingade och simultana sannolikheterna fr tv hndelser A och B enligt P(A|B)P(B) = P(B|A)P(A) = P(A,B). (9.1)

Med Bayes teorem denieras nu aposteriorisannolikheten (APP = A Posteriori Probability) enligt P(A|B) = P(B|A)P(A) , P(B) (9.2)

d.v.s. vi kan deniera APP fr en hndelse A, givet hndelsen B, som en funktion av den betingade sannolikheten P(B|A) och apriorisannolikheterna P(A) och P(B). I kommunikationssammanhang med additivit vitt gaussiskt brus i kanalen (AVGB) r det lmpligt att uttrycka APP som en funktion av en kontinuerlig stokastisk variabel X, som kan anta vrdet x (snd signal + brus = mottagen signal), p fljande stt: P(d = i|x) = och p(x) = p(x|d = i)P(d = i) p(x) (9.3)

i=1

p(x|d = i)P(d = i)

(9.4)

d = i r en av M symboler.
Studentlitteratur

245

9 Turbokoder

p(x|d = i) r den betingade tthetsfunktionen fr den mottagna signalen x, givet att d = i r snd. P(d = i) r sannolikheten att signalen d = i snts, apriorisannolikheten. p(x) r tthetsfunktionen fr en mottagen signal x och eftersom p(x) r lika stor fr alla signaler kan p(x) betraktas som en skalfaktor. Lt ett binrt verfringssystem (M = 2) med de tv snda symbolerna 0 och 1 elektroniskt representeras av spnningarna 1 V och + 1 V. Spnningarna tillgnas variabeln d, som allts kan anta vrdena d = 1 och d = + 1. De betingade tthetsfunktionerna p(x|d = 1) och p(x|d = + 1), eller likelihoodfunktionerna fr en kanal med additivt vitt gaussiskt brus, visas i Figur 9.2, dr en godtycklig detekteringsniv, xk, r inlagd. Den vertikala linjen genom xk skr de tv likelihoodkurvorna i 1 och 2. En vanlig hrd beslutsregel kallad maximum likelihood r att vlja den symbol d = 1 eller d = + 1 som hr till det strsta av de tv interceptvrdena 1 och 2. Detta r liktydigt med att besluta dk = + 1 om xk ligger till hger om beslutslinjen 0 annars dk = 1. En liknande beslutsregel, maximum aposteriori (MAP) eller minimalfelregeln uttrycks med hjlp av apriorisannolikheterna p fljande stt: H1 P(d = + 1|x) > P(d = 1|x) . < H2 (9.5)

Uttrycket utsger att man skall vlja hypotes H1, d.v.s. d = + 1 om APP P(d = + 1|x) r strre n APP P(d = 1|x), annars vlj hypotes H2, d.v.s. d = 1. Med Bayes teorem enligt (9.3) kan MAP-regeln alternativt skrivas H1 p(x|d = + 1)P(d = + 1) > p(x|d = 1)P(d = 1) . < H2 (9.6)

246

Studentlitteratur

9.2 Likelihood-begreppet

p(x|d = 1)

p(x|d = + 1)

1 2
1

x xk
+1

Figur 9.2 Likelihoodfunktioner. Uttrycket (9.6) anges ofta i form av ett frhllande kallat likelihoodfrhllandetestet (likelihood ratio test)

p(x|d = + 1) H1 P(d = 1) > p(x|d = 1) < P(d = + 1) H2


alternativt

(9.7)

p(x|d = + 1)P(d = + 1) H1 . > 1 p(x|d = 1)P(d = 1) < H2

(9.8)

9.2.1 Log-likelihood-frhllandet
P samma stt som vid rkningar p lnkbudget, dr de enskilda stegens inverkan anges i dB, frenklas likelihoodrkningarna om man logaritmerar likelihoodfunktionen. Den p s stt uppkomna metriken kallas loglikelihood-frhllandet (i fortsttningen betecknat LLR = Log-Likelihood Ratio). LLR r ett reellt tal och representerar vrdet ut frn en beslutskrets, som fr sin insignal frn en detektorutgng. LLR betecknas L(d|x) och denieras enligt

L(d|x) = log
Studentlitteratur

P(d = + 1|x) p(x|d = + 1)P(d = + 1) = = log P(d = 1|x) p(x|d = 1)P(d = 1)


247

9 Turbokoder

= log

p(x|d = + 1) P(d = + 1) + log = L(x|d) + L(d) p(x|d = 1) P(d = 1)

(9.9)

dr L(x|d) r LLR fr den mottagna signalen, givet att d = + 1 eller d = 1 har snts medan L(d) r apriori LLR fr om d = + 1 eller d = 1 har snts (observera att L(d) = 0 om P(d = + 1) = P(d = 1) = = 1 ).
2

LLR L(d|x) enligt (9.9) kan uppfattas som ett kvalitetsmtt p den preliminra uppskattningen av vilket d som snts, + 1 eller 1, givet att x har mottagits, och betecknas fr enkelhets skull L(d). L(x|d), LLR fr den mottagna signalen, givet att d = + 1 eller d = 1 har snts, r ett resultat av det uppmtta vrdet, x, p detektorutgngen och utgr ett mtt p kanalens inverkan och betecknas Lc(x) (c = channel). Med de infrda beteckningarna vergr uttrycket (9.9) till L(d) = Lc(x) + L(d). (9.10)

De hittills presenterade uttrycken ger hrda beslut (hard decisions) fattade med hjlp av mottagardetektorn. Mjuka beslut (soft decisions), som ger ett bttre beslutsunderlag fr uppskattningen av vilken symbol som snts, kan gras med hjlp av en efterfljande avkodare. Fr en kodare som lmnar en systematisk kod har Berrou, Glavieux och Thitmajshima visat att LLR ut frn avkodaren, L(d) , (soft output) r L(d) = L(d) + Le(d) (9.11)

dr Le(d) utgr extra (extrinsic) kunskap utvunnen genom avkodningsproceduren. Utsekvensen frn en systematisk kodare bestr av tv delar, en som representerar dataordet och en som bestr av paritetsbitarna. Uttrycket (9.11) delar upp LLR ut frn avkodaren i en del, L(d), som baserar sig p mtning p detektorutgngen av dataordet och en del, Le(d) , som representerar den extra kunskap som avkodaren utvunnit

248

Studentlitteratur

9.2 Likelihood-begreppet

med hjlp av paritetsbitarna. Med hjlp av uttrycken (9.10) och (9.11) kan LLR ut frn avkodaren drfr skrivas. L(d) = Lc(x) + L(d) + Le(d) (9.12)

Det mjuka beslutet L(d) enligt uttrycket (9.12) r ett reellt tal och tecknet p L(d) motsvarar det hrda beslutet, d.v.s. om L(d) > 0, besluta att d = + 1 snts och om L(d) < 0, besluta att d = 1 snts, medan absolutbeloppet av L(d) anger det fattade beslutets tillfrlitlighet.

9.2.2 Turboavkodning (iterativ avkodning)


Vid den frsta iterationen av soft-in/soft-ut-avkodaren, se Figur 9.3, antar vi att infrdelningen p sndarsidan r likformig, d.v.s. P(d = + 1) = P(d = 1) = ori-LLR L(d) = 0.
1 2

, vilket gr att det frsta apri-

Vrdet p LLR Lc(x) frn kanalen bildas enligt Lc(x) = log p(x|d = + 1) = som fr x = xk - se Fig. 9.2 = log 1 2 p(x|d = 1)
terkoppling fr nsta iteration apriorivrden in L(d) detektor-aposteriori-LLR soft-insoft-utavkodare extravrden ut L e(d) utgngs-LLR

L (d) = Lc(x) + L(d)

L (d) = L(d) + Le(d)

L c(x ) kanalvrden in

L (d) aposteriorivrden ut

Figur 9.3 Soft-in/soft-ut-avkodare fr systematisk kod.


Studentlitteratur

249

9 Turbokoder

med beteckningar enligt (9.9), (9.10) och Figur 9.2. Ut-LLR L(d) frn avkodaren, se Figur 9.3, bestr av de tv delarna L(d) = LLR frn detektorn, och Le(d) = extra LLR utvunnen via avkodningen. Den extra LLR-signalen terkopplas till avkodaringngen fr att frbttra apriorivrdet L(d) infr nsta iteration. Fr att frst avkodningsproceduren anvnder vi en tvdimensionell produktkod dr radkoderna och kolumnkoderna utgr en sammanlnkad kod, se Figur 9.4. Data r uppdelade p k1 rader och k2 kolumner. Var och en av de k1 raderna innehller en kodvektor med k2 databitar och n2 k2 paritetsbitar och p samma stt innehller var och en av de k2 kolumnerna en kodvektor med k1 databitar och n1 k1 paritetsbitar. I Figur 9.4 betecknar d data, ph och pv paritetsbitar i horisontalled (rader) respektive vertikalled (kolumner). Blocken Leh och Lev representerar de LLR extravrden som erhlls genom de horisontella respektive vertikala avkodningarna. Kodningen bestr av tv kodningssteg, ett horisontellt och ett vertikalt. Avkodningen tillgr p fljande stt:
k2 kolumner n2 k2 kolumner

k1 rader

ph

Leh

n1 k1 rader

pv

extra LLR horisontal

Lev
extra LLR vertikal

Figur 9.4 Tvdimensionell produktkod.


250
Studentlitteratur

9.2 Likelihood-begreppet

1. Stt apriori-LLR L(d) = 0. 2. Avkoda horisontellt och extra LLR, se (9.12), utvinns enligt L eh(d) = L(d) Lc(x) L(d). 3. Stt L(d) = L eh(d) . 4. Avkoda vertikalt och extra LLR, se (9.12), utvinns enligt L v h(d) = L(d) Lc(x) L(d). 5. Stt L(d) = L v h(d) . 6. Om antalet iterationer r tillrckligt fr att kunna gra ett tillfrlitligt beslut g till punkt 7 annars, g till punkt 2. 7. UtgngsLLR r L(d) = Lc(x) + L eh(d) + L v h(d) . (9.13)

9.2.3 Exempel med tv-dimensionell enkelparitets produktkod


Paritetsbitarna fr en kodare med jmn paritet berknas med modulo-2- addition (betecknad ) enligt di dj = pij som kan omformas till di = dj pij eller dj = di pij (9.16) (9.15) (9.14)

och i vrt exempel bestr de snda data och paritetsbitarna av sekvensen d1 d2 d3 d4 p12 p34 p13 p24, se Tabell 9.1 . P mottagaringngen representeras de mottagna symbolerna av sekvensen x1 x2 x3 x4 x12 x34 x13 x24 dr xi = di + n fr varje mottagen databit medan
Studentlitteratur

(9.17)

251

9 Turbokoder

xij = pij + n

(9.18)

fr varje mottagen paritetsbit och n r i.i.d. (independent and identically distributed) brus. Kalla fr enkelhets skull den mottagna sekvensen fr {xk} med ett enkelt indedx k, som kan uppfattas som ett tidsindex. Med additivt vitt gaussiskt brus med medelvrdet noll och standardavvikelsen och med uttrycket (9.9) blir LLR fr en mottagen signal xk Lc(xk) = ln p(xk|dk = + 1) = p(xk|dk = 1)

1 exp 1 xk 1 2 2 = ln 2 = 1 exp 1 x k + 1 2 2 2 x 1 2 1 xk + 1 2 2 + = xk = 1 k 2 2 2

(9.19)

dr naturliga logaritmer anvnts fr att f ett enkelt uttryck. Fr att ytterligare frenkla uttycket stter vi 2 = 1 s att vi fr Lc(xk) = 2xk. (9.20)

Med datasekvensen d1 d2 d3 d4 = 1 0 0 1 enligt Tabell 9.1 blir paritetssekvensen med jmn paritet p12 p34 p13 p24 = 1 1 1 1, d.v.s. snd sekvens r {di,pij} = 1 0 0 1 1 1 1 1 med motsvarande spnningar +1 1 1 +1 +1 +1 +1 +1. Vi antar vidare att bruset omvandlar den snda sekvensen {di,pij} till den mottagna {xk} = 0,75; 0,05; 0,10; 0,15; 1,25; 1,00; 3,00; 0,50 vilket med (9.20) ger LLR fr Lc(xk)
252
Studentlitteratur

9.2 Likelihood-begreppet

d1 = 1 d3 = 0 p13 = 1

d2 = 0 d4 = 1 p24 = 1

p12 = 1 p34 = 1

Tabell 9.1 Utgngsbitar frn en tvdimensionell enkelparitets produktkod.


Lc(x1) = 1,5 Lc(x3) = 0,2 Lc(x2) = 0,1 Lc(x12) = 2,5 Lc(x4) = 0,3 Lc(x34) = 2,0

Lc(x13) = 6,0 Lc(x24) = 1,0

Tabell 9.2 LLR Lc(xk) till avkodaringngen. {Lc(xk)} = 1,5; 0,1; 0,2; 0,3; 2,5; 2,0; 6,0; 1,0, se Tabell 9.2 , Lgg mrke till att hrd avkodning i detta fall skulle resultera i tv fel eftersom d2 och d3 bda felaktigt skulle tolkas som binra ettor.

9.2.4 Rknelagar fr loglikelihoodfunktioner3


Summan av tv LLR (loglikelihood-frhllanden) med statistiskt oberoende d:n denieras p fljande stt L(d1) + L(d2)
L(d ) L(d ) L(d1 d2) = ln e 1 + e 2 1 + eL(d1) + L(d2)

(9.21)

I (9.21) anvnds de tre additionsoperatorerna + som r symbolen fr vanlig addition som r symbolen fr modulo-2 addition + som r symbolen fr loglikelihood-addition.
detaljer, se J. Hagenauer, Iterative Decoding of Binary Block and Convolutional Codes, IEEE Transactions of Information Theory, vol. 42, no. 2, Mar. 1996, pp. 429-445. 4 se 9.5 Appendix fr (9.21).
Studentlitteratur 3 fr

253

9 Turbokoder

Fr ett numeriskt exempel lngre fram r fljande approximation av (9.21) anvndbar L(d1) + L(d2) ( 1) sign L(d1) sign L(d2) min L(d1), L(d2)

(9.22)

Fljande intressanta specialfall, d en av de i loglikelihood-additionen ingende LLR r mycket stor eller mycket liten, ger med (9.21) och (9.22) resultaten L(d) + = L(d) L(d) + 0 = 0 (9.23) (9.24)

9.2.5 Berkning av LLR extravrden


Fr produktkoden enligt Tabell 9.1 och med (9.12) kan vi uttrycka LLR ut frn avkodaren fr den mottagna signalen d1 p fljande stt L(d1) = Lc(x1) + L(d1) + Lc(x2) + L(d2) + Lc(x12) (9.25)

dr Lc(x2) + L(d2) + Lc(x12) motsvarar extra-LLR erhllen genom kodningsprocessen eller mer exakt genom den efter kanalen uppmtta signalen x2, som motsvarar databiten d2 och dess apriorisannolikhet samt signalen som motsvarar paritetsbiten p12. Generellt r den mjuka uppskattningen L(di) fr den mottagna signalen motsvarande den snda di L(di) = Lc(xi) + L(di) + Lc(xj) + L(dj) + Lc(xij) (9.26)

dr Lc(xi), Lc(xj) och Lc(xij) r de uppmtta LLR-vrdena efter passage av kanalen hos de mottagna signalerna svarande mot motsvarande snda, di, dj och pij. L(di) och L(dj) utgr LLR av apriorisannolikheterna fr di och dj medan Lc(xj) + L(dj) + Lc(xij) genom kodningen bidrar med extra-LLR.

254

Studentlitteratur

9.2 Likelihood-begreppet

Betrakta nu (9.25), (9.26), Tabell 9.1 och Tabell 9.2 : Utgngs- vrdet L(d1) fs genom mtning av LLR-vrdet frn detektorn av den mottagna signalen svarande mot den snda databiten d1 och det extra LLR som utvinns ur det faktum att att databiten d2 och paritetsbiten p12 ocks ger kunskap om databiten d1 - se (9.14), (9.15) och (9.16). Fr exemplet enligt Tabell 9.2 grs nu de horisontella och vertikala berkningarna, L eh(d) och L ev(d) , p fljande stt Leh(d1) = Lc(x2) + L(d2) + Lc(x12) L ev(d1) = Lc(x3) + L(d3) + Lc(x13) Leh(d2) = Lc(x1) + L(d1) + Lc(x12) L ev(d2) = Lc(x4) + L(d4) + Lc(x24) Leh(d3) = Lc(x4) + L(d4) + Lc(x34) L ev(d3) = Lc(x1) + L(d1) + Lc(x13) Leh(d4) = Lc(x3) + L(d3) + Lc(x34) L ev(d4) = Lc(x2) + L(d2) + Lc(x24) (9.27) (9.28) (9.29) (9.30) (9.31) (9.32) (9.33) (9.34)

De olika vrdena p Lc(x) i Tabell 9.2 frs nu in i de horisontella ekvationerna L eh(d) : (9.27), (9.29), (9.31) och (9.33) medan initialvrdena p L(d) stts till noll varvid vi fr nya vrden p L(d): Leh(d1) = (0,1 + 0) + 2,5 = 0,1 = nytt L(d1) Leh(d2) = (1,5 + 0) + 2,5 = 1,5 = nytt L(d2) Leh(d3) = (0,3 + 0) + 2,0 = 0,3 = nytt L(d3) Leh(d4) = (0,2 + 0) + 2,0 = 0,2 = nytt L(d4)
Studentlitteratur

(9.35) (9.36) (9.37) (9.38)


255

9 Turbokoder

I ekvationerna (9.35) till (9.38) har approximationerna i (9.22) anvnts. Nsta steg blir att utfra de vertikala berkningarna med anvndning av ekvationerna fr L ev(d) : (9.28), (9.30), (9.32) och (9.34). Nu kan vrdena p L(d) frnas genom att anvnda de nya L(d)-vrdena som utvunnits vid de frsta horisontella berkningarna i (9.35) till och med (9.38): L ev(d1) = (0,2 0,3) + 6,0 = 0,1 = nytt L(d1) L ev(d2) = (0,3 0,2) + 1,0 = 0,1 = nytt L(d2) L ev(d3) = (1,5 0,1) + 6,0 = 1,4 = nytt L(d3) L ev(d4) = (0,1 1,5) + 1,0 = 1,0 = nytt L(d4) . (9.39) (9.40) (9.41) (9.42)

De nu gjorda berkningarna, som ger utgngsvrdena fr den frsta iterationen, motsvarar ett horisontellt och ett vertikalt avkodningssteg och r sammanfattade i Tabell 9.3. Varje avkodningssteg frbttrar de ursprungliga LLR-vrdena fr de efter kanalen uppmtta signalerna. Detta framgr ocks genom att man med hjlp av ekvation (9.13) berknar LLR-vrdena fr bitarna frn avkodarutgngen. De ursprungliga LLR-vrdena plus de horisontella extra LLR-vrdena, men nnu utan inverkan av de vertikala extra termerna, ger de frbttringar i uppskattningen som framgr av Tabell 9.4 a. Med inverkan av ven de vertikala termerna fs de vrden som visas i Tabell 9.4 b.
1,5 0,2 a 0,1 0,3 0,1 1,5 0,3 0,2 b 0,1 0,1 1,4 c 1,0

Tabell 9.3a. Ursprungliga Lc(xk)-mtningar, b. L eh(d) efter den frsta horisontella avkodningen, c. L ev(d) efter den frsta vertikala avkodningen.
256
Studentlitteratur

9.2 Likelihood-begreppet

1,4 1,4 0,1 a 0,1

1,5 1,5 1,5 b 1,1

Tabell 9.4a. Med hjlp av L eh(d) frbttrade LLR-vrden, b. Med hjlp av L eh(d) + Lev(d) frbttrade LLR-vrden. Det framgr att man med endast den horisontella paritetsbiten fr en riktig hrd avkodning ut frn avkodaren men dock med mycket lg tillfrlitlighet vad betrffar databitarna d3 och d4. Tillfrlitligheten i avkodarens LLR-vrden kas d ven LLR-vrden frn de extra vertikala LLR-vrdena tillfrs. Fr att se om ytterligare en horisontell och vertikal avkodningsiteration ger ngon signikant ndring av resultaten anvnder vi oss nnu en gng av ekvationerna (9.27) till och med (9.34). Vi brjar med den andra horisontella berkningen av L eh(d) och vi anvnder de nya L(d)-vrdena som bestmdes vid de frsta vertikala berkningarna i (9.39) till (9.42): Leh(d1) = (0,1 0,1) + 2,5 = 0 = nytt L(d1) Leh(d2) = (1,5 + 0,1) + 2,5 = 1,6 = nytt L(d2) Leh(d3) = (0,3 + 1,0) + 2,0 = 1,3 = nytt L(d3) Leh(d4) = (0,2 1,4) + 2,0 = 1,2 = nytt L(d4) . (9.43) (9.44) (9.45) (9.46)

Vi fortstter sedan med den andra vertikala berkningen av L ev(d) med anvndande av de senaste nya L(d)-vrdena erhllna genom ekvationerna (9.43) till och med (9.46): L ev(d1) = (0,2 1,3) + 6,0 = 1,1 = nytt L(d1) L ev(d2) = (0,3 + 1,2) + 1,0 = 1,0 = nytt L(d2) L ev(d3) = (1,5 + 0) + 6,0 = 1,5 = nytt L(d3)
Studentlitteratur

(9.47) (9.48) (9.49)


257

9 Turbokoder

1,5 0,2 a

0,1 0,3

0 1,6 1,3 b 1,2

1,1 1,0 1,5 c 1,0

2,6 2,5 2,6 d 2,5

Tabell 9.5a. Ursprungliga Lc(x)-mtningar, b. L eh(d) efter den andra horisontella avkodningen, c. L ev(d) efter den andra vertikala avkodningen, d. Resultatet L(d) = Lc(x) + Leh(d) + Lev(d) efter den andra iterationen.

L ev(d4) = (0,1 1,6) + 1,0 = 1,0 = nytt L(d4)

(9.50)

Resultatet av den slutliga avkodningen efter den andra fullstndiga iterationen visas i Tabell 9.3d dr det framgr att en mindre frbttring uppntts jmfrt med motsvarande resultat efter bara en iteration, se Tabell 9.4 b.

9.3 Komponentkodare fr turbokodning


De i avsnitt 9.2 presenterade metoderna fr sammanlnkning, iteration och mjuka beslut anvnda p en produktkod kan tillmpas p turbokodaren enligt Figur 9.1 som r uppbyggd p fljande stt: En 1 -takts icke-systematisk faltningskod med generatorsekvenserna 2 g(0) = (1 1 1 1 1) och g(1) = (1 0 0 0 1) och spannet (constraint length) K = 5 enligt Figur 9.5 lmnar ett ndligt impulssekvenssvar (FIR = = Finite Impulse Response). Vid stora Eb/N0-vrden har sdana icke-systematiska kodare bttre prestanda n motsvarande (samma minnesstorlek) systematiska kodare medan det vid lga Eb/N0-vrden vanligen r tvrtom.
258
Studentlitteratur

9.3 Komponentkodare fr turbokodning

uk

+
Figur 9.5

vk

Icke-systematisk faltningskodare (NSC = NonSystematic convolutional Code).

Berrou, Glavieux och Thitmajshima har fr komponentkodarna i turbokodare freslagit systematiska terkopplade faltningskodare (RSC = Recursive Systematic convolutional Codes) som har ondligt impulssekvenssvar (IIR = Inifinite Impulse Response). RSC-kodare med hg kodtakt har bttre prestanda n de bsta NSC-kodarna och detta oberoende av nivn p Eb/N0-kvoten. En 1 -takts RSC-kodare, 2 se Figur 9.6 bildas av en NSC-kodare, se Figur 9.5, genom terkoppling medan en av de tv utgngarna (uk eller vk) stts lika med dk.
dk uk

+
Figur 9.6
Studentlitteratur

vk

Rekursiv systematisk faltningskodare (RSC = Recursive Systematic convolutional Code).


259

9 Turbokoder

Spaljstrukturen fr RSC-kodaren i Figur 9.6 r densamma som fr NSC-kodaren i Figur 9.5 och deras dfri r lika stora. Dremot r deras utsekvenser uk och vk olika fr likadana insekvenser dk. Skillnaden bestr i att positionerna fr ettorna i utsekvensen r olika medan viktdistributionen, d.v.s. antalet ettor, r densamma. Turbokodaren enligt Figur 9.1 bestr av tv sdana RSC-kodare sammanlnkade via en slumpinterleaver.

9.3.1 terkopplad turboavkodare


Viterbis avkodningsmetod r optimal i betydelsen att minimera sannolikheten fr sekvensfel. Dremot kan den inte lmna ut aposteriorisannolikheten (APP = A Posteriori Probability) fr varje avkodad bit. Fr detta ndaml anvnds i stllet en algoritm av Bahl5 som modierats av Berrou6 fr anvndning vid avkodning av RSC-koder. APP fr en avkodad databit, dk, kan bestmmas med hjlp av den
i simultana sannolikheten k(m) som denieras enligt i N k(m) = P dk = 1, Sk = m |R1

(9.51)

N dr Sk r tillstndet vid tidpunkten k och R1 r en mottagen sekvens som har lngden N (frn k = 1 till k = N).

APP fr en avkodad databit, dk (dk = 0 eller dk = 1), denieras enligt


N i P dk = i |R1 = k(m), i = 0,1 m

(9.52)

LLR-funktionen denieras nu som logaritmen fr kvoten mellan APP-vrdena fr dk = 0 och dk = 1 p fljande stt:
5

L.R. Bahl, J. Cocke, P. Jelinek och J. Raviv, Optimal Decoding of Linear Codes for Minimizing Symbol Error Rate, IEEE Transactions of Information Theory, vol. IT-20, March 1974, pp. 284-87. 6 se fotnot 1.

260

Studentlitteratur

9.3 Komponentkodare fr turbokodning


1 k (m) m 0 k (m) m

L d k = log

(9.53)

Avkodaren fattar ett beslut genom att jmfra L d k med ett trskelvrde enligt dk = 1 om L d k > 0 dk = 0 om L d k < 0 (9.54)

Fr en systematisk kod kan L d k fr varje avkodad databit, d k , beskrivas som en summa av LLR fr d k ut frn detektorn och fr de vriga LLR som genererats av avkodaren (extravrden) - se uttrycken (9.11) och (9.12). Betrakta detekteringen av en datasekvens, strd av brus, som kommer frn kodaren i Figur 9.6. Avkodaren visas i Figur 9.7
terkopplingsslinga deinterleaving

zk xk

L1 d k
avkodare 1, 16 tillstnd interleaving

L1 dn

avkodare 2, 16 tillstnd

Le 2 d k

deinter- L 2 d k leaving

y1k yk

y2k

demultiplexor

dk avkodad utsekvens

Figur 9.7 Turboavkodare med terkoppling.


Studentlitteratur

261

9 Turbokoder

Fr en diskret minnesls gaussisk kanal genom vilken snds signaler med binr modulation, utgrs insignalerna p avkodaringngen av ett par, Rk, stokastiska variabler, xk och yk. Omvandlingen frn bit (dk och vk kan vara 0 eller 1) till bipolr form (xk och yk kan vara 1 eller + 1) anges p fljande stt: xk = (2dk 1) + ik yk = (2vk 1) + qk varians 2. Den redundanta informationen, yk, demultiplexas och snds till avkodare 1 som y1k d vk = v1k och till avkodare 2 som y2k d vk = v2k - se Figur 9.7. Nr den redundanta informationen frn ngon av kodarna C1 eller C2 - se Figur 9.1 - inte snds, stts motsvarande avkodaringng till noll. Lgg mrke till att interleavern efter avkodare 1 har en struktur som r likadan som den mellan de tv kodarna, C1 och C2, i sndardelen. Detta beror p att informationen som behandlas av avkodare 1 r den icke-interleavade utsignalen frn C1 (frvanskad av brus). Omvnt r informationen som behandlas av avkodare 2 den brusfrvanskade utsignalen frn C2, vars ingngssignal r densamma som pfrs C1:s ingng, men permuterad av interleavern. Avkodare 2 anvnder sig av utsignalen frn avkodare 1 frutsatt att data i denna utgngssignal r ordnad i samma selvens som data i ingngssignalen till C2. (9.55) (9.56)

dr ik och qk r tv oberoende stokastiska (brus)variabler med samma

9.3.2 Avkodning med terkoppling


Uttrycket (9.12) fr LLR fr utsignalen vid tidpunkten k nr apriori LLR L(dk) r satt till noll och de tv mjliga ingngsdatabitarna r lika sannolika kan skrivas:

262

Studentlitteratur

9.3 Komponentkodare fr turbokodning

L d k = Lc(xk) + Le d k = log

p(xk|dk = 1) + Le d k p(xk|dk = 0)

(9.57)

dr L d k r utgngssignalens mjuka beslut och Lc(xk) r LLR av kanalmtningen hrrrande frn kvoten mellan likelihoodfunktionerna p(xk|dk = i) fr den diskreta minneslsa kanalen. Le d k = L d k xk = 0 r en funktion av den redundanta informationen och utgrs av den extrainformation som erhlls frn avkodaren och beror inte av ingngssignalen, xk, p avkodaren. Det brus som frvanskar Lc(xk) och Le d k skall idealt vara okorrelerat7. Om det nmligen r okorrelerat kan Le d k anvndas som en ny observation av dk av en annan avkodare i en iterativ process. Anvnd nu naturliga logaritmer i uttrycket (9.57) fr den gaussiska kanalen fr att beskriva kanalens LLR, Lc(xk), p samma stt som i uttrycket (9.19): Lc(xk) = ln p(xk|dk = + 1) = p(xk|dk = 1) x 1 2 1 xk + 1 = 1 k + 2 2

= 2 xk 2

(9.58)

Bda avkodarna 1 och 2 anvnder den modierade Bahl-algoritmen8. Om insignalerna L 1 d k och y2k in p avkodare 2 r oberoende, kan LLR L 2 d k ut frn avkodare 2 skrivas som: L 2 d k = f L 1 d k + Le2 d k dr (9.59)

7 Hur

pass liten korrelationsgraden mellan de tv brussignalerna r bestms av hur pass listigt interleavern r konstruerad. 8 se Fotnot 1.
Studentlitteratur

263

9 Turbokoder

L 1 d k = 2 x k + Le1 d k 2 och f[ ] anger ett funktionssamband.

(9.60)

Extrainformationen L e2 d k frn avkodare 2 r en funktion av sekvensen L 1 dn


n k. N Eftersom L 1 dn beror av observationen R1 , r

extrainformationen L e2 d k korrelerad med observationerna xk, y1k. nd, ju strre |n k| r, desto svagare korrelerad r L 1 dn med observationerna xk och yk. Fljaktligen r, p.g.a interleavingen mellan avkodare 1 och 2, extrainformationen L e2 d k endast svagt korrelerad med observationerna xk, yk och drfr kan dessa observationer anvndas fr att avkoda dk. zk = Le2 d k fungerar som en diversitetseffekt i en iterativ process. I allmnhet har L e2 d k samma tecken som dk. Drfr kan L e2 d k frbttra varje avkodad bits LLR.

9.3.3 Exempel p prestanda vid turboavkodning


Berrou, Glavieux och Thitmajshima har utfrt Monte-Carlo-simuleringar9 med en 1/2-takts, K = 5 kodare med generatorsekvenserna G1 = (11111) och G2 = (10001) och parallell sammanlnkning. Interleavern r uppbyggd som en kvadratisk 256 256 matris10 med blocklngden 65.536. Efter 18 iterationer r bitfelssannolikheten (BER = Bit Error Rate) mindre n 10 5 vid signalbrusfrhllandet Eb = 0,7 - se Figur 9.8. N0 dB

9 se Fotnot 1. 10 se mer om

Berrou-Glavieux-interleaver i t.ex. Chris Heegard, Stephen B. Wicker: Turbo Coding, Kluwer Academic Publishers, 1999.
Studentlitteratur

264

9.3 Komponentkodare fr turbokodning

10 1

oko
10 2 bitfelshalt (BER)

da t

10 3

10 4

10 5

18

10 6 0 1 2 0 = teoretisk grns

Eb N0

dB

Figur 9.8

Bitfelshalt vid avkodning efter 1, 2, 3, 6 och 18 iterationer fr en turbokod genererad med kodaren i Figur 9.6. Kodens relativa takt = 1/2; interleaving: 256 x 256.

Observera att nr man nrmar sig Shannon-grnsen, 1,6 dB, gr den erforderliga bandbredden mot ondligheten11 medan kapaciteten
11

se t.ex. C. Frank: Telekommunikation, Informationsverfring & verfringssystem, Studentlitteratur, 2004.

Studentlitteratur

265

9 Turbokoder

(kodtakten) gr mot noll. Av den anledningen anvnder mnga frfattare BER = 10 5 och Eb = 0 som Shannons grnsreferens fr N0 dB 1/2-taktskodare och fljaktligen nr denna kod Shannons grnsreferens s nr som p 0,7 dB12.

9.4 Historik turbokoder


Vid 1993 IEEE International Conference on Communication i Geneve, Schweiz pstod de tv franska elektronikprofessorerna Claude Berrou och Alain Glavieux att de hade uppfunnit en kodningsmetod som kunde ge praktiskt taget felfri kommuniktion vid datahastigheter och sndareffektverkningsgrader bortom vad de esta experter ansg vara mjligt. Berrou och Glavieux hvdade att datahastigheten kunde frdubblas med bibehllen effekt eller alternativt att datahastigheten kunde bibehllas med halverad effekt i frhllande till vad som gllt ditintills. F kommunikationsingenjrer trodde p deras resultat. Berrou och Glavieux som vara professorer vid Ecole Normale Suprieure des Telecommunications de Bretagne i Brest, Frankrike var oknda forskare. De mste ha gtt helt vilse i sina berkningar ansg man. Vad de pstod var s uppseendevckande ljligt att mnga forskare inte brydde sig om att lsa deras paper. Men, otroligt nog, visade det sig snart att deras pstenden stmde, nr andra forskare brjade gra om deras frsk. Berrou och Glavieux hade rtt och deras felkorrigeringsmetod, sedermera dpt till turbokod, har revolutionerat metoderna fr felkorrigerande kodning.

Se ven Sae-Young Chung, G. David Forney, Thomas J. Richardson, and Rdiger Urbanke: On the Design of Low-Density Parity-Check Codes within 0.0045 dB of the Shannon Limit, IEEE Communications Letters. Vol. 5 No. 2 February 2001.

12

266

Studentlitteratur

9.4 Historik turbokoder

Till att brja med anvndes turbokoder i satellitlnkar och vid deep-space rymdkommunikation. Numera trnger turbokodtekniken in i de esta kommunikationstillmpningar. Turbokoder har kommit i frontlinjen inom kommunikationsforskningen och hundratals forskningsgrupper arbetar med dem vid fretag och universitet ver hela vrlden. Ngra av de strre fretag som forskar om turbokoder r: France Telecom, NTTDoCoMo, Sony, Nec, Lucent, Samsung, Ericsson, Nokia, Motorola och Qualcom. Hrdvaru- och chiptillverkare: Broadcom, Conexant, Comtech AHA, STMicroelectronics, Turboconcept och iCoding. Nr Berrou erinrar sig de uppseendevckande dagarna i konventcentret i Geneve 1993 kan han se mnga delegater som frskte frst hans paper och efter sitt fredrag omringades Berrou och Glavieux av mnga som ville f mer frklaringar eller bara skaka hand med dem. Det var tydligen inte alla som ansg dem galna. Det som framfrallt ledde till Berrous och Glavieux genombrott var att de p ett tidigt stadium i sin forskning om kodningsmetoder frvnades ver att ett i elektroniksammanhang vanligt koncept - terkoppling - inte anvndes i digitala mottagare. I frstrkare r det vanligt att en brkdel av utsignalen terkopplas till ingngen fr att uppn stabilitet och de tnkte att terkoppling borde fungera vid kodning ocks. De frsta experimenten gjordes med datorsimuleringar 1991 och nr resultaten visade sig blev de helt vervldigade och Varje dag frgade jag mig sjlv vilka fel som mjligen kunde nnas i programvaran sger Berrou. Efter att ha kontrollerat att resultaten var riktiga tog de patent p metoden i Frankrike, Europa och USA (inte i Asien, dr det r fritt fram att anvnda den). Det var France Telecom, deras huvudsponsor, som bad Berrou att hitta p ett kommersiellt gngbart namn p uppnningen. Han kom
Studentlitteratur

267

9 Turbokoder

p namnet en dag nr han tittade p en biltvling i TV. Han observerade att den nyuppfunna kodningsmetoden som anvnder utsignalen fr att frbttra avkodningsproceduren p ett liknande stt som ett turboaggregat i en bil anvnder avgaserna fr att pressa in mer luft i motorn och frbttra frbrnningen - drmed var namnet givet: Turbokoder! En konkurrent till turbokoder r LDPC (Low-Density Parity Check)-koder uppfunna av Robert Gallager 1960 men i stort sett bortglmda nda tills nu. Anledningen till att de glmdes bort var att de var alltfr komplicerade fr dtidens teknologi. En frdel med LDPC i frhllande till turbokoder r att alla patent har lpt ut.

9.5 Appendix fr uttrycket (9.21)


Enligt (9.21) psts att L(d1) + L(d2) Det gller att L(d) = ln d.v.s. eL(d) = eL(d) eL(d) P(d = + 1) = P(d = + 1) som ger att P(d = + 1) =
268
L(d ) L(d ) L(d1 d2) = ln e 1 + e 2 1 + eL(d1) + L(d2)

(9.61)

P(d = + 1) P(d = + 1) = ln P(d = 1) 1 P(d = + 1)

(9.62)

P(d = + 1) 1 P(d = + 1)

(9.63)

(9.64)

eL(d) 1 + eL(d)

(9.65)
Studentlitteratur

9.5 Appendix fr uttrycket (9.21)

och P(d = 1) = 1 P(d = + 1) = 1 Vi fr nu


L(d1 d2) = ln P(d1 = + 1)P(d2 = 1) + 1 P(d1 = + 1) 1 P(d2 = 1) = P(d1 = + 1)P(d2 = + 1) + 1 P(d1 = + 1) 1 P(d2 = + 1)

eL(d) = 1 L(d) 1+e 1 + eL(d)

(9.66)

L(d2) eL(d1) 1 1 + e L(d ) L(d1) L(d2) L(d1) e 1+e 1+e 1+e 2 = = ln 1 +L(d ) L(d2) 1 e 1 1 e + 1 + eL(d1) 1 + eL(d2) 1 + eL(d1) 1 + eL(d2) eL(d1) + eL(d2) L(d1) 1 + eL(d1) 1 + eL(d2) + L(d2) = ln = ln e L(d )e L(d ) L(d1) L(d2) e e +1 1+e 1e 2 L(d1) L(d2) 1+e 1+e

(9.67)

Studentlitteratur

269

10 Felupptckande koder fr system med returkanal

Felkorrigering i de hittills beskrivna systemen, FEC (Forward Error Correction), utfrs med hjlp av de paritetscheckbitar som ingr i kodorden. Om man har tillgng till en returkanal frenklas felkorrigeringsmetodiken genom att vid felupptckt bara begra omsndning av det felaktiga kodordet, ARQ (Automatic Repeat reQuest). Rena ARQ-protokoll (pure ARQ-protocol) introducerades i samband med att man brjade anvnda checkbitar vid digital kommunikation. Frbttringar av de rena ARQ-protokollens prestanda kom omkring 1960 med typ-I hybrid-ARQ-protokollen som frenar frdelarna hos FEC- och ARQ-metoden. Omkring mitten av 70-talet kom s typ-II hybrid-ARQ-protokollen som r en typ av adaptiva protokoll, som ndrar sig efter kanalens verfringsegenskaper. I det fljande skall principerna fr de rena ARQ-protokollen och typ-I och typ-II hybrid-ARQ-protokollen beskrivas.

10.1 Rena ARQ-protokoll


I det rena ARQ-protokollet frutstts framkanalen vara utsatt fr strningar medan returkanalen dremot r strningsfri. Frn en linjr blockkod C tas kodord med lngden n och meddelandelngden k, dr C allts har dimensionen k och kan upptcka alla felaktiga kodord som inte r giltiga kodord, d.v.s. 2n 2k felmnster kan upptckas.

Studentlitteratur

271

10 Felupptckande koder fr system med returkanal

1p 0 0

p p
1 1p BSC 1

Figur 10.1 Binr symmetrisk kanal med vergngssannolikhet fr bitfel = p. De oftast anvnda koderna r CRC-koder (se avsnitt 4.6 ). CRC-kodare/avkodare r ltta implementera och kan anvndas fr paket (se fotnot 2) av varierande lngd. En vre grns fr sannolikheten fr oupptckta fel Pe r i medeltal fr linjra systematiska (n,k)-koder Pe 2k 1 1 1 p n fr 0 p 1 2 2n 1 (10.1)

dr p r vergngssannolikheten fr bitfel i en binr symmetrisk kanal (BSC), se Figur 10.1 Bland de linjra systematiska (n,k)-koderna har man lyckats urskilja ngra med lgre vre grns1 n uttrycket (10.1). En snvare vre grns och drmed mindre sannolikhet fr oupptckta fel r Pe 2 (n k) 1 + 1 2p n 2 1 p n fr 0 p 1 2 Koder som satiserar olikheten (10.2) indelas i fyra klasser: Klass 1: Linjra koder med jmn vikt och lngd med minimidistansen dmin vars duala koder (se Teorem 3.1) har minimidistansen dmin med sambandet
1

(10.2)

T.Kasami, T.Klve and S.Lin,Linear Block Codes for Error Detection, IEEE Trans. on Information Theory, Vol. IT-29, pp. 131-137, Jan. 1983.

272

Studentlitteratur

10.1 Rena ARQ-protokoll

dmin

dmin 1 n 1 + 1 2

(10.3)

I klass 1 ingr utstrckta (extended) Hamming- och Golay-koder. Klass 2: Linjra koder med jmn vikt och udda lngd med minimidistansen dmin vars duala koder har minimidistansen dmin med sambandet dmin n dmin 1 n 2 (10.4)

I klass 2 ingr primitiva BCH-koder (se Denition 5.2) med minimidistansen 6 och lngden 2m 1 dr m 5. Dessutom mste faktorn x + 1 ing i generatorpolynomet. Klass 3: Hr ingr primitiva BCH-koder med minimidistansen 8 och lngden n = 2m dr m r udda och m 5. Klass 4: Hr ingr primitiva BCH-koder med minimidistansen 8 och lngden n = 2m 1 dr m r udda och m 5. Kodare och avkodare fr koder tillhrande dessa 4 klasser har samma struktur som motsvarande fr CRC-koder.

10.1.1 Prestanda fr rena ARQ-protokoll


Prestanda fr ARQ-protokoll anges dels genom P(E) som r sannolikheten fr paketfel2 (Probability of Error), d.v.s. den relativa andelen paket som innehller fel och som mottagaren inte upptcker och dels av genomstrmningen, , som r det genomsnittliga antalet kodade n-bits datapaket som accepteras av mottagaren under lika lng tid som det tar fr sndaren att snda ett enda k-bits meddelande (jmfr med R = k/n fr FEC).
Sannolikheten fr paketfel

Vid avkodning av ett ankommande paket i mottagaren kan tre situationer uppst med fljande sannolikheter:
2

Vid verfring buntas ett antal kodord ihop s att ett frutbestmt antal bitar sammanstts till paket. Varje verfrd ram (frame) innehller ett antal paket.

Studentlitteratur

273

10 Felupptckande koder fr system med returkanal

Sannolikheten fr noll (= inga) fel: Pif Sannolikheten fr upptckbara fel: Puf Sannolikheten fr icke upptckbara fel (error): Pe dr Pif + Puf + Pe = 1 Sannolikheten fr paketfel r P(E) = Pe = Pe Pif + Pe 1 Puf (10.5)

Genomstrmningen

Genomstrmningen, , r starkt beroende av antalet gnger ett paket mste omsndas innan det accepteras av mottagaren. Lt To vara det genomsnittliga antalet gnger ett paket mste omsndas (inklusive den frsta verfringen) innan det accepteras. Det gller d:
2 To = 1 (1 Puf) + 2(1 Puf)Puf + 3(1 Puf) Puf + =

1 (10.6) 1 Puf

Genomstrmningen beror ocks till stor del p hur omsndningsprotokollet r utformat. De tre grundlggande omsndningsprotokollen r: Stanna och vnta ARQ (Stop-and-Wait, SW-ARQ) G tillbaka N steg ARQ (Go-Back-N, GBN-ARQ) Selektiv omsndning ARQ (Selective Repeat, SR-ARQ)
SW-ARQ

Vid SW-ARQ snds ett paket frn sndaren. Sndaren vntar sedan p kvittering (ACKnowledgement, ACK) frn mottagaren om paketet bedmts vara felfritt. Alternativt fr sndaren en omsndningsbegran (Retransmission reQuest, RQ eller Not AcKnowledged, NAK) om paketet innehllit ett upptckbart felmnster. Under den tid, vntetiden, sndaren vntar p ACK/NAK r den overksam, se Figur 10.2.
274
Studentlitteratur

10.1 Rena ARQ-protokoll


.

vntetid snda 1 paket 2

omsndning 2 3

K1

K2

AC

NA

verfring

mottagna paket

2 felupptckt

AC

K2

Figur 10.2 Stanna och vnta ARQ. Vntetidens lngd beror av 1) paketets verfringstid: Sndare mottagare (1 s) 2) mottagarens beslutstid: ACK/NAK ( s) 3) verfringstid fr ACK/NAK : Mottagare sndare (2 s) Antalet bitar, , som skulle ha kunnat verfras under vntetiden under frutsttning att bitverfringstakten r D bit/s r

= D(1 + + 2)

(10.7)

Utg frn att det krvs To omsndningar fr mottagaren att acceptera ett k-bits meddelande. Vid varje omsndning verfrs ett n-bits paket tfljt av en vntetid. Detta medfr att det fr att verfra ett k-bits meddelandepaket tgr To(n + ) bitar. Genomstrmningen fr SW-ARQ r drfr

SW =

k = To n +

1 Puf k =R n 1+ 1+ n n 1 Puf

(10.8)

dr R = k/n r den anvnda kodens relativa takt. Frdelen med SW-ARQ r den enkla implementeringen - inga buffertar fr paket i vare sig sndare eller mottagare. Nackdelen r naturligtvis den dliga genomstrmningen p grund av vntetiderna.
Studentlitteratur

275

10 Felupptckande koder fr system med returkanal omsndning g tillbaka 5

round-trip frdrjning

snda 1 2 3 4 5 6 7 3 4 5 6 7 8 9 10 paket

verfring

mottagna paket

1 2 3 4 5 6 7 3 4 5 6 7 8 9 10 felupptckt

Figur 10.3 GBN-ARQ med N = 5. Protokollet har viss anvndning i multiprocessorsystem vid verfring mellan processorer.
GBN-ARQ

En bttre genomstrmning kan uppns genom att ha viss buffertkapacitet i sndaren. Med GBN-ARQ-protokollet snds paket i en jmn strm. Nr mottagaren upptcker ett fel i ett mottaget paket ignorerar den de senast anlnda paketen frn och med det felaktiga och begr omsndning frn och med det felaktiga, se Figur 10.3. Frdelen med detta arrangemang r att mottagaren inte behver ha ngot buffertminne. Go-Back-N betyder att sndaren gr tillbaka i buffertminnet N paket och brjar omsndningen av paket drifrn. Storleken p N r en funktion av 1, och 2. N r det minsta hela antal paket som innehller tminstone bitar. Med en verfringshastighet p D bit/s r N= D 1 + + 2 n (10.9)

Varje omsndning innehller det felaktiga paketet + (N 1) efterfljande paket. Det genomsnittliga antalet omsndningar (inklusive den frsta verfringen) innan paketet accepteras r drfr
276
Studentlitteratur

AC K1 AC K2 NA K3 NA K3 NA K3 NA K3 NA K3 AC K3 AC K4 AC K5 AC K6

10.1 Rena ARQ-protokoll


2 TGBN = 1 (1 Puf) + (N + 1)(1 Puf)Puf + (2N + 1)(1 Puf) Puf +

+=

1 + Puf N 1 1 Puf

(10.10)

och genomstrmningen blir drfr med uttrycket (10.10) insatt: k GBN = n 1 Puf 1 =R 1 =R (10.11) 1 + Puf N 1 1 + Puf N 1 TGBN 1 Puf

I uttrycket (10.11) br man speciellt lgga mrke till att N r viktad med Puf medan /n i uttrycket (10.8) inte har ngon viktning. GBN-protokollet r drfr inte lika knsligt fr verfringsfrdrjningar som SW-protokollet.
SR-ARQ

En nnu bttre genomstrmningsfrmga kan uppns med minnesbuffert bde i sndare och mottagare. P samma stt som i fallet med GBN-protokollet snds en kontinuerlig strm av paket. Dremot utfr sndaren omsndning endast av det felaktigt mottagna paketet, se Figur 10.4. Genomstrmningen kan drfr tecknas med hjlp av uttrycket (10.6) k SR = n 1 = R 1 Puf To
omsndning omsndning snda 1 2 3 4 5 6 7 3 8 9 10 7 11 12 13 14 15 paket

verfring

mottagna paket

1 2 3 4 5 6 7 3 8 9 10 7 11 12 13 felupptckt felupptckt

Figur 10.4 SR-ARQ.


Studentlitteratur

AC K1 AC K2 NA K3 AC K4 AC K5 AC K6 NA K7 AC K3 AC K8 AC K9 AC K1 AC 0 K7 AC K1 1

277

10 Felupptckande koder fr system med returkanal Exempel 10.1 verfring via satellit. Vid verfring via en geosynkron satellit, i vilken nns en transponder med verfringshastigheten 64 kbit/s, mellan Sverige och USA kan frdrjningen 1 + + 2 uppskattas till 0,8 s. verfringskanalen modelleras som en binrsymmetrisk kanal med vergngssannolikheten fr bitfel = p, se Figur 10.1. Meddelanden kodas med den utstrckta (24,12,8)-Golay-koden (i klass 1) med dmin = 8. Golay-koden har fljande viktfrdelning vikt 0 8 759 12 2576 16 759 24 1

antal 1

Oupptckbara fel uppstr om nollkodordet vid verfringen ndras till ngot av dessa andra giltiga kodord, d.v.s. sannolikheten fr oupptckbara fel, Pe, r Pe = 759p8(1 p)16 + 2576p12(1 p)12 + 759p16(1 p)8 + p24 Sannolikheten fr upptckbara fel (= sannolikheten fr omsndning), Puf, r lika med sannolikheten fr ett eller era fel minus sannolikheten fr oupptckbara fel: Puf = 1 (1 p)24 Pe Antalet bitar, , som kunde ha transmitterats under vntetiden r

= D (1 + + 2) = 64 103 0,8 = 51200


Antalet paket, N, fr ett GBN-protokoll r N= 51200 bitar = 2134 24 bitar/paket

Genomstrmningen som funktion av vergngssannolikheten fr fel fr SW-, GBN- och SR-protokollen visas i Figur 10.5. Lgg mrke till att genomstrmningen reduceras avsevrt fr GBN-protokollet i frhllande till SR-protokollet i omrdet 10 4 < p < 10 2 medan fr lgre vrden p p ingen vinst grs med att g ver till det mer komplicerade SR-protokollet. SW-protokollet r p grund av de overksamma vntetiderna mellan varje verfring mycket lngsamt och en noggrannare upplsning visar att genomstrmningen som hgst nr c:a 23 10 5 vid p 10 3, se Figur 10.6.

278

Studentlitteratur

10.1 Rena ARQ-protokoll

0,5 genomstrmning 0 0 genomstrmning 0,4 GBN-ARQ SR-ARQ 0,3 0,2 0,1 lg p -10 SW-ARQ -8 -6 -4 -2

Figur 10.5 Genomstrmning som funktion av lg p fr SW-ARQ, GBN-ARQ och SR-ARQ till Exempel 10.1. 25105 20105 15105 10105 5105 lg p -5 Figur 10.6 -4 -3 -2 -1

Genomstrmning som funktion av lg p fr SW-ARQ till Exempel 10.1.

Exempel 10.2 Mikrovgslnk Det kan vara intressant att studera ett fall dr nackdelarna fr SW-protokollet inte r s uppenbara. Antag att vi vill stt upp en mikrovgslnk p 1 Mbit/s mellan tv punkter p ett avstnd av 6 km. Vi anvnder samma utstrckta Golay-kod (24,12,8) som i fregende exempel.

Studentlitteratur

279

10 Felupptckande koder fr system med returkanal

0,5 genomstrmning 0
Studentlitteratur

GBN-ARQ

SR-ARQ

0,4 0,3

SW-ARQ

0,2 0,1

lg p -4

-3

-2

-1

Figur 10.7 Genomstrmning som funktion av lg p fr SW-ARQ, GBN-ARQ och SR-ARQ till Exempel 10.2. Antalet bitar, , som kunde ha transmitterats under vntetiden r

= D( 1 + + 2) = 10 6 2 6 10 8 = 40 om vi frsummar . 3 10
N= 40 bitar =2 24 bitar/paket

Genomstrmningen i detta fall kan studeras i Figur 10.7. Lgg mrke till den obetydliga frbttringen fr SR-protokollet i frhllande till GBN-protokollet i detta fall. Det ganska enkla SW-protokollet kan vara ett bra val vid brusiga verfringar (hgt p-vrde).

10.2 Typ-I hybrid-ARQ-protokoll


Vid en jmfrelse mellan ARQ och FEC kan man konstatera att ARQ r ett enkelt system med hg tillfrlitlighet men med snabbt minskande genomstrmning vid kande p (sannolikheten fr bitfel p kanalen). FEC har dremot konstant genomstrmning (R = k/n) men har ocks fljande tv nackdelar: Nr ett kodord mottagits utfrs frst felkorrigering och drefter avkodning till ett meddelandeord (de tv operationerna felkorri280

10.2 Typ-I hybrid-ARQ-protokoll

gering fljt av avkodning kallas vanligen bara avkodning). Slutligen verfrs det avkodade meddelandeordet till slutanvndaren. Eftersom sannolikheten fr ett avkodningsfel r mycket strre n sannolikheten fr ett oupptckt fel, r det svrt att uppn hg tillfrlitlighet med FEC-system. Fr att uppn hg tillfrlitlighet med ett FEC-system mste en lng kod med stor felkorrigeringsfrmga anvndas, vilket gr att ett sdant system blir svrt att implementera, dessutom blir det dyrt. Av dessa anledningar fredras ofta ARQ nr det gller felkontroll i datasystem, t.ex. datantverk. Men vid kommunikation (eller datalagring, typ CD), dr returkanal inte nns, r FEC det enda alternativet. Emellertid kan nackdelarna med ARQ och FEC bemstras om de kombineras p ett riktigt stt. Sdana kombinationssystem kallas hybrid-ARQ. Principen r att lta FEC-delen ta hand om korrigeringen av de korta mer frekventa felen. P det viset kar genomstrmningen. De mindre frekventa felen som FEC-delen inte kan klara tas om hand av ARQ-delen. Hrigenom kar tillfrlitligheten. FEC-delen kan kombineras med vilken som helst av de tre grundlggande ARQ-protokollen. Det enklaste hybrid-ARQ-protokollet r typ-I hybrid-ARQ-protokollet. Vid transmission kodas varje datapaket bde fr felupptckt och felkorrigering. Implementeringen av systemet kan gras antingen med ett en-kodssystem eller ett tv-kodssystem. Vi brjar med tv-kodssystemet.

Tv-kodssystemet

Datakllan genererar datapaket med lngden k. Paketen kodas frst med en felupptckande (k/k)-kod, C1 (ofta en CRC-kod), med hg relativ datatakt, k/k. Drefter sker ny kodning med en felkorrigerande (n,k)-kod, C2. Sannolikheten fr paketfel r, jmfr med uttrycket (10.5):
Studentlitteratur

281

10 Felupptckande koder fr system med returkanal

P(E) =

PeFECPe 1 PeFECPuf

(10.12)

dr PeFEC r sannolikheten fr felavkodning i den felkorrigerande avkodaren. Uttrycket fr genomstrmning fr typ-I hybrid-ARQ-protokollet r detsamma som fr det rena ARQ-protokollet med den skillnaden att Puf erstts med PeFECPuf. Detta medfr att omsndningsfrekvensen reduceras med faktorn PeFEC om samma felupptckande kod anvnds i typ-I hybrid-ARQ-protokollet som i det rena ARQ-protokollet.

En-kodssystemet

Felupptckt och felkorrigering kan ocks stadkommas med en enda modierad FEC-avkodare som anvnds fr felkorrigering upp till och med t fel (= kodens felkorrigeringsfrmga) och fr feldetektering om antalet fel verstiger detta antal.
Exempel 10.3 Typ-I hybrid-ARQ-protokoll med utstrckt Golay-kod. Fr att kunna jmfra egenskaperna hos det rena ARQ-protokollet och typ-I hybrid-ARQ-protokollet anvnder vi samma utstrckta (24,12,8) Golay-kod som i Exempel 10.1 och Exempel 10.2. Vi anvnder SW-protokollet fr felupptckt i bda fallen. I typ-I hybrid-ARQ-protokollet kan koden korrigera upp till och med 3 fel per mottaget kodord och eftersom dmin = 8 kan koden ocks upptcka alla felmnster med 4 fel, se Figur 10.8. Vid ett upptckt felmnster begr mottagaren omsndning. Vi frutstter att nollkodordet snts och att kanalen kan modelleras som en BSC-kanal med vergngssannolikheten fr bitfel = p. Sannolikheten att ett snt nollkodord hamnar p avstndet k frn ett giltigt kodord med vikt j r:
j Pk =

j=0

24 j j k + 2r p 1p r kr

24 j + k 2r

(10.13)

Sannolikheten fr oriktig avkodning r lika med sannolikheten att ett mottaget kodord hamnar innanfr ett annat giltigt kodords kodsfr och r:

282

Studentlitteratur

10.2 Typ-I hybrid-ARQ-protokoll

ej felupptckbara kodord felupptckbara kodord korrigerbara kodord

riktigt kodord kodsfr

t=3 4 dmin = 8

Figur 10.8 Kodsfrer fr utstrckt Golay(24,12,8)-kod till Exempel 10.3. Pe =

A jk0 Pkj j=0 =

24

(10.14)

dr Aj r antalet kodord med vikten j. Ett mottaget paket/kodord avkodas riktigt om det har hgst tre fel, d.v.s.

Pif =

j=0

24 j

pj 1 p

24 j

(10.15)

Sannolikheten fr upptckbara fel eller sannolikheten fr omsndning r Puf = 1 Pif Pe Sannolikheten fr paketfel r som frut: P(E) = Pe Pif + Pe (10.16)

medan genomstrmningen enligt uttrycket r SR = R 1 Puf . Figur 10.9 visar sannolikheten fr paketfel3och Figur 10.10 visar genomstrmningen fr de tv protokollen. Lgg mrke till att typ-I hybrid-protokollet uppvisar en betydligt bttre genomstrmning i intervallet 10 3 p 10 1 men p bekostnad av tillfrlitligheten. Slutsatsen r att typ-I hybrid-protokollet r bttre lmpat vid verfringar med lga signalbrusfrhllanden.
3 Sannolikheten Studentlitteratur

fr paketfel utgr ett mtt p protokollets tillfrlitlighet.

283

10 Felupptckande koder fr system med returkanal

lg p -3 -2,5
bri -I hy

-2
RQ d-A

-1,5

-1

-0,5 -5 -10 -15 -20 lg P(E)

typ

SR

Q AR

Figur 10.9 Jmfrelse mellan paketfel fr typ-I hybrid-ARQ och SR-ARQ.

typ-I hybrid-ARQ

0,5 genomstrmning 0
Studentlitteratur

0,4
SR -A RQ

0,3 0,2 0,1

lg p -3

-2,5

-2

-1,5

-1

-0,5

Figur 10.10 Jmfrelse mellan genomstrmning fr typ-I hybrid-ARQ och SR-ARQ.

284

10.3 Typ-II hybrid-ARQ-protokoll

10.3 Typ-II hybrid-ARQ-protokoll


Typ-II hybrid-ARQ-protokollen har frmga att ndra sina verfringsegenskaper nr kanalens karaktr ndras genom anvndande av extra checkbitar - incremental redundancy-system - enligt en id frsta gngen framlagd av Mandelbaum4. Nr sndaren i ett sdant typ-II hybrid-protokoll mottar ett NAK svarar den med att snda ytterligare checkbitar till mottagaren vilket kar dennas felkorrigeringsfrmga. Typ-II hybrid-protokollet utgr den enklaste formen bland incremental redundancy-systemen och beskrivningen nedan bygger p ett system av Wang och Lin5. Systemet anvnder tv koder: En (n,k)-kod C1 med hg relativ takt och en (2n,n) systematisk invertibel kod6 C2 med relativ takt = 1/2. C1 kan endast upptcka fel (vanligen med en CRC-kod) medan C2 samtidigt kan upptcka och korrigera fel Kodningen tillgr s att frst kodas ett k-bits meddelandeord med C1 till ett n-bits paket P1. Drefter kodas P1 med C2. De n checkbitar (kallade P2) som bildas vid kodning med C2 sparas i ett buffertminne medan P1 snds ivg till mottagaren. Om mottagaren upptcker fel i paketet P1 skickar den ett NAK till sndaren som svarar med att snda P2. Eftersom C2 r en invertibel kod kan de n bitarna i P2 anvndas fr att f fram de n bitar som anvndes fr att generera C2-koden, d.v.s. en uppskattning eller rekonstruktion av P1. UppD.M. Mandelbaum, An Adaptive Feedback Coding Scheme Using Incremental Redundancy, IEEE Transactions on Information Theory, pp. 388-389, May 1974. 5 Y. Wang and S. Lin, A Modified Selective-Repeat Type-II Hybrid-ARQ System and Its Performance Analysis, IEEE Transactions on Communications Magazine, Vol. COM-31, pp. 593-607, May 1983. 6 En kod sgs vara invertibel om med utgngspunkt frn paritetscheckbitarna motsvarande informationsbitar entydigt kan bestmmas med hjlp av ett skiftregister i en s.k. inversionsprocess. Processen bygger p att tv godtyckliga kodord alltid har olika checkbitsmnster.
Studentlitteratur 4

285

10 Felupptckande koder fr system med returkanal

skattningen undersks med avseende p fel. Om det upptcks fel i den rekonstruerade versionen av P1 stts P1 ihop med P2 fr att f ett bruspverkat C2-kodord. Efter felkorrigering grs en ny felupptcktsunderskning av det resulterande meddelandet. Om det d fortfarande upptcks fel fortstter processen med att sndaren vxlar mellan att snda P1 och P2 tills ngon av de tre felupptcktsoperationerna ger ett felfritt resultat. Det nns frutom den ovan beskrivna sorten av typ-II hybrid-ARQ-protokoll en mngd andra varianter fr vilkas beskrivning hnvisas till speciallitteraturen.

10.4 Problem. Felupptckande koder fr system med returkanal


Problem 10.1 En (7,4)-Hamming-kod anvnds i ett rent ARQ-protokoll fr verfring p en 3 km lng mikrovgskanal (LOS = Line Of Sight) som kan modelleras som en BSC-kanal med p = 0,05. Varje verfrt paket bestr av bara ett kodord. Datahastigheten r 106 bit/s medan processtiden i mottagaren frsummas. Returkanalen antas vara utan strningar. Bestm genomstrmningen fr a) SW-ARQ b) GBN-ARQ c) SR-ARQ Svar: a) 0,10 b) 0,25 c) 0,40 Problem 10.2 Bestm sannolikheten fr paketfel fr koden i Problem 10.1.

286

Studentlitteratur

10.4 Problem. Felupptckande koder fr system med returkanal Svar: 1,07 10 3 Problem 10.3 Ett GBN-ARQ-system har utbredningsfrdrjningarna 1 s och 2 s, verfringshastigheten D bit/s och mottagarens beslutstid s.Kanalen r BSC med vergngssannolikheten p. Paketlngden r N och sannolikheten fr omsndning r 1 (1 p)n. Bestm den blocklngd n, som maximerar systemts genomstrmning. Problem 10.4 Vilken brkdel av alla binra 23-tupler faller innanfr en (23,12)-Golay-avkodares kodningssfr, som bara tillts korrigera felmnster med Hamming-vikt tv eller mindre (felmnster med Hamming-vikt tre franleder omsndningsbegran)? Anvnd denna information fr att bestmma den accepterade ordfelssannolikheten fr ett Golay-baserat typ-I hybrid ARQ-protokoll nr signalbrusfrhllandet blir mycket lgt. Svar: 0,86 respektive 0,14

Studentlitteratur

287

11 Kodningstillmpningar

11.1 Compact Disk (CD)


Digitalt ljud har sagts vara det strsta framsteget inom ljudteknologin sedan Edison uppfann ljudfonografen 1877. Den roll som felkorrigerande kodning har inom ljudtergivningsteknologin r inte obetydlig. P grund av den stora mngd data som tgr fr att representera audiosignaler digitalt och drav fljande krav p lagringsmedium med hg packningstthet, r kraftfulla felkorrigerande kodningsmetoder vsentliga fr att gra tekniken med inspelning, lagring och tergivning av ljud kommersiellt mjlig. Ett sdant system utvecklat av Philips och Sony1 beskrivs i detta avsnitt: Ljudtergivningssystemet bestr av en laser, en inspelad skiva (CD) och en fotodetektor som tillsammans motsvarar kanalen i ett vanligt kommunikationssystem. Under frutsttning att CD-spelaren fungerar som den ska, utgrs strningar p kanalen i huvudsak av smuts p skivan (ngeravtryck och repor). Eftersom smutsen oftast tcker en yta p skivan som r mycket strre n den yta som upptas av en inspelad bit, upptrder felen i skurar vid avspelning. Fr att korrigera skurfel anvnds en form av interleaving som kallas cross-interleaving tillsammans med en Reed-Solomon-kod. Anledningen till att Reed-Solomon-koder anvnds r att de har mycket goda egenskaper vad betrffar skurfelskorrigering. Metoden fr inspelning skdliggrs schematiskt i Figur 11.1. Varje kanal samplas 44.100 gnger i sekunden, vilket medfr att signaler med frekvenser upp till 22 kHz terges riktigt. Signaler med hgre
1

Specifikationen fr CD-Digital Audio publicerades av Philips och Sony 1980 i The Red Book. Specifikationen frfinades 1982 och har utgjort grunden fr andra CD-tekniker som t.ex. CD-ROM och DVD.

Studentlitteratur

289

11 Kodningstillmpningar

frekvenser n 22 kHz skrs bort av ett antivikninslter fre samplingen. Drefter omvandlas varje sampel med en 16 bitars analogdigitalomvandlare, 16 r nmligen det minsta antal bitar som krvs fr att man inte skall hra kvantiseringsbruset. Varje binr 16-tupel representeras av tv talkroppselement tagna ur GF(28), vilket medfr att varje sampel genererar 4 stycken GF(28)symboler, d.v.s. 44.100 32 = 1.411.200 bit/s och utsignalen frn analogdigitalomvandlaren utgrs drfr av en 1,41 Mbit/s datastrm som gr direkt in p en 3/4-takts CIRC-kodare (CIRC = Cross-Interleaved Reed-Solomon Code). Denna genererar en 1,88 Mbit/s kodad datastrm (4/3 1,41 = 1,88). Drefter tillfrs en mngd kontrolldata, genom multiplexering, fr tids- och sprningskontroll schematiskt angiven genom blocket MUX.

ljudklla
vnster hger

antivikningslter samplare
44,1 kHz PAM 44.100 sampel/s per kanal

A/D-omvandlare
2 16 44,1 kb/s = 1,41 Mb/s PCM

16 bit/kanal

CIRC-kodare
1,88 Mb/s

MUX
1,94 Mb/s

kontroll- och displayinformationsbitar

EFM MUX
4,32 Mb/s synkroniseringsbitar

Optisk inspelning

Figur 11.1 Schematisk bild av CD-inspelningsprocessen.


290
Studentlitteratur

11.1 Compact Disk (CD)

Den multiplexerade datastrmmen, med bithastigheten 1,94 Mbit/s, gr drefter in p en kllkodare vars uppgift r att frbereda datastrmmen fr effektiv inspelning p den optiska disketten. Fr detta ndaml anvnds Eight-to-Fourteen Modulation (EFM), vilket innebr att tta-bits block omvandlas till fjorton-bits block. EFM-koden r en runlength-limited code, vilket innebr att det nns vre och undre grnser fr sekvenslngder av ettor eller nollor. Fr att frst detta mste man veta hur informationen lagras p disketten: Disketten innehller ett spiralspr med nedsnkningar eller hl (eng. pits) mellan vilka nns upphjningar (eng. lands). Kodningen av audioinformationen bestmmer lngderna p dessa nedsnkningar/upphjningar. vergngen mellan en upphjning och en nedsnkning, en hlvgg (eng. a pit wall) eller vice versa, utlses som en etta (1) medan strckor av upphjningar eller nedsnkningar motsvarar sekvenser av nollor (000) - se Figur 11.2. Vid avspelning ger hlvggarna sig till knna som varierande intensitet i det reekterade ljuset frn en laser som knner av spret p den roterande disketten. Av tekniska skl och fr att maximera datamngden p disketten mste det minsta avstndet mellan hlvggar (vergngar, 0 1) vara 3 (minimum run-length) och det strsta 11 (maximum run-length). Detta innebr att data p en diskett bestr av sekvenser av 2 till 10 nollor mellan p varandra fljande ettor. Efter EFM-kodningen tillfrs ytterligare synkroniserings- och sammanbindningsbitar s att inspelningen sker med 4,32 Mbit/s. Felkontrollsystemet i form av CIRC-kodaren bestr av tv frkortade Reed-Solomon-koder, C1 och C2. Bda koderna anvnder 8-bits symboler frn GF(28), ngot som passar bra tillsammans med 16-bits samplen frn analogdigitalomvandlaren. Den naturliga lngden fr

0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0

Figur 11.2 Upphjningar/nedsnkningar p en CD.


Studentlitteratur

291

11 Kodningstillmpningar

en RS-kod ver GF(28) r 8 255 = 2040. D.v.s. en 2040-bits kod med en ganska komplicerad avkodare, vilket inte r bra med tanke p kostnadsaspekten. CD-spelaren skall ju kunna sljas ver disk till privatpersoner. Av den anledningen frkortas koderna avsevrt: I CIRC-kodaren r C1 en (32,28)-kod och C2 en (28,24)-kod - se Figur 11.3. Bda koderna har 4 redundanta bitar och minimidistansen 5. Varje 16-bits sampel tas som tv 8-bitars symboler frn GF(28). Samplen kodas, 12 i taget, av C2 till 28-symbolers kodord. De 28 symbolerna i varje kodord frn C2 gr drefter till kors-interleavern (eng. cross-interleaver) (m = 28, D = 4 symboler) innan de kodas av C1. 32-symbolskoden frn C1 behandlas drefter vidare enligt Figur 11.1.
D = 4 symboler

1D

2D 24 8-bits sampel (28/24) RS-kodare C2 12 16-bits sampel (24 8-bits sampel) 3D 32 8-bits sampel (32/28) RS-kodare C1

25D

26D

27D korsinterleaver m = 28

Figur 11.3 CIRC-kodare av standardtyp.


292
Studentlitteratur

11.1 Compact Disk (CD)

CIRC-kodningen r standardiserad fr CD-system medan dremot avkodningsprocessen kan variera mellan olika CD-spelare. En schematisk bild av avkodaren visas i Figur 11.4. C1-avkodaren fljs av en korsdeinterleaver och en C2-avkodare. Bde C1- och C2-avkodaren kan korrigera upp till 2 fel eftersom deras minimidistans r 5. Om inte kodens hela felkorrigeringsfrmga utnyttjas kan en del av den anvndas fr felupptckt. Denna mjlighet anvnds i de esta CIRC-avkodare i syfte att frbttra tillfrlitligheten i avkodningen.
D = 4 symboler
Tvfelskorrigering eller enkelfelskorrigering och tvfelsupptckt eller fyrfelsupptckt 27D

26D 25D

Fel- och suddningsavkodning

C1avkodare

C2avkodare

32 8-bits symboler

3D

2D

Feldljande krets

1D

korsdeinterleaver m = 28

12 16-bits sampel till digitalanalogomvandlaren

Figur 11.4 Schematisk bild av CIRC-avkodare.


Studentlitteratur

293

11 Kodningstillmpningar

lngsta fullstndigt korrigerbara skur- 4.000 databitar motsvarande 2,5 felslngd mm sprlngd lngsta interpolerbara skurfelslngd interpolationsfrekvens felfrekvens fr oupptckta fel (som ger sig tillknna i form av klickljud) implementering 12.300 databitar motsvarande 7,7 mm sprlngd ett sampel/10 tim vid BER = 10 4 1000 sampel/min vid BER = 10 3 < 1 per 750 tim vid BER = 10 3 frsumbar vid BER = 10 4 1 LSI-chip och 2048 Bytes RAM

Tabell 11.1 Prestanda fr CIRC i CD-spelare. C1-avkodaren stlls vanligen in fr att rtta alla enkelfel. Om C1-avkodaren upptcker er n ett fel signalerar den 28 suddningsfel. Korsdeinterleavern sprider ut dessa suddningsfel p 28 C2-kodord. Alternativt kan C1-avkodaren anvndas fr att rtta alla dubbelfel eller, i det billigaste utfrandet, bara ge suddningsfelssignalering vid varje feltyp. C2-avkodaren kan rtta alla kombinationer av e fel och s suddningsfel dr 2e + s < 5. I det billigaste utfrandet anvnds den bara fr att rtta suddningsfel eftersom avkodningsfel i C1-avkodaren r mycket osannolika. Om antalet suddningsfel verstiger 4, signalerar C2-avkodaren 24 suddningsfel, vilket motsvarar 12 (ljud/musik)sampel. Den feldljande kretsen reagerar p detta genom att lta dess sampel vara tysta eller genom att interpolera fram vrden med hjlp av de omkringliggande samplen. Fr att frbttra feldljningsprocessen ingr dessutom ytterligare interleavings- och frdrjninsoperationer i avkodningen.

294

Studentlitteratur

11.2 Standardiserade telekommunikationsturbokoder

11.2 Standardiserade telekommunikationsturbokoder


Tack vare turbokodernas utmrkta prestanda r det inte frvnande att de snabbt har anammats i mnga kommersiella tillmpningar. Detta har lett till ett antal standarder av vilka standarden fr rymddatasystem presenteras nedan.

11.2.1 Turbokodsstandard fr rymddatasystem


Bland de frsta att utveckla en kanalkodningsstandard baserad p parallellsammanlnkade turbokoder var CCSDS (Consultative Committee for Space Data Systems), som bestr av intressegrupper inom rymd och industri frn hela vrlden. Den nya standarden skulle utgra ett alternativ till det traditionella sammanlnkade system, bestende av en 64-tillstnds faltningskod och en yttre (255,223)Reed-Solomon-kod, som ditintills anvnts. Den nya turbokodsstandarden frbttrar kodningsvinsten med 2,5 dB vid BER = 10 5 om den lgsta kodtakten R = 1/6 anvnds2. CCSDS Telemetry Channel Coding Standard3 anvnder en turbokod bestende av tv komponentkoder med valbar kodtakt och blocklngd. Turbokodaren fr denna kod visas i Figur 11.5. Komponentkodarna utgrs av tv rekursiva faltningskodare var och en med kodtakten R = 1/4. Tillsammans kan de kombineras fr att generera en turbokod med kodtakten R = 1/2, 1/3, 1/4 och 1/6 p fljande stt: terkopplingsvektorn fr bda komponentkodarna vid alla kodtakter r: G0 = 10011.
2 M.R.

Soleymani, Y. Gao och G. Uilaipornsawai, Turbo Coding for Satellite and Wireless Communications, Kluwer Academic Publishers, Boston 2002. 3 Telemetry Channel Coding, Consultative Committee on Space Data Systems, CCSDS 101.0-B-6, October 2002.
Studentlitteratur

295

11 Kodningstillmpningar

Framkopplingsvektorn fr bda komponentkodarna fr kodtakterna 1/2 och 1/3 r G1 = 11011. Punktering av varannan symbol frn var och en av komponentkodarna grs fr kodtakten 1/2 men inte fr kodtakten 1/3.
ut
0a in a

kodare a + +

G0

delay och interleaver


in b

G1 G2 G3

ut + + + + + + + +
1a 2a

+ 3a
kodtakt 1/6

G1 G2 G3

+ + + +

+ +

+ +

1b

+ 3b

Figur 11.5 Turbokodare enligt CCSDS. Fylld cirkel betyder att varje symbol anvnds. Ofylld cirkel betyder att varannan symbol anvnds.
296
Studentlitteratur

kodtakt 1/2

G0

utsignaler

kodtakt 1/3

kodtakt 1/4

kodare b

11.2 Standardiserade telekommunikationsturbokoder

Framkopplingsvektorn vid kodtakten 1/4 r fr kodare a: G2 = 10101 och G3 = 11111 och fr kodare b: G1 = 11011. Ingen punktering grsvid kodtakten 1/4. Framkopplingsvektorn vid kodtakten 1/6 r fr kodare a: G1 = 11011, G2 = 10101 och G3 = 11111 och fr kodare b: G1 = 11011 och G3 = 11111. Ingen punktering grs vid kodtakten 1/6.

Studentlitteratur

297

12 Tabeller fr felkorrigerande kodning

12.1 Binra primitiva polynom


Av grad 2 1. x2 + x +1 Av grad 3 1. x3 + x + 1 2. x3 + x2 + 1 Av grad 4 1. x4 + x + 1 2. x4 + x3 + 1 Av grad 5 1. x5 + x2 + 1 2. x5 + x3 + 1 3. x5 + x3 + x2 + x + 1 4. x5 + x4 + x2 + x + 1 5. x5 + x4 + x3 + x + 1 6. x5 + x4 + x3 + x2 + 1 Av grad 6 1. x6 + x + 1 2. x6 + x4 + x3 + x + 1
Studentlitteratur

299

12 Tabeller fr felkorrigerande kodning

3. x6 + x5 + 1 4. x6 + x5 + x2 + x + 1 5. x6 + x5 + x3 + x2 + 1 6. x6 + x5 + x4 + x + 1

12.2 Galois-talkroppar, cyklotomiska sidoklasser och minimalpolynom


1. GF(23) genererade av dr p(x) = 1 + x + x3 och p() = 0. 0 000 100 010 001

3 4 5 6

110 011 111 101

cykl. sidkl. {0} {1,2,4} {3,6,5}

minimalpolynom 1+x 1 + x + x3 1 + x2 + x3

0 1 2

2. GF(24) genererade av dr p(x) = 1 + x + x4 och p() = 0. 0 0000 1000 0100 0010 0001 1100 0110 0011

7 8 9 10 11 12 13 14

1101 1010 0101 1110 0111 1111 1011 1001

cykl. sidkl. {0} {1,2,4,8} {3,6,12,9} {5,10} {7,14,13,11}

minimalpolynom 1+x 1 + x + x4 1 + x + x2 + x3 + x4 1 + x + x2 1 + x3 + x4

0 1 2 3 4 5 6

300

Studentlitteratur

12.2 Galois-talkroppar, cyklotomiska sidoklasser och minimalpolynom

3. GF(25) genererade av dr p(x) = 1 + x2 + x5 och p() = 0. 0 00000 10000 01000 00100 00010 00001 10100 01010

7 8 9 10 11 12 13 14

00101 10110 01011 10001 11100 01110 00111 10111

15 16 17 18 19 20 21 22

11111 11011 11001 11000 01100 00110 00011 10101

23 24 25 26 27 28 29 30

11110 01111 10011 11101 11010 01101 10010 01001

0 1 2 3 4 5 6

cykl. sidkl. {0} {1,2,4,8,16} {3,6,12,24,17} {5,10,20,9,18} {7,14,28,25,19} {11,22,13,26,21} {15,30,29,27,23}

minimalpolynom 1+x 1 + x2 + x5 1 + x2 + x3 + x4 + x5 1 + x + x2 + x4 + x5 1 + x + x2 + x3 + x5 1 + x + x3 + x4 + x5 1 + x3 + x5

Studentlitteratur

301

12 Tabeller fr felkorrigerande kodning

4. GF(26) genererade av dr p(x) = 1 + x + x6 och p() = 0. 0 000000 100000 010000 001000 000100 000010 000001 110000 011000 001100 000110 000011 110001 101000 010100 001010

15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

000101 110010 011001 111100 011110 001111 110111 101011 100101 100010 010001 111000 011100 001110 000111 110011

31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46

101001 100100 010010 001001 110100 011010 001101 110110 011011 111101 101110 010111 111011 101101 100110 010011

47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62

111001 101100 010110 001011 110101 101010 010101 111010 011101 111110 011111 111111 101111 100111 100011 100001

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14

302

Studentlitteratur

12.3 Generatorpolynom till binra narrow-sense BCH-koder

cykl. sidkl. {0} {1,2,4,8,16,32} {3,6,12,24,48,33} {5,10,20,40,17,34} {7,14,28,56,49,35} {9,18,36}

minimalpolynom 1+x 1 + x + x6 1 + x + x2 + x4 + x6 1 + x + x2 + x5 + x6 1 + x3 + x6 1 + x2 + x3

{11,22,44,25,50,37} {13,26,52,41,19,38} {15,30,60,57,51,39} {21,42} {23,46,29,58,53,43} {27,54,45} {31,62,61,59,55,47}

1 + x2 + x3 + x5 + x6 1 + x + x3 + x4 + x6 1 + x2 + x4 + x5 + x6 1 + x + x2 1 + x + x4 + x5 + x6 1 + x + x3 1 + x5 + x6

12.3 Generatorpolynom till binra narrow-sense BCH-koder


Sifforna i rubriken generatorpolynom r angivna i oktal form. Fr att bestmma hur generatorpolynomet ser ut omvandlas den oktala formen till binr form. Ettorna indikerar platsen fr de nollskilda elementen i polynomet enligt fljande exempel: 3551 011 101 101 001 g(x) = x10 + x9 + x8 + x6 + x5 + x3 + 1. n r kodordets lngd. k r meddelandeordets lngd. t r det maximala antalet bitar som koden kan korrigera.

Studentlitteratur

303

12 Tabeller fr felkorrigerande kodning

n 7 15 15 15 31 31 31 31 31 63 63 63 63 63 63 63 63 63 63 63

k 4 11 7 5 26 21 16 11 6 57 51 45 39 36 30 24 18 16 10 7

t 1 1 2 3 1 2 3 5 7 1 2 3 4 5 6 7 10 11 13 15

generatorpolynom 13 23 721 2467 45 3551 107657 5423325 313365047 103 12471 1701317 166623567 1033500423 157464165547 17323260404441 1363026512351725 6331141367235453 472622305527250155 5231045543503271737

304

Studentlitteratur

Sakregister

16-PSK signaluppsttning 226 32-CROSS signaluppsttning 225 64-QASK 219220 8-AM 217 8-PSK-system 228 ACK = ACKnowledgement 274 se ven kvittering 274 ACK/NAK 274275 adaptiva protokoll 271 addition - modulo m 21 binr - 28 loglikelihood- 253254 modulo-2 - 253 vanlig - 253 vektor- 29 additionsoperatorer 253 additiv - operation 3334 - struktur 33 alef-noll 27 algebraisk struktur 55 algebraiska koder 39 all-zero state 176 analogdigitalomvandlare 290291 aposteriorisannolikhet 245 APP = A Posteriori Probability 245, 260 apriori LLR 248 apriorisannolikhet 246, 254 ARQ 281 g tillbaka N steg - 274, 276 se ven Go-Back-N, GBN-

ARQ 274 hybrid- 281 selektiv omsndning - 274, 277 se ven Selective Repeat, SRARQ 274 stanna och vnta - 274275 se ven Stop-and-Wait, SWARQ 274 ARQ = Automatic Repeat reQuest 18, 271, 280 ARQ-protocol pure - 271 ARQ-protokoll rena - 271, 273, 282 selektiv omsndning - 284 stanna och vnta - 282 typ-I hybrid- 271, 280284 typ-II hybrid- 271, 285286 associativitet 19, 29 asymptotisk kodningsfrstrkning 233234 audioinformation 291 audiosignaler 289 augmenting 86 se ven utkning 86 AVGB 245 AVGB = Additivt Vitt Gaussiskt Brus 9, 65, 77, 86, 207 avkodare 13, 153 soft-in/soft-ut - 249 avkodning 108 - med terkoppling 262 binr suddnings- 152

305

se ven erasure decoding 152 horisontell - 250, 256, 258 hrd - 13, 152, 199, 201, 208, 253 iterativ - 245, 249 mjuk - 13, 153, 197, 208 optimal - 15 standard- 154 vertikal - 250, 256, 258 avkodningsalgoritm 244 aritmetisk - 117 Berlekamp-Masseys - 144, 148, 154 Berlekamps - 134 binr suddnings- 154 icke-binr suddnings- 154 Peterson-Gorenstein- Zierlers - 144 Petersons - 131 Viterbis Maximum Likelihood 191 avkodningsfel 7, 14, 200 avkodningsmetod Viterbis - 260 avkodningsprocedur iterativ - 245 avkodningsvg 193 avstndet minsta fria - 184 Bahl 260 Bahl-algoritmen 263 bandbredd teoretiskt lgsta - 13 bandbredds -definition 13 -expansion 14, 237 bas 30 dimension hos en - 30 kanonisk - 30 Bayes lag 194 Bayes teorem 12, 245246 BCH-grnsen 125 BCH-kod - i inskrnkt mening 126

se ven narrow sense 126 binr - 127 primitiv - 127 narrow sense 128129 t-felskorrigerande - 128 BCH-koder 125, 129, 158 - med Mathematica 138 binra - 125 designprocedur fr - 126, 128 primitiva - 273 BER 223, 264, 295 BER = Bit Error Rate 7, 206 se ven bitfel 7 Berlekamp 86, 134 Berrou 243244, 248, 259260, 264, 266267 beslut hrda - 13 mjuka - 13 beslutskrets 247 beslutsomrde 10 beslutsregel hrd - 246 beslutstid mottagarens - 275 beslutstillfrlitlighet 249 betingad tthetsfunktion 246 BFSK 214 bildpixel 116 binr - cyklisk kod 100 - kod 61 - operation 19 binrt verfringssystem 246 bitenergi 223 bitfel 7, 71, 153 se ven BER 7 bitfelshalt 244 vre grns fr - 79 bitfelssannolikhet 73, 7879, 208, 264 undre grns fr - 206 vre grns fr - 73 bitmetrik 195

306

block -kod 8, 1516, 7273, 81 systematisk 63 -kodning 61, 223 -lngd 127, 295 Bose 125 BPSK 214, 216 BPSK = Binary Phase Shift Keying 9 -modulation 13, 207 Broadcom 267 brus 7 additivt vitt gaussiskt - 9 se ven AVGB 9 kvantiserings- 290 BSC 272 BSC = Binary Symmetric Channel 11, 13, 15, 65, 71, 199, 201, 207, 272 buffertminne 276 Bulletin des Sciences et Mathmatiques 55 Bulletin des Sciences Mathmatiques, Astronomiques, Physiques et Chimiques 54 Cauchy 53 CCSDS 296 CCSDS = Consultative Committee for Space Data Systems 295 CCSDS Telemetry Channel Coding Standard 295 CD = Compact Disk 7, 281, 289 CD-inspelningsprocess 290 CD-ROM 289 CD-spelare 154, 292294 channels burst error - 17 se ven skurfelskanaler 17 random error - 17 Chaudhury 125 Chung 266 CIRC 294 CIRC = Cross-Interleaved Reed-Solomon Code 290

CIRC-avkodare 293 CIRC-kodare 290292 CIRC-kodning 293 cirkelns kvadratur 51 Cocke 260 code gain 223 se ven kodningsfrstrkning 223 Comtech AHA 267 concatenated code 243 se ven sammanlnkad kod 243 Conexant 267 constellation 233 constraint length 16, 166, 185, 258 se ven spann 166 coset 25 se ven sidoklass 25 Costello 185 coverage 113 se ven tckning 113 CRC -koder 113 -polynom 113 CRC-12 113114 CRC-16 114 CRC-32 114 CRC-32 (Ethernet) 113 CRC-4 113114 CRC-ANSI 113 CRC-CCITT (X25) 113 CRC-kod 285 binr - 113 CRC-koder = Cyclic Redundancy Check 111112, 272273 CRC-SDLC 113 cross-interleaver 292 se ven kors-interleaver 292 cross-interleaving 289 CROSS-modulation 220 Csajka 237 cyklisk (7,4)-kod 108 cyklisk (n,k)-kod 102 cyklisk kod 113 linjr - 127

307

cykliska koder 39, 55, 95, 97, 104, 108, 112, 119, 158 avkodning av - 108 felupptckande - 111112 cykliska skift 95, 109 cyklotomisk sidoklass 50, 127, 129 datahastighet 223 datapaket 273, 281 datastrm 164, 223 datatakt 1314, 281 datorskning 125 defaultpolynom 48 delare 34, 38, 97 Delay 170 se ven D-transformen 170 delgrupp 25 kta - 25 delmngd 25 delsignaluppsttning 224225 Demante, Adelade-Marie 51 demodulator 7, 13 demodulering binr - 13 designdistans 126 destination 8 detekteringsprocess 13 dimension 30, 64 diskett 291 distansfaktor 233 distribution multiplikativ - ver addition 28 diversitetseffekt 264 diversitetsfrfarande 243 divisionskrets 104, 112 DMC = Discrete Memoryless Channel 15, 197 D-transformen 170 se ven Dealy 170 dual - kod 64, 272273 - matris 64 dualt vektorrum 30

dubbelfel 76 DVD 289 cole Normale 53 Ecole Normale Suprieure des Telecommunications de Bretagne i Brest 266 cole Polytechnique 5253 cole Prparatoire 53 Edison 289 effektniv sndarens - 223 efficiency power- 213 spectrum- 213 EFM = Eight-to-Fourteen Modulation 291 EFM-kodning 291 egenslinga 178 ekvationsteorin 52 ekvivalensklass 2122, 2526 - etikett 22 element 19, 25, 3031 -form 48 Elias 163, 185 enhets -matris 63, 83 -rot 127, 130 se ven root of unity 126 primitiv - 114 -rtter 43 enhetsrot 126 primitiv - 126 enkelbits paritetscheck 111 enkelfel 7576 -vektor 80 enkelfelskorrigerande 83, 87 en-kodssystem 281282 erasure decoding 152 se ven avkodning binr suddnings- 152 Ericsson 267 euklidisk metrik 233

308

euklidiska avstndet 231, 235 Eulers fi-funktion 31 expanderad signaluppsttning 224, 233, 237 exponentialform 44 exponentrepresentation 35 expurgating 86 se ven rensning 86 extending 86 se ven utstrckning 86 extension field 29 se ven utvidgningstalkropp 29 extra checkbitar 285 se ven incremental redundancysystem 285 extra kunskap 248 se ven extrincic 248 extrainformation 263264 extravrden 261 extrinsic 248 se ven extra kunskap 248 faltningskod 89, 16, 166167, 193, 205 icke-systematisk - 258 katastrofal - 176, 178 systematisk - 173 faltningskodare 9, 164, 166, 169, 172, 175, 179, 192193, 206, 227228, 230231, 234237, 243244 icke-systematisk - 259 se ven NSC = NonSystematic convolutional Code 259 parallellt sammanlnkade - 244 partitioneringar med - 214 rekursiv - 295 systematisk terkopplad - 259 faltningskoder 163, 191, 213 icke-systematiska - 185 linjra - 163 prestanda fr - 201 prestationsmtt fr - 184

systematiska - 185 faltningskodning 223 faltningskodord 194 FEC 273, 280282 FEC = Forward Error Correction 18, 271 fel -aktig avkodning 65, 73 -bitar 67 icke upptckbara - 274 -kodord 74 -kontrollsystem 154 -korrektionsadder 109 -korrigering 18, 65, 107108, 153 -korrigeringsfrmga 7273, 81 82, 87, 111, 125, 153, 285 -lokaliseringspolynomet 131, 150 -lokaliseringsvektorn 131 -mnster 6566, 79, 108109 oupptckbara - 71, 278 -polynom 109 -position 71, 109, 153 upptckbara - 71, 274, 278, 283 -upptckt 18, 65, 107 -upptckt med CRC 111 -upptcktsfrmga 71, 81, 87, 111 -vektor 65, 6768, 74, 7778, 80, 87, 117118 troligaste 66 felbeslut sannolikheten fr - 10 feldljande krets 294 feldljningsprocess 294 felkorrigerande kodning 266 felkorrigeringsfrmga 243 felmnster 107, 271, 282 uddavikts - 113 felsannolikhet avkodares - 14 avkodnings- 16 Ferrussac 54 field 27 se ven talkropp 27

309

extension - 29 FiniteFields 45, 138 FIR = Finite Impulse Response 258 se ven impulssekvenssvar ndligt - 258 first event error 201 se ven frsta felhndelse 201 formell derivata 151 Forney 178, 185, 243, 266 Forneys algoritm 148, 151 fotodetektor 289 Fourier 54 fractional rate loss 166 se ven relativ taktfrlust 166 frame 273 se ven ram 273 framkopplingsvektor 296297 framslinga 179 France Telecom 267 fria distansen 233 fdning 112 fdningsdip 17 frdrjningsoperatorn 170 frkortade cykliska koder 112 frkortade koder 111 frkortning 86 se ven shortening 86 frlngning 86 se ven lengthening 86 frsta felhndelse 201203 se ven first event error 201 frldrasignaluppsttning 224 frldrauppsttning 225 Gallager 268 Galois, variste 28, 51 Galois, Nicolas-Gabriel 51 Galois-talkropp 28, 31, 33 Gao 295 GBN-protokollet 277278 generatormatris 62, 66, 74, 86, 116 118 semiinfinit - 168

sjlvdual - 116 generatorpolynom 97100, 102, 104, 106, 108, 113, 116, 125129, 132, 134, 273 narrow sense - 130 generatorsekvens 168169 genererande funktion 178 genomstrmningen 273277, 280 281, 283284 geometriskt avstnd 215 GF(2) 28 GF(32) 127 GF(q) 28 Gilbert-Elliot-modellen 17 Glavieux 243244, 248, 259, 264, 266267 Go-Back-N, GBN-ARQ 274 se ven ARQ g tillbaka N steg - 274 Golay 114 Golay-kod 278 binr - 114 ternr - 114 utstrckt - 116117, 282283 Golay-koder 114, 273 Golomb 148 Goppa-koder 125 gradtal 97 graf 175, 178 kodar- 175, 178 viktad riktad - 175 grafdeterminanten 180181 gren -metrik 196 grenar icke verlevande - 197 grenetiketter 175, 178 grenfrstrkning 179 grund -element 50 -kropp 29, 38 -tillstnd 193 grupp 19

310

- under addition 96 abelsk - 19, 55 additiv - 20, 55 additiv kommutativ - 2628 -begreppet 19 del- 25, 38 -element 24, 31 heltals- 25 kommutativ - 1920, 22, 55 kommutativ - under addition 20, 29 kommutativ - under multiplikation 20 multiplikativ - 20, 35, 55 multiplikativ kommutativ - 2728 -operation 24 ondlig - 20 -teori 51, 53 -villkor 25 ndlig - 20, 23 Hagenauer 253 Hamming 82 -avstnd 70, 72, 77, 86, 185, 199, 202, 215 -avstndsmtt 199 -kod 83, 85, 114, 273 -koder 82, 87 binra 82 -kodord 84 -vikt 70, 108, 178 hard decisions 244, 248 se van hrda beslut 244 hard-decision receiver 152 Heegard 264 heltal 29 godtyckligt - 29 heltalsaddition 22 - modulo p 33 heltalsaritmetik 28 heuristiska designregler 234 heuristiska metoder 163, 185 Hippolyte Jean Vernier 52 Hocquenghem 125

horisontell avkodning 250, 256, 258 hypotes 246 hl 291 se ven pits 291 hlvgg 291 se ven pit wall 291 hrd avkodning 257 hrd beslutsregel 246 hrda beslut 244, 248249 se ven hard decisions 244 i.i.d. = independent and identically distributed 252 icke vidrrande slinga 179 icke vidrrande slingor 180181 icke-cykliska koder 111 icke-parallella sekvenser 233 icke-parallella vgar 234 iCoding 267 ideal 96 identitet 19 MacWilliams - 82 identitetselement 1920, 24 additivt - 2627 multiplikativt - 26, 29, 31 IIR = Inifinite Impulse Response 259 se ven impulssekvenssvar ondligt - 259 impuls -sekvens 166 -svar 165 impulssekvenssvar 167 ondligt - 259 se ven IIR = Infinte Impulse Response 259 ndligt se ven FIR = Finite Impulse Response 258 ndligt - 258 incremental redundancy-system 285 se ven extra checkbitar 285 index 180

311

informationshastighet 223 informationsklla 8 informationsverfrings -hastighet 7 -takt 13 inspelning 289 interceptvrde 246 interferens 7 interleaver 262, 264 kors- 292 se ven cross inter-leaver 292 korsde- 293 slump- 260 interleaving 289 cross- 289 invers egen - 20 -element 19 multiplikativ - 20, 23, 2728 irreducibla minimalpolynom 115 irreducibla polynom 3435, 45 iteration 258 iterativ avkodning 245, 249 iterativ avkodningsprocedur 245 Jelinek 260 Jordan 55 Journal de Mathmatiques Pures et Appliques 55 Jupiter 116 kanal - med minne 13 AVGB- 207208, 215 brusig - 7, 194, 231 BSC- 215216, 282 diskret minnesls - 263 diskret minnesls gaussisk - 262 -kapacitet 7, 16 -kodare 7 minnesls - 195 radio- 7, 112 fdande 153

retur- 271 kanalkodningsstandard 295 kanonisk bas 30 karakteristik talkroppens - 33 kardinaltal 2728, 30 mngdens - 20 Karl X 54 Kasami 272 katastrofal faltningskod 176 Klve 272 kod binr - 61 block- 8, 1516 dual - 64 felkorrigerande - 281 felupptckande - 281282 frkortad - 111 frkortad systematisk - 111 -modifiering 86 -ord 6162, 95, 103 -ordslngd 83 -ordssfr 82 -ordsutgng 109 perfekt - 109, 114, 116 -polynom 9599, 108 punkterad - 244 repetitions- 114 sammanlnkad - 243 seriesammanlnkad - 243 -sfr 282283 systematisk - 248 systematisk invertibel - 285 -takt 89, 13, 275 t-felsrttande - 126 trippelfelsrttande - 116 -vektor 61, 6566, 95, 108, 117, 250 kodare icke-systematiska - 258 minnesls - 8 NSC- 259260 RSC- 259260

312

systematisk - 258 systematisk cyklisk - 112 kodat system 14 kodens effektiva takt 166 kodens relativa takt 111 koder algebraiska - 39, 125 cykliska - 39 enkelfelskorrigerande - 82 frkortade - 111 modifierade linjra - 85, 111 perfekta - 82 kodhastighet 223 kodning 102 binr - 13 felkorrigerande - 7, 266 icke systematisk - 102 systematisk - 63, 102 systematisk cyklisk - 105 kodningsfrstrkning 208, 223, 233, 235, 243 se ven code gain 223 asymptotisk - 233234 utkad 235 kodningskrets systematisk - 106 kodningsvinst 295 kodord 7, 9, 15, 65, 67, 111, 113, 116, 130, 282283 faltat - 164 felaktiga - 71 giltiga - 71 giltigt - 107 grann- 72 nollskilda - 125 kodords -lngd 82, 85, 108, 113 -register 110 -registerinnehll 110 -sfr 73 -vektor 83, 8687 kodssystem en- 281282

kodtakt 223, 266, 295297 kodulering 213 se ven spaljkodad modulation 213 kolumnkoder 250 kombinationssystem 281 kommunikationssystem 9, 289 komponentkodare 243, 258, 296 konjugatelement 39 konjugater 40 konjugatklass 3940, 4344, 4950, 9798, 100, 114115, 127 korrelationsmottagare 10 korsdeinterleaver 293 korsinterleaver 292 se ven cross-interleaver 292 krets 175 kvantiseringsbrus 290 kvittering 274 se ven ACK = ACKnowledgement 274 kll -avkodare 8 -kodare 7 klla digital - 8 Lagrange 52 lagringssystem 8 lands 291 se ven upphjningar 291 laser 289 LCM = Least Common Multiple 126 se ven minsta gemensamma multipeln 126 LDPC 268 LDPC = Low-Density Parity Check 268 Leon sur le calcul des fonctions 52 Legendre 52 lengthening 86 se ven frlngning 86 likelihood ratio test 247

313

likelihoodbegreppet 245 likelihoodfunktionen 195, 263 likelihoodfrhllandetest 247 Lin 272, 285 linjr (n,k)-kod 6162 linjr kod 87, 107 linjra koder 95, 108, 119 Liouville 55 ljud -fonograf 289 -teknologi 289 -tergivningssystem 289 -tergivningsteknologi 289 LLR 247248, 252, 254, 256, 261262 - extravrden 254 apriori - 248 extra - 250 -funktionen 260 loglikelihoodfunktionen 15, 195 rknelagar fr - 253 loglikelihoodfrhllandet 247 se ven LLR = Log-Likelihood Ratio 247 Lois-Philippe 54 Lucent 267 Ludovico Ferrari 53 Lyce Louis-le-Grand 51, 53 lngdistanstelefoni 82 lgstagradspolynom 39 MacWilliams identitet 82 Mandelbaum 285 MAP 246 MAP-avkodare = maximum aposterioriavkodare 1213, 194 Masons formel 179, 182, 184 Massey 213 Mathematica 4445, 66, 7576, 80, 115, 184 matris dual - 64 enhets- 63 paritetscheck- 64

MatrixManipulation 45, 138 Maximum Likelihood 78, 86, 194, 246 meddelande 8, 61, 98, 102 -block 107 -ord 9, 14, 98, 103, 106, 131, 134, 280, 285 -polynom 98, 101102, 134 -vektor 61 medelenergi total - 220 medelenergi/dimension 220 mikrovgslnk 279 minimal minimidistans 231 minimala fria distansen 231, 233234 se ven minimum free distance 231 minimalfelregeln 246 minimalgradspolynom 126 minimalpolynom 3942, 4445, 48, 55, 115, 119, 126127, 129 associerade - 43, 100, 114, 127 associerat - 115 minimi -avstnd 70, 72 -distans 70, 116, 125127, 232, 272 -metrik 200 -vikt 70, 125 minimum free distance 231 se ven minimala fria distanse 231 minneskretsar 9 minneslngd kodares - 9 minsta gemensamma multipeln 126 se ven LCM = Least Common Multiple 126 mjuk uppskattning 254 mjuka beslut 244, 248249, 258, 263 se ven soft decisions 244 MLD = Maximum Likelihood Decoder 1516, 199 MLH-avkodare = Maximum LikeliHood-avkodare 1213 ML-mottagare 215 mobilkommunikation 213

314

modul 25 modulator 7 modulo-2 addition 20 modulorkning 29 modulr - addition 23 - aritmetik 20 - multiplikation 23 - operation 22 Monte-Carlo-simuleringar 264 Motorola 267 mottagare digital - 8 MPSK 222 MPSK = M-ary Phase Shift Keying = m-r fasskift 218 multiplikation - modulo m 22 binr - 28 skalr - 29 sluten under - 31 multiplikativ struktur 31 multiprocessorsystem 276 MUX 290 mngd 19, 2728 del- 25 heltals- 28 mngdpartitionering 224 se ven set partioning 224 NAK 285 NAK = Not AcKnowledged 274 se ven omsndningsbegran 274 narrow sense 126 se ven BCH-kod - i inskrnkt mening 126 Nec 267 nedsnkningar 291 se ven pits 291 Niccol Fontana 53 noder 175 Nokia 267 noll

-bitar 111 -block 178 -divisor 23 -kodord 72, 78, 87, 201, 278, 282 -kodvektor 70 -meddelandeord 74 -sekvens 176 -symbol 178 -syndrom 74 -tillstnd 178 -vektor 79 normerad medelenergi 233 normerad medelsignalenergi 220 NSC = NonSystematic convolutional Code 259 se ven faltningskodare icke-systematisk - 259 NTTDoCoMo 267 Nyquist-bandbredden 214, 223224 okodat system 13 omsndning 111, 275276, 282283 omsndningsbegran 274 se ven RQ = Retransmission reQuest och NAK = Not AcKnowledged 274 omsndningsfrekvens 282 ordning 31, 114 elementets - 3132, 97 gruppens - 20 multiplikativ - 125 primtals- 29 talkroppselementets - 31 paketfel 284 paketverfringstid 275 parallell kodarstruktur 244 parallell vergng 231233 parallella vergngar 234 parallellt sammanlnkade faltningskodare 244 paritetsbitar 82 paritetscheck

315

-bitar 127, 271 -block 107 -ekvationer 99 -matris 64, 66, 70, 74, 79, 8284, 99, 108109, 116, 128 semiinfinit 168 -metoden 111 -polynom 99100, 108, 119 partition 230231, 233 partitioneringsdiagram 228 partitioneringstrd 224, 226227 path 175 se ven vg 175 path metric 196 se ven vg -metrik 196 perfekt kod 109 Peterson 115, 131 Philips 289 pit wall 291 se ven hlvgg 291 pits 291 se ven hl och nedsnkningar 291 Poisson 54 polynom -division 184 -form 45, 48 -koefficienter 39 -multiplikation 102 primitiva - 33 -produkt 99 reciprokt - 100 -representation 38 potensexponent 35 Prange 95 primitiv BCH-kod 127 primitiva polynom 33, 35 primitivt element 31, 33, 40, 44, 47, 97, 114, 127 primitivt polynom 113, 127, 130 primtal 23, 2829, 32, 34 primtalsordning 29, 33 produktkod 250, 254, 258

tvdimensionell - 250 tvdimensionell enkelparitets - 251, 253 protokoll adaptiva - 271 pseudoslumpinterleaver 244 puncturing 86 se ven punktering 86 punkterad kod 74, 244 punktering 86, 296297 se ven puncturing 86 QAM 218 QASK-modulation 220 QPSK 230 QPSK-signaluppsttning 231 Qualcom 267 radikaler 53 radkoder 250 radvektor 64 ram 273 se ven frame 273 Raviv 260 Red Book 289 redundanta bitar 9, 18, 223 Reed-Solomon-kod 130, 145, 289, 292 t-felskorrigerande - 129 Reed-Solomon-kodare 243 Reed-Solomon-koder 81, 125, 129, 158, 291, 295 avkodning av - 144 relativ taktfrlust 166167 se ven fractional rate loss 166 relativt prima 32 rensning 86 se ven expurgating 86 Rsolution des quations algbriques 52 rest -block 107 -polynom 108 returkanal 111, 271

316

Richardson 266 riktade grenar 174 ring 26, 55, 96 - med identitet 26 ickekommutativ - med identitet 26 kommutativ - 26 kommutativ - med identitet 27 Robespierre 51 root of unity 126 se ven enhetsrot 126 RQ = Retransmission reQuest 274 se ven omsndningsbegran 274 RSC = Recursive Systematic convolutional Code 259260 run-length maximum - 291 minimum - 291 runlength-limited code 291 rymddatasystem 295 rymdkommunikation 267 sammanlnkad kod 243, 250 se ven concatenated code 243 sammanlnkning 258 parallell - 264 Samsung 267 sannolikhet - fr felavkodning 282 - fr omsndning 278 - fr paketfel 273274, 281, 283 aposteriori- 245 apriori- 246, 254 betingad - 10, 245 simultan - 245, 260 vergngs- 17 sannolikheten fr felhndelse 204 satellitkommunikation 213 Saturnus 116 Scipione del Ferro 53 sekvenser icke-parallella - 233 Selective Repeat, SR-ARQ 274 se ven ARQ

selektiv omsndning - 274 set partitioning 224 se ven mngdpartitionering 224 Shannon, Claude 7, 16 Shannons grns 243, 265 Shannons grnsreferens 266 shortening 86 se ven frkortning 86 sidoinformation 13, 153154, 201 sidoklass 2526, 74, 79, 107108 se ven coset 25 cyklotomisk - 50 distinkt - 25 -ledare 25, 74, 108 signal -form 10 -vektor 10 signalbrusfrhllande 17, 264 se ven SNR = Signal to Noise Ratio 17 signaler bredbandiga - 9 signalering m-r - 214 signalfldesgraf 179 signalpartition 232 signalpunkt 220 signaluppsttning 230 16-PSK- 226 32-CROSS- 224225 AM- 218 del- 225 expanderad - 224 frldra- 224 QPSK- 231 signaluppsttningar 220, 228 CROSS- 220 del- 224 en-dimensionella - 213 ortogonala 219 expanderade - 213 MPSK- 221

317

mngdimensionella - 213 QASK- 220 rektangulra - 220, 222 tv-dimensionella - 213, 219 signaluppsttnings -expansionsfaktor 233 -niv 227 -partitionering 213, 229, 237 signalval optimalt - 9 Singleton-grnsen 70 skalr 29 - multiplikation 29 -kropp 29 skiftregister 16, 95, 104105, 119, 163164, 193 -avkodare 104, 110 -kodare 104, 111 -kopplingar 104 linjra - 163 linjrt - 154 linjrt terkopplat - 104 skurfel 112, 289 skurfelskanal 152 skurfelskanaler 17 se ven channels burst error - 17 skurfelskorrigering 289 Slepian 74 slinga 175, 179 slingans cofaktor 180 slumpinterleaver 260 SNR = Signal to Noise Ratio 17 se ven signalbrusfrhllande 17 soft decisions 244, 248 se ven mjuka beslut 244 soft-decision receiver 153 soft-in/soft-ut-avkodare 249 Soleymani 295 Sony 267, 289 spalj 196 spaljdiagram 191193, 197198, 200, 230233, 236

se ven trellis diagram 191 spaljkodad modulation 213 se ven TCM = Trellis Coded Modulation 213 spann 166, 178, 185, 258 spannet se ven constraint length 166 spiralspr 291 sprningskontroll 290 standarduppstllning 74, 78 standarduppstllningsschema 77, 107 statistisk hypotesprvning 245 STMicroelectronics 267 Stop-and-Wait, SW-ARQ 274 se ven ARQ stanna och vnta - 274 suboptimala metoder 78 suddning 153 suddningsfel 153, 294 -positioner 154 suddningsfelpolynom 157 suddningsfelssignalering 294 suddningsinformation 154 survivor 196 se ven verlevare 196 SW-protokollet 277 symbol -intervall 910 -tid 7 -verfringshastighet 224 -verfringstakt 13 symbolenergi 226 symbolfel 231 symbolfelfrekvens 214, 217 syndrom 6566, 68, 7476, 78, 8081, 8384, 87, 107110, 117, 131132, 144 -avkodning 74, 79 -berkning 107108, 112 -berkningskrets 112 -berkningsregister 109110 -ekvationer 131 -koefficienter 154

318

-matris 8485, 131, 133, 144 -polynom 108109, 154 -register 110 -tabell 107108 -vektor 65, 71 -vrde 107 system bandbegrnsat - 223 faltningskodat - 14 kodat - 14, 223 okodat - 13, 223 systematisk - (n,k)-kod 111 - blockkod 63 - form 64, 82, 103 - kodning 63, 86, 104105 systematisk invertibel kod 285 systematisk kod 248249, 261, 272 taktfrlust relativ - 166 talkropp 27, 55 se ven field 27 - med ndlig ordning 28 del- 3839, 41 Galois- 28 ondlig - 27 utvidgnings- 29, 38 ndlig - 29, 34, 3839 talkroppselement 31, 290 del- 38, 41 Tannery 55 TCM 224, 237 en-dimensionell - 223 -system 227 tv-dimensionell - 223 TCM = Trellis Coded Modulation 213 se ven spaljkodad modulation 213 Thorie des fonctions analytiques 52 Thitmajshima 243244, 248, 259, 264 tidskontroll 290 tillstnd

bra - 17 dligt - 17 tillstndsdiagram 173174, 178, 191 192, 230 tillstndstabell 236 tillstndsndring 174 Trait des Substitutions 55 transfer function matrix 171 se ven verfringsfunktionmatris 171 transmissionen 179 transmissionsfunktionen 205 transponder 278 trellis diagram 191 se ven spaljdiagram 191 trdadress 226 turboavkodare terkopplad - 260 turboavkodning 249 Turboconcept 267 turbokod 266, 295 turbokodare 244, 258, 260, 296 turbokoder 243, 268, 295 turbokodning 243, 258 turbokodsstandard 295 tv-kodssystem 281 tckning 113 se ven coverage 113 tthetsfunktion betingad - 246 tthetsfrdelning brusets - 10 tmningsbitar 166 Uilaipornsawai 295 Ungerbeck 213, 224, 234, 237 Ungerbeck-kodare 226227, 229, 231, 234, 236 Ungerbeck-kodning 232 Ungerbecks designregler 234 upphjningar 291 se ven lands 291 Urbanke 266

319

utstrckning 86 se ven extending 86 utvidgningstalkropp 29, 43, 126 se ven extension field 29 utkning 86 se ven augmenting 86 vandringsvgrr 218 vektor 29 -addition 29 -delrum 30, 62, 64 dualt -rum 30 -formrepresentation 36 framkopplings- 296297 kod- 65 rad- 64 -representation 132 -rum 2930, 38, 61, 9596 terkopplings- 295 verkningsgrad effekt- 213 spektrum- 213214, 216, 220 vertikal avkodning 250, 256, 258 Victor Hugo 51 vikt -angivelse 81, 85, 178 fr dual kod 81 -frdelning 81 viktad riktad graf 175 viktdistributionsfunktionen 178 vinkelns tredelning 51 Viterbi 191, 206 -algoritmen 191, 194, 196, 199 Viterbis avkodningsmetod 260 Voyager 116 vgform 7 -signal 9 vg 175 se ven path 175 -metrik 196 se ven path metric 196 partiell 196197 unik - 193

vntetid 275, 278 vntetidens lngd 274 Wang 285 weight enumerator 81 se ven viktangivelse 81 Weldon 115 Wicker 264 terkopplingsvektor 295 verfringsfunktionsmatris 171 se ven transfer function matrix 171 verfringshastighet 276 verfringskanal 204, 278 verfringssystem binrt - 246 data- 8 verfringstid paket- 275 vergng parallell - 231 vergngssannolikhet 199, 272, 278, 282 verlevare 196, 200 se ven survivor 196

320

You might also like