Koodausteoria, Kesä 2014

Samankaltaiset tiedostot
Koodausteoria, Kesä 2014

Koodausteoria, Kesä 2014

Koodausteoria, Kesä 2014

Koodausteoria, Kesä 2014

Koodausteoria, Kesä 2014

Koodausteoria, Kesä 2014

Laajennetut Preparata-koodit

Koodausteoria, Kesä 2014

Koodausteoria, Kesä 2014

7 Vapaus. 7.1 Vapauden määritelmä

Kannan vektorit siis virittävät aliavaruuden, ja lisäksi kanta on vapaa. Lauseesta 7.6 saadaan seuraava hyvin käyttökelpoinen tulos:

1.1. Määritelmiä ja nimityksiä

MS-C1340 Lineaarialgebra ja

Lineaarialgebra ja matriisilaskenta I

MS-C1340 Lineaarialgebra ja differentiaaliyhtälöt

Käänteismatriisi 1 / 14

Vapaus. Määritelmä. jos c 1 v 1 + c 2 v c k v k = 0 joillakin c 1,..., c k R, niin c 1 = 0, c 2 = 0,..., c k = 0.

Determinantti 1 / 30

1 Lineaariavaruus eli Vektoriavaruus

Ominaisvektoreiden lineaarinen riippumattomuus

Matriisialgebra harjoitukset, syksy x 1 + x 2 = a 0

Insinöörimatematiikka D

Yhteenlaskun ja skalaarilla kertomisen ominaisuuksia

Ennakkotehtävän ratkaisu

802320A LINEAARIALGEBRA OSA I

Lineaarikuvauksen R n R m matriisi

Reedin ja Solomonin koodit Katariina Huttunen

Lineaarialgebra ja matriisilaskenta II. LM2, Kesä /141

Ominaisarvo ja ominaisvektori

BM20A0700, Matematiikka KoTiB2

Insinöörimatematiikka D

1 Ominaisarvot ja ominaisvektorit

Lineaarialgebra ja matriisilaskenta I

ominaisvektorit. Nyt 2 3 6

Matriisit. Määritelmä 1 Reaaliluvuista a ij, missä i = 1,..., k ja j = 1,..., n, muodostettua kaaviota a 11 a 12 a 1n a 21 a 22 a 2n A =

KOODAUSTEORIA S

Lineaarialgebra ja matriisilaskenta II Syksy 2009 Laskuharjoitus 1 ( ) Ratkaisuehdotuksia Vesa Ala-Mattila

Matriisien tulo. Matriisit ja lineaarinen yhtälöryhmä

Määritelmä Olkoon T i L (V i, W i ), 1 i m. Yksikäsitteisen lineaarikuvauksen h L (V 1 V 2 V m, W 1 W 2 W m )

9 Matriisit. 9.1 Matriisien laskutoimituksia

Ominaisarvo ja ominaisvektori

Lineaarikuvausten. Lineaarikuvaus. Lineaarikuvauksia. Ydin. Matriisin ydin. aiheita. Aiheet. Lineaarikuvaus. Lineaarikuvauksen matriisi

Ortogonaalinen ja ortonormaali kanta

5 Ominaisarvot ja ominaisvektorit

3.1 Lineaarikuvaukset. MS-A0004/A0006 Matriisilaskenta. 3.1 Lineaarikuvaukset. 3.1 Lineaarikuvaukset

Lineaarikombinaatio, lineaarinen riippuvuus/riippumattomuus

Ominaisarvot ja ominaisvektorit 140 / 170

Liittomatriisi. Liittomatriisi. Määritelmä 16 Olkoon A 2 M(n, n). Matriisin A liittomatriisi on cof A 2 M(n, n), missä. 1) i+j det A ij.

Lineaariavaruudet. Span. Sisätulo. Normi. Matriisinormit. Matriisinormit. aiheita. Aiheet. Reaalinen lineaariavaruus. Span. Sisätulo.

Insinöörimatematiikka D

802118P Lineaarialgebra I (4 op)

Määritelmä 1. Olkoot V ja W lineaariavaruuksia kunnan K yli. Kuvaus L : V. Termejä: Lineaarikuvaus, Lineaarinen kuvaus.

Numeeriset menetelmät

Esko Turunen Luku 3. Ryhmät

Matriisipotenssi. Koska matriisikertolasku on liitännäinen (sulkuja ei tarvita; ks. lause 2), voidaan asettaa seuraava määritelmä: ja A 0 = I n.

3 Lineaariset yhtälöryhmät ja Gaussin eliminointimenetelmä

Insinöörimatematiikka D

Vektoreiden virittämä aliavaruus

802320A LINEAARIALGEBRA OSA III

Lineaariset kongruenssiyhtälöryhmät

ja jäännösluokkien joukkoa

MS-A0003/A Matriisilaskenta Laskuharjoitus 6

Lineaarialgebra ja differentiaaliyhtälöt Laskuharjoitus 1 / vko 44

LU-hajotelma. Esimerkki 1 Matriisi on yläkolmiomatriisi ja matriisi. on alakolmiomatriisi. 3 / 24

3 Lineaariset yhtälöryhmät ja Gaussin eliminointimenetelmä

3.2 Matriisien laskutoimitukset. 3.2 Matriisien laskutoimitukset. 3.2 Matriisien laskutoimitukset. 3.2 Matriisien laskutoimitukset

JAKSO 2 KANTA JA KOORDINAATIT

