Laajennetut Preparata-koodit

Samankaltaiset tiedostot
Koodausteoria, Kesä 2014

Koodausteoria, Kesä 2014

Koodausteoria, Kesä 2014

Koodausteoria, Kesä 2014

Koodausteoria, Kesä 2014

Koodausteoria, Kesä 2014

Koodausteoria, Kesä 2014

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

1 Lineaariavaruus eli Vektoriavaruus

Koodausteoria, Kesä 2014

Lineaarialgebra ja matriisilaskenta II. LM2, Kesä /141

802320A LINEAARIALGEBRA OSA I

ja jäännösluokkien joukkoa

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

KOODAUSTEORIA S

Lineaarikombinaatio, lineaarinen riippuvuus/riippumattomuus

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

Reedin ja Solomonin koodit Katariina Huttunen

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

koska 2 toteuttaa rationaalikertoimisen yhtälön x 2 2 = 0. Laajennuskunnan

Johdatus matemaattiseen päättelyyn

Koodausteoria, Kesä 2014

Tekijä Pitkä Matematiikka 11 ratkaisut luku 2

Mitään muita operaatioita symbolille ei ole määritelty! < a kaikilla kokonaisluvuilla a, + a = kaikilla kokonaisluvuilla a.

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

Polynomien suurin yhteinen tekijä ja kongruenssi

Esko Turunen Luku 3. Ryhmät

9. Lineaaristen differentiaaliyhtälöiden ratkaisuavaruuksista

k=1 b kx k K-kertoimisia polynomeja, P (X)+Q(X) = (a k + b k )X k n+m a i b j X k. i+j=k k=0

ei ole muita välikuntia.

Insinöörimatematiikka D

Bijektio. Voidaan päätellä, että kuvaus on bijektio, jos ja vain jos maalin jokaiselle alkiolle kuvautuu tasan yksi lähdön alkio.

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.

Salausmenetelmät. Veikko Keränen, Jouko Teeriaho (RAMK, 2006)

Lineaarikuvauksen R n R m matriisi

Liite 2. Ryhmien ja kuntien perusteet

MS-C1340 Lineaarialgebra ja

Lineaariset kongruenssiyhtälöryhmät

Esimerkki A1. Jaetaan ryhmä G = Z 17 H = 4 = {1, 4, 4 2 = 16 = 1, 4 3 = 4 = 13, 4 4 = 16 = 1}.

Avaruuden R n aliavaruus

a b 1 c b n c n

MS-A0402 Diskreetin matematiikan perusteet

1 Sisätulo- ja normiavaruudet

Teema 4. Homomorfismeista Ihanne ja tekijärengas. Teema 4 1 / 32

MS-C1340 Lineaarialgebra ja differentiaaliyhtälöt

Algebran ja lukuteorian harjoitustehtäviä. 1. Tutki, ovatko seuraavat relaatiot ekvivalenssirelaatioita joukon N kaikkien osajoukkojen

R : renkaan R kääntyvien alkioiden joukko; R kertolaskulla varustettuna on

Kuvauksista ja relaatioista. Jonna Makkonen Ilari Vallivaara

Algebra I Matematiikan ja tilastotieteen laitos Ratkaisuehdotuksia harjoituksiin 9 (6 sivua) OT

Insinöörimatematiikka D

802320A LINEAARIALGEBRA OSA II

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

Insinöörimatematiikka D

Diofantoksen yhtälön ratkaisut

802320A LINEAARIALGEBRA OSA III

MAT Algebra I (s) periodilla IV 2012 Esko Turunen

Äärellisesti generoitujen Abelin ryhmien peruslause

Jarkko Peltomäki. Aliryhmän sentralisaattori ja normalisaattori

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

a k+1 = 2a k + 1 = 2(2 k 1) + 1 = 2 k+1 1. xxxxxx xxxxxx xxxxxx xxxxxx

d Z + 17 Viimeksi muutettu

Luento 8: Epälineaarinen optimointi

Dihedraalinen ryhmä Pro gradu Elisa Sonntag Matemaattisten tieteiden laitos Oulun yliopisto 2013

802355A Algebralliset rakenteet Luentorunko Syksy Markku Niemenmaa Kari Myllylä Topi Törmä Marko Leinonen

Insinöörimatematiikka D

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.

kaikille a R. 1 (R, +) on kommutatiivinen ryhmä, 2 a(b + c) = ab + ac ja (b + c)a = ba + ca kaikilla a, b, c R, ja

(2n 1) = n 2

2 Renkaat ja kunnat. toteutuvat: 1. pari (K, +) on Abelin ryhmä, jonka neutraalialkio on 0 K,

6 Vektoriavaruus R n. 6.1 Lineaarikombinaatio

2.5. Matriisin avaruudet ja tunnusluvut

TOOLS. Tapani Matala-aho MATEMATIIKKA/LUTK/OULUN YLIOPISTO TOOLS 1 / 28

g : R R, g(a) = g i a i. Alkio g(a) R on polynomin arvo pisteessä a. Jos g(a) = 0, niin a on polynomin g(x) nollakohta.

Salausmenetelmät LUKUTEORIAA JA ALGORITMEJA. Veikko Keränen, Jouko Teeriaho (RAMK, 2006) 3. Kongruenssit. à 3.4 Kongruenssien laskusääntöjä

Insinöörimatematiikka D

2017 = = = = = = 26 1

Kanta ja dimensio 1 / 23

7 Vapaus. 7.1 Vapauden määritelmä

a 2 ba = a a + ( b) a = (a + ( b))a = (a b)a, joten yhtälö pätee mielivaltaiselle renkaalle.

= 5! 2 2!3! = = 10. Edelleen tästä joukosta voidaan valita kolme särmää yhteensä = 10! 3 3!7! = = 120

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

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

isomeerejä yhteensä yhdeksän kappaletta.

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

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

14. Juurikunnat Määritelmä ja olemassaolo.

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.

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 )

Miten osoitetaan joukot samoiksi?

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

{I n } < { I n,i n } < GL n (Q) < GL n (R) < GL n (C) kaikilla n 2 ja

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

Determinantti 1 / 30

802328A LUKUTEORIAN PERUSTEET OSA III BASICS OF NUMBER THEORY PART III. Tapani Matala-aho MATEMATIIKKA/LUTK/OULUN YLIOPISTO

Insinöörimatematiikka D

Yhteenlaskun ja skalaarilla kertomisen ominaisuuksia

Tensorialgebroista. Jyrki Lahtonen A = A n. n=0. I n, I = n=0

R 1 = Q 2 R 2 + R 3,. (2.1) R l 2 = Q l 1 R l 1 + R l,

Lineaariset ryhmät Pro gradu -tutkielma Miia Lillstrang Matematiikan yksikkö Oulun yliopisto 2016

Ominaisvektoreiden lineaarinen riippumattomuus

Transkriptio:

Laajennetut Preparata-koodit Pro gradu -tutkielma Petri Eklund 1512717 Matemaattisten tieteiden laitos Oulun yliopisto Kevät 2016

Sisältö 1 Esitietoja 1.1 Yleistä.................................. 1.2 Tiedonvälitysjärjestelmä........................ 4 1. Äärelliset kunnat............................ 5 1.4 Äärellisen kunnan F p m konstruointi.................. 6 2 Lineaarisista koodeista 9 2.1 Yleistä.................................. 9 2.2 Määritelmä ja perusominaisuuksia................... 9 2. Sykliset koodit ja BCH-koodit..................... 14 Laajennetut Preparata-koodit 22.1 Yleistä.................................. 22.2 Laajennetun Preparata-koodin P (r ) määritelmä........... 22. Koodin sanojen etäisyydestä...................... 25.4 Koodin P (r ) minimietäisyys ja epälineaarisuus............ 1 4 Koodausalgoritmi laajennetuille Preparata-koodeille 41 4.1 Yleistä.................................. 41 4.2 Koodin P (r ) koodisanojen lukumäärä................. 41 4. Koodin P (r ) koodausalgoritmi..................... 45 5 Dekoodausalgoritmi laajennetuille Preparata-koodeille 47 5.1 Yleistä.................................. 47 5.2 Vastaanotetussa sanassa esiintyvien virheiden sijainneista..... 47 5. Koodin P (r ) dekoodausalgoritmi.................... 54 Lähdeluettelo 60

Johdanto Tässä Pro gradu tutkielmassa käsitellään laajennettuja Preparata-koodeja. Tutkielman alussa esitetään yleisiä koodausteorian käsitteitä ja perustuloksia sekä äärellisiä kuntia koskevia tuloksia, jotka toimivat esitietoina tutkielman varsinaiselle aiheelle. Lukijan oletetaan tuntevan ryhmiin, renkaisiin ja kuntiin liittyvät määritelmät ja peruskäsitteet sekä äärellisten kuntien perusteet. Tutkielman ensimmäisessä luvussa kerrotaan, mitä tarkoitetaan koodausteorialla ja minkälaisia sovelluskohteita sillä on. Luvussa esitellään tiedonvälitysjärjestelmän peruskäsitteet sekä äärellisiä kuntia koskevia perustuloksia. Toisessa luvussa esitetään tutkielman pääaiheen käsittelyssä tarvittavat määritelmät ja tulokset. Näitä ovat lineaarisiin koodeihin liittyvät määritelmät ja perustulokset, syklisten koodien perusteet sekä BCH-koodit. Kolmannessa luvussa on tutkielman keskeinen teoria. Luvussa esitetään laajennettujen Preparata-koodien määritelmä sekä useita koodeja koskevia tuloksia, joiden avulla voidaan mm. muodostaa uusia koodisanoja tunnettujen koodisanojen avulla. Lisäksi luvussa osoitetaan laajennetut Preparata-koodit etäisyysinvarianteiksi sekä löydetään niiden minimietäisyys, joka on 6. Tästä tuloksesta saadaan selville myös koodin virheenkorjauskyky. Luvun päätuloksena osoitetaan, että laajennetut Preparata-koodit ovat epälineaarisia. Loppuosa tutkielmasta keskittyy laajennettujen Preparata-koodien koodaukseen ja dekoodaukseen. Neljännessä ja viidennessä luvussa esitetään algoritmit viestisanan koodaamiseksi koodisanaksi sekä vastaanotetun koodisanan dekoodaus takaisin viestisanaksi sekä esimerkit näistä. Koodausalgoritmin yhteydessä saadaan myös selville laajennettujen Preparata-koodien koodisanojen lukumäärä. Dekoodausalgoritmi puolestaan sisältää menetelmän enintään kahden koodisanassa esiintyvän virheen korjaamiseksi. 2

