322
Christer Frank Kodning för felkontroll

Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

Embed Size (px)

Citation preview

Page 1: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

Studentlitteratur 155x223-Stone-2001-10-12

C

M

Y

K

220mm

223mm

31850 Frank_TIT_TRY 5 okt 2004 13.30:50 sida 1 av 2

9/12

10/13

11/14,5

68mm

71mm

76mm

Christer Frank

Kodning förfelkontroll

Page 2: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

Studentlitteratur 155x223-Stone-2001-10-12

C

M

Y

K

220mm

223mm

31850 Frank_TIT_TRY 5 okt 2004 13.30:50 sida 2 av 2

9/12

10/13

11/14,5

68mm

71mm

76mm

Detta verk är skyddat av lagen om upphovsrätt. Kopiering, utöver läraresrätt att kopiera för undervisningsbruk enligt BONUS-Presskopias avtal, ärförbjuden. Sådant avtal tecknas mellan upphovsrättsorganisationer ochhuvudman för utbildningsanordnare t.ex. kommuner/universitet. Förinformation om avtalet hänvisas till utbildningsanordnarens huvudmaneller BONUS-Presskopia.

Den som bryter mot lagen om upphovsrätt kan åtalas av allmän åklagareoch dömas till böter eller fängelse i upp till två år samt bli skyldig atterlägga ersättning till upphovsman/rättsinnehavare.

Denna trycksak är miljöanpassad, både när det gäller papper och tryckprocess.

Art.nr 31850

© Författaren och Studentlitteratur 2004Omslagslayout: Leif Åbjörnsson

Printed in SwedenStudentlitteratur, LundWebbadress: www.studentlitteratur.se

KOPIERINGSFÖRBUD

Tryckning/år 1 2 3 4 5 6 7 8 9 10 2008 07 06 05 04

eISBN 978-91-44-04982-3

Page 3: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

© Studentlitteratur

1

31596 Frank.bookIHred 27 September 2004 12.51:34 sida 1 av 4

Innehåll

Förord 5

1 Introduktion till felkorrigerande kodning 71.1 Kodtyper 81.2 Modulation och demodulation 9

1.2.1 Hård och mjuk avkodning 131.3 Maximum Likelihoodavkodning 141.4 Feltyper 171.5 Felkontrollstrategier 18

2 Elementär algebra 192.1 Gruppbegreppet 19

I allmänhet 23Slutsats 23

2.2 Ringar 262.3 Talkroppar (eng. Fields) 272.4 Vektorrum 292.5 Grundläggande egenskaper hos Galois-talkroppar 31

Den multiplikativa strukturen hos Galois-talkroppar 31Den additiva strukturen hos Galois-talkroppar 33Primitiva polynom och Galois-talkroppar av ordningen

p

m

332.6 Minimalpolynom och konjugatelement 39

Faktorisering av

x

n

– 1 432.7 Algebra med Mathematica 452.8 Cyklotomiska sidoklasser 502.9 Évariste Galois 51

Litteraturhänvisningar 562.10 Problem. Elementär algebra 57

3 Linjära blockkoder 613.1 Syndrom, felupptäckt och felkorrigering 653.2 En kods minimidistans eller minimi- avstånd 70

Page 4: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

2

© Studentlitteratur

31596 Frank.bookIHred 27 September 2004 12.51:34 sida 2 av 4

3.3 Felupptäcktsförmågan för en blockkod 713.4 Sannolikheten för oupptäckta fel 713.5 Felkorrigeringsförmågan för en blockkod 723.6 Standarduppställningen och syndrom- avkodning 743.7 Viktfördelning för blockkoder 813.8 Hammingkoder 82

Viktangivelse för Hammingkoder 853.9 Modifierade linjära koder 85

Sammanfattning 863.10 Problem. Linjära koder 88

4 Cykliska koder 954.1 Grundläggande egenskaper för cykliska koder 974.2 Systematisk kodningsmetod för en cyklisk (

n,k

)-kod 1024.3 Skiftregister-kodare och -avkodare för cykliska koder 1044.4 Systematisk kodning med hjälp av skiftregister 1044.5 Syndromberäkning, felupptäckt och felkorrigering 107

4.5.1 Avkodning av cykliska koder 1084.6 Felupptäckande cykliska koder 111

4.6.1 Förkortade koder och felupptäckt med CRC 1114.7 Golaykoder 114

Aritmetisk avkodningsalgoritm för den utsträckta Golaykoden G24 117Sammanfattning 119

4.8 Problem. Cykliska koder 119

5 BCH- och Reed-Solomonkoder 1255.1 Generatorpolynommetoden för BCH-koder 1255.2 Designprocedur för BCH-koder 1265.3 Grundläggande egenskaper hos Reed-Solomon-koder 129

5.3.1 Konstruktion av en

t

-felskorrigerande Reed-Solomon-kod med längden

q

m

– 1 1295.4 Avkodning av BCH-koder 131

5.4.1 Petersons direktlösnings-avkodningsalgoritm för en binär

t

-felskorrigerande BCH-kod 1315.4.2 Berlekamps avkodningsalgoritm 134Berlekamps algoritm för avkodning av binära BCH-koder 135

5.5 BCH-koder med Mathematica 1385.6 Avkodning av Reed-Solomon-koder 144

5.6.1 Peterson-Gorenstein-Zierlers avkodningalgoritm 144

Page 5: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

© Studentlitteratur

3

31596 Frank.bookIHred 27 September 2004 12.51:34 sida 3 av 4

5.6.2 Berlekamp-Masseys avkodningsalgoritm 148Några av den formella derivatans viktigare egenskaper 151Forneys algoritm 151

5.7 Binär suddningsavkodning (eng. erasure decoding) 1525.7.1 Binär suddningsavkodningsalgoritm 1545.7.2 Icke-binär suddningsavkodningsalgoritm 154Sammanfattning 158

5.8 Problem. BCH- och Reed-Solomonkoder 158

6 Faltningskoder 1636.1 Linjära faltningskoder 1636.2 Impulssvar 1656.3 Grafiska analysmetoder för faltningskoder 1736.4 Katastrofala faltningskoder 1766.5 Grafer och viktangivelser 1786.6 Prestationsmått för faltningskoder 184

Sammanfattning 1856.7 Problem. Faltningskodare 185

7 Avkodning av faltningskoder 1917.1 Viterbis ”Maximum Likelihood” avkodningsalgoritm 191

Spaljédiagram (trellis diagram) 1917.2 Viterbialgoritmen 1947.3 Prestanda för faltningskoder 201

7.3.1 Binärsymmetriska kanaler (BSC) 2017.3.2 AVGB-kanaler 207Sammanfattning 209

7.4 Problem. Avkodning av faltningskoder 209

8 Kombinerad kodning och modulation (Trellis Coded Modulation) 2138.1 M-är signalering 2148.2 Kodningsförstärkning 2238.3 En- och två-dimensionell TCM 2238.4 Ungerböecks designregler 234

Sammanfattning 237Litteraturhänvisningar 237

8.5 Problem. Trellis Coded Modulation 237

9 Turbokoder 2439.1 Introduktion 243

Page 6: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

4

© Studentlitteratur

31596 Frank.bookIHred 27 September 2004 12.51:34 sida 4 av 4

9.2 Likelihood-begreppet 2459.2.1 Log-likelihood-förhållandet 2479.2.2 Turboavkodning (iterativ avkodning) 2499.2.3 Exempel med två-dimensionell enkelparitets

produktkod 2519.2.4 Räknelagar för loglikelihoodfunktioner 2539.2.5 Beräkning av LLR extravärden 254

9.3 Komponentkodare för turbokodning 2589.3.1 Återkopplad turboavkodare 2609.3.2 Avkodning med återkoppling 2629.3.3 Exempel på prestanda vid turboavkodning 264

9.4 Historik turbokoder 2669.5 Appendix för uttrycket (9.21) 268

10 Felupptäckande koder för system med returkanal 27110.1 Rena ARQ-protokoll 271

10.1.1 Prestanda för rena ARQ-protokoll 273Genomströmningen 274SW-ARQ 274GBN-ARQ 276SR-ARQ 277

10.2 Typ-I hybrid-ARQ-protokoll 280Två-kodssystemet 281En-kodssystemet 282

10.3 Typ-II hybrid-ARQ-protokoll 28510.4 Problem. Felupptäckande koder för system med returkanal 286

11 Kodningstillämpningar 28911.1 Compact Disk (CD) 28911.2 Standardiserade telekommunikationsturbokoder 295

11.2.1 Turbokodsstandard för rymddatasystem 295

12 Tabeller för felkorrigerande kodning 29912.1 Binära primitiva polynom 29912.2 Galois-talkroppar, cyklotomiska sidoklasser och

minimalpolynom 30012.3 Generatorpolynom till binära ”narrow-sense” BCH-koder 303

Sakregister 305

Page 7: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

©

Studentlitteratur

5

Förord.fm 22 september 2004 12.18:56 sida 5 av 6

Förord

Syftet med denna bok är att vara en introduktion till de grundläggande prin-ciperna för felkorrigerande och felupptäckande koder. Den är primärtavsedd att vara en kursbok vid teletekniska utbildningar men kan ävenanvändas som referens för yrkesverksamma som arbetar inom telkommuni-kationssektorn. Delar av innehållet har under en följd av år getts som val-fritt ämne i årskurs tre vid ingenjörsskolan i Kista. Innehållet förutsätterendast gymnasiekunskaper i en omfattning motsvarande Na-linjen samtnågon kännedom om matrisräkning. Avsnitt med Mathematicakod är intenödvändiga för att förstå det övriga innehållet.

Alltsedan Claude Shannon publicerade sina rön 1948 att digital informationkan överföras felfritt om informationstakten inte överstiger kanalens kapa-citet i bit/s och informationsbitarna förses med checkbitar, har man söktkonstruera koder som uppfyller Shannons kriterier

1

. I boken genomgås deviktigaste av de koder som hittills konstruerats.

I kapitel 1 genomgås strukturen för ett kommunikationssystem och felkon-trollstrategier.

Kapitel 2 ger algebraiska grunder för blockkoder.

Kapitel 3 handlar om linjära blockkoder och deras användning.

Kapitel 4 behandlar linjära 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 går igenom Trellis Coded Modulation (TCM).

1

Se avsnittet om Informationsteori och källkodning i C. Frank:

Telekommuni-kation

, Studentlitteratur, 2004.

Detta dokument har framställts med FrameMaker 4.0.4

Page 8: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

Förord

6

©

Studentlitteratur

Förord.fm 22 september 2004 12.18:56 sida 6 av 6

Kapitel 9 presenterar grunderna för turbokoder.

Kapitel 10 går igenom de viktigaste felupptäckande kodtyperna.

I kapitel 11 ges ett par tillämpningsexempel på felkorrigerande kodning.

I kapitel 12 finns tabeller för beräkningar på blockkoder.

För egen del väcktes mitt intresse för ämnesområdet vid en kurs om ErrorCorrecting Codes and Reed-Solomon ECC respektive Combined DigitalCoding and Modulation Techniques sommaren 1990 som leddes av E. J.Weldon, Jr., University of Hawai och Gottfried Ungerböeck, IBM Zürich.Flera år senare kom professor Ben Slimane, KTH att hjälpa till att ytterli-gare vidga mina vyer inom ämnet kodning för felkontroll vid en doktorand-kurs 1997. Jag tackar honom för detta.

Knivsta i september 2004

Christer Frank

Page 9: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

©

Studentlitteratur

7

01 kap1 Intr till felkorr.fm 21 september 2004 21.07:56 sida 7 av 18

1 Introduktion till felkorrigerande kodning

1948 visade Claude Shannon i en uppsats att fel, som uppstår på enbrusig kanal, kan reduceras till en godtyckligt låg nivå med hjälp avfelkorrigerande kodning utan att för den skull göra avkall på informa-tionsöverföringshastigheten förutsatt dock, att denna inte överskriderkanalens

kapacitet

(= maximal informationsöverföringshastighet).

Att koder med sådana egenskaper går att skapa visades av Shannon.Han angav däremot inte hur koderna skulle konstrueras. Detta har letttill att många forskare har försökt konstruera koder, som så bra sommöjligt kan minimera sannolikheten för, efter avkodning, återståendebitfel, vanligen uttryckt som BER = Bit Error Rate.

Felkorrigerande kodning används vid överföring och lagring av digi-tal information (t.ex. CD = Compact Disk). Ett typiskt dataöverfö-rings- eller lagringssystem visas i Figur 1.1.

Källkodaren omvandlar utsignalen från källan till en binär informa-tionssekvens

u

. Kanalkodaren omvandlar denna informationssekvenstill en kodad sekvens eller ett kodord

v

.

Modulatorn omvandlar varje symbol i kodordet

v

till en för kanalen(t.ex. radiokanalen) lämplig vågform med varaktigheten

T

sekunder(= symboltiden). Varje sådan vågformad symbol påförs kanalen därden utsätts för störningar som brus och interferens.

Den mottagna signalen demoduleras i demodulatorn som levererar ensekvens,

r

, som är en uppskattning av det sända kodordet

v

.

Kanalavkodaren omvandlar sekvensen,

r

, till en binär sekvens, ,

som är en uppskattning av den sända,

u

. Idealt är =

u

men p.g.a.störningar i kanalen kan avkodningsfel uppkomma.

uu

Detta dokument har framställts med FrameMaker 4.0.4

Page 10: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

1 Introduktion till felkorrigerande kodning

8

© Studentlitteratur

01 kap1 Intr till felkorr.fm 24 September 2004 11.08:05 sida 8 av 18

Figur 1.1 Blockschema för dataöverföringssystem eller lagrings-system.

Källavkodaren omvandlar den uppskattade sekvensen, , till en upp-skattning av källans utsignal. För att förenkla modellen slås informa-tionskällan och källkodaren ihop till en digital källa medan källavko-daren och destinationen tillsammans utgör en digital mottagare.

1.1 Kodtyper

Två kodtyper förekommer: Blockkoder och faltningskoder.

Vid binär blockkodning uppdelas informationssekvensen i block påvardera

k

binära informationsbitar. Ett block

u

= (

u

0

,

u

1

,…,

u

k

– 1

)

kallas ett meddelande. Antalet möjliga meddelanden är 2

k

. Kodarenomvandlar varje meddelande,

u

, till ett kodord

v

= (

v

0

,

v

1

,…,

v

n

– 1

)

(

n

>

k

). Mängden 2

k

kodord med längden

n

kallas en (

n,k

)-blockkod.

Kvoten kallas kodens takt och kan tolkas som antalet informa-

tionsbitar, som påförs kodaren per överförd symbol. Kodordet ut frånkodaren beror endast av det vid samma tidpunkt förefintliga medde-landet in på kodaren, d.v.s. kodaren är ”minneslös” och kan därförrealiseras med ett grindnät.

info.källa källkodare kanalkodare modulator el

kanalel. lagrings-

medium

demod. el.läsenhet

kanalav-kodare

källav-kodaredestination

u v

ru

skrivenhet

s(t)

r(t)

u

R = kn

Page 11: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

1.2 Modulation och demodulation

©

Studentlitteratur

9

01 kap1 Intr till felkorr.fm 21 september 2004 21.07:56 sida 9 av 18

Skillnaden mellan antalet bitar i kodordet och meddelandeordet,

n

k

, utgörs av redundanta (= utan informationsinnehåll) bitar, somanvänds för att korrigera de bitar i kodordet som på grund av stör-ningar i kanalen blivit felaktigt mottagna.

Faltningskodaren lämnar också ett

n

-bitars block för varje

k

-bitarsblock, som kommer till dess ingång. Vid faltningskodning användsockså symbolerna

u

och

v

men med följande betydelse:

u

är en sek-vens in-block och

v

är en sekvens ut-block. Skillnaden motblock-kodning består i att varje ut-block är en funktion av inte enbartmotsvarande in-block utan även av

m

stycken föregående block där

m

kallas kodarens minneslängd. De kodade sekvenserna från en falt-

ningskodare ger upphov till en (

n,k,m

)-faltningskod. Kvoten

kallas kodens takt och kodaren måste innehålla minneskretsar.

1.2 Modulation och demodulation

Modulatorn i ett kommunikationssystem använder en vågformsignalmed tidslängden

T

(= symbolintervallet) som är lämplig för transmis-sion. För signaler kodade med binära symboler lämnar modulatornen av två vågformsignaler,

s

0

(

t

) och

s

1

(

t

), svarande mot binär nollaoch binär etta.

Ett optimalt signalval (BPSK = Binary Phase Shift Keying)) förbredbandiga signaler är

(1.1)

Vanligen störs den överförda signalen av gaussiskt vitt brus, sommodelleras som en additiv komponent (AVGB = Additivt Vitt Gaus-siskt Brus), se Figur 1.2.

R = kn

s0(t) = 2ET

sin 2πf0t 0 ≤ t ≤ T

s1(t) = 2ET

sin 2πf0t + π 0 ≤ t ≤ T

Page 12: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

1 Introduktion till felkorrigerande kodning

10

© Studentlitteratur

01 kap1 Intr till felkorr.fm 24 September 2004 15.33:53 sida 10 av 18

Figur 1.2 Modell för additivt brus.

Figur 1.3 Korrelationsmottagare (= demodulator).

I korrelationsmottagaren enligt Figur 1.3 avgörs om

s

0

(

t

) eller

s

1

(

t

)sänts.

För att beräkna sannolikheten för felbeslut kan Figur 1.4 användas.De två sända signalformerna

s

0

(

t

) och

s

1

(

t

) avsätts som signalvekto-

rer med längderna och i ett koordinatsystem där

E

är energini signalen under ett symbolintervall (0

t

T

). Det additiva gaussiskabrusets täthetsfördelning läggs in i diagrammet i Figur 1.4.

Den betingade sannolikheten,

P

(

r

0

|

s

1

), att mottagaren beslutar att:Givet en sänd ”etta”,

s

1

, mottaget en ”nolla”,

r

0

, är lika med areanunder den delen av täthetsfunktionen

p

1

(

x

), som ligger inom ”noll-ans” beslutsområde, d.v.s. mellan –

och 0.

+s(t)

n(t)

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

∫r(t)s0(t)dt

r(t)

Väl

j stö

rsta

s0(t)

t = T

∫r(t)s1(t)dt

s1(t)

t = T

r

E – E

Page 13: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

1.2 Modulation och demodulation

© Studentlitteratur

11

01 kap1 Intr till felkorr.fm 24 September 2004 15.33:53 sida 11 av 18

Figur 1.4 Sannolikhetsfördelning för mottagen ”nolla”

+

gaussisktbrus respektive ”etta”

+

gaussiskt brus i en BSC.

(1.2)

För en BSC (Binary Symmetric Channel) är

P

(

r

0

|

s

1

) =

P

(

r

1

|

s

0

) ochdärför är sannolikheten att mottagaren beslutar att en sänd ”etta” ären ”nolla” lika stor som sannolikheten att mottagaren beslutar att ensänd ”nolla” är en ”etta”d.v.s.

(1.3)

Händelserna:

s

1

sänd

r

0

mottagen och

s

0

sänd

r

1

mottagen ärömsesidigt uteslutande varför sannolikheten för felbeslut,

P

e

, utgörsav summan av sannolikheterna för dessa händelser men också av san-nolikheten för att ”nolla” respektive ”etta” sänts, se Figur 1.5.

– E E0

p(x)

x

s1(t)”1”

s0(t)”0”

beslutsgräns

σ = N0

2 där N0

2 är brusets tvåsidiga spektraltäthet

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

p1(x) = 1σ 2π

e– x – E2/2σ2p2(x) = 1

σ 2π e– x – (– E)

2/2σ2

P(r0|s1) = 1σ 2π

e– x – E2/2σ 2

dx– ∞

0

= subst. x – E

σ = y =

= 12π

e– y 2/2dy– ∞

– E/σ

= Q Eσ = Q 2E

N0

P(r1|s0) = Q 2EN0

Page 14: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

1 Introduktion till felkorrigerande kodning

12

© Studentlitteratur

01 kap1 Intr till felkorr.fm 24 September 2004 15.49:46 sida 12 av 18

Figur 1.5 Modell av binär kanal. Om P(r

0

|s

1

) = P(r

1

|s

0

) är kanalenav typ BSC.

P

e

=

P

(

s

0

) ·

P

(

r

1

|

s

0

) +

P

(

s

1

) ·

P

(

r

0

|

s

1

) (1.4)

En mottagare som minimerar sannolikheten för fel vid avkodning,givet den sända symbolen, maximerar sannolikheten för riktigavkodning, 1 –

P

e

=

P

(

r

|

s

), och kallas

maximum likelihoodavkodare

(MLH-avkodare):

1 –

P

e

=

P

(

s

0

) ·

P

(

r

0

|

s

0

) +

P

(

s

1

) ·

P

(

r

1

|

s

1

) =

P

(

r

0

,

r

1

|

s

0

,

s

1

) ==

P

(

r

|

s

) (1.5)

Vid mottagningen vet man dock inte vilken symbol som sänts och förde ovan angivna betingade sannolikheterna förutsattes att de sändasymbolerna var givna. Men enligt Bayes teorem:

(1.6)

kan vi istället ange sannolikheten för vilka symboler som sänts, givetde mottagna:

1 –

P

e

=

P

(

r

0

) ·

P

(

s

0

|

r

0

) +

P

(

r

1

) ·

P

(

s

1

|

r

1

) =

P

(

s

0

,

s

1

|

r

0

,

r

1

) =

P

(

s

|

r

)(1.7)

En sådan mottagare som minimerar sannolikheten för fel vid avkod-ning, givet den mottagna symbolen, maximerar sannolikheten för rik-tig avkodning, 1–

P

e

=

P

(

s

|

r

), och kallas

maximum aposterioriavko-dare

(MAP-avkodare).

SändareP(s0)

P(s1)

Mottagarer0

r1

P(r0|s0)

P(r1|s1)

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

P(s |r) = P(s) · P(r|s )

P(r)

Page 15: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

1.2 Modulation och demodulation

© Studentlitteratur 13

01 kap1 Intr till felkorr.fm 21 september 2004 21.07:56 sida 13 av 18

Under förutsättning att sannolikheterna för de sända symbolerna,P(s0) och P(s1) är lika stora (= 1/2) kommer sannolikheterna för demottagna symbolerna, P(r0) och P(r1) med en BSC också att bli likastora (= 1/2) och maximum likelihoodavkodaren och maximum apos-terioriavkodaren ger samma resultat, d.v.s. felsannolikheten för enBSC vid BPSK-modulation:

(1.8)

1.2.1 Hård och mjuk avkodning

Vid binär kodning har demodulatorn två ingångar (M = 2).

Vid binär demodulering kvantiseras utgångarna till två nivåer(M = 2). Detta kallas att avkodaren gör hårda beslut (hård avkod-ning). Denna avkodningsmetod är vanligast eftersom implemente-ringen är enkel.

Om M > 2 bestäms hur avkodningen skall göras med hjälp av s.k.sidoinformtion. Detta kallas att avkodaren gör mjuka beslut (mjukavkodning). Denna metod är mer komplicerad än hård avkodningmen ger avsevärt bättre prestanda.

Om signalerna på demodulator(= detektor)utgången även beror avtidigare signaler sägs kanalen ha minne. Om en kodad symbol över-

förs på T sekunder är symbolöverföringstakten , I ett kodat system

med kodtakten blir informationsöverföringstakten bit/s.

För att minimera kanalens distorderande inverkan på detekterings-processen till följd av kanalens begränsade bandbredd, krävs att

kanalens teoretiskt lägsta bandbredd 1 Hz. I ett okodat sys-

tem är datatakten .

1 Den verkliga bandbredden beror av signalens vågform, accepterad distorsionoch bandbreddsdefinition.

Pe = 12

· P(r1|s0) + 12

· P(r0|s1) = Q 2EN0

1T

R = knRT

W = 12T

1T

= 2W

Page 16: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

1 Introduktion till felkorrigerande kodning

14 © Studentlitteratur

01 kap1 Intr till felkorr.fm 21 september 2004 21.07:56 sida 14 av 18

I ett kodat system är datatakten (R < 1), d.v.s. reducerad i

förhållande till det okodade systemet. För att upprätthålla sammadatatakt måste bandbredden i det kodade systemet expanderas. Omytterligare bandbredd inte är tillgänglig måste någon annan metod änbinär kodning användas.

1.3 Maximum LikelihoodavkodningI mottagaren kvantiseras den mottagna signalen till ett binärt (gene-rellt: M-ärt ⇒ M avkodningsnivåer) n-bits kodord och avkodas till ettk-bits meddelandeord i avkodaren.

I ett faltningskodat system är u en sekvens med k · L informationsbi-tar medan v är ett kodord med n · L + n · m symboler där k · L ärinformationssekvensens längd. De tillkommande n · m kodade sym-bolerna genereras efter det att det sista informationsblocket harpåförts kodaren.

Ett avkodningsfel uppstår om uppskattningen .

Avkodarens betingade felsannolikhet betecknas:

P(E|r) = P( |r) (1.9)

Avkodarens felsannolikhet är:

(1.10)

där vi summerat över alla möjliga mottagna kodvektorer.

Avkodningsstrategin är att avkoda så att P(E) minimeras. Men mini-mering av P( |r) innebär att

1 – P( |r) = P( |r) (1.11)

maximeras.

RT

= 2RW

v ≠ v

v ≠ v

P(E) = P(E|r) · P(r)∑r

v ≠ v

v ≠ v v = v

Page 17: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

1.3 Maximum Likelihoodavkodning

© Studentlitteratur 15

01 kap1 Intr till felkorr.fm 21 september 2004 21.07:56 sida 15 av 18

Om alla kodord är lika sannolika, d.v.s. P(v) och P(r) är konstanta föralla kodord och sekvenser r, är maximering av (1.11) ekvivalent medatt maximera P(r|v).

För en DMC (Discrete Memoryless Channel) är

(1.12)

En avkodare som maximerar (1.12) är en MLD (Maximum Likeli-hood Decoder).

För att slippa utföra produkten definieras vanligen en loglikelihood-funktion:

(1.13)

Maximering av log-likelihoodfunktionen ger en optimal avkodningförutsatt att alla kodord är lika sannolika.

Exempel 1.1

Avkodning med MLD vid BSC

Figur 1.6 BSC.

För en blockkod med längden n är:

(1.14)

Tolkning av (1.14):

Om ⇒ avkodning enligt MLD innebär för BSC, att avkodaren väljer det

kodord, som skiljer sig åt från det mottagna i minst antal positioner.

P(r|v ) = P(ri|vi)∏i

logP(r|v ) = logP(ri|vi)∑i

Sändare0

1

Mottagare0

1

1 – p

1 – p

pp

t.ex.:

v = 1011001r = 1111100

d(r,v) = 1 +1+1 = 3

n

logP(r|v) = d(r,v)logp + (n – d(r,v))log(1 – p) = d(r,v)log p

1 – p + nlog(1 – p)

p < 12

Page 18: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

1 Introduktion till felkorrigerande kodning

16 © Studentlitteratur

01 kap1 Intr till felkorr.fm 21 september 2004 21.07:56 sida 16 av 18

Shannon visade, att, för en kanal med kapaciteten C (bit/s) och omR < C, det finns koder med takten R, som med MLD ger godtyckligtlåg avkodningsfelsannolikhet P(E). För alla R < C finns det blockko-der med längden n så att

(1.15)

och faltningskoder av m:te ordningen2 så att

(1.16)

där kodens constraint length3 nA = (m + 1)n medan Eb(R) och Ef(R)är positiva funktioner av R gällande för R < C och fullständigtbestämda av kanalens egenskaper. (1.15) och (1.16) visar att felsan-nolikheten P(E) kan göras godtyckligt liten om n och nA görs storaunder förutsättning att

(1.17)

d.v.s. genom att för blockkoder öka n och k i samma proportion ochför faltningskoder öka m medan n och k hålls konstanta.

Slutsats: Låg avkodningsfelsannolikhet kräver mycket långa koder,vilket leder till många och komplicerade beräkningar för avkodaren⇒ det blir opraktiskt att söka uppnå låg felsannolikhet m.hj.a. MLD.

Resten av boken ägnas åt att:

Konstruera bra, långa koder vars egenskaper med MLD skall satis-fiera (1.15) och (1.16) och att finna lätt implementerbara metoder attkoda och avkoda så att kodernas egenskaper kommer så nära sommöjligt de som går att uppnå med MLD.2 m:te ordningens skiftregister = längden av kodarens längsta skiftregister.3 det förekommer även en definition nA = m + 1 för constraint length.

P(E) ≤ 2– n · Eb(R)

P(E) ≤ 2– nA · Ef(R)

R = nk

= nAk

= (m + 1)n

k

Page 19: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

1.4 Feltyper

© Studentlitteratur 17

01 kap1 Intr till felkorr.fm 21 september 2004 21.07:56 sida 17 av 18

1.4 FeltyperI minneslösa kanaler, random error channels, påverkar bruset varjesymbol oberoende av de andra.

I kanaler med ”minne”, burst error channels (skurfelskanaler), ärbruspåverkan på successiva symboler inte oberoende. Figur 1.7 visaren modell av en sådan kanal (Gilbert-Elliot-modellen). Modellen hartvå tillstånd, ett ”bra” och ett ”dåligt”. Kanalen befinner sig i det”bra” tillståndet den längsta tiden, men kan ibland gå över i det”dåliga” tillståndet till följd av en djup ”fädningsdip”, d.v.s. då sig-nalbrusförhållandet (SNR = Signal to Noise Ratio) blir mycket lågt.Vid sådana tillfällen kan flera symboler efter varandra bli felaktiga.

Figur 1.7 Gilbert-Elliot-modell för skurfelskanal.

bra dåligt

Sändare0

1

Mottagare0

1

1 – p1

1 – p1

p1p1

Sändare0

1

Mottagare0

1

1 – p2

1 – p2

p2p2

Tillstånd ”bra” Tillstånd ”dåligt”

q1 och q2 är övergångssannolikheter

q1

q2

q1 q2

1 – q2

1 – q1

p1 ≈ 0 p2 ≈ 0,5

Page 20: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

1 Introduktion till felkorrigerande kodning

18 © Studentlitteratur

01 kap1 Intr till felkorr.fm 21 september 2004 21.07:56 sida 18 av 18

1.5 FelkontrollstrategierFör system i vilka informationsflödet endast går i en riktning, sändare→ mottagare eller inspelning → avspelning, måste felkorrigeringenutföras med hjälp av de redundanta bitarna i kodordet. Detta kallasFEC (= Forward Error Correction).

I en del fall finns också en returkanal, varvid felupptäckt och åter-sändning används. Detta kallas ARQ (= Automatic Repeat reQuest).

Den främsta fördelen med ARQ i förhållande till FEC är att felupp-täckt är betydligt enklare än felkorrigering. Vid felupptäckt begärsomsändning, d.v.s. meddelanden behöver bara omsändas om fel upp-täckts. Detta gör att överföringshastigheten inte reduceras så mycket,åtminstone inte om felsannolikheten är låg. ARQ förekommer fram-förallt i trådbundna system där felhalten i allmänhet är lägre än i tråd-lösa.

Page 21: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

©

Studentlitteratur

19

02 kap2 Elementär algebra.fm 22 september 2004 11.15:09 sida 19 av 60

2 Elementär algebra

2.1 Gruppbegreppet

En mängd

G

bestående av ett antal element sägs vara en grupp omvissa samband mellan elementen existerar.

Definition 2.1 Gruppbegreppet

En binär operation

G

är en regel, som för varje par ele-ment

a

och

b

på ett unikt sätt tillordnar ett element

c

=

a

b

,som också är element i

G

.

När en sådan operation definieras på

G

, sägs

G

vara slutenunder

.

Följande binära operationer måste gälla för att

G

skall vara engrupp:

1. Associativitet: (

a

b

)

c

=

a

(

b

c

) för

a

,

b

,

c

G.

2. Identitet: Det finns ett identitetselement

e

i

G

så att

a

e

=

e

a

=

a

för

a

G.

3. För varje

a

G

finns ett unikt inverselement

a

– 1

så att

a

a

– 1

=

e.

Gruppen kan dessutom ha egenskapen att vara ”kommutativ”eller ”abelsk” om det för varje par

a

,

b

gäller att

a

b

=

b

a

.

Detta dokument har framställts med FrameMaker 4.0.4

Page 22: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

2 Elementär algebra

20

©

Studentlitteratur

02 kap2 Elementär algebra.fm 22 september 2004 11.15:09 sida 20 av 60

Om operationen

är ”+” sägs gruppen vara en additiv grupp. Omoperationen

är ”·” sägs gruppen vara en multiplikativ grupp.

Exempel 2.1 Exempel på grupper

Mängden av alla heltal är en oändlig kommutativ grupp under addition. Identi-tetselementet är 0. För varje heltal

i

finns ett inverst heltal –

i

så att

i

+ (–

i

) = 0.Detta gäller inte under multiplikation eftersom det då inte finns en multiplikativinvers.

Mängden av alla rationella tal utom 0 formar en oändlig kommutativ grupp

under multiplikation. Identitetselementet är 1 och för varje rationellt tal, , där

p

och

q

är heltal, finns ett inverst rationellt tal så att .

Exemplen visar grupper med oändligt antal element. Det finns ocksågrupper med ändligt antal element.

Exempel 2.2 Mängden G =

0,1

Definiera en binär operation

”modulo-2 addition” på följande sätt:

0

0 = 0; 0

1 = 1; 1

0 = 1; 1

1 = 0

Mängden

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

Mängden

G

är en kommutativ grupp under modulo-2 addition.

Antalet element i en mängd är mängdens kardinaltal. Antalet elementi en grupp är gruppens ordning.

kardinaltal = ordning.

För kodning är ändliga grupper mest intressanta. En av de enklastemetoderna att konstruera ändliga grupper är m.hj.a. modulär aritme-tik på heltal.

pq

qp

pq · q

p = 1

Page 23: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

2.1 Gruppbegreppet

©

Studentlitteratur

21

02 kap2 Elementär algebra.fm 22 september 2004 11.15:09 sida 21 av 60

Definition 2.2 Addition modulo

m

Addition modulo

m

uttrycks på följande sätt:

a

+

b

=

c

modulo

m

som fås genom att addera

a

och

b

på vanligt sätt och därefterdividera resultatet med

m

;

c

är den uppkomna positiva restter-men.

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 oändliga heltalsmängden i m dis-tinkta ekvivalensklasser. Två heltal a och b är i samma ekvivalens-klass modulo m om a kan skrivas som a = x · m + b för något heltal x.

Exempel 2.4

Om m = 2 får vi två ekvivalensklasser, den ena bestående av alla jämna tal ochden andra av alla udda tal.

Varje element i en ekvivalensklass modulo m är ekvivalent på så sättatt det kan utbytas mot ett annat element i samma ekvivalensklassutan att ändra resultatet av modulo m operationen.

Ekvivalensklasser bestående av heltal anges vanligen med sitt minstaicke-negativa tal.

Page 24: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

2 Elementär algebra

22 © Studentlitteratur

02 kap2 Elementär algebra.fm 22 september 2004 11.15:09 sida 22 av 60

Exempel 2.5 Ekvivalensklasser under modulo 5 addition

etikett ekvivalensklass

0 ...,– 20,– 15,– 10,– 5,0,5,10,...

1 ...,– 19,– 14,– 9,– 4,1,6,11,.....

2 ...,– 18,– 13,– 8,– 3,2,7,12,.....

3 ...,– 17,– 12,– 7,– 2, 3, 8,13,....

4 ...,– 16,– 11,– 6,– 1,4,9,14,......

I fortsättningen refereras till en ekvivalensklass genom dess etikett.

Teorem 2.1 Ekvivalensklasserna 0,1,2,3,...,m – 1 formar enkommutativ grupp av m:te ordningen under modulo m heltals-addition för varje positivt heltal m.

Exempel 2.6 Gruppen med ordning 7 under modulo 7 addition

Multiplikation modulo m över heltal utförs på liknande sätt som addi-tion modulo m d.v.s. resultatet av multiplikationen divideras med moch den positiva resten behålls som resultatet av den modulära opera-tionen.

+ 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

Page 25: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

2.1 Gruppbegreppet

© Studentlitteratur 23

02 kap2 Elementär algebra.fm 22 september 2004 11.15:09 sida 23 av 60

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 avgörande skillnaden mellan modulär addition och modulärmultiplikation är att den senare inte kan skapa en ändlig grupp avheltalen 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 ingår i mängden är operationen inte slu-ten över mängden och vi har inte en grupp. Även om vi låter 0 ingå i mängdenfår vi ändå inte en grupp eftersom 0 inte har en multiplikativ invers, d.v.s. detfinns inget x så att 0 · x = 1 modulo 8. Problemet ligger i att mängden1,2,3,4,5,6,7 har åtskilliga nolldivisorer. En nolldivisor utgörs av ett godtyck-ligt nollskilt tal a för vilket det finns ett nollskilt b så att a · b = 0 modulo m.

I allmänhet

Om modulen m har andra faktorer än 1 i en given mängd så hardenna mängd nolldivisorer under modulo m multiplikation.

Slutsats

För att kunna konstruera en multiplikativ analogi till det förut givnaTeorem 2.1 måste vi begränsa våra moduler m till primtal.

Teorem 2.2 Elementen S = 1,2,3,...,p – 1 formar en gruppunder modulo p multiplikation omm (= om och endast om) p ärett primtal.

Page 26: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

2 Elementär algebra

24 © Studentlitteratur

02 kap2 Elementär algebra.fm 22 september 2004 11.15:09 sida 24 av 60

Exempel 2.9 Gruppen av ordning 6 under modulo 7 multiplikation

På samma sätt som en grupp har en ordning har vart och ett av ele-menten i gruppen en ordning. Dessa två ordningsbegrepp, gruppensordning och ett elements ordning är besläktade men inte lika.

Definition 2.3 Ordningen, ord(g), för ett gruppelement g

g är ett element i gruppen G med gruppoperationen ”·”. Ord-

ningen för g är det minsta heltal, ord(g), så att gord(g) är grup-pens identitetselement.

Exempel 2.10 Gruppen av ordning 6 under modulo 7 multiplikation

· 1 2 3 4 5 6

1 1 2 3 4 5 6

2 2 4 6 1 3 5

3 3 6 2 5 1 4

4 4 1 5 2 6 3

5 5 3 1 6 4 2

6 6 5 4 3 2 1

element ordning

1 1

2 3

3 6

4 3

5 6

6 2

Page 27: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

2.1 Gruppbegreppet

© Studentlitteratur 25

02 kap2 Elementär algebra.fm 22 september 2004 11.15:09 sida 25 av 60

Låt S vara en delmängd av gruppen G. S är en delgrupp till G om S ärsluten under de gruppoperationer som gäller för G och i övrigt satis-fierar alla gruppvillkor. En delgrupp är därmed också en grupp.

En delgrupp S är en äkta delgrupp till G om S G men S ≠ G.

Exempel 2.11

Heltalsgruppen under modulo 9 addition innehåller de äkta delgrupperna 0och 0,3,6.

Heltalsgruppen under modulo 16 addition innehåller de äkta delgrupperna0,0,8, 0,4,8,12 och 0,2,4,6,8,10,12,14.

I de diskuterade modulo-operationerna har det sagts att två heltal ärekvivalenta om de skiljer sig åt ett heltal ggr modulo m. Denna idékan generaliseras genom att låta modulen vara en delgrupp S. På såsätt kan ekvivalensklasser konstrueras vars ingående element skiljersig åt i något element i S. Ekvivalensklasserna kallas sidoklasser(eng. cosets).

Exempel 2.12 Sidoklasser

Heltalsgruppen G under modulo 9 addition innehåller den äkta delgruppenS = 0,3,6. De till S hörande distinkta sidoklasserna är 0,3,6, 1,4,7 och2,5,8.

sidoklass ekvivalensklass

0,3,6 ...,– 9,– 6,– 3,0,3,6,9,12,15,...

1,4,7 ...,– 8,– 5,– 2,1,4,7,10,13,16,...

2,5,8 ...,– 7,– 4,– 1,2,5,8,11,14,17,...

Exempel 2.13 Sidoklasser

Heltalsgruppen G under modulo 16 addition innehåller bl.a. en äkta delgruppS = 0,4,8,12, som består av de distinkta sidoklasserna 0,4,8,12, 1,5,9,13,2,6,10,14 och 3,7,11,15

sidoklassledare

sidoklassledare

Page 28: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

2 Elementär algebra

26 © Studentlitteratur

02 kap2 Elementär algebra.fm 22 september 2004 11.15:09 sida 26 av 60

sidoklass ekvivalensklass

0,4,8,12 ...,– 16,– 12,– 8,– 4,0,4,8,12,16,20,24,28,...

1,5,9,13 ...,– 15,– 11,– 7,– 3,1,5,9,13,17,21,25,29,...

2,6,10,14 ...,– 14,– 10,– 6,– 2,2,6,10,14,18,22,26,30,...

3,7,11,15 ...,– 13,– 9,– 5,– 1,3,7,11,15,19,23,27,31,...

2.2 RingarEn ring är en samling element R med två binära operationer ”+” och”·” definierade och med följande egenskaper:

1. R utgör en kommutativ additiv grupp. Det additiva iden-titetselementet är ”0”.

2. Multiplikationsoperationen är associativ:

(a · b) · c = a · (b · c) för ∀ a, b, c ∈ R

3. Multiplikationsoperationen distribueras över additions-operationen

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 utgör en ring med identitet vid normalmatris-addition och -multiplikation. Identitetsmatrisen ger egenskapen multip-likativ identitet. Matrismultiplikation är i allmänhet inte kommutativ ⇒ vi haren icke-kommutativ ring med identitet.

Page 29: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

2.3 Talkroppar (eng. Fields)

© Studentlitteratur 27

02 kap2 Elementär algebra.fm 22 september 2004 11.15:09 sida 27 av 60

Exempel 2.15

Heltal under modulo m addition och multiplikation formar en kommutativ ringmed identitet.

Exempel 2.16

Mängden av alla polynom med binära koefficienter formar en kommutativ ringunder vanlig polynom-addition och -multiplikation. En sådan ring kallas F2[x]eller GF(2)[x].

2.3 Talkroppar (eng. Fields)F är en mängd element på vilken vi kan utföra de fyra räknesättenutan att lämna mängden.

Definition 2.4 Talkroppsbegreppet

F är en mängd objekt med operationerna ”+” och ”·” definie-rade. F är en talkropp om

1. F är en additiv kommutativ grupp med det additiva iden-titetselementet ”0”.

2. F exklusive det additiva identitetselementet ”0” är enmultiplikativ kommutativ grupp med det multiplikativaidentitetselementet ”1”.

3. Multiplikation distribueras över addition, d.v.s.

a · (b + c) = (a · b) + (a · c).

En talkropp kan också definieras som en kommutativ ring med iden-titetselement och i vilken varje element har en multiplikativ invers.

Exempel 2.17 Olika oändliga talkroppar

De rationella talen utgör en av de minsta oändliga talkropparna (kardinaltal ¡0,alef-noll).

De reella talen liksom de komplexa utgör oändliga talkroppar.

Page 30: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

2 Elementär algebra

28 © Studentlitteratur

02 kap2 Elementär algebra.fm 22 september 2004 11.15:09 sida 28 av 60

Heltalen utgör inte en talkropp eftersom de flesta heltalen inte har en multipli-kativ invers.

Talkroppar med ändlig ordning (= kardinaltal) är speciellt intressantaför kodningsteorin. Ändliga talkroppar upptäcktes av Évariste Galoisoch kallas också Galois-talkroppar. En Galois-talkropp av ordning qbetecknas GF(q).

Den enklaste Galois-talkroppen är GF(2) som t.ex. kan representerasav mängden 0,1 med vanlig binär addition och multiplikation.

Galois-talkroppar av ordningen p där p är ett primtal kan konstruerasmed hjälp av Teorem 2.1 och Teorem 2.2. Heltalsmängden1,2,...,p – 1 formar en multiplikativ kommutativ grupp modulo poch heltalsmängden 0,1,2,...,p – 1 formar en additiv kommutativgrupp modulo p. Vid heltalsaritmetik distribueras multiplikation överaddition och vi har därför enligt Definition 2.4.3 en talkropp

Exempel 2.18

Använd heltalsmängden 0,1,2 under modulo 3 addition och multiplikation.Multiplikativ distribution över addition är säkrad genom att sätta 0 · a = 0 för∀ a ∈ GF(3)

+ 0 1 · 0 1

0 0 1 0 0 0

1 1 0 1 0 1

+ 0 1 2 · 1 2

0 0 1 2 1 1 2

1 1 2 0 2 2 1

2 2 0 1

Page 31: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

2.4 Vektorrum

© Studentlitteratur 29

02 kap2 Elementär algebra.fm 22 september 2004 11.15:09 sida 29 av 60

Ändliga talkroppar av primtalsordning är lätt att konstruera. Det finnsäven andra ordningar, som ger ändliga talkroppar, men q i GF(q) får

inte vara ett godtyckligt heltal, endast q = pm där p är ett primtal och

m ett heltal är möjliga. GF(q) = GF(pm) är en utvidgningstalkropp(eng. extension field) till GF(p).

För att konstruera talkroppar av ordning pm måste andra mer kom-plexa metoder än moduloräkning användas.

2.4 VektorrumLåt V vara en mängd element kallade vektorer och F en talkroppbestående av element kallade skalärer.

1. V är en kommutativ grupp under ”+”.

2. För 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: För ∀ a, b ∈ F och ∀ v ∈ V gäller att

(a · b) · v = a · (b · v).

5. Det multiplikativa identitetselementet 1 i F fungerar sommultiplikativt identitetselement vid skalär multiplikationför ∀ v ∈ V och 1 · v = v.

F kallas ”skalärkroppen” eller ”grundkroppen” av vektorrummet V.

n-tupeln v = (v0,v1,...,vn – 1) av elementen vj tagen från grundkrop-pen F är ett slags vektor.

⇒ vektoraddition: u + v = (u0 + v0, u1 + v1, u2 + v2,...,un – 1 + vn – 1)

skalär multiplikation: a · v = (a · v0, a · v1,a · v2,...,a · vn – 1).

Page 32: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

2 Elementär algebra

30 © Studentlitteratur

02 kap2 Elementär algebra.fm 22 september 2004 11.15:09 sida 30 av 60

Exempel 2.19

En samling vektorer G = v1,v2,...,vn med alla linjärkombinationer spännerupp ett vektorrum V.

Exempel 2.20

Vektorerna (1000),(0110),(1100),(0011),(1001) spänner upp rummet V4.Dessa fem vektorer är nämligen linjärt beroende, d.v.s. en av dem t.ex. (1001)kan fås som en linjärkombination av de övriga (0110) + (1100) + + (0011) == (1001).

Definition 2.5 En bas för V

En bas för V är den mängd vektorer, som har lägst kardinaltaloch som spänner upp V.

Exempel 2.21

En kanonisk bas för V4 är (1000),(0100),(0010),(0001).

Definition 2.6 Dimensionen hos en bas

En bas för V med k element har dimensionen k ⇒ dim(v) = k.

Definition 2.7 Vektordelrum

Mindre vektorrum inne i V kallas vektordelrum och deras för-hållande till vektorrummet V är av avgörande betydelse för teo-rin för linjära blockkoder.

Definition 2.8 Duala vektorrum

Om S är ett k-dimensionellt vektordelrum av ett vektorrum V så ärS⊥ det till S hörande duala vektordelrummet om det för varjeu ∈ S och varje v ∈ S⊥ gäller att u · v = 0.

Anm.: Lägg märke till att S och S⊥ inte är ömsesidigt uteslutande eftersom 0finns i båda, det finns t.o.m. vektordelrum för vilka det gäller att S = S⊥.

Det gäller också att

dim(S) + dim(S⊥) = dim(V).

Page 33: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

2.5 Grundläggande egenskaper hos Galois-talkroppar

© Studentlitteratur 31

02 kap2 Elementär algebra.fm 22 september 2004 11.15:09 sida 31 av 60

2.5 Grundläggande egenskaper hos Galois-talkroppar

En Galois-talkropp är fullständigt specificerad och därmed unikgenom sin ordning.

Exempel 2.22

Låt β vara ett element i GF(q) medan 1 är det multiplikativa identitetselemen-tet.

Eftersom GF(q) är sluten under ”·”, finns följande element i GF(q)

1,β,β2,β3,β4,...

men antalet element är ändligt ⇒ någonstans uppstår en repetition och det för-sta element som repeteras är 1.

Definition 2.9 Ordningen hos ett talkroppselement

Om β är ett element i GF(q) så är ordningen hos β, ord(β) = detminsta positiva heltal m som ger βm = 1.

Anm.: Denna definition är densamma som ordningen för ett gruppelementmen den definierade ordningen gäller den multiplikativa operationen, inteden additiva.

Definition 2.10 Primitivt element

Ett element med ordningen (q – 1) i GF(q) kallas ett primitivtelement i GF(q).

Den multiplikativa strukturen hos Galois-talkroppar

Teorem 2.3 Ordningen för varje element ∈ GF(q) ärdelare till q – 1, eller ord(β)|(q – 1).

Definition 2.11 Eulers φ-funktion

Antalet element med ord(β), där β ∈ GF(q), kan beräknas medhjälp av Eulers φ-funktion som betecknas φ(t):

Page 34: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

2 Elementär algebra

32 © Studentlitteratur

02 kap2 Elementär algebra.fm 22 september 2004 11.15:09 sida 32 av 60

(2.1)

där produkten utförs över alla positiva heltal p < ord(β) därp|ord(β) och φ(1) = 1.

Av Definition 2.11 följer att:• Om p är ett primtal ⇒ φ(p) = p – 1 eftersom alla nollskilda ele-

ment ä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 ⇒

.

Exempel 2.23 Elementens ordning i GF(11)

Enligt Teorem 2.3 är de förekommande 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

, d.v.s. det finns 4 primitiva

element i GF(11).

En undersökning visar att:

elementet med ordning 1 är 1,

elementet med ordning 2 är 10,

elementen med ordning 5 är 3, 4, 5 och 9,

elementen med ordning 10 är 2, 6, 7 och 8.

Om vi istället kallar elementen i GF(11) 0,1,β,β2,β3,β4,β5,β6,β7,β8,β9, så fårvi att

elementet med ordning 1 är 1,

elementet med ordning 2 är β5,

φ(ord(β)) = ord(β) 1 – 1p∏p|ord(β)

φ p1m · p2

n = p1m – 1 · p2

n – 1(p1 – 1)(p2 – 1)

φ(10) = 10 · 1 – 1p∏

p|10 = 10 1 – 1

2 1 – 1

5 = 4

Page 35: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

2.5 Grundläggande egenskaper hos Galois-talkroppar

© Studentlitteratur 33

02 kap2 Elementär algebra.fm 22 september 2004 11.15:09 sida 33 av 60

elementen med ordning 5 är β2, β4, β6och β8,

elementen med ordning 10 är β ,β3,β7och β9.

Den additiva strukturen hos Galois-talkroppar

Betrakta elementen i en Galois-talkropp uppkomna genom addition

0,1,1 + 1,1 + 1 + 1,1 + 1 + 1 + 1,...

Antalet element är ändligt ⇒ någonstans uppstår en upprepning.Definiera m(1) = summan av m stycken ettor.

Definition 2.12 Talkroppens karakteristik

Karakteristiken för en Galois-talkropp GF(q) är det minstaantal ettor, m, som gör att m(1) = 0.

I en Galois-talkropp med karakteristiken p gäller alltså att p(α) = 0för ∀ α ∈ GF(q) eftersom p(α) = p(α · 1) = α · p(1) = α · 0 = 0.

Om q ≠ p gäller att pm = q och p är ett primtal.

Primitiva polynom och Galois-talkroppar av ordningen pm

Det som ska visas i detta avsnitt bygger på några redan erhållnaresultat, nämligen:

1. GF(q) kan representeras av 0 och q – 1 konsekutivapotenser av ett primitivt element α ∈ GF(q).

2. Multiplikation i en Galois-talkropp, som inte har prim-talsordning kan därför göras genom att representera ele-menten som potenser av α och addera exponenternamodulo (q – 1).

3. GF(q) innehåller en delkropp av ordning p vars additivaoperation är heltalsaddition modulo p.

Page 36: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

2 Elementär algebra

34 © Studentlitteratur

02 kap2 Elementär algebra.fm 22 september 2004 11.15:09 sida 34 av 60

I detta avsnitt ska den additiva operationen utsträckas till att gälla

hela GF(q) = GF(pm). Metoden för detta grundar sig på polynom varskoefficienter tas från GF(q) (i detta fall behöver q inte vara ett primtalmen måsta vara en potens av ett primtal).

Vi inför beteckningen GF(q)[x] för alla polynom av godtyckligt grad-tal av x med koefficienterna ai från den ändliga talkroppen GF(q).

Om q = pm kan man tänka sig olika fall, d.v.s. koefficienterna kan tas

från GF(p), GF(p2),...,GF(pm) = GF(q).

Exempel 2.24

(x5 + x2) + (x2 + x +1) = x5 + 2x2 + x + 1 GF(3)[x]

(x5 + x2) + (x2 + x +1) = x5 + x + 1 GF(2)[x]

Definition 2.13 Irreducibla polynom

Ett polynom f(x) är irreducibelt i GF(q)[x] om f(x) inte kan fak-toriseras i en produkt av lägre grads polynom i GF(q)[x].

Exempel 2.25

Polynom av grad 2 i GF(2)[x], som finns är

x2 + x + 1 irreducibelt, ingen rot

x2 + x = x(x + 1) rötter: 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

grad m är delare till . x 2m – 1 + 1

Page 37: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

2.5 Grundläggande egenskaper hos Galois-talkroppar

© Studentlitteratur 35

02 kap2 Elementär algebra.fm 22 september 2004 11.15:09 sida 35 av 60

Definition 2.14 Primitiva polynom

Ett irreducibelt polynom p(x) ∈ GF(p)[x] av grad m kallas pri-mitivt om det minsta heltal n för vilket p(x) är delare till xn – 1är n = pm – 1.

Ett primitivt polynom p(x) ∈ GF(p)[x] är alltid irreducibelt iGF(p)[x] men irreducibla polynom är inte alltid primitiva.

Teorem 2.5 Rötterna j till ett m:te grads primitivt poly-

nom p(x) ∈ GF(p)[x] är av ordning pm – 1.

Av detta följer: En rot till p(x) är α. α är av ordning pm – 1. De pm – 1konsekutiva potenserna av α genererar en multiplikativ grupp som ärav ordning pm – 1. Multiplikationsoperationen görs genom att adderapotensexponenten modulo pm – 1. Exponentrepresentationen kanuttryckas genom att reducera sekvensen av potenser modulo det pri-mitiva polynomet.

Exempel 2.26 Konstruktion av GF(8)

p(x) = x3 + x + 1 är primitivt i GF(2)[x] eftersom det minsta polynom av formenxn – 1 för vilket p(x) är divisor måste vara

= x7 – 1.

Till att börja med kontrollerar vi att p(x) inte är divisor till något polynom avlägre gradtal än 7:

1. Det framgår direkt att p(x) = x3 + x + 1 inte är divisor till x3 – 1.2. Är p(x) = x3 + x + 1 divisor till x4 – 1?

Nej, eftersom divisionen inte gick jämnt upp.

x pm – 1 – 1 = x23 – 1 – 1

x x3 + x + 1 x4 + 1

x4 + x2 + x

x2 + x + 1

Page 38: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

2 Elementär algebra

36 © Studentlitteratur

02 kap2 Elementär algebra.fm 22 september 2004 11.15:09 sida 36 av 60

3. Är p(x) = x3 + x + 1 divisor till x5 – 1?

Nej, eftersom divisionen inte gick jämnt upp.

4. Är p(x) = x3 + x + 1 divisor till x6 – 1?

Nej, eftersom divisionen inte gick jämnt upp.

5. Är p(x) = x3 + x + 1 divisor till x7 – 1?

Ja, eftersom divisionen gick jämnt upp och vi har därmed visat att

p(x) = x3 + x + 1 är primitivt i GF(2)[x].

Låt α vara en rot till p(x). De 8 elementen i GF(8) kan skrivas på föl-

jande sätt där mängden 1,α,α2 är en bas för vektorformrepresentatio-nen:

x2 + 1x3 + x + 1 x5 + 1

x5 + x3 + x2

x3 + x2 + 1

x3 + x + 1

x2 + x

x3 + x + 1x3 + x + 1 x6 + 1

x6 + x4 + x3

x4 + x3 + 1

x4 + x 2+ x

x3 + x 2 + x + 1

x3 + x + 1

x2

x4 + x2 + x + 1x3 + 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

Page 39: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

2.5 Grundläggande egenskaper hos Galois-talkroppar

© Studentlitteratur 37

02 kap2 Elementär algebra.fm 22 september 2004 11.15:09 sida 37 av 60

Exempel 2.27 Konstruktion av GF(16) = GF(24)

p(x) = x4 + x + 1 är ett primitivt polynom över GF(2)

exponentialform polynomform vektorform

0 0 000

1 1 100

α α 010

α2 α2 001

α3 α + 1 110

α4 α2 + α 011

α5 α2 + α + 1 111

α6 α2 + 1 101

exponentialform polynomform vektorform

0 0 0000

1 1 1000

α α 0100

α2 α2 0010

α3 α3 0001

α4 α + 1 1100

α5 α2 + α 0110

α6 α3 + α2 0011

α7 α3 + α + 1 1101

α8 α2 + 1 1010

α9 α3 + α 0101

α10 α2 + α + 1 1110

α11 α3 + α2 + α 0111

α12 α3 + α2 + α + 1 1111

α13 α3 + α2 + 1 1011

α14 α3 + 1 1001

Page 40: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

2 Elementär algebra

38 © Studentlitteratur

02 kap2 Elementär algebra.fm 22 september 2004 11.15:09 sida 38 av 60

Vi kan konstatera att polynomrepresentationen av den ändliga krop-

pen GF(pm) har koefficienter från grundkroppen GF(p). GF(pm) kandärför tolkas som ett vektorrum med m dimensioner över GF(p).

GF(pm) kallas ibland utvidgningstalkropp till GF(p).

På samma sätt som grupper kan innehålla många delgrupper, kan en

talkropp GF(pm) innehålla deltalkroppar GF(pb), där b är delare tillm.

Exempel 2.28

GF(64) = GF(26) innehåller GF(26), GF(23), GF(22) och GF(2) som deltalkrop-par.

Teorem 2.6 Ett element i GF(qm) finns i deltalkroppen

omm βq = β.

Exempel 2.29 Deltalkroppselement i GF(64)

α är ett primitivt element i GF(64) = GF(26). Enligt föregående exempel finnsdeltalkropparna 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

Page 41: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

2.6 Minimalpolynom och konjugatelement

© Studentlitteratur 39

02 kap2 Elementär algebra.fm 22 september 2004 11.15:09 sida 39 av 60

2.6 Minimalpolynom och konjugatelementVid konstruktion av algebraiska koder fokuserar vi på val av poly-nom över ändliga talkroppar med en specificerad mängd rötter valdaur en given talkropp GF(qm). Polynomens koefficienter tas ur deltal-kroppen GF(q). Polynomen skall ha minimalt gradtal.

Definition 2.15 Minimalpolynom

α är ett element i talkroppen GF(qm).

Minimalpolynomet i α med avseende på GF(q) är det noll-skilda lägstagradspolynom p(x) i GF(q)[x] för vilket p(α) = 0.

Kunskap om faktorisering av högre ordningars talkroppar i minimal-polynom är viktig för förståelsen av cykliska koder. Den viktigastefrågeställningen vid konstruktion av en sådan kod är: Om vi vill attett polynom p(x) med koefficienter från GF(q) skall ha en rot α frånGF(qm), vilka övriga rötter måste polynomet ha?

För att angripa detta problem börjar vi med en definition.

Definition 2.16 Konjugater till talkroppselement

Om β är ett godtyckligt element i GF(qm) så är β:s konjugater

med avseende på deltalkroppen GF(q):

Tag t.ex. elementet β = α. Det gäller att alla konjugater:

till α med avseende på GF(q) formar en konju-gatklass.

Teorem 2.7 Konjugatklassen ∈ GF(qm) med avseende på

GF(q) innehåller d element med och d |m (d är delare(= divisor) till m).

Varje ändlig talkropp innehåller ett ändligt antal element. Efter att

elementen angivits upprepas de: .

β q0

, β q1

, β q2

,β q3

,...

α q0, αq1

, αq2,α q3

,...

αααα qd = αααα

α q0, αq1

, αq2,..., α qd

= αq0

Page 42: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

2 Elementär algebra

40 © Studentlitteratur

02 kap2 Elementär algebra.fm 22 september 2004 11.15:09 sida 40 av 60

Exempel 2.30

β är ett primitivt element till GF(24) = GF(16). α = β5 är ett element av 3:e ord-ningen (β5, β10, 1) i GF(16). Konjugaterna till α med avseende på GF(2) är

.

Konjugatklassen till α med avseende på GF(2) är α,α2.

Exempel 2.31

β är ett primitivt element till GF(52) = GF(25). α = β4 är ett element av 6:e ord-ningen (β4, β8, β12, β16 , β20 , 1) i GF(25). Konjugaterna till α med avseende påGF(5) är

Konjugatklassen till α med avseende på GF(5) är α,α5.

Teorem 2.8 Låt α vara ett element i GF(qm). Om p(x) är mini-malpolynomet i α med avseende på GF(q) så är rötterna 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.

De 8 elementen i GF(8) ordnas i konjugatklasser och motsvarande minimalpo-lynom beräknas:

exponentialform polynomform vektorform

0 0 000

1 1 100

α α 010

α2 α2 001

α3 α + 1 110

α4 α2 + α 011

α5 α2 + α + 1 111

α6 α2 + 1 101

α , α 2, α 22 = α, α 2 ,α 3 + 1 = α, α 2 ,α

α , α 5, α 52, α 53

, α 54, α 55

= α, α 5, α 25, α 125,α 625,α 15625 =

= α, α 5 ,α , α 5 ,α , α 5

Page 43: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

2.6 Minimalpolynom och konjugatelement

© Studentlitteratur 41

02 kap2 Elementär algebra.fm 22 september 2004 11.15:09 sida 41 av 60

Exempel 2.33 Minimalpolynom till elementen i GF(16).

med avseende på GF(4), p(x) = x4 + x + 1

De sökta minimalpolynomen har koefficienter från GF(4) som är en deltalkropptill GF(16). Deltalkroppselementen i GF(4) kan identifieras eftersom man vetatt element i GF(4) satisfierar sambandet β4 = β (se Teorem 2.6) och elementeni GF(4) är (se även Exempel 2.29):

konjugatklass associerat minimalpolynom

0 M.(x) = (x – 0) = x

1 M0(x) = (x – 1) = x + 1

α1,α2,α4 Μ1(x) = (x – α)(x – α2)(x – α4) = x3 + x + 1

α3,α6,α5 Μ3(x) = (x – α3)(x – α6)(x – α5) = x3 + x2 + 1

exponentialform polynomform vektorform

0 0 0000

1 1 1000

α α 0100

α2 α2 0010

α3 α3 0001

α4 α + 1 1100

α5 α2 + α 0110

α6 α3 + α2 0011

α7 α3 + α + 1 1101

α8 α2 + 1 1010

α9 α3 + α 0101

α10 α2 + α + 1 1110

α11 α3 + α2 + α 0111

α12 α3 + α2 + α + 1 1111

α13 α3 + α2 + 1 1011

α14 α3 + 1 1001

Page 44: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

2 Elementär algebra

42 © Studentlitteratur

02 kap2 Elementär algebra.fm 22 september 2004 11.15:09 sida 42 av 60

j · 4 – n · 15 = j

n = 1 ⇒ j = 5; n = 2 ⇒ j = 10

GF(4) =0,1,α5,α10

Exempel 2.34 Minimalpolynom till elementen i GF(16)

med avseende på GF(2)

konjugatklass associerat minimalpolynom

0 M.(x) = (x – 0) = x

1 M0(x) = (x – 1) = x + 1

α1,α4 Μ1(x) = (x – α)(x – α4) = x2 + x + α5

α2,α8 Μ2(x) = (x – α2)(x – α8) = x2 + x + α10

α3,α12 Μ3(x) = (x – α3)(x – α12) = x2 + α10x + 1

α5 Μ5(x) = (x – α5) = x + α5

α6,α9 Μ6(x) = (x – α6)(x – α9) = x2 + α5x + 1

α7,α13 Μ7(x) = (x – α7)(x – α13) = x2 + α5x + α5

α10 Μ10(x) = (x – α10) = x + α10

α11,α14 Μ11(x) = (x – α11)(x – α14) = x2 + α10x + α10

konjugatklass associerat minimalpolynom

0 M.(x) = (x – 0) = x

1 M0(x) = (x – 1) = x + 1

α1,α2,α4,α8 Μ1(x) = (x – α)(x – α2)(x – α4)(x – α8) = x4 + x + 1

α3,α6,α12,α9 Μ3(x) = (x – α3)(x – α6)(x – α12)(x – α9) = x4 + x3 + x2 + x + 1

α5,α10 Μ5(x) = (x – α5)(x – α10) = x2 + x + 1

α7,α14,α13,α11 Μ7(x) = (x – α7)(x – α14)(x – α13)(x – α11) = x4 + x3 + 1

Page 45: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

2.6 Minimalpolynom och konjugatelement

© Studentlitteratur 43

02 kap2 Elementär algebra.fm 22 september 2004 11.15:09 sida 43 av 60

Faktorisering av xn – 1

Multiplicera ihop alla associerade minimalpolynom i det senasteexemplet:

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). Därav följer:

Teorem 2.9 Mängden av alla nollskilda element i GF(qm)

utgör den totala mängden rötter till

(n = qm – 1 ⇒ i exemplet är 15 = 24 – 1) eller, vilket är ekvivalent,

elementen i GF(qm) är (qm – 1):e enhetsrötter.

Användningen av konjugatklasser vid faktorisering av polynom på

formen kan utvidgas till den mer generella formen xn – 1.

Alla rötter till xn – 1 är n:te enhetsrötter och det gäller bara (se

Teorem 2.3) att hitta den utvidgningstalkropp, qm, för vilken det gäl-

ler att n |(qm – 1).

Exempel 2.35

Faktorisera x9 – 1 i GF(2)[x].

Låt β vara en 9:e enhetsrot, d.v.s. ett element med ordning 9 finns i en talkroppGF(2m) där 9|(2m – 1) och där vi beräknar minsta m med Mathematica:

For[m = 1, IntegerQ[(2m - 1)/9] == False, m++]; m

6

Hur många gånger går 9 i 26 – 1?

(26-1)/9

xqm – 1 – 1 = 0

x qm – 1 – 1

Page 46: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

2 Elementär algebra

44 © Studentlitteratur

02 kap2 Elementär algebra.fm 22 september 2004 11.15:09 sida 44 av 60

7

Först beräknar vi konjugatklasserna.

Först har vi alltid konjugatklassen 1.

Övriga konjugatklasser beräknar vi med hjälp av Mathematica

For[m = 1; M1 = , !Mod[2 m, 9] == 1, m = Mod[2 m, 9],

M1 = Flatten[Append[M1, Mod[2 m, 9]]]]; M1

β , β2 , β4 , β8 , β7 , β5

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 första elementet i nästa konjugatklass β3:

For[m = 3; M3 = 3, !Mod[2 m, 9] == 3,

m = Mod[2 m, 9],

M3 = Flatten[Append[M3, Mod[2 m, 9]]]]; M3

β 3, β6

Motsvarande minimalpolynom:

mp3 = Times @@ Apply[Plus, x, M3]

(x + β3)(x + β6)

Låt α vara ett primitivt element i GF(26). För ett element β av 9:e ordningen

gäller då att β = α7. Elementen i GF(26) kan anges på exponentialform reduce-rade modulo ett primitivt polynom. Ett primitivt polynom med avseende på

GF(26) är 1 + α + α6.

För att bestämma minimalpolynomen låter vi Mathematica först utföra bytet

β → α7

mp1 = mp1 /. ->7

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

Page 47: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

2.7 Algebra med Mathematica

© Studentlitteratur 45

02 kap2 Elementär algebra.fm 22 september 2004 11.15:09 sida 45 av 60

mp3 = mp3 /. ->7

(x + α21)(x + α42)

och därefter kan vi få minimalpolynomen på polynomform:

mp0 = 1 + x;

mp1 = PolynomialMod[PolynomialMod[mp1,

1 + + 6], 2]

1 + x3 + x6

mp3 = PolynomialMod[PolynomialMod[mp3,

1 + + 6], 2]

1 + x + x2

2.7 Algebra med MathematicaLadda paketen FiniteFields och MatrixManipulation:

Needs["Algebra`FiniteFields`"]

Needs["LinearAlgebra`MatrixManipulation`"]

Vi börjar med att undersöka GF(2):

GF[2]

GF[2, 0, 1]

Här betyder 0,1 ett irreducibelt polynom, p(x) = 0 · x0 + 1 · x1, somman kan ta reda på genom följande operation

IrreduciblePolynomial[x, 2, 1]

x

Page 48: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

2 Elementär algebra

46 © Studentlitteratur

02 kap2 Elementär algebra.fm 22 september 2004 11.15:09 sida 46 av 60

Elementen reduceras modulo det irreducibla polynomet p(x) = x,d.v.s. elementen är: 0, 1.

Undersök hur många element som finns i GF(2):

FieldSize[GF[2]]

2

Vi antar att elementen i GF(2) är 0 och 1. Hur anges elementen i Mat-hematica?

GF[2][0]

02

GF[2][1]

12

I en utvidgningstalkropp (extension field), 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 undersöka modulo vilket polynom elementen reduceras:

IrreduciblePolynomial[, 2, 4]

1 + α3 + α4

eller

FieldIrreducible[fld1, ]

Page 49: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

2.7 Algebra med Mathematica

© Studentlitteratur 47

02 kap2 Elementär algebra.fm 22 september 2004 11.15:09 sida 47 av 60

1 + α3 + α4

Antalet element är

FieldSize[fld1]

16

Alla element utom 0 kan genereras som potenser av ett primitivt ele-

ment modulo det irreducibla polynomet p(α) = 1 + α3 + α4

elementlista1 =

Table[ElementToPolynomial[fld1[Power-List[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]

α2

α3

1+α3

1+α+α3

1+α+α2+α3

1+α+α2

α+α2+α3

1+α2

α+α3

1+α2+α3

1+αα+α2

α2+α3

Page 50: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

2 Elementär algebra

48 © Studentlitteratur

02 kap2 Elementär algebra.fm 22 september 2004 11.15:09 sida 48 av 60

Vi kan utföra multiplikation och addition i GF(16). För att göra dettagör vi om elementen till polynomform. Kopiera två element frånovanstående matris och gör om dem till ”elementform”.

a1 = PolynomialToElement[fld1, 1 + ]

1,1,0,02

b1 = PolynomialToElement[fld1, 2 + 3]

0,0,1,12

Multiplicera ihop elementen:

a1 b1

1,0,1,12

Omvandla åter till polynomform:

ElementToPolynomial[a1 b1, ]

1 + α2 + α3

Beräkna summan:

ElementToPolynomial[a1 + b1,]

1 + α + α2 + α3

Minimalpolynom

Vi undersöker minimalpolynomen till elementen i GF(16) med avse-ende på GF(4). GF(4) är en delkropp av GF(16) med elementen

0,1,α5,α10, Vi definierar ett annat irreducibelt polynom än Mathe-maticas ”defaultpolynom”.

fld2 = GF[2, 1, 1, 0, 0, 1]

GF[2, 1, 1, 0, 0, 1]

Page 51: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

2.7 Algebra med Mathematica

© Studentlitteratur 49

02 kap2 Elementär algebra.fm 22 september 2004 11.15:09 sida 49 av 60

elementlista2 =

Table[ElementToPolynomial[fld2[Power-List[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

För att t.ex. beräkna det till konjugatklassen α2,α8 associerade

minimalpolynomet (x + α2)(x + α8) kan vi göra så här:

c2 = Apart[(x + 2) (x + 8)]

x2 + xα2 + xα8 + α10

d2 = CoefficientList[c2, x]

α10,α2 + α8,1

α10 och 1 är element i GF(4) men inte α2 + α8. Vi försöker reducera

α2 + α8 modulo vårt irreducibla polynom 1 + α + α4:

e2 = PolynomialMod[PolynomialMod[2 + 8,

1 + + 4],2]

1

Minimalpolynomet associerat med konjugatklassen α2,α8 är alltså

x2 + x + α10.

Page 52: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

2 Elementär algebra

50 © Studentlitteratur

02 kap2 Elementär algebra.fm 22 september 2004 11.15:09 sida 50 av 60

2.8 Cyklotomiska sidoklasserI många fall är det uppenbart vad grundelementet i en konjugatklassär, t.ex. α, och det kan därför förutsättas utan att behöva anges. Närgrundelementet utelämnas bildar potenserna av grundelementetcyklotomiska sidoklasser.

Definition 2.17 Cyklotomiska sidoklasser

De cyklotomiska sidoklasserna modulo n med avseende påGF(q) utgör en uppdelning av heltalen 0,1,…,n – 1 i mäng-

der på formen a,aq,aq2,aq3,…,aqn – 1

Exempel 2.36 Cyklotomiska sidoklasser

De konjugatklasser som bildas av potenserna av β, som är en primitiv 15:eenhetsrot med avseende på GF(7) och motsvarande cyklotomiska sidoklasserkan anges på följande sätt:

konjugatklass cyklotomisk sidoklass

1 0

β,β7,β4,β13 1,7,4,13

β2,β14,β8,β11 2,14,8,11

β3,β6,β12,β9 3,6,12,9

β5 5

β10 10

Page 53: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

2.9 Évariste Galois

© Studentlitteratur 51

02 kap2 Elementär algebra.fm 22 september 2004 11.15:09 sida 51 av 60

2.9 Évariste Galois

Évariste Galois föddes i Bourg-la-Reine 25 oktober 1811 nära Parisoch dog i en duell vid 20 års ålder 31 maj i Paris.

Galois är berömd för sina bidrag till den del av algebran som kallas-gruppteori. Med Galois teori kunde många ditintills olösta problem,som omöjligheten av cirkelns kvadratur och vinkelns tredelning, fåsin lösning.

Hans föräldrar var Nicolas-Gabriel Galois, som under hundradagars-regimen efter Napoleons flykt till Elba valdes till borgmästare iBourg-la-Reine, och modern Adelaïde-Marie Demante som kom frånen känd juristfamilj. Adelaïde-Marie svarade för Évaristes skolgång ihemmet till 1823 då han började i Lycée Louis-le-Grand där Robes-pierre och Victor Hugo studerat.

Bland eleverna frodades liberala och antirojalistiska idéer och redanunder första terminen blev relationerna mellan den nyutnämnde rek-torn och eleverna spända. Galois´ redan förut starka misstro mot

Page 54: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

2 Elementär algebra

52 © Studentlitteratur

02 kap2 Elementär algebra.fm 22 september 2004 11.15:09 sida 52 av 60

överheten förstärktes av rektorns auktoritära ledarstil, som tog siguttryck i att många elever relegerades, eftersom de bl.a. vägrat sjungai skolans kapell och att läsa högt ur bibeln på lektionerna.

Hans begåvning visade sig tidigt under hans skolgång då han underde första åren erhöll flera pris i latin och grekiska och fem eller sexhedersomnämnanden. Vid uppnådda femton år tvingades han dock gåom tredje klassen eftersom hans resultat i retorik inte blivit god-kända. Samtidigt anmälde han sig till en kurs i matematik.

Under ledning av kursledaren Hippolyte Jean Vernier gjorde Galoisstora framsteg inom matematiken och han läste på mycket kort tid inde klassiska läroböckerna för att sedan övergå till Legendres arbeteni geometri och Lagranges avhandlingar: Résolution des équationsalgébriques (Lösning av algebraiska ekvationer), Théorie des fonc-tions analytiques (Teorin för analytiska funktioner) och Leçon sur lecalcul des fonctions (Föreläsningar i funktionslära).

Dessa verk kom att få en djupgående inverkan på Galois´ liv och per-sonlighet. Han försummade de andra skolämnena, vilket gjorde attlärarna i de humanistiska ämnena blev fientligt inställda till honommen han struntade i deras tillsägelser och förmaningar att arbeta merasystematiskt. Istället sökte han inträde vid École Polytechnique utanatt ha läst den preparandkurs, som gavs som förberedelse. Eftersomhan sålunda saknade baskunskaper misslyckades han med inträdes-provet. Själv ansåg han dock att misslyckandet var orättvist och hän-delsen bidrog till att hans opposition mot auktoriteter ytterligarehårdnade.

Vid 17 års ålder grep han sig an med ett av de svåraste problemeninom ekvationsteorin, ett problem som matematiker gått bet på ihundratals år. Huvudproblemet inom ekvationsteorin var vid dennatidpunkt, 1829: Under vilka förutsättningar kan man lösa en ekva-tion? Eller mer specifikt: Finn en metod att lösa en polynomekvationmed rationella koefficienter och en obekant. Ekvationens högsta-

gradsterm är xn.

För att bestämma lösningen får de fyra räknesätten och rotutdrag-ningar användas. De på så sätt erhållna lösningarna kallas rötter till

Page 55: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

2.9 Évariste Galois

© Studentlitteratur 53

02 kap2 Elementär algebra.fm 22 september 2004 11.15:09 sida 53 av 60

ekvationen. Att lösningen kan erhållas med de nämnda räknesättenanges genom att säga att ekvationen kan lösas med radikaler.

Redan babylonierna kunde lösa den allmänna andragradsekvationen:

ax2 + bx + c = 0 med dessa räknesätt och italienarna Scipione delFerro (1465-1526) och Niccolò Fontana (1499-1557) löste den all-

männa tredjegradsekvationen ax3 + bx2 + cx + d = 0. Nästan samti-digt löste Ludovico Ferrari (1522-1560), även han italienare, den all-

männa fjärdegradsekvationen ax4 + bx3 + cx2 + dx + e = 0. Därefterförsökte man i nästa trehundra år att med samma räknesätt lösafemte- och högregradsekvationer utan att lyckas.

Galois angav exakta kriterier för om en given ekvation kan lösas medradikaler. Den metod han uppfann för detta ligger långt från ekva-tionsteorin och kallas gruppteori. De första artiklarna om det somskulle visa sig bli gruppteori presenterade han för Franska Veten-skapsakademin 25 maj och 1 juni 1829 strax innan han avslutade sittsista år på Lycée Louis-le-Grand. Knappt två månader senare söktehan på nytt in till École Polytechnique. Återigen möttes han då avolycka och otur: Några veckor före inträdesproven, 2 juli, begickhans pappa självmord i sin våning i Paris efter att ha blivit ärekränktav en jesuitpräst. Dessutom ville Galois inte följa examinatornsinstruktioner för sin muntliga framställning. Följden blev att han förandra och sista gången kuggades i inträdesproven till École Polytech-nique. Händelserna underblåste ytterligare hans hat mot den konser-vativa hierarki som rådde i det dåtida Frankrike.

Han blev därför tvungen att nöja sig med att försöka komma in på detmindre prestigefyllda École Préparatoire (numera École Normale)men för att vinna inträde krävdes baccalauréat (ung, studentexamen),vilket han, tack vare ett mycket högt betyg i matematik, klarade inovember 1829.

Ungefär samtidigt skulle hans arbeten i gruppteori presenteras införVetenskapsakademin. Genom en serie olyckliga omständigheter, varsexakta anledningar aldrig blivit helt klarlagda, kom de emellertid ald-rig att presenteras. Cauchy utsågs till referent men han blev sjuk och

Page 56: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

2 Elementär algebra

54 © Studentlitteratur

02 kap2 Elementär algebra.fm 22 september 2004 11.15:09 sida 54 av 60

glömde senare bort presentationen. Artiklarna sändes sedan till Fou-rier, akademins dåtida ständiga sekreterare, men försvann.

Trots dessa motgångar, som bara ökade på hans redan förut negativainställning till myndigheter och överhet, förblev han en mycket pro-duktiv matematiker. Han publicerade många viktiga rön i baron de

Ferrussacs1 Bulletin des Sciences Mathématiques, Astronomiques,Physiques et Chimiques (Rapport om de matematiska, astronomiska,fysiska och kemiska vetenskaperna). Dessa artiklar visar att Galois1830 var den mest avancerade forskaren vad gäller villkoren för attlösa en ekvation med radikaler. Dock var hans lösning inte fullstän-dig men på uppmaning av Poisson utarbetade han en mer fullständiglösning, som fanns färdig före januari 1831, och som han presente-rade för Vetenskapsakademin.

Revolutionen 1830 sände den siste bourboniske kungen, Karl X, iexil men republikanerna till vilka Galois hörde blev djupt besviknanär Lois-Philippe, den avsatte kungens kusin, insattes på tronen. Viden bankett 9 maj 1831 då 19 frisläppta artilleriofficerare, anklagadeför att ha konspirerat mot kungen, deltog, reste sig Galois med ettglas i ena handen och en dolk i den andra och utbringade en skål medorden: ”Till Louis-Philippe”. Detta uppfattaddes som en grov provo-kation och Galois fängslades och placerades i Sainte-Pélagie-fängel-set en månad.

Efter en månad i frihet fängslades han på nytt för att ha burit artilleri-gardets uniform. Nu fick han sitta inne åtta månader. I mitten av mars1832 överfördes Galois från Sainte-Pélagie-fängelset till Sieur Faul-trier-kliniken p.g.a. en koleraepidemi. På sjukhuset kom han i kon-takt med en kvinna (troligen Stéphanie Dumotel dotter till en läkarevid kliniken), med vilken han hade en kortvarig relation. Hon ingår idet efterlämnade historiska materialet bland de många som misstänksha konspirerat mot och bidragit till hans förtidiga död.

Efterlämnade dokument visar att han fortsatte sin forskning underhela fängelsetiden och fram till sin död om vilken har spunnits en hel

1 Baron André d´Audebard de Ferrussac, 1786-1836, gav under tiden1823-1831 ut denna tidskrift i Paris.

Page 57: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

2.9 Évariste Galois

© Studentlitteratur 55

02 kap2 Elementär algebra.fm 22 september 2004 11.15:09 sida 55 av 60

del myter. Troligen var det ett gräl som ledde fram till den ödesdigraduellen som ändade hans liv 31 maj 1832.

Galois´ kvarlämnade manuskript publicerades 1846 av Joseph Liou-ville i Journal de Mathématiques Pures et Appliquées. 1870 publice-rade Camille Jordan hela Galois´ teori: Traité des Substitutions.Dessa arbeten gjorde hans arbeten tillgängliga och säkrade hans platsi matematikens historia.

13 juni 1909 uppsattes en plakett vid hans anspråkslösa födelseplats iBourg-la-Reine och matematikern Jules Tannery höll ett uttrycksfullttal tillägnat Galois, ett tal som samma år publicerades i Bulletin desSciences et Mathématiques.

Sammanfattning• Sambandet mellan de beskrivna algebraiska strukturerna

beskrivs i Figur 2.1.• En grupp kan vara additiv eller multiplikativ men inte nödvän-

digtvis kommutativ. • En abelsk grupp (= kommutativ grupp), är additiv eller multipli-

kativ med invers.• En ring är kommutativ additiv men inte kommutativ multiplika-

tiv.• En talkropp är både kommutativ additiv och kommutativ mul-

tiplikativ, vilket är detsamma som en ring, som dessutom haregenskapen att vara kommutativ multiplikativ, något som kän-netecknar en ring med identitet.

• Minimalpolynom definieras med hjälp av dessa algebraiskastrukturer. Minimalpolynom utgör grundstenar vid konstruktionav cykliska koder.

Page 58: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

2 Elementär algebra

56 © Studentlitteratur

02 kap2 Elementär algebra.fm 22 september 2004 11.15:09 sida 56 av 60

Figur 2.1 Samband mellan algebraiska strukturer.

Litteraturhänvisningar

Stephen B. Wicker, Error Control Systems for Digital communica-tion and Storage, Prentice Hall, New Jersey, 1995.

Kenneth W. Cattermole, Mathematical Foundations for Communica-tion Engineering, Volume 2 Statistical Analysis and Finite Structures,Pentech Press, London, 1986.

Zhe-xian Wan, Introduction to Abstract and Linear Algebra, Student-litteratur, Lund, 1992.

Rudolf Lidl, Harald Niederreiter, Introduction to finite fields andtheir applications, Revised Edition, Cambridge University Press,Cambridge, 1994.

Mängd

Grupp

Abelsk grupp

Ring

Talkropp

Page 59: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

2.10 Problem. Elementär algebra

© Studentlitteratur 57

02 kap2 Elementär algebra.fm 22 september 2004 11.15:09 sida 57 av 60

Robert J. McEliece, Finite Fields for Computer Scientists and Engi-neers, Kluwer Academic Publishers, Dordrecht, 1987.

van der Waerden, B.L., Algebra, vol. 1, 7th edition, Springer-Verlag,Berlin, 1966.

2.10 Problem. Elementär algebraProblem 2.1

Konstruera en tabell för gruppen av ordning 6 under modulo-6 addition.

Problem 2.2

Konstruera en tabell för gruppen av ordning 2 under modulo-3 multiplikation.

Problem 2.3

Konstruera en tabell för gruppen av ordning 13 under modulo-13 addition.

Problem 2.4

Konstruera en tabell för gruppen av ordning 12 under modulo-13 multiplika-tion.

Problem 2.5

Bestäm ordningen hos elementen i GF(13). Hur många primitiva element finns?

Page 60: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

2 Elementär algebra

58 © Studentlitteratur

02 kap2 Elementär algebra.fm 22 september 2004 11.15:09 sida 58 av 60

Svar:

4 primitiva element

Problem 2.6

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

Problem 2.7

Låt α vara ett element av ordning 65535 i GF(65536). Bestäm konjugaterna tillα med avseende på GF(2), GF(4), GF(16) och GF(256).

Problem 2.8

Bestäm graden hos minimalpolynomet med avseende på GF(2)[x] för tal-kroppselementen med ordningen 5, 9 och 13.

Svar:

4, 6 och 12

Problem 2.9

Bestäm de binära minimalpolynomen till x5 + 1.

element ordning

1 1

2 12

3 3

4 6

5 4

6 12

7 12

8 4

9 3

10 6

11 12

12 2

Tabell 2.1

Page 61: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

2.10 Problem. Elementär algebra

© Studentlitteratur 59

02 kap2 Elementär algebra.fm 22 september 2004 11.15:09 sida 59 av 60

Svar:

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

Problem 2.10

Bestäm antalet binära irreducibla polynom vid faktorisering av x19 + 1.

Svar:

2

Problem 2.11

Uppdela x17 + 1 i binära minimalpolynom.

Problem 2.12

Bestäm antalet irreducibla polynom med avseende på GF(3)[x] vid faktorise-ring av x13 – 1.

Svar:

5

Page 62: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

02 kap2 Elementär algebra.fm 22 september 2004 11.15:09 sida 60 av 60

Page 63: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

©

Studentlitteratur

61

03 kap3 Linjära blockkoder.fm 21 september 2004 21.07:57 sida 61 av 94

3 Linjära blockkoder

Figur 3.1 Principen för blockkodning.

Varje kodat block innehåller

n

bitar och

n

>

k

. I en binär kod medblock om

k

bitar finns det 2

k

olika meddelanden. Varje

k

-bits medde-lande eller block representeras av en

k

-dimensionell meddelandevek-tor

u

. Varje

k

-bits block kodas till ett

n

-bits kodord, som kan repre-senteras av en kodvektor

v

.

Definition 3.1

En blockkod med längden

n

innehållande 2

k

kodord är en binärlinjär (

n

,

k

)-kod om de 2

k

kodorden utgör ett

k

-dimensionelltdelrum av det

n

-dimensionella vektorrummet över GF(2).Generellt kan GF(2) ersättas av GF(

q

).

Okodad seriell dataström

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

k bitar

blockkodare

n bitar

Detta dokument har framställts med FrameMaker 4.0.4

Page 64: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

3 Linjära blockkoder

62

©

Studentlitteratur

03 kap3 Linjära blockkoder.fm 21 september 2004 21.07:57 sida 62 av 94

Eftersom en binär linjär (

n

,

k

)-kod

C

är ett

k

-dimensionellt delrum ivektorrummet

V

n

, är det möjligt att hitta

k

linjärt oberoende kodord

g

0

,

g

1

,...,

g

k

– 1

i

C

så att varje kodord

v

i

C

är en linjärkombination avdessa

k

kodord:

v

=

u

0

g

0

+

u

1

g

1

+ ... +

u

k

– 1

g

k

– 1

. (3.1)

Det gäller

(3.2)

Om ett meddelande

u

skall kodas blir motsvarande kodord:

v

=

u

·

G

=

u

0

g

0

+

u

1

g

1

+ ... +

u

k

– 1

g

k

– 1

.

(3.3)

De

k

raderna i

G

spänner upp ett

k

-dimensionellt delrum av

V

n

, d.v.s.den (

n

,

k

)-linjära koden

C

.

G

är en generatormatris för

C

. Eftersomdessa

k

rader entydigt bestämmer (

n

,

k

)-koden behöver kodaren baralagra dessa rader för att skapa alla linjärkombinationer av dem, d.v.s.generera alla kodord.

Exempel 3.1

Följande generatormatris är given

Meddelandet

u

= (1101) skall kodas

=

u

0

g

0

+

u

1

g

1

+

u

2

g

2

+

u

3

g

3

=

G =

g0g1

gk – 1

=

g00 g01 g0 n – 1g10 g11 g1 n – 1

gk – 1 0 gk – 1 1 gk – 1 n – 1

G =

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

v = u · G = u0 u1 u2 u3

g0

g1

g2

g3

Page 65: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

©

Studentlitteratur

63

03 kap3 Linjära blockkoder.fm 21 september 2004 21.07:57 sida 63 av 94

Detta är ett exempel på ”systematisk kodning” vid vilken det ursprungliga med-delandet återfinns ograverat i början eller slutet av kodordet.

Vi har alltså en linjär systematisk blockkod. Vid systematisk kodning kan en

k

×

n

G

-matris

delas upp i en

k

× (n – k) P-matris och en k × k enhetsmatris

G = [PIk].

Exempel 3.2

v = (v0 v1 v2 v3 v4 v5 v6)

n – k k oförändrade meddelandebitar

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

+

n kolumner

k raderG =

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

G =

· · · 1 0 0 0

· · · 0 1 0 0

· · · 0 0 1 0

· · · 0 0 0 1

n – k k

k rader

kolumner kolumner

v = (u0 u1 u2 u3)

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

Page 66: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

3 Linjära blockkoder

64 © Studentlitteratur

03 kap3 Linjära blockkoder.fm 21 september 2004 21.07:57 sida 64 av 94

v3 = u0

v4 = u1

v5 = u2

v6 = u3.

Enligt vad vi sett förut, finns till varje delrum ett dualt delrum ochsumman av delrummets och det duala delrummets dimensioner == rummets dimension.

Teorem 3.1 För varje k × n matris G över GF(2) med k lin-järt oberoende rader finns en (n – k) × n matris H över GF(2)med n – k linjärt oberoende rader så att varje radvektor i G ärortogonal mot var och en av H:s rader. H är den till G dualamatrisen (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 linjära kombinationerna av de n – k raderna i H utgör en tillC[(n,k)-kod] dual kod Cd[(n,n – k)-kod].

Om G är på systematisk form, G = [P Ik], så är H = [In – k PT].

Exempel 3.3

v0 = u0 +u2 + u3v1 = u0 +u1 + u2v2 = u1 +u2 + u3

kodens paritetscheckekvationer

P Ik

G =

1 1 0

0 1 1

1 1 1

1 0 1

1 0 0 0

0 1 0 0

0 0 1 0

0 0 0 1

Page 67: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

3.1 Syndrom, felupptäckt och felkorrigering

© Studentlitteratur 65

03 kap3 Linjära blockkoder.fm 21 september 2004 21.07:57 sida 65 av 94

3.1 Syndrom, felupptäckt och felkorrigeringSänd kodvektor är v.

Mottagen kodvektor är r.

Felvektorn är e = r + v.

Ettor i felvektorn representerar fel.

Det gäller r = v + e.

Vid mottagning beräknas syndromvektorn

s = r · HT = (v + e) · HT = 0 + e · HT. (3.4)

Om s = 0 är r ett kodord.

Om s ≠ 0 är r inte ett kodord, d.v.s. ett fel har upptäckts.

s kan användas för att korrigera fel.

Strategin för att korrigera fel är1. Beräkna e.2. Bilda r + e som är det sända kodordet.

Problem: Beräkning av e ur de n – k ekvationerna s = r · HT ger inteen entydig lösning utan vi får 2k olika felmönster, som ger sammasyndrom. Man försöker därför att finna den lösning för e, som mini-merar sannolikheten för felaktig avkodning.

Om kanalen är BSC och störningen är AVGB, är det sannolikaste fel-mönstret e, det som har minst antal ettor.

In – k PT

H =

1 0 0

0 1 0

0 0 1

1 0 1 1

1 1 1 0

0 1 1 1

Page 68: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

3 Linjära blockkoder

66 © Studentlitteratur

03 kap3 Linjära blockkoder.fm 21 september 2004 21.07:57 sida 66 av 94

Exempel 3.4

Koden (n,k) = (7,4) med generatormatris och paritetscheckmatris enligt Exem-pel 3.3 används och sänd kodvektor är

v = (1001011) medan mottagen kodvektor är

r = (1001001).

Vi beräknar syndromet

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 finns 27 = 128 möjliga kodvektorer och därmed lika många fel-vektorer (eller felmönster) medan det finns 23 = 8 möjliga syndrom, motsvararvarje syndrom 27 – 3 = 24 = 16 olika felmönster

Den troligaste felvektorn är den med minst antal ettor (= minst antal fel).

Med hjälp av Mathematica kan vi beräkna vilken denna felvektor är:

Låt oss till att börja med göra en lista med alla 27 = 128 möjliga binära kodord,men vi tar inte med (den långa) utskriften

lista = IntegerDigits[Table[i, i, 0, 127], 2]];

För att få en ungefärlig uppfattning om listans utseende gör vi en förkortadutskrift så här:

Short[lista]

s = r H T = (1 0 0 1 0 0 1)

1 0 0 1 0 1 1

0 1 0 1 1 1 0

0 0 1 0 1 1 1

T

Page 69: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

3.1 Syndrom, felupptäckt och felkorrigering

© Studentlitteratur 67

03 kap3 Linjära blockkoder.fm 21 september 2004 21.07:57 sida 67 av 94

0, <<126>>, 1, 1, 1, 1, 1, 1, 1

För att få alla kodord att innehålla 7 binära symboler fyller vi på med nollor pådem som har färre än 7.

tabell = Table[PadLeft[lista[[n]], 7], n, 1,Length[lista]];

En förkortad 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 varför

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

Lägg märke till att index för felbitarna i felvektorn är en enhet mindre än mot-svarande elementnummer i lista.

Nu kan vi låta Mathematica undersöka vilka felvektorer som satisfierar ekva-tionssystemet:

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 &&

Page 70: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

3 Linjära blockkoder

68 © Studentlitteratur

03 kap3 Linjära blockkoder.fm 21 september 2004 21.07:57 sida 68 av 94

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 lösningar på ettåskådligt sätt:

Needs["LinearAlgebra`MatrixManipulation`"]

MatrixForm[Drop[Sort[Table[If[nylista[[n, 1]]

== True, tabell[[n]],], n, 1, Length[nylista]]],112]]

Av matrisen framgår att det finns endast en felvektor med en etta (minimaltantal ettor), och den troligaste felvektorn är därför e = (0000010) och efter kor-rigering får vi v* = e + r = (0000010) + (1001001) = (1001011).

Syndromet, som har 3 bitar, kan anta 23 = 8 olika värden, motsvarande 1 felfrittkodord med syndromet (000), samt ytterligare 7 andra kodord, vart och ett medett enkelfel. För att ta reda på varje syndroms motsvarande felvektor bildar vien matris, ematris, för alla e-vektorer och använder 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,

i

k

jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj

0 0 0 0 0 1 0

0 0 0 1 1 1 1

0 0 1 0 1 0 1

0 0 1 1 0 0 0

0 1 0 0 0 0 1

0 1 0 1 1 0 0

0 1 1 0 1 1 0

0 1 1 1 0 1 1

1 0 0 0 1 0 0

1 0 0 1 0 0 1

1 0 1 0 0 1 1

1 0 1 1 1 1 0

1 1 0 0 1 1 1

1 1 0 1 0 1 0

1 1 1 0 0 0 0

1 1 1 1 1 0 1

y

zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz

Page 71: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

3.1 Syndrom, felupptäckt och felkorrigering

© Studentlitteratur 69

03 kap3 Linjära blockkoder.fm 21 september 2004 21.07:57 sida 69 av 94

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]

och slutligen får vi motsvarande smatris:

smatris = MatrixForm[e.Transpose[H]]

i

k

jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj

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 0 0 0

0 0 0 0 1 0 0

0 0 0 0 0 1 0

0 0 0 0 0 0 1

y

zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz

i

k

jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj

0 0 0

1 0 0

0 1 0

0 0 1

1 1 0

0 1 1

1 1 1

1 0 1

y

zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz

Page 72: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

3 Linjära blockkoder

70 © Studentlitteratur

03 kap3 Linjära blockkoder.fm 21 september 2004 21.07:57 sida 70 av 94

3.2 En kods minimidistans eller minimi- avstånd

Definition 3.2 Antalet ettor i ett kodord v betecknas w(v) == kodens Hammingvikt, men ofta bara vikt.

Definition 3.3 Hammingavståndet mellan två kodord v och wär antalet positioner som kodorden är olika och betecknasd(v,w).

Följande samband råder

d(v,w) = w(v + w) (3.5)

En kods C minimiavstånd dmin definieras:

dmin = minw(v + w); v,w ∈C, v ≠ w =

= minw(x); x ∈C, x ≠0 wmin. (3.6)

wmin är den linjära kodens minimivikt.

Teorem 3.2 En linjär kods minimiavstånd = minimivikten(egentligen avståndet till nollkodvektorn, som alltid ingår ien linjär kod).

Om C är en linjär kod med paritetscheckmatrisen H så är kodensminimiavstånd lika med det minsta antalet kolumner i H vars summaär 0 och man kan visa att

antalet kolumner = dmin ≤ n – k – 1 (Singleton-gränsen) (3.7)

Exempel 3.5

H för den givna (7,4)-koden är

Eftersom alla kolumner är olika kan inte två kolumner summeras till 0 mensummeras kolumnerna 0, 2 och 6 får vi 0 ⇒ kodens minimavstånd är 3.

kolumn nr 0 1 2 3 4 5 6

H = 1 0 0 1 0 1 1

0 1 0 1 1 1 0

0 0 1 0 1 1 1

Page 73: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

3.3 Felupptäcktsförmågan för en blockkod

© Studentlitteratur 71

03 kap3 Linjära blockkoder.fm 21 september 2004 21.07:57 sida 71 av 94

3.3 Felupptäcktsförmågan för en blockkodEtt kodord skiljer sig från ett annat i minst dmin positioner. Kodenkan därmed alltid upptäcka fel i högst dmin – 1 positioner.

Det finns 2n möjliga kodord, varav ett är riktigt och 2n – 1 felaktiga.

Det finns 2k giltiga kodord, varav ett är riktigt men 2k – 1 är giltigaoch därmed oupptäckbara.

Upptäckbara fel är alltså 2n – 1 – (2k – 1) = 2n – 2k, d.v.s. i dessa fallfår vi en syndromvektor s ≠ 0.

3.4 Sannolikheten för oupptäckta felC är en (n,k) linjär kod.

Ai är antalet giltiga kodvektorer med vikt i och vi antar att vi har enbinärsymmetrisk kanal enligt Figur 3.2.

p är sannolikheten för bitfel. Uttrycket för sannolikheten att ett fel ien kodvektor inte upptäcks är lika med sannolikheten att fel uppstårpå så sätt att den mottagna kodvektorn överförs till en annan giltigkodvektor:

Figur 3.2 Modell över binärsymmetrisk kanal (Binary SymmetricChannel = BSC).

1 – p

1 – p

p

p

0

1

0

1

BSC

Page 74: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

3 Linjära blockkoder

72 © Studentlitteratur

03 kap3 Linjära blockkoder.fm 21 september 2004 21.07:57 sida 72 av 94

(3.8)

Uttrycket kan enklast uppfattas som sannolikheten att ett sänt noll-kodord överförs till ett annat giltigt kodord.

3.5 Felkorrigeringsförmågan för en blockkodMinimiavståndet är antingen jämnt eller udda.

Exempel 3.6 dmin är udda.

Figur 3.3 Kodord och grannkodord på udda Hamming-avstånd.

Exempel 3.7 dmin är jämnt

Figur 3.4 Kodord och grannkodord på jämnt Hamming-avstånd.

Pu(E) = Ai · pi 1 – p n – i∑i = dmin

n

”kodord” ”grannkodord”

dmin (= 7) udda

kodsfärer

andra kodordpå Hammingavstånd1, 2, ..., 7 från ”kodord”

”kodord” ”grannkodord”

dmin (= 8) jämnt

kodsfärer

andra kodordpå Hammingavstånd1, 2, ..., 8 från ”kodord”

Page 75: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

3.5 Felkorrigeringsförmågan för en blockkod

© Studentlitteratur 73

03 kap3 Linjära blockkoder.fm 21 september 2004 21.07:57 sida 73 av 94

I båda fallen gäller att korrekt avkodning sker om kodvektorn hamnar innanförrespektive kodords kodsfär, d.v.s. felkorrigeringsförmågan

Felkorrigeringsförmågan: för en blockkod är:

, (3.9)

vilket utläses som att t är heltalsdelen av .

Ett kodord blir felaktigt avkodat om det uppstår fler än t fel. Om felenär oberoende av varandra blir sannolikheten för felaktig avkodningav ett kodord:

. (3.10)

Felaktig avkodning uppstår alltså när det avkodade kodordet hamnatinom fel kodsfär. Om nollkodordet sänts betyder detta att vikten hosdet felaktiga kodordet är ≥ t + 1. För att t.ex. hamna inom grannkod-ordets kodsfär räcker det med att felet är just t + 1 om dmin är udda.En konservativ uppskattning av en övre gräns för bitfelssannolikhe-ten är att vi antar att maximalt ytterligare t fel kan ha inträffat när vifår en felaktig avkodning till ett visst felaktigt kodord. Eftersom felenär oberoende är sannolikheten för bitfel likformigt fördelad över de ikodordet ingående n bitarna varför vi får följande uttryck för en övregräns för bitfelssannolikheten:

. (3.11)

t = dmin – 1

2

dmin – 12

Pko(E) = ni pi 1 – p n – i∑

i = t + 1

n

Pb(E) ≤ i + tn

ni pi 1 – p n – i∑

i = t + 1

n

Page 76: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

3 Linjära blockkoder

74 © Studentlitteratur

03 kap3 Linjära blockkoder.fm 21 september 2004 21.07:57 sida 74 av 94

3.6 Standarduppställningen och syndrom- avkodning

Teorem 3.3 En sidoklass består av alla kodord med ett givetsyndrom. Inom varje sidoklass är sidoklassledaren det kodordsom har lägst vikt.

Teorem 3.4 Om r är det mottagna ordet, består mängden möj-liga felaktiga kodord av den sidoklass som innehåller r. Dentroligaste felvektorn utgörs av sidoklassledaren i den sidoklasssom innehåller det mottagna kodordet r. Principen för avkod-ning av en linjär kod är: Beräkna syndromet enligt ekvation(3.4), subtrahera felvektorn associerad med detta syndrom frånr för att finna det troligast sända kodordet.

Slepians standarduppställning består av att

1. På en rad ställa upp de tillåtna (okodade) meddelandeorden mednollmeddelandeordet längst till vänster.

2. Ett steg till vänster om nollmeddelandeordet och med början pånästa rad ställa upp syndromen, med nollsyndromet överst, i enkolumn.

3. I nästa kolumn, under nollmeddelandeordet, ställa upp de medsyndromen associerade felvektorerna som sidoklassledare.

4. Bilda möjliga felkodord i varje kolumn under de felfria kodor-den genom att till vart och ett av dessa addera sidoklassledaren,som befinner sig näst längst till vänster på varje rad. Varje rad istandarduppställningen kommer på detta sätt att utgöra en sido-klass.

Exempel 3.8

En punkterad (7,3)-kod är (6,3)-koden (beträffande punkterad kod 3.9 ).Kodens generatormatris och paritetscheckmatris är

Page 77: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

3.6 Standarduppställningen och syndrom- avkodning

© Studentlitteratur 75

03 kap3 Linjära blockkoder.fm 21 september 2004 21.07:57 sida 75 av 94

För att bilda kodorden tar vi hjälp 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]]

Därefter bildar vi enligt ekvation (3.4) syndromen för de 6 olika möjliga enkel-felen:

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]]

G =

1 0 0 1 1 0

0 1 0 1 0 1

0 0 1 0 1 1

H =

1 1 0 1 0 0

1 0 1 0 1 0

0 1 1 0 0 1

i

k

jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj

0 0 0 0 0 0

0 0 1 0 1 1

0 1 0 1 0 1

1 0 0 1 1 0

0 1 1 1 1 0

1 0 1 1 0 1

1 1 0 0 1 1

1 1 1 0 0 0

y

zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz

Page 78: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

3 Linjära blockkoder

76 © Studentlitteratur

03 kap3 Linjära blockkoder.fm 21 september 2004 21.07:57 sida 76 av 94

Dessa 6 syndrom motsvarar 6 enkelfel, d.v.s. alla enkelfel som är möjliga. Föratt bestämma de felvektorer som motsvarar syndromet 111 undersöker vi därför

vilka syndrom som bildas av alla möjliga dubbelfel. Det finns möjliga

dubbelfel. De möjliga dubbelfelen beräknas med Mathematica genom attbestämma alla permutationer av ett av de möjliga 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 fås med följande Mathematicain-struktion:

MatrixForm[PolynomialMod[dubbelfelvektorer.

Transpose[paritetscheckmatrisen], 2]]

i

k

jjjjjjjjjjjjjjjjjjjjjjj

0 0 1

0 1 0

1 0 0

0 1 1

1 0 1

1 1 0

y

zzzzzzzzzzzzzzzzzzzzzzz

62 = 15

Page 79: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

3.6 Standarduppställningen och syndrom- avkodning

© Studentlitteratur 77

03 kap3 Linjära blockkoder.fm 21 september 2004 21.07:57 sida 77 av 94

Det framgår att såväl den 5:e, 8:e som den 10:e felvektorn bildar syndromet111, d.v.s. vid en överföring påverkad av additivt vitt gaussiskt brus är felvek-torerna (100001), (010010) och (001100) lika sannolika om syndromet 111 bil-dats. Detta innebär att ett mottaget felaktigt kodord med syndromet 111 harHamming-avståndet 2 till tre olika riktiga kodord och man kan välja att korri-gera det mottagna kodordet till vilket som helst av dessa tre riktiga kodord.

Standarduppställningsschemat får följande utseende

Figur 3.5 Standarduppställningsschema till Exempel 3.8.

syndrom 000 001 010 100 011 101 110 111

000 000000 001011 010101 100110 011110 101101 110011 111000

001 000001 001010 010100 100111 011111 101100 110010 111001

010 000010 001001 010111 100100 011100 101111 110001 111010

100 000100 001111 010001 100010 011010 101001 110111 111100

011 001000 000011 011101 101110 010110 100101 111011 110000

101 010000 011011 000101 110110 001110 111101 100011 101000

110 100000 101011 110101 000110 111110 001101 010011 011000

111 010010 011001 000111 110100 001100 111111 100001 101010

i

k

jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj

0 1 1

1 0 1

0 1 0

1 0 0

1 1 1

1 1 0

0 0 1

1 1 1

1 0 0

1 1 1

0 0 1

0 1 0

1 1 0

1 0 1

0 1 1

y

zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz

Page 80: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

3 Linjära blockkoder

78 © Studentlitteratur

03 kap3 Linjära blockkoder.fm 21 september 2004 21.07:57 sida 78 av 94

Av Exempel 3.8 framgår att mottagaren endast behöver lagra syndro-men och de med dessa associerade felvektorerna för att göra en riktigfelkorrigering, ty för varje mottaget kodord behöver vi endastberäkna syndromet varefter det riktiga - korrigerade - kodordeterhålls genom att från det mottagna kodordet subtrahera den mot detberäknade syndromet svarande felvektorn.

Trots denna besparing av lagringsutrymme blir standarduppställ-ningen snabbt otymplig när kodordslängden blir större. Standardupp-ställningen är ändå principiellt viktig eftersom avkodningen skerenligt principen ”Maximum Likelihood”.

För större kodordslängder måste andra - ofta suboptimala metoder -tillgripas. Prestanda för dessa bör närma sig dem som uppnås medkorrigering enligt Maximum Likelihood-principen.

Exempel 3.9

Bestäm bitfelssannolikheten för (6,3)-koden i Exempel 3.8.

Se Figur 3.5: I översta raden finns meddelandeorden, vart och ett med 3 bitar. Inästa rad återfinns motsvarande kodord. Därefter följer 6 rader med kodord somskiljer sig från det riktiga i en bit. Allra sist finns en rad med kodord som skiljersig från de riktiga i två bitar.

Om vi antar att nollkodordet sänts så kan vi konstruera en tabell för

Bitfelssannolikheten för (6,3)-koden

Kolumn Antal fel

1 (1 – p)6 + 6p(1 – p)5 + p2(1 – p)4 0

2 3p2(1 – p)4 + 2p3(1 – p)3 + 3p4(1 – p)2 1

3 3p2(1 – p)4 + 2p3(1 – p)3 + 3p4(1 – p)2 1

4 3p2(1 – p)4 + 2p3(1 – p)3 + 3p4(1 – p)2 1

5 p2(1 – p)4 + 4p3(1 – p)3 + p4(1 – p)2 +2p5(1 – p) 2

6 4p3(1 – p)3 + p4(1 – p)2 +2p5(1 – p) + p6 2

7 p2(1 – p)4 + 4p3(1 – p)3 + p4(1 – p)2 +2p5(1 – p) 2

8 3p2(1 – p)4 + 2p3(1 – p)3 + 3p4(1 – p)2 3

Page 81: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

3.6 Standarduppställningen och syndrom- avkodning

© Studentlitteratur 79

03 kap3 Linjära blockkoder.fm 21 september 2004 21.07:57 sida 79 av 94

Bitfelssannolikheten:

Pb = 0 · [(1 – p)6 + 6p(1 – p)5 + p2(1 – p)4] + 1 · [9p2(1 – p)4 +

+ 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] =

= 22p2(1 – p)4 + 36p3(1 – p)3 + 24p4(1 – p)2 + 12p5(1 – p) + 2p6 =

= p = 0,01 ≈ 0,00072.

Approximativa uttryck för bitfelssannolikheten

Som jämförelse kan bitfelssannolikheten också räknas ut med hjälp av en enkelapproximativ formel och med den på föregående sida givna uppskattningen fören övre gräns för bitfelshalten:

Med

≈ 0,00072 + 0,00001 ≈ 0,00073

Exempel 3.10 Syndromavkodning

Betrakta (7,4)-koden i Exempel 3.5. Paritetscheckmatrisen är

Koden har 23 = 8 sidoklasser och det finns därför 8 korrigerbara felmönsterinklusive nollvektorn.

dmin = 3 ⇒ alla felmönster med vikt 0 och 1 kan korrigeras (det med vikt 0 ärdock rätt redan från början).

13

13

Pb ≈ dn

Pko = dn

6i p i 1 – p 6 – i ∑

i = 2

6

= 36

1 – 6i p i 1 – p 6 – i ∑

i = 0

1

=

= 36

1 – 1 – p 6– 6p 1 – p 5 = p = 0,01 = 36

· 0,0015 ≈ 0,00075

Pb ≤ i + 16

6i p i 1 – p 6 – i ∑

i = 2

6

≈ 36

62 p2 1 – p 4 + 4

6 6

3 p3 1 – p 3 + ... ≈

H =

1 0 0 1 0 1 1

0 1 0 1 1 1 0

0 0 1 0 1 1 1

Page 82: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

3 Linjära blockkoder

80 © Studentlitteratur

03 kap3 Linjära blockkoder.fm 21 september 2004 21.07:57 sida 80 av 94

Med Mathematica beräknar vi de mot de 7 enkelfelvektorerna svarande syndro-men.

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.Trans-pose[H], 2]]

Vi kan nu ställa upp en tabell över kodens syndrom och de därmed associeradefelvektorerna:

Anm.: Lägg märke till att syndromen utgörs av elementen i H:s kolumner.

syndrom felvektor

101 0000001

111 0000010

011 0000100

110 0001000

001 0010000

010 0100000

100 1000000

i

k

jjjjjjjjjjjjjjjjjjjjjjjjjjjjj

1 0 1

1 1 1

0 1 1

1 1 0

0 0 1

0 1 0

1 0 0

y

zzzzzzzzzzzzzzzzzzzzzz

Page 83: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

3.7 Viktfördelning för blockkoder

© Studentlitteratur 81

03 kap3 Linjära blockkoder.fm 21 september 2004 21.07:57 sida 81 av 94

Om

v = (1001011) sänts och

r = (1001111) mottagits så börjar vi med att beräkna syndromet s = r · HT

Ur tabellen ovan ser vi att detta motsvarar e = (0000100).

Mottaget kodord är den maximalt troliga uppskattningen av det sända kodor-det v och = r + e = (1001011).

3.7 Viktfördelning för blockkoderFör att kunna göra en exakt bestämning av en kods egenskaper vadbeträffar felupptäcktsförmåga och felkorrigeringsförmåga måste manveta kodens viktfördelning. Viktfördelningen för en kod anges medett polynom

(3.12)

kallat viktangivelsen (weight enumerator).

För många koder är viktangivelsen inte känd men för ett antal klas-ser, bl.a. Reed-Solomon-koderna, är viktangivelsen känd.

I många fall är det lättare att arbeta med den duala kodens viktangi-velse än med kodens egna viktangivelse. Följande samband mellanen kods och dess duala kods viktangivelser gäller:

s = (1001111)

1 0 0

0 1 0

0 0 1

1 1 0

0 1 1

1 1 1

1 0 1

= (011)

vv

A(x) = A0 + A1x + A2x2 + … + Anxn

Page 84: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

3 Linjära blockkoder

82 © Studentlitteratur

03 kap3 Linjära blockkoder.fm 21 september 2004 21.07:57 sida 82 av 94

Teorem 3.5 MacWilliams identitet.A(x) och B(x) är viktangivelser för en (n,k) kod C och dessduala (n,n – k)-kod C⊥. Sambandet mellan A(x) och B(x) är

(3.13)

3.8 HammingkoderHammingkoderna tillhör de äldsta koderna. De beskrevs i en artikelav Hamming i april 19501 fastän de var väl utvecklade redan 1947och 1948. De användes först för felkorrigering vid långdistanstele-foni.

De binära Hamming-kodernas egenskaper anges vanligen med hjälpav:

ett heltal: m ≥ 2

kodordslängden: n = 2m – 1

antalet informationsbitar: k = 2m – m – 1

antalet paritetsbitar: m = n – k

felkorrigeringsförmågan: t = 1 ⇒ Hamming-koder är alltid enkelfels-korrigerande

Hammingkoder är perfekta koder, d.v.s. alla kodord ligger innanförkodordssfärer.

Paritetscheckmatrisens, H, kolumner består av alla nollskilda m-tup-ler. Om H är angiven på systematisk form kan H skrivas på följandesätt:

H = [Im Q] (3.14)

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

B(x) = 2– k 1 + x nA1 – x1 + x

Page 85: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

3.8 Hammingkoder

© Studentlitteratur 83

03 kap3 Linjära blockkoder.fm 21 september 2004 21.07:57 sida 83 av 94

där Im är en m × m enhetsmatris medan Q består av 2m – m – 1kolumner med vikten 2 eller mer.

Exempel 3.11

Låt m = 3 då blir kodordslängden n = 2m – 1 = 23 – 1 = 7. En kod med kod-ordslängden 7 och som även i övrigt uppfyller alla kriterier på en Ham-ming-kod återfinns i Exempel 3.5 som har paritetscheckmatrisen

och generatormatrisen

.

Det minsta antal kolumner i H som kan summeras till 0 är 3.

I Exempel 3.10 uppmärksammade vi att syndromen utgörs av ele-menten i H:s kolumner. Orsaken till detta sammanhänger med attHamming-koderna är enkel-felskorrigerande. Låt nämligen r vara enmottagen kodordsvektor, som har ett enkelfel motsvarande en felvek-tor e med ett fel i position j. Paritetscheckmatrisens rader benämnervi [d0 d1 … dn – 1]. I mottagaren beräknas syndromet:

s = rHT = eHT = (0 0 0 … 0 1 0 … 0) = (3.15)

d.v.s. vi erhåller den transponerade j:te kolumnen av H.

H = 1 0 0 1 0 1 1

0 1 0 1 1 1 0

0 0 1 0 1 1 1

G =

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

d0T

d1T

dn – 1T

djT

Page 86: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

3 Linjära blockkoder

84 © Studentlitteratur

03 kap3 Linjära blockkoder.fm 21 september 2004 21.07:57 sida 84 av 94

Korrigering av ett mottaget Hamming-kodord, som innehåller nolleller ett fel, kan då utföras på följande sätt:

1. Beräkna mottaget kodords syndrom.2. Bestäm 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.

Följande 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 beräknar syndromen för 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]]

Första 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) ochavkodat (0 1 1). Andra raden i syndrommatrisen motsvarar kolumnen i position5 i H-matrisen ⇒ komplementera elementet i position 5 i r2, d.v.s. r2korr =

i

k

jjjjjjj

1 0 0

1 1 1

0 0 0

y

zzzzzzz

Page 87: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

3.9 Modifierade linjära koder

© Studentlitteratur 85

03 kap3 Linjära blockkoder.fm 21 september 2004 21.07:57 sida 85 av 94

= (1 0 0 0 1 1 0) och avkodat (1 1 0). Tredje raden i syndrommatrisen är 0 var-för mottaget kodord r3 = (1 0 1 1 1 0 0) är korrekt och avkodat (1 0 0).

Viktangivelse för Hammingkoder

Viktangivelsen för en Hamming-kod är

(3.16)

där koefficienten Ai för termen xi är antalet kodord med vikten i.

Exempel 3.13

Viktangivelsen för en Hamming-(7,4)-kod fås på följande sätt:

Kodordslängden n = 7 vilket gör att

Detta innebär att det finns

1 kodord med vikten 0

7 kodord med vikten 3

7 kodord med vikten 4

1 kodord med vikten 7

3.9 Modifierade linjära koderI många tillämpningar finns dels yttre begränsningar och/eller bivill-kor, som inte har med felkorrigeringsegenskaperna att göra, sombestämmer längden på blocken i koden. Så har t.ex datortillämp-ningar krav på att ordlängden skall vara en multipel av 8, medankodens naturliga längd avviker härifrån. Det är då möjligt att modi-fiera kodens längd (dock försvinner en del av de algebraiska egenska-perna).

A(x) = 1n + 1

1 + x n + n 1 – x 1 – x2 n – 1 /2

A(x) = 18

1 + x 7 + 7 1 – x 1 – x2 7 – 1 /2 = 1 + 7x 3 + 7x 4 + x7

Page 88: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

3 Linjära blockkoder

86 © Studentlitteratur

03 kap3 Linjära blockkoder.fm 21 september 2004 21.07:57 sida 86 av 94

Följande benämningar på kodmodifiering används.

Punktering (eng. puncturing) (n,k) → (n – 1,k)

Utsträckning (eng. extending) (n,k) → (n + 1,k)

Förkortning (eng. shortening) (n,k) → (n – 1,k – 1)

Förlängning (eng. lengthening) (n,k) → (n + 1,k + 1)

Rensning (eng. expurgating) (n,k) → (n,k – 1)

Utökning (eng. augmenting) (n,k) → (n,k + 1).

Exemplen visar 1 bits förändring av kodordslängd eller antal infor-mationsbitar. Metoden är dock inte begränsad till bara 1 bits föränd-ring utan exemplen visar bara principen. Figur 3.6 visar en grafisk

beskrivning enligt Berlekamp2 av olika modifieringar.

Sammanfattning

• Den binära informationsströmmen indelas i block vart och ettmed längden k och kodas i en linjär binärkodare till ett kodordmed längden n där n > k.

• Kodningen kan formellt uppfattas som att en meddelandevektoru multipliceras med en generatormatris G till en kodordsvektorv.

• Vid systematisk kodning består kodordet av det sammanhäng-ande k bitar långa meddelandeordet åtföljt eller föregånget avde n – k checkbitarna.

• Maximum Likelihood-korrigering och avkodning innebär att ettmottaget kodord r korrigeras till det giltiga kodord, som skiljersig från det mottagna i minst antal binära positioner (minstaHamming-avstånd). Detta förutsätter att den felgenererandestörningen modelleras som additivt vitt gaussiskt brus. Det gäl-ler nämligen då att små brussignaler är mer sannolika än stora,d.v.s. färre fel är troligare än fler.

2 E.R. Berlekamp, Algebraic Coding Theory, New York: McGraw-Hill, 1968(rev. ed., Laguna Hills, Aegan Press, 1984)

Page 89: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

3.9 Modifierade linjära koder

© Studentlitteratur 87

03 kap3 Linjära blockkoder.fm 21 september 2004 21.07:57 sida 87 av 94

Figur 3.6 Metoder att modifiera linjära blockkoder enligt Berlekamp.

• En kods felupptäcktsförmåga och felkorrigeringsförmåga berorav minimiavståndet mellan två godtyckliga kodord. Eftersomnollkodordet alltid ingår i en linjär kod är detta minimiavståndekvivalent med vikten hos det nollskilda kodord som har minstantal ettor - kodens minimivikt.

• Vid korrigering och avkodning i mottagaren beräknas först syn-dromet varefter den med syndromet associerade felvektorn sub-traheras från den mottagna kodordsvektorn.

• Hamming-koder är enkelfelskorrigerande.• Hamming-koder är perfekta koder.

G =

1 1 0 1 0 0 0

0 1 1 0 1 0 0

0 0 1 1 0 1 0

0 0 0 1 1 0 1

H =

0 0 1 0 1 1 1

0 1 0 1 1 1 0

1 0 0 1 0 1 1

G =

1 1 1 1 1 1 1 1

0 1 0 1 1 1 0 0

0 0 1 0 1 1 1 0

0 0 0 1 0 1 1 1

H =

1 1 1 1 1 1 1 1

0 0 0 1 0 1 1 1

0 0 1 0 1 1 1 0

0 1 0 0 1 0 1 1

G =

1 0 1 1 1 0 0

0 1 0 1 1 1 0

0 0 1 0 1 1 1

H =

1 1 1 1 1 1 1

0 0 1 0 1 1 1

0 1 0 1 1 1 0

1 0 0 1 0 1 1

(7,4) linjär kod (7,3) linjär kod

(8,4) linjär kod

rensa

utöka

utsträck

punktera

förkorta

förläng

Page 90: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

3 Linjära blockkoder

88 © Studentlitteratur

03 kap3 Linjära blockkoder.fm 21 september 2004 21.07:57 sida 88 av 94

3.10 Problem. Linjära koder

Problem 3.1

Givet: En kod C med följande fyra kodord

C = (00100),(10010),(01001),(11111)

Om en ML-avkodare används i en mottagare, besluta vilket kodord som sänts

a) om r = (00000) mottagits

b) om r = (00111) mottagits

c) om r = (01101) mottagits

d) om r = (10110) mottagits.

Svar:

a) 00100

b) 00100 eller 11111

c) 01001

d) 10010

e) 01001 eller 10010

Problem 3.2

Betrakta en systematisk (8,4)-kod med paritetscheckekvationerna

v0 = u1 + u2 + u3

v1 = u0 + u1 + u2

v2 = u0 + u1 + u3

v3 = u0 + u2 + u3

där u0,u1,u2 och u3 är meddelandebitar medan v0,v1,v2 och v3 är paritetscheckbi-tar. Bestäm kodens generator- och paritetscheckmatriser. Visa att kodens mini-midistans är 4.

Page 91: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

3.10 Problem. Linjära koder

© Studentlitteratur 89

03 kap3 Linjära blockkoder.fm 21 september 2004 21.07:57 sida 89 av 94

Svar:

och

Problem 3.3

Visa att en repetitionskod med jämn längd aldrig kan vara perfekt.

Problem 3.4

Bestäm längd, dimension och minimidistans för en kod vars paritetscheckma-tris är

Svar:

längd = 7

dimension = 3

minimidistans = 3

Problem 3.5

Bestäm en paritetscheckmatris till koden med generatormatrisen

G =

0 1 1 1 1 0 0 0

1 1 1 0 0 1 0 0

1 1 0 1 0 0 1 0

1 0 1 1 0 0 0 1

H =

1 0 0 0 0 1 1 1

0 1 0 0 1 1 1 0

0 0 1 0 1 1 0 1

0 0 0 1 1 0 1 1

H =

1 0 0 0 1 0 1

0 1 0 0 1 1 1

0 0 1 0 1 1 1

0 0 0 1 0 1 1

G =

1 0 1 0 1 1

1 1 0 1 0 1

1 1 1 1 0 1

1 0 0 0 1 1

Page 92: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

3 Linjära blockkoder

90 © Studentlitteratur

03 kap3 Linjära blockkoder.fm 21 september 2004 21.07:57 sida 90 av 94

Svar:

Problem 3.6

Konstruera paritetscheck- och generatormatris för en (7,4) Hamming-kod.

Svar:

och

Problem 3.7

Konstruera en syndromavkodningstabell för en (7,4) Hamming-kod.

Svar:

Problem 3.8

Korrigera och avkoda följande mottagna vektorer

a) r = (010000000000000)

b) r = (001111100000000)

med paritetscheckmatrisen

H =

0 1 0 1 0 0

1 1 0 0 1 0

1 0 0 0 0 1

H =

1 0 0 1 0 1 1

0 1 0 1 1 0 1

0 0 1 0 1 1 1

G =

1 1 0 1 0 0 0

0 1 1 0 1 0 0

1 0 1 0 0 1 0

1 1 1 0 0 0 1

syndrom felpositioner 1 0 00 1 00 0 11 1 00 1 11 0 11 1 1

1 0 0 0 0 0 00 1 0 0 0 0 00 0 1 0 0 0 00 0 0 1 0 0 00 0 0 0 1 0 00 0 0 0 0 1 00 0 0 0 0 0 1

Page 93: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

3.10 Problem. Linjära koder

© Studentlitteratur 91

03 kap3 Linjära blockkoder.fm 21 september 2004 21.07:57 sida 91 av 94

Svar:

a) 000000000000000

b) 001111000000000

Problem 3.9

En källkodare förser symboler med kvart-tupler enligt nedan:

mellanslag→0011

E →1100

H →0110

L →0100

M→0010

P →1101

U →1010

A →0101

En kanalkodare använder matrisen G enligt nedan:

för att koda meddelanden.

Avkoda följande sekvens. Korrigera därvid varje vektor till närmaste kodord.

11010110 10001011 10011000 10101101 11110100 01000110 10100101

Svar:

LEAP UP

H =

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

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

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

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

G =

0 0 0 1 1 1 0 1

1 0 0 1 0 1 1 0

0 1 0 1 1 0 1 0

0 0 1 0 1 1 1 0

Page 94: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

3 Linjära blockkoder

92 © Studentlitteratur

03 kap3 Linjära blockkoder.fm 21 september 2004 21.07:57 sida 92 av 94

Problem 3.10

Låt H vara paritetscheckmatrisen till en linjär (n,k)-kod C. Konstruera en nylinjär kod C1 med följande paritetscheckmatris:

Visa att C1 är en linjär (n + 1,k)-kod. C1 kallas en utsträckning av C.

Problem 3.11

Tilldela tecken till 4-tuplar enligt följande lista:

mellanslag→ 0000 M → 1001

A → 0001 N → 1010

B → 0010 O → 0101

C → 0100 R → 0111

D → 1000 S → 1110

E → 0011 T → 1011

F → 0110 U → 1101

G → 1100 Y → 1111

4-tuplarna kodas med följande generatormatris

H1 =

0

0

0

0

0 H

0

0

0

1 1 1 . . . . 1

G =

1 1 1 0 0 0 0

1 0 0 1 1 0 0

0 1 0 1 0 1 0

1 1 0 1 0 0 1

Page 95: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

3.10 Problem. Linjära koder

© Studentlitteratur 93

03 kap3 Linjära blockkoder.fm 21 september 2004 21.07:57 sida 93 av 94

Avkoda, under förutsättning att högst ett fel kan uppstå i vart och ett av dekodade 7-bitarsorden, följande mottagna sekvenser:

a) 111000 1100011 1001100 0100111 0110000 1000011 1000000

0101011

b) 1110011 1000111 1111001 0011111 0010110 1000000 1100110

0100111 0001111 0000001 1100111 1100011 1101001 1001111

0010110

c) 1010110 1000011 0000011 0001000 1101111 0000101 1110101

0000000 0011110 0100101 1100101 1011010

Svar:

a) DECODE B

b) TEARS FOR FEARS

c) SEE YOU SOON

Page 96: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

03 kap3 Linjära blockkoder.fm 21 september 2004 21.07:57 sida 94 av 94

Page 97: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

©

Studentlitteratur

95

04 kap4 Cykliska koder.fm 21 september 2004 21.07:58 sida 95 av 124

4 Cykliska koder

Cykliska koder studerades första av Prange

1

. De utgör en viktig del-klass av linjära koder eftersom de lätt kan genereras och avkodasmed skiftregister.

Definition 4.1

En (

n

,

k

) linjär kod

C

är en cyklisk kod om varje skift av enkodvektor i

C

också är en kodvektor, d.v.s. givet ett kodord:

c

= (

c

0

,

c

1

,

c

2

,...,

c

n

– 1

)

C

så finns det också ett kodord

= (

c

n

– 1

,

c

0

,

c

1

,...,

c

n

– 2

)

C.

Hårdvarumässigt innebär det att

är ett cykliskt högerskift av

c

ochatt alla

n

cykliska skift av

c

också måste vara kodord.

För att förstå den underliggande strukturen hos cykliska koder asso-cierar vi med varje kodord

c

ett kodpolynom

c

(

x

) =

c

0

+

c

1

x

+

c

2

x

2

+... +

c

n

– 1

x

n

– 1

. (4.1)

Om

c

är en

q

-när (

n

,

k

)-kod så utgör alla kodord i

c

ett vektorrum avdimension

k

av alla

n

-tupler över GF(

q

). Kodpolynom associerade

med

C

formar ett vektorrum över , d.v.s. om kodordet

är

ett cykliskt högerskift av kodordet

c

C

1

E. Prange, ”Cyclic Error-Correcting Codes in Two Symbols,”

Air Force Cam-bridge Research Center

-TN-57-103, Cambridge. MA: September 1957.

GF(q)[x]xn – 1

Detta dokument har framställts med FrameMaker 4.0.4

Page 98: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

4 Cykliska koder

96

©

Studentlitteratur

04 kap4 Cykliska koder.fm 21 september 2004 21.07:58 sida 96 av 124

(

x

) =

x

·

c

(

x

) modulo(

x

n

– 1)

C

(4.2)

vilket framgår av att

x

·

c

(

x

) = (

c

0

x

+

c

1

x

2

+ ... +

c

n

– 1

x

n

) mod(

x

n

– 1) =

= (

c

n

– 1

+

c

0

x

+

c

1

x

2

+ ... +

c

n

– 2

x

n

– 1

) mod(

x

n

– 1) =

= c’(

x

) mod(

x

n

– 1) (4.3)

Om

a(x) = a0 + a1x + a2x2 + ... + an – 1xn – 1 är ett godtyckligt poly-

nom i så är produkten a(x) · c(x) en linjärkombination av

cykliska skift av c´.

Eftersom C spänner upp ett vektorrum måste a(x) · c(x) vara ett gil-tigt kodpolynom

⇒ a(x) · c(x) ∈ C för ∀ a(x) ∈ , ∈ C.

En cyklisk kod är ett ideal i .

Repetition av begreppet ideal:

Låt R vara en ring.

En icke-tom delmängd I R är ett ideal om

a) I är en grupp under addition i R.

b) a · r = b ∈ I för ∀ a ∈ I och ∀ r ∈ I.

GF(q)[x]xn – 1

GF(q)[x]xn – 1

GF(q)[x]xn – 1

Page 99: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

4.1 Grundläggande egenskaper för cykliska koder

© Studentlitteratur 97

04 kap4 Cykliska koder.fm 21 september 2004 21.07:58 sida 97 av 124

4.1 Grundläggande egenskaper för cykliska koder

Teorem 4.1 Låt C vara en q-när (n,k) linjär cyklisk kod. Imängden av kodpolynom i C finns ett unikt moniskt kodpoly-nom g(x) (moniskt polynom är ett polynom där koefficientenför högstagradstermen är 1) med minimal grad r (= n – k) < n.g(x) kallas C:s generatorpolynom. Varje kodpolynom c(x) i Ckan uttryckas entydigt som c(x) = m(x) · g(x) där g(x) är genera-torpolynomet i C och m(x) är ett polynom med grad lägre änn – r (= k) i GF(q)[x]. Generatorpolynomet g(x) i C är en faktor

till (xn – 1) i GF(q)[x].

Exempel 4.1

En cyklisk kod av längd 15 måste ha ett generatorpolynom som är delare tillx15 – 1. x15 – 1 kan delas upp i en produkt av minimalpolynom av nollskildaelement i GF(16) med avseende på GF(2). I själva verket behöver man inte här-leda dessa polynom för att bestämma vilka cykliska koder av längd 15, som ärmöjliga. Man behöver bara se på de nollskilda konjugatklasserna, som man kanbilda med hjälp av potenser av α, som är ett element av ordning 15 (och därige-nom ett primitivt element):

1

α1,α2,α4,α8

α3,α6,α12,α9

α5,α10

α7,α14,α13,α11

D.v.s. x15 – 1 kan faktoriseras i ett förstagradspolynom, ett andragradspolynomoch tre fjärdegradspolynom. Följaktligen kan man konstruera generatorpoly-nom av godtyckligt gradtal mellan 1 och 15 för en binär cyklisk kod av längd15.

Exempel 4.2

Undersök vilka gradtal generatorpolynomet till en kod av längd 25 kan ha,d.v.s. faktorisera x25 – 1.

Page 100: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

4 Cykliska koder

98 © Studentlitteratur

04 kap4 Cykliska koder.fm 21 september 2004 21.07:58 sida 98 av 124

Vi börjar 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 innebär att x25 – 1 kan faktoriseras i ett förstagradspolynom, ett fjärde-gradspolynom och ett tjugondegradspolynom. Följande koder är möjliga:

(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) där g(x) är generatorpolynomet i C och m(x) är ett poly-nom med grad lägre än k i GF(q)[x],

enligt Teorem 4.1, anger en praktisk metod för att avbilda meddelan-den på kodord i en cyklisk kod. Antag nämligen att g(x) är av grad(n – k) för en cyklisk (n,k)-kod. Ett meddelandeord av längden k,(m0,m1,...,mk – 1), kan då associeras med ett meddelandepolynomm0 + m1x + ... + mk – 1xk – 1 och kodas genom att multipliceras medgeneratorpolynomet på följande sätt:

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) =

eller

(4.4)

m0 m1 mk – 1

g(x)

x · g(x)

xk – 1 · g(x)

cm = m

g0 g1 gn – k 0 0 00 g0 g1 gn – k 0 0

0 0 0 g0 g1 gn – k

= m · G

Page 101: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

4.1 Grundläggande egenskaper för cykliska koder

© Studentlitteratur 99

04 kap4 Cykliska koder.fm 21 september 2004 21.07:58 sida 99 av 124

På ett likartat sätt kan en generell form för paritetscheckmatrisenerhållas uttryckt i koefficienterna för paritetscheckpolynomet.

Eftersom enligt Teorem 4.1

Generatorpolynomet g(x) i C är en faktor till (xn – 1) i GF(q)[x]

följer att det för varje generatorpolynom g(x) av grad (n – k) existerar

ett paritetspolynom h(x) av grad k så att g(x) · h(x) = xn – 1. Eftersomett kodpolynom c(x) är ett kodpolynom omm det är en multipel avg(x), följer 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 for-men

s(x) = s0 + s1x + ... + sn – 1xn – 1 ∈ . (4.5)

Om s(x) är identiskt lika med 0 då måste de n koefficienterna sjvara 0 för j = 0,1,...,n – 1. Detta medför att vi får n stycken paritets-checkekvationer:

(4.6)

(4.7)

(4.8)

De sista (n – k) av dessa paritetscheckekvationer kan uttryckas imatrisform.

GF(q)[x]xn – 1

c(x) = cixi ,∑i = 0

n – 1

h(x) = hjx j ,∑j = 0

n – 1

⇒s(x) = stxt∑t = 0

n – 1

= c(x)h(x) = cixi∑i = 0

n – 1

hjxj∑j = 0

n – 1

≡ 0 mod xn – 1

⇒ st = cth(t – i) mod n∑i = 0

n – 1

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

Page 102: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

4 Cykliska koder

100 © Studentlitteratur

04 kap4 Cykliska koder.fm 21 september 2004 21.07:58 sida 100 av 124

(4.9)

Teorem 4.2 Om C är en cyklisk (n,k)-kod med generatorpo-lynomet g(x) så är C⊥ en dual cyklisk (n,n – k)-kod med gene-

ratorpolynomet h*(x), som är det till C reciproka2

paritetscheckpolynomet.

Exempel 4.3 Binär cyklisk kod med längd 7

Vi behöver 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

Följande koder kan skapas: (7,1),(7,3),(7,4),(7,6),(7,7).

2 Det reciproka polynomet till ett n:te grads polynom f(x) = f0 + f1x + ... ++ fnxn är f*(x) = xnf(x – 1) = fn + fn – 1x + ... + f0xn.

s =

sksk + 1

sn – 1

T

=

cih(k – i) mod n∑i = 0

n – 1

cih(k + 1 – i) mod n∑i = 0

n – 1

cih(n – 1 – i) mod n∑i = 0

n – 1

T

=

= c0 c1 cn – 1

hk h1 h0 0 0 0 00 hk h1 h0 0 0 0

0 0 0 hk h1 h0 00 0 0 0 hk h1 h0

T

= cHT

Page 103: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

4.1 Grundläggande egenskaper för cykliska koder

© Studentlitteratur 101

04 kap4 Cykliska koder.fm 21 september 2004 21.07:58 sida 101 av 124

Låt oss skapa en (7,3)-kod (enkelfelsrättande).

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) består av alla polynom med gradtal 2 eller lägre.

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

h(x) = 1 + x2 + x3

m(x) · g(x) kodpolynom kodord

0 · g(x) c0 = 0 00 0000 0

1 · g(x) c1 = 1 + x2 + x3 + x4 10 1110 0

x · g(x) c2 = x + x3 + x4 + x5 01 0111 0

x2 · g(x) c3 = x2 + x4 + x5 + x6 00 1011 1

(x2 + 1) · g(x) c4 = 1 + x3 + x5 + x6 10 0101 1

(x2 + x + 1) · g(x) c5 = 1 + x + x4 + x6 11 0010 1

(x + 1) · g(x) c6 = 1 + x + x2 + x5 11 1001 0

(x2 + x) · g(x) c7 = x + x2 + x3 + x6 01 1100 1

x0x1 x2

meddelandeord

G =

1 0 1 1 1 0 0

0 1 0 1 1 1 0

0 0 1 0 1 1 1

H =

1 1 0 1 0 0 0

0 1 1 0 1 0 0

0 0 1 1 0 1 0

0 0 0 1 1 0 1

Page 104: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

4 Cykliska koder

102 © Studentlitteratur

04 kap4 Cykliska koder.fm 21 september 2004 21.07:58 sida 102 av 124

Kodning med hjälp av polynommultiplikation är enkel men är, somframgår av det senaste exemplet, oftast icke systematisk. Systematiskkodning kan utföras med en procedur, som bara är en aning mer kom-plicerad än den beskrivna, som skulle kunna kallas: Polynommulti-plikation med generatorpolynom.

Om vi utgår från en cyklisk (n,k)-kod C med generatorpolynometg(x) och ett k symboler långt meddelande m = (m0,m1,...,mk – 1) såkan man använda en

4.2 Systematisk kodningsmetod för en cyklisk (n,k)-kod

1. Multiplicera meddelandepolynomet m(x) med xn – k.2. Dividera resultatet med generatorpolynomet g(x).

3. Sätt c(x) = xn – k · m(x) – d(x).

Exempel 4.4 Systematisk kodning av (7,3)-koden

Om vi t.ex. kodar meddelandeordet 101 svarande mot meddelandepolynometx2 + 1 får vi enligt detta recept:

1. xn – k · m(x) = x4(x2 + 1) = x6 + x4

2. (x6 + x4)/g(x)

Page 105: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

4.2 Systematisk kodningsmetod för en cyklisk (n,k)-kod

© Studentlitteratur 103

04 kap4 Cykliska koder.fm 21 september 2004 21.07:58 sida 103 av 124

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)

För att få G på systematisk form väljer vi de kodord, som motsvarar med-delandeorden: (100), (010) och (001) (kanoniska basvektorer).

x2 + x + 1 = q(x)

x4 + x3 + x2 + 1 x6 + x4

x6 + x5 + x4 + x2

x5 + x2

x5 + x4 + x3 + x

x4 + x3 + x2 + x

x4 + x3 + x2 + 1

x + 1 = d(x)

medde-lande

m(x) kodpolynom kodord

000 0 c0 = 0 0000 000

100 1 c1 = 1 + x2 + x3 + x4 1011 100

010 x c2 = 1 + x + x2 + x5 1110 010

001 x2 c3 = x + x2 + x3 + x6 0111 001

101 1 + x2 c4 = 1 + x + x4 + x6 1100 101

111 1 + x + x2 c5 = x2 + x4 + x5 + x6 0010 111

110 1 + x c6 = x + x3 + x4 + x5 0101 110

011 x + x2 c7 = 1 + x3 + x5 + x6 1001 011

x0x1x2

Page 106: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

4 Cykliska koder

104 © Studentlitteratur

04 kap4 Cykliska koder.fm 21 september 2004 21.07:58 sida 104 av 124

4.3 Skiftregister-kodare och -avkodare för cykliska koder

Skiftregister hör till de enklaste digitala kretsarna och kan därförarbeta med hastigheter som närmar sig dem, som kan uppnås för engrind med en given teknologi. Datahastigheter uppemot tusentalsmegabit/sekund är vanliga i många applikationer och det är därförnödvändigt att använda kretskonfigurationer, som klarar dessa högahastigheter. Skiftregisterkopplingar är i många fall de enda kopp-lingar som kan användas.

4.4 Systematisk kodning med hjälp av skiftregister

Alla tre operationer under rubrik 4.2 ”Systematisk kodningsmetodför en cyklisk (n,k)-kod” kan utföras med en divisionskrets (somberäknar resten vid division), som implementeras med ett återkopplatlinjärt (n – k)-skiftregister baserat på generatorpolynomet

g(x) = 1 + g1 · x + ... + xn – k (4.10)

G =

1 0 1 1 1 0 0

1 1 1 0 0 1 0

0 1 1 1 0 0 1

H =

1 0 0 0 1 1 0

0 1 0 0 0 1 1

0 0 1 0 1 1 1

0 0 0 1 1 0 1

Page 107: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

4.4 Systematisk kodning med hjälp av skiftregister

© Studentlitteratur

105

04 kap4 Cykliska koder.fm 27 September 2004 07.50:32 sida 105 av 124

Med hänvisning till Figur 4.1 kan vi följa de olika deloperationernavid den systematisk kodningen:

1. Med grindarna i läge

A

skiftas de

k

informationsbitarna

m

0

,

m

1

,...,

m

k

– 1

in i kommunikationskanalen och samtidigt in iskiftregistret.

2. Bryt grindarna:

A

Β

.

3. Paritetscheckbitarna skiftas ut i kommunikationskanalen.

Figur 4.1 Systematisk cyklisk kodning med skiftregister.

++ + +

g1 g2

d0 d1 d2

gn – k – 1

dn – k – 1

A B

A BAB

m0,m1,...,mk – 1

meddelandeblockingång

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

kodordsutgång

B A

kommunikationskanal

Page 108: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

4 Cykliska koder

106

© Studentlitteratur

04 kap4 Cykliska koder.fm 27 September 2004 07.50:32 sida 106 av 124

Figur 4.2 Systematisk kodningskrets till Exempel 4.5.

Exempel 4.5 Koda meddelandeordet m =

(1011)

med en

(7,4)

-kod

Använd

g

(

x

) = 1 +

x

+

x

3

som generatorpolynom

1.

x

n – k

=

x

7 – 4

(1 +

x

2

+

x

3

) =

x

3

+

x

5

+

x

6

2. (

x

3

+

x

5

+

x

6

)/

g

(

x

)

x

3

+

x

+ 1 =

q

(

x

)

x

3

+

x

2

+

x x

6

+

x

5

+

x

3

x

6

+

x

4

+

x

3

x

5

+

x

4

+

x

+ 1

x

5

+

x

3

+

x

2

x

4

+

x

2

+

x

+ 1

x

4

+

x

2

+

x

1 =

d

(

x

)

++

g1 = 1 g2 = 0

d0 d1 d2

A B

A BAB

m0,m1,...,mk – 1

meddelandeblockingång

kodordsutgång kommunikationskanal

g0 = 11 x x2 x3

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

B A

Page 109: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

4.5 Syndromberäkning, felupptäckt och felkorrigering

© Studentlitteratur 107

04 kap4 Cykliska koder.fm 21 september 2004 21.07:58 sida 107 av 124

3. c(x) = q(x) · g(x) = xn – k · m(x) – d(x) = 1 + x3 + x5 + x6

Efter utskiftning fås (1001011) eller 1 + x3 + x5 + x6.

4.5 Syndromberäkning, felupptäckt och felkorrigering

1. Konstruera ett uppskattat meddelandeblock m´ och ett restblockd´ med hjälp av meddelandeblocket och paritetscheckblocket iden mottagna vektorn:

r = (r0,r1,...,rn – 1) = (d0´,d1´,...,dn – k – 1´,m0´,m1´,...,mn – 1´)2. Koda m´ med en kodare identisk med den i sändaren och erhåll

därvid ett uppskattat restblock d´´.3. Jämför d´ och d´´. Om de inte är lika är r inte ett giltigt kodord

och indikerar på så sätt att det finns ett fel i det mottagna kodor-det.

I kapitel 3 visades att syndromet erhölls genom matrisprodukten rHT

och det kan visas att syndromet s för det mottagna kodordet r heltenkelt är skillnaden s = d´ – d´´.

Felkorrigering av en linjär kod med hjälp av standarduppställnings-schemat med syndromtabell enligt kapitel 3 utförs genom att varjesyndromvärde associeras med en bestämd sidoklass. Felmönstret

meddelandeord registerinnehåll skiftantal

0 000 0 skift

1 110 1 skift

1 101 2 skift

0 100 3 skift

1 100 4 skift

Page 110: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

4 Cykliska koder

108 © Studentlitteratur

04 kap4 Cykliska koder.fm 21 september 2004 21.07:58 sida 108 av 124

med den lägsta Hamming-vikten inom en given sidoklass är den tro-ligaste att inträffa och väljs därför som sidoklassledare. Avkodningenligt MLH-metoden utförs därför genom att syndromet för den mot-tagna kodvektorn beräknas varefter motsvarande sidoklassledaresubtraheras från den mottagna kodvektorn, Nackdelen medMLH-metoden är att syndromtabellen för ökande kodordslängdsnabbt blir otympligt stor.

För cykliska koder blir syndromtabellen reducerad i storlek med fak-

torn där n är kodordslängden.

Teorem 4.3 Om s(x) är syndrompolynomet för ett mottaget

kodpolynom r(x) så är r(1)(x) det polynom som bildas vid ettcykliskt högerskift av r(x). Restpolynomet vid division av sx(x)

med g(x) är syndromet s(1)(x) till r(1)(x).

Detta teorem medför att syndromtabellens storlek reduceras dras-tiskt.

4.5.1 Avkodning av cykliska koder

Avkodning av cykliska koder består liksom av avkodning av linjärakoder av 3 steg:

1. Syndromberäkning.2. Framtagning av motsvarande felmönster.3. Felkorrigering.

Exempel 4.6 Avkodning av mottaget (7,4) binärt cykliskt kodord.

I detta exempel visas hur avkodning av en enkel cyklisk (7,4)-kod utförs.

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):

1n

Page 111: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

4.5 Syndromberäkning, felupptäckt och felkorrigering

© Studentlitteratur 109

04 kap4 Cykliska koder.fm 21 september 2004 21.07:58 sida 109 av 124

Eftersom kolumnerna i paritetscheckmatrisen består av alla nollskilda 3-tuplerär koden en perfekt (Hamming) enkelfelskorrigerande kod. De korrigerbara fel-mönstren och motsvarande syndrom är.

Av Tabell 4.1framgår att felmönstren består av alla cykliska skift av 0000001och av Teorem 4.3 följer att avkodaren bara behöver känna igen ett av de möj-liga felmönstren för att kunna avkoda alla de andra. Vi väljer att avkoda detsyndrom, 101, som motsvarar felmönstret 0000001 eftersom det ger oss möjlig-het att skifta ut korrigerade kodordsbitar innan felets position bestämts.

Avkodningen börjar med att registret för det mottagna kodordet nollställs, seFigur 4.3. Därefter skiftas det mottagna kodordet samtidigt in i detta registeroch i syndromberäkningsregistret. Efter inskiftning finns det mottagna kodor-dets syndrom i syndromberäkningsregistret. Vid varje fortsatt skift av kodords-registret och syndromberäkningsregistret beräknar syndromberäkningsregistretsyndromen för cykliskt skiftade versioner av det mottagna kodordet och korri-gerade bitar skiftas ut på utgången (på ”ut” i Figur 4.3). Om syndromet 101uppstår vid något skift blir utgången på OCH-kretsen hög och den bit som sam-tidigt finns på kodordsutgången korrigeras (”felkorrektionsaddern” i Figur 4.3).

Studera fallet att mottaget kodord är 1101011. Vi kan beräkna syndromet på

vanligt sätt enligt: s = r · HT och får då s = 010, d.v.s. den andra biten i det mot-tagna kodordet är felaktig eftersom syndromet 010 = den andra kolumnen i H.

Felmönster Felpolynom Syndrom Syndrompolynom

0000000 0 000 0

1000000 1 100 1

0100000 x 010 x

0010000 x2 001 x2

0001000 x3 110 1 + x

0000100 x4 011 x + x2

0000010 x5 111 1 + x + x2

0000001 x6 101 1 + x2

Tabell 4.1 Felmönster och syndrom till Exempel 4.6.

H =

1 0 1 1 1 0 0

0 1 0 1 1 1 0

0 0 1 0 1 1 1

Page 112: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

4 Cykliska koder

110

© Studentlitteratur

04 kap4 Cykliska koder.fm 27 September 2004 08.00:49 sida 110 av 124

Figur 4.3 Skiftregisteravkodare till Exempel 4.6.

Tabell 4.2 Kodordsregisterinnehåll och syndrom till Exempel 4.6.

När kodordsregisterinnehållet skiftats 5 gånger samtidigt som syndromregistretskiftats 5 gånger har den sjätte biten från höger kommit i läge att bli korrigerad.

Anm.: Lägg märke till att syndromberäkningsregistret är uppbyggt med sammasorts divisionskrets som den som beräknade paritetscheckbitarna i Figur 4.2 tillExempel 4.5.

Skift Kodordsregister Syndrom Korrigerat kodord

0 1101011 01 1

1 -110101 001 11

2 --11010 110 011

3 ---1101 011 1011

4 ----110 111 01011

5 -----11 101 001011

6 ------1 100 1001011

register för mottaget kodord

syndromberäkningsregisterX Y

+ +

+

&X Y

in

fel-korrek-tion ut

Page 113: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

4.6 Felupptäckande cykliska koder

© Studentlitteratur

111

04 kap4 Cykliska koder.fm 27 September 2004 08.00:49 sida 111 av 124

4.6 Felupptäckande cykliska koder

Att upptäcka fel i ett kodord är betydligt enklare än att båda upptäckaoch korrigera fel. I de fall då det finns en returkanal och fel har upp-täckts i ett mottaget kodord begär man bara omsändning av det felak-tiga kodordet.

Den vanligaste metoden är enkelbits paritetscheck som utförs genomatt till det sända kodordet foga ytterligare en bit, nolla eller etta, så atthela kodordet innehåller ett jämnt/udda (jämn/udda paritet) antalettor. Vid den därnäst vanligaste metoden använder man sig av olikafelupptäckande CRC-koder (Cyclic Redundancy Check). Paritets-checkmetoden är relativt enkel medan metoden med CRC-koder inteär lika enkel, varför något om dess principer skall genomgås härnäst.

4.6.1 Förkortade koder och felupptäckt med CRC

I avsnittet 3.9 Modifierade linjära koder angavs olika sätt att förän-dra ett kodords längd. För konstruktion av CRC-koder utgår vi frånförkortade koder. En systematisk (

n,k

)-kod

C

som skall förkortasmed

j

bitar bildas genom att utvälja de kodord vars

j

högra (medde-lande)bitar = 0. Dessa kodord utgör en delmängd, som vi kan kalla

S

,av alla kodord. Den förkortade koden

C’

bildas nu genom att i dennadelmängd

S

ta bort de

j

högra nollbitarna och vi får därigenom enförkortad systematisk (

n – j,k – j

)-kod.

Eftersom en förkortning minskar kodens relativa takt, , är den

förkortade kodens felupptäckts- och felkorrigeringsförmåga åtmin-stone lika bra som för den ursprungliga kod på vilken förkortningengjorts. Förkortning av cykliska koder frambringar nästan alltidicke-cykliska koder men dessa kan dock genereras och avkodas medsamma skiftregisterkodare och avkodare som den ursprungligakoden.

R = kn

Page 114: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

4 Cykliska koder

112

© Studentlitteratur

04 kap4 Cykliska koder.fm 27 September 2004 08.00:49 sida 112 av 124

Betrakta den systematiska cykliska kodaren i Figur 4.4. Innan kod-ningen startar nollställs registret. Om de

j

första bitarna (

m

k

– 1

till

m

k

– 1 –

j

) alla är lika med noll påverkas inte registrets tillstånd utanresulterar bara i lika många nollor vid utskiftningen på kodordsutgån-gen. Borttagandet av dessa

j

nollor har därmed ingen inverkan påkodningsprocessen.

Eftersom syndromberäkningen utförs i en likadan divisionskrets somden som beräknar paritetsbitarna i kodaren (se anm. i slutet av Exem-pel 4.6) kan därför också syndromberäkningen för den förkortadekoden utföras med den ursprungliga kodens syndromberäknings-krets.

Förkortade cykliska koder, som enligt ovan i allmänhet inte ärcykliska, har fått vidsträckt användning som felupptäckande kodermed namnet CRC (Cyclic Redundancy Check). Vid användning förfelupptäckt drar man fördel av cykliska koders stora förmåga att upp-

täcka skurfel

3

.

Figur 4.4 Systematisk cyklisk kodare.

3

Skurfel är bitfel som uppträder flera efter varandra i ett eller flera kodord ochkan uppstå t.ex. vid fädning i en radiokanal.

++ + +

g1 g2

d0 d1 d2

gn – k – 1

dn – k – 1

A B

A BAB

m0,m1,...,mk – 1

meddelandeblockingång

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

kodordsutgång

B A

kommunikationskanal

Page 115: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

4.6 Felupptäckande cykliska koder

© Studentlitteratur

113

04 kap4 Cykliska koder.fm 27 September 2004 08.00:49 sida 113 av 124

CRC-koder anges genom ett generatorpolynom

g

(

x

). Kodords-längden är godtycklig upp till den ursprungliga kodordslängden.Vanligen väljs

g

(

x

) = (

x

+ 1)

b

(

x

) där

b

(

x

) är ett primitivt polynom.Genom faktorn (

x

+ 1) försäkrar man sig om att alla uddaviktsfelmönster upptäcks.

I Tabell 4.3 visas några CRC-polynom av olika längd

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

men inget polynom av lägre grad på formen

x

m

– 1, d.v.s.

g

12

(

x

) definierar en cyklisk kod med längden 2047 ochmed dimensionen 2047 – 12 = 2035. Man kan alltså använda kodenför att generera CRC-koder med längder upp till 2035 med 12 redun-danta bitar.

CRC-kodernas förmåga att upptäcka felaktiga kodord anges genomtäckningen (eng. coverage)

λ

, som anger hur stor bråkdel av allafelaktiga kodord som koden kan upptäcka. Täckningen är kvotenmellan alla felaktiga kodord och alla kodord. För en binär CRC-kodär täckningen

CRC-kod Generatorpolynom

CRC-4

g

4

(

x

) =

x

4

+

x

3

+

x

2

+

x

+ 1

CRC-12

g

12

(

x

) =

x

12

+

x

11

+

x

3

+

x

2

+

x

+ 1 = (

x

11

+

x

+ 1)(

x

+ 1)

CRC-ANSI

g

ANSI

(

x

) =

x

16 + x15 + x2 + 1 = (x15 + x + 1)(x + 1)

CRC-SDLC gSDLC(x) = x16 + x15 + x13 + x7 + x4 + x2 + x + 1 =

= (x14 + x13 + x12 + x10 + x8 + x6 + x5 + x4 + x3 + x + 1)(x + 1)2

CRC-CCITT (X25)

gCCITT(x) = x16 + x12 + x5 + 1 =

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

CRC-32(Ethernet)

x32 + x26 + x23 + x22 + x16 + x12 + x11 + x10 + x8 + x7 + x5 + x4 + x2 + x + 1

x211 – 1 – 1 = x2047 – 1

Page 116: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

4 Cykliska koder

114 © Studentlitteratur

04 kap4 Cykliska koder.fm 21 september 2004 21.07:58 sida 114 av 124

(4.11)

Täckningen är alltså endast en funktion av antalet redundanta bitar,n – k, i det sända kodordet. Endast om bitfelen är sådana att det sändakodordet har ändrats till ett annat giltigt kodord kan de inte upp-täckas. De som inte kan upptäckas utgör bråkdelen 1 – λ av alla möj-liga fel.

(Felupptäckts)täckningen för 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 binära Golay4-koden, G23, (23,12,7) och den ternäraGolay-koden (12,6,6) är de enda perfekta koderna förutom Ham-mingkoderna och repetitionskoden med udda längd som finns.

Låt α vara ett primitivt element i GF(211) och låt β = α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 följande kon-jugatklasser och därmed associerade minimalpolynom:

4 M.J.E. Golay, ”Notes on Digital Coding”, Proceedings of the IRE, Vol. 37,p. 657, June 1949.

λ = 2n – j – 2k – j

2n – j = 1 – 2k – n

Page 117: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

4.7 Golaykoder

© Studentlitteratur

115

04 kap4 Cykliska koder.fm 27 September 2004 08.19:21 sida 115 av 124

x

23

+ 1 kan därför faktoriseras i 3 irreducibla minimalpolynom.

De associerade (stora) minimalpolynomen kan bestämmas medMathematica men eftersom det blir mycket stora exponenter underuträkningens gång, som gör att datorn ”hänger sig”, är det nöd-vändigt att dela upp uträkningarna i ett antal mindre delberäkningar,

t.ex. så här

5

:

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];

konjugatklass associerat minimalpolynom

1

x

+ 1

β

,

β

2

,

β

4

,

β

8

,

β

16

,

β

9

,

β

18

,

β

13

,

β

3

,

β

6

,

β

12

x

11

+

x

10

+

x

6

+

x

5

+

x

4

+

x

2

+ 1

β

5

,

β

10

,

β

20,β17,β11,β22,β21,β19,β15,β7,β14 x11 + x9 + x7 + x6 + x5 + x + 1

5 Divisionen utförs modulo det irreducibla polynomet α11 + α9 + 1. Fler irre-ducibla polynom återfinns bl.a. i W.W. Peterson and E.J. Weldon,”Error-Correcting Codes”, Second Edition, The MIT Press, Cambridge,1972.

Page 118: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

4 Cykliska koder

116 © Studentlitteratur

04 kap4 Cykliska koder.fm 21 september 2004 21.07:58 sida 116 av 124

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 g, αααα11 + αααα9 +1], 2]

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

Det finns därför två möjliga generatorpolynom:

g1(x) = x11 + x10 + x6 + x5 + x4 + x2 + 1

g2(x) = x11 + x9 + x7 + x6 + x5 + x + 1

G23-koden har följande egenskaper:

• Vikten hos kodord med jämn vikt är delbar med 4.• Minimidistansen är 7 varför koden är trippelfelsrättande.• Koden är perfekt.

För att bättre passa i datorkretsar använder man ofta den utsträckta

versionen G246, (24,12,8), som erhålls genom att addera en paritets-

bit.

Generatormatrisen för G24 är självdual vilket gör att den samtidigt ärsin egen paritetscheckmatris.

6 G24 användes av Voyager mellan 1979 och 1981 för att sända bilder av Jupi-ter och Saturnus. Varje bildpixel innehöll 12 ”bild”bitar och 12 checkbitar.

Page 119: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

4.7 Golaykoder

© Studentlitteratur 117

04 kap4 Cykliska koder.fm 21 september 2004 21.07:58 sida 117 av 124

Figur 4.5 Generatormatris för G24, den utsträckta Golay-koden.

En möjlig generatormatris visas i Figur 4.5.

Aritmetisk avkodningsalgoritm för den utsträckta Golaykoden G24

Låt G = [I12 |B] vara generatormatrisen.

Låt I1, I2, …,I12 vara B:s kolumner och r1, r2, …,r12 dess rader.

Låt 0 beteckna 12-tupeln av alla nollor.

Låt xi och yi beteckna mängder av binära 12-tupler i vilka endastden i:te koordinaten innehåller ett nollskilt värde.

Låt r vara en mottagen kodvektor.

1. Beräkna syndromet s = GrT.

2. Om w(s) ≤ 3, sätt felvektorn e = (sT,0) och gå till steg 8.3. Om w(s + Ii) ≤ 2 för någon kolumnvektor Ii,

sätt e = ((s + Ii)T, yi).

4. Beräkna BTs.

G24 =

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

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

Page 120: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

4 Cykliska koder

118 © Studentlitteratur

04 kap4 Cykliska koder.fm 21 september 2004 21.07:58 sida 118 av 124

5. Om w(BTs) ≤ 3, sätt felvektorn e = (0,(BTs)T) och gå till steg 8.

6. Om w(BTs + ) ≤ 2 för någon radvektor ri, sätt

e = (xi,(BTs)T + ri) och gå till steg 8.

7. Minst 4 fel har inträffat. Omsändning 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. Beräkna 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, sätt 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.: Lägg märke till att resultatet utgörs av summan av generatormatrisensrad 1 och rad 2.

Exempel 4.8

Avkoda den mottagna kodvektorn r = (0011 1101 0000 0011 0000 1010).

1. Beräkna s = GrT ⇒ sT = (0001 0100 1000).

2. w(s) = 3 ⇒ sätt 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. Beräkna s = GrT ⇒ sT = (0111 0010 1011).

2. w(s) är inte mindre än eller lika med 3 ⇒ gå till steg 3.

3. Inga Ii satisfierar w(s + Ii) ≤ 2 ⇒ gå till steg 4.

4. Beräkna BTs = (1011 0101 0000)T.

riT

Page 121: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

4.8 Problem. Cykliska koder

© Studentlitteratur 119

04 kap4 Cykliska koder.fm 21 september 2004 21.07:58 sida 119 av 124

5. w(BTs) är inte mindre än eller lika med 3 ⇒ gå till steg 6.

6. w(BTs + ) = 2, sätt 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 utgör en delklass av de linjära koderna.• Cykliska koder kan lätt genereras och avkodas med skiftregis-

ter.• Skiftregisterkopplingar är nödvändiga för att kunna uppnå höga

datahastigheter.• För konstruktion av cykliska koder är teorin för minimalpoly-

nom grundläggande.

4.8 Problem. Cykliska koder

Problem 4.1

a) Bestäm paritetscheckpolynomet h(x) till den cykliska (15,11)-Ham-

ming-koden genererad av g(x) = 1 + x + x4.

b) Bestäm generatorpolynomet till den duala koden.

c) Bestäm generator- och paritetscheck-matriser på systematisk form förkoden enligt a).

Svar:

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

b) gD(x) = x11 + x10 + x9 + x8 + x6 + x4 + x3 + 1

r11T

Page 122: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

4 Cykliska koder

120 © Studentlitteratur

04 kap4 Cykliska koder.fm 21 september 2004 21.07:58 sida 120 av 124

c)

Problem 4.2

a) Visa att g(x) = 1 + x2 + x4 + x6 + x7 + x10 genererar en cyklisk (21,11)-kod.

b) r(x) = 1 + x5 + x17 är en mottagen vektor. Bestäm syndromet för 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. Bestämdet systematiskt kodade kodpolynomet för meddelandepolynomet 1 + x2 + x5 ++ x8.

Svar:

1 + x3 + x4 + x6 + x8 + x11 + x14

Problem 4.4

C1 är en binär cyklisk kod av längd 15 med generatorpolynomet

H =

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

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

G =

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

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

Page 123: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

4.8 Problem. Cykliska koder

© Studentlitteratur 121

04 kap4 Cykliska koder.fm 21 september 2004 21.07:58 sida 121 av 124

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

Bestäm kodpolynomen och motsvarande kodvektorer för meddelandepolyno-men

a) x2

b) x7 + x3 + x

Svar:

a) c(x) = x7 + x3 + x2 + 1 ⇒ (1 1 0 1 0 0 0 1 1 1 0 0 1 0)

b) c(x) = x12 + x8 + x6 + x4 + x2 + 1 ⇒ (1 0 1 0 1 0 1 0 1 0 0 0 1 0 0)

Problem 4.5

C1 är en binär cyklisk kod av längd 15 med generatorpolynomet

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

Bestäm kodpolynomet och motsvarande kodvektor för 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) Bestäm paritetscheckpolynomet h(x) till koden C.

b) Bestäm generatorpolynomet till den duala koden C .

c) Bestäm generator- och paritets-matris för koden C på systematisk form.

Svar:

a) = x11 + x8 + x7 + x5 + x3 + x2 + x + 1

b) Enligt Teorem 4.2 är gdual(x) = h*(x) = x11 · h(x– 1) = x11 + x10 + x9 + x8 + x6

+ x4 + x3 + 1

c)

h(x) = x15 + 1g(x)

Hsyst =

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

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

Page 124: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

4 Cykliska koder

122 © Studentlitteratur

04 kap4 Cykliska koder.fm 21 september 2004 21.07:58 sida 122 av 124

Problem 4.7

Bestäm antalet binära cykliska koder av längd 31 och ange respektive kodsdimension.

Svar:

12 olika cykliska koder med möjliga dimensioner

1,5,6,10,11,15,16,20,21,25,26,30

Problem 4.8

Bestäm minimal blocklängd för en binär cyklisk kod som kan genereras meddet irreducibla polynomet

g(x) = 1 + x + x2 + x4 + x6 + x7 + x8

Svar:

n = 17

Problem 4.9

Undersök om 1 + x2 + x4 kan generera en cyklisk kod med en kodordslängdn ≤ 7. Bestäm (n,k) för de koder som kan genereras.

Svar:

Koden (n,k) = (6,2) kan genereras.

Gsyst =

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

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

Page 125: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

4.8 Problem. Cykliska koder

© Studentlitteratur 123

04 kap4 Cykliska koder.fm 21 september 2004 21.07:58 sida 123 av 124

Problem 4.10

Beräkna för den cykliska (15,11)-Hammingkoden med generatorpolynometg(x) = 1 + x + x4

a) Paritetscheckpolynomet h(x).

b) Generatorpolynomet gD(x) för 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

c)

0 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

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

G =

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

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

Page 126: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

04 kap4 Cykliska koder.fm 21 september 2004 21.07:58 sida 124 av 124

Page 127: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

©

Studentlitteratur

125

05 kap5 BCH- o Reed-Solomon.fm 21 september 2004 21.07:59 sida 125 av 162

5 BCH- och Reed-Solomonkoder

BCH- och Reed-Solomonkoder utgör kärnan av de mest kraftfullakända algebraiska koderna och har använts i mycket vitt spridda till-lämpningar under de senaste fyrtio åren. Binära BCH-koder beskrevs1959 av A. Hocquenghem och 1960 av Bose och Ray-Chaudhury.

BCH-koder är cykliska. De utgör en delklass av s.k. Goppa-koder,som i allmänhet inte är cykliska.

Reed-Solomonkoder, som är icke-binära, beskrevs av Reed och Solo-mon 1960. Reed-Solomonkoder kan matematiskt beskrivas somicke-binära BCH-koder.

5.1 Generatorpolynommetoden för BCH-koder

En kods viktigaste egenskap är dess felkorrigeringsförmåga. Felkor-rigeringsförmågan bestäms av kodens minimidistans. För att utrönaminimidistansen för ett godtyckligt givet generatorpolynom måsteman göra en datorsökning av alla nollskilda kodord för att bestämmaminimivikterna hos koden och därmed minimidistansen. FörBCH-koder finns emellertid en sats, som garanterar ett minimiav-stånd, givet vissa uppgifter om generatorpolynomet.

Teorem 5.1 BCH-gränsen:

Låt

C

vara en

q

-när cyklisk(

n

,

k

)-kod med generatorpolynomet

g

(

x

). Låt

m

vara den mul-

tiplikativa ordningen av

q

modulo

n

. GF(

q

m

) är därmed den

Detta dokument har framställts med FrameMaker 4.0.4

Page 128: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

5 BCH- och Reed-Solomonkoder

126

©

Studentlitteratur

05 kap5 BCH- o Reed-Solomon.fm 21 september 2004 21.07:59 sida 126 av 162

minsta utvidgningstalkroppen av GF(

q

), som innehåller en pri-mitiv

n

:te enhetsrot (eng. root of unity; om

α

C

är en rot till

x

n

– 1

då är

α

n

= 1 och

α

kallas en

n

:te enhetsrot). Låt

α

vara enprimitiv

n

:te enhetsrot. Välj

g

(

x

) att vara ett minimalgradspoly-

nom i GF(

q

)[

x

] så att

g

(

α

b

) =

g

(

α

b

+ 1

) =

g

(

α

b

+ 2

) = ... =

=

g

(

α

b

+

δ

– 2

) = 0 för något heltal

b

0 och

δ

1.

g

(

x

) har där-med

δ

– 1 konsekutiva potenser av

α

som nollställen.

Koden

C

definierad av

g

(

x

) har minimidistansen

d

min

δ.

Parametern

δ

kallas BCH-kodens designdistans och den defi-nieras av generatorpolynomet

g

(

x

).

5.2 Designprocedur för BCH-koder

För att konstruera en

t

-felsrättande kod med längden

n

förfar manenligt följande recept:

1. Utgå från en primitiv

n

:te enhetsrot

α

i en kropp GF(

q

m

) där

m

är minimal (det minsta

m

för vilket

n

|(

q

m

– 1)).2. Välj

δ

– 1 = 2

t

konsekutiva potenser av

α

, startande med

α

b

där

b

är ett icke-negativt heltal.3. Låt

g

(

x

) vara den minsta gemensamma multipeln (eng. LCM == Least Common Multiple) av minimalpolynomen till de valdapotenserna av

α

med avseende på GF(

q

). Varje minimalpoly-nom får bara förekomma en gång i produkten.

Definition 5.1 Inskränkt mening (eng. narrow sense)

Om

b

= 1 är BCH-koden en BCH-kod i inskränkt mening.

Page 129: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

5.2 Designprocedur för BCH-koder

©

Studentlitteratur

127

05 kap5 BCH- o Reed-Solomon.fm 21 september 2004 21.07:59 sida 127 av 162

Definition 5.2 Primitiv BCH-kod

Om

n

=

q

m

– 1 för något positivt heltal

m, så är BCH-koden pri-mitiv för den n:te enhetsroten α, som är ett primitivt element iGF(qm).

Generellt gäller för en binär BCH-kod:

Blocklängd: n = 2m – 1

Paritetscheckbitar: n – k ≤ m · t

Minimidistans: dmin ≥ 2 · t + 1

Exempel 5.1 Binär BCH-kod med längden 31

Låt α vara en rot till det primitiva polynomet x5 + x2 + 1. Det är därmed primi-tivt element i GF(32). Eftersom 31 är av formen 2m – 1 är BCH-koden i exem-plet primitiv.

Bestäm först de cyklotomiska sidoklasserna (de cyklotomiska sidoklassernabestår av exponenterna till elementen i konjugatklasserna) modulo 31 medavseende på GF(2) och de associerade minimalpolynomen

Om C skall vara en linjär cyklisk kod måste den ha ett generatorpoly-nom g(x), som kan faktoriseras i ett eller flera av dessa minimalpoly-nom.

konjugatklass cyklotomisk sidoklass minimalpolynom

1 C0 = 0 M0(x) = x + 1

α,α2,α4,α8,α16 C1 = 1,2,4,8,16 M1(x) = x5 + x2 + 1

α3,α6,α12,α24,α17 C3 = 3,6,12,24,17] M3(x) = x5 + x4 + x3 + x2 + 1

α5,α10,α20,α9,α18 C5 = 5,10,20,9,18 M5(x) = x5 + x4 + x2 + x + 1

α7,α14,α28,α25,α19 C7 = 7,14,28,25,19 M7(x) = x5 + x3 + x2 + x + 1

α11,α22,α13,α26,α21 C11 = 11,22,13,26,21 M11(x) = x5 + x4 + x3 + x + 1

α15,α30,α29,α27,α23 C15 = 15,30,29,27,23 M15(x) = x5 + x3 + 1

Page 130: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

5 BCH- och Reed-Solomonkoder

128 © Studentlitteratur

05 kap5 BCH- o Reed-Solomon.fm 21 september 2004 21.07:59 sida 128 av 162

Om C skall vara en t-felskorrigerande BCH-kod måste g(x) ha 2 · tkonsekutiva potenser av α som nollställen.

Exempel 5.2 Enkelfelskorrigerande (t = 1) narrow sense primitiv BCH-kod

Eftersom koden skall vara narrow-sense är b = 1 och eftersom det enligt punkt2 i designproceduren för BCH-koder skall gälla: δ – 1 = 2 · t = 2, skall vi ha 2konsekutiva potenser av α som nollställen till g(x),

d.v.s. [(αb)]b = 1 = α och [(αb + 1)]b = 1 = α2 skall vara nollställen till g(x).

Generatorpolynomet blir därför:

g(x) = LCM[M1(x) · M2(x)] = M1(x) = x5 + x2 + 1

Eftersom grad g(x) = 5, är dimensionen för den resulterande koden:

n – (n – k) = 31 – 5 = 26. g(x) definierar därför en (31,26) enkelfelsrättande kod.

En generell paritetscheckmatris kan skrivas på följande form

varför en paritetscheckmatris för den enkelfelsrättande (31,26)-koden blir

Eftersom varje binärt polynom, som har α som nollställe också måste ha α2 ochde andra konjugaterna av α som nollställen, är denna paritetscheckmatrisredundant och man kan t.ex. stryka den andra raden.

Exempel 5.3 Dubbelfelskorrigerande (t = 2) narrow-sense primitiv BCH-kod

b = 1; δ = 5 varför g(x) måste ha fyra konsekutiva nollställen nämligen α, α2,α3, α4. Vi får

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 får en (31,21) binär dubbelfelskorrigerande BCH-kod.

H =

1 α b α 2b α (n – 1)b

1 α b + 1 α 2(b + 1) α (n – 1)(b + 1)

1 α b + δ – 3 α 2(b + δ – 3) α (n – 1)(b + δ – 3)

1 α b + δ – 2 α 2(b + δ – 2) α (n – 1)(b + δ – 2)

H = 1 α α 2 α 2 9 α 3 0

1 α 2 α 4 α 2 7 α 2 9

Page 131: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

5.3 Grundläggande egenskaper hos Reed-Solomon-koder

© Studentlitteratur 129

05 kap5 BCH- o Reed-Solomon.fm 21 september 2004 21.07:59 sida 129 av 162

Exempel 5.4 Trippelfelsrättande (t = 3) narrow sense primitiv BCH-kod

b = 1; δ = 7 varför g(x) måste ha sex konsekutiva nollställen nämligen α, α2,α3, α4, α5, α6. Vi får

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 får en (31,16) binär trippelfelskorrigerande BCH-kod.

5.3 Grundläggande egenskaper hos Reed-Solomon-koder

Reed-Solomon-koderna kan ses som en naturlig utvidgning avBCH-koderna.

Definition 5.3 En Reed-Solomon-kod är en qm-är BCH- kodmed längden qm – 1.

5.3.1 Konstruktion av en t-felskorrigerande Reed-Solomon-kod med längden qm – 1

För Reed-Solomon-koder blir det enkelt att konstruera generatorpo-lynomet g(x) för en t-felskorrigerande kod eftersom minimalpolyno-met till varje cyklotomisk sidoklass är av typen (x – αk).

För en t-felskorrigerande kod får vi därför för 2 · t konsekutiva rötter

g(x) = (x – αb)(x – αb + 1)(x – αb + 2) ... (x – αb + 2t – 1) (5.1)

Page 132: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

5 BCH- och Reed-Solomonkoder

130 © Studentlitteratur

05 kap5 BCH- o Reed-Solomon.fm 21 september 2004 21.07:59 sida 130 av 162

Exempel 5.5 Dubbelfelskorrigerande oktal Reed-Solomon-kod med längden 7

Oktal innebär 8 = 23 ⇒ längd: 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

För dubbelfelskorrigering måste vi ha 2t = 4 konsekutiva potenser av α somnollställen. Ett narrow sense generatorpolynom är

g(x) = (x – α)(x – α2)(x – α3)(x – α4) =

= x4 + α3x3 + x2 + αx + α3

Generatorpolynomets gradtal är 4 varför koden är en (7,3) oktal Reed-Solo-mon-kod och antalet kodord är 83 = 512.

Exempel 5.6 Trippelfelskorrigerande 64-när Reed-Solomon-kod med längden63

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

g(x) = (x – α)(x – α2)(x – α3)(x – α4)(x – α5)(x – α6) =

= x6 + α59x5 + α48x4 + α43x3 +α55x2 + α10x + α21.

Generatorpolynomets gradtal är 6 varför koden är en (63,57) 64-när Reed-Solo-

mon-kod och antalet kodord är 6457 ≈ 8,96 · 10102 (antalet elektroner i univer-

sum uppskattas för närvarande till c:a 1075).

Page 133: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

5.4 Avkodning av BCH-koder

© Studentlitteratur 131

05 kap5 BCH- o Reed-Solomon.fm 21 september 2004 21.07:59 sida 131 av 162

5.4 Avkodning av BCH-koder

5.4.1 Petersons direktlösnings-avkodningsalgoritm för en binär t-felskorrigerande BCH-kod

1. Beräkna syndromen för r: Sj = r (α j ), j = 1,2,3,...,2t.2. Konstruera syndrommatrisen A.

(I ekvationen är Λ fellokaliseringsvektorn).3. Beräkna determinanten för syndrommatrisen. Om determinan-

ten är nollskild, gå till steg 5.4. Konstruera en ny syndrommatris genom att ta bort två kolumner

längst till höger. Gå till steg 3.5. Lös ekvationssystemet i steg 2 med avseende på Λ och konstru-

era fellokaliseringspolynomet

(5.2)

där Λ0 = 1.6. Beräkna rötterna till Λ(x). Om rötterna inte är enkelrötter eller

Λ(x) inte har rötter i den önskade talkroppen, gå till steg 9.7. Komplementera bitpositionerna i r angivna av Λ(x). Om antalet

fel är mindre än t, verifiera att det resulterande korrigerade kod-ordet satisfierar alla de 2t syndromekvationerna. Om inte, gå tillsteg 9.

8. Beräkna och skriv ut det korrekta avkodade meddelandeordetoch stoppa.

9. Skriv ut ”Avkodningsmisslyckande”.

AΛΛΛΛ =

1 0 0 0 0 0

S2 S1 1 0 0 0

S4 S3 S2 S1 0 0

S6 S5 S4 S3 0 0

S2t – 4 S2t – 5 S2t – 6 S2t – 7 St – 2 St – 3

S2t – 2 S2t – 3 S2t – 4 S2t – 5 St St – 1

Λ1

Λ2

Λ3

Λ4

Λ t – 1

Λt

=

– S1

– S3

– S5

– S7

– S2t – 3

– S2t – 1

Λ(x) = 1 – Xlx∏l = 1

ν = Λνxν + Λν – 1xν – 1 + ... + Λ1x + Λ0

Page 134: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

5 BCH- och Reed-Solomonkoder

132 © Studentlitteratur

05 kap5 BCH- o Reed-Solomon.fm 21 september 2004 21.07:59 sida 132 av 162

Exempel 5.7 Dubbelfelskorrigering av ett kodord med längden 31 med Peter-sons algoritm

För en narrow-sense dubbelfelskorrigerande kod med längden 31 med genera-torpolynomet

g(x) = 1 + x3 + x5 + x6 + x8 + x9 + x10 har vi mottagit

r = (0010000110011000000000000000000) eller

r(x) = x2 + x7 + x8 + x11 + x12

1. Beräkna syndromen för 2t = 4 konsekutiva potenser av α.

Det gäller:

Sj = r(αj) = c(αj) + e(αj) = , j = 1,2,...,2t.

S1 = r(α) = α2 + α7 + α8 + α11 + α12

Med hjälp av tabell över GF(32) kan summan beräknas genom att gåöver till motsvarande vektorrepresentation:

α2 00100

α7 00101

α8 10110

α1111100

⊕ α1201110

Summa α 700101

⇒ S1 = α7

S2 = r(α2) = (S1)2 = α14

S3 = r(α3) = α6 + α21 + α24 + α2 + α5

α6 01010

α2100011

α2401111

α2 00100

⊕ α5 10100

Summa α8 10110

ek(α j)k∑

k = 0

n – 1

Page 135: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

5.4 Avkodning av BCH-koder

© Studentlitteratur 133

05 kap5 BCH- o Reed-Solomon.fm 21 september 2004 21.07:59 sida 133 av 162

⇒ S3 = α8

S4 = r(α4) = (S2)2 = (S1)4 = α28

2. Konstruera syndrommatrisen

3. Beräkna determinanten för syndrommatrisen

|A| = 1 · α7 – 0 · α14 = α7 > 0 ⇒ gå till steg 5.

4. Hoppa över.

5. Lös ekvationssystemet enligt steg 2 med avseende på Λ och konstrueraΛ(x).

Substituera ➀ i ②:

α14 · α7 + α7 · Λ2 = α8

α14 + Λ2 = α

varav Λ2 = α + α14 = α15

Således blir Λ(x) = 1 + α7x + α15x2

6. Beräkna rötterna till Λ(x) genom att successivt pröva alla möjliga rötter:

α0,α1,...,α30

Prövning visar att x = α26 är en rot:

Λ(α26) = 1 + α7 · α26 + α15 · α52 = 1 + α2 + α5 = 0.

A = 1 0

S2 S1

= 1 0

α 1 4 α 7

1 0

α 1 4 α 7

Λ1

Λ2

= α 7

α 8

➀②

Λ1 = α 7

α 1 4Λ1 + α 7Λ2 = α 8

Page 136: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

5 BCH- och Reed-Solomonkoder

134

© Studentlitteratur

05 kap5 BCH- o Reed-Solomon.fm 5 October 2004 08.57:27 sida 134 av 162

Den andra roten fås genom att dividera bort faktorn med den första:

Således blir

Λ

(

x

) = (

x

+

α

26

)(

α

15

x

+

α

5

) =

α

15

(

x

+

α

26

)(

x

+

α

21

).

7. Komplementera bitpositionerna i

r

:

31 – 26 = 5

31 – 21 = 10.

Bitpositionerna för de felaktiga bitarna är 5 och 10.

c

= (0010010110111000000000000000000).

Dividera

c

(

x

) med generatorpolynomet

g

(

x

):

c

(

x

) =

x

2

+

x

5

+

x

7

+

x

8

+

x

10

+

x

11

+

x

12

=

x

2

·

g

(

x

)

Det korrekta meddelandepolynomet =

x

2

Antalet bitar i meddelandeordet:

k

= 31 – grad

g

(

x

) = 31 – 10 = 21

Meddelandeordet: (001000000000000000000)8. Skriv ut: (001000000000000000000) STOPP

5.4.2 Berlekamps avkodningsalgoritm

1

Petersons algoritm är relativt enkel men tyvärr ökar komplexitetensnabbt med felantalen och tillåter i praktiken inte korrigering av flerän ungefär 7 fel. Komplexiteten hos Berlekamps algoritm ökar lång-sammare med felantalen och tillåter felkorrigering av tiotals fel.

1

E.R. Berlekamp,

”Algebraic Coding Theory”

, New York, McGraw-Hill,1968, reprinted and revised edition: Laguna Hills, Aegean Park press, 1984.

α15x + α5

x + α26 α15x2 + α7x + 1

α15x2 + α10x

α5x + 1

α5x + 1

0

r = (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 300 0 1 0 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 )

Page 137: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

5.4 Avkodning av BCH-koder

© Studentlitteratur 135

05 kap5 BCH- o Reed-Solomon.fm 21 september 2004 21.07:59 sida 135 av 162

Tyvärr är teorin för Berlekamps algoritm mer svårtillgänglig än förPetersons men ett exempel visar hur den används.

Berlekamps algoritm för avkodning av binära BCH-koder

1. Ställ in startvärden: k = 0, Λ(0)(x) = 1, T(0) = 1.

2. Låt ∆(2k) vara koefficient för x2k + 1 i produkten

Λ(2k)(x)[1 + S(x)].

3. Beräkna Λ(2k + 2) = Λ(2k)(x) + ∆(2k)[x · T(2k)(x)].4. Beräkna

5. Sätt k = k + 1, om k < t, gå till steg 2.

6. Bestäm rötterna till Λ(x) = Λ(2k)(x). Om rötterna är enkelrötteroch ligger i den önskade talkroppen, korrigera motsvarandepositioner i det mottagna kodordet och stoppa.

7. Avkodningsmisslyckande och stoppa.

Exempel 5.8

Transmissionskoden är en dubbelfelskorrigerande, narrow-sense, binärBCH-kod med n = 15. Generatorpolynomet är

g(x) = 1 + x4 + x6 + x7 + x8.

Avkoda kodvektorn r = (101010000100000) = 1 + x2 + x4 + x9 med Berlekampsalgoritm.

Lösning:

Bestäm syndromen:

T [2k + 2](x) = x2T (2k)(x) om ∆ (2k) = 0 eller om grad Λ(2k)(x) > kxΛ(2k)(x)

∆(2k) om ∆(2k) ≠ 0 och grad Λ(2k)(x) ≤ k

S1 = 1 + α 2 + α 4 + α 9 =

1 0 0 00 0 1 01 1 0 00 1 0 10 0 1 1

= α 6

Page 138: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

5 BCH- och Reed-Solomonkoder

136 © Studentlitteratur

05 kap5 BCH- o Reed-Solomon.fm 21 september 2004 21.07:59 sida 136 av 162

1. Ställ in startvärden: k = 0, Λ(0)(x) = 1, T(0) = 1.

2.

3,

4.

5. Sätt k = k + 1, d.v.s. k = 0 + 1 = 1, gå till steg 2.

2.

6. Bestäm rötterna genom prövning:

S2 = 1 + α 4 + α 8 + α 18 = 1 + α 4 + α 8 + α 3 =

=

1 0 0 01 1 0 01 0 1 00 0 0 11 1 1 1

= α 1 2

S3 = 1 + α 6 + α 12 + α 27 = 1 + α 6 + α 12 + α 12 = α 1 3

S4 = 1 + α 8 + α 16 + α 36 = 1 + α 8 + α + α 4 = α 6

=

1 0 0 01 0 1 00 1 0 00 0 1 10 1 0 1

= α 9

Λ (0)(x) 1 + α 6 · x + α 12 · x2 + α 13 · x3 + α 9 · x4

Λ (0) = α 6

Λ (2)(x) = Λ (0)(x) + ∆ (0) · x · T (0)(x) = 1 + α 6 · x

T (2)(x) = x · Λ (0)(x)

∆ (0) = x · 1

α 6 = α – 6 · x = α 9 · x

∆ (0) ≠ 0grad Λ (0)(x) ≤ k = 0

Λ (2)(x) 1 + S(x) == 1 + α 6 · x 1 + α 6 · x + α 12 · x2 +α 13 · x3 + α 9 · x4 == 1 + α 6 · x +α 12 · x2 + α 13 · x3 + α 9 · x4 ++ α 6 · x + α 12 · x2 + α 18 · x3 + α 19 · x4 + α 15 · x5

∆ (2) = α 13 + α 18 = α 13 + α 3 = α 3 1 + α 1 0 = α 3 · α 5 = α 8

∆ (4)(x) = Λ (2)(x) + ∆ (2) x · T (2)(x) == 1 + α 6 · x + α 8 · x · α 9 · x = 1 + α 6 · x + α 2 · x2

Λ(1) = 1 + α 6 + α 2 = α 13 + α 2 = α 2 1 + α 4 = α 14 ⇒ 1 är inte en rot

Λ(α) = 1 + α 6 · α + α 2 · α 2 = 1 + α 7 + α 4 = α 9 + α 4 == α 4 1 + α 5 = α 4 · α 10 ⇒ α är inte en rot

Page 139: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

5.4 Avkodning av BCH-koder

© Studentlitteratur 137

05 kap5 BCH- o Reed-Solomon.fm 21 september 2004 21.07:59 sida 137 av 162

Den andra roten får vi genom att dividera kodpolynomet med faktorn x + α5:

Felen fås 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 återstår bara att avkoda det korrigerade kodpolynomet, vilket enklast görs

genom att dividera rkorr(x) med generatorpolynomet, d.v.s. .

⇒ cavk = (1010000).

Λ(α 2) = 1 + α6 · α2 + α2 · α4 = 1 + α8 + α6 = α2 + α6 == α2 1 + α4 = α3 ⇒ α2 är inte en rot

Λ(α3) = 1 + α6 · α3 + α2 · α6 = 1 + α9 + α8 = α7 + α8 == α7 1 + α = α11 ⇒ α3 är inte en rot

Λ(α 4) = 1 + α 6 · α 4 + α 2 · α 8 = 1 + α 10 + α 10 = 1 ⇒ α 4 är inte en rot

Λ(α 5) = 1 + α 6 · α 5 + α 2 · α 10 = 1 + α 11 + α 12 == α 12 + α 12 = 0 ⇒ α 5 är en rot

α2x + α10

x + α5 α2x2 + α6x + 1

α2x2 + α7x

α 6 + α 7 x + 1

= α10

α10x + α15

0

⇒ Λ(x) = x + α 5 α 2x + α 1 0 =α 2 x + α 5 x + α 8

cavk(x) = rkorr(x)

g(x)

x8 + x7 + x6 + x4 + 1 x10 + x9 + x7 + x4 + x2 + 1

x2 + 1

x10 + x9 + x8 + x6 + x2

x8 + x7 + x6 + x4 + 1

x8 + x7 + x6 + x4 + 1

0

Page 140: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

5 BCH- och Reed-Solomonkoder

138 © Studentlitteratur

05 kap5 BCH- o Reed-Solomon.fm 21 september 2004 21.07:59 sida 138 av 162

5.5 BCH-koder med MathematicaLadda paketen FiniteFields och MatrixManipulation

Vi börjar med att titta på dubbelfelskorrigering av ett kodord medlängden 31 med Petersons algoritm. Generatorpolynomet är:

g(x) = 1 + x3 + x5 + x6 + x8 + x9 + x10

Vi har mottagit vektorn

r = (0010000110011000000000000000000)

eller

r(x) = x2 + x7 + x8 + x11 + x12

Först ska vi beräkna syndromen för 2t = 4 konsekutiva potenser av α:

S1 = r(α) = α2 + α7 + α8 + α11 + α12

För att beräkna summan använder vi oss av GF[32] och vi ska inteanvända Mathematicas defaultirreducibla polynom.

fld = GF[2, 1, 0, 1, 0, 0, 1]

GF[2, 1, 0, 1, 0, 0, 1]

Först gör vi en lista med syndromets S-termer som element

selement[_] = 2,7,8,11,12

α2,α7,α8,α11,α12

Sedan anger vi de 4 syndromens element som så småningom skaadderas

s1element = selement[]

α2,α7,α8,α11,α12

s2element = selement[2]

α4,α14,α16,α22,α24

Page 141: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

5.5 BCH-koder med Mathematica

© Studentlitteratur 139

05 kap5 BCH- o Reed-Solomon.fm 21 september 2004 21.07:59 sida 139 av 162

s3element = se3ement[3]

α6,α21,α24,α33,α36

s4element = se4ement[]

α8,α28,α32,α44,α48

Därefter reducerar vi elementen modulo vårt irreducibla polynom

s1red = Table[PolynomialMod[s1element[[n]],

1 + 2 + 5, n, 1, Length[s1element]]

α2,-α2-α4,1+α2-α3,-1+α-α2+2α3,-α+α2-α3+2α4

s2red = Table[PolynomialMod[s1element[[n]],

1 + 2 + 5, n, 1, Length[s2element]]

α4,1-2α+α2-3α3+α4,3-α+4α2-3α3+α4,5-6α+7α2-10α3

+5α4,10-5α+15α2-11α3+7α4

s3red = Table[PolynomialMod[s1element[[n]],

1 + 2 + 5, n, 1, Length[s3element]]

-α-α3,-6+2α-10α2+5α3-5α4,10-5α+15α2-11α3+7α4,

-34+36α-57α2+58α3-44α4,57-58α+101α2-92α3+80α4

s4red = Table[PolynomialMod[s1element[[n]],

1 + 2 + 5, n, 1, Length[s4element]]

1+α2-α3,12-15α+23α2-22α3+21α4,36-23α+58α2

-44α3+34α4,250-230α+431α2-379α3+319α4,549-431α

+928α2-750α3+629α4

Det verkar som det blev en hel del koefficienter som skiljer sig avse-värt från dem vi använder, nämligen 0 och 1, men vi låter det vara sålänge.

Page 142: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

5 BCH- och Reed-Solomonkoder

140 © Studentlitteratur

05 kap5 BCH- o Reed-Solomon.fm 21 september 2004 21.07:59 sida 140 av 162

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α + 27α2 - 27α3 + 15α4

s3sum = Sum[s3red[[n]],n,1,Length[s4red]]

27- 26α + 49α2 - 41α3 + 38α4

s4sum = Sum[s4red[[n]],n,1,Length[s4red]]

848- 699α + 1441α2 - 1196α3 + 1003α4

Nu ska vi försöka fixa till dom stora koefficienterna 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 för syndrommatrisen.

detsyndmat = Det[1, 0, s2, s1]

α2 + α4

Page 143: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

5.5 BCH-koder med Mathematica

© Studentlitteratur 141

05 kap5 BCH- o Reed-Solomon.fm 21 september 2004 21.07:59 sida 141 av 162

Determinanten är skild från noll varför vi försöker lösa ekvationssys-temet enligt steg 2 i ”Petersons direktlösnings-avkodnings-algoritm för en binär t-fels-korrigerande BCH-kod” - seavsnitt 5.4 .

lösning = Solve[1, 0, s2,s1.1,

2 == s1,s3,1,2]

Λ2 har en form som vi ska försöka ordna till.

kvotform = PolynomialMod[2/.lösning

[[1, 1]], 2]

därefter reducerar vi med vårt irreducibla polynom

täljare = PolynomialMod[PolynomialMod[Numera-tor[kvotform],1 + 2 + 5], 2]

1 + α2 + α4

nämnare = Denominator[kvotform]

α2 + α4

Man kan bestämma de två polynomens (täljarens och nämnarens)plats i GF[32] och därmed få dessa polynoms form att övergå i expo-nentialform

elementlista = Table[ElementToPolynomial[fld

[PowerList[fld][[k]]], ]],

Λ2 → - - 1 - α3 + 2α4 + α5 + 2α6 + α7 + α8

α2 + α4,

Λ1 → α2 + α4

1 + α3 + α5 + α7 + α8

α2 + α4,

Page 144: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

5 BCH- och Reed-Solomonkoder

142 © Studentlitteratur

05 kap5 BCH- o Reed-Solomon.fm 21 september 2004 21.07:59 sida 142 av 162

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

exptäljare = Flatten[Position[elementlista,täljare]][[1]] - 1

22

expnämnare = Flatten[Position[elementlista,nämnare]][[1]] - 1

7

Nu kan vi få den riktiga formen på Λ2

2riktigform = exptäljare/expnämnare

α15

Vi kan göra om Λ1 till exponentialform

polyform1 = PolynomialMod[1 /. lösning

[[1, 2]], 2]

α2 + α4

1riktigform = ^(Flatten

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

α7

För bekvämlighets skull inför vi kortare beteckningar förΛ1riktigform och Λ2riktigform

Page 145: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

5.5 BCH-koder med Mathematica

© Studentlitteratur 143

05 kap5 BCH- o Reed-Solomon.fm 21 september 2004 21.07:59 sida 143 av 162

L1 = 1riktigform

α7

L2 = 2riktigform

α15

Vi ska nu beräkna rötterna till Λ(x) = 1 + L1 x + L2 x2= 0

Det finns 31 möjliga rötter (x = α0,α1,α2, …,α30) och vi får pröva eni taget.

testlista = Table[PolynomialMod[

PolynomialMod[1 + L1 n + L2 2n,

1 + 2 + 5], 2], n, 0, 30]

α+α3,1+α+α2+α3+α4,1+α2+α3+α4,α3,

1+α3,α+α2+α4,α+α2+α4,1+α2+α4,

1+α+α2+α3+α4,α+α2+α3+α4,α,α3,α+α3,

α2+α3+α4,1+α+α2+α4,1+α3,1+α2+α4,

α2+α3+α4,α2+α4,1+α,α2+α4,0,

α+α2+α3+α4,1,α,1+α+α3,0,

1+α2+α3+α4,1+α+α3,1+α,1+α+α2+α4

Lösningarna fås för de platser i testlista som har nolla. Läggmärke till att positionen för första elementet i testlista ska upp-fattas som 0 varför den riktiga lösningen kräver att man subtraherar1.

matrisposition = Table[Position

[testlista, 0][[n, 1]], n, 1, 2]

22,27

x1 = matrisposition[[1]]-1

Page 146: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

5 BCH- och Reed-Solomonkoder

144 © Studentlitteratur

05 kap5 BCH- o Reed-Solomon.fm 21 september 2004 21.07:59 sida 144 av 162

α21

x2 = matrisposition[[2]]-1

α26

Bitpositionerna för de felaktiga bitarna är

31 - (matrisposition[[1]] - 1)

10

och

31 - (matrisposition[[2]] - 1)

5

5.6 Avkodning av Reed-Solomon-koderVid avkodning av Reed-Solomon-koder måste inte endast felenspositioner bestämmas utan även deras värden (eller storlek). Nedanpresenteras först en metod, som är en generalisering av Petersonsdirektlösnings-avkodningsalgoritm, kallad Peterson-Gorenstein-Zierlers avkodningsalgoritm. Därefter genomgås motsvarande gene-ralisering av Berlekamps algoritm kallad Berlekamp-Masseys avkod-ningsalgoritm.

5.6.1 Peterson-Gorenstein-Zierlers avkodningalgoritm

1. Beräkna syndromen för r: Sl = r (α l), l = 1,2,3,…,2t.2. Konstruera syndrommatrisen A´.

Page 147: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

5.6 Avkodning av Reed-Solomon-koder

© Studentlitteratur 145

05 kap5 BCH- o Reed-Solomon.fm 21 september 2004 21.07:59 sida 145 av 162

3. Beräkna determinanten för syndrommatrisen. Om determinan-ten är nollskild, gå till steg 5.

4. Konstruera en ny syndrommatris genom att ta bort kolumnenlängst till höger och raden längst ner. Korta av kolumnvektornΛΛΛΛ en koordinat genom att ta bort Λt för det största återståendevärdet på t. Gå till steg 3.

5. Lös ekvationssystemet och konstruera Λ(x).6. Beräkna rötterna till Λ(x). Om rötterna inte är enkelrötter eller

Λ(x) inte har rötter i den önskade talkroppen, gå till steg 10.7. Konstruera matrisen B

och bestäm felvärdena.8. Subtrahera felvärdena från de felaktiga värdena 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 = (0α301α410)

Koden är en dubbelfelskorrigerande (7,3)-Reed-Solomon-kod med generator-

polynomet g(x) = α3 + αx + x2 + α3x3 + x4.

Lösning:

r = (0 α3 0 1 α4 1 0) har kodpolynomet r(x) = α3x + x3 + α4x4 + x5

1. Beräkna syndromen

A´ΛΛΛΛ =

S1 S2 S3 S4 St – 1 St

S2 S3 S4 S5 St St + 1

S3 S4 S5 S6 St + 1 St + 2

S4 S5 S6 S7 St + 2 St + 3

St – 1 St St + 1 St + 2 St – 3 S2t – 2

St St + 1 St + 2 St + 3 S2t – 2 S2t – 1

Λt

Λ t – 1

Λ t – 2

Λ t – 3

Λ2

Λ1

=

– St + 1

– St + 2

– St + 3

– St + 4

– S2t – 1

– S2t

Be =

X1 X2 Xν

X12 X2

2 Xν2

X1ν X2

ν Xνν

ei1

ei2

eiν

=

S1

S2

Page 148: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

5 BCH- och Reed-Solomonkoder

146 © Studentlitteratur

05 kap5 BCH- o Reed-Solomon.fm 21 september 2004 21.07:59 sida 146 av 162

S1 = α4 + α3 + α8 + α5 = α4 + α3 + α + α5 = = 0

S2 = α3 · α2 + α6 + α4 · α8 + α10 = α5 + α6 + α12 + α10 =

= α5 + α6 + α5 + α3 = = α4

S3 = α3 · α3 + α9 + α4 · α12 + α15 =

= α6 + α2 + α2 + α = = α5

S4 = α3 · α4 + α12 + α4 · α16 + α20 = 1 + α5 = α4

2.

3.4. Hoppa över.

5.

6. Bestäm rötterna genom prövning:

Den andra roten får vi genom att dividera kodpolynomet med faktorn

x + α3:

0 1 11 1 00 1 01 1 10 0 0

1 0 11 1 00 1 1

1 0 10 1 01 1 1

A ´ = 0 α 4

α 4 α 5

A ´ = α 8 = α ≠ 0

0 α 4

α 4 α 5 Λ1

Λ2 = – S3

S4 = – α 5

α 4

α 4Λ1 = α 5 ⇒ Λ1 = αα 4Λ2 + α 5Λ1 = α 4

Λ2 + αΛ1 = 1Λ2 + α 2 = 1

Λ2 = 1 + α 2

Λ2 = α 6

Λ(x) = α 6x 2 + αx + 1

Λ(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.

Page 149: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

5.6 Avkodning av Reed-Solomon-koder

© Studentlitteratur 147

05 kap5 BCH- o Reed-Solomon.fm 21 september 2004 21.07:59 sida 147 av 162

Felen fås med α– 3 och α– 5, d.v.s. i positionerna 7 – 3 = 4 och 7 – 5 = 2.

7.

⇒ 8. Mottaget korrigerat kodpolynom:

Nu återstår bara att avkoda det korrigerade kodpolynomet, vilket enklastgörs genom att dividera rkorr(x) med generatorpolynomet, d.v.s.

Den korrigerade, avkodade kodvektorn (d.v.s. den uppskattade medde-landevektorn) är alltså (0 1 0).

α6x + α4

x + α3 α6x2 + αx + 1α6x2 + α9x

= α4

α4x + α7

0

α + α 9 x + 1

Λ(x) = x + α 3 α 6x + α 4 = α 6 x + α 3 x + α – 2 == α 6 x + α 3 x + α 5

Be = α 2 α 4

α 4 α = e2

e4 = 0

α 4

α 2e2 + α 4e4 = 0 ekv. 1⇒ e2 = α 2e4

α 4e2 + αe4 = α 4 ekv. 2α 4 · α 2e4 + αe4 = α 4

α 5 + 1 e4 = α 3

α 4e4 = α 3

e4 = α – 1 = α 6

e2 = α 2 · α 6 = α 8 = α

e(x) = αx + α 6x 2

rkorr(x) = r(x) + e(x) = α 3x + x3 + α 4x 4 + x5 + αx 2 + α 6x 4 == α 3x + αx 2 + x3 + α 4 + α 6 x4 + x5 == α 3x + αx 2 + x3 + α 3x 4 + x5

rkorr = 0 α 3 α 1 α 3 1 0

x

x4 + α3x3 + x2 + αx + α3 x5 + α3x4 + x3 + αx2 + α3x

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

Page 150: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

5 BCH- och Reed-Solomonkoder

148 © Studentlitteratur

05 kap5 BCH- o Reed-Solomon.fm 21 september 2004 21.07:59 sida 148 av 162

5.6.2 Berlekamp-Masseys avkodningsalgoritm

1. Beräkna syndromen: S1,S2,…,S2t.2. Initiera algoritmvariablerna så här: k = 0, Λ(0)(x) = 1, L = 0 och

T(x) = x.

3. Sätt k = k + 1. Beräkna diskrepansen ∆(k) genom att subtrahera

den k:te utgången på det linjära skiftregistret2 definierat av

Λ(k – 1)(x) från det k:te syndromet enligt

4. Om ∆(k) = 0 gå till steg 8.

5. Modifiera anslutningspolynomet: ∆(k)(x) = Λ(k – 1)(x) – ∆(k)T(x).6. Om 2L ≥ k gå till steg 8.

7. Sätt L = k – L och T(x) = .

8. Sätt T(x) = x · T(x).9. Om k < 2t gå till steg 3.

10. Bestäm rötterna till ekvationen Λ(x) = Λ(2k)(x). Om rötterna ärenkla och ligger i rätt talkropp, bestäm felvärdena och korrigerafelen i motsvarande positioner med Forneys algoritm3 i kodor-det 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 generator-

polynomet g(x) = α3 + αx + x2 + α3x3 + x4 (samma g(x) som i Exempel 5.9).

Lösning:

r = (1 α5 α4 0 1 α4 0) har kodpolynomet r(x) = 1 + α5x + α4x2 + x4 + α4x5

1. Beräkna syndromen

2 Fellokaliseringspolynomet konstrueras med hjälp av ett skiftregister - fördetaljer se S.W. Golomb, ”Shift Register Sequences”, San Francisco: Hol-den-Day, 1967, revised edition, Laguna Hills: Aegean Park Press, 1982.3 Principerna för Forneys algoritm genomgås i Exempel 5.10.

∆(k) = Sk = Λi(k – 1)Sk – i∑

i = 1

L

Λ(k – 1)(x)

∆(k)

Page 151: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

5.6 Avkodning av Reed-Solomon-koder

© Studentlitteratur 149

05 kap5 BCH- o Reed-Solomon.fm 21 september 2004 21.07:59 sida 149 av 162

S1 = 1 + α5 · α + α4 · α2 + α4 + α4 · α5 = 1 + α6 + α6 + α4 + α2 =

= = α3

S2 = 1 + α5 · α2 + α4 · α4 + α4 · α10 = 1

S3 = 1 + α5 · α3 + α4 · α6 + α12 + α4 · α15 = 1 + α8 + α10 + α12 + α19 =

= 1 + α + α3 + α5 + α5 = = 0

S4 = 1 + α5 · α4 + α4 · α8 + α16 + α4 · α20 = 1 + α2 + α5 + α2 + α3 =

= = α6

2. k = 0, Λ(0)(x) = 1, L = 0 och T(x) = x

3. k = 1; ∆(1) = S1 –

4. ∆(1) = α3 ≠ 05. Λ(1)(x) = Λ(0)(x) – ∆(1) · T(x) = 1 + α3 · x

6. 2L = 0

7. L = k – L = 1 – 0 = 1;

8. T(x) = x · T(x) = α4 · x9. 1 = k < 2t = 42. k = 2

∆(2) = S2 –

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 · x6. 2 = 2L ≥ k = 2

8. T(x) = x · T(x) = α4 · x2

9. 2 = k < 2t = 43. k = 3

1 0 00 1 10 0 11 1 0

1 0 00 1 01 1 00 0 0

1 0 01 1 11 1 01 0 1

Λi(0)S1 – i = α 3∑

i = 1

L

≥ k = 1

T(x) = Λ(0)(x)

∆ (1) = 1

α 3 = α – 3 = α 4

Λi(1)S2 – i = ∑

i = 1

L = 1

1 + α 3 · α 3 = α 2

Page 152: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

5 BCH- och Reed-Solomonkoder

150 © Studentlitteratur

05 kap5 BCH- o Reed-Solomon.fm 21 september 2004 21.07:59 sida 150 av 162

∆(3) = S3 –

4. ∆(3) = α4 ≠ 0

5. Λ(3)(x) = Λ(2)(x) – ∆(3) · T(x) = 1 + α4 · x + α4 · α4 · x2 =

= 1 + α4 · x + α · x2

6. 2 = 2L

7. L = k – L = 3 – 1 = 2;

8. T(x) = x · T(x) = α3 · x + x2

9. 3 = k < 2t = 43. k = 4

∆(4) = S4 –

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

Bestäm rötterna genom prövning:

Λ(1) = 1 + α2+ α6 = α6 + α6 = 0 ⇒ 1 är en rot.

Den andra roten får vi genom att dividera kodpolynomet med faktorn.

(x + 1):

Fellokaliseringspolynomet är

Λ(x) = (x + 1)(α6 · x + 1) = 1 + α2 · x + α6 · x2

Felen kan därmed lokaliseras till positionerna 0 och 6.

Λi(2)S3 – i = ∑

i = 1

L = 1

0 + α 4 · 1 = α 4

≥ k = 3

T(x) = Λ(2)(x)

∆(3) = 1 + α 4x

α4 = α3 + x

Λi(3)S4 – i = ∑

i = 1

L = 2

α 6 + α 4 · 0 + α · 1 = α 6 + α 5

S3 S2

α6x + 1

x + 1 α6x2 + α2x + 1α6x2 + α6x

0

x + 1x + 1

Page 153: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

5.6 Avkodning av Reed-Solomon-koder

© Studentlitteratur 151

05 kap5 BCH- o Reed-Solomon.fm 21 september 2004 21.07:59 sida 151 av 162

För att bestämma felens värden behöver vi följande:

Definition 5.4 Formell derivata

f (x) = f0 + f1x + f2x2 + … + fnxn + … är ett polynom med koef-ficienter tagna från GF(q). Den formella derivatan av f(x) defi-nieras enligt:

f´ (x) = f1 + 2f2x + … + nfnxn – 1 + … (5.3)

Några av den formella derivatans viktigare egenskaper

• Om f 2(x) är delare till g(x) ⇒ f (x) är delare till g´ (x).• f (x) · g(x)´ = f´ (x) · g(x) + f (x) · g´ (x).• Om f (x) ∈GF(2m)[x] ⇒ f´ (x) har inga termer med udda potens.

Forneys algoritm4

Felens värden beräknas enligt

(5.4)

Vi fortsätter nu med Exempel 5.10:

För att bestämma felens värden bildar vi först

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

= (1 + α2 · x + α6 · x2)(1 + α3 · x + x2 + 0 · x3 + α6 · x4)mod x5 =

=

Koefficienterna till Λ´ (x) tas från GF(2) ⇒ Λ´ (x) = α2

4 För detaljer hänvisas till: G.D. Forney, ”On Decoding BCH Codes”, IEEETransactions on Information Theory, Vol. IT-11, pp. 549-557, October 1965.

eik = – XkΩ Xk

– 1

Λ´ Xk– 1

1 + α2 · x + α6 · x2

α3 · x + α5 · x2 + α9 · x3

x2 + α2 · x3 + … endast termer upp till x2 behövs1 + α5 · x + α3 · x2

Page 154: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

5 BCH- och Reed-Solomonkoder

152 © Studentlitteratur

05 kap5 BCH- o Reed-Solomon.fm 21 september 2004 21.07:59 sida 152 av 162

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 generatorpoly-nomet fås slutligen det uppskattade meddelandepolynomet:

Uppskattat meddelandepolynom är alltså x2 + α6 · x + α2 och

uppskattat meddelandeord är (α2 α6 1)

5.7 Binär suddningsavkodning (eng. erasure decoding)

I en mottagare med hård avkodning beslutar mottagaren (binära sig-naler) att antingen en ”nolla” eller en ”etta” mottagits (hard-decisionreceiver). Men vid öveföring via en ”skurfelskanal”5 där felen inte äroberoende och gaussiska kan flera symboler efter varandra få så låg

eik = – Xk 1 + α 5 · Xk

– 1 + α 3 · Xk– 2

α 2 = α 5 · Xk + α 3 + α · Xk

– 1

x4 + α3 · x3 + x2 + α · x + α3 x6 + α4 · x5 + x4 + α4 · x2 + x + α5

x2 + α6 · x + α2

x6 + α3 · x5 + x4 + α · x3 + α3 · x2

α6 · x5 + α · x3 + α6 · x2 + α5 · x + α5

α6 · x5 + α2 · x4 + α6 · x3 + x2 + α2 · x

0

α2 · x4 + α5 · x3 + α2 · x2 + α3 · x + α5

α2 · x4 + α5 · x3 + α2 · x2 + α3 · x + α5

Page 155: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

5.7 Binär suddningsavkodning (eng. erasure decoding)

© Studentlitteratur 153

05 kap5 BCH- o Reed-Solomon.fm 21 september 2004 21.07:59 sida 153 av 162

Figur 5.1 Enkel form av ”mjuk avkodning” med suddning.

nivå att det är meningslöst att försöka besluta om en ”etta” eller en”nolla” mottagits.

I sådana fall får mottagaren ”sidoinformation” om att vissa symbolerkasseras eller ”suddas”. Mottagaren gör då en ”mjuk avkodning”(soft-decision receiver) - se Figur 5.1, d.v.s. förutom ”nolla” eller”etta” kan mottagaren besluta att den mottagna symbolen är ”sud-dad”. Vid felkorrigering behöver mottagaren då inte beräkna feletsposition utan bara felets värde (eller storlek), vilket gör att dubbelt såmånga suddningsfel som bitfel kan korrigeras.

I avsnittet 3.5 såg vi nämligen att felkorrigeringsförmågan

men för ett system där både fel och suddningar före-

kommer fattar avkodaren ett riktigt beslut om

2e + f < dmin (5.5)

där e är antalet (bit)fel och f antalet suddningsfel, eller

(5.6)

d.v.s. te fel kan korrigeras om det samtidigt förekommer f suddnings-fel. Av (5.5) framgår att om vi väljer att enbart korrigera suddningsfelkan enligt vad som nyss påståtts dubbelt så många korrigeras som omvi valt att enbart korrigera fel.

5 T.ex. en fädande radiokanal.

0

1

– 1

besluta ”etta”

besluta ”nolla”

besluta ”suddning”

mot

tage

n ni

t = dmin – 1

2

te = dmin – f – 1

2

Page 156: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

5 BCH- och Reed-Solomonkoder

154 © Studentlitteratur

05 kap5 BCH- o Reed-Solomon.fm 21 september 2004 21.07:59 sida 154 av 162

Suddningsavkodning med Reed-Solomonkodning spelar en viktigroll i felkontrollsystem i CD-spelare.

Genom smärre modifieringar av standardavkodningen kan vi utförasuddningsavkodning med

5.7.1 Binär suddningsavkodningsalgoritm

1. Sätt nollor i alla suddningsfelpositioner i det mottagna kodordetr och felkorrigera på normalt sätt. Kalla det korrigerade kodor-det c0.

2. Sätt i stället ettor i alla suddningsfelpositioner i det mottagnakodordet och felkorrigera på normalt sätt. Kalla det korrigeradekodordet c1.

3. Jämför c0 och c1 med r och välj det korrigerade kodord, c0 ellerc1, som är närmast r mätt i hammingavstånd.

5.7.2 Icke-binär suddningsavkodningsalgoritm6

1. Bestäm suddningsfelpolynomet Γ(x) med hjälp av suddningsin-formationen (sidoinformationen) från mottagaren.

2. Ersätt de suddade positionerna med nollor och beräkna syn-drompolynomet S(x).

3. Beräkna det modifierade syndrompolynometΞ(x) = Γ(x)[1 + S(x)] – 1.

4. Tillämpa Berlekamp-Masseys algoritm för att beräkna anslut-ningspolynomet Λ(x) till det linjära skiftregistret (se fotnot 4),som genererar de modifierade syndromkoefficienterna Ξ1, Ξ2,…, Ξ3.

5. Bestäm rötterna till Λ(x) som utgör felpositionerna.6. Bestäm värdena (eller storleken) på felen och suddningsfelen.

6 Enligt Berlekamp-Massey.

Page 157: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

5.7 Binär suddningsavkodning (eng. erasure decoding)

© Studentlitteratur 155

05 kap5 BCH- o Reed-Solomon.fm 21 september 2004 21.07:59 sida 155 av 162

Exempel 5.11 Korrigera den mottagna kodvektorn r = (0 f α 1 f 1 0)

Koden är en dubbelfelskorrigerande (7,3)-Reed-Solomon-kod med generator-

polynomet g(x) = α3 + αx + x2 + α3x3 + x4 (samma g(x) som i Exempel 5.9).

Lösning:

r = (0 f α 1 f 1 0) har kodpolynomet r(x) = f x + α x2 + x3 + f x4 + x5.

Suddningsfel finns 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 beräkna syndromen:

S1 = α · α2 + α3 + α5 = α5

S2 = α · α4 + α6 + α10 = = 1

S3 = α · α6 + α9 + α15 = 1 + α2 + α = = α5

S4 = α · α8 + α12 + α20 = α2 + α5 + α6 = = α4

Det modifierade 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

Således är Ξ(x) = α3 · x + α5 · x2

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 + 0 · x3 + 0 · x4

Sl = α α l 2 + α l 3 + α l 5

1 1 11 0 11 1 01 0 0

1 0 00 0 10 1 01 1 1

0 0 11 1 11 0 10 1 1

Page 158: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

5 BCH- och Reed-Solomonkoder

156 © Studentlitteratur

05 kap5 BCH- o Reed-Solomon.fm 21 september 2004 21.07:59 sida 156 av 162

1. Ξ1 = α3 Ξ2 = α5 Ξ3 = 0 Ξ4 = 0

2. k = 0, Λ(0)(x) = 1, L = 0 och T(x) = x

3. k = 1; Λ(1) = Ξ1 –

4. Λ(1) = α3 ≠ 0

5. Λ(1)(x) = Λ(0)(x) – Λ(1) · T(x) = 1 + α3 · x

6. 2L = 0 k = 1

7. L = k – L = 1 – 0;

8. T(x) = x · T(x) = α4 · x

9. 1 = k < 2t = 4

2. k = 2

α5 + α3 · α3 = α5(1 + α) = α8 = α

4. Λ(2) = α ≠ 0

5. Λ(2)(x) = Λ(1)(x) – Λ(2) · T(x)

Λ(2)(x) = 1 + α3 · x + α · α4 · x = 1 + α3(1 + α2)x = 1 + α3 · α4 · x = 1 + α2 · x

6. 2 = 2L ≥ k = 2

8. T(x) = x · T(x) = α4 · x2

9. 2 = k < 2t = 4

3. k = 3

0 + α2 · α5 = 1

4. Λ(3) = 1 ≠ 0

5. Λ(3)(x) = Λ(2)(x) – Λ(3) · T(x)

Λ(3)(x) = 1 + α2 · x + 1 · α4 · x2 = 1 + α2 · x + α4 · x2

6. 2 = 2L k = 3

Λi(0) · Ξ1 – i∑

i = 1

L

= α 3

T(x) = Λ(0)(x)

Λ (1) = 1

α 3 = α – 3 = α 4

∆ (2) = Ξ2 – Λi(1) · Ξ2 – i∑

i = 1

L = 1

=

∆ (3) = Ξ3 – Λi(2) · Ξ2 – i∑

i = 1

L = 1

=

Page 159: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

5.7 Binär suddningsavkodning (eng. erasure decoding)

© Studentlitteratur 157

05 kap5 BCH- o Reed-Solomon.fm 21 september 2004 21.07:59 sida 157 av 162

7. L = k – L = 3 – 1 = 2;

8. T(x) = x · T(x) = x + α2 · x2

9. 3 = k < 2t = 4

3. k = 4

0 + α2 · 0 + α4 · α5 = α2

4. ∆(4) = α2 ≠ 0

5. Λ(4)(x) = Λ(3)(x) – ∆(4) · T(x)

Λ(4)(x) = 1 + α2 · x + α4 · x2 + α2(x + α2 · x2) = 1 ⇒ inga fel

Suddningsfelpolynomet:

Ψ(x) = Λ(x) · Γ (x) = 1 · (1 + α2 · x + α5 · x2) = (1 + α · x)(1 + α4 · x)

Ψ´(x) = α2

f1 = α5 · α + α + α3 · α– 1 = α6 + α + α2 = = α3

f4 = α5 · α4 + α + α3 · α– 4 = α2 + α + α6 = α3

⇒ f(x) = α3 · x + α3 · x4

rkorr(x) = r(x) + + f(x) = f · x + α · x2 + x3 + f · x4 + x5 + f(x) =

= α3 · x + α · x2 + x3 + α3 · x4 + x5

För att slutligen få fram meddelandepolynomet dividerar vi det korrigeradekodpolynomet med generatorpolynomet:

T(x) = Λ(2)(x)

Λ (3) = 1 + α 2 · x

1 = 1 + α 2 · x

∆ (4) = Ξ4 – Λi(3) · Ξ4 – i∑

i = 1

L = 2

=

fik = – Yk · Ω Yk

– 1

Ψ´ Yk– 1

= Yk 1 + α 3 · Yk

– 1 + α 5 · Yk– 2

α 2 =

= α 5 · Yk + α + α 3 · Yk– 1

1 0 10 1 00 0 11 1 0

e(x)

= 0

Page 160: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

5 BCH- och Reed-Solomonkoder

158 © Studentlitteratur

05 kap5 BCH- o Reed-Solomon.fm 21 september 2004 21.07:59 sida 158 av 162

⇒ 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 kända cykliskakoderna.

• Reed-Solomon-koderna kan uppfattas som en icke-binärutvidgning av BCH-koderna.

5.8 Problem. BCH- och Reed-SolomonkoderProblem 5.1

Finns det några bra BCH-koder av längd 19? Motivera svaret.

Svar:

Nej

Problem 5.2

Transmissionskoden är en enkelfelskorrigerande, narrow-sense, binär BCH-kodmed längden 15. Generatorpolynomet är g(x) = 1 + x + x4. Använd Petersonsmetod för att korrigera följande mottagna vektorer:

a) r = (111110000000000)

b) r = (111011000000000)

c) r = (000001101101010)

x

x4 + α3 · x3 + x2 + α · x + α3 x5 + α3 · x4 + x3 + α · x2 + α3 · x

x5 + α3 · x4 + x3 + α · x2 + α3 · x

0

Page 161: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

5.8 Problem. BCH- och Reed-Solomonkoder

© Studentlitteratur 159

05 kap5 BCH- o Reed-Solomon.fm 21 september 2004 21.07:59 sida 159 av 162

Svar:

a) 111110100000000

b) 101011000000000

c) 000000101101010

Problem 5.3

En dubbelfelskorrigerande narrow-sense binär BCH-kod av längd 15 har gene-ratorpolynomet

g(x) = 1 + x4 + x6 + x7 + x8

Använd Petersons metod för att korrigera och avkoda följande mottagna kod-vektorer:

a) r = (010000000000000)

b) r = (001110110000000)

Svar:

a) 0000000

b) 0011100

Problem 5.4

Transmissionskoden är en dubbelfelsrättande, narrow-sense, binär BCH-kodmed längden 15. Generatorpolynomet är g(x) = 1 + x4 + x6 + x7 + x8. AnvändBerlekamps metod för att korrigera och avkoda följande mottagna vektorer:

a) r = (001000000000000)

b) r = (000110001100000)

c) r = (101110110010000)

Svar:

a) 0000000

b) 0001100

c) 0011100

Problem 5.5

Bestäm generatorpolynom, takt, generator- och paritetscheckmatris för en nar-row-sense Reed-Solomonkod av längd 15 och designdistans 3.

Page 162: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

5 BCH- och Reed-Solomonkoder

160 © Studentlitteratur

05 kap5 BCH- o Reed-Solomon.fm 21 september 2004 21.07:59 sida 160 av 162

Svar:

g(x) = x2 + α5x + α3

Problem 5.6

Bestäm ett generatorpolynom för en narrow-sense dubbelfelskorrigerandeReed-Solomon-kod av längd 31.

Ledning: För reduktion av koefficienterna i kodpolynomet modulo 31, se tabel-ler

Svar:

x4 + α24x3 + α19x2 + α29x + α10

Problem 5.7

En dubbelfelskorrigerande narrow-sense Reed-Solomon-kod av längd 7 hargeneratorpolynomet

g(x) = α3 + αx + x2 + α3x3 + x4

Använd Peterson-Gorenstein-Zierlers metod för att korrigera och avkoda föl-jande mottagna kodvektorer:

a) r = (000α2000)

b) r = (α51α4α4010)

c) r = (1α5α411α41)

R = 1315

G =

α 3 α 5 1 0 0 0 0 0 0 0 0 0 0 0 00 α 3 α 5 1 0 0 0 0 0 0 0 0 0 0 00 0 α 3 α 5 1 0 0 0 0 0 0 0 0 0 00 0 0 α 3 α 5 1 0 0 0 0 0 0 0 0 00 0 0 0 α 3 α 5 1 0 0 0 0 0 0 0 00 0 0 0 0 α 3 α 5 1 0 0 0 0 0 0 00 0 0 0 0 0 α 3 α 5 1 0 0 0 0 0 00 0 0 0 0 0 0 α 3 α 5 1 0 0 0 0 00 0 0 0 0 0 0 0 α 3 α 5 1 0 0 0 00 0 0 0 0 0 0 0 0 α 3 α 5 1 0 0 00 0 0 0 0 0 0 0 0 0 α 3 α 5 1 0 00 0 0 0 0 0 0 0 0 0 0 α 3 α 5 1 00 0 0 0 0 0 0 0 0 0 0 0 α 3 α 5 1

H = 1 α α 2 α 3 α 4 α 5 α 6 α 7 α 8 α 9 α 1 0 α 1 1 α 1 2 α 1 3 α 1 4

1 α 2 α 4 α 6 α 8 α 1 0 α 1 2 α 1 4 α α 3 α 5 α 7 α 9 α 1 1 α 1 3

Page 163: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

5.8 Problem. BCH- och Reed-Solomonkoder

© Studentlitteratur 161

05 kap5 BCH- o Reed-Solomon.fm 21 september 2004 21.07:59 sida 161 av 162

Svar:

a) r = (000)

b) r = (α210)

c) r = (α2α61)

Problem 5.8

En dubbelfelskorrigerande narrow-sense Reed-Solomon-kod av längd 7 hargeneratorpolynomet

g(x) = α3 + αx + x2 + α3x3 + x4

Använd Berlekamp-Masseys metod för att korrigera och avkoda följande mot-tagna kodvektorer:

a) r = (00010α0)

b) r = (α601α3100)

c) r = (0α500α4α50)

Svar:

a) r = (000)

b) r = (100)

c) r = (0α21)

Problem 5.9

En dubbelfelskorrigerande narrow-sense Reed-Solomon-kod av längd 7 hargeneratorpolynomet

g(x) = α3 + αx + x2 + α3x3 + x4

Använd Berlekamp-Masseys metod för att korrigera och avkoda följande mot-tagna kodvektorer:

a) r = (00ff 000)

b) r = (f 0α4fα51α2)

Svar.

a) r = (000)

b) 2 fel och 2 suddningsfel ⇒ för många fel för att kunna korrigeras.

Page 164: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

05 kap5 BCH- o Reed-Solomon.fm 21 september 2004 21.07:59 sida 162 av 162

Page 165: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

©

Studentlitteratur

163

06 kap6 Faltningskoder.fm 21 september 2004 21.08:00 sida 163 av 190

6 Faltningskoder

En faltningskod omvandlar en hel dataström, oberoende av desslängd, till ett enda kodord. Konstruktion av blockkoder bygger påalgebraisk teknik medan man vid konstruktion av faltningskoderanvänder heuristiska metoder.

Faltningskoder introducerades 1955 av P. Elias. Han visade att data-strömmar kan tillföras redundans med hjälp av linjära skiftregister.Han visade också att de resulterande koderna var mycket bra om devaldes stokastiskt.

En faltningskod betecknas (

n,k,m

). Kodaren har

n

utgångar och

k

ingångar medan

m

är minneslängden, d.v.s. värdena på de

n

utgång-arna beror inte enbart på de

k

ingångarna.

k

och

n

är vanligen småheltal med

k

<

n

. För att minska felantalen bör

m

vara stor.

I det följande kommer faltningskoders grundläggande struktur ochhur kodningen utförs att genomgås.

6.1 Linjära faltningskoder

Figur 6.1 visar en (2,1,3)-kod eller -takts kod. Takten bestäms av att

kodaren lämnar ut två binära symboler för varje insymbol. Data-strömmen

x

= (

x

0

,

x

1

,

x

2

,...) matas in i ett skiftregister, som består aven serie minneselement. För varje successiv klockpuls matas en binärsymbol in medan värdena på minneselementen kodas av och lämnarett par utgående kodade dataströmmar:

12

Detta dokument har framställts med FrameMaker 4.0.4

Page 166: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

6 Faltningskoder

164

©

Studentlitteratur

06 kap6 Faltningskoder.fm 21 september 2004 21.08:00 sida 164 av 190

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

y

(0)

= (6.1)

och

y

(1)

= . (6.2)

Dessa dataströmmar kan multiplexas för att skapa en enda kodaddataström:

y

= (6.3)

där

y

är det faltade kodordet.

Varje element i utgångsströmmen

y

är en linjärkombination av ele-menten i ingångsströmmen.

Om skiftregistret är nollställt från början så blir utgångssekvenserna:

+

+

... x2,x1,x0

... y2(0),y1

(0),y0(0)

... y2(1),y1

(1),y0(1)

(y0(0), y1

(0), y2(0),...)

(y0(1), y1

(1), y2(1),...)

(y0(0)y0

(1), y1(0)y1

(1), y2(0)y2

(1),...)

y0(0) = x0

(0) + 0 + 0 y0(1) = x0

(0) + 0 + 0

y1(0) = x1

(0) + 0 + 0 y1(1) = x1

(0) + x0(0) + 0

y2(0) = x2

(0) + x0(0) + 0 y2

(1) = x2(0) + x1

(0) + 0

y3(0) = x3

(0) + x1(0) + x0

(0) y3(1) = x3

(0) + x2(0) + x0

(0)

Page 167: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

6.2 Impulssvar

©

Studentlitteratur

165

06 kap6 Faltningskoder.fm 21 september 2004 21.08:00 sida 165 av 190

... ...

Exempel 6.1

Kodaren med -takt enligt Figur 6.1 används för att koda informationssekven-sen

x

= (10110).

Vi får följande utsekvens

y

(0)

= (10001010)

y

(1)

= (11111110).

Det faltningskodade kodordet motsvarande

x

= (10110)

blir därför

y

= (11 01 01 01 11 01 11 00).

Sambanden enligt ovan kan generaliseras:

och

och visar att en faltningskodare enligt Figur 6.1 är linjär eftersom om

y

1

och

y

2

är kodord svarande mot insekvenserna

y

1

och

y

2

så svarar kodordet (

y

1

+

y

2

)mot insekvensen (

x

1

+

x

2

). Den linjära strukturen hos denna kod gör det möjligtatt tillämpa en del kraftfulla satser från linjär systemteori.

6.2 Impulssvar

Ett impulssvar erhålls från den

i

:te utgången av en faltningsko-dare om en ensam etta ansluts till den

j

:te ingången, följd av en strängnollor. Strängar av nollor ansluts också till övriga ingångar.

y4(0) = x4

(0) + x2(0) + x1

(0) y4(1) = x4

(0) + x3(0) + x1

(0)

yi(0) = xi

(0) + xi – 2(0) + xi – 3

(0) yi(1) = xi

(0) + xi – 1(0) + xi – 3

(0)

12

yi(0) = xi

(0) + xi – 2(0) + xi – 3

(0) yi(1) = xi

(0) + xi – 1(0) + xi – 3

(0)

gj(i)

Page 168: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

6 Faltningskoder

166

©

Studentlitteratur

06 kap6 Faltningskoder.fm 21 september 2004 21.08:00 sida 166 av 190

Impulssekvensen hos kodaren i Figur 6.1 är

(6.4)

. (6.5)

Definition 6.1

Spannet (eng. constraint length)

K

i en faltningskod är detmaximala antalet bitar i utsekvensen, som kan påverkas av eninsekvensbit.

Vanligen definieras

K

som det längsta i kodaren ingående skift-registret + 1:

.

Denna definition är vanlig i industriella och militära publikatio-ner. En annan definition som också förekommer i litteraturen är

.

Totalt minne,

M

, för en faltningskodare är summan av alla minnes-element i faltningskodaren:

(6.6)

Storleken av

M

påverkar starkt avkodarens komplexitet.

Av det nyss genomgångna exemplet framgår att kodordet är längre ändubbla längden av det kodade meddelandeordet, vilket beror på attkodordet inte är komplett förrän alla minnesceller har ”tömts”. Detillkommande redundanta ”tömningsbitarna” reducerar kodens effek-tiva takt och åstadkommer en relativ taktförlust (eng. fractional rateloss).

Efter det att den sista biten i ett

L

-bits meddelande har klockats in iregistret måste skiftregistren klockas ytterligare

m

gånger innan allaminnesceller har tömts ut i dataströmmen. Eftersom det finns

n

utgångsströmmar måste alltså ytterligare

nm

bitar läggas till kodor-det.

g (0)= (1011)

g (1)= (1101)

K 1 + mimaxi

K n 1 + mimaxi

M = mi∑i = 0

k – 1

Page 169: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

6.2 Impulssvar

©

Studentlitteratur

167

06 kap6 Faltningskoder.fm 21 september 2004 21.08:00 sida 167 av 190

Taktens relativa förlust för ett

L

-bits meddelande blir därför:

(6.7)

Om

L

q

km

är

γ

försumbar.

Exempel 6.2

I vårt exempel blir, med meddelandelängden

L

= 5,

k

= 1 och

m

= 3, taktensrelativa förlust:

.

Uttrycken för utgångssekvenserna i vårt exempel

och

kan generaliseras till (en ingång)

, (6.8)

vilket är uttrycket för faltningen mellan två sekvenser, varifrånuttrycket ”faltningskod” kommer.

Varje kodad utsekvens

y

(

i

)

i en -takts kod är lika med faltningen

mellan ingångssekvensen

x

och impulssekvenssvaret

g

(

i

)

:

y

(

i

)

=

x

*

g

(

i

)

. (6.9)

Vi kan ytterligare generalisera sambandet till att gälla en kodare med

k

ingångar:

(6.10)

γ = R – Reffektiv

R =

kn – L

nk

L + nm

kn

= kmL + km

γ = k mL + km

= 1 · 3

5 + 1 · 3 = 3

8 = 0,375

yi(0) = xi

(0) + xi – 2(0) + xi – 3

(0) yi(1) = xi

(0) + xi – 1(0) + xi – 3

(0)

yi(j) = xi – lgl

(j)∑l = 0

m

1n

yj(i) = xj – l

t gt,l(i)∑

l = 0

m

∑t = 0

k – 1

Page 170: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

6 Faltningskoder

168

©

Studentlitteratur

06 kap6 Faltningskoder.fm 21 september 2004 21.08:00 sida 168 av 190

som kan uttryckas som

(6.11)

Ett annat sätt att uttrycka kodningen kan göras med en matrismultip-likation mellan en meddelandevektor och en generatormatris på mot-svarande sätt som gjordes vid cykliska blockkoder. Skillnaden i för-hållande till blockkoder är att insekvensens längd inte nödvändigtvisär begränsad, varför generator- och paritetscheck-matriser för falt-ningskoder är semiinfinita.

För en faltningskod med -takt, som i vårt exempel, får vi generator-

matrisen genom att ”väva” samman (interleave) de två generatorsek-

venserna

g

(0)

och

g

(1) så här:

(6.12)

Vi kan nu skriva sambandet mellan ut- och in-sekvens på följandekompakta form:

y = xG (6.13)

Exempel 6.3

Vi ska koda sekvensen x = (1011) med kodaren i vårt exempel.

Generatorsekvenserna är:

.

Då insekvensen har längden 4, får generatormatrisen 4 rader;

= (11 01 01 01 11 01 11).

y(i) = x t * gt(i)∑

t = 0

k – 1

12

G =

g0(0)g0

(1) g1(0)g1

(1) g2(0)g2

(1) gm(0)gm

(1) 0 0

0 g0(0)g0

(1) g1(0)g1

(1) g2(0)g2

(1) gm(0)gm

(1) 0 0

0

g (0) = (1011)

g (1) = (1101)

y = xG = 1 0 1 1

11 01 10 11 00 00 0000 11 01 10 11 00 0000 00 11 01 10 11 0000 00 00 11 01 10 11

Page 171: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

6.2 Impulssvar

© Studentlitteratur 169

06 kap6 Faltningskoder.fm 21 september 2004 21.08:00 sida 169 av 190

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

Ett annat exempel på en faltningskodare visas i Figur 6.2. I detta fallhar vi två ingångar varför k = 2. Det finns två generatorsekvenser förvarje ingångssekvens och gi

(j) = (gi,0(j),gi,1

(j),...,gi,m(j)) motsvarar

generatorsekvensen från ingång i till utgång j.

Generatorsekvenserna för faltningskodaren i Figur 6.2 är

g0(0) = (1 1) g0

(1) = (0 1) g0(2) = (1 1)

g1(0) = (0 1) g1

(1) = (1 0) g1(2) = (1 0)

Generellt kan generatormatrisen för en (3,2,m)-faltningskodare skri-vas:

+

+

+

... y2(1),y1

(1),y0(1)

... y2(0),y1

(0),y0(0)

... y2(2),y1

(2),y0(2)

... x2(0),x1

(0),x0(0)

... x2(1),x1

(1),x0(1)

Page 172: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

6 Faltningskoder

170 © Studentlitteratur

06 kap6 Faltningskoder.fm 21 september 2004 21.08:00 sida 170 av 190

Exempel 6.4

Bestäm utsekvensen för 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)

Ett annat sätt att skriva sekvenserna kan göras med fördröjningsop-eratorn eller D-transformen (eng. Delay). Följande samband rådermellan insekvensen skriven på vanlig form och skriven med D-trans-formen:

x(i) = X(i)(D) = ,

varför vi istället för

y = xG

kan skriva:

Y(i) = X(i)(D)G(i)(D). (6.14)

För ett kodningssystem med flera ingångar blir motsvarande uttryck:

(6.15)

som kan skrivas som en matrismultiplikation på följande sätt:

G =

g0,0(0)g0,0

(1)g0,0(2) g0,1

(0)g0,1(1)g0,1

(2) g0,m(0) g0,m

(1) g0,m(2) 0 0 0

g1,0(0)g1,0

(1)g1,0(2) g1,1

(0)g1,1(1)g1,1

(2) g1,m(0) g1,m

(1) g1,m(2) 0 0 0

0 g0,0(0)g0,0

(1)g0,0(2) g0,1

(0)g0,1(1)g0,1

(2) g0,m(0) g0,m

(1) g0,m(2) 0 0

0 g1,0(0)g1,0

(1)g1,0(2) g1,1

(0)g1,1(1)g1,1

(2) g1,m(0) g1,m

(1) g1,m(2) 0 0

0 0 0 g0,0(0)g0,0

(1)g0,0(2) g0,1

(0)g0,1(1)g0,1

(2) g0,m(0) g0,m

(1) g0,m(2)

0 0 0 g1,0(0)g1,0

(1)g1,0(2) g1,1

(0)g1,1(1)g1,1

(2) g1,m(0) g1,m

(1) g1,m(2)

y = xG = (11 01 10)

101 111 0 0011 100 0 00 101 111 00 011 100 00 0 101 1110 0 011 100

= (110 000 001 111)

(x0(i), x1

(i), x2(i),...) → x0

(i) + x1(i)D + x2

(i)D 2 + ...

Y(i)(D) = X (i)(D)Gj(i)(D)∑

j = 0

k – 1

Page 173: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

6.2 Impulssvar

© Studentlitteratur 171

06 kap6 Faltningskoder.fm 21 september 2004 21.08:00 sida 171 av 190

(6.16)

Med definitionen

Y(D) = (Y(0)(D) Y(1)(D) ... Y(k – 1)(D)) (6.17)

får vi följande uttryck för hela kodningsoperationen:

Y(D) = X(D) · G(D) =

(6.18)

G(D) kallas överföringsfunktionsmatrisen (eng. transfer functionmatrix).

Exempel 6.5

-takt kodaren enligt Figur 6.3 används för att koda meddelandet

x = (11 10 11).

Meddelandet delas upp i två dataströmmar

X(0)(D) = 1 + D + D2

X(1)(D) = 1 + D2

Y(i)(D) = X (0)(D) X (1)(D) X (k – 1)(D)

G0(i)(D)

G1(i)(D)

Gk – 1(i) (D)

= X (0)(D) X (1)(D) X (k – 1)(D)

G0(0)(D) G0

(1)(D) G0(n – 1)(D)

G1(0)(D) G1

(1)(D) G1(n – 1)(D)

Gk – 1(0) (D) Gk – 1

(1) (D) Gk – 1(n – 1)(D)

23

Page 174: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

6 Faltningskoder

172 © Studentlitteratur

06 kap6 Faltningskoder.fm 21 september 2004 21.08:00 sida 172 av 190

Figur 6.3 (3,2,3)-faltningskodare till Exempel 6.5.

D-transformen för de kodade dataströmmarna beräknas på följande sätt:

= [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 återgår till binärform får vi följande utsekvenser:

y(0) = (100001)

y(1) = (110111)

y(2) = (110000)

och hela kodordet

y = (111 011 000 010 010 110).

+

+

+

... x2(0) x1

(0) x0(0)

... x2(1) x1

(1) x0(1)

... y2(0),y1

(0),y0(0)

... y2(1),y1

(1),y0(1)

... y2(2),y1

(2),y0(2)

Y(D) = 1 + D + D2 1 + D2 1 + D3 D + D2+ D3 1 + DD + D2 1 + D2 D

=

Page 175: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

6.3 Grafiska analysmetoder för faltningskoder

© Studentlitteratur 173

06 kap6 Faltningskoder.fm 21 september 2004 21.08:00 sida 173 av 190

Figur 6.4 Systematisk -takts faltningskodare.

Definition 6.2

En faltningskod är systematisk om i likhet med systematiskblockkodning, ingångsdata finns reproducerade i oförändradform i kodordet på faltningskodarens utgång.

Figur 6.4 visar ett exempel på en systematisk -takts faltningsko-dare.

6.3 Grafiska analysmetoder för faltningskoder

Tillståndsdiagram

Återgå till den enkla faltningskodaren - Figur 6.5.

De tre minneselementen utgör tillsammans en finit tillståndsmaskinmed åtta möjliga tillstånd

(S0 S1 S2 S3 S4 S5 S6 S7) enligt

+ ... y2(1),y1

(1),y0(1)

... y2(0),y1

(0),y0(0)

...x2(0),x1

(0),x0(0)

12

12

Page 176: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

6 Faltningskoder

174 © Studentlitteratur

06 kap6 Faltningskoder.fm 21 september 2004 21.08:00 sida 174 av 190

Lägg märke till att minnesinnehållets numrering är omvänd i förhål-lande till vanlig binärrepresentation av tillståndstal. Förändringar itillstånd bekrivs med ett tillståndsdiagram. Tillstånden förbinds medriktade grenar. Varje gren har en etikett av formen X/YY där X äringångsbiten som förorsakar tillståndsändringen. YY är motsvarandepar av utgångsbitar.

tillstånd minnes-innehåll

S0 000

S1 100

S2 010

S3 110

S4 001

S5 101

S6 011

S7 111

+

+

... x2,x1,x0

... y2(0),y1

(0),y0(0)

... y2(1),y1

(1),y0(1)

Page 177: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

6.3 Grafiska analysmetoder för faltningskoder

© Studentlitteratur 175

06 kap6 Faltningskoder.fm 21 september 2004 21.08:00 sida 175 av 190

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

Figur 6.6 Tillståndsdiagram för faltningskodaren i Figur 6.5.

Kodarens tillstånd kan uppfattas som en viktad riktad graf.

Definition 6.3

En graf är en samling noder (tillstånd) som på något sätt ärsammanbundna via en serie grenar. En graf är riktad om dessgrenar har en associerad riktning. En graf är viktad om greneti-ketterna anger någon kvantitet som ackumuleras när grafengenomlöps.

Exempel på en sådan viktad kvantitet är meddelandeordets och mot-svarande kodords Hamming-vikt.

Definition 6.4

En väg (eng. path) genom en graf är en sekvens noder av vilkavarje par närbelägna noder är sammanbundna av en gren. Enväg är en krets om den startar och slutar i samma nod. En kretsär en slinga om den inte genomlöper en nod mer än en gång.Kodarens tillståndsdiagram kallas också kodargraf.

S0

S1

S4

S2 S5

S3

S6

S7

1/10

1/01

0/10

0/01

1/00

0/01

0/100/00

1/11

0/11

0/111/11

1/00

1/10

1/01

0/00

Page 178: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

6 Faltningskoder

176 © Studentlitteratur

06 kap6 Faltningskoder.fm 21 september 2004 21.08:00 sida 176 av 190

Eftersom kodningsprocessen börjar och slutar i S0-tillståndet (”theall-zero state”) kan varje faltningskod uppfattas som en krets genomkodargrafen med start- och slutpunkt i S0-tillståndet.

Exempel 6.6

Utgå från vår vanliga -takts kodare. Insekvensen är

x = (1011).

Denna insekvens anger vägen

S0 → S1 → S2 → S5 → S3 → S6 → S4 → S0

genom kodargrafen.

Så snart som insekvensen blivit inmatad i kodaren befinner den sig i tillståndetS3. Kretsen kompletteras därefter genom att mata in ytterligare nollor tills koda-ren återgår till S0-tillståndet. Motsvarande kodord är

(11 01 01 01 11 01 11),

vilket är detsamma som vi på annat sätt erhållit förut.

6.4 Katastrofala faltningskoder

Definition 6.5

En faltningskod är katastrofal om dess kodargraf innehåller enkrets i vilken en nollskild sekvens genererar en nollsekvens.

Exempel 6.7

I detta exempel, se Figur 6.7 och Figur 6.8, genererar en rad ettor en utsekvensbetående av bara nollor om kodaren befinner sig i tillståndet S7, som man kom-mer till om man startar i tillstånd S0 och bara ettor kommer in:

x = (111111111...)

genererar

y = (11 00 11 00 00 00 00 00 00 ...).

En maximum likelihood-avkodare beslutar för ett sådant fall att ett meddelandemed bara nollor sänts, d.v.s. ett oändligt antal felavkodningar.

12

Page 179: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

6.4 Katastrofala faltningskoder

© Studentlitteratur 177

06 kap6 Faltningskoder.fm 21 september 2004 21.08:00 sida 177 av 190

Figur 6.7 Tillståndsdiagram för Exempel 6.7.

Figur 6.8 Katastrofal faltningskodare till Exempel 6.7.

S0

S1

S4

S2 S5

S3

S6

S7

1/00

1/00

0/00

0/00

1/00

0/11

0/110/00

1/11

0/11

0/001/00

1/11

1/11

1/11

0/11

+

+

... x2,x1,x0

... y2(0),y1

(0),y0(0)

... y2(1),y1

(1),y0(1)

Page 180: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

6 Faltningskoder

178 © Studentlitteratur

06 kap6 Faltningskoder.fm 21 september 2004 21.08:00 sida 178 av 190

Forney har visat att exakt av alla faltningskoder med -takt

och givet spann är katastrofala.

6.5 Grafer och viktangivelserOm vi utgår från att kodaren från början är i tillståndet S0 så kan vi fåkodordet genom att följa vägen genom kodargrafen bestämd avinsekvensen och anteckna motsvarande utgångsvärden angivna avgrenetiketterna. Efter den sista nollskilda binära nollsymbolen åter-förs kodaren till nolltillståndet S0 genom m stycken noll-block.

Tillståndsdiagrammet (kodargrafen) kan modifieras på följande sätttill att ge underlag för att kunna beräkna Hamming-vikten (viktdistri-butionsfunktionen) för alla nollskilda kodord:

Tillståndet S0 delas upp i ett startläge och ett slutläge, ”egenslingan”runt S0 tas bort och vi beräknar en genererande funktion eller viktan-givelse på formen

(6.19)

där ai,j är antalet kodord med vikt i som motsvarar insekvenser medvikt j.

En given grens etikett Y/X (OBS! Nu är Y invektor och X utvektor)byts mot etiketten XiYj där j är vikten på invektorn Y och i är viktenpå utvektorn X. Vi får på så sätt följande diagram för vårt vanligaexempel.

Betrakta vägen S0 → S1 → S3 → S6 → S4 → S0 som motsvararinsekvensen (11000) och kodordet (11 10 11 01 11). Vikterna för

motsvarande grenar är X2Y, XY, X2, X, X2 som ihopmultiplicerade ger

12n – 1 – 1

1n

T(X, Y) = ai,j XiY j∑

j = 1

∑i = 1

Page 181: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

6.5 Grafer och viktangivelser

© Studentlitteratur 179

06 kap6 Faltningskoder.fm 21 september 2004 21.08:00 sida 179 av 190

grenförstärkningen X8Y2, d.v.s. insekvensvikten är 2 och kodordsvik-ten är 8.

Med hjälp av Masons formel, som är en grafisk metod att lösa ekva-tionssystem, kan transmissionen T från källa till sänka beräknas fören signalflödesgraf. Transmissionen är en produkt av grenförstärk-ningarna för alla de grenar som börjar och slutar i tillståndet S0.

Figur 6.9 Signalflödesgraf för faltningskodaren i Figur 6.5.

För att förstå Masons formel behövs några definitioner:

En slinga är en krets som inte anlöper något tillstånd mer än en gång.

En framslinga är en slinga som startar och slutar i tillståndet S0.

En mängd slingor sägs vara icke vidrörande om de inte passerarnågot gemensamt tillstånd.

K = K1,K2,... är mängden av alla framslingor.

F = F1,F2,... är motsvarande mängd grenförstärkningar så att t.ex.F1 är grenförstärkningen i framslingan K1.

L = L1,L2,... är alla slingor i diagrammet som inte passerar S0medan

S0

S3

S1

S2

S5

S6

S4 S0

S7

Y

XX2Y

XY XXY

XYXY

X

Y 1

X2Y

X2

X

X2

Page 182: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

6 Faltningskoder

180 © Studentlitteratur

06 kap6 Faltningskoder.fm 21 september 2004 21.08:00 sida 180 av 190

C = C1,C2,... är motsvarande grenförstärkningar.

Transmissionen T(X,Y) kan enligt Mason uttryckas på följande sätt:

(6.20)

där grafdeterminanten ∆ beräknas enligt

(6.21)

och där den första summationen utförs över alla index i för slingornaLi = L medan den andra summationen tas över alla indexpar(l,m) sådana att (Ll,Lm) är ett par icke vidrörande slingor i L. Påsamma sätt utförs den tredje summationen över alla indextriplettersådana att (Ll,Lm,Ln) utgör tripletter av icke vidrörande slingor. Pro-cessen fortsätter tills inte fler samtidigt icke vidrörande slingor kanhittas.

Beräkningen av ∆i, slingans Ki cofaktor, utförs på samma sätt somför grafdeterminanten med den skillnaden att alla slingor som vidrörKi utesluts vid summationen:

(6.22)

Exempel 6.8 Beräkna transmissionen T(X,Y) för faltningskodaren i Figur 6.5,

I kodargrafen enligt Figur 6.9 finns 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

T(X.Y) =

Fl∆l∑l

∆ = 1 – Cl∑Ll

+ ClCm∑(Ll,Lm)

– ClCmCn∑(Ll,Lm,Ln)

....

∆i = 1 – Cl∑Ki,Ll

+ ClCm∑(Ki,Ll,Lm)

– ClCmCn∑(Ki,Ll,Lm,Ln)

....

Page 183: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

6.5 Grafer och viktangivelser

© Studentlitteratur 181

06 kap6 Faltningskoder.fm 21 september 2004 21.08:00 sida 181 av 190

Det finns 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 finns 10 par icke vidrörande 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 finns 2 tripletter icke vidrörande slingor i L:

(L4,L8,L11)C4C8C11 = X8Y4

(L7,L10,L11)C7C10C11 = X8Y4

Eftersom det inte finns fyra eller fler icke vidrörande slingor kan vi övergå tillatt beräkna grafdeterminanten som blir

∆ = 1 – (X4Y4 + X2Y3 + X6Y3 + X4Y2 + X4Y4 + X6Y3 + X2Y + X2Y + X2Y3 + X4Y2

Page 184: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

6 Faltningskoder

182 © Studentlitteratur

06 kap6 Faltningskoder.fm 21 september 2004 21.08:00 sida 182 av 190

+ X2Y) + (X4Y4 + X8Y4 + X6Y3 + X6Y3 + X8Y4 + X4Y4 + X6Y3 + X4Y2 + X4Y2

+ X6Y3) – (X8Y4 + X8Y4) = 1 – 2X2Y3 – 3X2Y + 2X6Y3

För beräkning av framslingornas cofaktorer förfar vi på följande sätt:

Det finns inga slingor som inte innehåller tillstånd som genomlöps av fram-slingorna K1 och K5.

⇒ ∆1 = ∆5 = 1

Framslingorna K3 och K6 genomlöper inte tillståndet S7 och vidrör därför inteslingan L11. K3 och K6 vidrör alla andra slingor.

⇒ ∆3 = ∆6 = 1 – C11 = 1 – X2Y

Framslingan K4 visas i Figur 6.10. Man kan se att de skuggade slingorna L8 ochL11 inte vidrör framslingan K4. Dessutom framgår det att L8 och L11 utgör ettpar icke vidrörande slingor

⇒ ∆4 = 1 – (C8 + C11) + C8C11 = 1 – 2X2Y + X4Y2

Framslingan K7 visas i Figur 6.11. På samma sätt som i Figur 6.10 är de till-stånd - S3, S5, S6 och S7 - som inte passeras av K7 skuggade, d.v.s. K7 vidrör inteslingorna L9, L10, L11 av vilka L10 och L11 är ett icke vidrörande par

⇒ ∆7 = 1 – (C9 + C10 + C11) + (C10C11) = 1 – (X2Y3 + X4Y2 + X2Y) + (X6Y3)

Vi kan nu använda Masons formel för att få faltningskodarens transmission:

= X6Y 3 – X1 0Y 3 + X6Y

1 – 2X2Y 3 – 3X2Y + 2X6Y 3

T(X,Y) =

X 8Y 4(1) + X6Y 3(1 – X2Y) + X10Y 3 (1 – X2Y) + X 8Y 2(1 – 2X 2Y + X4Y 2) ++ X8Y 4(1) + X10Y 3(1 – X2Y) +

X6Y(1 – X2Y 3 – X4Y 2 + X6Y 3)

1 – 2X 2Y 3 – 3X 2Y + 2X 6Y 3 =

Page 185: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

6.5 Grafer och viktangivelser

© Studentlitteratur 183

06 kap6 Faltningskoder.fm 21 september 2004 21.08:00 sida 183 av 190

Figur 6.10 Framslingan K4 och slingorna som inte vidrör K4.

Figur 6.11 Framslinga K7 och slingor som inte vidrör K7.

När uttrycket för transmissionen utvecklas via polynomdivision får vi deninformation som vi önskar:

= X6(Y + Y3) + X8(3Y2 + 5Y4 + 2Y6) + X10(8Y3 + 21Y5 + 16Y7 + 4Y9) + ....,

S0

S3

S1

S2

S5

S6

S4 S0

S7

Y

XX2Y

XY XXY

XYXY

X

Y 1

X2Y

X2

X

X2

S0

S3

S1

S2

S5

S6

S4 S0

S7

Y

XX2Y

XY XXY

XYXY

X

Y 1

X2Y

X2

X

X2

Page 186: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

6 Faltningskoder

184 © Studentlitteratur

06 kap6 Faltningskoder.fm 21 september 2004 21.08:00 sida 184 av 190

som innebär att det finns två kodord med vikt 6, det ena motsvarande eninsekvens med vikt 1 och det andra med vikt 3, det finns 10 kodord med vikt 8,49 med vikt 10 o.s.v.

I stället för att använda Masons formel kan vi försöka lösa ekvationssystemetmed hjälp av Mathematica:

a = Flatten[Solve[T == ,

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]]

Polynomdivisionen görs t.ex. så här

v = T /. a;

b = Series[v, Y, 0, 12];

c = Normal[b];

Series[c, X, 0, 10]

(Y + Y3)X6 + (3 Y2 + 5 Y4 + 2 Y6)X8 +

(8 Y3 + 21 Y5 + 16 Y7 + 4 Y9) X10 +O[X]11

6.6 Prestationsmått för faltningskoder

Definition 6.6

Det viktigaste avståndsmåttet för faltningskoder är ”det minstafria avståndet” dfri

dfri = mind(y´,y´´)|y´ ≠ y´´

X2 Y S4 X2

S1 – S4 Y

T → - X6Y(-1-Y2+X4Y2)

1-3X2Y-2X2Y3+2X6Y3

Page 187: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

6.7 Problem. Faltningskodare

© Studentlitteratur 185

06 kap6 Faltningskoder.fm 21 september 2004 21.08:00 sida 185 av 190

som för linjära koder övergår i

dfri = minw(y)|y ≠ 0,

som är det minsta Hamming-avståndet mellan alla par kom-pletta faltningskodord.

Det har visats (Costello och Forney) att icke-systematiska faltnings-koder har ett större minsta fria avstånd än systematiska med sammaspann (eng. constraint length) och takt.

Sammanfattning

• Faltningskodare är konstruerade på ett helt annat sätt än block-koder.

• Analysmetoderna för faltningskodare bygger på heuristiskametoder.

• Elias visade 1955 att redundans kan införas i dataströmmenmed hjälp av skiftregister och att de resulterande koderna blirmycket bra om koderna väljs slumpmässigt.

6.7 Problem. FaltningskodareProblem 6.1

En (3,1,2)-faltningskodare har generatorsekvenserna

g(0) = (1 1 0)

g(1) = (1 0 1)

g(2) = (1 1 1)

a) Rita ett blockschema för kodaren.

b) Bestäm generatormatrisen G.

c) Bestäm kodvektorn v som svarar mot meddelandevektorn

u = (1 1 1 0 1).

d) Bestäm överföringsmatrisen G(D).

Page 188: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

6 Faltningskoder

186 © Studentlitteratur

06 kap6 Faltningskoder.fm 21 september 2004 21.08:00 sida 186 av 190

e) Bestäm utsekvensen v(D) som svarar mot meddelandesekvensen enligt ovan.

f ) Rita kodarens tillståndsdiagram.

Svar:

b)

c)

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) Bestäm generatormatrisen G(D) där D är fördröjningsoperatorn.

b) Bestäm utsekvensen om meddelandesekvensen är u = (1 1 0 1).

Svar:

a) G(D) = [1 1 + D2 + D3 + D5 1 + D + D4 + D5]

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

Problem 6.3

a) Rita tillståndsdiagram för en (2,1,2)-faltningskod med generatorsekvenserna:

g(0) = (110) g(1) = (101)

b) Avgör om koden är katastrofal och ange i så fall ett exempel som visar detta.

Svar:

b) ja den är katastrofal

G =

111 101 011 000 000 000 000

000 111 101 011 000 000 000

000 000 111 101 011 000 000

000 000 000 111 101 011 000

000 000 000 000 111 101 011

v = 111 010 001 110 100 101 011

G(D) = 1 + D 1 + D2 1 + D + D2

Page 189: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

6.7 Problem. Faltningskodare

© Studentlitteratur 187

06 kap6 Faltningskoder.fm 21 september 2004 21.08:00 sida 187 av 190

Problem 6.4

En faltningskodare har följande generatormatris

Avgör om koden genererar en katastrofal kod.

Svar:

ja det gör den

Problem 6.5

a) Bestäm impulssekvenssvaret till kodaren i Figur 6.12.

b) Bestäm överföringsfunktionsmatrisen för kodaren i Figur 6.12.

c) Använd överföringsfunktionsmatrisen för att bestämma det bildade kodordetför insekvensen x = (11 10 01).

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

Svar:

a)

b)

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

Problem 6.6

G(D) = 1 + D + D2 1 + D3

+

+

+

g0(0) = (0101) g0

(1) = (1011) g0(2) = (1110)

g1(0) = (0110) g1

(1) = (1011) g1(2) = (0100)

G(D) = D + D3 1 + D2 + D3 1 + D + D2

D + D2 1 + D2 + D3 D

Page 190: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

6 Faltningskoder

188 © Studentlitteratur

06 kap6 Faltningskoder.fm 21 september 2004 21.08:00 sida 188 av 190

Ange för faltningskodaren i Figur 6.13

Figur 6.13 Faltningskodare till Problem 6.6.

a) Generatormatrisen G.

b) Matrisen G(D), där D är fördröjningsoperatorn.

c) Utsekvensen om insekvensen är 10 11 10.

Svar:

a)

b)

c) y = (111 000 100 101)

Problem 6.7

En faltningskod med rate 1/3 har generatorpolynomen:

g1(x) = 1 + x + x2 + x3

+

+ ... y2(0), y1

(0), y0(0)

... y2(1),y1

(1),y0(1)+

... x2(0) x1

(0) x0(0)

... x2(1) x1

(1) x0(1)

... y2(2),y1

(2),y0(2)

G =

111 101 000 000 000 000

010 110 000 000 000 000

000 111 101 000 000 000

000 010 110 000 000 000 000

000 000 111 101 000 000 000

000 000 010 110 000 000 000

000 000 000

G(D) = 1 + D 1 1 + D

D 1 + D 0

Page 191: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

6.7 Problem. Faltningskodare

© Studentlitteratur 189

06 kap6 Faltningskoder.fm 21 september 2004 21.08:00 sida 189 av 190

g2(x) = 1 + x + x3

g3(x) = 1 + x2 + x3

Gör en skiss av kodaren.

Problem 6.8

Konstruera ett tillståndsdiagram för nedanstående faltningskodare, Figur 6.14.

Figur 6.14 Faltningskodare till Problem 6.8.

+

+

+

Page 192: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

06 kap6 Faltningskoder.fm 21 september 2004 21.08:00 sida 190 av 190

Page 193: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

©

Studentlitteratur

191

07 kap7 Avkodn av faltnkoder.fm 21 september 2004 21.08:00 sida 191 av 212

7 Avkodning av faltningskoder

7.1 Viterbis ”Maximum Likelihood” avkodningsalgoritm

Viterbi introducerade 1967 en avkodningsalgoritm för faltningsko-der, som numera kallas ”Viterbialgoritmen”.

Spaljédiagram (trellis diagram)

Ett spaljédiagram är en utveckling av en faltningskods tillståndsdia-gram, som visar hur tillstånden ändras som funktion av tiden.

Exempel 7.1

I Figur 7.1 visas en -taktskodare och i Figur 7.2 tillståndsdiagram för sammakodare.

-taktskodaren har två minnesceller, vilket gör att tillståndsdiagrammet får 4

tillstånd

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

13

13

+

+

... x2,x1,x0 +

... y2(0),y1

(0),y0(0)

... y2(1),y1

(1),y0(1)

... y2(2),y1

(2),y0(2)

Detta dokument har framställts med FrameMaker 4.0.4

Page 194: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

7 Avkodning av faltningskoder

192

©

Studentlitteratur

07 kap7 Avkodn av faltnkoder.fm 21 september 2004 21.08:00 sida 192 av 212

Figur 7.2 Tillståndsdiagram för faltningskodare i Exempel 7.1.

Grenarna i spaljédiagrammet - Figur 7.3 - är märkta med de utgångsvärden(

y

(0)

,

y

(1)

,

y

(2)

), som motsvarar det nya tillståndet.

Figur 7.3 Spaljédiagram till faltningskodaren i Exempel 7.1.

S2

1/111

1/00

0

0/11

0

0/001S3

S0

S2 S1

1/110

0/000

0/111

1/001

S3

S2

S1

S0

110 110 110

000 000 000 000 000

111

111

111

111

111

000

000

000

000

001001

001

001001

001110

110

110

111

111

111

111

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

Page 195: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

7.1 Viterbis ”Maximum Likelihood” avkodningsalgoritm

©

Studentlitteratur

193

07 kap7 Avkodn av faltnkoder.fm 21 september 2004 21.08:00 sida 193 av 212

Varje kodord i en faltningskod motsvaras av en unik väg i spaljédia-grammet som börjar och slutar i tillståndet

S

0

. Spaljédiagrammet gördet möjligt att utföra en del beräkningar genom vilka det är möjligtatt komma fram till några användbara resultat, t.ex. följande:

Utgå från en allmän binär (

n,k

) faltningskodare med

M

minnescelleroch med ett längsta skiftregister bestående av

m

minnesceller. Mot-

svarande spaljédiagram har 2

M

noder eller tillstånd vid varje tid-

punkt. Från varje nod utgår 2

k

grenar eller en gren för varje möjlig

kombination av ingångsvärden. Efter tiden

t

=

m

finns det också 2

k

grenar som kommer till varje nod. Efter att insekvensen (meddelan-det) har påförts kodaren åtgår det ytterligare

m

tillståndsförändringarför att återföra kodaren till grundtillståndet

S

0

. För en insekvens med

kL

bitar måste spaljédiagrammet ha

L

+

m

steg. Det första steget star-

tar från, och det sista steget slutar i, tillståndet

S

0

. Det finns 2

kL

olikavägar genom spaljédiagrammet, var och en motsvarande ett kodordmed längden

n

(

L

+

m

).

Fortsättning på Exempel 7.1

:

Om vi utgår från en 3-bitars insekvens, t.ex.

x

= (011) får vi en 5-grens väg ochett 3(3 + 2) = 15 bitars kodord

y

= (000 111 000 001 110).

Figur 7.4 Avkodningsväg i spaljédiagrammet till Exempel 7.1.

S3

S2

S1

S0

110

000 000 000 000 000

111

111

111

111

000

000

001001

001110

110

110

111

111

111

t = 0 t = 1 t = 2 t = 3 t = 4 t = 5insekvens x0 = 0 x1 = 1 x2 = 1 0 0

Page 196: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

7 Avkodning av faltningskoder

194

©

Studentlitteratur

07 kap7 Avkodn av faltnkoder.fm 21 september 2004 21.08:00 sida 194 av 212

7.2 Viterbialgoritmen

Figur 7.5 Principschema för överföring av faltningskodat kodordöver en brusig kanal.

Antag, att informationssekvensen

x

kodas till ett faltningskodord

y

som sänds över en brusig kanal. Faltningsavkodaren utgår från denmottagna vektorn

r

och genererar ett estimat

av det sända kodordet

y

.

Maximum likelihoodavkodaren (ML) väljer det estimat

som maxi-merar sannolikheten

p

(

r

|

) medan maximum aposterioriavkodaren(MAP) väljer det estimat som maximerar

p

(

|

r

). Om fördelningen avinformationssekvensen

x

är likfomig blir de båda avkodarna iden-tiska.

I allmänhet gäller enligt Bayes lag:

p

(

r

|

) ·

p

(

) = p(y´|r) · p(r). (7.1)

En -takts faltningskodare tar in k bitar och genererar n bitar för

varje skift av dess register. Om vi påför kodaren L st. k-bits block såfår vi på utgången L st. n-bits block samt ytterligare m st. block där mär längden av det längsta skiftregistret.

Om nu en bruspåverkad version r av det sända ordet kommer tillmottagaren så bildar den ett maximum likelihoodestimat y´ av densända sekvensen.

r och y´ har följande form:

(7.2)

faltningskodare kanal faltningsavkodarexy r

brus

kn

r = r0(0) r0

(1) ... r0(n – 1) r1

(0) r1(1) ... r1

(n – 1) ... rL + m – 1(n – 1)

Page 197: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

7.2 Viterbialgoritmen

© Studentlitteratur 195

07 kap7 Avkodn av faltnkoder.fm 21 september 2004 21.08:00 sida 195 av 212

. (7.3)

För att förenkla och renodla problematiken antar vi vidare att kanalenär minneslös, d.v.s. att brusets påverkan på en bit i kodordet är obero-ende av dess påverkan på varje annan bit.

Eftersom sannolikheten för simultana oberoende händelser är likamed produkten av sannolikheterna för de individuella händelserna fårvi att

(7.4)

Denna ekvation kallas ibland likelihoodfunktionen för y´.

Eftersom logaritmfunktionen ökar monotont är det estimat som max-imerar p(r|y´) också samma estimat som maximerar log[p(r|y´)]. För-delen med att övergå till logaritmfunktionen är att man då kan arbetamed mer lättöverskådliga och lätthanterliga summafunktioner iställetför multiplikationer och produkter (jfr. dB och ggr).

Genom att logaritmera likelihoodfunktionen för y´ får vi loglikeli-hoodfunktionen:

(7.5)

För att lättare kunna implementera Viterbi-avkodaren i hårdvaraomvandlas summatermerna till en enklare form som kallas bitmetrik:

(7.6)

där a och b väljs så att bitmetriken blir små heltal som lätt kanbehandlas i digitala kretsar.

y´ = y´0(0) y´0

(1) ... y´0(n – 1) y´1

(0) y´1(1) ... y´1

(n – 1) ... y´L + m – 1(n – 1)

p(r |y´) = [p(ri(0)|y´i

(0))p(ri(1)|y´i

(1))...p(ri(n – 1)|y´i

(n – 1))∏i = 0

L + m – 1

=

= p(ri(j)|y´i

(j))∏j = 0

n – 1

∏i = 0

L + m – 1

log[p(r |y´)] = log p ri(j)|y´i

(j)∑j = 0

n – 1

∑i = 0

L + m – 1

M ri(j)|y´i

(j) = a log p(ri(j)|y´i

(j) + b

Page 198: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

7 Avkodning av faltningskoder

196 © Studentlitteratur

07 kap7 Avkodn av faltnkoder.fm 21 september 2004 21.08:00 sida 196 av 212

Vägmetriken (eng. path metric) för ett kodord y´ beräknas på följandesätt:

(7.7)

Om a > 0 och reellt och b är reellt så kommer det kodord y´ sommaximerar p(r|y´) också att maximera M(r|y´). Om man istället väljera < 0 skall y´ väljas så att M(r|y´) minimeras.

Definition 7.1

Den k:te grenmetriken för ett kodord y´ är summan av bitmetri-ken för det k:te blocket i r givet y´:

(7.8)

Den k:te partiella vägmetriken fås genom att summera grenme-triken för de k första grenarna som vägen genomlöper:

(7.9)

Viterbialgoritmen

Viterbialgoritmen behandlar r på ett iterativt sätt. Efter varje stegjämför den metriken för alla vägar som anländer till varje tillståndoch lagrar vägen med den största metriken med dess metrik. Dennaväg kallas överlevare (eng. survivor).

Låt noden motsvarande tillståndet Sj vid tidpunkten t kallas Sj,t. Varjenod i spaljén skall tillordnas ett värde V(Sj,t). Värdena beräknas påföljande sätt:

1. Sätt V(S0,0) = 0 och t = 1.

M[(r |y´)] = M p ri(j)|y´i

(j)∑j = 0

n – 1

∑i = 0

L + m – 1

M rk|y´k = M rk(j)|y´k

(j)∑j = 0

n – 1

Mk(r |y´) = M(ri|y´i)∑i = 0

k – 1

= M ri(j)|y´i

(j)∑j = 0

n – 1

∑i = 0

k – 1

Page 199: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

7.2 Viterbialgoritmen

© Studentlitteratur 197

07 kap7 Avkodn av faltnkoder.fm 21 september 2004 21.08:00 sida 197 av 212

2. Vid tiden t: Beräkna den partiella vägmetriken för alla grenarsom anländer till varje nod.

3. Sätt V(Sk,t) lika med den bästa partiella vägmetriken som anlö-per tillståndet Sk vid tiden t. Om det finns fler än en väg medbäst metrik kan man välja vilken som helst. Icke överlevandegrenar utesluts genom att kryssmarkeras.

4. Om t < L + m, öka t med 1 och gå till steg 2.

När alla nodvärden har beräknats, starta vid tillståndet S0, tidpunktent = L + m och följ de så överlevande grenarna bakåt i spaljédiagram-met. Den på så sätt funna vägen är unik och motsvarar maximumlikelihoodkodordet.

Exempel 7.2 Mjuk avkodning

Betrakta en DMC (Discrete Memoryless Channel) med två ingångar och fyrautgångar enligt Figur 7.6.

Sätt i uttrycket ; b = + 1 så att alla tal blir icke-negativaoch använd förslagsvis 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

Gör a så att alla tal blir heltal, t.ex. a = 17. Då får vi:

17(lg 0,4 + 1) ≈ 10

17(lg 0,3 + 1) ≈ 8

17(lg 0,2 + 1) ≈ 5

Figur 7.6 DMC till Exempel 7.2.

a log p ri(j)|y´i

(j) + b

0,4

0,4

0,10,3

0,2

0,10,3

0,2

0

1

01

02

12

11

Page 200: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

7 Avkodning av faltningskoder

198 © Studentlitteratur

07 kap7 Avkodn av faltnkoder.fm 21 september 2004 21.08:00 sida 198 av 212

17(lg 0,1 + 1) = 0

eller

Med en (3,1,2)-kod med spaljédiagram enligt nedan har följande sekvens mot-tagits:

r = (111201 111102 111101 111111 011201 120211 120111)

Den slutliga överlevande vägen motsvarar

y´ = (111 010 110 011 000 000 000)

och avkodat

(11000).

De m (här: m = 2) sista bitarna motsvarar 0 st. inbitar och ingår ej i informatio-nen.

Figur 7.7 Spaljédiagram till Exempel 7.2.

01 02 12 11

0 10 8 5 0

1 0 5 8 10

riyi

S3

S2

S1

S0

001 001 001

000 000 000 000 0/000

1/11

111

111

111

111

1

010

1/01

0

010

010

0/110110

110

100100

100011

0/011

011

101

101

101

101

t = 0 t = 1 t = 2 t = 3 t = 4 t = 5 t = 6 t = 7

0/000 0/000

101

011

011

110

18

36

66

86 111 124 139

60 70 104

40 53 76 95

15 23 43

33 80 88 117

r = 111201 111102 111101 111111 011201 120211 120111

Page 201: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

7.2 Viterbialgoritmen

© Studentlitteratur 199

07 kap7 Avkodn av faltnkoder.fm 21 september 2004 21.08:00 sida 199 av 212

Exempel 7.3 Hård avkodning

För specialfallet BSC (Binary Symmetric Channel) med övergångssannolikhet

p <

är den mottagna sekvensen binär och loglikelihoodfunktionen blir

= p(ri|yi) = p om ri ≠ yi;

p(ri|yi) = 1 – p om ri = yi;

r – y´ = d(r,y´);

längd r = l = d(r,y´) · log p + [l – d(r,y´)] · log (1 – p) =

= l = N (= n(L + m)) = d(r,y´) · log + N · log (1 – p),

där d(r,y´) är Hamming-avståndet mellan r och y´. Eftersom log < 0 och

N · log (1 – p) är konstant för alla y´ så blir en MLD (Maximum LikelihoodDecoder) för en BSC (Binary Symmetric Channel) en avkodare som väljer detestimat y´ som minimerar Hamming-avståndet

d.v.s när Viterbi-algoritmen tillämpas på en BSC blir d(ri,yi) grenmetriken ochd(ri,yi) bitmetriken och algoritmen måste hitta den väg genom spaljén som harden minsta metriken eller vägen som är närmast r mätt med Ham-ming-avståndsmått.

Figur 7.8 BSC-kanal till Exempel 7.3.

12

log p r|y´ = log p ri|y´i∑i

=

p

1 – p

p

1 – p

d(r,y´) = d(ri,y´i)∑i = 0

L + m –1

= d(ri,y´i)∑i = 0

N – 1

1 – p

1 – p

p

p

0

1

0

1

BSC

Page 202: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

7 Avkodning av faltningskoder

200 © Studentlitteratur

07 kap7 Avkodn av faltnkoder.fm 21 september 2004 21.08:00 sida 200 av 212

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 innebär att ingen annan väggenom spaljédiagrammet skiljer sig från r i färre än 7 positioner. Lägg märketill att en del möjliga vägar inte är kryssade. Detta innebär att det finns alterna-tiva vägar som också ger minimimetriken 7. Det finns alltså ibland flera avkod-ningsmöjligheter. Vilken variant som väljs har ingen påverkan på sannolikhetenför avkodningsfel.

Figur 7.9 Spaljédiagram till Exempel 7.3.

Det har förut påpekats att mjuk avkodning har bättre prestanda än hård avkod-ning. De två exemplen med tillämpning av Viterbi-algoritmen illustrerar detta.Om de fyra utgångarna 01, 02, 11 och 12 reduceras till 0 och 1 övergårDMC-kanalen till en BSC-kanal med p = 0,3. Den väg som vi fick med hårdavkodning skulle i fallet mjuk avkodning ha gett en bitmetrik på 135 istället för

S3

S2

S1

S0

001 001 001

000 000 000 000 0/000

1/11

111

111

111

111

1

010

1/01

0

010

010

0/110110

110

100100

100011

0/011

011

101

101

101

101

t = 0 t = 1 t = 2 t = 3 t = 4 t = 5 t = 6 t = 7

0/000 0/000

101

011

011

110

1

2

2

3 4 6 7

4 6 4

3 4 4 5

2 4 5

3 5 7 5

r = 110 110 110 111 010 101 101

Page 203: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

7.3 Prestanda för faltningskoder

© Studentlitteratur 201

07 kap7 Avkodn av faltnkoder.fm 21 september 2004 21.08:00 sida 201 av 212

139, d.v.s. inte maximum likelihoodavkodning. Man kan säga att en del infor-mation (”sidoinformation”) om kanalen försvinner vid hård avkodning.

7.3 Prestanda för faltningskoder

7.3.1 Binärsymmetriska kanaler (BSC)

Vi börjar med att betrakta (2,1,3)-kodaren i Figur 6.5. Vi utgår frånatt nollkodordet har sänts. Kodaren har transmissionen

vilket betyder att det finns ett kodord med vikt 6 genererat av eninsekvens med vikt 1, ett kodord med vikt 6 genererat av eninsekvens med vikt 3, 3 kodord med vikt 8 genererade av insekvensermed vikt 2 o.s.v.

En första felhändelse (first event error) inträffar vid en godtyckligtidpunkt j, om 0-vägen (= den riktiga vägen när nollkodordet sänts)elimineras första gången vid tidpunkten j av en felaktig konkurre-rande väg - se Figur 7.10. Detta beror på att det inträffat en utbryt-ning från den riktiga 0-vägen och en återgång för första gången tillden riktiga vägen vid tidpunkten j. Om det är vikt-6-vägen, inträffarett första fel, om i de 6 positioner den riktiga och den felaktiga vägenskiljer sig åt, den mottagna binärsekvensen r sammanfaller med denfelaktiga vägen i 3 eller fler av dessa positioner, d.v.s. r har 3 eller flerettor i dessa 6 positioner.

Om överföringssannolikheten för fel i BSC-kanalen är p - se Figur7.8 - så är sannolikheten att fel i 3 eller fler positioner enligt ovaninträffat:

T X,Y = X6Y 1 + Y2– X4Y 2

1 – 3X2Y – 2X2Y 3+ 2X 6Y 3 =

= Y + Y3 X6 + 3Y2 + 5Y 4 + 2Y 6 X8 + …

Page 204: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

7 Avkodning av faltningskoder

202 © Studentlitteratur

07 kap7 Avkodn av faltnkoder.fm 21 september 2004 21.08:00 sida 202 av 212

Figur 7.10 Illustration av begrepper första felhändelse vid tid-punkten j.

Den första termen beror på att sannolikheten för felkorrigering är enhalv när hammingavståndet är lika stort till den riktiga som till denfelaktiga sekvensen. I ett generellt fall, när den felaktiga vägen harvikten d är sannolikheten för en första felhändelse, om d är udda:

(7.10)

och om d är jämnt:

(7.11)

Eftersom alla felaktiga vägar med längden j eller kortare kan föror-saka en första felhändelse vid tidpunkten j, kan vi finna en övrebegränsning av sannolikheten för en första felhändelse vid tidpunk-ten j genom att summera sannolikheterna för alla dessa felaktiga

jS0

S1

S3

S4

j – 4

felaktig väg

riktig väg

P6 = P 3 eller flera fel i 6 positioner =

= 12

63 p3 1 – p 3 + 6

3 pe 1 – p 6 – e∑e = 4

6

Pd = de pe 1 – p d – e∑

e = d + 1 /2

d

Pd = 12

dd/2 pd/2 1 – p d/2 + d

e pe 1 – p d – e∑e = d/2 + 1

d

Page 205: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

7.3 Prestanda för faltningskoder

© Studentlitteratur 203

07 kap7 Avkodn av faltnkoder.fm 21 september 2004 21.08:00 sida 203 av 212

vägar. I begränsningen tar vi dessutom med alla felaktiga vägar somär längre än j och får:

En övre begränsning av sannolikheten för en första1 felhändelse:

(7.12)

där Ad är antalet kodord med vikt d. Eftersom begränsningen är obe-roende av j gäller den för vilken tidpunkt som helst och vi kan därförange sannolikheten för en första felhändelse enligt:

(7.13)

Uttrycket (7.13) för begränsningen kan förenklas eftersom för falletnär d är udda gäller:

(7.14)

och man kan visa att uttrycket (7.14) också utgör en övre begräns-ning för Pd om d är ett jämnt tal, vilket medför att uttrycket (7.13)kan skrivas enligt:

(7.15)

och för en godtycklig faltningskod med transmissionsfunktionen

1 Indexet f i Pf syftar på ”första” i första felhändelse.

Pf E, j < AdPd∑d = dfri

Pf E < AdPd∑d = dfri

Pd = de pe 1 – p d – e∑

e = d + 1 /2

d

< de pd/2 1 – p d/2∑

e = d + 1 /2

d

=

= pd/2 1 – p d/2 de∑

e = d + 1 /2

d

< pd/2 1 – p d/2 de∑

e = 0

d

=

= 2d pd/2 1 – p d/2

Pf E < Ad 2 p 1 – p d∑d = dfri

Page 206: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

7 Avkodning av faltningskoder

204 © Studentlitteratur

07 kap7 Avkodn av faltnkoder.fm 21 september 2004 21.08:00 sida 204 av 212

(7.16)

framgår det vid en jämförelse med uttrycket (7.15) att

(7.17)

Man kan visa att uttrycket (7.17) inte endast gäller vid en första fel-händelse utan vid godtyckliga tidpunkter, d.v.s. sannolikheten för fel-händelse är

(7.18)

För små p dominerar den första termen i uttrycket (7.18) och sanno-likheten för felhändelse kan approximeras till

(7.19)

Exempel 7.4

För (2,1,3)-kodaren i Figur 6.5 är dfri = 6 och = 2 och med p = 10– 2 är

P(E) ≈ 2 · 26 · p6/2 = 27 · 10– 6 = 1,28 · 10– 4

För beräkningar av en överföringskanals prestanda är bitfelssannolik-heten, Pb mer intressant, d.v.s. sannolikheten för felavkodning peravkodad informationsbit. Varje felhändelse förorsakar lika mångabitfel som antalet nollskilda informationsbitar i den felaktiga vägen.Detta medför att om varje felhändelseterm Pd viktas med antaletnollskilda informationsbitar längs vägen med vikten d, eller om detfinns mer än en väg med vikten d, av det totala antalet nollskildainformationsbitar längs alla vägar med vikten d, så kan en övre gränsför sannolikheten för avkodade bitfel vid en godtycklig tidpunktgöras enligt:

T(X) = AdXd∑d = dfri

Pf(E) < T(X)X = 2 p (1 – p)

P(E) < AdPd∑d = dfri

< T(X)X = 2 p (1 – p)

P(E) ≈ Adfri 2 p (1 – p) dfri ≈ Adfri2dfripdfri/2

Adfri

Page 207: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

7.3 Prestanda för faltningskoder

© Studentlitteratur 205

07 kap7 Avkodn av faltnkoder.fm 21 september 2004 21.08:00 sida 205 av 212

(7.20)

där Bd är antalet nollskilda informationsbitar längs alla vägar medvikten d definierat av

(7.21)

och eftersom

(7.22)

följer att

(7.23)

Vi substituerar nu uttrycket (7.14) i uttrycket (7.20) och får:

(7.24)

Om vi nu jämför uttrycket (7.24) med uttrycket (7.23) ser vi att.

(7.25)

ett samband som gäller för en godtycklig faltningskod med transmis-sionsfunktionen T(X,Y).

Pb < 1k

BdPd∑d = dfri

Bd = bAd,b∑b = 1

T(X,Y) = ∑d = dfri

Ad,bXdYb∑b = 1

∂T(X,Y)∂Y Y = 1

= ∑d = dfri

bAd,bXd∑b = 1

= BdXd∑d = dfri

Pb < 1k

Bd2d pd/2 1 – p d/2∑d = dfri

Pb < 1k

Bd2d pd/2 1 – p d/2∑d = dfri

=

= 1k ·

∂T(X,Y)∂Y X = 2 p (1 – p) , Y = 1

Page 208: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

7 Avkodning av faltningskoder

206 © Studentlitteratur

07 kap7 Avkodn av faltnkoder.fm 21 september 2004 21.08:00 sida 206 av 212

En undre gräns för bitfelssannolikheten är2 om d är ett udda tal:

(7.26)

och om d är ett jämnt tal:

(7.27)

Exempel 7.5 BSC-kanal.

Beräkna och rita kurvor för undre och övre begränsningar av bitfelssannolikhe-ten (BER = Bit Error Rate) för (2,1,3)-faltningskodaren i Figur 6.5 som enligtberäkningar i avsnitt 6.5 har transmissionsfunktionen

.

Lösning:

Vi beräknar först en övre begränsning med uttrycket (7.25):

och därefter en undre begränsning med uttrycket (7.27) eftersom dfri i vårtexempel är ett jämnt tal = 6:

Som referens ritar vi kurvan för det okodade fallet.

2 För detaljer se A.J. Viterbi, ”Error Bounds for Convolutional Codes and anAsymptotically optimum Decoding Algorithm”, IEEE Transactions on Infor-mation Theory, Vol. IT-13, pp.260-269, april 1967.

Pb ≥ 1 k

· Pdfri = 1 k

· dfrie pe 1 – p dfri – e∑

e = dfri + 1 /2

dfri

Pb ≥ 1 k

· Pdfri =

= 12k

dfridfri/2

pdfri/2 1 – p dfri/2 + 1 k

dfrie pe 1 – p dfri – e∑

e = dfri/2 + 1

dfri

T(X,Y) = – X 6Y(– 1 – Y2+ X4Y 2)

1 – 3X 2Y – 2X 2Y 3+ 2X 6Y 3

Pb < 1k

· ∂T(X,Y)

∂Y X = 2 p (1 – p), Y = 1

=

= 4X 6 – 2X 8 – 3X 10+2X 1 2

1 – 5X 2 + 2X 6 2X = 2 p (1 – p)

Pb ≥ 12

63 p3 1 – p 3 + 6

4 pe 1 – p 6 – e∑e = 4

6

=

= 10p 3 1 – p 3 + 15p 4 1 – p 2 + 6p 5 1 – p + p6

Page 209: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

7.3 Prestanda för faltningskoder

© Studentlitteratur 207

07 kap7 Avkodn av faltnkoder.fm 21 september 2004 21.08:00 sida 207 av 212

Figur 7.11 Övre och undre begränsningar för (2,1,3)-faltningskoden tillExempel 7.5

Studera kurvorna i Figur 7.11.

7.3.2 AVGB-kanaler

För fallet med en kanal störd av AVGB tillämpar vi den vägmetriksom angetts i uttrycket (7.7) och vars idé bygger på att minimera detgeometriska eller euklidiska avståndet mellan riktigt och felaktigtkodord till skillnad mot fallet med BSC-kanalen där det i stället ärhammingavståndet mellan felaktigt och riktigt kodord som skallminimeras.

Den mottagna signalen som går till avkodaren förutsätts vara okvan-tiserad, d.v.s. analog men en analys byggd på att signalen kvantiserasi en analogdigitalomvandlare med tre eller flera bitars precision utgören tillräckligt bra approximation.

Vi utgår i ett praktiskt fall från att BPSK-modulerade signaler sändsöver en AVGB-kanal med den tvåsidiga brusspektraltätheten N0/2[V2/Hz]. De övre och undre begränsningarna för bitfelssannolikhetenkan visas vara:

-6 -5 -4 -3 -2

0,0

2,5

-5,0

-7,5

-10,0

-12,5

-15,0

-17,5

lg p

lg B

ER

övre begränsning

undre begränsning

okodat

Page 210: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

7 Avkodning av faltningskoder

208 © Studentlitteratur

07 kap7 Avkodn av faltnkoder.fm 21 september 2004 21.08:00 sida 208 av 212

(7.28)

och

(7.29)

där Eb är bitfelssannolikheten vid överföringen på AVGB-kanalen.

Exempel 7.6 AVGB-kanal

Beräkna och rita kurvor för undre och övre begränsningar av bitfelssannolikhe-ten (BER = Bit Error Rate) för (2,1,3)-faltningskodaren i Figur 6.5 och jämförmed motsvarande BSC-kanal enligt Exempel 7.5. I Exempel 7.5 omvandlas demottagna signalerna till nollor och ettor i en ”hård avkodare” innan de skickastill avkodaren.

Lösning:

I fallet med hård avkodning omvandlas den mottagna sekvensen till nollor ochettor innan den avkodas. Detta medför att avkodaren arbetar på en BSC-kanal-

med bitfelssannolikheten där Eb är bitenergin på kanalen var-

efter övre och undre begränsningar av bitfelssannolikheten beräknas på sammasätt som i Exempel 7.5. Dock skall man lägga märke till att energin per infor-

mationsbit där R är kodens relativa takt skall användas vid beräk-

ningen för att kunna bestämma kodningsförstärkningen.

Mjuk avkodning: Sekvensen sänds direkt till avkodaren utan att först ha kvanti-

serats till två nivåer (den analoga insekvensen kvantiseras till minst 23 nivåer,vilket utgör en god approximation till en analog insekvens). De övre och undregränserna för bitfelssannolikheten kan då beräknas med uttrycken (7.28) och(7.29).

Kodningsförstärkningen kan avläsas i Figur 7.12. Exempelvis kan man se att en

bitfelssannolikhet på 10– 6 kräver ungefär 6 dB för Es/N0 medan det okodadesystemet kräver 10,5 dB, d.v.s. AVGB-systemet med mjuk avkodning ger enkodningsförstärkning på 10,5 – 6 = 4,5 dB.

Pb ≤ 1kedfri · Eb/N0 Q 2dfriEb

N0

∂T(X,Y)∂Y X = e – Eb/N0,Y = 1

Pb ≥ 1k · Pdfri = 1

k Q 2dfriEb

N0

p = Q 2Eb

N0

Es = Eb

R

Page 211: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

7.4 Problem. Avkodning av faltningskoder

© Studentlitteratur 209

07 kap7 Avkodn av faltnkoder.fm 21 september 2004 21.08:00 sida 209 av 212

Figur 7.12 Gränser vid hård och mjuk avkodning vid en AVGB-kanal till Exem-pel 7.6.

Sammanfattning

• Viterbialgoritmen är både en ML (Maximum-Likelihood) ochen MAP (Maximum A Posteriori) avkodningsalgoritm.

7.4 Problem. Avkodning av faltningskoder

Problem 7.1

Bestäm en lämplig bitmetrik för kanalen i Figur 7.13

3 4 5 6 7 8 9 10-14

-12

-10

-8

-6

-4

-2

0

lg B

ER

Es

N0 dB

undre gräns vid

mjuk avkodning

övre gräns vid

mjuk avkodning

okodat

övre gräns vid hård avkodning

undre gräns vid hård avkodning

Page 212: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

7 Avkodning av faltningskoder

210 © Studentlitteratur

07 kap7 Avkodn av faltnkoder.fm 21 september 2004 21.08:00 sida 210 av 212

.

Figur 7.13 Kanal till Problem 7.1.

Svar:

Problem 7.2

En faltningskodares generatormatris är

Kodorden sänds över en BSC. Bestäm ML-kodordet för den mottagna sekven-sen

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 meddelan-deord har troligast sänts om faltningskodarens generatormatris är

G(D) = (1 1 + D + D2)?

Gör en ML-spaljéavkodning enligt Viterbi med all partiell vägmetrik införd ispaljédiagrammet, icke-överlevare kryssade och överlevarvägen markerad.

Svar:

1101

sänd = 0 sänd = 1

mott = 0 6 5

mott = 1 0 3

0,9

0,7

0,3

0,1

0

1

0

1

Sänd symbol Mottagen symbol

G(D) = 1 + D2 1 + D + D2

Page 213: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

7.4 Problem. Avkodning av faltningskoder

© Studentlitteratur 211

07 kap7 Avkodn av faltnkoder.fm 21 september 2004 21.08:00 sida 211 av 212

Problem 7.4

Ett faltningskodat ord r = (10 10 10 10 01 11) har mottagits. Vilket meddelan-deord har troligast sänts om faltningskodarens generatormatris är

Gör en ML-spaljéavkodning enligt Viterbi med all partiell vägmetrik införd ispaljédiagrammet, icke-överlevare kryssade och överlevarvägen markerad.

Svar:

1101

Problem 7.5

Meddelanden kodas med en kodare enligt Figur 7.14 och sänds över en symme-trisk minneslös kanal med bitmetriken enligt nedanstående tabell.

Avkoda följande mottagna sekvens: r =10 01 10 11 00 10 11 00

Figur 7.14 Faltningskodare till Problem 7.5.

Svar:

000110

Problem 7.6

En (2,1,3)-faltningskod har

M(r|y) r = 0 r = 0 r = 1 r = 1

y = 0 0 1 3 6

y = 1 6 3 1 0

G(D) = 1 1 + D + D2

+

+

... x2,x1,x0

... y2(0),y1

(0),y0(0)

... y2(1),y1

(1),y0(1)

Page 214: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

7 Avkodning av faltningskoder

212 © Studentlitteratur

07 kap7 Avkodn av faltnkoder.fm 21 september 2004 21.08:00 sida 212 av 212

G(D) = [1 + D2 + D3 1 + D + D2 + D3]

a) Rita spaljédiagram för en meddelandesekvens med längden L = 4.

b) Avkoda den mottagna sekvensen r = (11 00 01 00 01 10 11).

Svar:

b) 1111

Problem 7.7

Beräkna en lämplig uppsättning bitmetrik för kanalen enligt Figur 7.15.

Figur 7.15 Övergångssannolikheter för kanalen i Problem 7.7

Svar:

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

r = 0 5 2

r = E 3 3

r = 1 0 5

0

1

sändsymbol

0

1

E

0,6

0,50,1

0,2

0,3

0,3mottagensymbol

Page 215: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

© Studentlitteratur

213

08 kap8 TCM.fm 27 September 2004 08.51:42 sida 213 av 242

8 Kombinerad kodning och modulation (Trellis Coded Modulation)

1974 föreslog Massey att kodning och modulation skulle behandlassom oskiljbara delar av ett och samma system. Två år senarepresenterade Ungerböeck en metod för att integrera kodning ochmodulation. Metoden kallas numera

Trellis Coded Modulation

(TCM) (sv. ungefär ”spaljékodad modulation”. Termen koduleringförekommer i viss mån i svensk litteratur).

Vid TCM används faltningskoder och mångdimensionellasignaluppsättningar (eller vågformer) för att åstadkomma tillförlitlighöghastighetskommunikation över bandbegränsade kanaler.

De första tillämpningarna av TCM skedde inom området digital data-transmission över vanliga telefonledningar. En telefonikanal har enbandbredd av ungefär 2.700 Hz. I början av 60-talet ansåg mångaingenjörer 2.400 bps (bits per second) vara den maximala datahastig-het som någonsin skulle kunna uppnås vid datakommunikation överen sådan kanal. Omkring 1970 trodde man att 9.600 bps var en gränssom inte kunde överskridas. 1994 fanns kommersiella modem föröverföring på det vanliga telefonnätet med 19.200 bps.

TCM har också fått stor betydelse för andra bandbegränsadetillämpningar som mobil- och satellitkommunikation.

Vi börjar med att betrakta en- och två-dimensionella signalupp-sättningar och förhållandet mellan spektrum- och effekt-verknings-grad (eng. spectrum- and power-efficiency). Därefter undersöker vien- och två-dimensionella TCM-system.

Tyngdpunkten kommer att läggas på följande tre nyckelbegrepp:1. Expanderade signaluppsättningar.

Page 216: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

8 Kombinerad kodning och modulation (Trellis Coded Modulation)

214

© Studentlitteratur

08 kap8 TCM.fm 27 September 2004 08.51:42 sida 214 av 242

2. Signaluppsättningspartitionering.3. Val av partitioneringar med faltningskodare

8.1

M

-är signalering

I början av kursen genomgicks principerna för ett digitalt kommuni-kationssystem. Sådana system är ”digitala” i meningen att de överförinformation i form av diskreta symboler. I ett binärt system, t.ex.BPSK och BFSK, kan varje överförd symbol anta ett av två möjligavärden. Nyquist-bandbredden för signalen motsvaras av hastighetenmed vilken symbolerna sänds.

Om symbolerna är binära kräver en

R

s

bps datahastighet en

R

s

HzNyquist-bandbredd. Ett systems spektrala verkningsgrad definierassom det antal bitar per sekund som överförs vid 1 Hz bandbredd. Detnyss angivna exemplet har således en spektral verkningsgrad på 1 bit/s/Hz.

Den binära signaluppsättningen vid BPSK kan representeras av två punkter på den reella tallinjen där signalens polära koordinater mot-svarar signalens amplitud och fas eller roten ur vågformens energi

under ett bitintervall, , och fas. Vanligen nor-

meras koordinaterna till heltal. Figur 8.1 visar ett BPSK-diagram.

Symbolfelfrekvensen beräknas genom att bestämma sannolikhetenatt kanalbruset gör att den mottagna signalen ligger närmare den ickesända än den sända signalen.

Figur 8.1 BPSK-diagram.

u2(t) dt0

T

= Eb

– 1 0 + 1

Eb Eb

Page 217: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

8.1 M-är signalering

©

Studentlitteratur

215

08 kap8 TCM.fm 21 september 2004 21.08:01 sida 215 av 242

Figur 8.2 AVGB-kanalen.

En vanlig kanalmodell är AVGB-kanalen (Additivt Vitt Gaussiskt

Brus) med den tvåsidiga spektrala brustätheten [W/Hz] på motta-

garingången.

Bruset representeras av en gaussisk stokastisk variabel

n,

medan denmottagna signalen är

r

=

x

+

n

.

Under förutsättning att de förekommande signalerna sänds med likastor sannolikhet kommer en ML-mottagare att besluta att den signalsom avståndsmässigt ligger närmast den mottagna signalen är densända. Detta avstånd kallas det euklidiska eller geometriska avstån-det till skillnad mot Hamming-avståndet.

Exempel 8.1

Binära symboler sänds i ett BPSK-system över en BSC-kanal enligt Figur 8.3.

Maximum likelihoodavkodaren minimerar sannolikheten för felaktig överfö-ring under förutsättning att sannolikheterna för de sända kodorden är lika stora,

P

(

c

0

) =

P

(

c

1

) = 0,5;

BER

= P

(

E

) =

P

(

c

0

) ·

P

(

r

1

|

c

0

) +

P

(

c

1

) ·

P

(

r

0

|

c

1

) = 0,5 ·

p +

0,5 ·

p = p.

Låt de sända symbolen representeras av och där

E

b

är bitenerginunder ett symbolintervall. Om bruset är gaussiskt blir sannolikheten för felaktig

avkodning lika med sannolikheten att en sänd etta, , tas emot som nolla,

. (se Figur 8.4).

BER

PSK

=

n

x r = x + n+

N02

Eb – Eb

Eb

– Eb

P Eb – r ≥ – Eb – r = P Eb – r – – Eb – r ≥ 0 =

= 1σ 2π

e– (r – Eb)2/2σ2

dr – ∞

0

=

u = r – Eb

σ

du = 1σ

dr

= 12π

e– (u2/2)du – ∞

– Ebσ

=

Page 218: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

8 Kombinerad kodning och modulation (Trellis Coded Modulation)

216

©

Studentlitteratur

08 kap8 TCM.fm 21 september 2004 21.08:01 sida 216 av 242

Figur 8.3 BSC-kanal till Exempel 8.1.

Figur 8.4 Gaussisk sannolikhetsfördelning av brus kring vid BPSK.

I många tillämpningar överskrider den önskade dataöverföringshas-tigheten (i bit/s) den tillgängliga bandbredden (i Hz). I sådana fallmåste systemets spektrala verkningsgrad ökas. Detta görs genom attöka storleken på signaluppsättningen medan symbolöverföringshas-tigheten bibehålls genom att antalet värden, som varje symbol kananta, ökas.

Exempel 8.2 8-AM

I Exempel 8.1 med BPSK kan antalet symboler utökas till t.ex. 8 så att vi får8-AM på det sätt som visas i Figur 8.5 (

M

= 8).

Vid stora signalbrusförhållanden är den mest sannolika felhändelsen att en sändsymbol förväxlas med en av sina närmaste grannar.

1 – p

1 – p

p

p

c0 = 0

c1 = 1

r0 = 0

r1 = 1

BSC

sänt kodord mottaget kodord

r r

p

– Eb – r Eb – r

– Eb Eb

Eb

= 12π

e– (u2/2)du Ebσ

= Q Eb

σ = σ = N0

2 = Q 2Eb

N0

Page 219: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

8.1 M-är signalering

©

Studentlitteratur

217

08 kap8 TCM.fm 21 september 2004 21.08:01 sida 217 av 242

Figur 8.5 8-AM.

Om det minimala euklidiska avståndet i en signaluppsättning mellan två signa-ler är så blir symbolfelfrekvensen lika med sannolikheten att en sym-bol förväxlas med en av sina närmaste grannar. Om alla symboler (= amplitud-nivåer) är lika sannolika blir den genomsnittliga sannolikheten för fel heltenkelt att den stokastiska brusvariabeln

n

överskrider halva avståndet mellansymbolernas amplitudnivåer. För fallet med de två största nivåerna

±

(

M

– 1) ==

±

(8 – 1) =

±

7 kan ett fel uppstå i endast

en

riktning.

Vi får för felsannolikheten vid 8-AM:

Allmänt med

M

nivåer:

(8.1)

– 7 – 5 – 3 – 1 1 3 5 7

dmin Eb

Eb– Eb

dmin Eb

P(fel) 8-AM = 18

Pfel|– 7 + 18

Pfel|– 5 + 18

Pfel|– 3 + 18

Pfel|– 1 +

+ 18

Pfel|7 + 18

Pfel|5 + 18

Pfel|3 + 18

Pfel|1 =

= 14

Pfel|– 7 7 + 34

Pfel|– 5 – 3 – 1 1 3 5 =

= 14

12π

e– (u2/2)du Ebσ

+ 2 · 34

12π

e– (u2/2)du Ebσ

=

= σ = N0

2 = 1

4Q 2Eb

N0

+ 64

Q 2Eb

N0

= 74

Q 2Eb

N0

P(fel) M-AM = 2 · M – 1

M · Q dmin

2 · Eb

N0

Page 220: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

8 Kombinerad kodning och modulation (Trellis Coded Modulation)

218

©

Studentlitteratur

08 kap8 TCM.fm 21 september 2004 21.08:01 sida 218 av 242

Figur 8.6 Signaluppsättningar

Mängden energi som åtgår för att sända en enskild symbol är proportionell motkvadraten på dess avstånd till origo. Om avståndet mellan närliggande symbo-ler skall vara detsamma som i BPSK-fallet krävs i genomsnitt

ggr mer energi och generellt för en 2

m

-när AM-signal-

uppsättning ggr mer energi än för BPSK-fallet och medelenergin

för en 2

m

+ 1

-när AM-signaluppsättning i förhållande till medelenergin för en

2

m

-när AM-signaluppsättning är S

m

+ 1

= 4

S

m

+ 1

eller ungefär 4 ggr (6 dB) mer energi/symbol.

AM-signaluppsättningen i Exempel 8.2 är

en

-dimensionell. Genomatt införa

två

-dimensionell, kvadraturamplitudmodulation, QAM,eller

M

-är fasskift (MPSK) kan vi få bättre prestanda.

Båda typerna har sina för- och nackdelar. Den rektangulära signal-uppsättningen har ett bättre minimidistans- till medelenergi-förhål-lande men utsätts för distorsion när den passerar olinjära kretsar (t.ex.vandringsvågrör och andra förstärkartyper som också arbetar i mätt-nadsområdet)

m = 2QPSK

m = 38-CROSS

m = 416-QASK

m = 2QPSK

m = 38-PSK

m = 416-PSK

12 + 32 + 52 + 72

4 = 21

Sm = 4m – 1

3

Page 221: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

8.1 M-är signalering

©

Studentlitteratur

219

08 kap8 TCM.fm 21 september 2004 21.08:01 sida 219 av 242

Figur 8.7 Implementering av två-dimensionell signaluppsättning.

I MPSK-signaluppsättningar är minimidistansen relativt liten men demodulerade signalerna har konstant envelopp och utsätts därmed inteför olinjäriteter i kanalen.

Två-dimensionella signaluppsättningar kan implementeras genom attmodulera ett par ortogonala bärvågor enligt Figur 8.7.

m

bitar tas från källan och avbildas på ett ordnat par (

X;Y

). Dessa tvåkoordinater används sedan för att modulera ett par ortogonala bärvå-gor som därefter adderas för att bilda en komplex signal

Z

. De modu-lerade vågorna är ortogonala och påverkar inte varandra på en linjärkanal.

Två-

dimensionella rektangulära signaluppsättningar kan där-för ses som ett par ortogonala

en

-dimensionella signaluppsättningar.

Figur 8.8 64-QASK kan bildas av 2 ortogonala 8-AM-signalupp-sättningar.

for-ma-te-ring

osc.binär dataström

– 90˚

+

+

+ Z

X

Y

m = 664-QASK

2 ortogonala8-AM signal-uppsättningar

Page 222: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

8 Kombinerad kodning och modulation (Trellis Coded Modulation)

220 © Studentlitteratur

08 kap8 TCM.fm 21 september 2004 21.08:01 sida 220 av 242

Om vi nu granskar 64-QASK lite noggrannare ser vi att eftersom deti varje transmissionsintervall kan sändas en av 64 olika signaler sårepresenterar varje signal 6 bitar (64 = 26) och motsvarande spektral-verkningsgrad är 6 bitar/s/Hz.

Signaluppsättningen är exakt kvadratisk och kan ses som ett par orto-gonala 8-AM signaluppsättningar. På så sätt kan vi också uppfatta attsignaluppsättningen ger oss 3 bitar/s/Hz/dimension.

Uttrycket för den normerade medelsignalenergin

(8.2)

kan användas för att bestämma medelenergin/dimension vid mbitar/s/Hz/dimension och den totala medelenergin fås genom att mul-tiplicera med antalet dimensioner.

Medelenergin för de olika CROSS-signaluppsättningarna (CROSSvid m udda) får beräknas direkt, signalpunkt för signalpunkt, menvisar sig ligga någonstans mellan motsvarande jämna värden på m(QASK vid m jämn).

Om vi förutsätter att alla rektangulära signaluppsättningar har ettminimiavstånd på 2 blir medelenergin Sm vid m = 3bitar/s/Hz/dimension

.

Multiplicera med antalet dimensioner, d.v.s. 2, så får vi för 64-QASK

Sm = 6 = 2 · 21 = 42 (16,2 dB).

Man kan ställa upp följande tabell för QASK och CROSS-modula-tion med minimiavstånd = 2.

Sm = 4m – 1

3

S3 = 43 – 1

3 = 21

Page 223: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

8.1 M-är signalering

© Studentlitteratur 221

08 kap8 TCM.fm 21 september 2004 21.08:01 sida 221 av 242

På samma sätt kan man göra motsvarande analys för MPSK-signal-uppsättningar. Om signalpunkterna ligger på radien av enhetscirkelnblir

. (8.3)

För att bibehålla minimiavståndet 2 måste alltså radien ökas i cirkeln,vilket motsvaras av att medelenergin ökas med faktorn

(8.4)

m ant. punkter medelenergi S S (dB)

AM 1 2 1 0,0

QPSK 2 4 2 3,0

CROSS 3 8 5,5 7,4

QASK 4 16 10 10,0

CROSS 5 32 20 13,0

QASK 6 64 42 16,2

CROSS 7 128 82 19,1

QASK 8 256 170 22,3

dmin = 2 sin π2m

1

sin π2m

2

Page 224: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

8 Kombinerad kodning och modulation (Trellis Coded Modulation)

222 © Studentlitteratur

08 kap8 TCM.fm 21 september 2004 21.08:01 sida 222 av 242

.

Figur 8.9 Del av MPSK-signaluppsättning.

Motsvarande tabell för MPSK blir

Av tabellen framgår att MPSK kräver ungefär 6 dB ökning av ener-gin för varje ytterligare bit/s/Hz medan de rektangulära signalupp-sättningarna bara kräver c:a 3 dB ökning för varje ytterligare ökningav antalet bit/s/Hz.

m ant. punkter medelenergi S S (dB)

1 2 1 0,0

2 4 2 3,0

3 8 6,8 8,3

4 16 26,3 14,2

5 32 104,1 20,2

6 64 415,3 26,2

7 128 1660,4 32,3

1

dmin = 2 sin π2m

Page 225: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

8.2 Kodningsförstärkning

© Studentlitteratur 223

08 kap8 TCM.fm 21 september 2004 21.08:01 sida 223 av 242

8.2 KodningsförstärkningEtt begrepp av central betydelse i samband med kodning är kodnings-förstärkning. Som vi sett så införs vid block- och faltningskodningredundanta bitar i dataströmmen så att mottagaren med hjälp av dessakan upptäcka och möjligen också korrigera fel som uppstått underöverföringen. Kvantitativt anges redundansen som kodtakten ellerkodhastigheten R = k/n.

Om informations- eller datahastigheten Rs skall vara konstant måstesymbolhastigheten ökas till Rs/R. Om sändarens effektnivå hålls kon-stant kommer den mottagna bitenergin att reduceras från Es till R · Es.BER för strömmen av mottagna kodord kommer därför att öka i för-hållande till BER för en tänkt ström av okodade meddelandeord.Emellertid kommer de redundanta bitarna tillsammans med databi-tarna i kodorden att kunna korrigera en del av felen så att BER, för dekorrigerade och till meddelandeord avkodade kodorden, blir lägre änför den tänkta okodade dataströmmen (under förutsättning att kodenär väl vald, nota bene).

Förbättringen i BER uttryckt som kodningsförstärkning (eng. codegain) definieras som den effekt ett okodat system måste tillföras föratt dess BER skall bli densamma som hos det kodade systemet.

8.3 En- och två-dimensionell TCMVid block- och faltningskodning erhålls kodningsförstärkning genomatt redundanta bitar tillförs. Om det kodade systemet skall bibehållasamma datahastighet som det okodade måste symbolhastigheten ochdärmed Nyquist-bandbredden hos det kodade systemet ökas 1/R ggrdär R = k/n.

I ett bandbegränsat system uppstår det då problem eftersom denytterligare bandbredd som krävs för de redundanta bitarna inte är till-

Page 226: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

8 Kombinerad kodning och modulation (Trellis Coded Modulation)

224 © Studentlitteratur

08 kap8 TCM.fm 21 september 2004 21.08:01 sida 224 av 242

gänglig. Ett alternativ är att sänka datahastigheten så att de redun-danta bitarna ”får plats”, men i många tillämpningar är den variantensvår eller omöjlig.

Ett annat kraftfullt alternativ utgörs av TCM. Gottfried Ungerböeckintroducerade en metod att tillföra redundans för felkontroll utan attöka signalbandbredden (Ronneby 1976).

Metoden kan beskrivas som en 3-stegsprocedur:

1. Lägg till en redundant bit till varje m-bitars block.2. Expandera signaluppsättningen från 2m till 2m + 1 signaler.3. Använd de (m + 1)-bitars kodade blocken (från källan) till att

välja signaler från den expanderade signaluppsättningen.

Symbolöverföringshastigheten för det kodade systemet är lika storsom för det okodade ⇒ Nyquist-bandbredden ökar inte.

Det geniala i Ungerböecks system ligger i sättet på vilket de m infor-

mationsbitarna avbildas på de 2m + 1 signalerna i den expanderadesignaluppsättningen. Denna avbildning åstadkoms genom mängd-partitionering (eng. set partitioning).

De flesta praktiska signaluppsättningar kan delas upp (partitioneras)på ett systematiskt sätt så att en serie mindre delsignaluppsättningarbildas. Om man gör uppdelningen ”riktigt” så får de resulterande del-signaluppsättningarna större minimi-distans än ”föräldrasignalupp-sättningen”. Figur 8.10 visar partitioneringsträdet för en32-CROSS-signaluppsättning.

Page 227: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

8.3 En- och två-dimensionell TCM

© Studentlitteratur

225

08 kap8 TCM.fm 27 September 2004 08.57:56 sida 225 av 242

Figur 8.10 Partitioneringsträd för 32-CROSS signaluppsättning.

Föräldrauppsättningen (

A

0) har

d

min

=

∆.

A

0 delas upp i

B

0 och

B

1.

B

0 och

B

1 har

d

min

= .

B

0 och

B

1 delas vidare upp i

C

0 och

C

2 respektive

C

1 och

C

3.

C

0 delas upp i

D

0 och

D

4.

C

2 delas upp i

D

2 och

D

6.

C

1 delas upp i

D

1 och

D

5.

C

3 delas upp i

D

3 och

D

7.

Varje ny partitionering resulterar i delsignaluppsättningar med

d

min

=

ggr större än närmast föregående delsignaluppsättning. På nivå

ν

av trädet (

A

0 är på nivå 0) finns det således 2

ν

signaluppsättningar

med

d

min

= .

B1

(000) (010) (001) (011)

(100) (110) (101) (111)

2∆

2 ∆

2 2 ∆

B0

A0

C2

D0

D4 D6

D2

C1 C3

D1

D5

D3

D7

C0

2∆

2

2 ν · ∆

Page 228: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

8 Kombinerad kodning och modulation (Trellis Coded Modulation)

226

© Studentlitteratur

08 kap8 TCM.fm 27 September 2004 08.57:56 sida 226 av 242

.

Figur 8.11 Partitioneringsträd för 16-PSK signaluppsättning.

Lägg märke till att varje uppdelning längst ner i Figur 8.10 är utmärktmed ett binärt tal. Dessa tal kan tolkas som en ”trädadress”: varjekoordinat motsvarar ett steg neråt i trädet. Grenar åt vänster ger 0:aoch grenar åt höger 1:a

Figur 8.11 visar hur partitionering kan tillämpas vid MPSK-signa-luppsättningar. I detta fall har vi en 16-PSK-signaluppsättning sompartitioneras i ett par 8-BPSK-signaluppsättningar. Den genomsnit-tliga symbolenergin för alla signaluppsättningar är 1. Lägg märke tillatt

d

min

ökar snabbare med varje partition med 16-PSK än med32-CROSS.

En Ungerböeck-kodare fungerar på följande sätt:

m

informationsbitar,

x

1

,

x

2

, ...,

x

m

, tas från dataströmmen för att

avbildas på en signal från den 2

m

+ 1

-nära signaluppsättningen.

k

av

A0

B1B0

C0 C2 C1 C3

D0 D4

D2 D6

D1 D5

D3 D7

∆ = 2 sin (π/16) ≈ 0,3902

2 sin (π/8) ≈≈ 0,7654 ≈≈ 1,9615∆

2 sin (π/4) ≈≈ 1,4142 ≈≈ 3,6243∆

2 sin (π/2) == 2 ≈ 5,1256∆

(000) (100)

(010) (110)

(001) (101)

(011) (111)

Page 229: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

8.3 En- och två-dimensionell TCM

© Studentlitteratur 227

08 kap8 TCM.fm 21 september 2004 21.08:01 sida 227 av 242

de m informationsbitarna kodas med en -takts faltningskodare.

De resulterande (k + 1) bitarna används för att välja en av de 2k + 1

partitionerna av den 2m + 1-nära signalen på den (k + 1):a signalupp-sättningsnivån av partitioneringsträdet. De återstående (m – k) infor-mationsbitarna används sedan för att välja en signal i den utpekadepartitionen.

Faltningskodaren i Ungerböeck-kodaren ger en spaljéstruktur till detillåtna signalsekvenserna. Av den anledningen kallas kodaren ettTCM-system.

Exempel 8.3 Jämför okodad QPSK med ett kodat 8-PSK-system

Det okodade systemet, QPSK, har m = 2, d.v.s. spektralverkningsgraden2 bitar/s/Hz

Figur 8.12 Ungerböeck-kodare.

kk + 1

väljsignali parti-tion

väljsignal-parti-tion

-

taktsfaltn.-kodare

zxm

xk + 2

xk + 1

xk

x2x1

ck

c1c0

kk + 1

Page 230: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

8 Kombinerad kodning och modulation (Trellis Coded Modulation)

228 © Studentlitteratur

08 kap8 TCM.fm 21 september 2004 21.08:01 sida 228 av 242

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 Ungerböeckskodningsprincip skall vi ta k av de m informationsbitarna och koda i en

-takts faltningskodare. Eftersom m = 2 tar vi k = 1, vilket leder till att falt-

ningskodarens takt blir .

Som faltningskodare väljer vi den som visas i Figur 8.14.

Eftersom faltningskodarens takt är skall de (k + 1) = 2 bitarna

användas för att välja en av de 2k + 1 = 21 + 1 = 4 partitionerna av de 2m + 1 =

= 22 + 1 = 8 signaluppsättningarna på den (k + 1):a = 2:a nivån i partitionerings-diagrammet.

Figur 8.14 Faltningskodare till Exempel 8.3.

0

1

2

3m = 2

kk + 1

kk + 1

= 11 + 1

= 12

kk + 1

= 12

+

x1

c1

c0

Page 231: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

8.3 En- och två-dimensionell TCM

© Studentlitteratur

229

08 kap8 TCM.fm 27 September 2004 09.06:04 sida 229 av 242

Figur 8.15 Signaluppsättningspartitionering till Exempel 8.3.

.

Figur 8.16 8-PSK Ungerböeck-kodare till Exempel 8.3.

Signaluppsättning

Tillstånd

C

0 (0,4)

S

0

(0 0)

C

2 (2,6)

S

1

(1 0)

C

1 (1,5)

S

2

(0 1)

C

3 (3,7)

S

3

(1 1)

A0

B1B0

C0 C2

nivå 0

nivå 1

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

(00) (10)

0

12

3

4

56

7

0

2

4

6

04

2

6

C1 C3

(01) (11)

1

5

3

7

13

5 7

0 0 0 0 1 1 1 1

0 1 2 3 4 5 6 7

0 0 1 1 0 0 1 1

C0C1C2C3C0C1C2C3

0 1 0 1 0 1 0 1

z

+

x1

x2

c0

c1

c2

Page 232: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

8 Kombinerad kodning och modulation (Trellis Coded Modulation)

230

© Studentlitteratur

08 kap8 TCM.fm 27 September 2004 09.06:04 sida 230 av 242

De återstående (

m – k

) = (2 – 1) = 1 informationsbitarna används till att välja uten signal,

z

, i den utpekade partitionen.

Utgången från en 4-tillstånds faltningskodare väljer en av de fyra partitionerna

C

0,

C

1,

C

2,

C

3 medan den okodade databiten

x

2

väljer en av de två signalerna iden valda partitionen

.

Jämför det okodade med det kodade fallet med hjälp av spaljédiagram. I detokodade fallet tas två informationsbitar i taget och avbildas på en av de fyrasignalerna i QPSK-signaluppsättningen.

Figur 8.17 Okodat system, QPSK, i Exempel 8.3.

Figur 8.18 Spaljédiagram till okodat QPSK-system i Exempel 8.3.

Figur 8.19 Tillståndsdiagram för faltningskodaren i Figur 8.14.

0

1

2

3

32

10

32

10

32

10

tid t – 1 t t + 1 ...

S2

1/10

1/11

0/10

0/11S3

S0

S2 S1

1/01

0/00

0/01

1/00

C0

C1

C3C3

C2C2C1

C0

Page 233: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

8.3 En- och två-dimensionell TCM

© Studentlitteratur

231

08 kap8 TCM.fm 27 September 2004 09.06:04 sida 231 av 242

Eftersom det inte finns något minne i systemet kan vilken som helst av de fyrasignalerna väljas i varje tidslucka. Sannolikheten för symbolfel vidtransmission via en brusig kanal beror av det minsta euklidiska avståndetmellan par av åtskilda signalsekvenser. Det minsta euklidiska avståndet mellanett par giltiga åtskilda symbolsekvenser kallas ”den minimala fria distansen”(eng. minimum free distance,

d

free

)

d

fri

.

I det okodade fallet kan två giltiga symbolsekvenser skilja sig åt i endast enkoordinat (ex. 00

01 respektive 00

00). Den minimala fria distansenmellan något par av okodade sekvenser blir därmed i fallet QPSK lika med detkortaste avståndet mellan två signaler i QPSK-signaluppsättningen.

I det kodade fallet har vi en intressantare situation. De giltiga sekvenserna kanåskådliggöras med hjälp av spaljédiagram. Tillstånden kan beskrivas med ett4-tillstånds spaljédiagram. Tillstånden motsvarar innehållet avminneselementen i faltningskodaren som ingår i Ungerböeck-kodaren. Pågrenarna anges de signalpartitioner från vilka signaler kan väljas, så kan t.ex.endast en signal från partition

C

2 (= 2,6) väljas när faltningskodaren ändrar sitttillstånd från

S

0

(00) till

S

1

(10).

Eftersom varje gren i spaljédiagrammet motsvarar fler än en signal, i vårt falltvå signaler, kan vi ha signalsekvenser som bara skiljer sig åt i en enda”parallell övergång”. Exempelvis är signalsekvenserna

z

1

= 0000... och

z

2

=0400... båda giltiga och skiljer sig åt i endast en koordinat. Den minimala friadistansen för parallella övergångar är lika med den minimala distansen mellansignaler i de partitioner som finns på de olika grenarna, d.v.s. i vårt fall denminimala minimidistansen bland signaler i partitionerna

C

0,

C

1,

C

2 och

C

3som är

d

friparallell

= 2.

Fastän parallella övergångar endast skiljer sig åt i en enda gren motsvarar deinte med nödvändighet de par av sekvenser som har det kortaste avståndetmellan sig.

Figur 8.20 Minimal fri distans i det okodade fallet = kortaste avståndetmellan två signaler i QPSK-signaluppsättningen (Exempel 8.3).

0

1

2

3

1

dfri,okodad = 2

2

Page 234: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

8 Kombinerad kodning och modulation (Trellis Coded Modulation)

232

© Studentlitteratur

08 kap8 TCM.fm 27 September 2004 09.06:04 sida 232 av 242

Figur 8.21 Spaljédiagram vid Ungerböeck-kodning i Exempel 8.3.

Figur 8.22 Minimidistans vid parallella övergångar vid Ungerböeck-kodningi Exempel 8.3.

Figur 8.23 Avstånd mellan signalpartitioner vid Ungerböeck-kodning i Exem-pel 8.3.

S3

S2

S1

S0

C1 C1 C1

C0 C0 C0

C2 C2 C2

C3

C3

C3

C3 C3 C3

C0 C0 C0

C2

C2

C2

C1 C1 C1

04

C2

67

3

2

C0 2

2

1

5

2

C1

2

C3

C2

C1

C0

dmin(C0,C1)dmin(C0,C2)

Page 235: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

8.3 En- och två-dimensionell TCM

© Studentlitteratur 233

08 kap8 TCM.fm 21 september 2004 21.08:01 sida 233 av 242

Spaljédiagrammet visar ett sätt på vilket två icke-parallella sekvenser kan skiljasig åt i tre på varandra följande grenar. Detta icke-parallella sekvenspar är ett avdem som har minst avstånd mellan sig i denna kodare. För att bestämma dettaavstånd används den euklidiska metriken och Pythagoras´ sats. Låt nämligendmin(CA,CB) vara det kortaste avståndet mellan signaler i partition CA och sig-naler i partition CB.

Den minimala fria distansen för kodaren är den minsta av dfri,parallell ochdfri,icke-parallell. I vårt fall utgörs den parallella övergången av de sekvensparsom är närmast varandra och vi kan följaktligen skriva

dfri,kodad = 2.

Prestandaförbättringen genom det kodade systemet relativt det oko-dade anges genom ”den asymptotiska kodningsförstärkningen” γ.Om Sokodad är den normerade mottagna medelenergin för det oko-dade fallet och Skodad motsvarande för det kodade fallet så definieras”den asymptotiska kodningsförstärkningen”:

(8.5)

Detta uttryck kan omformas så att det bättre illustrerar inverkan påkodningsförstärkningen för den utökade energi som behövs för denexpanderade signaluppsättningen och den ökade fria distansen somuppstår tack vare den införda redundansen. Den utökade energinrepresenteras av en signaluppsättningsexpansionsfaktor γc (c = cons-tellation) medan den utökade minimala fria distansen representerasav en utökad distansfaktor γD.

. (8.6)

dfri,icke-parallell = dmin2 (C0,C2) + dmin

2 (C0,C1) + dmin2 (C0,C2) =

= 2 + 2 sin π8

2 + 2 ≈ 2,14

γ =

Sokodad

dfri,okodad2

Skodad

dfri,kodad2

γ = Sokodad

Skodad ·

dfri,kodad2

dfri,okodad2

= γc · γD

Page 236: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

8 Kombinerad kodning och modulation (Trellis Coded Modulation)

234 © Studentlitteratur

08 kap8 TCM.fm 21 september 2004 21.08:01 sida 234 av 242

Eftersom den asymptotiska kodningsförstärkningen är en funktion av

för de kodade och okodade fallen är det ofta mer praktiskt att

direkt arbeta med . I vårt exempel, okodad QPSK och kodad8-PSK, har vi samma energi (normerad till 1), varför vi får:

. (8.7)

Spaljéns utseende - Figur 8.21 - avspeglar några heuristiska design-

regler vars mål är att maximera . Ungerböeck har formulerat dessaregler på följande sätt:

8.4 Ungerböecks designregler1. Signaler i samma, den lägsta partitionen, i trädet tillägnas paral-

lella övergångar.2. Signaler i närmast föregående partition tillägnas övergångar

som börjar och slutar i samma tillstånd.3. Alla signaler används lika ofta.

Regel 1 maximerar distansen mellan signaler i parallellöver-gångar.Regel 2 maximerar distansen mellan icke-parallella vägar vidderas första och sista grenar, d.v.s. de punkter där de avvikerfrån varandra och senare sammanstrålar.

Den asymptotiska kodningsförstärkningen för 8-PSK Ungerbö-eck-kodaren kan ytterligare ökas genom att öka minnet och faltnings-kodarens takt enligt Figur 8.24.

Eftersom det inte finns några parallella övergångar i detta exempelbehöver vi bara undersöka icke-parallella vägar för att bestämmakodens minimala fria distans. I detta fall motsvarar paret

dfri2

dfri2

γ = dfri,kodad

2

dfri,okodad2

= 22

2 2 = 2 (≈ 3 dB)

dfri2

Page 237: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

8.4 Ungerböecks designregler

© Studentlitteratur 235

08 kap8 TCM.fm 21 september 2004 21.08:01 sida 235 av 242

S0 → S3 → S6 → S0 och S0 → S0 → S0 → S0 de närmast varandrabelägna signalsekvenserna. Sekvenserna motsvaras av 6,7,6 och0,0,0.

Den extra minnescellen i kodaren har ökat kodningsförstärkningenmed c:a 0,6 dB. Emellertid är komplexitetsökningen betydande vid

övergång från -takts- till -takts- faltningskodare

Figur 8.24 Utökad asymptotisk kodningsförstärkning genom utö-kat minne i faltningskodaren.

Figur 8.25 Euklidiska avstånd mellan signaler i 8-PSK.

dfri,icke-parallell2 = 2 + 2sin π

82 + 2 ≈ 4,58

γ = Sokodad

Skodad ·

dfri,kodad2

dfri,okodad2

= 11

· 4,58

2 ≈ 2,29 (≈ 3,6 dB)

12

23

z

+

x1

x2

c0

c1

00001111

00110011

0101010101234567

+c2

2

1 3

0

2

4

67

2 2sin π8

Page 238: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

8 Kombinerad kodning och modulation (Trellis Coded Modulation)

236 © Studentlitteratur

08 kap8 TCM.fm 21 september 2004 21.08:01 sida 236 av 242

Figur 8.26 Spaljédiagram för 8-PSK Ungerböeck-kodare med utö-kat minne.

Tillståndstabell för faltningskodare i Figur 8.24.

Tillstånd Minnesele-ment 1

Minnesele-ment 2

Minnesele-ment 3

S0 0 0 0

S1 1 0 0

S2 0 1 0

S3 1 1 0

S4 0 0 1

S5 1 0 1

S6 0 1 1

S7 1 1 1

7351 S7

6240 S6

3715 S5

2604 S4

5173 S3

4062 S2

1537 S1

0426 S0

S7

S6

S5

S4

S3

S2

S1

S0

11/110/501/300/700/001/410/211

/6

S0 S0

S6

Page 239: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

8.5 Problem. Trellis Coded Modulation

© Studentlitteratur 237

08 kap8 TCM.fm 21 september 2004 21.08:01 sida 237 av 242

Sammanfattning

• Historiskt är modulation och kodning två separata delar i ettsystem. Ungerböeck publicerade 1976 en artikel1 där han före-slog en metod att integrera modulation och kodning kallad Trel-lis Coded Modulation (TCM).

• Med TCM kan kodningsförstärkning åstadkommas utan varesig bandbreddsexpansion eller uteffekthöjning.

• TCM bygger på tre principer:1.Expanderade signaluppsättningar.2.Signaluppsättningspartitionering.3.Val av partitioner med faltningskodare.

Litteraturhänvisningar

E.Biglieri, D.Divsalar, P.J.McLane, M.K.Simon, ”Introduction toTrellis-Coded Modulation with Applications”, New York: MacmillanPublishing Company, 1991.

8.5 Problem. Trellis Coded ModulationProblem 8.1

Konstruera ett partitionsträd för signaluppsättningen i Figur 8.27 och bestämminimidistansen för varje nivå i partitionsträdet.

1 G.Ungerböeck och J.Csajka, ”On Improving Data LinkPerformance by Increa-sing the Channel Alphabet and Introducing Sequence Coding,” 1976 International Symposium on Information Theory, Ronneby, Sverige. Juni 1976.

Page 240: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

8 Kombinerad kodning och modulation (Trellis Coded Modulation)

238 © Studentlitteratur

08 kap8 TCM.fm 21 september 2004 21.08:01 sida 238 av 242

Figur 8.27 Signaluppsättning till Problem 8.1.

Problem 8.2

Konstruera ett partitionsträd för 16-”kors”-signaluppsättningen enligt Figur8.28. På den slutliga nivån skall antalet signaler per signaluppsättning vara 2.Ange för varje nivå, fr.o.m. nivå 0, minimiavståndet uttryckt i delar av ∆.

Figur 8.28 Signaluppsättning till Problem 8.2.

Problem 8.3

Konstruera ett partitionsträd för signaluppsättningen Figur 8.29 och visa medberäkning minimidistansen med närmevärde för varje nivå i partitionsträdet. Iden slutliga partitionen skall det i varje signaluppsättning ingå fyra signaler.Signalpunkterna befinner sig på cirklar med radierna 1, 2, 3, 4, 5, 6, 7 och 8

21

Page 241: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

8.5 Problem. Trellis Coded Modulation

© Studentlitteratur 239

08 kap8 TCM.fm 21 september 2004 21.08:01 sida 239 av 242

.

Figur 8.29 Signaluppsättning till Problem 8.3.

Problem 8.4

En signaluppsättning med 8 olika signaler består av 4 signaler med koordina-terna (1,0), (0,1), (– 1,0) och (– 1,–1) samt 4 signaler med koordinaterna

i ett signalvektordia-

gram. Bestäm k så att medelsignalenergin blir 4/3. Sannolikheten för var och enav de fyra första signalerna är lika stor. Sannolikheten för var och en av de fyrasenare signalerna är bara hälften av var och en av de första. Bestäm minimiav-ståndet i den högsta partitionen med detta k-värde.

Svar:

k 12

, 12

, k – 12

, 12

, k – 12

,– 12

och k 12

,– 12

k = 2

∆2 = 5

Page 242: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

8 Kombinerad kodning och modulation (Trellis Coded Modulation)

240 © Studentlitteratur

08 kap8 TCM.fm 21 september 2004 21.08:01 sida 240 av 242

Problem 8.5

Konstruera ett partitionsträd för signaluppsättningen i Figur 8.30 och bestämminimidistansen exakt och med närmevärde för varje nivå i partitionsträdet. Iden slutliga partitionen skall det i varje signaluppsättning ingå fyra signaler.

Figur 8.30 Signaluppsättning till Problem 8.5.

Problem 8.6

Konstruera ett partitionsträd för 4 × 4 -”kvadraters”-signaluppsättningen i Figur8.31. På den slutliga nivån skall antalet signaler per signaluppsättning vara 2.Ange för varje nivå, fr.o.m. nivå 0, minimiavståndet om koordinaterna för sig-nalpunkterna ä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).

23

4

5

Page 243: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

8.5 Problem. Trellis Coded Modulation

© Studentlitteratur 241

08 kap8 TCM.fm 21 september 2004 21.08:01 sida 241 av 242

Figur 8.31 Signaluppsättning till Problem 8.6.

Svar:

dmin = 2

dmin = 4

Problem 8.7

Signaluppsättningen enligt Figur 8.32 är tagen från ett hexagonalt gitter ochplacerad så att signalenergin minimeras.

Beräkna den genomsnittliga signalenergin under förutsättning att alla signalerär lika sannolika.

dmin = 2

dmin = 2 2

Page 244: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

8 Kombinerad kodning och modulation (Trellis Coded Modulation)

242 © Studentlitteratur

08 kap8 TCM.fm 21 september 2004 21.08:01 sida 242 av 242

Figur 8.32 . Signaluppsättning till Problem 8.7.

Svar:

Medelenergin är 1,09

1

1

10,5

Page 245: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

©

Studentlitteratur

243

09 kap9 turbokoder.fm 22 september 2004 10.00:11 sida 243 av 270

9 Turbokoder

9.1 Introduktion

Att i en och samma kodare åstadkomma en bra avvägning mellankoden (mjukvaran), som skall åstadkomma hög kodningsförstärk-ning, och kodaren (hårdvaran), som skall vara så enkel som möjligt,är inte lätt eftersom dessa egenskaper i hög grad är motstridiga. Enmetod för att komma runt detta problem föreslogs 1966 av Forney.Metoden går ut på att kombinera två eller flera relativt enkla kodareeller komponentkodare i en

sammanlänkad kod

(eng.

concatenatedcode

). Den sammanlänkade koden har en felkorrigeringsförmågamotsvarande den hos mycket längre koder medan avkodningsproce-duren kan göras relativt okomplicerad.

För effektbegränsade tillämpningar, exempelvis i rymdsonder,används seriesammanlänkade koder som implementeras med en yttreReed-Solomon-kodare (först kodad, sist avkodad) följd av en inrefaltningskodare (sist kodad, först avkodad).

Turbokodning

1

bygger på en liknande idé och turbokodare konstrue-ras genom att två (eller flera) parallellanslutna komponentkodare fårkoda olika interleavade

2

versioner av samma informationssekvens,d.v.s. ett diversitetsförfarande. Traditionellt lämnar en avkodare sym-

1

Turbokoder introducerades 1993 i en artikel av C. Berrou, A. Glavieux ochP. Thitmajshima, ”

Near Shannon Limit Error-Correcting Coding and Deco-ding: Turbo Codes

”, IEEE Proc. ICC ’93, Geneva, Switzerland, May 1993,pp. 1064-1070. Författarna rapporterar där att för en given bitfelssannolikhetoch kodtakt erforderligt

E

b

/

N

0

endast obetydligt överskrider (< 1 dB) Shan-nons gräns.

2

Läs om interleaving och diversitet i L. Ahlin, C. Frank, J. Zander:

Mobilradiokommunikation

, Studentlitteratur, 2001.

Detta dokument har framställts med FrameMaker 4.0.4

Page 246: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

9 Turbokoder

244

©

Studentlitteratur

09 kap9 turbokoder.fm 22 september 2004 10.00:11 sida 244 av 270

boler via hårda beslut (eng. hard decisions) men för att en turboko-dare skall fungera riktigt skall avkodningsalgoritmen snarare utbytamjuka än hårda beslut mellan de två (eller flera) avkodarna. För ettavkodarsystem bestående av två avkodare sänds mjuka beslut (eng.soft decisions) från den ena avkodaren till den andra som i sin tursänder tillbaka sina mjuka beslut till den första. För att få bättrebeslut, d.v.s. lägre bitfelshalt, itereras proceduren flera gånger. Demjuka avkodningsbesluten grundar sig vid varje tillfälle på det, blandflera avkodningsalternativ, troligaste.

En turbokodare konstrueras genom att två rekursiva systematiskafaltningskodare åtskilda av en pseudoslumpinterleaver sammanlän-kas. Eftersom båda kodarna arbetar på samma bitmängd, i motsats tillfallet då den ena kodaren bearbetar utdata från den andra, kallaskodarstrukturen parallell. Av samma anledning kallas därför turboko-dare även

parallellt sammanlänkade faltningskodare

. Figur 9.1 visarden 1/2-turbokodare som Berrou, Glavieux och Thitmajshima pre-senterade i den artikel som introducerade turbokoden. Observera attswitchen gör att koden blir punkterad till en 1/2-kod. Utan switchhade det blivit en 1/3-kod.

Figur 9.1 Turbokodare uppbyggd med två rekursiva systematiskafaltningskodare med parallell sammanlänkning.

+

+

+

+

fördröj-ningskrets

interleaver

dk dk

vk

v1kv2k

C1rekursivsystematiskkod

C2rekursivsystematiskkod

Page 247: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

9.2 Likelihood-begreppet

©

Studentlitteratur

245

09 kap9 turbokoder.fm 22 september 2004 10.00:11 sida 245 av 270

Den iterativa avkodningsproceduren bygger vid varje iteration på attberäkna det troligast sända meddelandet och för en analys av turbo-kodarens funktionssätt följer i nästa avsnitt en beskrivning av likeli-hoodbegreppet och dess tillämpning i samband med iterativ avkod-ning.

9.2 Likelihood-begreppet

Likelihood-begreppet används vid statistisk hypotesprövning ochbygger på Bayes teorem om förhållandet mellan de betingade ochsimultana sannolikheterna för två händelser

A

och

B

enligt

P

(

A

|

B

)

P

(

B

) =

P

(

B

|

A

)

P

(

A

) =

P

(

A,B

). (9.1)

Med Bayes teorem definieras nu

aposteriorisannolikheten

(APP =

APosteriori Probability

) enligt

, (9.2)

d.v.s. vi kan definiera APP för en händelse

A

, givet händelsen

B

, somen funktion av den betingade sannolikheten

P

(

B

|

A

) och apriorisanno-likheterna

P

(

A

) och

P

(

B

).

I kommunikationssammanhang med additivit vitt gaussiskt brus ikanalen (AVGB) är det lämpligt att uttrycka APP som en funktion aven kontinuerlig stokastisk variabel

X,

som kan anta värdet

x

(sändsignal + brus = mottagen signal)

,

på följande sätt:

(9.3)

och

(9.4)

d

=

i

är en av

M

symboler.

P(A|B) = P(B|A)P(A)

P(B)

P(d = i|x) = p(x|d = i)P(d = i)

p(x)

p(x) = p(x|d = i)P(d = i)∑i = 1

M

Page 248: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

9 Turbokoder

246

©

Studentlitteratur

09 kap9 turbokoder.fm 22 september 2004 10.00:11 sida 246 av 270

p

(

x

|

d

=

i

) är den betingade täthetsfunktionen för den mottagna signa-len

x

, givet att

d

=

i

är sänd.

P

(

d

=

i

) är sannolikheten att signalen

d

=

i

sänts, apriorisannolikhe-ten.

p

(

x

) är täthetsfunktionen för en mottagen signal

x

och eftersom

p

(

x

)är lika stor för alla signaler kan

p

(

x

) betraktas som en skalfaktor.

Låt ett binärt överföringssystem (

M

= 2) med de två sända symbo-lerna 0 och 1 elektroniskt representeras av spänningarna – 1 V och+ 1 V. Spänningarna tillägnas variabeln

d,

som alltså kan anta vär-dena

d

= – 1 och

d

= + 1.

De betingade täthetsfunktionerna

p

(

x

|

d

= – 1) och

p

(

x

|

d

= + 1), ellerlikelihoodfunktionerna för en kanal med additivt vitt gaussiskt brus,visas i Figur 9.2, där en godtycklig detekteringsnivå,

x

k

, är inlagd.Den vertikala linjen genom

x

k

skär de två likelihoodkurvorna i

λ

1 ochλ2. En vanlig hård beslutsregel kallad maximum likelihood är attvälja den symbol d = – 1 eller d = + 1 som hör till det största av de tvåinterceptvärdena λ1 och λ2. Detta är liktydigt med att besluta dk = + 1om xk ligger till höger om beslutslinjen γ0 annars dk = – 1.

En liknande beslutsregel, maximum aposteriori (MAP) eller mini-malfelregeln uttrycks med hjälp av apriorisannolikheterna på föl-jande sätt:

. (9.5)

Uttrycket utsäger att man skall välja hypotes H1, d.v.s. d = + 1 omAPP P(d = + 1|x) är större än APP P(d = – 1|x), annars välj hypotesH2, d.v.s. d = – 1.

Med Bayes teorem enligt (9.3) kan MAP-regeln alternativt skrivas

. (9.6)

><H1

H2

P(d = + 1|x) P(d = – 1|x)

><H1

H2

p(x|d = + 1)P(d = + 1) p(x|d = – 1)P(d = – 1)

Page 249: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

9.2 Likelihood-begreppet

© Studentlitteratur 247

09 kap9 turbokoder.fm 22 september 2004 10.00:11 sida 247 av 270

Figur 9.2 Likelihoodfunktioner.

Uttrycket (9.6) anges ofta i form av ett förhållande kallat likelihood-förhållandetestet (likelihood ratio test)

(9.7)

alternativt

. (9.8)

9.2.1 Log-likelihood-förhållandet

På samma sätt som vid räkningar på länkbudget, där de enskilda ste-gens inverkan anges i dB, förenklas likelihoodräkningarna om manlogaritmerar likelihoodfunktionen. Den på så sätt uppkomna metri-ken kallas loglikelihood-förhållandet (i fortsättningen betecknatLLR = Log-Likelihood Ratio). LLR är ett reellt tal och representerarvärdet ut från en beslutskrets, som får sin insignal från en detektorut-gång. LLR betecknas L(d|x) och definieras enligt

x

p(x|d = + 1)p(x|d = – 1)

λ1

λ2

xk + 1– 1

γ0

><H1

H2

p(x|d = + 1)p(x|d = – 1)

P(d = – 1)P(d = + 1)

><H1

H2

p(x|d = + 1)P(d = + 1)p(x|d = – 1)P(d = – 1)

1

L(d|x) = log P(d = + 1|x)P(d = – 1|x)

= log p(x|d = + 1)P(d = + 1)p(x|d = – 1)P(d = – 1)

=

Page 250: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

9 Turbokoder

248 © Studentlitteratur

09 kap9 turbokoder.fm 22 september 2004 10.00:11 sida 248 av 270

(9.9)

där L(x|d) är LLR för den mottagna signalen, givet att d = + 1 ellerd = – 1 har sänts medan L(d) är apriori LLR för om d = + 1 ellerd = – 1 har sänts (observera att L(d) = 0 om P(d = + 1) = P(d = – 1) =

= ).

LLR L(d|x) enligt (9.9) kan uppfattas som ett kvalitetsmått på denpreliminära uppskattningen av vilket d som sänts, + 1 eller – 1, givet

att x har mottagits, och betecknas för enkelhets skull . L(x|d),LLR för den mottagna signalen, givet att d = + 1 eller d = – 1 harsänts, är ett resultat av det uppmätta värdet, x, på detektorutgångenoch utgör ett mått på kanalens inverkan och betecknas Lc(x) (c =channel). Med de införda beteckningarna övergår uttrycket (9.9) till

= Lc(x) + L(d). (9.10)

De hittills presenterade uttrycken ger hårda beslut (hard decisions)fattade med hjälp av mottagardetektorn. Mjuka beslut (soft deci-sions), som ger ett bättre beslutsunderlag för uppskattningen av vil-ken symbol som sänts, kan göras med hjälp av en efterföljande avko-dare. För en kodare som lämnar en systematisk kod har Berrou,

Glavieux och Thitmajshima visat att LLR ut från avkodaren, ,(soft output) är

= + (9.11)

där utgör extra (extrinsic) kunskap utvunnen genom avkod-ningsproceduren.

Utsekvensen från en systematisk kodare består av två delar, en somrepresenterar dataordet och en som består av paritetsbitarna.

Uttrycket (9.11) delar upp LLR ut från avkodaren i en del, , sombaserar sig på mätning på detektorutgången av dataordet och en del,

, som representerar den extra kunskap som avkodaren utvunnit

= logp(x|d = + 1)p(x|d = – 1)

+ logP(d = + 1)P(d = – 1)

= L(x|d) + L(d)

12

L´(d)

L´(d)

L(d)

L(d) L´(d) Le(d)

Le(d)

L´(d)

Le(d)

Page 251: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

9.2 Likelihood-begreppet

© Studentlitteratur

249

09 kap9 turbokoder.fm 27 September 2004 09.17:34 sida 249 av 270

med hjälp av paritetsbitarna. Med hjälp av uttrycken (9.10) och(9.11) kan LLR ut från avkodaren därför skrivas.

=

L

c

(

x

) +

L

(

d

) + (9.12)

Det mjuka beslutet enligt uttrycket (9.12) är ett reellt tal och

tecknet på motsvarar det hårda beslutet, d.v.s. om > 0,

besluta att

d

= + 1 sänts och om < 0, besluta att

d

= – 1 sänts,

medan absolutbeloppet av anger det fattade beslutets tillförlit-lighet.

9.2.2 Turboavkodning (iterativ avkodning)

Vid den första iterationen av soft-in/soft-ut-avkodaren, se Figur 9.3,antar vi att infördelningen på sändarsidan är likformig,

d.v.s.

P

(

d

= + 1) =

P

(

d

= – 1) = , vilket gör att det första apri-

ori-LLR

L

(

d

) = 0.

Värdet på LLR

L

c

(

x

) från kanalen bildas enligt

Figur 9.3 Soft-in/soft-ut-avkodare för systematisk kod.

L(d) Le(d)

L(d)

L(d) L(d)

L(d)

L(d)

12

Lc(x) = log p(x|d = + 1)p(x|d = – 1)

= som för x = xk - se Fig. 9.2 = log λ1λ2

soft-in-soft-ut-avko-dare

aposterio-rivärden ut

kanalvär-den in

återkoppling för nästa iteration

apriori-värdenin L(d)

extra-värdenut

utgångs-LLR

L(d) = L´(d) + Le(d)

detektor-apos-teriori-LLR

L´(d)Lc(x)

Le(d)

L´(d) = Lc(x) + L(d)

Page 252: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

9 Turbokoder

250 © Studentlitteratur

09 kap9 turbokoder.fm 22 september 2004 10.00:11 sida 250 av 270

med beteckningar enligt (9.9), (9.10) och Figur 9.2.

Ut-LLR från avkodaren, se Figur 9.3, består av de två delarna

= LLR från detektorn, och = extra LLR utvunnen viaavkodningen. Den extra LLR-signalen återkopplas till avkodarin-gången för att förbättra apriorivärdet L(d) inför nästa iteration.

För att förstå avkodningsproceduren använder vi en tvådimensionellproduktkod där radkoderna och kolumnkoderna utgör en sammanlän-kad kod, se Figur 9.4. Data är uppdelade på k1 rader och k2 kolumner.Var och en av de k1 raderna innehåller en kodvektor med k2 databitaroch n2 – k2 paritetsbitar och på samma sätt innehåller var och en avde k2 kolumnerna en kodvektor med k1 databitar och n1 – k1 paritets-bitar.

I Figur 9.4 betecknar d data, ph och pv paritetsbitar i horisontalled(rader) respektive vertikalled (kolumner). Blocken Leh och Lev repre-senterar de LLR extravärden som erhålls genom de horisontella res-pektive vertikala avkodningarna. Kodningen består av två kodnings-steg, ett horisontellt och ett vertikalt. Avkodningen tillgår på följandesätt:

Figur 9.4 Tvådimensionell produktkod.

L(d)

L´(d) Le(d)

d ph Leh

pv

Lev

extra LLRhorisontal

extra LLRvertikal

k2 n2 – k2kolumner

k1 rader

n1 – k1 rader

kolumner

Page 253: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

9.2 Likelihood-begreppet

© Studentlitteratur 251

09 kap9 turbokoder.fm 22 september 2004 10.00:11 sida 251 av 270

1. Sätt apriori-LLR L(d) = 0.2. Avkoda horisontellt och extra LLR, se (9.12), utvinns enligt

= – Lc(x) – L(d).

3. Sätt L(d) = .4. Avkoda vertikalt och extra LLR, se (9.12), utvinns enligt

= – Lc(x) – L(d).

5. Sätt L(d) = .6. Om antalet iterationer är tillräckligt för att kunna göra ett tillför-

litligt beslut gå till punkt 7 annars, gå till punkt 2.7. UtgångsLLR är

= Lc(x) + + . (9.13)

9.2.3 Exempel med två-dimensionell enkelparitets produktkod

Paritetsbitarna för en kodare med jämn paritet beräknas medmodulo-2- addition (betecknad ∆) enligt

di ∆ dj = pij (9.14)

som kan omformas till

di = dj ∆ pij (9.15)

eller

dj = di ∆ pij (9.16)

och i vårt exempel består de sända data och paritetsbitarna av sekven-sen d1 d2 d3 d4 p12 p34 p13 p24, se Tabell 9.1 .

På mottagaringången representeras de mottagna symbolerna av sek-vensen x1 x2 x3 x4 x12 x34 x13 x24 där

xi = di + n (9.17)

för varje mottagen databit medan

Leh(d) L(d)

Leh(d)

Lvh(d) L(d)

Lvh(d)

L(d) Leh(d) Lvh(d)

Page 254: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

9 Turbokoder

252 © Studentlitteratur

09 kap9 turbokoder.fm 22 september 2004 10.00:11 sida 252 av 270

xij = pij + n (9.18)

för varje mottagen paritetsbit och n är i.i.d. (independent and identi-cally distributed) brus.

Kalla för enkelhets skull den mottagna sekvensen för xk med ettenkelt indedx k, som kan uppfattas som ett tidsindex. Med additivtvitt gaussiskt brus med medelvärdet noll och standardavvikelsen σoch med uttrycket (9.9) blir LLR för en mottagen signal xk

(9.19)

där naturliga logaritmer använts för att få ett enkelt uttryck. För attytterligare förenkla uttycket sätter vi σ2 = 1 så att vi får

Lc(xk) = 2xk. (9.20)

Med datasekvensen d1 d2 d3 d4 = 1 0 0 1 enligt Tabell 9.1 blir pari-tetssekvensen med jämn paritet p12 p34 p13 p24 = 1 1 1 1, d.v.s. sändsekvens är

di,pij = 1 0 0 1 1 1 1 1

med motsvarande spänningar

+1 –1 –1 +1 +1 +1 +1 +1.

Vi antar vidare att bruset omvandlar den sända sekvensen di,pij tillden mottagna

xk = 0,75; 0,05; 0,10; 0,15; 1,25; 1,00; 3,00; 0,50

vilket med (9.20) ger LLR för Lc(xk)

Lc(xk) = ln p(xk|dk = + 1)p(xk|dk = – 1)

=

= ln

1σ 2π

exp – 12

xk – 1

σ2

1σ 2π

exp – 12

xk + 1σ

2 =

= – 12

xk – 1

σ2 + 1

2 xk + 1

σ2 = 2

σ2xk

Page 255: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

9.2 Likelihood-begreppet

© Studentlitteratur 253

09 kap9 turbokoder.fm 22 september 2004 10.00:11 sida 253 av 270

Lc(xk) = 1,5; 0,1; 0,2; 0,3; 2,5; 2,0; 6,0; 1,0,

se Tabell 9.2 ,

Lägg märke till att hård avkodning i detta fall skulle resultera i två feleftersom d2 och d3 båda felaktigt skulle tolkas som binära ettor.

9.2.4 Räknelagar för loglikelihoodfunktioner3

Summan av två LLR (loglikelihood-förhållanden) med statistisktoberoende d:n definieras på följande sätt

4 (9.21)

I (9.21) används de tre additionsoperatorerna

+ som är symbolen för vanlig addition

∆ som är symbolen för modulo-2 addition

som är symbolen för loglikelihood-addition.

3 för detaljer, se J. Hagenauer, ”Iterative Decoding of Binary Block and Con-volutional Codes”, IEEE Transactions of Information Theory, vol. 42, no. 2,Mar. 1996, pp. 429-445.4 se 9.5 Appendix för (9.21).

d1 = 1 d2 = 0 p12 = 1

d3 = 0 d4 = 1 p34 = 1

p13 = 1 p24 = 1

Tabell 9.1 Utgångsbitar från en tvådimensionell enkelparitets produktkod.

Lc(x1) = 1,5 Lc(x2) = 0,1 Lc(x12) = 2,5

Lc(x3) = 0,2 Lc(x4) = 0,3 Lc(x34) = 2,0

Lc(x13) = 6,0 Lc(x24) = 1,0

Tabell 9.2 LLR Lc(xk) till avkodaringången.

L(d1) + L(d2) L(d1 ∆ d2) = ln eL(d1) + eL(d2)

1 + eL(d1) + L(d2)

+

Page 256: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

9 Turbokoder

254 © Studentlitteratur

09 kap9 turbokoder.fm 22 september 2004 10.00:11 sida 254 av 270

För ett numeriskt exempel längre fram är följande approximation av(9.21) användbar

(9.22)

Följande intressanta specialfall, då en av de i loglikelihood-additio-nen ingående LLR är mycket stor eller mycket liten, ger med (9.21)och (9.22) resultaten

L(d) ∞ = – L(d) (9.23)

L(d) 0 = 0 (9.24)

9.2.5 Beräkning av LLR extravärden

För produktkoden enligt Tabell 9.1 och med (9.12) kan vi uttryckaLLR ut från avkodaren för den mottagna signalen d1 på följande sätt

(9.25)

där motsvarar extra-LLR erhållen genomkodningsprocessen eller mer exakt genom den efter kanalen upp-mätta signalen x2, som motsvarar databiten d2 och dess apriorisanno-likhet samt signalen som motsvarar paritetsbiten p12.

Generellt är den mjuka uppskattningen för den mottagna signa-len motsvarande den sända di

(9.26)

där Lc(xi), Lc(xj) och Lc(xij) är de uppmätta LLR-värdena efter pas-sage av kanalen hos de mottagna signalerna svarande mot motsva-rande sända, di, dj och pij. L(di) och L(dj) utgör LLR av apriorisanno-

likheterna för di och dj medan genomkodningen bidrar med extra-LLR.

L(d1) + L(d2) ≈≈ (– 1) · sign L(d1) · sign L(d2) · min L(d1) , L(d2)

+

+

L(d1) = Lc(x1) + L(d1) + Lc(x2) + L(d2) + Lc(x12)

Lc(x2) + L(d2) + Lc(x12)

L(di)

L(di) = Lc(xi) + L(di) + Lc(xj) + L(dj) + Lc(xij)

Lc(xj) + L(dj) + Lc(xij)

Page 257: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

9.2 Likelihood-begreppet

© Studentlitteratur 255

09 kap9 turbokoder.fm 22 september 2004 10.00:11 sida 255 av 270

Betrakta nu (9.25), (9.26), Tabell 9.1 och Tabell 9.2 : Utgångs- vär-

det fås genom mätning av LLR-värdet från detektorn av denmottagna signalen svarande mot den sända databiten d1 och det extraLLR som utvinns ur det faktum att att databiten d2 och paritetsbitenp12 också ger kunskap om databiten d1 - se (9.14), (9.15) och (9.16).

För exemplet enligt Tabell 9.2 görs nu de horisontella och vertikala

beräkningarna, och , på följande sätt

(9.27)

(9.28)

(9.29)

(9.30)

(9.31)

(9.32)

(9.33)

(9.34)

De olika värdena på Lc(x) i Tabell 9.2 förs nu in i de ”horisontella”

ekvationerna : (9.27), (9.29), (9.31) och (9.33) medan initial-värdena på L(d) sätts till noll varvid vi får nya värden på L(d):

(9.35)

(9.36)

(9.37)

(9.38)

L(d1)

Leh(d) Lev(d)

Leh(d1) = Lc(x2) + L(d2) + Lc(x12)

Lev(d1) = Lc(x3) + L(d3) + Lc(x13)

Leh(d2) = Lc(x1) + L(d1) + Lc(x12)

Lev(d2) = Lc(x4) + L(d4) + Lc(x24)

Leh(d3) = Lc(x4) + L(d4) + Lc(x34)

Lev(d3) = Lc(x1) + L(d1) + Lc(x13)

Leh(d4) = Lc(x3) + L(d3) + Lc(x34)

Lev(d4) = Lc(x2) + L(d2) + Lc(x24)

Leh(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)

Page 258: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

9 Turbokoder

256 © Studentlitteratur

09 kap9 turbokoder.fm 22 september 2004 10.00:11 sida 256 av 270

I ekvationerna (9.35) till (9.38) har approximationerna i (9.22)använts.

Nästa steg blir att utföra de ”vertikala” beräkningarna med använd-

ning av ekvationerna för : (9.28), (9.30), (9.32) och (9.34).

Nu kan värdena på L(d) ”förfinas” genom att använda de nyaL(d)-värdena som utvunnits vid de första ”horisontella” beräkning-arna i (9.35) till och med (9.38):

(9.39)

(9.40)

(9.41)

. (9.42)

De nu gjorda beräkningarna, som ger utgångsvärdena för den förstaiterationen, motsvarar ett ”horisontellt” och ett ”vertikalt” avkod-ningssteg och är sammanfattade i Tabell 9.3.

Varje avkodningssteg förbättrar de ursprungliga LLR-värdena för deefter kanalen uppmätta signalerna. Detta framgår också genom attman med hjälp av ekvation (9.13) beräknar LLR-värdena för bitarnafrån avkodarutgången. De ursprungliga LLR-värdena plus de ”hori-sontella” extra LLR-värdena, men ännu utan inverkan av de ”verti-kala” extra termerna, ger de förbättringar i uppskattningen som fram-går av Tabell 9.4 a. Med inverkan av även de ”vertikala” termerna fåsde värden som visas i Tabell 9.4 b.

1,5 0,1 – 0,1 – 1,5 0,1 – 0,1

0,2 0,3 – 0,3 – 0,2 – 1,4 1,0

a b c

Tabell 9.3a. Ursprungliga Lc(xk)-mätningar, b. efter den

första horisontella avkodningen, c. efter den första vertikala avkodningen.

Lev(d)

Lev(d1) = (0,2 – 0,3) + 6,0 = 0,1 = nytt L(d1)

Lev(d2) = (0,3 – 0,2) + 1,0 = – 0,1 = nytt L(d2)

Lev(d3) = (1,5 – 0,1) + 6,0 = – 1,4 = nytt L(d3)

Lev(d4) = (0,1 – 1,5) + 1,0 = 1,0 = nytt L(d4)

Leh(d)

Lev(d)

Page 259: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

9.2 Likelihood-begreppet

© Studentlitteratur 257

09 kap9 turbokoder.fm 22 september 2004 10.00:11 sida 257 av 270

Det framgår att man med endast den horisontella paritetsbiten får enriktig hård avkodning ut från avkodaren men dock med mycket lågtillförlitlighet vad beträffar databitarna d3 och d4. Tillförlitligheten iavkodarens LLR-värden ökas då även LLR-värden från de extra”vertikala” LLR-värdena tillförs.

För att se om ytterligare en ”horisontell” och ”vertikal” avkodnings-iteration ger någon signifikant ändring av resultaten använder vi ossännu en gång av ekvationerna (9.27) till och med (9.34). Vi börjar

med den andra ”horisontella” beräkningen av och vi använderde nya L(d)-värdena som bestämdes vid de första ”vertikala” beräk-ningarna i (9.39) till (9.42):

(9.43)

(9.44)

(9.45)

. (9.46)

Vi fortsätter sedan med den andra ”vertikala” beräkningen av med användande av de senaste nya L(d)-värdena erhållna genomekvationerna (9.43) till och med (9.46):

(9.47)

(9.48)

(9.49)

1,4 – 1,4 1,5 – 1,5

– 0,1 0,1 – 1,5 1,1

a b

Tabell 9.4a. Med hjälp av förbättrade LLR-värden, b. Med

hjälp av förbättrade LLR-värden.

Leh(d)

Leh(d) + Lev(d)

Leh(d)

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)

Lev(d)

Lev(d1) = (0,2 – 1,3) + 6,0 = 1,1 = nytt L(d1)

Lev(d2) = (0,3 + 1,2) + 1,0 = – 1,0 = nytt L(d2)

Lev(d3) = (1,5 + 0) + 6,0 = – 1,5 = nytt L(d3)

Page 260: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

9 Turbokoder

258 © Studentlitteratur

09 kap9 turbokoder.fm 22 september 2004 10.00:11 sida 258 av 270

(9.50)

Resultatet av den slutliga avkodningen efter den andra fullständigaiterationen visas i Tabell 9.3d där det framgår att en mindre förbätt-ring uppnåtts jämfört med motsvarande resultat efter bara en itera-tion, se Tabell 9.4 b.

9.3 Komponentkodare för turbokodningDe i avsnitt 9.2 presenterade metoderna för sammanlänkning, itera-tion och mjuka beslut använda på en produktkod kan tillämpas påturbokodaren enligt Figur 9.1 som är uppbyggd på följande sätt:

En -takts icke-systematisk faltningskod med generatorsekvenserna

g(0) = (1 1 1 1 1) och g(1) = (1 0 0 0 1) och spannet (constraint length)K = 5 enligt Figur 9.5 lämnar ett ändligt impulssekvenssvar (FIR == Finite Impulse Response). Vid stora Eb/N0-värden har sådanaicke-systematiska kodare bättre prestanda än motsvarande (sammaminnesstorlek) systematiska kodare medan det vid låga Eb/N0-värdenvanligen är tvärtom.

1,5 0,1 0 – 1,6 1,1 – 1,0 2,6 – 2,5

0,2 0,3 – 1,3 1,2 – 1,5 1,0 – 2,6 2,5

a b c d

Tabell 9.5a. Ursprungliga Lc(x)-mätningar, b. efter den andra

horisontella avkodningen, c. efter den andra vertikala

avkodningen, d. Resultatet efter den andra iterationen.

Leh(d)

Lev(d)

L(d) = Lc(x) + Leh(d) + Lev(d)

Lev(d4) = (0,1 – 1,6) + 1,0 = 1,0 = nytt L(d4)

12

Page 261: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

9.3 Komponentkodare för turbokodning

© Studentlitteratur 259

09 kap9 turbokoder.fm 22 september 2004 10.00:11 sida 259 av 270

Figur 9.5 Icke-systematisk faltningskodare (NSC = NonSystema-tic convolutional Code).

Berrou, Glavieux och Thitmajshima har för komponentkodarna i tur-bokodare föreslagit systematiska återkopplade faltningskodare(RSC = Recursive Systematic convolutional Codes) som har oändligtimpulssekvenssvar (IIR = Inifinite Impulse Response). RSC-kodaremed hög kodtakt har bättre prestanda än de bästa NSC-kodarna och

detta oberoende av nivån på Eb/N0-kvoten. En -takts RSC-kodare,

se Figur 9.6 bildas av en NSC-kodare, se Figur 9.5, genom återkopp-ling medan en av de två utgångarna (uk eller vk) sätts lika med dk.

Figur 9.6 Rekursiv systematisk faltningskodare (RSC = RecursiveSystematic convolutional Code).

+

+

vk

uk

12

+

vk

uk

+

dk

Page 262: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

9 Turbokoder

260 © Studentlitteratur

09 kap9 turbokoder.fm 22 september 2004 10.00:11 sida 260 av 270

Spaljéstrukturen för RSC-kodaren i Figur 9.6 är densamma som förNSC-kodaren i Figur 9.5 och deras dfri är lika stora. Däremot är derasutsekvenser uk och vk olika för likadana insekvenser dk. Skillnadenbestår i att positionerna för ettorna i utsekvensen är olika medan vikt-distributionen, d.v.s. antalet ettor, är densamma. Turbokodaren enligtFigur 9.1 består av två sådana RSC-kodare sammanlänkade via enslumpinterleaver.

9.3.1 Återkopplad turboavkodare

Viterbis avkodningsmetod är optimal i betydelsen att minimera san-nolikheten för sekvensfel. Däremot kan den inte lämna ut aposteriori-sannolikheten (APP = A Posteriori Probability) för varje avkodad bit.För detta ändamål används i stället en algoritm av Bahl5 som modi-fierats av Berrou6 för användning vid avkodning av RSC-koder.

APP för en avkodad databit, dk, kan bestämmas med hjälp av den

simultana sannolikheten som definieras enligt

(9.51)

där Sk är tillståndet vid tidpunkten k och är en mottagen sekvenssom har längden N (från k = 1 till k = N).

APP för en avkodad databit, dk (dk = 0 eller dk = 1), definieras enligt

(9.52)

LLR-funktionen definieras nu som logaritmen för kvoten mellanAPP-värdena för dk = 0 och dk = 1 på följande sätt:

5 L.R. Bahl, J. Cocke, P. Jelinek och J. Raviv, ”Optimal Decoding of LinearCodes for Minimizing Symbol Error Rate”, IEEE Transactions of InformationTheory, vol. IT-20, March 1974, pp. 284-87.6 se fotnot 1.

Λki (m)

Λki (m) = P dk = 1, Sk = m |R1

N

R1N

P dk = i |R1N = Λk

i (m)∑m

, i = 0,1

Page 263: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

9.3 Komponentkodare för turbokodning

© Studentlitteratur 261

09 kap9 turbokoder.fm 22 september 2004 10.00:11 sida 261 av 270

(9.53)

Avkodaren fattar ett beslut genom att jämföra med ett tröskel-värde enligt

(9.54)

För en systematisk kod kan för varje avkodad databit, ,

beskrivas som en summa av LLR för ut från detektorn och för deövriga LLR som genererats av avkodaren (extravärden) - seuttrycken (9.11) och (9.12).

Betrakta detekteringen av en datasekvens, störd av brus, som kom-mer från kodaren i Figur 9.6. Avkodaren visas i Figur 9.7

Figur 9.7 Turboavkodare med återkoppling.

L dk = log Λk

1(m)∑m

Λk0(m)∑

m

L dk

dk = 1 om L dk > 0

dk = 0 om L dk < 0

L dk dk

dk

avko-dare 1,

avko-inter-leaving

deinter-leaving

deinter-leaving

16 till-stånd

dare 2,16 till-stånd

demultiplexor

avkodadutsekvens

L2 dk

Le 2 dk

dk

L1 dk

y2k

L1 dn

y1k

yk

xk

zk

återkopplingsslinga

Page 264: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

9 Turbokoder

262 © Studentlitteratur

09 kap9 turbokoder.fm 22 september 2004 10.00:11 sida 262 av 270

För en diskret minneslös gaussisk kanal genom vilken sänds signalermed binär modulation, utgörs insignalerna på avkodaringången av ettpar, Rk, stokastiska variabler, xk och yk. Omvandlingen från bit (dk

och vk kan vara 0 eller 1) till bipolär form (xk och yk kan vara – 1 eller+ 1) anges på följande sätt:

xk = (2dk – 1) + ik (9.55)

yk = (2vk – 1) + qk (9.56)

där ik och qk är två oberoende stokastiska (brus)variabler med samma

varians σ2.

Den redundanta informationen, yk, demultiplexas och sänds till avko-dare 1 som y1k då vk = v1k och till avkodare 2 som y2k då vk = v2k - seFigur 9.7.

När den redundanta informationen från någon av kodarna C1 eller C2- se Figur 9.1 - inte sänds, sätts motsvarande avkodaringång till noll.Lägg märke till att interleavern efter avkodare 1 har en struktur somär likadan som den mellan de två kodarna, C1 och C2, i sändardelen.Detta beror på att informationen som behandlas av avkodare 1 är denicke-interleavade utsignalen från C1 (förvanskad av brus).

Omvänt är informationen som behandlas av avkodare 2 den brusför-vanskade utsignalen från C2, vars ingångssignal är densamma sompåförs C1:s ingång, men permuterad av interleavern. Avkodare 2använder sig av utsignalen från avkodare 1 förutsatt att data i dennautgångssignal är ordnad i samma selvens som data i ingångssignalentill C2.

9.3.2 Avkodning med återkoppling

Uttrycket (9.12) för LLR för utsignalen vid tidpunkten k när aprioriLLR L(dk) är satt till noll och de två möjliga ingångsdatabitarna ärlika sannolika kan skrivas:

Page 265: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

9.3 Komponentkodare för turbokodning

© Studentlitteratur 263

09 kap9 turbokoder.fm 22 september 2004 10.00:11 sida 263 av 270

(9.57)

där är utgångssignalens mjuka beslut och Lc(xk) är LLR avkanalmätningen härrörande från kvoten mellan likelihoodfunktio-nerna p(xk|dk = i) för den diskreta minneslösa kanalen.

är en funktion av den redundanta informationenoch utgörs av den extrainformation som erhålls från avkodaren ochberor inte av ingångssignalen, xk, på avkodaren. Det brus som för-

vanskar Lc(xk) och skall idealt vara okorrelerat7. Om det näm-

ligen är okorrelerat kan användas som en ny observation av dkav en annan avkodare i en iterativ process.

Använd nu naturliga logaritmer i uttrycket (9.57) för den gaussiskakanalen för att beskriva kanalens LLR, Lc(xk), på samma sätt som iuttrycket (9.19):

(9.58)

Båda avkodarna 1 och 2 använder den modifierade Bahl-algoritmen8.

Om insignalerna och y2k in på avkodare 2 är oberoende, kan

LLR ut från avkodare 2 skrivas som:

(9.59)

där

7 Hur pass liten korrelationsgraden mellan de två brussignalerna är bestäms avhur pass ”listigt” interleavern är konstruerad.8 se Fotnot 1.

L dk = Lc(xk) + Le dk = log p(xk|dk = 1)p(xk|dk = 0)

+ Le dk

L dk

Le dk = L dk xk = 0

Le dk

Le dk

Lc(xk) = ln p(xk|dk = + 1)p(xk|dk = – 1)

=

= – 12

xk – 1

σ2 + 1

2 xk + 1

σ2 = 2

σ2xk

L1 dk

L2 dk

L2 dk = f L1 dk + Le2 dk

Page 266: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

9 Turbokoder

264 © Studentlitteratur

09 kap9 turbokoder.fm 22 september 2004 10.00:11 sida 264 av 270

(9.60)

och f[ ] anger ett funktionssamband.

Extrainformationen från avkodare 2 är en funktion av sek-

vensen . Eftersom beror av observationen , är

extrainformationen korrelerad med observationerna xk, y1k.

Ändå, ju större |n – k| är, desto svagare korrelerad är medobservationerna xk och yk. Följaktligen är, p.g.a interleavingen mel-

lan avkodare 1 och 2, extrainformationen endast svagt korre-lerad med observationerna xk, yk och därför kan dessa observationeranvändas för att avkoda dk.

fungerar som en diversitetseffekt i en iterativ process. I

allmänhet har samma tecken som dk. Därför kan för-bättra varje avkodad bits LLR.

9.3.3 Exempel på prestanda vid turboavkodning

Berrou, Glavieux och Thitmajshima har utfört Monte-Carlo-simule-

ringar9 med en 1/2-takts, K = 5 kodare med generatorsekvensernaG1 = (11111) och G2 = (10001) och parallell sammanlänkning. Inter-

leavern är uppbyggd som en kvadratisk 256 256 matris10 medblocklängden 65.536. Efter 18 iterationer är bitfelssannolikheten

(BER = Bit Error Rate) mindre än 10– 5 vid signalbrusförhållandet

- se Figur 9.8.

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.

L1 dk = 2σ2

xk + Le1 dk

Le2 dk

L1 dn n ≠ k L1 dn R1N

Le2 dk

L1 dn

Le2 dk

zk = Le2 dk

Le2 dk Le2 dk

EbN0 dB

= 0,7

Page 267: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

9.3 Komponentkodare för turbokodning

© Studentlitteratur 265

09 kap9 turbokoder.fm 22 september 2004 10.00:11 sida 265 av 270

Figur 9.8 Bitfelshalt vid avkodning efter 1, 2, 3, 6 och 18 iteratio-ner för en turbokod genererad med kodaren i Figur 9.6.Kodens relativa takt = 1/2; interleaving: 256 x 256.

Observera att när man närmar sig Shannon-gränsen, – 1,6 dB, går

den erforderliga bandbredden mot oändligheten11 medan kapaciteten

11 se t.ex. C. Frank: Telekommunikation, Informationsöverföring & Överfö-ringssystem, Studentlitteratur, 2004.

0 1 2 3 4 5 6

10– 1

10– 2

10– 3

10– 4

10– 5

10– 6

bitfe

lsha

lt (B

ER

)

0 = teoretiskgräns

Eb

N0 dB

okodat

123618

Page 268: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

9 Turbokoder

266 © Studentlitteratur

09 kap9 turbokoder.fm 22 september 2004 10.00:11 sida 266 av 270

(kodtakten) går mot noll. Av den anledningen använder många förfat-

tare BER = 10– 5 och som Shannons gränsreferens för

1/2-taktskodare och följaktligen når denna kod Shannons gränsrefe-

rens så när som på 0,7 dB12.

9.4 Historik turbokoderVid 1993 IEEE International Conference on Communication i Gen-eve, Schweiz påstod de två franska elektronikprofessorerna ClaudeBerrou och Alain Glavieux att de hade uppfunnit en kodningsmetodsom kunde ge praktiskt taget felfri kommuniktion vid datahastigheteroch sändareffektverkningsgrader bortom vad de flesta experter ansågvara möjligt.

Berrou och Glavieux hävdade att datahastigheten kunde fördubblasmed bibehållen effekt eller alternativt att datahastigheten kunde bibe-hållas med halverad effekt i förhållande till vad som gällt ditintills.

Få kommunikationsingenjörer trodde på deras resultat. Berrou ochGlavieux som vara professorer vid Ecole Normale Supérieure desTelecommunications de Bretagne i Brest, Frankrike var okända fors-kare. De måste ha gått helt vilse i sina beräkningar ansåg man. Vad depåstod var så uppseendeväckande löjligt att många forskare intebrydde sig om att läsa deras ”paper”.

Men, otroligt nog, visade det sig snart att deras påståenden stämde,när andra forskare började göra om deras försök. Berrou och Gla-vieux hade rätt och deras felkorrigeringsmetod, sedermera döpt tillturbokod, har revolutionerat metoderna för felkorrigerande kodning.

12 Se även Sae-Young Chung, G. David Forney, Thomas J. Richardson, andRüdiger Urbanke: On the Design of Low-Density Parity-Check Codes within0.0045 dB of the Shannon Limit, IEEE Communications Letters. Vol. 5 No. 2February 2001.

EbN0 dB

= 0

Page 269: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

9.4 Historik turbokoder

© Studentlitteratur 267

09 kap9 turbokoder.fm 22 september 2004 10.00:11 sida 267 av 270

Till att börja med användes turbokoder i satellitlänkar och vid”deep-space” rymdkommunikation. Numera tränger turbokodtekni-ken in i de flesta kommunikationstillämpningar.

Turbokoder har kommit i frontlinjen inom kommunikationsforsk-ningen och hundratals forskningsgrupper arbetar med dem vid före-tag och universitet över hela världen.

Några av de större företag som forskar om turbokoder är: FranceTelecom, NTTDoCoMo, Sony, Nec, Lucent, Samsung, Ericsson,Nokia, Motorola och Qualcom.

Hårdvaru- och chiptillverkare: Broadcom, Conexant, Comtech AHA,STMicroelectronics, Turboconcept och iCoding.

När Berrou erinrar sig de uppseendeväckande dagarna i konventcen-tret i Geneve 1993 kan han se många delegater som försökte förståhans ”paper” och efter sitt föredrag omringades Berrou och Glavieuxav många som ville få mer förklaringar eller bara skaka hand meddem. Det var tydligen inte alla som ansåg dem galna.

Det som framförallt ledde till Berrous och Glavieux genombrott varatt de på ett tidigt stadium i sin forskning om kodningsmetoder förvå-nades över att ett i elektroniksammanhang vanligt koncept - åter-koppling - inte användes i digitala mottagare. I förstärkare är det van-ligt att en bråkdel av utsignalen återkopplas till ingången för attuppnå stabilitet och de tänkte att återkoppling borde fungera vid kod-ning också.

De första experimenten gjordes med datorsimuleringar 1991 och närresultaten visade sig blev de helt överväldigade och ”Varje dag frå-gade jag mig själv vilka fel som möjligen kunde finnas i programva-ran” säger Berrou.

Efter att ha kontrollerat att resultaten var riktiga tog de patent påmetoden i Frankrike, Europa och USA (inte i Asien, där det är frittfram att använda den).

Det var France Telecom, deras huvudsponsor, som bad Berrou atthitta på ett kommersiellt gångbart namn på uppfinningen. Han kom

Page 270: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

9 Turbokoder

268 © Studentlitteratur

09 kap9 turbokoder.fm 22 september 2004 10.00:11 sida 268 av 270

på namnet en dag när han tittade på en biltävling i TV. Han observe-rade att den nyuppfunna kodningsmetoden som använder utsignalenför att förbättra avkodningsproceduren på ett liknande sätt som ettturboaggregat i en bil använder avgaserna för att pressa in mer luft imotorn och förbättra förbränningen - därmed var namnet givet: ”Tur-bokoder”!

En konkurrent till turbokoder är LDPC (Low-Density ParityCheck)-koder uppfunna av Robert Gallager 1960 men i stort settbortglömda ända tills nu. Anledningen till att de glömdes bort var attde var alltför komplicerade för dåtidens teknologi. En fördel medLDPC i förhållande till turbokoder är att alla patent har löpt ut.

9.5 Appendix för uttrycket (9.21)Enligt (9.21) påstås att

(9.61)

Det gäller att

(9.62)

d.v.s.

(9.63)

(9.64)

som ger att

(9.65)

L(d1) + L(d2) L(d1 ∆ d2) = ln eL(d1) + eL(d2)

1 + eL(d1) + L(d2)

L(d) = ln P(d = + 1)P(d = – 1)

= ln P(d = + 1)

1 – P(d = + 1)

eL(d) = P(d = + 1)

1 – P(d = + 1)

eL(d) – eL(d) · P(d = + 1) = P(d = + 1)

P(d = + 1) = eL(d)

1 + eL(d)

Page 271: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

9.5 Appendix för uttrycket (9.21)

© Studentlitteratur 269

09 kap9 turbokoder.fm 22 september 2004 10.00:11 sida 269 av 270

och

(9.66)

Vi får nu

(9.67)

P(d = – 1) = 1 – P(d = + 1) = 1 – eL(d)

1 + eL(d) = 1

1 + eL(d)

L(d1 ∆ d2) = ln P(d1 = + 1)P(d2 = – 1) + 1 – P(d1 = + 1) 1 – P(d2 = – 1)

P(d1 = + 1)P(d2 = + 1) + 1 – P(d1 = + 1) 1 – P(d2 = + 1) =

= ln

eL(d1)

1 + eL(d1) · 1

1 + eL(d2) + 1

1 + eL(d1) · eL(d2)

1 + eL(d2)

eL(d1)

1 + eL(d1) · eL(d2)

1 + eL(d2) + 1

1 + eL(d1) · 1

1 + eL(d2)

=

= ln

eL(d1) + eL(d2)

1 + eL(d1) 1 + eL(d2)

eL(d1)eL(d2) + 11 + eL(d1) 1 + eL(d2)

= ln eL(d1) + eL(d2)

1 + eL(d1)eL(d2)

Page 272: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

09 kap9 turbokoder.fm 22 september 2004 10.00:11 sida 270 av 270

Page 273: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

©

Studentlitteratur

271

10 kap10 Felupptäck koder.fm 21 september 2004 21.08:05 sida 271 av 288

10 Felupptäckande koder för system med returkanal

Felkorrigering i de hittills beskrivna systemen, FEC (Forward ErrorCorrection), utförs med hjälp av de paritetscheckbitar som ingår ikodorden. Om man har tillgång till en returkanal förenklas felkorri-geringsmetodiken genom att vid felupptäckt bara begära omsändningav det felaktiga kodordet, ARQ (Automatic Repeat reQuest).

”Rena” ARQ-protokoll (pure ARQ-protocol) introducerades i sam-band med att man började använda checkbitar vid digital kommuni-kation. Förbättringar av de rena ARQ-protokollens prestanda komomkring 1960 med typ-I hybrid-ARQ-protokollen som förenar förde-larna hos FEC- och ARQ-metoden. Omkring mitten av 70-talet komså typ-II hybrid-ARQ-protokollen som är en typ av adaptiva proto-koll, som ändrar sig efter kanalens överföringsegenskaper.

I det följande skall principerna för de rena ARQ-protokollen ochtyp-I och typ-II hybrid-ARQ-protokollen beskrivas.

10.1 Rena ARQ-protokoll

I det rena ARQ-protokollet förutsätts framkanalen vara utsatt förstörningar medan returkanalen däremot är störningsfri. Från en linjärblockkod

C

tas kodord med längden

n

och meddelandelängden

k,

där

C

alltså har dimensionen

k

och kan upptäcka alla felaktiga kodord

som inte är giltiga kodord, d.v.s. 2

n

– 2

k

felmönster kan upptäckas.

Detta dokument har framställts med FrameMaker 4.0.4

Page 274: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

10 Felupptäckande koder för system med returkanal

272

©

Studentlitteratur

10 kap10 Felupptäck koder.fm 21 september 2004 21.08:05 sida 272 av 288

Figur 10.1 Binär symmetrisk kanal med övergångssannolikhet förbitfel = p.

De oftast använda koderna är CRC-koder (se avsnitt 4.6 ).CRC-kodare/avkodare är lätta implementera och kan användas förpaket (se fotnot 2) av varierande längd.

En övre gräns för sannolikheten för oupptäckta fel

P

e

är i medeltalför linjära systematiska (

n,k

)-koder

(10.1)

där

p

är övergångssannolikheten för bitfel i en binär symmetriskkanal (BSC), se Figur 10.1

Bland de linjära systematiska (

n,k

)-koderna har man lyckats urskiljanågra med lägre övre gräns

1

än uttrycket (10.1). En snävare övregräns och därmed mindre sannolikhet för oupptäckta fel är

(10.2)

Koder som satisfierar olikheten (10.2) indelas i fyra klasser:

Klass 1:

Linjära koder med jämn vikt och längd med minimidis-tansen

d

min

vars duala koder (se Teorem 3.1) har minimidistan-sen

min

med sambandet

1

T.Kasami, T.Kløve and S.Lin,

”Linear Block Codes for Error Detection”

,IEEE Trans. on Information Theory, Vol. IT-29, pp. 131-137, Jan. 1983.

1 – p

1 – p

p

p

0

1

0

1

BSC

Pe ≤ 2k – 12n – 1

1 – 1 – p n för 0 ≤ p ≤ 12

Pe ≤ 2– (n – k) 1 + 1 – 2p n – 2 1 – p n för 0 ≤ p ≤ 12

Page 275: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

10.1 Rena ARQ-protokoll

©

Studentlitteratur

273

10 kap10 Felupptäck koder.fm 21 september 2004 21.08:05 sida 273 av 288

(10.3)

I klass 1 ingår utsträckta (extended) Hamming- och Golay-koder.

Klass 2:

Linjära koder med jämn vikt och udda längd med minimi-distansen

d

min

vars duala koder har minimidistansen

min

medsambandet

(10.4)

I klass 2 ingår primitiva BCH-koder (se Definition 5.2) med minimi-distansen 6 och längden 2

m

– 1 där

m

5. Dessutom måste faktorn

x

+ 1 ingå i generatorpolynomet.

Klass 3:

Här ingår primitiva BCH-koder med minimidistansen 8och längden

n

= 2

m

där

m

är udda och

m

5.

Klass 4:

Här ingår primitiva BCH-koder med minimidistansen 8och längden

n

= 2

m

– 1 där

m

är udda och

m

5.

Kodare och avkodare för koder tillhörande dessa 4 klasser har sammastruktur som motsvarande för CRC-koder.

10.1.1 Prestanda för rena ARQ-protokoll

Prestanda för ARQ-protokoll anges dels genom

P

(

E

) som är sanno-likheten för paketfel

2

(Probability of Error), d.v.s. den relativa ande-len paket som innehåller fel och som mottagaren inte upptäcker ochdels av genomströmningen,

η

, som är det genomsnittliga antaletkodade

n

-bits datapaket som accepteras av mottagaren under likalång tid som det tar för sändaren att sända ett enda

k

-bits meddelande(jämför med

R

=

k/n

för FEC).

Sannolikheten för paketfel

Vid avkodning av ett ankommande paket i mottagaren kan tre situa-tioner uppstå med följande sannolikheter:

2

Vid överföring buntas ett antal kodord ihop så att ett förutbestämt antal bitarsammansätts till paket. Varje överförd ram (frame) innehåller ett antal paket.

d´min ≥ n – dmin – 1 n – 1 + 1

2

d´min ≥ n – dmin – 1 n

2

Page 276: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

10 Felupptäckande koder för system med returkanal

274

©

Studentlitteratur

10 kap10 Felupptäck koder.fm 21 september 2004 21.08:05 sida 274 av 288

Sannolikheten för noll (= inga) fel:

P

if

Sannolikheten för upptäckbara fel:

P

uf

Sannolikheten för icke upptäckbara fel (error):

P

e

där

P

if

+

P

uf

+

P

e

= 1

Sannolikheten för paketfel är

(10.5)

Genomströmningen

Genomströmningen,

η

,

är starkt beroende av antalet gånger ett paketmåste omsändas innan det accepteras av mottagaren.

Låt

T

o

vara det genomsnittliga antalet gånger ett paket måste omsän-das (inklusive den första överföringen) innan det accepteras. Det gäl-ler då:

T

o

= 1 · (1 –

P

uf

) + 2(1 –

P

uf

)

P

uf

+ 3(1 –

P

uf

) + … = (10.6)

Genomströmningen beror också till stor del på hur omsändningspro-tokollet är utformat. De tre grundläggande omsändningsprotokollenär:

• Stanna och vänta ARQ (Stop-and-Wait, SW-ARQ)• Gå tillbaka

N

steg ARQ (Go-Back-

N

, GBN-ARQ)• Selektiv omsändning ARQ (Selective Repeat, SR-ARQ)

SW-ARQ

Vid SW-ARQ sänds ett paket från sändaren. Sändaren väntar sedanpå kvittering (ACKnowledgement, ACK) från mottagaren om pake-tet bedömts vara felfritt. Alternativt får sändaren en omsändningsbe-gäran (Retransmission reQuest, RQ eller Not AcKnowledged, NAK)om paketet innehållit ett upptäckbart felmönster. Under den tid, vän-tetiden, sändaren väntar på ACK/NAK är den overksam, se Figur10.2.

P(E) = PePif + Pe

= Pe1 – Puf

Puf2 1

1 – Puf

Page 277: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

10.1 Rena ARQ-protokoll

©

Studentlitteratur

275

10 kap10 Felupptäck koder.fm 21 september 2004 21.08:05 sida 275 av 288

.

Figur 10.2 Stanna och vänta ARQ.

Väntetidens längd beror av1) paketets överföringstid: Sändare

mottagare (

λ

1

s)2) mottagarens beslutstid: ACK/NAK (

δ

s)3) överföringstid för ACK/NAK : Mottagare

sändare (

λ

2

s)

Antalet bitar, Γ, som skulle ha kunnat överföras under väntetidenunder förutsättning att bitöverföringstakten är D bit/s är

Γ = D(λ1 + δ + λ2) (10.7)

Utgå från att det krävs To omsändningar för mottagaren att accepteraett k-bits meddelande. Vid varje omsändning överförs ett n-bits paketåtföljt av en väntetid. Detta medför att det för att överföra ett k-bitsmeddelandepaket åtgår To(n + Γ) bitar.

Genomströmningen för SW-ARQ är därför

(10.8)

där R = k/n är den använda kodens relativa takt.

Fördelen med SW-ARQ är den enkla implementeringen - inga buf-fertar för paket i vare sig sändare eller mottagare. Nackdelen ärnaturligtvis den dåliga genomströmningen på grund av väntetiderna.

1sändapaket

1mottagnapaket

överföring AC

K 1

2

2

felupptäcktN

AK

2

2

omsändning

2

AC

K 2

3

3

väntetid

ηSW = kTo n + Γ

= kn

1 – Puf1 + Γn

= R · 1 – Puf

1 + Γn

Page 278: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

10 Felupptäckande koder för system med returkanal

276 © Studentlitteratur

10 kap10 Felupptäck koder.fm 21 september 2004 21.08:05 sida 276 av 288

Figur 10.3 GBN-ARQ med N = 5.

Protokollet har viss användning i multiprocessorsystem vid överfö-ring mellan processorer.

GBN-ARQ

En bättre genomströmning kan uppnås genom att ha viss buffertkapa-citet i sändaren. Med GBN-ARQ-protokollet sänds paket i en jämnström. När mottagaren upptäcker ett fel i ett mottaget paket ignorerarden de senast anlända paketen från och med det felaktiga och begäromsändning från och med det felaktiga, se Figur 10.3. Fördelen meddetta arrangemang är att mottagaren inte behöver ha något buffert-minne.

Go-Back-N betyder att sändaren går tillbaka i buffertminnet N paketoch börjar omsändningen av paket därifrån. Storleken på N är enfunktion av λ1, δ och λ2. N är det minsta hela antal paket som inne-håller åtminstone Γ bitar. Med en överföringshastighet på D bit/s är

(10.9)

Varje omsändning innehåller det felaktiga paketet + (N – 1) efterföl-jande paket. Det genomsnittliga antalet omsändningar (inklusive denförsta överföringen) innan paketet accepteras är därför

1sändapaket

1mottagnapaket

överföring AC

K 1

6

6

felupptäcktN

AK

3

6

omsändning

6

AC

K 6

”round-trip”

2 3 4 5

2 3 4 5

fördröjning

7 3 4 5

AC

K 2

NA

K 3

gå tillbaka 5

NA

K 3

NA

K 3

NA

K 3

7 3

7

AC

K 3

4 5

8

7 8

AC

K 4

9 10

9 10

AC

K 5

N = D λ1 + δ + λ2

n

Page 279: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

10.1 Rena ARQ-protokoll

© Studentlitteratur 277

10 kap10 Felupptäck koder.fm 21 september 2004 21.08:05 sida 277 av 288

TGBN = 1 · (1 – Puf) + (N + 1)(1 – Puf)Puf + (2N + 1)(1 – Puf) +

+ … = (10.10)

och genomströmningen blir därför med uttrycket (10.10) insatt:

(10.11)

I uttrycket (10.11) bör man speciellt lägga märke till att N är viktadmed Puf medan Γ/n i uttrycket (10.8) inte har någon viktning.GBN-protokollet är därför inte lika känsligt för överföringsfördröj-ningar som SW-protokollet.

SR-ARQ

En ännu bättre genomströmningsförmåga kan uppnås med minnes-buffert både i sändare och mottagare. På samma sätt som i fallet medGBN-protokollet sänds en kontinuerlig ström av paket. Däremotutför sändaren omsändning endast av det felaktigt mottagna paketet,se Figur 10.4. Genomströmningen kan därför tecknas med hjälp avuttrycket (10.6)

Figur 10.4 SR-ARQ.

Puf2

1 + Puf N – 11 – Puf

ηGBN = kn · 1TGBN

= R · 11 + Puf N – 1

1 – Puf

= R · 1 – Puf

1 + Puf N – 1

ηSR = kn · 1To

= R 1 – Puf

1sändapaket

1mottagnapaket

överföring AC

K 1

6

6

felupptäckt

AC

K 6

omsändning

AC

K 1

0

2 3 4 5

2 3 4 5

7 3 8 9

AC

K 2

NA

K 3

AC

K 4

AC

K 5

NA

K 7

7 3

7

AC

K 3

8 9 7

AC

K 8

13

11

AC

K 9

10

felupptäckt

omsändning

10

11 12

13 12

14 15

AC

K 1

1

AC

K 7

Page 280: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

10 Felupptäckande koder för system med returkanal

278 © Studentlitteratur

10 kap10 Felupptäck koder.fm 21 september 2004 21.08:05 sida 278 av 288

Exempel 10.1 Överföring via satellit.

Vid överföring via en geosynkron satellit, i vilken finns en transponder medöverföringshastigheten 64 kbit/s, mellan Sverige och USA kan fördröjningenλ1 + δ + λ2 uppskattas till 0,8 s. Överföringskanalen modelleras som en binär-symmetrisk kanal med övergångssannolikheten för bitfel = p, se Figur 10.1.Meddelanden kodas med den utsträckta (24,12,8)-Golay-koden (i klass 1) meddmin = 8. Golay-koden har följande viktfördelning

Oupptäckbara fel uppstår om nollkodordet vid överföringen ändras till något avdessa andra giltiga kodord, d.v.s. sannolikheten för oupptäckbara fel, Pe, är

Pe = 759p8(1 – p)16 + 2576p12(1 – p)12 + 759p16(1 – p)8 + p24

Sannolikheten för upptäckbara fel (= sannolikheten för omsändning), Puf, ärlika med sannolikheten för ett eller flera fel minus sannolikheten för oupptäck-bara fel:

Puf = 1 – (1 – p)24 – Pe

Antalet bitar, Γ, som kunde ha transmitterats under väntetiden är

Γ = D (λ1 + δ + λ2) = 64 · 103 · 0,8 = 51200

Antalet paket, N, för ett GBN-protokoll är

Genomströmningen som funktion av övergångssannolikheten för fel för SW-,GBN- och SR-protokollen visas i Figur 10.5.

Lägg märke till att genomströmningen reduceras avsevärt för GBN-protokollet

i förhållande till SR-protokollet i området 10– 4 < p < 10– 2 medan för lägre vär-den på p ingen vinst görs med att gå över till det mer komplicerade SR-proto-kollet. SW-protokollet är på grund av de overksamma väntetiderna mellan varjeöverföring mycket långsamt och en noggrannare upplösning visar att genom-

strömningen som högst når c:a 23 · 10– 5 vid p ≈ 10– 3, se Figur 10.6.

vikt 0 8 12 16 24

antal 1 759 2576 759 1

N = 51200 bitar24 bitar/paket

= 2134

Page 281: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

10.1 Rena ARQ-protokoll

© Studentlitteratur 279

10 kap10 Felupptäck koder.fm 21 september 2004 21.08:05 sida 279 av 288

Figur 10.5 Genomströmning som funktion av lg p för SW-ARQ, GBN-ARQoch SR-ARQ till Exempel 10.1.

Figur 10.6 Genomströmning som funktion av lg p för SW-ARQ till Exempel10.1.

Exempel 10.2 Mikrovågslänk

Det kan vara intressant att studera ett fall där nackdelarna för SW-protokolletinte är så uppenbara. Antag att vi vill sätt upp en mikrovågslänk på 1 Mbit/smellan två punkter på ett avstånd av 6 km. Vi använder samma utsträckta Go-lay-kod (24,12,8) som i föregående exempel.

-10 -8 -6 -4 -2 0

0,1

0,2

0,3

0,4

0,5

GBN-ARQ SR-ARQ

SW-ARQ

geno

mst

röm

ning

lg p

-5 -4 -3 -2 -1 0

5ÿ10–5

10ÿ10–5

15ÿ10–5

20ÿ10–5

25ÿ10–5

lg p

geno

mst

röm

ning

Page 282: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

10 Felupptäckande koder för system med returkanal

280 © Studentlitteratur

10 kap10 Felupptäck koder.fm 21 september 2004 21.08:05 sida 280 av 288

Figur 10.7 Genomströmning som funktion av lg p för SW-ARQ, GBN-ARQoch SR-ARQ till Exempel 10.2.

Antalet bitar, Γ, som kunde ha transmitterats under väntetiden är

om vi försummar δ.

Genomströmningen i detta fall kan studeras i Figur 10.7. Lägg märke till denobetydliga förbättringen för SR-protokollet i förhållande till GBN-protokollet idetta fall. Det ganska enkla SW-protokollet kan vara ett bra val vid brusigaöverföringar (högt p-värde).

10.2 Typ-I hybrid-ARQ-protokollVid en jämförelse mellan ARQ och FEC kan man konstatera att ARQär ett enkelt system med hög tillförlitlighet men med snabbt mins-kande genomströmning vid ökande p (sannolikheten för bitfel påkanalen). FEC har däremot konstant genomströmning (R = k/n) menhar också följande två nackdelar:

• När ett kodord mottagits utförs först felkorrigering och därefteravkodning till ett meddelandeord (de två operationerna felkorri-

-4 -3 -2 -1 0

0,1

0,2

0,3

0,4

0,5

lg p

geno

mst

röm

ning

SW-ARQ

GBN-ARQ SR-ARQ

Γ = D(λ1 + δ + λ2) = 106 · 2 · 6 · 103

3 · 108 = 40

N = 40 bitar24 bitar/paket

= 2

Page 283: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

10.2 Typ-I hybrid-ARQ-protokoll

© Studentlitteratur 281

10 kap10 Felupptäck koder.fm 21 september 2004 21.08:05 sida 281 av 288

gering följt av avkodning kallas vanligen bara ”avkodning”).Slutligen överförs det avkodade meddelandeordet till slutanvän-daren. Eftersom sannolikheten för ett avkodningsfel är mycketstörre än sannolikheten för ett oupptäckt fel, är det svårt attuppnå hög tillförlitlighet med FEC-system.

• För att uppnå hög tillförlitlighet med ett FEC-system måste enlång kod med stor felkorrigeringsförmåga användas, vilket göratt ett sådant system blir svårt att implementera, dessutom blirdet dyrt.

Av dessa anledningar föredras ofta ARQ när det gäller felkontroll idatasystem, t.ex. datanätverk. Men vid kommunikation (eller data-lagring, typ CD), där returkanal inte finns, är FEC det enda alternati-vet. Emellertid kan nackdelarna med ARQ och FEC bemästras om dekombineras på ett riktigt sätt.

Sådana kombinationssystem kallas hybrid-ARQ. Principen är att låtaFEC-delen ta hand om korrigeringen av de korta mer frekventa felen.På det viset ökar genomströmningen. De mindre frekventa felen somFEC-delen inte kan klara tas om hand av ARQ-delen. Härigenomökar tillförlitligheten. FEC-delen kan kombineras med vilken somhelst av de tre grundläggande ARQ-protokollen.

Det enklaste hybrid-ARQ-protokollet är typ-I hybrid-ARQ-protokol-let. Vid transmission kodas varje datapaket både för felupptäckt ochfelkorrigering. Implementeringen av systemet kan göras antingenmed ett en-kodssystem eller ett två-kodssystem. Vi börjar medtvå-kodssystemet.

Två-kodssystemet

Datakällan genererar datapaket med längden k. Paketen kodas förstmed en felupptäckande (k´/k)-kod, C1 (ofta en CRC-kod), med högrelativ datatakt, k´/k. Därefter sker ny kodning med en felkorrige-rande (n,k´)-kod, C2.

Sannolikheten för paketfel är, jämför med uttrycket (10.5):

Page 284: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

10 Felupptäckande koder för system med returkanal

282 © Studentlitteratur

10 kap10 Felupptäck koder.fm 21 september 2004 21.08:05 sida 282 av 288

(10.12)

där PeFEC är sannolikheten för felavkodning i den felkorrigerandeavkodaren.

Uttrycket för genomströmning för typ-I hybrid-ARQ-protokollet ärdetsamma som för det rena ARQ-protokollet med den skillnaden attPuf ersätts med PeFECPuf. Detta medför att omsändningsfrekvensenreduceras med faktorn PeFEC om samma felupptäckande kod an-vänds i typ-I hybrid-ARQ-protokollet som i det rena ARQ-protokol-let.

En-kodssystemet

Felupptäckt och felkorrigering kan också åstadkommas med en endamodifierad FEC-avkodare som används för felkorrigering upp tilloch med t fel (= kodens felkorrigeringsförmåga) och för feldetekte-ring om antalet fel överstiger detta antal.

Exempel 10.3 Typ-I hybrid-ARQ-protokoll med utsträckt Golay-kod.

För att kunna jämföra egenskaperna hos det rena ARQ-protokollet och typ-I hybrid-ARQ-protokollet använder vi samma utsträckta (24,12,8) Go-lay-kod som i Exempel 10.1 och Exempel 10.2.

Vi använder SW-protokollet för felupptäckt i båda fallen. I typ-I hy-brid-ARQ-protokollet kan koden korrigera upp till och med 3 fel per mottagetkodord och eftersom dmin = 8 kan koden också upptäcka alla felmönster med 4fel, se Figur 10.8.

Vid ett upptäckt felmönster begär mottagaren omsändning. Vi förutsätter attnollkodordet sänts och att kanalen kan modelleras som en BSC-kanal medövergångssannolikheten för bitfel = p. Sannolikheten att ett sänt nollkodordhamnar på avståndet k från ett giltigt kodord med vikt j är:

(10.13)

Sannolikheten för oriktig avkodning är lika med sannolikheten att ett mottagetkodord hamnar innanför ett annat giltigt kodords kodsfär och är:

P(E) = PeFECPe1 – PeFECPuf

Pkj =

j

k – r∑

j = 0

k 24 – jr

p j – k + 2r 1 – p 24 – j + k – 2r

Page 285: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

10.2 Typ-I hybrid-ARQ-protokoll

© Studentlitteratur 283

10 kap10 Felupptäck koder.fm 21 september 2004 21.08:05 sida 283 av 288

Figur 10.8 Kodsfärer för utsträckt Golay(24,12,8)-kod till Exempel 10.3.

(10.14)

där Aj är antalet kodord med vikten j.

Ett mottaget paket/kodord avkodas riktigt om det har högst tre fel, d.v.s.

(10.15)

Sannolikheten för upptäckbara fel eller sannolikheten för omsändning är

Puf = 1 – Pif – Pe (10.16)

Sannolikheten för paketfel är som förut:

medan genomströmningen enligt uttrycket är .

Figur 10.9 visar sannolikheten för paketfel3och Figur 10.10 visar genomström-ningen för de två protokollen. Lägg märke till att typ-I hybrid-protokollet upp-

visar en betydligt bättre genomströmning i intervallet 10– 3 ≤ p ≤ 10– 1 men påbekostnad av tillförlitligheten. Slutsatsen är att typ-I hybrid-protokollet ärbättre lämpat vid överföringar med låga signalbrusförhållanden.

3 Sannolikheten för paketfel utgör ett mått på protokollets tillförlitlighet.

riktigt kodord

korrigerbara kodord

felupptäckbara kodord

ej felupptäckbara kodord

dmin = 8

t = 34

kodsfär

Pe = Aj∑j = 0

2 4

Pkj∑

k = 0

3

Pif = 24

j∑

j = 0

3

pj 1 – p 24 – j

P(E) = Pe

Pif + Pe

ηSR = R 1 – Puf

Page 286: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

10 Felupptäckande koder för system med returkanal

284 © Studentlitteratur

10 kap10 Felupptäck koder.fm 21 september 2004 21.08:05 sida 284 av 288

Figur 10.9 Jämförelse mellan paketfel för typ-I hybrid-ARQ och SR-ARQ.

Figur 10.10 Jämförelse mellan genomströmning för typ-I hybrid-ARQ ochSR-ARQ.

-3 -2,5 -2 -1,5 -1 -0,5

-20

-15

-10

-5

lg p

lg P

(E)

typ-I hybrid-ARQ

SR-ARQ

-3 -2,5 -2 -1,5 -1 -0,5 0

0,1

0,2

0,3

0,4

0,5

geno

mst

röm

ning

lg p

SR-ARQ

typ-I hybrid-ARQ

Page 287: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

10.3 Typ-II hybrid-ARQ-protokoll

© Studentlitteratur 285

10 kap10 Felupptäck koder.fm 21 september 2004 21.08:05 sida 285 av 288

10.3 Typ-II hybrid-ARQ-protokollTyp-II hybrid-ARQ-protokollen har förmåga att ändra sina överfö-ringsegenskaper när kanalens karaktär ändras genom användande avextra checkbitar - incremental redundancy-system - enligt en idé för-sta gången framlagd av Mandelbaum4. När sändaren i ett sådanttyp-II hybrid-protokoll mottar ett NAK svarar den med att sändaytterligare checkbitar till mottagaren vilket ökar dennas felkorrige-ringsförmåga.

Typ-II hybrid-protokollet utgör den enklaste formen bland incremen-tal redundancy-systemen och beskrivningen nedan bygger på ett sys-tem av Wang och Lin5.

Systemet använder två koder: En (n,k)-kod C1 med hög relativ takt

och en (2n,n) systematisk invertibel kod6 C2 med relativ takt = 1/2.C1 kan endast upptäcka fel (vanligen med en CRC-kod) medan C2samtidigt kan upptäcka och korrigera fel

Kodningen tillgår så att först kodas ett k-bits meddelandeord med C1till ett n-bits paket P1. Därefter kodas P1 med C2. De n checkbitar(kallade P2) som bildas vid kodning med C2 sparas i ett buffertminnemedan P1 sänds iväg till mottagaren. Om mottagaren upptäcker fel ipaketet P1 skickar den ett NAK till sändaren som svarar med attsända P2. Eftersom C2 är en invertibel kod kan de n bitarna i P2användas för att få fram de n bitar som användes för att genereraC2-koden, d.v.s. en uppskattning eller rekonstruktion av P1. Upp-

4 D.M. Mandelbaum, ”An Adaptive Feedback Coding Scheme Using Incre-mental Redundancy”, IEEE Transactions on Information Theory, pp. 388-389,May 1974.5 Y. Wang and S. Lin, ”A Modified Selective-Repeat Type-II Hybrid-ARQ Sys-tem and Its Performance Analysis”, IEEE Transactions on CommunicationsMagazine, Vol. COM-31, pp. 593-607, May 1983.6 En kod sägs vara invertibel om med utgångspunkt från paritetscheckbitarnamotsvarande informationsbitar entydigt kan bestämmas med hjälp av ett skift-register i en s.k. inversionsprocess. Processen bygger på att två godtyckligakodord alltid har olika checkbitsmönster.

Page 288: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

10 Felupptäckande koder för system med returkanal

286 © Studentlitteratur

10 kap10 Felupptäck koder.fm 21 september 2004 21.08:05 sida 286 av 288

skattningen undersöks med avseende på fel. Om det upptäcks fel iden rekonstruerade versionen av P1 sätts P1 ihop med P2 för att få ettbruspåverkat C2-kodord. Efter felkorrigering görs en ny felupp-täcktsundersökning av det resulterande meddelandet. Om det då fort-farande upptäcks fel fortsätter processen med att sändaren växlarmellan att sända P1 och P2 tills någon av de tre felupptäcktsoperatio-nerna ger ett felfritt resultat.

Det finns förutom den ovan beskrivna sorten av typ-II hy-brid-ARQ-protokoll en mängd andra varianter för vilkas beskrivninghänvisas till speciallitteraturen.

10.4 Problem. Felupptäckande koder för system med returkanal

Problem 10.1

En (7,4)-Hamming-kod används i ett ”rent” ARQ-protokoll för överföring påen 3 km lång mikrovågskanal (LOS = Line Of Sight) som kan modelleras somen BSC-kanal med p = 0,05. Varje överfört paket består av bara ett kodord. Da-

tahastigheten är 106 bit/s medan processtiden δ i mottagaren försummas. Retur-kanalen antas vara utan störningar. Bestäm genomströmningen för

a) SW-ARQ

b) GBN-ARQ

c) SR-ARQ

Svar:

a) 0,10

b) 0,25

c) 0,40

Problem 10.2

Bestäm sannolikheten för paketfel för koden i Problem 10.1.

Page 289: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

10.4 Problem. Felupptäckande koder för system med returkanal

© Studentlitteratur 287

10 kap10 Felupptäck koder.fm 21 september 2004 21.08:05 sida 287 av 288

Svar:

1,07 · 10– 3

Problem 10.3

Ett GBN-ARQ-system har utbredningsfördröjningarna λ1 s och λ2 s, överfö-ringshastigheten D bit/s och mottagarens beslutstid δ s.Kanalen är BSC medövergångssannolikheten p. Paketlängden är N och sannolikheten för omsänd-ning är 1 – (1 – p)n. Bestäm den blocklängd n, som maximerar systemts genom-strömning.

Problem 10.4

Vilken bråkdel av alla binära 23-tupler faller innanför en (23,12)-Golay-avko-dares kodningssfär, som bara tillåts korrigera felmönster med Hamming-vikttvå eller mindre (felmönster med Hamming-vikt tre föranleder omsändningsbe-gäran)? Använd denna information för att bestämma den accepterade ordfels-sannolikheten för ett Golay-baserat typ-I hybrid ARQ-protokoll när signalbrus-förhållandet blir mycket lågt.

Svar:

0,86 respektive 0,14

Page 290: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

10 kap10 Felupptäck koder.fm 21 september 2004 21.08:05 sida 288 av 288

Page 291: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

©

Studentlitteratur

289

11 kap11 Kodntillämpningar.fm 21 september 2004 21.08:05 sida 289 av 298

11 Kodningstillämpningar

11.1 Compact Disk (CD)

Digitalt ljud har sagts vara det största framsteget inom ljudteknologinsedan Edison uppfann ljudfonografen 1877. Den roll som felkorrige-rande kodning har inom ljudåtergivningsteknologin är inte obetydlig.På grund av den stora mängd data som åtgår för att representeraaudiosignaler digitalt och därav följande krav på lagringsmediummed hög packningstäthet, är kraftfulla felkorrigerande kodningsme-toder väsentliga för att göra tekniken med inspelning, lagring ochåtergivning av ljud kommersiellt möjlig. Ett sådant system utvecklatav Philips och Sony

1

beskrivs i detta avsnitt:

Ljudåtergivningssystemet består av en laser, en inspelad skiva (CD)och en fotodetektor som tillsammans motsvarar

kanalen

i ett vanligtkommunikationssystem. Under förutsättning att CD-spelaren funge-rar som den ska, utgörs störningar på kanalen i huvudsak av smuts påskivan (fingeravtryck och repor). Eftersom smutsen oftast täcker enyta på skivan som är mycket större än den yta som upptas av eninspelad bit, uppträder felen i skurar vid avspelning. För att korrigeraskurfel används en form av interleaving som kallas cross-interleavingtillsammans med en Reed-Solomon-kod. Anledningen till attReed-Solomon-koder används är att de har mycket goda egenskapervad beträffar skurfelskorrigering.

Metoden för inspelning åskådliggörs schematiskt i Figur 11.1. Varjekanal samplas 44.100 gånger i sekunden, vilket medför att signalermed frekvenser upp till 22 kHz återges riktigt. Signaler med högre

1

Specifikationen för CD-Digital Audio publicerades av Philips och Sony 1980i

The Red Book

. Specifikationen förfinades 1982 och har utgjort grunden förandra CD-tekniker som t.ex. CD-ROM och DVD.

Detta dokument har framställts med FrameMaker 4.0.4

Page 292: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

11 Kodningstillämpningar

290

©

Studentlitteratur

11 kap11 Kodntillämpningar.fm 21 september 2004 21.08:05 sida 290 av 298

frekvenser än 22 kHz skärs bort av ett antivikninsfilter före samplin-gen. Därefter omvandlas varje sampel med en 16 bitars analogdigita-lomvandlare, 16 är nämligen det minsta antal bitar som krävs för attman inte skall höra kvantiseringsbruset.

Varje binär 16-tupel representeras av två talkroppselement tagna ur

GF(2

8

), vilket medför att varje sampel genererar 4 stycken GF(2

8

)-symboler, d.v.s. 44.100 · 32 = 1.411.200 bit/s och utsignalen från ana-logdigitalomvandlaren utgörs därför av en 1,41 Mbit/s dataströmsom går direkt in på en 3/4-takts CIRC-kodare (CIRC = Cross-Inter-leaved Reed-Solomon Code). Denna genererar en 1,88 Mbit/s kodaddataström (4/3 · 1,41 = 1,88). Därefter tillförs en mängd kontrolldata,genom multiplexering, för tids- och spårningskontroll schematisktangiven genom blocket ”MUX”.

Figur 11.1 Schematisk bild av CD-inspelningsprocessen.

ljudkälla

samplare

A/D-omvandlare

CIRC-kodare

MUX

EFM

MUX

vänster höger

44,1 kHz PAM

44.100 sampel/s per kanal

16 bit/kanal

2 · 16 · 44,1 kb/s = 1,41 Mb/s PCM

1,88 Mb/s

1,94 Mb/s

4,32 Mb/s

Optisk inspelning

synkroniseringsbitar

kontroll- och display-informationsbitar

antivikningsfilter

Page 293: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

11.1 Compact Disk (CD)

©

Studentlitteratur

291

11 kap11 Kodntillämpningar.fm 21 september 2004 21.08:05 sida 291 av 298

Den multiplexerade dataströmmen, med bithastigheten 1,94 Mbit/s,går därefter in på en källkodare vars uppgift är att förbereda data-strömmen för effektiv inspelning på den optiska disketten. För dettaändamål används

Eight-to-Fourteen Modulation

(EFM), vilket inne-bär att åtta-bits block omvandlas till fjorton-bits block.

EFM-koden är en

runlength-limited code

,

vilket innebär att det finnsövre och undre gränser för sekvenslängder av ettor eller nollor.

För att förstå detta måste man veta hur informationen lagras på dis-ketten: Disketten innehåller ett spiralspår med nedsänkningar ellerhål (eng. pits) mellan vilka finns upphöjningar (eng. lands). Kod-ningen av audioinformationen bestämmer längderna på dessa ned-sänkningar/upphöjningar. Övergången mellan en upphöjning och ennedsänkning, en hålvägg (eng. a pit wall) eller vice versa, utläsessom en etta (1) medan sträckor av upphöjningar eller nedsänkningarmotsvarar sekvenser av nollor (000…) - se Figur 11.2.

Vid avspelning ger hålväggarna sig till känna som varierande intensi-tet i det reflekterade ljuset från en laser som känner av spåret på denroterande disketten. Av tekniska skäl och för att maximera datamäng-den på disketten måste det minsta avståndet mellan hålväggar (över-gångar, 0

1) vara 3 (minimum run-length) och det största 11 (max-imum run-length). Detta innebär att data på en diskett består avsekvenser av 2 till 10 nollor mellan på varandra följande ettor.

Efter EFM-kodningen tillförs ytterligare synkroniserings- och sam-manbindningsbitar så att inspelningen sker med 4,32 Mbit/s.

Felkontrollsystemet i form av CIRC-kodaren består av två förkortadeReed-Solomon-koder,

C

1

och

C

2

. Båda koderna använder 8-bitssymboler från GF(2

8

), något som passar bra tillsammans med 16-bitssamplen från analogdigitalomvandlaren. Den ”naturliga” längden för

Figur 11.2 Upphöjningar/nedsänkningar på en CD.

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

Page 294: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

11 Kodningstillämpningar

292

©

Studentlitteratur

11 kap11 Kodntillämpningar.fm 21 september 2004 21.08:05 sida 292 av 298

en RS-kod över GF(2

8

) är 8 · 255 = 2040. D.v.s. en 2040-bits kodmed en ganska komplicerad avkodare, vilket inte är bra med tanke påkostnadsaspekten. CD-spelaren skall ju kunna säljas över disk tillprivatpersoner. Av den anledningen förkortas koderna avsevärt: ICIRC-kodaren är

C

1

en (32,28)-kod och

C

2

en (28,24)-kod - se Figur11.3. Båda koderna har 4 redundanta bitar och minimidistansen 5.

Varje 16-bits sampel tas som två 8-bitars symboler från GF(2

8

). Sam-plen kodas, 12 i taget, av

C

2

till 28-symbolers kodord. De 28 symbo-lerna i varje kodord från

C

2

går därefter till kors-interleavern (eng.cross-interleaver) (

m

= 28,

D

= 4 symboler) innan de kodas av

C

1

.32-symbolskoden från

C

1

behandlas därefter vidare enligt Figur 11.1.

Figur 11.3 CIRC-kodare av standardtyp.

(28/24)RS-kodare

C2

(32/28)RS-kodare

C1

1D

2D

3D

25D

26D

27D

D = 4 symboler

korsinterleaverm = 28

12 16-bitssampel(24 8-bitssampel)

24 8-bitssampel

32 8-bitssampel

Page 295: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

11.1 Compact Disk (CD)

©

Studentlitteratur

293

11 kap11 Kodntillämpningar.fm 21 september 2004 21.08:05 sida 293 av 298

CIRC-kodningen är standardiserad för CD-system medan däremotavkodningsprocessen kan variera mellan olika CD-spelare.

En schematisk bild av avkodaren visas i Figur 11.4.

C

1

-avkodarenföljs av en korsdeinterleaver och en

C

2

-avkodare. Både

C

1

- och

C

2

-avkodaren kan korrigera upp till 2 fel eftersom deras minimidis-tans är 5. Om inte kodens hela felkorrigeringsförmåga utnyttjas kanen del av den användas för felupptäckt. Denna möjlighet används i deflesta CIRC-avkodare i syfte att förbättra tillförlitligheten i avkod-ningen.

Figur 11.4 Schematisk bild av CIRC-avkodare.

avkodare

27D

26D

25D

3D

2D

1D

D = 4 symboler

korsdeinterleaverm = 28

32 8-bitssymboler

C2-

Fel- ochsuddnings-avkodning

Feldöl-jandekrets

avkodareC1-

enkelfels-korrigeringoch tvåfels-

upptäckteller

fyrfelsupp-täckt

12 16-bits sampeltill digitalanalog-

omvandlaren

Tvåfels-korrigering

eller

Page 296: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

11 Kodningstillämpningar

294

©

Studentlitteratur

11 kap11 Kodntillämpningar.fm 21 september 2004 21.08:05 sida 294 av 298

C

1

-avkodaren ställs vanligen in för att rätta alla enkelfel. Om

C

1

-avkodaren upptäcker fler än ett fel signalerar den 28 suddningsfel.Korsdeinterleavern sprider ut dessa suddningsfel på 28

C

2

-kodord.Alternativt kan

C

1

-avkodaren användas för att rätta alla dubbelfeleller, i det billigaste utförandet, bara ge suddningsfelssignalering vidvarje feltyp.

C

2

-avkodaren kan rätta alla kombinationer av

e

fel och

s

suddnings-fel där 2

e

+

s

< 5. I det billigaste utförandet används den bara för atträtta suddningsfel eftersom avkodningsfel i

C

1

-avkodaren är mycketosannolika. Om antalet suddningsfel överstiger 4, signalerar

C

2

-avkodaren 24 suddningsfel, vilket motsvarar 12 (ljud/musik)sam-pel. Den feldöljande kretsen reagerar på detta genom att låta desssampel vara tysta eller genom att interpolera fram värden med hjälpav de omkringliggande samplen. För att förbättra feldöljningsproces-sen ingår dessutom ytterligare interleavings- och fördröjninsoperatio-ner i avkodningen.

längsta fullständigt korrigerbara skur-felslängd

4.000 databitar motsvarande 2,5 mm spårlängd

längsta interpolerbara skurfelslängd

12.300 databitar motsvarande 7,7 mm spårlängd

interpolationsfrekvens ett sampel/10 tim vid BER = 10

– 4

1000 sampel/min vid BER = 10

– 3

felfrekvens för oupptäckta fel (som ger sig tillkänna i form av klickljud)

< 1 per 750 tim vid BER = 10

– 3

försumbar vid BER = 10

– 4

implementering 1 LSI-chip och 2048 Bytes RAM

Tabell 11.1 Prestanda för CIRC i CD-spelare.

Page 297: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

11.2 Standardiserade telekommunikationsturbokoder

©

Studentlitteratur

295

11 kap11 Kodntillämpningar.fm 21 september 2004 21.08:05 sida 295 av 298

11.2 Standardiserade telekommunikations- turbokoder

Tack vare turbokodernas utmärkta prestanda är det inte förvånandeatt de snabbt har anammats i många kommersiella tillämpningar.Detta har lett till ett antal standarder av vilka standarden för rymdda-tasystem presenteras nedan.

11.2.1 Turbokodsstandard för rymddatasystem

Bland de första att utveckla en kanalkodningsstandard baserad påparallellsammanlänkade turbokoder var CCSDS (Consultative Com-mittee for Space Data Systems), som består av intressegrupper inomrymd och industri från hela världen. Den nya standarden skulleutgöra ett alternativ till det traditionella sammanlänkade system,bestående av en 64-tillstånds faltningskod och en yttre (255,223)-Reed-Solomon-kod, som ditintills använts. Den nya turbokodsstan-

darden förbättrar kodningsvinsten med 2,5 dB vid BER = 10

– 5 om

den lägsta kodtakten R = 1/6 används2.

CCSDS Telemetry Channel Coding Standard3 använder en turbokodbestående av två komponentkoder med valbar kodtakt och block-längd.

Turbokodaren för denna kod visas i Figur 11.5. Komponentkodarnautgörs av två rekursiva faltningskodare var och en med kodtaktenR = 1/4. Tillsammans kan de kombineras för att generera en turbo-kod med kodtakten R = 1/2, 1/3, 1/4 och 1/6 på följande sätt:

Återkopplingsvektorn för båda komponentkodarna vid alla kodtakterär: G0 = 10011.

2 M.R. Soleymani, Y. Gao och G. Uilaipornsawai, Turbo Coding for Satelliteand Wireless Communications, Kluwer Academic Publishers, Boston 2002.3 Telemetry Channel Coding, Consultative Committee on Space Data Systems,CCSDS 101.0-B-6, October 2002.

Page 298: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

11 Kodningstillämpningar

296 © Studentlitteratur

11 kap11 Kodntillämpningar.fm 21 september 2004 21.08:05 sida 296 av 298

Framkopplingsvektorn för båda komponentkodarna för kodtakterna1/2 och 1/3 är G1 = 11011. Punktering av varannan symbol från varoch en av komponentkodarna görs för kodtakten 1/2 men inte förkodtakten 1/3.

Figur 11.5 Turbokodare enligt CCSDS. Fylld cirkel betyder attvarje symbol används. Ofylld cirkel betyder att varan-nan symbol används.

+

+ + +

+

++ +

+

+

+

+ + +

+

++ +

+

+

delayoch in-terlea-ver

utsignaler

G1

G2

G3

G1

G2

G3

+ G0

G0+ko

dtak

t 1/2

kodt

akt 1

/3

kodt

akt 1

/4

kodt

akt 1

/6

kodare a

kodare b

ut

ut

3b

1b

3a

2a

1a

0ain a

in b

Page 299: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

11.2 Standardiserade telekommunikationsturbokoder

© Studentlitteratur 297

11 kap11 Kodntillämpningar.fm 21 september 2004 21.08:05 sida 297 av 298

Framkopplingsvektorn vid kodtakten 1/4 är för kodare a: G2 = 10101och G3 = 11111 och för kodare b: G1 = 11011. Ingen punktering görs-vid kodtakten 1/4.

Framkopplingsvektorn vid kodtakten 1/6 är för kodare a:G1 = 11011, G2 = 10101 och G3 = 11111 och för kodare b:G1 = 11011 och G3 = 11111. Ingen punktering görs vid kodtakten1/6.

Page 300: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

11 kap11 Kodntillämpningar.fm 21 september 2004 21.08:05 sida 298 av 298

Page 301: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

©

Studentlitteratur

299

12 kap12 tabell felkorrkodn.fm 21 september 2004 21.08:07 sida 299 av 304

12 Tabeller för felkorrigerande kodning

12.1 Binära primitiva polynom

Av grad 2

1.

x

2

+

x

+1

Av grad 3

1.

x

3

+

x

+ 1

2.

x

3

+

x

2

+ 1

Av grad 4

1.

x

4

+

x

+ 1

2.

x

4

+

x

3

+ 1

Av grad 5

1.

x

5

+

x

2

+ 1

2.

x

5

+

x

3

+ 1

3.

x

5

+

x

3

+

x

2

+

x

+ 1

4.

x

5

+

x

4

+

x

2

+

x

+ 1

5.

x

5

+

x

4

+

x

3

+

x

+ 1

6.

x

5

+

x

4

+

x

3

+

x

2

+ 1

Av grad 6

1.

x

6

+ x + 1

2.

x

6

+

x

4

+

x

3

+

x

+ 1

Detta dokument har framställts med FrameMaker 4.0.4

Page 302: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

12 Tabeller för felkorrigerande kodning

300

©

Studentlitteratur

12 kap12 tabell felkorrkodn.fm 21 september 2004 21.08:07 sida 300 av 304

3.

x

6

+

x

5

+ 1

4.

x

6

+

x

5

+

x

2

+

x

+ 1

5.

x

6

+

x

5

+

x

3

+

x

2

+ 1

6.

x

6

+

x

5

+

x

4

+

x

+ 1

12.2 Galois-talkroppar, cyklotomiska sidoklasser och minimalpolynom

1. GF(2

3

) genererade av

α

där

p

(

x

) = 1 +

x

+

x

3

och

p

(

α

) = 0.

2. GF(2

4

) genererade av

α

där

p

(

x

) = 1 +

x

+

x

4

och

p

(α) = 0.

0 000 α3 110 cykl. sidkl. minimalpolynom

α0 100 α4 011 0 1 + x

α1 010 α5 111 1,2,4 1 + x + x3

α2 001 α6 101 3,6,5 1 + x2 + x3

0 0000 α7 1101 cykl. sidkl. minimalpolynom

α0 1000 α8 1010 0 1 + x

α1 0100 α9 0101 1,2,4,8 1 + x + x4

α2 0010 α10 1110 3,6,12,9 1 + x + x2 + x3 + x4

α3 0001 α11 0111 5,10 1 + x + x2

α4 1100 α12 1111 7,14,13,11 1 + x3 + x4

α5 0110 α13 1011

α6 0011 α14 1001

Page 303: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

12.2 Galois-talkroppar, cyklotomiska sidoklasser och minimalpolynom

© Studentlitteratur 301

12 kap12 tabell felkorrkodn.fm 21 september 2004 21.08:07 sida 301 av 304

3. GF(25) genererade av α där p(x) = 1 + x2 + x5 och p(α) = 0.

0 00000 α7 00101 α15 11111 α23 11110

α0 10000 α8 10110 α16 11011 α24 01111

α1 01000 α9 01011 α17 11001 α25 10011

α2 00100 α10 10001 α18 11000 α26 11101

α3 00010 α11 11100 α19 01100 α27 11010

α4 00001 α12 01110 α20 00110 α28 01101

α5 10100 α13 00111 α21 00011 α29 10010

α6 01010 α14 10111 α22 10101 α30 01001

cykl. sidkl. minimalpolynom

0 1 + x

1,2,4,8,16 1 + x2 + x5

3,6,12,24,17 1 + x2 + x3 + x4 + x5

5,10,20,9,18 1 + x + x2 + x4 + x5

7,14,28,25,19 1 + x + x2 + x3 + x5

11,22,13,26,21 1 + x + x3 + x4 + x5

15,30,29,27,23 1 + x3 + x5

Page 304: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

12 Tabeller för felkorrigerande kodning

302 © Studentlitteratur

12 kap12 tabell felkorrkodn.fm 21 september 2004 21.08:07 sida 302 av 304

4. GF(26) genererade av α där p(x) = 1 + x + x6 och p(α) = 0.

0 000000 α15 000101 α31 101001 α47 111001

α0 100000 α16 110010 α32 100100 α48 101100

α1 010000 α17 011001 α33 010010 α49 010110

α2 001000 α18 111100 α34 001001 α50 001011

α3 000100 α19 011110 α35 110100 α51 110101

α4 000010 α20 001111 α36 011010 α52 101010

α5 000001 α21 110111 α37 001101 α53 010101

α6 110000 α22 101011 α38 110110 α54 111010

α7 011000 α23 100101 α39 011011 α55 011101

α8 001100 α24 100010 α40 111101 α56 111110

α9 000110 α25 010001 α41 101110 α57 011111

α10 000011 α26 111000 α42 010111 α58 111111

α11 110001 α27 011100 α43 111011 α59 101111

α12 101000 α28 001110 α44 101101 α60 100111

α13 010100 α29 000111 α45 100110 α61 100011

α14 001010 α30 110011 α46 010011 α62 100001

Page 305: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

12.3 Generatorpolynom till binära ”narrow-sense” BCH-koder

© Studentlitteratur 303

12 kap12 tabell felkorrkodn.fm 21 september 2004 21.08:07 sida 303 av 304

12.3 Generatorpolynom till binära ”narrow-sense” BCH-koder

Sifforna i rubriken generatorpolynom är angivna i oktal form. Föratt bestämma hur generatorpolynomet ser ut omvandlas den oktalaformen till binär form.

Ettorna indikerar platsen för de nollskilda elementen i polynometenligt följande exempel:

3551 ⇒ 011 101 101 001 ⇒ g(x) = x10 + x9 + x8 + x6 + x5 + x3 + 1.

n är kodordets längd.

k är meddelandeordets längd.

t är det maximala antalet bitar som koden kan korrigera.

cykl. sidkl. minimalpolynom 11,22,44,25,50,37 1 + x2 + x3 + x5 + x6

0 1 + x 13,26,52,41,19,38 1 + x + x3 + x4 + x6

1,2,4,8,16,32 1 + x + x6 15,30,60,57,51,39 1 + x2 + x4 + x5 + x6

3,6,12,24,48,33 1 + x + x2 + x4 + x6 21,42 1 + x + x2

5,10,20,40,17,34 1 + x + x2 + x5 + x6 23,46,29,58,53,43 1 + x + x4 + x5 + x6

7,14,28,56,49,35 1 + x3 + x6 27,54,45 1 + x + x3

9,18,36 1 + x2 + x3 31,62,61,59,55,47 1 + x5 + x6

Page 306: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

12 Tabeller för felkorrigerande kodning

304 © Studentlitteratur

12 kap12 tabell felkorrkodn.fm 21 september 2004 21.08:07 sida 304 av 304

n k t generatorpolynom

7 4 1 13

15 11 1 23

15 7 2 721

15 5 3 2467

31 26 1 45

31 21 2 3551

31 16 3 107657

31 11 5 5423325

31 6 7 313365047

63 57 1 103

63 51 2 12471

63 45 3 1701317

63 39 4 166623567

63 36 5 1033500423

63 30 6 157464165547

63 24 7 17323260404441

63 18 10 1363026512351725

63 16 11 6331141367235453

63 10 13 472622305527250155

63 7 15 5231045543503271737

Page 307: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

305

16-PSK signaluppsättning 22632-CROSS signaluppsättning 22564-QASK 219–2208-AM 2178-PSK-system 228

ACK = ACKnowledgement 274se även kvittering 274

ACK/NAK 274–275adaptiva protokoll 271addition

- modulo m 21binär - 28loglikelihood- 253–254modulo-2 - 253vanlig - 253vektor- 29

additionsoperatorer 253additiv

- operation 33–34- struktur 33

alef-noll 27algebraisk struktur 55algebraiska koder 39all-zero state 176analogdigitalomvandlare 290–291aposteriorisannolikhet 245APP = A Posteriori Probability 245,

260apriori LLR 248apriorisannolikhet 246, 254ARQ 281

gå tillbaka N steg - 274, 276se även Go-Back-N, GBN-

ARQ 274hybrid- 281selektiv omsändning - 274, 277

se även Selective Repeat, SR-

ARQ 274stanna och vänta - 274–275

se även Stop-and-Wait, SW-

ARQ 274ARQ = Automatic Repeat reQuest 18,

271, 280ARQ-protocol

pure - 271ARQ-protokoll

rena - 271, 273, 282selektiv omsändning - 284stanna och vänta - 282typ-I hybrid- 271, 280–284typ-II hybrid- 271, 285–286

associativitet 19, 29asymptotisk

kodningsförstärkning 233–234audioinformation 291audiosignaler 289augmenting 86

se även utökning 86AVGB 245AVGB = Additivt Vitt Gaussiskt

Brus 9, 65, 77, 86, 207avkodare 13, 153

soft-in/soft-ut - 249avkodning 108

- med återkoppling 262binär suddnings- 152

Sakregister

Detta dokument har framställts med FrameMaker 4.0.4

Page 308: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

306

se även erasure decoding 152horisontell - 250, 256, 258hård - 13, 152, 199, 201, 208, 253iterativ - 245, 249mjuk - 13, 153, 197, 208optimal - 15standard- 154vertikal - 250, 256, 258

avkodningsalgoritm 244aritmetisk - 117Berlekamp-Masseys - 144, 148,

154Berlekamps - 134binär suddnings- 154icke-binär suddnings- 154Peterson-Gorenstein- Zierlers - 144Petersons - 131Viterbis ”Maximum Likelihood” -

191avkodningsfel 7, 14, 200avkodningsmetod

Viterbis - 260avkodningsprocedur

iterativ - 245avkodningsväg 193avståndet

minsta fria - 184

Bahl 260Bahl-algoritmen 263bandbredd

teoretiskt lägsta - 13bandbredds

-definition 13-expansion 14, 237

bas 30dimension hos en - 30kanonisk - 30

Bayes lag 194Bayes teorem 12, 245–246BCH-gränsen 125BCH-kod

- i inskränkt mening 126

se även narrow sense 126binär - 127primitiv - 127

narrow sense 128–129t-felskorrigerande - 128

BCH-koder 125, 129, 158- med Mathematica 138binära - 125designprocedur för - 126, 128primitiva - 273

BER 223, 264, 295BER = Bit Error Rate 7, 206

se även bitfel 7Berlekamp 86, 134Berrou 243–244, 248, 259–260, 264,

266–267beslut

hårda - 13mjuka - 13

beslutskrets 247beslutsområde 10beslutsregel

hård - 246beslutstid

mottagarens - 275beslutstillförlitlighet 249betingad täthetsfunktion 246BFSK 214bildpixel 116binär

- cyklisk kod 100- kod 61- operation 19

binärt överföringssystem 246bitenergi 223bitfel 7, 71, 153

se även BER 7bitfelshalt 244

övre gräns för - 79bitfelssannolikhet 73, 78–79, 208, 264

undre gräns för - 206övre gräns för - 73

bitmetrik 195

Page 309: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

307

block-kod 8, 15–16, 72–73, 81

systematisk 63-kodning 61, 223-längd 127, 295

Bose 125BPSK 214, 216BPSK = Binary Phase Shift Keying 9

-modulation 13, 207Broadcom 267brus 7

additivt vitt gaussiskt - 9se även AVGB 9

kvantiserings- 290BSC 272BSC = Binary Symmetric Channel 11,

13, 15, 65, 71, 199, 201, 207, 272buffertminne 276Bulletin des Sciences et

Mathématiques 55Bulletin des Sciences Mathématiques,

Astronomiques, Physiques et Chimiques 54

Cauchy 53CCSDS 296CCSDS = Consultative Committee for

Space Data Systems 295CCSDS Telemetry Channel Coding

Standard 295CD = Compact Disk 7, 281, 289CD-inspelningsprocess 290CD-ROM 289CD-spelare 154, 292–294channels

burst error - 17se även skurfelskanaler 17

random error - 17Chaudhury 125Chung 266CIRC 294CIRC = Cross-Interleaved Reed-Solo-

mon Code 290

CIRC-avkodare 293CIRC-kodare 290–292CIRC-kodning 293cirkelns kvadratur 51Cocke 260code gain 223

se även kodningsförstärkning 223Comtech AHA 267concatenated code 243

se även sammanlänkad kod 243Conexant 267constellation 233constraint length 16, 166, 185, 258

se även spann 166coset 25

se även sidoklass 25Costello 185coverage 113

se även täckning 113CRC

-koder 113-polynom 113

CRC-12 113–114CRC-16 114CRC-32 114CRC-32 (Ethernet) 113CRC-4 113–114CRC-ANSI 113CRC-CCITT (X25) 113CRC-kod 285

binär - 113CRC-koder = Cyclic Redundancy

Check 111–112, 272–273CRC-SDLC 113cross-interleaver 292

se även kors-interleaver 292cross-interleaving 289CROSS-modulation 220Csajka 237cyklisk (7,4)-kod 108cyklisk (n,k)-kod 102cyklisk kod 113

linjär - 127

Page 310: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

308

cykliska koder 39, 55, 95, 97, 104, 108, 112, 119, 158avkodning av - 108felupptäckande - 111–112

cykliska skift 95, 109cyklotomisk sidoklass 50, 127, 129

datahastighet 223datapaket 273, 281dataström 164, 223datatakt 13–14, 281datorsökning 125defaultpolynom 48delare 34, 38, 97Delay 170

se även D-transformen 170delgrupp 25

äkta - 25delmängd 25delsignaluppsättning 224–225Demante, Adelaïde-Marie 51demodulator 7, 13demodulering

binär - 13designdistans 126destination 8detekteringsprocess 13dimension 30, 64diskett 291distansfaktor 233distribution

multiplikativ - över addition 28diversitetseffekt 264diversitetsförfarande 243divisionskrets 104, 112DMC = Discrete Memoryless

Channel 15, 197D-transformen 170

se även Dealy 170dual

- kod 64, 272–273- matris 64

dualt vektorrum 30

dubbelfel 76DVD 289

École Normale 53Ecole Normale Supérieure des Tele-

communications de Bretagne i Brest 266

École Polytechnique 52–53École Préparatoire 53Edison 289effektnivå

sändarens - 223efficiency

power- 213spectrum- 213

EFM = Eight-to-Fourteen Modulation 291

EFM-kodning 291egenslinga 178ekvationsteorin 52ekvivalensklass 21–22, 25–26

- etikett 22element 19, 25, 30–31

-form 48Elias 163, 185enhets

-matris 63, 83-rot 127, 130

se även root of unity 126

primitiv - 114-rötter 43

enhetsrot 126primitiv - 126

enkelbits paritetscheck 111enkelfel 75–76

-vektor 80enkelfelskorrigerande 83, 87en-kodssystem 281–282erasure decoding 152

se även avkodningbinär suddnings- 152

Ericsson 267euklidisk metrik 233

Page 311: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

309

euklidiska avståndet 231, 235Eulers fi-funktion 31expanderad signaluppsättning 224,

233, 237exponentialform 44exponentrepresentation 35expurgating 86

se även rensning 86extending 86

se även utsträckning 86extension field 29

se även utvidgningstalkropp 29extra checkbitar 285

se även incremental redundancy-system 285

extra kunskap 248se även extrincic 248

extrainformation 263–264extravärden 261extrinsic 248

se även extra kunskap 248

faltningskod 8–9, 16, 166–167, 193, 205icke-systematisk - 258katastrofal - 176, 178systematisk - 173

faltningskodare 9, 164, 166, 169, 172, 175, 179, 192–193, 206, 227–228, 230–231, 234–237, 243–244icke-systematisk - 259

se även NSC = NonSystematic

convolutional

Code 259parallellt sammanlänkade - 244partitioneringar med - 214rekursiv - 295systematisk återkopplad - 259

faltningskoder 163, 191, 213icke-systematiska - 185linjära - 163prestanda för - 201prestationsmått för - 184

systematiska - 185faltningskodning 223faltningskodord 194FEC 273, 280–282FEC = Forward Error Correction 18,

271fel

-aktig avkodning 65, 73-bitar 67icke upptäckbara - 274-kodord 74-kontrollsystem 154-korrektionsadder 109-korrigering 18, 65, 107–108, 153-korrigeringsförmåga 72–73, 81–

82, 87, 111, 125, 153, 285-lokaliseringspolynomet 131, 150-lokaliseringsvektorn 131-mönster 65–66, 79, 108–109oupptäckbara - 71, 278-polynom 109-position 71, 109, 153upptäckbara - 71, 274, 278, 283-upptäckt 18, 65, 107-upptäckt med CRC 111-upptäcktsförmåga 71, 81, 87, 111-vektor 65, 67–68, 74, 77–78, 80,

87, 117–118troligaste 66

felbeslutsannolikheten för - 10

feldöljande krets 294feldöljningsprocess 294felkorrigerande kodning 266felkorrigeringsförmåga 243felmönster 107, 271, 282

uddavikts - 113felsannolikhet

avkodares - 14avkodnings- 16

Ferrussac 54field 27

se även talkropp 27

Page 312: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

310

extension - 29FiniteFields 45, 138FIR = Finite Impulse Response 258

se även impulssekvenssvarändligt - 258

first event error 201se även första felhändelse 201

formell derivata 151Forney 178, 185, 243, 266Forneys algoritm 148, 151fotodetektor 289Fourier 54fractional rate loss 166

se även relativ taktförlust 166frame 273

se även ram 273framkopplingsvektor 296–297framslinga 179France Telecom 267fria distansen 233fädning 112fädningsdip 17fördröjningsoperatorn 170förkortade cykliska koder 112förkortade koder 111förkortning 86

se även shortening 86förlängning 86

se även lengthening 86första felhändelse 201–203

se även first event error 201föräldrasignaluppsättning 224föräldrauppsättning 225

Gallager 268Galois, Évariste 28, 51Galois, Nicolas-Gabriel 51Galois-talkropp 28, 31, 33Gao 295GBN-protokollet 277–278generatormatris 62, 66, 74, 86, 116–

118semiinfinit - 168

självdual - 116generatorpolynom 97–100, 102, 104,

106, 108, 113, 116, 125–129, 132, 134, 273narrow sense - 130

generatorsekvens 168–169genererande funktion 178genomströmningen 273–277, 280–

281, 283–284geometriskt avstånd 215GF(2) 28GF(32) 127GF(q) 28Gilbert-Elliot-modellen 17Glavieux 243–244, 248, 259, 264,

266–267Go-Back-N, GBN-ARQ 274

se även ARQgå tillbaka N steg - 274

Golay 114Golay-kod 278

binär - 114ternär - 114utsträckt - 116–117, 282–283

Golay-koder 114, 273Golomb 148Goppa-koder 125gradtal 97graf 175, 178

kodar- 175, 178viktad riktad - 175

grafdeterminanten 180–181gren

-metrik 196grenar

icke överlevande - 197grenetiketter 175, 178grenförstärkning 179grund

-element 50-kropp 29, 38-tillstånd 193

grupp 19

Page 313: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

311

- under addition 96abelsk - 19, 55additiv - 20, 55additiv kommutativ - 26–28-begreppet 19del- 25, 38-element 24, 31heltals- 25kommutativ - 19–20, 22, 55kommutativ - under addition 20, 29kommutativ - under

multiplikation 20multiplikativ - 20, 35, 55multiplikativ kommutativ - 27–28-operation 24oändlig - 20-teori 51, 53-villkor 25ändlig - 20, 23

Hagenauer 253Hamming 82

-avstånd 70, 72, 77, 86, 185, 199, 202, 215

-avståndsmått 199-kod 83, 85, 114, 273-koder 82, 87

binära 82-kodord 84-vikt 70, 108, 178

hard decisions 244, 248se ävan hårda beslut 244

hard-decision receiver 152Heegard 264heltal 29

godtyckligt - 29heltalsaddition 22

- modulo p 33heltalsaritmetik 28heuristiska designregler 234heuristiska metoder 163, 185Hippolyte Jean Vernier 52Hocquenghem 125

horisontell avkodning 250, 256, 258hypotes 246hål 291

se även pits 291hålvägg 291

se även pit wall 291hård avkodning 257hård beslutsregel 246hårda beslut 244, 248–249

se även hard decisions 244

i.i.d. = independent and identically distributed 252

icke vidrörande slinga 179icke vidrörande slingor 180–181icke-cykliska koder 111icke-parallella sekvenser 233icke-parallella vägar 234iCoding 267ideal 96identitet 19

MacWilliams - 82identitetselement 19–20, 24

additivt - 26–27multiplikativt - 26, 29, 31

IIR = Inifinite Impulse Response 259se även impulssekvenssvar

oändligt - 259impuls

-sekvens 166-svar 165

impulssekvenssvar 167oändligt - 259

se även IIR = Infinte Impulse

Response 259ändligt

se även FIR = Finite Impulse

Response 258ändligt - 258

incremental redundancy-system 285se även extra checkbitar 285

index 180

Page 314: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

312

informationshastighet 223informationskälla 8informationsöverförings

-hastighet 7-takt 13

inspelning 289interceptvärde 246interferens 7interleaver 262, 264

kors- 292se även cross inter-leaver 292

korsde- 293slump- 260

interleaving 289cross- 289

inversegen - 20-element 19multiplikativ - 20, 23, 27–28

irreducibla minimalpolynom 115irreducibla polynom 34–35, 45iteration 258iterativ avkodning 245, 249iterativ avkodningsprocedur 245

Jelinek 260Jordan 55Journal de Mathématiques Pures et

Appliquées 55Jupiter 116

kanal- med minne 13AVGB- 207–208, 215brusig - 7, 194, 231BSC- 215–216, 282diskret minneslös - 263diskret minneslös gaussisk - 262-kapacitet 7, 16-kodare 7minneslös - 195radio- 7, 112

fädande 153

retur- 271kanalkodningsstandard 295kanonisk bas 30karakteristik

talkroppens - 33kardinaltal 27–28, 30

mängdens - 20Karl X 54Kasami 272katastrofal faltningskod 176Kløve 272kod

binär - 61block- 8, 15–16dual - 64felkorrigerande - 281felupptäckande - 281–282förkortad - 111förkortad systematisk - 111-modifiering 86-ord 61–62, 95, 103-ordslängd 83-ordssfär 82-ordsutgång 109perfekt - 109, 114, 116-polynom 95–99, 108punkterad - 244repetitions- 114sammanlänkad - 243seriesammanlänkad - 243-sfär 282–283systematisk - 248systematisk invertibel - 285-takt 8–9, 13, 275t-felsrättande - 126trippelfelsrättande - 116-vektor 61, 65–66, 95, 108, 117,

250kodare

icke-systematiska - 258minneslös - 8NSC- 259–260RSC- 259–260

Page 315: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

313

systematisk - 258systematisk cyklisk - 112

kodat system 14kodens effektiva takt 166kodens relativa takt 111koder

algebraiska - 39, 125cykliska - 39enkelfelskorrigerande - 82förkortade - 111modifierade linjära - 85, 111perfekta - 82

kodhastighet 223kodning 102

binär - 13felkorrigerande - 7, 266icke systematisk - 102systematisk - 63, 102systematisk cyklisk - 105

kodningsförstärkning 208, 223, 233, 235, 243se även code gain 223asymptotisk - 233–234

utökad 235kodningskrets

systematisk - 106kodningsvinst 295kodord 7, 9, 15, 65, 67, 111, 113, 116,

130, 282–283faltat - 164felaktiga - 71giltiga - 71giltigt - 107grann- 72nollskilda - 125

kodords-längd 82, 85, 108, 113-register 110-registerinnehåll 110-sfär 73-vektor 83, 86–87

kodssystemen- 281–282

kodtakt 223, 266, 295–297kodulering 213

se även spaljékodad modulation 213

kolumnkoder 250kombinationssystem 281kommunikationssystem 9, 289komponentkodare 243, 258, 296konjugatelement 39konjugater 40konjugatklass 39–40, 43–44, 49–50,

97–98, 100, 114–115, 127korrelationsmottagare 10korsdeinterleaver 293korsinterleaver 292

se även cross-interleaver 292krets 175kvantiseringsbrus 290kvittering 274

se även ACK = ACKnowledgement 274

käll-avkodare 8-kodare 7

källadigital - 8

Lagrange 52lagringssystem 8lands 291

se även upphöjningar 291laser 289LCM = Least Common Multiple 126

se även minsta gemensamma multipeln 126

LDPC 268LDPC = Low-Density Parity

Check 268Leçon sur le calcul des fonctions 52Legendre 52lengthening 86

se även förlängning 86likelihood ratio test 247

Page 316: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

314

likelihoodbegreppet 245likelihoodfunktionen 195, 263likelihoodförhållandetest 247Lin 272, 285linjär (n,k)-kod 61–62linjär kod 87, 107linjära koder 95, 108, 119Liouville 55ljud

-fonograf 289-teknologi 289-återgivningssystem 289-återgivningsteknologi 289

LLR 247–248, 252, 254, 256, 261–262- extravärden 254apriori - 248extra - 250-funktionen 260

loglikelihoodfunktionen 15, 195räknelagar för - 253

loglikelihoodförhållandet 247se även LLR = Log-Likelihood

Ratio 247Lois-Philippe 54Lucent 267Ludovico Ferrari 53Lycée Louis-le-Grand 51, 53långdistanstelefoni 82lägstagradspolynom 39

MacWilliams identitet 82Mandelbaum 285MAP 246MAP-avkodare = maximum

aposterioriavkodare 12–13, 194Masons formel 179, 182, 184Massey 213Mathematica 44–45, 66, 75–76, 80,

115, 184matris

dual - 64enhets- 63paritetscheck- 64

MatrixManipulation 45, 138Maximum Likelihood 78, 86, 194, 246meddelande 8, 61, 98, 102

-block 107-ord 9, 14, 98, 103, 106, 131, 134,

280, 285-polynom 98, 101–102, 134-vektor 61

medelenergitotal - 220

medelenergi/dimension 220mikrovågslänk 279minimal minimidistans 231minimala fria distansen 231, 233–234

se även minimum free distance 231minimalfelregeln 246minimalgradspolynom 126minimalpolynom 39–42, 44–45, 48,

55, 115, 119, 126–127, 129associerade - 43, 100, 114, 127associerat - 115

minimi-avstånd 70, 72-distans 70, 116, 125–127, 232, 272-metrik 200-vikt 70, 125

minimum free distance 231se även minimala fria distanse 231

minneskretsar 9minneslängd

kodares - 9minsta gemensamma multipeln 126

se även LCM = Least Common Multiple 126

mjuk uppskattning 254mjuka beslut 244, 248–249, 258, 263

se även soft decisions 244MLD = Maximum Likelihood

Decoder 15–16, 199MLH-avkodare = Maximum Likeli-

Hood-avkodare 12–13ML-mottagare 215mobilkommunikation 213

Page 317: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

315

modul 25modulator 7modulo-2 addition 20moduloräkning 29modulär

- addition 23- aritmetik 20- multiplikation 23- operation 22

Monte-Carlo-simuleringar 264Motorola 267mottagare

digital - 8MPSK 222MPSK = M-ary Phase Shift Keying =

m-är fasskift 218multiplikation

- modulo m 22binär - 28skalär - 29sluten under - 31

multiplikativ struktur 31multiprocessorsystem 276MUX 290mängd 19, 27–28

del- 25heltals- 28

mängdpartitionering 224se även set partioning 224

NAK 285NAK = Not AcKnowledged 274

se även omsändningsbegäran 274narrow sense 126

se även BCH-kod- i inskränkt mening 126

Nec 267nedsänkningar 291

se även pits 291Niccolò Fontana 53noder 175Nokia 267noll

-bitar 111-block 178-divisor 23-kodord 72, 78, 87, 201, 278, 282-kodvektor 70-meddelandeord 74-sekvens 176-symbol 178-syndrom 74-tillstånd 178-vektor 79

normerad medelenergi 233normerad medelsignalenergi 220NSC = NonSystematic convolutional

Code 259se även faltningskodare

icke-systematisk - 259NTTDoCoMo 267Nyquist-bandbredden 214, 223–224

okodat system 13omsändning 111, 275–276, 282–283omsändningsbegäran 274

se även RQ = Retransmission re-Quest och NAK = Not AcKnowledged 274

omsändningsfrekvens 282ordning 31, 114

elementets - 31–32, 97gruppens - 20multiplikativ - 125primtals- 29talkroppselementets - 31

paketfel 284paketöverföringstid 275parallell kodarstruktur 244parallell övergång 231–233parallella övergångar 234parallellt sammanlänkade

faltningskodare 244paritetsbitar 82paritetscheck

Page 318: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

316

-bitar 127, 271-block 107-ekvationer 99-matris 64, 66, 70, 74, 79, 82–84,

99, 108–109, 116, 128semiinfinit 168

-metoden 111-polynom 99–100, 108, 119

partition 230–231, 233partitioneringsdiagram 228partitioneringsträd 224, 226–227path 175

se även väg 175path metric 196

se även väg-metrik 196

perfekt kod 109Peterson 115, 131Philips 289pit wall 291

se även hålvägg 291pits 291

se även hål och nedsänkningar 291Poisson 54polynom

-division 184-form 45, 48-koefficienter 39-multiplikation 102primitiva - 33-produkt 99reciprokt - 100-representation 38

potensexponent 35Prange 95primitiv BCH-kod 127primitiva polynom 33, 35primitivt element 31, 33, 40, 44, 47,

97, 114, 127primitivt polynom 113, 127, 130primtal 23, 28–29, 32, 34primtalsordning 29, 33produktkod 250, 254, 258

tvådimensionell - 250tvådimensionell enkelparitets - 251,

253protokoll

adaptiva - 271pseudoslumpinterleaver 244puncturing 86

se även punktering 86punkterad kod 74, 244punktering 86, 296–297

se även puncturing 86

QAM 218QASK-modulation 220QPSK 230QPSK-signaluppsättning 231Qualcom 267

radikaler 53radkoder 250radvektor 64ram 273

se även frame 273Raviv 260Red Book 289redundanta bitar 9, 18, 223Reed-Solomon-kod 130, 145, 289, 292

t-felskorrigerande - 129Reed-Solomon-kodare 243Reed-Solomon-koder 81, 125, 129,

158, 291, 295avkodning av - 144

relativ taktförlust 166–167se även fractional rate loss 166

relativt prima 32rensning 86

se även expurgating 86Résolution des équations

algébriques 52rest

-block 107-polynom 108

returkanal 111, 271

Page 319: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

317

Richardson 266riktade grenar 174ring 26, 55, 96

- med identitet 26ickekommutativ - med identitet 26kommutativ - 26kommutativ - med identitet 27

Robespierre 51root of unity 126

se även enhetsrot 126RQ = Retransmission reQuest 274

se även omsändningsbegäran 274RSC = Recursive Systematic convolu-

tional Code 259–260run-length

maximum - 291minimum - 291

runlength-limited code 291rymddatasystem 295rymdkommunikation 267

sammanlänkad kod 243, 250se även concatenated code 243

sammanlänkning 258parallell - 264

Samsung 267sannolikhet

- för felavkodning 282- för omsändning 278- för paketfel 273–274, 281, 283aposteriori- 245apriori- 246, 254betingad - 10, 245simultan - 245, 260övergångs- 17

sannolikheten för felhändelse 204satellitkommunikation 213Saturnus 116Scipione del Ferro 53sekvenser

icke-parallella - 233Selective Repeat, SR-ARQ 274

se även ARQ

selektiv omsändning - 274set partitioning 224

se även mängdpartitionering 224Shannon, Claude 7, 16Shannons gräns 243, 265Shannons gränsreferens 266shortening 86

se även förkortning 86sidoinformation 13, 153–154, 201sidoklass 25–26, 74, 79, 107–108

se även coset 25cyklotomisk - 50distinkt - 25-ledare 25, 74, 108

signal-form 10-vektor 10

signalbrusförhållande 17, 264se även

SNR = Signal to Noise

Ratio 17signaler

bredbandiga - 9signalering

m-är - 214signalflödesgraf 179signalpartition 232signalpunkt 220signaluppsättning 230

16-PSK- 22632-CROSS- 224–225AM- 218del- 225expanderad - 224föräldra- 224QPSK- 231

signaluppsättningar 220, 228CROSS- 220del- 224en-dimensionella - 213

ortogonala 219expanderade - 213MPSK- 221

Page 320: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

318

mångdimensionella - 213QASK- 220rektangulära - 220, 222två-dimensionella - 213, 219

signaluppsättnings-expansionsfaktor 233-nivå 227-partitionering 213, 229, 237

signalvaloptimalt - 9

Singleton-gränsen 70skalär 29

- multiplikation 29-kropp 29

skiftregister 16, 95, 104–105, 119, 163–164, 193-avkodare 104, 110-kodare 104, 111-kopplingar 104linjära - 163linjärt - 154linjärt återkopplat - 104

skurfel 112, 289skurfelskanal 152skurfelskanaler 17

se även channelsburst error - 17

skurfelskorrigering 289Slepian 74slinga 175, 179slingans cofaktor 180slumpinterleaver 260SNR = Signal to Noise Ratio 17

se även signalbrusförhållande 17soft decisions 244, 248

se även mjuka beslut 244soft-decision receiver 153soft-in/soft-ut-avkodare 249Soleymani 295Sony 267, 289spaljé 196spaljédiagram 191–193, 197–198,

200, 230–233, 236

se även trellis diagram 191spaljékodad modulation 213

se även TCM = Trellis Coded Modulation 213

spann 166, 178, 185, 258spannet

se även constraint length 166spiralspår 291spårningskontroll 290standarduppställning 74, 78standarduppställningsschema 77, 107statistisk hypotesprövning 245STMicroelectronics 267Stop-and-Wait, SW-ARQ 274

se även ARQstanna och vänta - 274

suboptimala metoder 78suddning 153suddningsfel 153, 294

-positioner 154suddningsfelpolynom 157suddningsfelssignalering 294suddningsinformation 154survivor 196

se även överlevare 196SW-protokollet 277symbol

-intervall 9–10-tid 7-överföringshastighet 224-överföringstakt 13

symbolenergi 226symbolfel 231symbolfelfrekvens 214, 217syndrom 65–66, 68, 74–76, 78, 80–81,

83–84, 87, 107–110, 117, 131–132, 144-avkodning 74, 79-beräkning 107–108, 112-beräkningskrets 112-beräkningsregister 109–110-ekvationer 131-koefficienter 154

Page 321: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

319

-matris 84–85, 131, 133, 144-polynom 108–109, 154-register 110-tabell 107–108-vektor 65, 71-värde 107

systembandbegränsat - 223faltningskodat - 14kodat - 14, 223okodat - 13, 223

systematisk- (n,k)-kod 111- blockkod 63- form 64, 82, 103- kodning 63, 86, 104–105

systematisk invertibel kod 285systematisk kod 248–249, 261, 272

taktförlustrelativ - 166

talkropp 27, 55se även field 27- med ändlig ordning 28del- 38–39, 41Galois- 28oändlig - 27utvidgnings- 29, 38ändlig - 29, 34, 38–39

talkroppselement 31, 290del- 38, 41

Tannery 55TCM 224, 237

en-dimensionell - 223-system 227två-dimensionell - 223

TCM = Trellis Coded Modulation 213se även spaljékodad

modulation 213Théorie des fonctions analytiques 52Thitmajshima 243–244, 248, 259, 264tidskontroll 290tillstånd

bra - 17dåligt - 17

tillståndsdiagram 173–174, 178, 191–192, 230

tillståndstabell 236tillståndsändring 174Traité des Substitutions 55transfer function matrix 171

se även överföringsfunktionmatris 171

transmissionen 179transmissionsfunktionen 205transponder 278trellis diagram 191

se även spaljédiagram 191trädadress 226turboavkodare

återkopplad - 260turboavkodning 249Turboconcept 267turbokod 266, 295turbokodare 244, 258, 260, 296turbokoder 243, 268, 295turbokodning 243, 258turbokodsstandard 295två-kodssystem 281täckning 113

se även coverage 113täthetsfunktion

betingad - 246täthetsfördelning

brusets - 10tömningsbitar 166

Uilaipornsawai 295Ungerböeck 213, 224, 234, 237Ungerböeck-kodare 226–227, 229,

231, 234, 236Ungerböeck-kodning 232Ungerböecks designregler 234upphöjningar 291

se även lands 291Urbanke 266

Page 322: Studentlitteratur.ab.Kodning.for.Felkontroll.2009.Swedish.retail.ebook Distribution

320

utsträckning 86se även extending 86

utvidgningstalkropp 29, 43, 126se även extension field 29

utökning 86se även augmenting 86

vandringsvågrör 218vektor 29

-addition 29-delrum 30, 62, 64dualt -rum 30-formrepresentation 36framkopplings- 296–297kod- 65rad- 64-representation 132-rum 29–30, 38, 61, 95–96återkopplings- 295

verkningsgradeffekt- 213spektrum- 213–214, 216, 220

vertikal avkodning 250, 256, 258Victor Hugo 51vikt

-angivelse 81, 85, 178för dual kod 81

-fördelning 81viktad riktad graf 175viktdistributionsfunktionen 178vinkelns tredelning 51Viterbi 191, 206

-algoritmen 191, 194, 196, 199Viterbis avkodningsmetod 260Voyager 116vågform 7

-signal 9väg 175

se även path 175-metrik 196

se även path metric 196

partiell 196–197unik - 193

väntetid 275, 278väntetidens längd 274

Wang 285weight enumerator 81

se även viktangivelse 81Weldon 115Wicker 264

återkopplingsvektor 295

överföringsfunktionsmatris 171se även transfer function matrix 171

överföringshastighet 276överföringskanal 204, 278överföringssystem

binärt - 246data- 8

överföringstidpaket- 275

övergångparallell - 231

övergångssannolikhet 199, 272, 278, 282

överlevare 196, 200se även survivor 196