Ortogonaaliprojektio äärellisulotteiselle aliavaruudelle

1 Sisätulo- ja normiavaruudet

Kantavektorien kuvavektorit määräävät lineaarikuvauksen

Vektoreiden A = (A1, A 2, A 3 ) ja B = (B1, B 2, B 3 ) pistetulo on. Edellisestä seuraa

802320A LINEAARIALGEBRA OSA II

Kuvaus. Määritelmä. LM2, Kesä /160

Similaarisuus. Määritelmä. Huom.

Latinalaiset neliöt ja taikaneliöt

7. Olemassaolo ja yksikäsitteisyys Galois n kunta GF(q) = F q, jossa on q alkiota, määriteltiin jäännösluokkarenkaaksi

Matikkapaja keskiviikkoisin klo Lineaarialgebra (muut ko) p. 1/81

Lineaarialgebra b, kevät 2019

Mikäli huomaat virheen tai on kysyttävää liittyen malleihin, lähetä viesti osoitteeseen

Matriisilaskenta. Harjoitusten 3 ratkaisut (Kevät 2019) 1. Olkoot AB = ja 2. Osoitetaan, että matriisi B on matriisin A käänteismatriisi.

MS-C1340 Lineaarialgebra ja differentiaaliyhtälöt

[E : F ]=[E : K][K : F ].

Insinöörimatematiikka D

Ortogonaalisen kannan etsiminen

Matikkapaja keskiviikkoisin klo Lineaarialgebra (muut ko) p. 1/210

MS-C1340 Lineaarialgebra ja

Gaussin ja Jordanin eliminointimenetelmä

Vapaus. Määritelmä. jos c 1 v 1 + c 2 v c k v k = 0 joillakin c 1,..., c k R, niin c 1 = 0, c 2 = 0,..., c k = 0.

2.5. Matriisin avaruudet ja tunnusluvut

13. Ratkaisu. Kirjoitetaan tehtävän DY hieman eri muodossa: = 1 + y x + ( y ) 2 (y )

on Abelin ryhmä kertolaskun suhteen. Tämän joukon alkioiden lukumäärää merkitään

5 OMINAISARVOT JA OMINAISVEKTORIT

HY / Avoin yliopisto Lineaarialgebra ja matriisilaskenta II, kesä 2015 Harjoitus 1 Ratkaisut palautettava viimeistään maanantaina klo

A = a b B = c d. d e f. g h i determinantti on det(c) = a(ei fh) b(di fg) + c(dh eg). Matriisin determinanttia voi merkitä myös pystyviivojen avulla:

Esimerkki 19. Esimerkissä 16 miniminormiratkaisu on (ˆx 1, ˆx 2 ) = (1, 0).

1 Kertaus. Lineaarinen optimointitehtävä on muotoa:

MS-A0207 Differentiaali- ja integraalilaskenta 2 (Chem) Yhteenveto, osa I

Transversaalit ja hajoamisaliryhmät

Mat Dynaaminen optimointi, mallivastaukset, kierros 1

8 KANNAT JA ORTOGONAALISUUS. 8.1 Lineaarinen riippumattomuus. Vaasan yliopiston julkaisuja 151

Transkriptio:

Koodausteoria, Kesä 2014 Topi Törmä Matemaattisten tieteiden laitos

6. Ryöppyvirheitä korjaavat koodit Topi Törmä Matemaattisten tieteiden laitos 2 / 34

6.1 Peruskäsitteitä Aiemmin on implisiittisesti oletettu, että virheet esiintyvät toisistaan riippumatta. Useissa tapauksissa virheet esiintyvät kuitenkin ryöppyinä (error burst) eivätkä toisistaan riippumattomina yksittäisinä virheinä. Tällöin on tarpeen tarkastella koodeja, jotka kykenevät korjaamaan tällaisia virheitä. Topi Törmä Matemaattisten tieteiden laitos 3 / 34

6.1 Peruskäsitteitä Aiemmin on implisiittisesti oletettu, että virheet esiintyvät toisistaan riippumatta. Useissa tapauksissa virheet esiintyvät kuitenkin ryöppyinä (error burst) eivätkä toisistaan riippumattomina yksittäisinä virheinä. Tällöin on tarpeen tarkastella koodeja, jotka kykenevät korjaamaan tällaisia virheitä. Määritelmä 6.1.1. Vektoria (0,..., 0, e i,..., e i+b 1, 0,..., 0), missä e i 0, e i+b 1 0, sanotaan b-ryöpyksi tai b-pituiseksi ryöpyksi. Koodia, joka korjaa kaikki enintään b-pituiset ryöpyt, mutta ei kaikkia (b + 1)-pituisia, sanotaan b-ryöpyt korjaavaksi koodiksi. Topi Törmä Matemaattisten tieteiden laitos 3 / 34

6.1 Peruskäsitteitä Aiemmin on implisiittisesti oletettu, että virheet esiintyvät toisistaan riippumatta. Useissa tapauksissa virheet esiintyvät kuitenkin ryöppyinä (error burst) eivätkä toisistaan riippumattomina yksittäisinä virheinä. Tällöin on tarpeen tarkastella koodeja, jotka kykenevät korjaamaan tällaisia virheitä. Määritelmä 6.1.1. Vektoria (0,..., 0, e i,..., e i+b 1, 0,..., 0), missä e i 0, e i+b 1 0, sanotaan b-ryöpyksi tai b-pituiseksi ryöpyksi. Koodia, joka korjaa kaikki enintään b-pituiset ryöpyt, mutta ei kaikkia (b + 1)-pituisia, sanotaan b-ryöpyt korjaavaksi koodiksi. Esim. 000100111000 on 6-ryöppy. Topi Törmä Matemaattisten tieteiden laitos 3 / 34