Luku 1 Esitietoja 1.1 Yleistä Koodausteorian taustalla voidaan ajatella olevan yksinkertainen tiedonsiirtojärjestelmä, joka koostuu kolmesta osasta: tietolähteestä, tiedonsiirtokanavasta ja tiedon vastaanottajasta. Tietolähde lähettää tiedonsiirtokanavaan viestin. Kanava voi aiheuttaa virheitä lähetettyyn viestiin. Koska vastaanottaja ei voi tietää kanavaan lähetettyä viestiä, on hänen pystyttävä tulkitsemaan viesti kanavasta vastaanotetun viestin perusteella, vaikka siinä olisi virheitä. Virheenkorjauksen mahdollistamiseksi lisätään tiedonsiirtojärjestelmään kaksi osaa: kooderi ja dekooderi. Kooderi muodostaa lähetetystä viestistä m koodisanan c, joka lähetetään kanavaan. Vastaanottaja vastaanottaa tiedon r. Jos viestiin on tullut kanavassa virheitä, on c r. Dekooderi arvaa vastaanotetun tiedon r perusteella, mikä alkuperäinen viesti on, ts. se muodostaa arvauksen m. Tiedonsiirtojärjestelmässä käsiteltävä tieto on yleensä jonkin äärellisen kunnan vektori. Tässä luvussa esitellään yleisiä koodausteoriaan liittyviä tuloksia, joita tarvitaan laajennetuista Preparata-koodeista kertovan pääosion tukena. Suurin osa tuloksista on todistettu Koodausteoria-kurssilla sekä muilla Oulun yliopiston Matemaattisten tieteiden laitoksen algebraan liittyvillä kursseilla.

1.2 Tiedonvälitysjärjestelmä Määritellään seuraavaksi tiedonvälitysjärjestelmä täsmällisemmin. Olkoot M ja A äärellisiä epätyhjiä joukkoja, n Z + ja γ injektio M A n. Määritelmä 1.2.1. Järjestettyä nelikköä (M, A, n, γ ) sanotaan koodausjärjestelmäksi. Joukkoa M sanotaan viestiaakkostoksi ja joukkoa A koodiaakkostoksi. Joukkoa C = γ (M) sanotaan koodiksi, lukua n koodin C pituudeksi ja kuvausta γ koodauskuvaukseksi. Olkoon? symboli, joka ei kuulu joukkoon M ja δ kuvaus A n M {?}, jolle δ (γ (m)) = m kaikilla m M. Määritelmä 1.2.2. Järjestettyä kuusikkoa (M, A, n, γ,?, δ ) sanotaan koodaus-dekoodausjärjestelmäksi. Kuvausta δ sanotaan dekoodauskuvaukseksi ja symbolia? virheilmoitussymboliksi. Määritelmä 1.2.. Järjestettyä paria (K, D), missä K on Määritelmän 1.2.2 mukainen koodaus-dekoodausjärjestelmä ja D on diskreetti muistiton kanava, sanotaan tiedonvälitysjärjestelmäksi. Kanavan D syöttö- ja tulostusaakkosto on äärellinen epätyhjä joukko A. Jatkossa merkintä F q tarkoittaa kertalukua q olevaa äärellistä kuntaa. Oletetaan, että A = F q. Mikäli kunnan kertaluvusta ei ole epäselvyyttä, voidaan sitä merkitä lyhyesti F. Joukkoa F n = {(f 1, f 2,..., f n ) f i F} tarkastellaan lineaariavaruutena kunnan F suhteen. Määritelmä 1.2.4. Avaruuden F n alkioiden a ja b Hamming-etäisyydeksi sanotaan niiden komponenttien lukumäärää, joissa vektorit a ja b eroavat toisistaan. Tätä merkitään d H (a, b) = d(a, b). Määritelmä 1.2.5. Avaruuden F n alkion a Hamming-painoksi sanotaan vektorin a nolla-alkiosta eroavien komponenttien määrää. Tätä merkitään wt H (a) = wt(a). Vektorin a paino on siis wt(a) = d(a, 0). 4

Pari (F n, d H ) muodostaa metrisen avaruuden. Joukkoa B(a, e) = { x F n d(x, a) e } sanotaan a-keskiseksi e-säteiseksi palloksi. Joukkoa S(a, e) = { x F n d(x, a) = e } sanotaan a-keskisen e-säteisen pallon pinnaksi. Määritelmä 1.2.6. Koodin C minimietäisyydeksi sanotaan lukua d min C = min {d(a, b) a, b C, a b}. Jos koodin C kaikki koodisanakeskiset e-säteiset pallot ovat erillisiä, sanotaan koodia e virhettä korjaavaksi koodiksi. Jos lisäksi nämä pallot yhdessä täyttävät koko avaruuden F n, sanotaan koodiac täydelliseksi e virhettä korjaavaksi koodiksi. Huomautus 1.2.7. Sen, että koodi C on e virhettä korjaava, voi ilmaista myös muodossa d min C 2e + 1. Määritelmä 1.2.8. Dekoodausfunktiota δ sanotaan e virhettä korjaavaksi, jos δ (r) = m aina, kun d(γ (m), r)) e. 1. Äärelliset kunnat Jos kunnan alkioiden lukumäärä on äärellinen, sanotaan sitä äärelliseksi kunnaksi. Äärellisiä kuntia kutsutaan myös Galois n kunniksi ja niitä merkitään GF(n), missä n on kunnan kertaluku. Tarkastellaan aluksi muutamia äärellisten kuntien perusominaisuuksia. Olkoot m Z + ja a,b Z. Sanotaan, että luvut a ja b ovat kongruentteja modulo m, jos m (a b). Kongruenssi modulo m on ekvivalenssirelaatio, joka jakaa joukon Z alkiot jäännösluokkiin modulo m. Tällöin alkion a Z määräämä jäännösluokka on a = {a + nm n Z}. Näitä jäännösluokkia on m kappaletta ja niiden muodostamalle joukolle käytetään merkintää Z m. 5

