Professional Documents
Culture Documents
Studentlitteratur - Ab.kodning - for.Felkontroll.2009.Swedish - Retail.ebook Distribution
Studentlitteratur - Ab.kodning - for.Felkontroll.2009.Swedish - Retail.ebook Distribution
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
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
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
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
u
info.klla kllkodare kanalkodare
modulator el skrivenhet
s(t)
kanal el. lagringsmedium
r(t)
destination kllavkodare
kanalavkodare
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
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.
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
n(t) s(t)
+
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
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
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
Sndare P(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
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)
13
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.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)
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
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
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
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
p1 p1
1 1 p1 1 1 1 p2
p2 p2
1
p1 0
p2 0,5
17
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
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.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].
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.
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).
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
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.
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
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
Studentlitteratur
35
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.
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
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
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
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
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
konjugatklass {0} {1} {1,4} {2,8} {3,12} {5} {6,9} {7,13} {10} {11,14}
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
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
42
Studentlitteratur
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
(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
44
Studentlitteratur
(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
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
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
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
50
Studentlitteratur
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
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
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
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
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.
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
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
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
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
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.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{
Studentlitteratur
69
3 Linjra blockkoder
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
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.
dmin (= 7) udda
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
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
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
Exempel 3.8 En punkterad (7,3)-kod r (6,3)-koden (betrffande punkterad kod 3.9 ). Kodens generatormatris och paritetscheckmatris r
74
Studentlitteratur
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
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
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
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.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
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
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)
= 1 + 7x 3 + 7x 4 + x 7
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
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
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
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
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
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
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
96
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
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
n 1
st =
i=0
cth(t i) mod n = 0,
t = 0,1,..., n 1
(4.8)
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
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
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.10)
Studentlitteratur
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
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
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
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.
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.
Felpolynom 0 1 x x2 x3 x4 x5 x6
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
felkorrektion ut +
Y
+
syndromberkningsregister
X
&
Skift Kodordsregister Syndrom 0 1 2 3 4 5 6 1101011 -110101 --11010 ---1101 ----110 -----11 ------1 01 001 110 011 111 101 100
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
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
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
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
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.
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.
b) c)
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
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
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
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
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.
125
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).
Denition 5.1 Inskrnkt mening (eng. narrow sense) Om b = 1 r BCH-koden en BCH-kod i inskrnkt mening.
126
Studentlitteratur
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
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
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.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
130
Studentlitteratur
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
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:
132
Studentlitteratur
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
(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
E.R. Berlekamp, Algebraic Coding Theory, New York, McGraw-Hill, 1968, reprinted and revised edition: Laguna Hills, Aegean Park press, 1984.
Studentlitteratur
134
Tyvrr r teorin fr Berlekamps algoritm mer svrtillgnglig n fr Petersons men ett exempel visar hur den anvnds.
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
136
Studentlitteratur
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
2, 7, 8, 11, 12}
2]
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]}]
5,
{n, 1, Length[s2element]}]
5,
{n, 1, Length[s3element]}]
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
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
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
{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
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],
{{+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
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
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
x4 + 3x3 + x2 + x + 3
Den korrigerade, avkodade kodvektorn (d.v.s. den uppskattade meddelandevektorn) r allts (0 1 0).
Studentlitteratur
147
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
1 i(0)S1 i = 3 i=
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
(3) = S3
L=1
i=1
i(2)S 3 i = 0 + 4 1 = 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):
Fellokaliseringspolynomet r
(x) = (x + 1)(6 x + 1) = 1 + 2 x + 6 x2
150
Studentlitteratur
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)
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
151
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)
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
Suddningsavkodning med Reed-Solomonkodning spelar en viktig roll i felkontrollsystem i CD-spelare. Genom smrre modieringar av standardavkodningen kan vi utfra suddningsavkodning med
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
2 = 5
3 = 0
4 = 0
i(0) 1 i = 3 i=1
(2) = 2
4. (2) = 0
L=1
i=1
i(1) 2 i = 5 + 3 3 = 5(1 + ) = 8 =
(3) = 3
4. (3) = 1 0
L=1 i=1
i(2) 2 i = 0 + 2 5 = 1
(3)(x) = 1 + 2 x + 1 4 x2 = 1 + 2 x + 4 x2
6. 2 = 2L k = 3
156
Studentlitteratur
(4) = 4
4. (4) = 2 0
L=2 i=1
i(3) 4 i = 0 + 2 0 + 4 5 = 2
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
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.
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
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
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
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.
163
6 Faltningskoder
... x2,x1,x0
+
Figur 6.1 (2,1,3)-faltningskodare.
(0) (0) (0) y(0) = (y0 , y1 , y2 ,...)
(6.1)
och
(1) (1) (1) y(1) = (y0 , y1 , y2 ,...) .
(6.2)
(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
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
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
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
(6.10)
167
6 Faltningskoder
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
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
+
(1) (1) (1) ... x2 ,x1 ,x0
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)
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 + ... ,
Y (i)(D) =
j=0
X (i)(D)G j(i)(D)
(6.15)
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)
(n G k 11)(D)
Studentlitteratur
171
6 Faltningskoder
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
+
Figur 6.4 Systematisk 1 -takts faltningskodare. 2 Denition 6.2
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.
173
6 Faltningskoder
tillstnd S0 S1 S2 S3 S4 S5 S6 S7
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.
... x2,x1,x0
+
174
Studentlitteratur
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.
176
Studentlitteratur
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
11 0/
S4
S6
... x2,x1,x0
Studentlitteratur
177
6 Faltningskoder
1 2n 1 1
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
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)
= 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
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
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
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
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.
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]
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
Problem 6.4
En faltningskodare har fljande generatormatris G(D) = 1 + D + D 2 1 + D3
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).
b) G(D) =
D + D3 D + D2
1 + D2 + D3 1 + D + D2 1 + D2 + D3 D
Problem 6.6
Studentlitteratur
187
+ + +
(1) (1) (1) ... x2 x1 x0
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
Problem 6.7
En faltningskod med rate 1/3 har generatorpolynomen: g1(x) = 1 + x + x2 + x3
188
Studentlitteratur
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
... x2,x1,x0
+
Figur 7.1 (3,1,2)-faltningskodare till Exempel 7.1.
Studentlitteratur
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
11 1
Studentlitteratur
00 1 00 1
110
00 1 00
110
00 1
192
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
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) = =
(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
(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
M[(r |y)] =
Mp r
i=0 j=0
(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
(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
197
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
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
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.
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
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)
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
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)
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
(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)
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
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.20)
b=1
bAd,b
(7.21)
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)
Studentlitteratur
205
7 Avkodning av faltningskoder
dfri + 1 /2
dfri
dfri p e 1 p dfri e e
(7.26)
dfri/2 + 1
dfri
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
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
okodat
-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
2dfriEb T(X,Y) N0 Y X = e E /N ,Y = 1
b 0
(7.28)
2dfriEb N0
(7.29)
208
Studentlitteratur
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.
209
7 Avkodning av faltningskoder
.
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
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
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.
mottagen symbol
y=0 5 3 0
y=1 2 3 5
212
Studentlitteratur
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
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
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
BERPSK = P
Eb r 0 =
1 e = 2
(r Eb) /22
du = 1 dr
1 e (u2/2)du = 2
Studentlitteratur
215
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
=
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
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
(8.1)
Studentlitteratur
217
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
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
Figur 8.8
Studentlitteratur
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
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
dmin = 2 sin 2m
1
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.
223
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
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
.
A0
= 2 sin (/16) 0,3902
B0
B1
C0
C2
C1
C3
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
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
xk
x2 x1
vlj signalpartition
Studentlitteratur
227
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
3 4
A0 2
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
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 2 1 0 tid
3 2 1 0
3 2 1 0
t1
t+1
...
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
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
S3
C1
C1
C1
C3
C3
S2
S1
2
S0
C0
C0
C0
4 2 0
C0
C3
Figur 8.22 Minimidistans vid parallella vergngar 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
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:
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
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
Figur 8.24
4
2
0
2sin 8
7 6
Figur 8.25
Studentlitteratur
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
Tillstnd S0 S1 S2 S3 S4 S5 S6 S7
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.
237
2 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 .
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
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= 2
2 = 5
Studentlitteratur
239
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.
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
2 2
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
0,5
1 1
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
interleaver
v1k v2k
vk
+
C2 rekursiv systematisk kod
Figur 9.1
244
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)
(9.7)
(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
9 Turbokoder
= log
(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.
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 c(x ) kanalvrden in
L (d) aposteriorivrden ut
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
Lev
extra LLR vertikal
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)
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.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.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)
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 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
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 Turbokoder
1,5 0,2 a
0,1 0,3
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.
(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.
uk
+
Figur 9.5
vk
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
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.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).
(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
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
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)
262
Studentlitteratur
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
(9.60)
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 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
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
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.
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
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.61)
(9.62)
P(d = + 1) 1 P(d = + 1)
(9.63)
(9.64)
eL(d) 1 + eL(d)
(9.65)
Studentlitteratur
(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
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.
Studentlitteratur
271
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
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.
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
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
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
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
+=
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
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
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
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
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
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).
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
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
t=3 4 dmin = 8
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
283
lg p -3 -2,5
bri -I hy
-2
RQ d-A
-1,5
-1
typ
SR
Q AR
typ-I hybrid-ARQ
0,5 genomstrmning 0
Studentlitteratur
0,4
SR -A RQ
lg p -3
-2,5
-2
-1,5
-1
-0,5
284
285
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.
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
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
EFM MUX
4,32 Mb/s synkroniseringsbitar
Optisk inspelning
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
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
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
C1avkodare
C2avkodare
32 8-bits symboler
3D
2D
Feldljande krets
1D
korsdeinterleaver m = 28
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
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
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
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
299
3. x6 + x5 + 1 4. x6 + x5 + x2 + x + 1 5. x6 + x5 + x3 + x2 + 1 6. x6 + x5 + x4 + x + 1
3 4 5 6
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
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
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
15 16 17 18 19 20 21 22
23 24 25 26 27 28 29 30
0 1 2 3 4 5 6
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
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
minimalpolynom 1+x 1 + x + x6 1 + x + x2 + x4 + x6 1 + x + x2 + x5 + x6 1 + x3 + x6 1 + x2 + x3
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
Studentlitteratur
303
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