Lineaaristen koodien ryöppyvirheenkorjauskyvylle saadaan helposti seuraavat rajat. Lause 6.1.2. (Reiger-raja) a) Jos [n, k]-koodi paljastaa kaikki enintään b-pituiset ryöppyvirheet, niin n k b. b) Jos [n, k]-koodi korjaa kaikki enintään b-pituiset ryöppyvirheet, niin n k 2b. Topi Törmä Matemaattisten tieteiden laitos 4 / 34

Todistus: a) Olkoon C [n, k]-koodi kunnan Fq suhteen. Palautetaan mieleen, että joukko F n q jakautuu pistevieraisiin sivuluokkiin koodin C suhteen ja näitä sivuluokkia on q n k kappaletta. Tarkastellaan sellaisia joukon F n q enintään b-pituisia ryöppyjä, joiden viimeiset n b komponenttia ovat 0, ja merkitään niiden muodostamaa joukkoa B. Tällöin joukossa B on q b vektoria. Topi Törmä Matemaattisten tieteiden laitos 5 / 34

Todistus: a) Olkoon C [n, k]-koodi kunnan Fq suhteen. Palautetaan mieleen, että joukko F n q jakautuu pistevieraisiin sivuluokkiin koodin C suhteen ja näitä sivuluokkia on q n k kappaletta. Tarkastellaan sellaisia joukon F n q enintään b-pituisia ryöppyjä, joiden viimeiset n b komponenttia ovat 0, ja merkitään niiden muodostamaa joukkoa B. Tällöin joukossa B on q b vektoria. Jos C paljastaa kaikki enintään b-pituiset ryöpyt, niin mitään koodisanaa c 1 ei voi esittää muodossa c 2 + b 1, missä c 2 C ja b 1 B. Tällöin joukon B vektorien on oltava koodin C eri sivuluokissa. Jos nimittäin a, b B ja a ja b ovat samassa sivuluokassa, niin a b C, joten a b olisi enintään b-pituinen ryöppy ja c + (a b) olisi koodisana kaikilla c C. Siis sivuluokkien lukumäärä on q n k q b, joten n k b. Topi Törmä Matemaattisten tieteiden laitos 5 / 34

b) Oletetaan koodin C korjaavan kaikki enintään b-pituiset ryöpyt. Jokainen enintään 2b-pituinen (ja vähintään 2-pituinen) ryöppy e voidaan esittää muodossa e = e 1 e 2, missä e 1 ja e 2 ovat enintään b-pituisia ryöppyjä. Jos e C, niin C ei pystyisi korjaamaan kaikkia enintään b-pituisia ryöppyjä, sillä tällöin saatua viestiä 0 + e 1 = e + e 2 ei kyettäisi dekoodaamaan. Siis koodin on havaittava kaikki enintään 2b-pituiset ryöpyt, ja a-kohdan nojalla n k 2b. Topi Törmä Matemaattisten tieteiden laitos 6 / 34

b) Oletetaan koodin C korjaavan kaikki enintään b-pituiset ryöpyt. Jokainen enintään 2b-pituinen (ja vähintään 2-pituinen) ryöppy e voidaan esittää muodossa e = e 1 e 2, missä e 1 ja e 2 ovat enintään b-pituisia ryöppyjä. Jos e C, niin C ei pystyisi korjaamaan kaikkia enintään b-pituisia ryöppyjä, sillä tällöin saatua viestiä 0 + e 1 = e + e 2 ei kyettäisi dekoodaamaan. Siis koodin on havaittava kaikki enintään 2b-pituiset ryöpyt, ja a-kohdan nojalla n k 2b. Sellaisia [n, k]-koodeja, joilla on voimassa yhtäsuuruus Reiger-rajassa, sanotaan Reiger-optimaalisiksi. Jos [n, k]-koodi korjaa kaikki enintään b-pituiset ryöppyvirheet, mutta ei korjaa kaikkia (b + 1)-pituisia, niin lukua 2b/(n k) sanotaan koodin ryöppykorjaussuhteeksi. Topi Törmä Matemaattisten tieteiden laitos 6 / 34

Määritelmä 6.1.3. Sykliseksi b-ryöpyksi sanotaan Määritelmän 6.1.1 mukaisia b-ryöppyjä ja muotoa (e 0,..., e b (n i) 1, 0,..., 0, e i,..., e n 1 ), missä e i e b (n i) 1 0, olevia ryöppyjä (eli tavallisen b-ryöpyn sykliset siirrot). Topi Törmä Matemaattisten tieteiden laitos 7 / 34

Määritelmä 6.1.3. Sykliseksi b-ryöpyksi sanotaan Määritelmän 6.1.1 mukaisia b-ryöppyjä ja muotoa (e 0,..., e b (n i) 1, 0,..., 0, e i,..., e n 1 ), missä e i e b (n i) 1 0, olevia ryöppyjä (eli tavallisen b-ryöpyn sykliset siirrot). Määritelmä 6.1.4. Sykliseksi b-ryöppyvirheet korjaavaksi koodiksi sanotaan syklistä koodia, joka korjaa kaikki enintään b-pituiset sykliset ryöpyt. Topi Törmä Matemaattisten tieteiden laitos 7 / 34