Määritellään joukon Z m alkioiden yhteenlaskuksi a +b = a + b ja kertolaskuksi a b = ab, jolloin joukosta Z m saadaan rengas. Lause 1..1. Jäännösluokkarengas Z m on kunta, jos ja vain jos m on alkuluku. Määritelmä 1..2. Olkoon F kunta. Jos on olemassa pienin sellainen luku n Z +, jolle na = a } + {{ + } a = 0 kaikilla a F, n kpl sanotaan lukua n kunnan F karakteristikaksi. Jos tällaista lukua n ei ole olemassa, kunnan F karakteristika on 0. Lause 1... Kunnan karakteristika on aina alkuluku tai 0. Lause 1..4. Äärellisen kunnan F alkioiden lukumäärä, eli kertaluku F onp m, missä p on alkuluku ja m Z +. Tällöin kunnan F karakteristika on p. Lause 1..5. Kaikki samaa kertalukua olevat äärelliset kunnat ovat isomorfisia. 1.4 Äärellisen kunnan F p m konstruointi Merkitään polynomirengasta kunnan F suhteen merkinnällä F[x]. Olkoon д F[x] astetta m 1 oleva polynomi ja p,q F[x] polynomeja. Polynomit p ja q ovat kongruentteja modulo д jos д (p q). Tätä merkitään p q (mod д). Kongruenssi modulo д on ekvivalenssirelaatio, joka jakaa joukon F[x] alkiot jäännösluokkiin modulo д. Mille tahansa polynomille f F[x] pätee jakoyhtälö f (x) = s(x)д(x) + r (x), missä deg r (x) < m. Kun nollapolynomin asteeksi sovitaan deg 0 =, voi edellä olla r (x) = 0. Näin ollen jakoyhtälön perusteella f r (mod д), joten jokaisesta jäännösluokasta löytyy edustaja, jonka aste on pienempi kuin m. Edellä esitetyssä tapauksessa f { r + pд p F[x] } = r, joten kyseessä on polynomin r määräämä jäännösluokka. 6

Toisaalta, jos r 1 ja r 2 ovat kaksi eri polynomia, joille deg r 1 < m ja deg r 2 < m, niin r 1 r 2, koska д (r 1 r 2 ). Jäännösluokkien modulo д joukko on siis F[x]/ д(x) = r m 1 r (x) = a i x i, a i F. i=0 Määritellään joukon F[x]/ д(x) alkioiden yhteenlaskuksi r 1 + r 2 = r 1 + r 2 ja kertolaskuksi r 1 r 2 = r 1 r 2, jolloin joukosta F[x]/ д(x) saadaan rengas. Lause 1.4.1. Olkoon p alkuluku ja д Z p [x] astetta m 1 oleva polynomi. Tällöin jäännösluokkarengas Z p [x]/ д(x) on kunta jos ja vain jos д on jaoton. Kyseisessä kunnassa on p m alkiota. Merkitään β = x jäännösluokkarenkaassa Z p [x]/ д(x). Tällöin yllä olevan mukaan F p m = m 1 a i β i a i Z p,д(β) = 0, i=0 missä д Z p [x] on jaoton polynomi ja degд = m 1. Kunta F p m voidaan siis konstruoida, kun löydetään astetta m oleva jaoton polynomi. Määritelmä 1.4.2. Kunnan F alkion a F kertaluvuksi sanotaan pienintä sellaista lukua k Z +, että a k = 1. Tätä merkitään k = ord a tai k = a. Määritelmä 1.4.. Kunnan F q alkiota γ 0 sanotaan primitiiviseksi, eli kunnan F q primitiivialkioksi, jos ord γ = q 1. Tällöin F q = γ = { γ k 0 k < q 1 }. Astetta m olevaa polynomirenkaan F q [x] polynomia sanotaan primitiiviseksi, jos sillä on nollakohta, joka on kunnan F q m primitiivialkio. Lause 1.4.4. Äärellisen kunnan nolla-alkiosta eroavien alkioiden muodostama ryhmä on syklinen, eli jokaisessa äärellisessä kunnassa on primitiivialkio. Jos γ on kunnan F q yksi primitiivialkio, niin kunnan F q primitiivialkiot ovat täsmälleen alkiot γ j, missä syt(j,q 1) = 1. 7

Lause 1.4.5. Jos kunnan F karakteristika on p, niin kunnassa pätee yhtälö (x + y) p = x p + y p. Esimerkki 1.4.6. Konstruoidaan kunta F 2 = F 8 käyttämällä renkaassa Z 2 [x] jaotonta polynomia д(x) = x + x + 1. Olkoon β kunnan primitiivialkio, jolle β + β + 1 = 0. Tällöin F 8 = 2 a i β i a i Z 2, β + β + 1 = 0, ts. β = β + 1. i=0 Kunnan alkiot ovat siis 0, 1, β, β 2, β = β + 1, β 4 = β 2 + β, β 5 = β 2 + β + 1, β 6 = β 2 + 1. Jos kunnan alkioilla suoritetaan laskutoimituksia, on usein alkio a 0 + a 1 β + a 2 β 2 käytännöllistä ilmaista jonona a 0 a 1 a 2. Kunnan alkiot tällä tavalla esitettynä ovat 0 = 000 1 = 100 β = 010 β 2 = 001 β = 110 β 4 = 011 β 5 = 111 β 6 = 101 8

Luku 2 Lineaarisista koodeista 2.1 Yleistä Tässä luvussa esitellään lineaaristen koodien määritelmä sekä niihin liittyviä perustuloksia. Lisäksi luvussa perehdytään muutamiin syklisten koodien tuloksiin ja esitellään BCH-koodi, joka on tietyntyyppisen polynomin generoima syklinen koodi. Näiden koodien osalta esitellään joitain lähdeteoksien [1] ja [2] tuloksia, jotka koskevat syklisiä koodeja ja BCH-koodeja. Näitä tuloksia ei todisteta tässä yhteydessä. 2.2 Määritelmä ja perusominaisuuksia Olkoon F äärellinen kunta. Joukko F n on vektoriavaruus kunnan F suhteen. Määritelmä 2.2.1. Koodausjärjestelmää (M, F, n, γ ) sanotaan lineaariseksi, jos M on vektoriavaruus F k, missä k n ja koodauskuvausγ on injektiivinen lineaarinen kuvaus M F n. Tällöin koodi C = γ (M) on selvästi avaruuden F n k-ulotteinen aliavaruus. Määritelmä 2.2.2. Lineaariseksi koodiksi sanotaan lineaarisen koodausjärjestelmän koodia C = γ (M), joka on avaruuden F n k-ulotteinen aliavaruus. Tämän 9

perusteella jokainen lineaarisen koodin koodisanoista muodostettu lineaarikombinaatio on myös koodisana. Aliavaruuden ollessa k-ulotteinen ja koodin minimietäisyyden ollessa d, koodia kutsutaan [n, k, d]-koodiksi tai lyhyemmin [n, k]- koodiksi. Lukua k sanotaan myös lineaarisen koodin dimensioksi. Jos C on [n, k]-koodi ja {g 1,..., g k } sen kanta, niin koodin C sanat ovat muotoa a 1 g 1 + a 2 g 2 + + a k g k = (a 1... a k )G, missä kertoimet a 1,..., a k F ja G = g 1 g 2. g k k n. Koodauskuvaus γ voidaan siis valita niin, että viestivektori m F k kerrotaan matriisilla G, eli valitaan γ (m) = mg. Tällöin C = {c c = mg, m F k }. Määritelmä 2.2.. Edellä mainittua koodin kantavektoreista muodostettua k n- matriisia G sanotaan [n, k]-koodin C generoijamatriisiksi. Esimerkki 2.2.4. Seuraavassa on esimerkkejä lineaarisista koodeista kunnan F 2 suhteen annettuna generoijamatriisin avulla. C 1 : G 1 = C 2 : G 2 = C : G = 0 1 1 [, 2]-koodi 1 0 1 0 1 1 0 1 [5, 2]-koodi 1 0 1 1 0 1 1 1 1 1 1 1 1 0 0 0 1 0 1 1 1 0 0 0 1 0 [7, 4]-koodi 0 1 1 0 0 0 1 10

Valitsemalla matriisiksi G muotoa [ I k P ] oleva matriisi, missä I k on k-rivinen yksikkömatriisi ja P on k (n k)-matriisi, saadaan koodisana c = mg muotoon, jossa k ensimmäistä komponenttia muodostavat viestisanan m ja muut n k komponenttia ovat tarkistussymboleja: }......... {{...........}. }....{{.....}. k informaatio n k tarkistus Tätä muotoa olevaa koodausta sanotaan systemaattiseksi koodaukseksi. Määritelmä 2.2.5. Lineaarisen [n, k]-koodin C tarkistusmatriisiksi kutsutaan sellaista n (n k)-matriisia H, jolle C = {x F n xh = 0}. Lause 2.2.6. Olkoon C [n, k]-koodi ja olkoon sen generoijamatriisi systemaattisessa muodossa G = [ I k P ]. Silloin matriisi H = P T on koodin C tarkistusmatriisi. I n k Todistus. Ks. [2], Lause.2.. Esimerkki 2.2.7. Olkoon C kunnan F 2 suhteen oleva [6,]-koodi, jonka generoijamatriisi G on G = 1 0 0 0 1 1 0 1 0 1 0 1 0 0 1 1 1 0 11

ja tarkistusmatriisi H on H = 0 1 1 1 0 1 1 1 0 1 0 0. 0 1 0 0 0 1 Koodin C sanat c i ovat kaikki vektoriavaruuden F 2 vektorit kerrottuna matriisilla G, eli c 1 = 000000 c 2 = 100011 c = 010101 c 4 = 001110 c 5 = 110110 c 6 = 101101 c 7 = 011011 c 8 = 111000 Tarkistusmatriisia hyödynnetään lineaaristen koodien dekoodauksessa. Oletetaan, että lähetettäessä kanavaan sana c saadaan sana r = c + e, missä e on häiriön aiheuttama virhe. Dekoodaaja ei tunne vektoria c eikä vektoria e. Näiden löytämiseksi käytetään syndromia. Määritelmä 2.2.8. Vektorin x F n syndromiksi sanotaan vektoria s(x) = xh. Määritelmästä seuraa, että s(x) = 0 täsmälleen silloin, kun x C. Koska C on ryhmä yhteenlaskun suhteen, voidaan muodostaa sivuluokat x+c = {x+c c C}. Osoitetaan, että syndromin arvo liittyy juuri sivuluokkiin. Lause 2.2.9. Vektorit x ja y ovat samassa koodin C sivuluokassa täsmälleen silloin, kun niillä on sama syndromi. Todistus. Ks. [2], Lause..2. Jos s(r) = s, niin virhevektori e voi olla mikä tahansa sana, jonka syndromi on s, ts. mikä tahansa sivuluokan r + C alkio. Todennäköisimmät ehdokkaat ovat ne, joiden painot ovat pienimmät. Valitaan jokaisesta sivuluokasta tällainen alkio ja sanotaan sitä kyseisen sivuluokan johtajaksi. Tarkastellaan seuraavaa standardikaaviota, jonka 12

1. ensimmäiselle riville tulee koodisanat vektorista 0, sivuluokan C johtajasta, alkaen: 0, c 2,..., c q k ; 2. ensimmäiseen sarakkeeseen tulee sivuluokkien johtajat 0, e 2,..., e q n k ;. rivin i ja sarakkeen j risteykseen tulee alkio e i + c j. Dekoodaaja δ käyttää taulukkoa seuraavasti: saatu sana r muutetaan sen yläpuolella olevaksi koodisanaksi c, jolloin wt(r c ) on pienin mahdollinen eli r c on todennäköisin virhe. Esimerkki 2.2.10. Olkoon C [4, 2]-koodi kunnan F = {0, 1, 2} suhteen ja olkoon sen generoijamatriisi G = 1 0 1 1. 0 1 1 2 Tarkistusmatriisiksi tulee 2 2 H = 2 1 1 0. 0 1 Koodille C saadaan seuraava standardikaavio: r c 1 c 2 c c 4 c 5 c 6 c 7 c 8 e 9 e 1 0000 1011 2022 0112 0221 1120 2210 1202 2101 e 2 1000 2011 0022 1112 1221 2120 0210 2202 0101 e 2000 0011 1022 2112 2221 0120 1210 0202 1101 e 4 0100 1111 2122 0212 0021 1220 2010 1002 2201 e 5 0200 1211 2222 0012 0121 1020 2110 1102 2001 e 6 0010 1021 2002 0122 0201 1100 2220 1212 2111 e 7 0020 1001 2012 0102 0211 1110 2200 1222 2121 e 8 0001 1012 2020 0110 0222 1121 2211 1200 2102 e 9 0002 1010 2021 0111 0220 1122 2212 1201 2100 Edellä esitetty täydellinen kaavio vaatii yleensä liikaa tilaa. Koska jokaisella rivillä on sama syndromi, riittää tallentaa sivuluokkien johtajat ja niiden syndromit. 1

Näin saadun syndromiluettelon avulla voidaan toimia seuraavasti: Jos saadaan sana r, niin 1. lasketaan syndromi rh; 2. etsitään syndromiluettelon avulla vastaava sivuluokan johtaja e i ;. lasketaan r e i = c. Esimerkki 2.2.11. Esimerkin 2.2.10 koodille saadaan seuraava syndromiluettelo: e 1 : s(0000) = 00 e 4 : s(0100) = 21 e 7 : s(0020) = 20 e 2 : s(1000) = 22 e 5 : s(0200) = 12 e 8 : s(0001) = 01 e : s(2000) = 11 e 6 : s(0010) = 10 e 9 : s(0002) = 02 Esimerkiksi sanan r = 1221 syndromi on 2 2 s(r) = rh = (1221) 2 1 1 0 0 1 = 22, joten todennäköisin virhe on e 2 ja r tulee dekoodattua sanaksi c = r e 2 = 0221. Vastaavasti s(1110) = (1110)H = 20 = s(e 7 ), ja c = 1110 0020 = 1120. 2. Sykliset koodit ja BCH-koodit Laajennettujen Preparata-koodien koodauksessa hyödynnetään erään BCH-koodin tarkistusmatriisia. BCH-koodit ovat lineaaristen ja syklisten koodien alalaji, joiden hyöty perustuu suhteellisen helppoon dekoodausalgoritmiin. Ennen BCH-koodin määrittelyä esitetään muutamia syklisten koodien tuloksia. 14

Olkoon F = F p m, missä p on alkuluku. Syklisten koodien yhteydessä käytetään jäännösluokkarengasta jonka alkiot ovat jäännösluokkia R n = F[x]/ x n 1, f = {f (x) + h(x)(x n 1) h(x) F[x]}. Koska deg(x n 1) = n, kappaleen 1.4 tarkastelujen mukaan jäännösluokkien edustajistoksi voidaan valita joukko {a 0 + a 1 x + + a n 1 x n 1 a i F}. Käytetään seuraavassa polynomia a 0 +a 1 x + +a n 1 x n 1 tarkoittamaan myös sen määräämää jäännösluokkaa. Asiayhteydestä käy ilmi, onko kyseessä polynomi vai jäännösluokka. Summa ja tulo määritellään renkaassa R n tuttuun tapaan edustajien avulla: Jos f (x) = a 0 + a 1 x + + a n 1 x n 1 R n ja д(x) = b 0 + b 1 x + + b n 1 x n 1 R n, niin f (x) + д(x) = (a 0 + b 0 ) + (a 1 + b 1 )x + + (a n 1 + b n 1 )x n 1 R n ja missä ja f (x)д(x) = r (x) R n, f (x)д(x) = h(x)(x n 1) + r (x) deg r n 1. Jakojäännös r (x) saadaan tulosta f (x)д(x) nopeasti huomaamalla, että renkaassa 15

R n pätee x n = 1, x n+1 = x, jne. Jäännösluokkarengas R n varustettuna yhteenlaskulla ja skalaarilla, eli kunnan F alkiolla, kertomisella on vektoriavaruus kunnan F suhteen. Tämä vektoriavaruus on isomorfinen vektoriavaruuden F n kanssa ja isomorfismin välittää kuvaus a 0 + a 1 x + + a n 1 x n 1 (a 0, a 1,..., a n 1 ) = a 0 a 1... a n 1. Seuraavassa samaistetaan nämä kolme merkintää ja puhutaan samaa tarkoittaen polynomeista, vektoreista ja sanoista. Jäännösluokkarenkaan R n rengasrakennetta ja edellä mainittua isomorfiaa käyttäen saadaan määriteltyä vektoriavaruudessa F n kertolasku asettamalla ab = c, kun a(x) R n a F n, b(x) R n b F n, a(x)b(x) R n c F n. Syklisten koodien kannalta renkaan R n keskeinen ominaisuus on se, että alkiolla x kertominen merkitsee yhden askelen syklistä siirtoa: x (a 0, a 1,..., a n 1 ) = x (a 0 + a 1 x + + a n 1 x n 1 ) = a 0 x + a 1 x 2 + + a n 2 x n 1 + a n 1 = (a n 1, a 0, a 1,..., a n 2 ). Määritelmä 2..1. Polynomia, jonka korkeimman potenssin kerroin on 1, sanotaan pääpolynomiksi. Tarkastellaan kunnan F q äärellistä laajennuskuntaa F q r. Jokainen α F q r toteuttaa yhtälön x qr x = 0, joten jokainen α F q r on renkaan F q [x] jonkin pääpolynomin nollakohta. Määritelmä 2..2. Alkion α F q r minimipolynomiksi kunnan F q suhteen, merkitään m α (x), sanotaan sitä mahdollisimman alhaista astetta olevaa renkaan F q [x] pääpolynomia, jonka nollakohtana α on, ts. m α (α) = 0. 16

Minimipolynomi m α on yksikäsitteinen. Jos α F q, niin m α (x) = x α. Määritelmä 2... Lineaarista koodia C F n sanotaan sykliseksi koodiksi, jos (c n 1,c 0,c 1,...,c n 2 ) C aina, kun (c 0,c 1,...,c n 1 ) C. Lause 2..4. Olkoon jäännösluokkarengas R n = F[x]/ x n 1. Jos д(x) (x n 1) renkaassa F[x] ja degд(x) = n k, niin polynomin д(x) generoima jäännösluokkarenkaan R n ideaali д(x) on syklinen [n, k]-koodi. Jos C on syklinen [n, k]-koodi, niin on olemassa sellainen astetta n k oleva pääpolynomi д(x), että д(x) (x n 1) renkaassa F[x] ja C on polynomin д(x) generoima renkaan R n ideaali. Todistus. Ks. [2], Lause 4.2.. Määritelmä 2..5. Lauseessa 2..4 esiintyvää [n, k]-koodin C mahdollisimman alhaista astetta olevaa pääpolynomia д(x) sanotaan syklisen koodin C generoijapolynomiksi. Olkoon д(x) = д 0 +д 1 x + +д n k x n k koodin C generoijapolynomi, eli koodi C on [n, k]-koodi. Tällöin joukko {д(x), xд(x),..., x k 1 д(x)} on koodin C kanta, ja generoijamatriisiksi voidaan ottaa matriisi G = д 0 д 1...... д n k 0... 0 0 д 0 д 1...... д n k... 0........... 0 0... д 0 д 1...... д n k k n. Olkoon m(x) viestisana m esitettynä polynomimuodossa. Koodauskuvaukseksi voidaan valita generoijapolynomilla д(x) kertominen: m(x)д(x) = (m 0 д 0, m 0 д 1 + m 1 д 0, m 0 д 2 + m 1 д 1 + m 2 д 0,..., m k 1 д n k ) = mg. Koska deg(m(x)) = k 1, voidaan polynomi m(x) muodostaa F k eri tavalla. Tulo m(x)д(x) muodostaa siis F k kappaletta keskenään erilaisia koodin C koodisanoja. Lisäksi deg(m(x)д(x)) < n, koska deg(д(x)) = n k. Koodin C koodisanojen lukumäärä on F k, joten tuloa m(x)д(x) ei tarvitse laskea jäännösluokkarenkaassa F[x]/ x n 1, vaan se voidaan laskea polynomirenkaassa F[x]. 17

Syklisen koodin kaikki koodisanat saadaan siis kertomalla kaikki polynomirenkaan F[x] polynomit m(x), joille deg(m(x)) < k generoijapolynomilla д(x). Lemma 2..6. Tarkastellaan kuntaa F q. Olkoon luku n Z + sellainen, joka toteuttaa ehdon syt(n,q) = 1. Tällöin on olemassa sellainen luku m Z +, että n (q m 1). Tästä johtuen jossakin kunnan F q laajennuksessa F q m on olemassa primitiivinen n:s ykkösen juuri α, jolle α n = 1, α i α j kaikilla 0 i < j n 1. Todistus. Ks. [2], kappale 4.1.. Olkoon F = F q, syt(n,q) = 1 ja m luvun q multiplikatiivinen kertaluku modulo n, jolloin n (q m 1). Olkoon α kunnan F q m primitiivinen n:s ykkösen juuri. Kuten aiemmin, käytetään alkion α i minimipolynomille merkintää m α i (x). Määritelmä 2..7. Polynomin pyj(m α (x),m α 2 (x),...,m α d 1 (x)) generoimaa n-pituista syklistä koodia sanotaan (kapea-alaiseksi) BCH-koodiksi, jonka suunniteltu etäisyys on d. BCH-koodi voidaan siis konstruoida usealla eri polynomilla riippuen siitä, mikä virheenkorjauskyky koodille halutaan. Jos BCH-koodin suunniteltu etäisyys on 2t + 1, sanotaan sitä tavallisesti t virhettä korjaavaksi BCH-koodiksi. Esimerkki 2..8. Olkoon kunta F 2 4 konstruoitu polynomin p(x) = x 4 +x +1 avulla ja β kunnan primitiivialkio, eli primitiivinen 15. ykkösen juuri. Tällöin m β (x) = m β 2 (x) = m β 4 (x) = x 4 + x + 1 ja m β (x) = x 4 + x + x 2 + x + 1 ovat alkioiden β, β 2, β ja β 4 minimipolynomit. (Ks. [1], Esim. 5.2.5) Nyt polynomi д(x) = pyj ( m β (x),m β 2 (x),m β (x),m β 4 (x) ) = m β (x)m β (x) = x 8 + x 7 + x 6 + x 4 + 1 generoi kaksi virhettä korjaavan BCH-koodin, jonka pituus on 15. 18

Lemma 2..9. Olkoon β kunnan F 2 r primitiivialkio. Matriisi H = β 0 β 0 β 1 β β 2 β 6.. β i β i.. β 2r 2 β (2r 2) on tarkistusmatriisi kaksi virhettä korjaavalle BCH-koodille. Tämän koodin pituus on 2 r 1 ja sen generoi polynomi д(x) = m β 1 (x)m β (x). Tarkistusmatriisin H koko on tällöin (2 r 1) (2r ), kun alkiot β i käsitellään r-pituisina vaakavektoreina. Lisäksi deg(m β (x)) = deg(m β (x)) = r, joten deg(д(x)) = 2r. Näin ollen koodin dimensio on k = 2 r 2r 1. Todistus. Ks. [1], Lemma 5.4.5. Lause 2..10. Olkoon β kunnan F 2 r primitiivialkio ja olkoon r 4 kokonaisluku. Tällöin on olemassa polynomin д(x) = m β 1 (x)m β (x) generoima kaksi virhettä korjaava BCH-koodi. Tämän koodin pituus on n = 2 r 1, dimensio on k = 2 r 2r 1 ja minimietäisyys on d = 5. Todistus. Ks. [1], Lause 5.4.6. Lemma 2..11. Olkoon β kunnan F 2 r primitiivialkio. Tarkastellaan kaksi virhettä korjaavaa BCH-koodia, jonka generoi polynomi д(x) = m β 1 (x)m β (x). Olkoon matriisi H lemman 2..9 mukainen tarkistusmatriisi kyseiselle koodille. Tällöin matriisin H mitkä tahansa 2r perättäistä riviä ovat lineaarisesti riippumattomia. Todistus. Koska BCH-koodi on syklinen, niin sen kaikki koodisanat saadaan kertomalla kaikki polynomirenkaan F[x] polynomit m(x), joille deg(m(x)) < k, koodin generoijapolynomilla д(x). Näin ollen minkään polynomimuodossa esitetyn koodisanan aste ei voi olla pienempi kuin generoijapolynomin aste deg(д(x)) = 2r. Oletetaan nyt, että mielivaltaisesti valitut 2r peräkkäistä matriisin H riviä ovat lineaarisesti riippuvaisia. Tällöin on olemassa nollavektorista poikkeava vektori 19

c F n 2 muotoa c = [0,..., 0,c i,...,c i+2r 1, 0,..., 0], 1 i n 2r, jolle ch = 0. Koska H on tarkistusmatriisi, niin määritelmän 2.2.5 perusteella c on koodisana. Edelleen, koska BCH-koodi on syklinen koodi, ovat kaikki koodisanasta c määritelmän 2.. mukaisesti syklisillä siirroilla saadut sanat koodisanoja. Näin ollen myös sana c = [c i,...,c i+2r 1, 0,..., 0] on koodisana. Polynomimuodossa tämä tarkoittaa polynomia c (x) = c i + c i+1 x + c i+2 x 2 + + c i+2r 1 x 2r 1. Näin ollen on olemassa koodisana c (x), jolle deg(c (x)) < 2r. Tämä on ristiriita, joten minkä tahansa matriisista H valittujen 2r perättäisen rivin on oltava lineaarisesti riippumattomia. Nyt lemman 2..11 perusteella minkä tahansa matriisin H alimatriisin, joka on muodostettu 2r peräkkäisestä rivistä, aste on 2r ja sillä on olemassa käänteismatriisi. Olkoon A matriisin H alimatriisi, joka muodostuu matriisin H viimeisistä 2r rivistä. Tällä matriisilla on olemassa käänteismatriisi A 1. Olkoon H matriisin H alimatriisi, joka muodostuu poistamalla matriisista H sen 2r alinta riviä. Näitä matriiseja tarvitaan kappaleessa 4.2 olevien tulosten osoittamiseen. Esimerkki 2..12. Olkoon kunta F 8 konstruoitu polynomin x +x +1 avulla, kuten esimerkissä 1.4.6. Tällöin H = β 0 β 0 β 1 β β 2 β 6 β β 9 β 4 β 12 β 5 β 15 β 6 β 18 = β 0 β 0 β 1 β β 2 β 6 β β 2 β 4 β 5 β 5 β 1 β 6 β 4 = 100 100 010 110 001 101 110 001 011 111 111 010 101 011 20

ja A = β 1 β β 2 β 6 β β 2 β 4 β 5 β 5 β 1 β 6 β 4 = 010 110 001 101 110 001 011 111 111 010 101 011, jolloin A 1 = 001 011 111 010 011 101 110 100 101 110 111 001. 21

Luku Laajennetut Preparata-koodit.1 Yleistä Laajennetut Preparata-koodit määritellään kunnan F 2 r osajoukkojen avulla. Osajoukot kuvataan kunnan F 2 vektoreiksi, joiden on täytettävä tietyt ehdot ollakseen koodisanoja. Laajennetuilla Preparata-koodeilla on useita samankaltaisia ominaisuuksia kuin lineaarisilla koodeilla. Esimerkkinä voidaan mainita, että laajennetut Preparatakoodit ovat etäisyysinvariantteja, kuten lineaariset kooditkin. Kuitenkin tässä luvussa tullaan osoittamaan, että laajennetut Preparata-koodit ovat epälineaarisia. Näin ollen lineaaristen koodien koodaus- ja dekoodausmenetelmiä ei voida soveltaa niihin. Mielenkiintoinen laajennettujen Preparata-koodien ominaisuus on myös se, että niiden minimietäisyys on aina sama riippumatta luvun r arvosta..2 Laajennetun Preparata-koodin P (r ) määritelmä Laajennettujen Preparata-koodien määrittelyssä käytetään kunnan GF(2 r ) = F 2 r alkioita, missä r Z +. Olkoon β kunnan F 2 r primitiivialkio ja U F 2 r. Olkoon χ kuvaus, joka kuvaa osajoukon U kunnan F 2 vektoriksi (sanaksi), jonka pituus on 2 r. Määritellään χ (U ) olemaan sana, jossa on 22

1 kohdassa i jos β i U (0 i 2 r 2), 1 kohdassa 2 r 1 jos 0 U, 0 muulloin. Esimerkki.2.1. Olkoon β kunnan F 8 primitiivialkio. Tällöin χ ({0}) = 00000001, χ ({ β, β, β 5}) = 01010100, χ ({ 1, β 2, β 5, β 6}) = 10100110, ja χ ({ }) = 00000000. Jos α on kunnan F 2 r alkio jau F 2 r, niin olkoon joukkou +α = {u + α u U } ja joukko αu = {αu u U }. Määritellään lisäksi joukkojen U F 2 r ja V F 2 r symmetrinen erotus U V olemaan joukko {x x U tai x V mutta x U V }. Olkoon β edelleen kunnan F 2 r primitiivialkio ja i Z, 0 i 2 r 2. Jos β i U tai β i V, mutta β i U V, on tällöin sanan χ (U V ) kohdassa i arvo 1, muutoin arvo 0. Samoin jos 0 U tai 0 V, mutta 0 U V, on tällöin sanan χ (U V ) kohdassa 2 r 1 arvo 1, muutoin arvo 0. Näin ollen χ (U ) + χ (V ) = χ (U V ). Määritelmä.2.2. Laajennettu Preparata-koodi P (r ) on niiden koodisanojen joukko, jonka alkuosa koostuu sanasta χ (U ) ja loppuosa sanasta χ (V ), missä U ja V ovat kunnan F 2 r osajoukkoja ja täyttävät seuraavat ehdot: (i) U ja V ovat parillisia, (ii) (iii) u = v, u U v V u + u u U u U = v, v V (iv) luku r on pariton. Merkitään laajennetun Preparata-koodin koodisanoja merkinnällä [χ (U ), χ (V )]. Koska molempien osien pituus on 2 r, on koodin P (r ) pituus 2 r+1. 2

Mikäli U =, niin määritellään u U u = 0 ja jos V =, niin määritellään v V v = 0. Esimerkki.2.. Olkoon F 8 konstruoitu samalla tavalla kuin esimerkissä 1.4.6. Olkoon U = { β, β 2, β 5, 0 } ja V = { 1, β, β 2, β, β 6, 0 }. Tutkitaan, onko [χ (U ), χ (V )] koodin P () koodisana. Merkitään laskuissa kunnan F 8 alkiota a 0 + a 1 β + a 2 β 2 jonona a 0 a 1 a 2, jolloin laskut ovat helpommin seurattavissa. Huomioidaan myös, että β 7 = 1 = β 0. (i) U = 4 ja V = 6, joten ehto (i) toteutuu. (ii) u = β + β 2 + β 5 + 0 = 010 + 001 + 111 + 000 = 100 = β 0 = 1 u U ja v = 1 + β + β 2 + β + β 6 + 0 v V = 100 + 010 + 001 + 110 + 101 + 000 = 100 = β 0 = 1, joten ehto (ii) toteutuu. (iii) u = β + β 6 + β 15 + 0 = β + β 6 + β u U = 110 + 101 + 010 = 001 = β 2 ja u + u u U u U = β 2 + 1 = 001 + 100 = 101 = β 6 24

sekä v = 1 + β + β 6 + β 9 + β 18 + 0 = 1 + β + β 6 + β 2 + β 4 v V = 100 + 110 + 101 + 001 + 011 + 000 = 101 = β 6, joten ehto (iii) toteutuu. (iv) Luku r = on pariton, joten ehto (iv) toteutuu. Näin ollen [χ (U ), χ (V )] = 01100101 11110011 on koodin P () koodisana. Huomataan, että alkion 0 kuuluminen joukkoihin U ja V ei vaikuta määritelmän.2.2 ehtojen (ii) ja (iii) laskuihin, eikä ehdon (iv) toteutumiseen. Laajennettujen Preparata-koodien koodisanojen osat χ (U ) ja χ (V ) ovat molemmat pariteetiltaan parillisia, eli niiden nollasta eroavien alkioiden määrä on aina parillinen. Käytännössä alkiolla 0 siis vaikutetaan vain siihen, toteutuuko ehto (i), eli ovatko U ja V parillisia. Näin ollen sanojen χ (U ) ja χ (V ) kohdassa 2 r 1 oleva arvo toimii pariteetintarkistusbittinä kyseisille sanoille.. Koodin sanojen etäisyydestä Lemma..1. Olkoot [χ (U ), χ (V )] ja [χ (A), χ (B)] koodin P (r ) koodisanoja. Olkoon α = u U u. Tällöin [χ (U A + α), χ (V B)] on myös koodin P (r ) koodisana. Todistus. Osoitetaan, että sana [χ (U A + α), χ (V B)] toteuttaa Määritelmän.2.2 ehdot (i)-(iii). Ehto (iv) on selvästi voimassa, koska luvun r arvo ei muutu. (i) Koska U, V, A ja B ovat parillisia sekä U A + α = U A, niin U A + α = U A = U + A 2 U A on parillinen, ja V B = V + B 2 V B on parillinen. 25

(ii) Olkoot I ja J kunnan F 2 r osajoukkoja ja β kunnan primitiivialkio. Tällöin on voimassa yhtälö x = x + x. x I J x I x J Yhtäsuuruus on selvä sellaisten alkioiden osalta, jotka sisältyvät vain joukkoon I tai vain joukkoon J. Tarkastellaan vielä mitä tahansa alkiota β i, joka sisältyy molempiin joukkoihin I ja J. Tällöin β i ei esiinny ollenkaan yhtälön vasemman puolen summalausekkeessa, mutta β i esiintyy yhteensä kaksi kertaa yhtälön oikean puolen summalausekkeissa. Huomioidaan, että 2β i = 0, koska kunnan F 2 r karakteristika on 2. Näin ollen alkio, joka sisältyy molempiin joukkoihin I ja J, ei vaikuta yhtälön yhtäsuuruuteen. Tästä saadaan x = (y + α) = y + α U A. x U A+α y U A y U A Koska U A on parillinen, on α U A = 0. Tämän perusteella lauseke saadaan muotoon y + y + 0 = y + y = y. y U y A y V y B y V B Näin ollen ja ehto (ii) on voimassa. x = y x U A+α y V B (iii) Tarkastellaan ehdon (iii) mukaista summaa x + x x U A+α x U A+α. Ehdon (ii) perusteella x = y, x U A+α y V B 26

joten x + x = (y + α) + x U A+α x U A+α y U A = (y + α) + (y + α) + y + y y U y A y V y B = y + α y + α U + y + α y U + y y V y U y 2 + α 2 y U + y V y 2 y B y + y y V y B y A 2 y + y B y V B y y A y 2 + α 2 y A y. y + α A Huomioidaan nyt, että y U y = y V y ja y A y = y B y sekä lauseen 1.4.5 mukaan ( y V y ) 2 = y V y 2, jolloin lauseke saadaan muotoon 2 y + α y + α 2 y + α U + y + α y y U y U y U y A y A 2 2 + y + y y + y y + y. y U y U y A y U y A y A 2 + α 2 y A y + α A Seuraavaksi hyödynnetään tulosta α = y U y = y V y, jonka jälkeen lauseke saadaan muotoon y + αα 2 + α 2 α + α U + y + α y y U y A y A + y 2 + α 2 y + α y + y y U y A y A y A 2 + α 2 y A y + α A Kaikki lausekkeessa esiintyvät summan termit ovat kunnan F 2 r alkioita ja lisäksi kunnan F 2 r karakteristika on 2. Tämän perusteella kaikki lausekkeessa parillisen määrän kertoja esiintyvät summan termit eivät vaikuta summan suuruuteen, ts. 2a = 0 kaikille a F 2 r. Hyödyntämällä tätä tietoa sekä huo- 27

maamalla, että U ja A ovat parillisia, lauseke saadaan muotoon y + y y U y U + y + y A y A Hyödynnetään vielä määritelmää.2.2, jolloin saadaan Näin ollen y y + y + y + y = y + y = y U y U } {{ y A } y A } {{ y V y B } = y V y = y B y ja ehto (iii) on voimassa. x + x x U A+α x U A+α = y V B. y y V B y. Määritelmä..2. Koodia sanotaan etäisyysinvariantiksi, jos mille tahansa koodisanaparille c 1 ja c 2 pätee se, että koodisanasta c 1 etäisyydellä i sijaitsevien koodisanojen lukumäärä on sama kuin koodisanasta c 2 etäisyydellä i sijaitsevien koodisanojen lukumäärä, missä 1 i n ja n on koodin pituus. Huomautus... Määritelmästä..2 seuraa suoraan se, että etäisyysinvariantille koodille C pätee d min C = min{wt(x) x C, x 0}. Lemma..4. Olkoot A, B,C F 2 r ja α F 2 r. Tällöin (a) d(χ (A), χ (B)) = d(χ (A + α), χ (B + α)), (b) d(χ (A), χ (B)) = d(χ (A C), χ (B C)). Todistus. (a) Nyt d(χ (A), χ (B)) = (A B) \ (A B) = {x x A tai x B mutta x A U }. 28

Koska A + α = {a + α a A} ja B + α = {b + α b B}, on myös (A + α B + α) \ (A + α B + α) = (A B) \ (A B), joten d(χ (A), χ (B)) = d(χ (A + α), χ (B + α)). (b) Olkoon χ (A) = a 1 a 2... a n, χ (B) = b 1 b 2... b n ja χ (C) = c 1 c 2... c n. Jos sanojen χ (A) ja χ (B) mielivaltaisessa kohdassa k olevat komponentit a k ja b k ovat samat, ovat sanojen χ (A C) ja χ (B C) vastaavassa kohdassa olevat komponentit molemmat joko 0 tai 1 riippuen c k :n arvosta. Jos taas sanojen χ (A) ja χ (B) mielivaltaisessa kohdassa olevat komponentit a k ja b k ovat erisuuret, ovat sanojen χ (A C) ja χ (B C) vastaavassa kohdassa olevat komponentit erisuuria. Näin ollen d(χ (A), χ (B)) = d(χ (A C), χ (B C)). Seuraus..5. Olkoot [χ (U ), χ (V )] ja [χ (A), χ (B)] laajennetun Preparata-koodin koodisanoja sekä α F 2 r ja C F 2 r. Tällöin pätee (a) d([χ (U ), χ (V )], [χ (A), χ (B)]) = d([χ (U + α), χ (V )], [χ (A + α), χ (B)]), (b) d([χ (U ), χ (V )], [χ (A), χ (B)]) = d([χ (U C), χ (V )], [χ (A C), χ (B)]). Lause..6. Koodi P (r ) on etäisyysinvariantti. Todistus. Olkoot [χ (U ), χ (V )] ja [χ (A), χ (B)] mielivaltaisia koodin P (r ) koodisanoja, joiden välinen etäisyys on i 1. Olkoon α = u U u. Lemman..1 perusteella myös sanat [χ (U U + α), χ (V V )] ja [χ (U A + α), χ (V B)] 29

ovat koodisanoja. Seurauksen..5 mukaan d([χ (U U + α), χ (V V )], [χ (U A + α), χ (V B)]) = i. Koska joukko U U = V V =, niin [χ (U U + α), χ (V V )] = [χ ( ), χ ( )] on nollasana. Näin ollen sanan [χ (U A + α), χ (V B)] paino on i. Siis jokaista mielivaltaisesti valittua koodisanaparia, joiden etäisyys toisistaan on i 1, kohden löytyy yksi koodisana, jonka paino on i. Olkoon nyt koodisanan [χ (C), χ (D)] paino i ja olkoon koodisana [χ (S), χ (T )] mielivaltainen. Olkoon lisäksi β = s S. Lemman..1 perusteella myös sanat [χ (S + β), χ (T )] = [χ (S + β), χ (T )] ja [χ (C S + β), χ (D T )] ovat koodisanoja. Edelleen seurauksen..5 perusteella wt([χ (C), χ (D)]) = d ([χ ( ), χ ( )], [χ (C), χ (D)]) = d ([χ ( S + β), χ ( T )], [χ (C S + β), χ (D T )]) = d ([χ (S + β), χ (T )], [χ (C S + β), χ (D T )]) = i. Näin ollen jokaista koodisanaa [χ (C), χ (D)], jonka paino on i, vastaa koodisanapari [χ (S + β), χ (T )], [χ (C S + β), χ (D T )], joiden välinen etäisyys on i. Nyt siis jokaista mielivaltaisesti valittua koodisanaparia, joiden välinen etäisyys in i, kohti löydetään sellainen koodisana, jonka paino on i ja samaan aikaan jokaista mielivaltaisesti valittua koodisanaa, jonka paino on i, kohti löydetään nollasanasta eroavat kaksi koodisanaa, joiden välinen etäisyys on i. Näin ollen koodi P (r ) on etäisyysinvariantti. 0

.4 Koodin P (r ) minimietäisyys ja epälineaarisuus Lemma.4.1. Oletetaan, että [χ (U ), χ (V )] on koodin P (r ) koodisana ja α F 2 r on mielivaltainen. Tällöin koodi P (r ) sisältää myös seuraavat koodisanat: (a) [χ (V ), χ (U )], (b) [χ (U + α), χ (V + α)] mille tahansa α F 2 r, (c) [χ (αu ), χ (αv )] mille tahansa α F 2 r, α 0. Todistus. Todistetaan, että väitetyt koodisanat toteuttavat määritelmän.2.2 mukaiset ehdot (i)-(iv). Huomioidaan laskuissa erityisesti se, että char F 2 r = 2, joten 2a = 0 kaikille a F 2 r. (a) Määritelmän.2.2 ehdot (i), (ii) ja (iv) ovat selvästi voimassa. Tarkastellaan ehdon (iii) mukaista summaa v + v. v V v V Huomioidaan, että [χ (U ), χ (V )] on koodisana, jolloin voidaan hyödyntää määritelmän.2.2 ehtoja (ii) ja (iii) ja saadaan v + v v V v V = u + v u U v v = u + u + v u U u U v V + v = u. v V u U Näin ollen ehto (iii) on voimassa ja [χ (V ), χ (U )] on koodin P (r ) koodisana. (b) Määritelmän.2.2 ehto (iv) on selvästi voimassa. Osoitetaan muiden ehtojen voimassaolo (i) Koska U + α = U on parillinen ja V + α = V on parillinen, ehto on voimassa. 1

(ii) Tarkastellaan ehdon (ii) mukaista summaa u U +α u. Huomioidaan jälleen, että [χ (U ), χ (V )] on koodisana, jolloin saadaan u = (x + α) x + α U = x = y u U +α x U x U = y + α V = (y + α) = y V y V v V +α v. x U y V Näin ollen ja ehto on voimassa. u = v u U +α v V +α (iii) Tarkastellaan ehdon (iii) mukaista summaa u + u = (y + α) + u U +α u U +α y U y U = y + α y 2 + α 2 y + α U + y U y U y U y U (y + α) y + α U Tämän jälkeen huomioidaan, että y U y 2 = ( y U y ) 2 ja U on parillinen, jolloin lauseke saadaan muotoon 2 y + α y + α 2 y + α U + y y U y U y U y U 2 = y + y + α y + α 2 y + α U. y U y U y U y U Koska [χ (U ), χ (V )] on koodisana, niin y U y = y V y ja y U y + (y U y ) = y V y. Lisäksi α U = 0 = α V, koska U ja V ovat parillisia. Myös y U y 2 = ( y U y ) 2. Huomioidaan vielä ehdon (ii) voi-. 2

massaolo, jolloin lauseke saadaan muotoon Näin ollen y + α y y V y V = y + α y 2 + α 2 y V y V y V = (y + α) = v. y V 2 v V +α u + u u U +α u U +α + α 2 y V y + α U = y + α V v V +α joten ehto on voimassa ja [χ (U + α), χ (V + α)] on koodin P (r ) koodisana. (c) Määritelmän.2.2 ehto (iv) on selvästi voimassa. Osoitetaan muiden ehtojen voimassaolo: (i) Koska αu = U on parillinen ja αv = V on parillinen, ehto on voimassa. (ii) Tarkastellaan ehdon (ii) mukaista summaa u αu u. Huomioidaan jälleen, että [χ (U ), χ (V )] on koodisana, jolloin saadaan u αu x U x U y V y V v, u = (αx) = α x = α y = (αy) = v. v αv Näin ollen ja ehto on voimassa. u = v u αu v αv

(iii) Tarkastellaan ehdon (iii) mukaista summaa u + u u αu u αu =α y + α y U y U = (αy) + αy y U y U = α y + y U y U y y. Koska [χ (U ), χ (V )] on koodisana, niin y U y + ( y U y ) = y V y, jolloin lauseke saadaan muotoon Näin ollen α y = (αy) = v. y V y V u + u u αu u αu = v αv v, v αv joten ehto on voimassa ja [χ (αu ), χ (αv )] on koodin P (r ) koodisana. Esimerkki.4.2. Tarkastellaan koodia P (). Olkoon U = { β, β 2, β 5, 0 } ja V = { 1, β, β 2, β, β 6, 0 }. Esimerkin.2. perusteella näistä joukoista muodostettu sana [χ (U ), χ (V )] = 01100101 11110011 on koodisana koodissa P (). Soveltamalla lemmaa.4.1 tähän koodisanaan käyttämällä arvoa α = β saadaan kolme uutta koodisanaa: (a) [χ (V ), χ (U )] = 11110011 01100101. (b) [χ (U + α), χ (V + α)] = [ χ ({ β 0, β 5, β 2, β }), χ ({ β, β 0, β 5, 0, β 4, β })] = 10110100 11011101. 4

(c) [χ (αu ), χ (αv )] = [ χ ({ β 4, β 5, β, 0 }), χ ({ β, β 4, β 5, β 6, β 2, 0 })] = 01001101 00111111. Lemma.4.1 yksinkertaistaa koodin P (r ) minimietäisyyttä koskevan tuloksen osoittamista. Ennen minimietäisyyttä koskevaa tulosta tarvitaan vielä kaksi lemmaa. Lemma.4.. (a) Olkoon r pariton luku. Tällöin 2 r 1 1 (mod ). (b) Olkoon r parillinen luku. Tällöin 2 r 1 0 (mod ). Todistus. Käytetään induktiota. (a) Perusaskel r = 1: Nyt 2 1 1 = 1 1 (mod ) pätee. Induktio-oletus r = k: Oletetaan, että 2 k 1 1 (mod ), ts. 2 k 1 = x + 1 jollekin luvulle x. Tällöin 2 k = x + 2. Induktioväite: Väite on voimassa, kun r = k + 2. Nyt 2 (k+2) 1 = 4 2 k 1. Induktio-oletuksen perusteella 4 2 k 1 = 4 (x + 2) 1 = 12x + 7 = (4x + 2) + 1, eli 2 (k+2) 1 1 (mod ). Induktioperiaatteen nojalla väite on tosi. (b) Perusaskel r = 2: Nyt 2 2 1 = 0 (mod ) pätee. Induktio-oletus r = k: Oletetaan, että 2 k 1 0 (mod ), ts. 2 k 1 = x jollekin luvulle x. Tällöin 2 k = x + 1. 5

Induktioväite: Väite on voimassa, kun r = k + 2. Nyt 2 (k+2) 1 = 4 2 k 1. Induktio-oletuksen perusteella 4 2 k 1 = 4 (x + 1) 1 = 12x + = (4x + 1), eli 2 (k+2) 1 0 (mod ). Induktioperiaatteen nojalla väite on tosi. Seuraava lemma perustelee syyn sille, että luvun r on oltava pariton. Lemma.4.4. Olkoon β kunnan F 2 r primitiivialkio. Tällöin myös β on kunnan F 2 r primitiivialkio, jos luku r on pariton. Alkio β ei ole kunnan F 2 r primitiivialkio, jos luku r on parillinen. Todistus. Lauseen 1.4.4 perusteella tiedetään, että alkio β i on kunnan primitiivialkio jos ja vain jos syt(i, 2 r 1) = 1. Lemman.4. perusteella tiedetään, että jos luku r on pariton, niin 2 r 1 1 (mod ) ja jos luku r on parillinen, niin 2 r 1 0 (mod ). Jos siis luku r on parillinen, on 2 r 1 = x jollekin kokonaisluvulle x, joten β ei ole primitiivialkio. Jos taas luku r on pariton, niin 2 r 1 = x + 1, joten β on primitiivialkio. Seuraus.4.5. Jos luku r on pariton, niin tällöin jokaista nolla-alkiosta eroavaa alkiota x F 2 r kohden on olemassa yksikäsitteinen alkio y, jolle y = x. Lause.4.6. Koodin P (r ) minimietäisyys on 6. Todistus. Jos koodin P (r ) sisältämän koodisanan [χ (U ), χ (V )] paino on d, niin d = wt(χ (U )) + wt(χ (V )) = U + V. 6

Koodin P (r ) määritelmästä seuraa, että d ei voi olla pariton. Koodi P (r ) on etäisyysinvariantti. Tällöin riittää osoittaa, että d 2, d 4 ja että on olemassa koodisana, jonka paino on 6. Oletetaan, että d = 2. Lemman.4.1 kohdan (a) perusteella voidaan olettaa, että U = 2 ja V = 0. Lemman.4.1 kohdan (b) perusteella voidaan olettaa, että U = {0, x} jollain x F 2 r, x 0. Tällöin kuitenkin u = 0 + x = x. u U Koska V =, ei määritelmän.2.2 ehto (ii) voi toteutua, joten d 2. Oletetaan nyt, että d = 4. Lemman.4.1 kohdan (a) perusteella voidaan olettaa, että joko U = 4 ja V = 0 tai U = 2 ja V = 2. Oletetaan aluksi, että U = 4 ja V = 0. Tällöin voidaan Lemman.4.1 kohdan (b) perusteella olettaa, että U = { 0, x,y, z }, missä x,y, z F 2 r ovat kaikki erisuuria ja nolla-alkiosta eroavia. Määritelmän.2.2 kohdan (iii) perusteella 0 + x + y + z + (0 + x + y + z) = 0. (.1) Yhtälön (2.1) jälkimmäinen osa voidaan saattaa muotoon (0 + x + y + z) = x + y + z + x 2 y + x 2 z + xy 2 + y 2 z + xz 2 + yz 2 + 6xyz = x + y + z + x 2 y + x 2 z + xy 2 + y 2 z + xz 2 + yz 2 + 2xyz + 2(x 2 y + x 2 z + xy 2 + y 2 z + xz 2 + yz 2 + 2xyz) = x + y + z + (x + y)(x + z)(y + z). Sijoitetaan tämä tulos yhtälöön (2.1), jolloin saadaan 0 + x + y + z + (0 + x + y + z) = 0, eli x + y + z + x + y + z + (x + y)(x + z)(y + z) = 0, 7

joten (x + y)(x + z)(y + z) = 0, mikä on mahdotonta, koska x, y ja z ovat keskenään erisuuria ja nolla-alkiosta eroavia. Oletetaan seuraavaksi, että U = 2 ja V = 2. Tällöin voidaan edelleen Lemman.4.1 kohdan (b) perusteella olettaa, että U = {0, x} ja V = { y, z }, y z. Tällöin määritelmän.2.2 kohdan (iii) perusteella 0 + x + (0 + x) = y + z, eli y + z = 0. Seurauksen.4.5 perusteella tiedetään, että josy = z, niiny = z, mikä on ristiriita. Näin ollen d 4. Etsitään seuraavaksi koodisana, jonka paino on 6. Olkoon x,y, z F 2 r, missä x, y ja z ovat kaikki erisuuria ja nolla-alkiosta eroavia. Seurauksen.4.5 perusteella on olemassa yksikäsitteinen w F 2 r, jolle w = x + y + z. Alkiolle w pätee w x, w y ja w z, koska jos olisi esimerkiksi w = x, niin w = x, jolloin olisi 0 = y + z ja seurauksen.4.5 perusteella edelleen y = z, mikä on ristiriita. Määritellään seuraavaksi alkio u = w + x + y + z. Koska summa w + (x + y + z) = x + y + z + (x + y + z) = x + y + z + x + y + z + (x + y)(x + z)(y + z) = (x + y)(x + z)(y + z) 0, niin w (x + y + z) ja seurauksen.4.5 perusteella myös w x + y + z. Näin ollen u 0. Olkoon nyt U = {0,u} ja V = { w, x,y, z }. Osoitetaan, että sana [χ (U ), χ (V )] on koodin P (r ) koodisana. Määritelmän.2.2 ehdot (i) ja (iv) ovat selvästi voimassa. Tarkatellaan ehdon (ii) mukaista summaa: a = u = w + x + y + z = b. a U b V 8

Näin ollen ehto (ii) on voimassa. Tarkastellaan ehdon (iii) vasenta puolta: a + a U a U = u + u = 0. Tarkastellaan seuraavaksi ehdon (iii) oikeata puolta: b = w + x + y + z = w + w = 0. b V Näin ollen a + a a U a U = b, b V ja [χ (U ), χ (V )] on koodin P (r ) koodisana, jonka paino on 6. Esimerkki.4.7. Olkoon F 8 konstruoitu kuten esimerkissä 1.4.6. Olkoot x = β, y = β ja z = β 5 kunnan F 8 alkioita. Määritellään tämän jälkeen alkio w F 8 siten, että w = x + y + z = β + β 9 + β 15 = β + β 2 + β =110 + 001 + 010 = 101 = β 6 = ( β 2), joten w = β 2. Olkoon u = w + x + y + z = β 2 + β + β + β 5 =001 + 010 + 110 + 111 = 010 = β. Määritellään joukot U = { 0, β } ja V = { β 2, β, β, β 5}. Tällöin sana [χ (U ), χ (V )] = 01000001 01110100 on koodin P () koodisana, jonka paino on 6. Lause.4.8. Koodi P (r ) ei ole lineaarinen. Todistus. Lineaarinen koodi on lineaariavaruus, jolloin kaikki koodisanojen lineaarikombinaatiot ovat myös koodisanoja. 9

Aiemmin on todettu, että [χ (U ), χ (V )] + [χ (A), χ (B)] = [χ (U A), χ (V B)]. Lauseen.4.6 avulla voidaan konstruoida koodin P (r ) koodisanat [χ (U ), χ (V )] ja [χ (A), χ (B)] siten, että U = {0,u 1 }, V = { w 1, x 1,y 1, z 1 }, A = {0,u2 } ja B = { w2, x 2,y 2, z 2 }. Lemman..1 perusteella sana [χ (U A + u1 ), χ (V B)] on koodin P (r ) koodisana. Koska U A + u 1 2, niin d ([χ (U A + u 1 ), χ (V B)], [χ (U A), χ (V B)]) 2 U A + u 1 4. Koodin P (r ) minimietäisyys on 6, joten sana [χ (U A), χ (V B)] ei ole koodin P (r ) koodisana. Näin ollen koodi P (r ) ei ole lineaarinen. 40

Luku 4 Koodausalgoritmi laajennetuille Preparata-koodeille 4.1 Yleistä Tässä luvussa esitellään algoritmi, jonka avulla viestivektoreita koodataan laajennettujen Preparata-koodien koodisanoiksi. Algoritmissa hyödynnetään aikaisemmin esiteltyjä BCH-koodeja koskevia tuloksia sekä aiemmin esitettyä kaksi virhettä korjaavan BCH-koodin tarkistusmatriisia H. Koska laajennetut Preparata-koodit eivät ole lineaarisia, ei niillä ole dimensiota. Tämä tarkoittaa myös sitä, että koodin P (r ) koodisanojen lukumäärää ei vielä tiedetä. Sanojen lukumäärä saadaan kuitenkin määriteltyä koodausalgoritmia käsittelevän teorian yhteydessä. 4.2 Koodin P (r ) koodisanojen lukumäärä Olkoon matriisi H lemman 2..9 mukainen kaksi virhettä korjaavan BCH-koodin tarkistusmatriisi, eli 41

β 0 β 0 β 1 β β 2 β 6 H =... β i β i.. β 2r 2 β (2r 2) Olkoon A matriisin H alimatriisi, joka muodostuu matriisin H viimeisistä 2r rivistä. Olkoon H matriisin H alimatriisi, joka muodostuu poistamalla matriisista H sen 2r alinta riviä. Lemman 2..11 perusteella matriisin A aste on 2r, joten käänteismatriisi A 1 on olemassa. Olkoon m = [m L,m R ] mikä tahansa binäärinen sana, jonka pituus on 2 r+1 2r 2, r 1, ja missä sanan m L pituus on 2 r 1 ja sanan m R pituus on 2 r 2r 1. Tulkitaan sen jälkeen sanat m L ja m R polynomeiksi sillä tavalla, että ja 2 r 1 m L (x) = a i x i, missä a i = m Li m R (x) = i=0 2 r 2r 1 i=0 b i x i, missä b i = m Ri. Tällä tavalla tulkittuna saadaan muodostettua seuraavat sanat, jotka muodostuvat kahdesta kunnan F 2 r alkiosta: [m L (β),m L (β )] = m L H ja [m R (β),m R (β )] = m R H, 42

Määritellään lisäksi pituudeltaan 2r oleva sana v R = [m L (β) + m R (β),m L (β ) + (m L (β)) + m R (β )]A 1, missä ensimmäinen osa m L (β) +m R (β) tulkitaan binäärivektoriksi sillä tavalla, että yhteenlaskun jälkeen alkio m L (β) + m R (β) muutetaan binäärivektoriksi, jonka pituus on r. Jälkimmäinen osa m L (β ) + (m L (β)) + m R (β ) tulkitaan vastaavalla tavalla binäärivektoriksi, jonka pituus on r. Lause 4.2.1. Olkoon r pariton luku ja m = [m L,m R ] binäärinen sana, jonka pituus on 2 r+1 2r 2. Olkoot χ (U ) = [m L,p L ], missä p L {0, 1} siten, että wt([m L,p L ]) on parillinen ja χ (V ) = [m R,v R,p R ], missä p R {0, 1} siten, että wt([m R,v R,p R ]) on parillinen. Alkioita p L ja p R kutsutaan pariteetintarkistusbiteiksi. Tällöin sana [χ (U ), χ (V )] = [m L,p L,m R,v R,p R ] on koodin P (r ) koodisana. Todistus. Olkoot matriisit H, H ja A määritelty samalla tavalla kuin aikaisemmin. Tällöin [m R,v R ]H = [m R ]H + [v R ]A = [m R (β),m R (β )] + [m L (β) + m R (β),m L (β ) + (m L (β)) + m R (β )]A 1 A = [m R (β) + m L (β) + m R (β),m R (β ) + m L (β ) + (m L (β)) + m R (β )] = [m L (β),m L (β ) + (m L (β)) ]. Joukko U on nyt U = {b i sanan χ (U ) kohdassa i on 1, 0 i 2 r 2} { 0, jos p L = 1 } ja joukko V on V = {b i sanan χ (V ) kohdassa i on 1, 0 i 2 r 2} { 0, jos p R = 1 } Näin ollen [m R,v R ]H = v, v. v V v V 4

Vastaavasti m L (β) = u u U ja m L (β ) + (m L (β)) = u + u u U u U. Nyt v, v = [m R,v R ]H v V v V =[m L (β),m L (β ) + (m L (β)) ] = u U u + u, u U u U u, joten v, v = v V v V u U u + u, u U u U u, eli u = v u U v V ja u + u u U u U = v. Näin ollen määritelmän.2.2 ehdot (ii) ja (iii) ovat voimassa. Myös määritelmän.2.2 ehdot (i) ja (iv) ovat selvästi voimassa. Tämä tarkoittaa, että sana [χ (U ), χ (V )] on koodin P (r ) koodisana. v V 44

Seuraus 4.2.2. Koodissa P (r ) on 2 2r +1 2r 2 koodisanaa. Todistus. Lauseessa 4.2.1 on 2 2r +1 2r 2 eri tapaa valita sanam = [m L,m R ]. Jokaisesta erilaisesta valinnasta saadaan erilainen koodisana, jonka osat p L,v R ja p R määrittyvät yksikäsitteisesti sanan m perusteella. Näin ollen koodissa P (r ) on yhteensä 2 2r +1 2r 2 koodisanaa. 4. Koodin P (r ) koodausalgoritmi Algoritmi 4..1. [Laajennetun Preparata-koodin P (r ) koodaus] Olkoon m L binäärinen sana, jonka pituus on 2 r 1 ja olkoon m R binäärinen sana, jonka pituus on 2 r 2r 1. Määritellään v R samalla tavalla kuin lauseessa 4.2.1. Tällöin sana [m L,p L,m R,v R,p R ] on viestiä m = [m L,m R ] vastaava koodisana. Esimerkki 4..2. Olkoot r =, m L = 0110010 ja m R = 1. Tällöin m L (β) = β + β 2 + β 5 = β 0 ja m R (β) = β 0, m L (β ) = β + β 6 + β 15 = β 2 ja m R (β ) = β 0. Olkoon matriisi A 1 muodostettu samalla tavoin kuin esimerkissä 2..12. Tällöin saadaan muodostettua v R = [β 0 + β 0, β 2 + β 0 + β 0 ]A 1 = [0, β 2 ]A 1 001 011 111 010 = [000001] 011 101 110 100 101 110 111 001 = 111001. 45