Määritelmä 6.1.3. Sykliseksi b-ryöpyksi sanotaan Määritelmän 6.1.1 mukaisia b-ryöppyjä ja muotoa (e 0,..., e b (n i) 1, 0,..., 0, e i,..., e n 1 ), missä e i e b (n i) 1 0, olevia ryöppyjä (eli tavallisen b-ryöpyn sykliset siirrot). Määritelmä 6.1.4. Sykliseksi b-ryöppyvirheet korjaavaksi koodiksi sanotaan syklistä koodia, joka korjaa kaikki enintään b-pituiset sykliset ryöpyt. Lause 6.1.5 Jos C on syklinen b-ryöppyvirheet korjaava [n, k]-koodi kunnan Fq suhteen ja 1 k n 1, niin n(q 1) q n k b+1 1. Topi Törmä Matemaattisten tieteiden laitos 7 / 34

Todistus: Lasketaan kuinka monta syklistä enintään b-pituista ryöppyvirhettä on: mahdollisia aloituskohtia on n kappaletta, alkupaikalle e i 0 on q 1 vaihtoehtoa ja muille b 1 paikalle on yhteensä q b 1 vaihtoehtoa. Yhteensä tällaisia ryöppyjä on siis n(q 1)q b 1 kappaletta (huomaa, että Lauseen 6.1.2. b-kohdan nojalla b < n 2 ). Näillä kaikilla ja nollavektorilla 0 tulee olla eri syndromi eli niiden on oltava eri sivuluokissa, joten q n k n(q 1)q b 1 + 1. Tämän perusteella q n k b+1 n(q 1) + 1. Topi Törmä Matemaattisten tieteiden laitos 8 / 34

Esimerkki D Olkoot C 1 kunnan Z3 suhteen muodostettu [7, 3]-koodi, jonka generoijamatriisi on 1 0 0 2 1 0 1 G 1 = 0 1 0 0 1 2 1, 0 0 1 2 0 1 1 ja C 2 kunnan Z3 suhteen muodostettu [4, 2]-koodi, jonka generoijamatriisi on [ ] 1 2 0 1 G 1 =. 0 1 1 1 Topi Törmä Matemaattisten tieteiden laitos 9 / 34

Tällöin koodien tarkistusmatriisit ovat 1 0 1 1 0 0 0 H 1 = 2 2 0 0 1 0 0 0 1 2 0 0 1 0 ja H 2 = 2 2 2 0 0 0 1 [ 1 1 2 ] 0 2 0 2 1 sekä minimietäisyydet d min C 1 = 4 ja d min C 2 = 3. Näin ollen molemmat koodit korjaavat ainakin 1-pituiset ryöpyt, sillä molempien virheenkorjauskyky on 1. Reiger-rajan mukaan C 1 korjaa enintään 2-pituiset ryöpyt ja C 2 korjaa enintään 1-pituiset ryöpyt. Näin ollen C 2 ei korjaa 1-pituisia ryöppyjä pidempiä ryöppyvirheitä. Topi Törmä Matemaattisten tieteiden laitos 10 / 34

Lasketaan kaikkien 2-pituisten ryöppyjen syndromit koodin C 1 suhteen: (1100000)H T 1 = (1111), (2200000)H T 1 = (2222), (0110000)H T 1 = (1201), (0220000)H T 1 = (2102), (0011000)H T 1 = (2022), (0022000)H T 1 = (1011), (0001100)H T 1 = (1100), (0002200)H T 1 = (2200), (0000110)H T 1 = (0110), (0000220)H T 1 = (0220), (0000011)H T 1 = (0011), (0000022)H T 1 = (0022), (1000001)H T 1 = (1200), (2000002)H T 1 = (2100). Koska kaikilla 2-pituisilla ryöpyillä on eri syndromi, koodi C 1 korjaa kaikki 2-pituiset ryöpyt (viimeisen syndromirivin nojalla myös sykliset 2-pituiset ryöpyt). Topi Törmä Matemaattisten tieteiden laitos 11 / 34

6.2 RS-koodeista johdetut koodit Olkoon α kunnan Fp m primitiivialkio. Tarkastellaan pituutta n = p m 1 olevaa RS-koodia, jonka generoijapolynomi on d 1 g(x) = (x α i ). i=1 Tämän koodin minimietäisyys on d ja n k = d 1, sillä RS-koodit ovat maksimietäisyyskoodeja. Jos {β 1,..., β m } on kunnan Fp m kanta kunnan Z p suhteen, niin jokaisella β Fp m on yksikäsitteinen esitys β = b 1 β 1 + + b m β m, b i Zp, ja saadaan vastaavuus β (b 1,..., b m ). Korvaamalla tämän vastaavuuden mukaisesti edellä olevan RS-koodin koodisanoissa jokainen komponentti m-pituisella Zp-kertoimisella vektorilla saadaan mn-pituinen lineaarinen koodi C kunnan Zp suhteen. Topi Törmä Matemaattisten tieteiden laitos 12 / 34

Jos b (r 1)m + 1, niin b-pituinen ryöppyvirhe voi vaikuttaa enintään r:ään alkuperäisen koodin komponenttiin. Jos d = 2t + 1 (alkuperäinen koodi on t virhettä korjaava) ja b (t 1)m + 1, (1) niin kaikki enintään b-pituiset ryöppyvirheet voidaan korjata. Topi Törmä Matemaattisten tieteiden laitos 13 / 34

Esimerkki Olkoon α kunnan F128 = F 2 7 primitiivialkio ja g(x) = 8 (x + α i ), i=1 jolloin n = 127, d = 9 ja t = 4. Ehto (1) saa nyt muodon b 3 7 + 1 = 22, joten saatava binäärinen 889-pituinen koodi korjaa kaikki enintään 22-pituiset ryöppyvirheet. Topi Törmä Matemaattisten tieteiden laitos 14 / 34

6.3 Tulokoodit Määritelmä 6.3.1. Matriisien A n1 m 1 ja B n2 m 2 Kronecker-tuloksi A B sanotaan matriisia, joka on lohkomuodossa a 11 B a 12 B... a 1m1 B a 21 B a 22 B... a 2m1 B.... a n1 1B a n1 2B... a n1 m 1 B (n 1 n 2 ) (m 1 m 2 ) Topi Törmä Matemaattisten tieteiden laitos 15 / 34

Esimerkki: Matriiseille I 2 = [ ] [ ] 1 0 1 1 ja H 0 1 2 = saadaan 1 1 1 1 0 0 1 0 1 0 I 2 H 2 = 1 1 0 0 0 0 1 1 H 2 I 2 = 0 1 0 1 1 0 1 0. 0 0 1 1 0 1 0 1 Topi Törmä Matemaattisten tieteiden laitos 16 / 34

Kronecker-tulolle pätevät seuraavat perusominaisuudet. 1. Jos tulot AC ja BD ovat määriteltyjä, niin myös (A B)(C D) on määritelty ja 2. (A B) T = A T B T. 3. Jos A + B on määritelty, niin (A B)(C D) = (AC) (BD). (A + B) C = A C + B C ja C (A + B) = C A + C B. Topi Törmä Matemaattisten tieteiden laitos 17 / 34

Kronecker-tulolle pätevät seuraavat perusominaisuudet. 1. Jos tulot AC ja BD ovat määriteltyjä, niin myös (A B)(C D) on määritelty ja 2. (A B) T = A T B T. 3. Jos A + B on määritelty, niin (A B)(C D) = (AC) (BD). (A + B) C = A C + B C ja C (A + B) = C A + C B. 4. c(a B) = (ca) B = A (cb) kaikilla c F. A 1 A 1 B 5.. B =.. A n B A n 6. Jos matriisin A rivit ovat lineaarisesti vapaat, samoin matriisin B rivit, niin myös matriisin A B rivit ovat lineaarisesti vapaat. Topi Törmä Matemaattisten tieteiden laitos 17 / 34

Jokainen n 1 n 2 -pituinen vektori c voidaan kirjoittaa n 1 n 2 -matriisiksi C jakamalla c n 2 -pituisiin osiin ja kirjoittamalla ne allekkain. Topi Törmä Matemaattisten tieteiden laitos 18 / 34

Jokainen n 1 n 2 -pituinen vektori c voidaan kirjoittaa n 1 n 2 -matriisiksi C jakamalla c n 2 -pituisiin osiin ja kirjoittamalla ne allekkain. Esimerkiksi vektorista 011101 saadaan matriisit 0 1 [ ] 1 1 0 1 1 ja. 1 0 1 0 1 2 3 3 2 Topi Törmä Matemaattisten tieteiden laitos 18 / 34

Jokainen n 1 n 2 -pituinen vektori c voidaan kirjoittaa n 1 n 2 -matriisiksi C jakamalla c n 2 -pituisiin osiin ja kirjoittamalla ne allekkain. Esimerkiksi vektorista 011101 saadaan matriisit 0 1 [ ] 1 1 0 1 1 ja. 1 0 1 0 1 2 3 3 2 Määritelmä 6.3.2 Saman kunnan suhteen olevien [n i, k i ]-koodien C i, i = 1, 2, muodostamaksi tulokoodiksi sanotaan kaikkien niiden n 1 n 2 -pituisten vektorien c muodostamaa koodia, joita vastaavien n 1 n 2 -matriisien vaakarivit ovat koodin C 2 ja pystyrivit koodin C 1 koodisanoja. Tällaiselle tulokoodille käytetään merkintää C 1 C 2. Topi Törmä Matemaattisten tieteiden laitos 18 / 34

Lause 6.3.3. Jos d min C 1 = d 1 ja d min C 2 = d 2, niin C 1 C 2 on lineaarinen koodi ja d min (C 1 C 2 ) = d 1 d 2. Topi Törmä Matemaattisten tieteiden laitos 19 / 34

Lause 6.3.3. Jos d min C 1 = d 1 ja d min C 2 = d 2, niin C 1 C 2 on lineaarinen koodi ja d min (C 1 C 2 ) = d 1 d 2. Todistus: Koodin C 1 C 2 lineaarisuus on helppo todeta (Jos c 1, c 2 C 1 C 2 ja a F, niin c 1 + c 2 C 1 C 2 ja ac 1 C 1 C 2. ) Jos c 0 on koodin C 1 C 2 sana, niin vastaavan matriisin C jokaisen nollasta eroavan rivin paino on vähintään d min C 2 = d 2 ja näitä rivejä on ainakin d min C 1 = d 1 kappaletta. Siten wt(c) d 1 d 2 ja d min (C 1 C 2 ) d 1 d 2. Topi Törmä Matemaattisten tieteiden laitos 19 / 34

Lause 6.3.3. Jos d min C 1 = d 1 ja d min C 2 = d 2, niin C 1 C 2 on lineaarinen koodi ja d min (C 1 C 2 ) = d 1 d 2. Todistus: Koodin C 1 C 2 lineaarisuus on helppo todeta (Jos c 1, c 2 C 1 C 2 ja a F, niin c 1 + c 2 C 1 C 2 ja ac 1 C 1 C 2. ) Jos c 0 on koodin C 1 C 2 sana, niin vastaavan matriisin C jokaisen nollasta eroavan rivin paino on vähintään d min C 2 = d 2 ja näitä rivejä on ainakin d min C 1 = d 1 kappaletta. Siten wt(c) d 1 d 2 ja d min (C 1 C 2 ) d 1 d 2. Jos c 1 C 1, c 2 C 2 ja wt(c i ) = d i, niin c T 1 c 2 C 1 C 2 ja lisäksi wt(c T 1 c 2) = wt(c 1 ) wt(c 2 ) = d 1 d 2, joten d min (C 1 C 2 ) d 1 d 2. Topi Törmä Matemaattisten tieteiden laitos 19 / 34

Lause 6.3.4. Jos G i on [n i, k i ]-koodin C i, i = 1, 2, generoijamatriisi, niin G 1 G 2 on tulokoodin C 1 C 2 generoijamatriisi. Topi Törmä Matemaattisten tieteiden laitos 20 / 34

Lause 6.3.4. Jos G i on [n i, k i ]-koodin C i, i = 1, 2, generoijamatriisi, niin G 1 G 2 on tulokoodin C 1 C 2 generoijamatriisi. Todistus: Matriisin G 1 G 2 rivit ovat koodin C 1 C 2 koodisanoja, niitä on k 1 k 2 kappaletta ja ominaisuuden 6 nojalla ne ovat lineaarisesti vapaita. Jos c 1 = m 1 G 1 ja c 2 = m 2 G 2, niin ominaisuuden 1 nojalla (m 1 m 2 )(G 1 G 2 ) = (m 1 G 1 ) (m 2 G 2 ) = c 1 c 2, joten vektorit c 1 c 2 ovat matriisin G 1 G 2 rivien lineaariyhdisteitä. Topi Törmä Matemaattisten tieteiden laitos 20 / 34

Lisäksi tulokoodin C 1 C 2 jokainen koodivektori c on lausuttavissa muotoa c 1 c 2 olevien vektoreiden lineaariyhdisteenä. Tässä ideana on tehdä sanaa c vastaavalle matriisille C hajotelma 0 c 11 0 c 21 C =. = c 22 0. + dt 1 c 11 = c 33 + d T 1 c 11 + d T 2 c 22. c n1,1 c n1,2 n 1 = = d T i c ii, i=1 c n1,3 missä d i C 1 ja c ii C 2 kaikilla i = 1,..., n 1. Topi Törmä Matemaattisten tieteiden laitos 21 / 34

Lisäksi tulokoodin C 1 C 2 jokainen koodivektori c on lausuttavissa muotoa c 1 c 2 olevien vektoreiden lineaariyhdisteenä. Tässä ideana on tehdä sanaa c vastaavalle matriisille C hajotelma 0 c 11 0 c 21 C =. = c 22 0. + dt 1 c 11 = c 33 + d T 1 c 11 + d T 2 c 22. c n1,1 c n1,2 n 1 = = d T i c ii, i=1 c n1,3 missä d i C 1 ja c ii C 2 kaikilla i = 1,..., n 1. Huom! Kronecker-tulon ominaisuuden 6 nojalla tulokoodin C 1 C 2 dimensio on k 1 k 2. Topi Törmä Matemaattisten tieteiden laitos 21 / 34

Esimerkki D jatkuu Koodien C 1 ja C 2 muodostaman tulokoodin C 1 C 2 generoijamatriisi on G = G 1 G 2 1 2 0 1 0 0 0 0 0 0 0 0 2 1 0 2 1 2 0 1 0 0 0 0 1 2 0 1 0 1 1 1 0 0 0 0 0 0 0 0 0 2 2 2 0 1 1 1 0 0 0 0 0 1 1 1 = 0 0 0 0 1 2 0 1 0 0 0 0 0 0 0 0 1 2 0 1 2 1 0 2 1 2 0 1 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 0 2 2 2 0 1 1 1. 0 0 0 0 0 0 0 0 1 2 0 1 2 1 0 2 0 0 0 0 1 2 0 1 1 2 0 1 0 0 0 0 0 0 0 0 0 1 1 1 0 2 2 2 0 0 0 0 0 1 1 1 0 1 1 1 Lauseen 6.3.3 nojalla d min (C 1 C 2 ) = d min C 1 d min C 2 = 4 3 = 12. Topi Törmä Matemaattisten tieteiden laitos 22 / 34

Olkoon H i [n i, k i ]-koodin C i, i = 1, 2, tarkistusmatriisi. Matriisi H 1 H 2 ei yleensä ole koodin C 1 C 2 tarkistusmatriisi, sillä sen rivien lukumäärä on (n 1 k 1 )(n 2 k 2 ) = n 1 n 2 k 1 n 2 k 2 n 1 + k 1 k 2 < n 1 n 2 k 1 k 2 ellei k 1 = k 2 = 0 tai k i = n i. Koodille C 1 C 2 saadaan tarkistusmatriisi seuraavasti. Olkoot koodin C i, i = 1, 2, generoija- ja tarkistusmatriisi sekä G 1 = [ I k1 P 1 ], G2 = [ I k2 P 2 ], H 1 = [ P T 1 I n1 k 1 ], H2 = [ P T 2 I n2 k 2 ] A 1 = [ I k1 0 k1 (n 1 k 1 )], A2 = [ I k2 0 k2 (n 2 k 2 )]. Tällöin koodin C 1 C 2 tarkistusmatriisi on H 1 H 2 H = H 1 A 2. A 1 H 2 Topi Törmä Matemaattisten tieteiden laitos 23 / 34

Lause 6.3.5 Jos C 1 korjaa kaikki enintään b-pituiset ryöppyvirheet ja C 2 on n 2 -pituinen, niin tulokoodi C 1 C 2 korjaa kaikki enintään bn 2 -pituiset ryöppyvirheet. Topi Törmä Matemaattisten tieteiden laitos 24 / 34

Lause 6.3.5 Jos C 1 korjaa kaikki enintään b-pituiset ryöppyvirheet ja C 2 on n 2 -pituinen, niin tulokoodi C 1 C 2 korjaa kaikki enintään bn 2 -pituiset ryöppyvirheet. Todistus: Kun koodisana c kirjoitetaan n 1 n 2 -matriisiksi C, niin sen sarakkeet ovat koodin C 1 koodisanoja. Tällöin enintään bn 2 -pituinen ryöppyvirhe voi aiheuttaa enintään b-pituisen ryöppyvirheen kuhunkin sarakkeeseen, joten C 1 korjaa nämä ryöpyt. Topi Törmä Matemaattisten tieteiden laitos 24 / 34

Lause 6.3.5 Jos C 1 korjaa kaikki enintään b-pituiset ryöppyvirheet ja C 2 on n 2 -pituinen, niin tulokoodi C 1 C 2 korjaa kaikki enintään bn 2 -pituiset ryöppyvirheet. Todistus: Kun koodisana c kirjoitetaan n 1 n 2 -matriisiksi C, niin sen sarakkeet ovat koodin C 1 koodisanoja. Tällöin enintään bn 2 -pituinen ryöppyvirhe voi aiheuttaa enintään b-pituisen ryöppyvirheen kuhunkin sarakkeeseen, joten C 1 korjaa nämä ryöpyt. Edellisestä todistuksessa käy ilmi myös dekoodausmenettely: Muutetaan saatu sana n 1 n 2 -matriisiksi ja dekoodataan jokainen sarake koodin C 1 dekoodausmenettelyllä. Topi Törmä Matemaattisten tieteiden laitos 24 / 34

6.4 Kiedotut koodit Määritelmä 6.4.1. Annetusta n-pituisesta koodista C muodostettu l-kertaisesti kiedottu koodi (interleaved to depth l) C (l) koostuu kaikista ln-pituisista koodisanoista, jotka saadaan seuraavasti: Otetaan l kappaletta koodin C sanoja c i = c i1 c i2... c in, i = 1,..., l, ja muodostetaan niistä matriisi c 1 c 11 c 12... c 1n c 2. = c 21 c 22... c 2n.... c l1 c l2... c ln c l Tällöin koodin C (l) koodisana on sana, joka saadaan lukemalla ylläoleva matriisi pystyriveittäin eli sana c 11 c 21... c l1 c 12 c 22... c l2... c 1n c 2n... c ln. Topi Törmä Matemaattisten tieteiden laitos 25 / 34

Jos C on [n, k]-koodi, niin C (l) on [ln, lk]-koodi. Polynomimuodossa yllä oleva koodisana on c 11 + c 21 x + + c l1 x l 1 + c 12 x l + c 22 x l+1 + + c l2 x 2l 1 + + c 1n x (n 1)l + c 2n x (n 1)l+1 + + c ln x nl 1 = (c 11 + c 12 x l + + c 1n x (n 1)l ) + x(c 21 + c 22 x l + + c 2n x (n 1)l ) + + x l 1 (c l1 + c l2 x l + + c ln x (n 1)l ) = c 1 (x l ) + xc 2 (x l ) + + x l 1 c l (x l ). Topi Törmä Matemaattisten tieteiden laitos 26 / 34

Lause 6.4.2. Jos C korjaa kaikki enintään b-pituiset ryöppyvirheet, niin C (l) korjaa kaikki enintään lb-pituiset ryöppyvirheet. Topi Törmä Matemaattisten tieteiden laitos 27 / 34

Lause 6.4.2. Jos C korjaa kaikki enintään b-pituiset ryöppyvirheet, niin C (l) korjaa kaikki enintään lb-pituiset ryöppyvirheet. Todistus: Korkeintaan lb-pituinen ryöppyvirhe aiheuttaa enintään b-pituisen ryöppyvirheen sanaa vastaavan matriisin riveihin. Tämä on mahdollista korjata, koska C korjaa b-ryöpyt. Topi Törmä Matemaattisten tieteiden laitos 27 / 34

Lause 6.4.2. Jos C korjaa kaikki enintään b-pituiset ryöppyvirheet, niin C (l) korjaa kaikki enintään lb-pituiset ryöppyvirheet. Todistus: Korkeintaan lb-pituinen ryöppyvirhe aiheuttaa enintään b-pituisen ryöppyvirheen sanaa vastaavan matriisin riveihin. Tämä on mahdollista korjata, koska C korjaa b-ryöpyt. Lause 6.4.3. Jos C on syklinen [n, k]-koodi, jonka generoijapolynomi on g(x) ja tarkistuspolynomi h(x) = (x n 1)/g(x), niin C (l) on syklinen [ln, lk]-koodi, jonka generoijapolynomi on g(x l ) ja tarkistuspolynomi h(x l ). Topi Törmä Matemaattisten tieteiden laitos 27 / 34

Todistus: Pituus, dimensio ja lineaarisuus olivat edellä. Jos koodin C (l) sanaan c 1 c 11... c 1n. =.. c l c l1... c ln tehdään yhden askelen syklinen siirto, niin saadaan sana c c ln c l1 c l2... c l l,n 1 c 11 c 12 c 13... c 1n c 1.... = c 2,. c l 1,1 c l 1,2 c l 1,3... c l 1,n c l 1 missä c tarkoittaa vektorin c yhden askelen syklistä siirtoa. Topi Törmä Matemaattisten tieteiden laitos 28 / 34

Koska C on syklinen, niin edellä mainittu sana on koodin C (l) sana. Siten C (l) on syklinen. Koska g(x) (x n 1), niin g(x l ) (x ln 1). Olkoon m(x) viestisanana koodille C (l), jolloin m(x) = m 1 (x l ) + xm 2 (x l ) + + x l 1 m l (x l ) joillakin polynomeilla m i (x). Nämä voidaan tulkita viesteiksi koodille C, jolloin niitä vastaavat koodisanat c i (x) = m i (x)g(x), i = 1,..., l. Tällöin m(x)g(x l ) = m 1 (x l )g(x l ) + xm 2 (x l )g(x l ) + + x l 1 m l (x l )g(x l ) = c 1 (x l ) + xc 2 (x l ) + + x l 1 c l (x l ) C (l). Topi Törmä Matemaattisten tieteiden laitos 29 / 34

Toisaalta koodin C (l) sanat ovat muotoa c 1 (x l ) + xc 2 (x l ) + + x l 1 c l (x l ), missä c i (x) C. Siten c i (x) = m i (x)g(x) joillakin viestipolynomeilla m i (x). Koodin C (l) jokainen sana on siis muotoa m 1 (x l )g(x l ) + xm 2 (x l )g(x l ) + + x l 1 m l (x l )g(x l ) = (m 1 (x l ) + xm 2 (x l ) + + x l 1 m l (x l ))g(x l ) g(x l ). Täten koodin C (l) sanat ovat täsmälleen sanat m(x)g(x l ), ja g(x l ) on generoijapolynomi. Tarkistuspolynomi on siten (x ln 1)/g(x l ) = h(x l ). Koodin C (l) dimensiota koskeva väite saataisiin myös tästä. Topi Törmä Matemaattisten tieteiden laitos 30 / 34

Kietomista voidaan tehostaa ristiinkietomisella (cross-interleaving), jossa yhdistetään kaksi koodia C 1 ja C 2. Olkoon C i [n i, k i ]-koodi, i = 1, 2. Otetaan k 2 kappaletta koodin C 1 sanoja: c 11 c 12... c 1n1. c k2 1c k2 2... c k2 n 1. Sen sijaan, että lähetettäisiin näitä sanoja vastaavan matriisin sarakkeet [c 1j,..., c k1 j] T sellaisenaan kuten (tavallisessa) kietomisessa, tulkitaan nämä sarakkeet viestisanoiksi koodille C 2. Näin saadaan koodin C 2 sanat d 11 d 12... d 1n2,..., d n1 1d n1 2... d n1 n 2. Nämä voidaan nyt kietoa niin moninkertaisesti kuin halutaan. Tässä koodia C 1 kutsutaan sisäkoodiksi ja koodia C 2 ulkokoodiksi. Topi Törmä Matemaattisten tieteiden laitos 31 / 34

Esimerkki: Olkoon koodien C 1 ja C 2 generoijamatriisit 1 0 0 0 1 1 1 0 1 0 0 1 1 0 1 0 0 1 1 1 0 0 1 0 0 1 1 ja 0 1 0 1 1 0. 0 0 1 0 1 1 0 0 0 1 1 0 1 Koodi C 1 on binäärinen Hammingin [7, 4]-koodi ja koodi C 2 on [6, 3]-koodi. Aletaan kietoa koodia C 1 kolminkertaisesti ja olkoot tarvittavat 3 koodisanaa matriisin 1 1 1 1 1 1 1 0 1 1 1 0 0 0 0 1 0 0 1 1 0 vaakarivit. Kiedotun koodin sanana olisi nyt 100 111 110 110 101 101 100. Topi Törmä Matemaattisten tieteiden laitos 32 / 34

Tämän lähettämisen sijaan koodataan ylläolevan matriisit sarakkeet edellä kuvatulla tavalla käyttämällä koodia C 2. Näin saadaan sanat 100111 111010 110001 110001 101100 101100 100111. Nämä voidaan nyt kietoa esimerkiksi kaksinkertaisesti, jolloin saadaan sanat 11 01 01 10 11 10, 11 11 00 00 00 11, 11 00 11 11 00 00,... Topi Törmä Matemaattisten tieteiden laitos 33 / 34