KOODAUSTEORIA S
|
|
|
- Arttu Myllymäki
- 9 vuotta sitten
- Katselukertoja:
Transkriptio
1 KOODAUSTEORIA S syksy 2009 Marko Rinta-aho
2 Sisältö 1 Perusteita Johdanto Kanavista Koodaus-dekoodausjärjestelmä Äärellisistä kunnista Perustuloksia Kunnan F p m konstruointi Lineaariset koodit Lineaarisen koodin määrittely Tarkistusmatriisi Lineaarisen koodin dekoodaus Hammingin koodit Reedin Mullerin koodit Uusien lineaaristen koodien muodostaminen tunnetuista Sykliset koodit Algebrallisia apuneuvoja Jäännösluokkarengas R n Minimipolynomi Ykkösen juurista Syklisen koodin määritelmä ja perusominaisuuksia Generoija- ja tarkistusmatriisi Systemaattinen koodaus Syklisen koodin nollakohdat Idempotentit Syklisen koodin jälkiesitys Mattsonin Solomonin polynomit BCH-, RS- ja Goppa-koodit BCH-koodien määrittely BCH-koodin dekoodaus Reedin Solomonin koodit Goppa-koodit Alternanttikoodit ja niiden Eukleideen algoritmiin perustuva dekoodaus Alternanttikoodin dekoodaus, kun esiintyy pyyhkyitymiä ja virheitä
3 6 Ryöppyvirheitä korjaavat koodit Peruskäsitteitä RS-koodeista johdetut koodit Tulokoodit Kiedotut koodit Koodijonot hajaspektritekniikassa Monen käyttäjän kanavat Korrelaatioista Additiivinen karakteeri Goldin jonoista Hadamardin matriisit ja koodit Hadamardin matriisit Hadamardin koodit Koodirajoista Peruskäsitteitä Plotkin-raja Elias-raja Gilbert Varšamov-raja
4 1 Perusteita Tämä luentomoniste on kirjoitettu professori (emeritus) Keijo Väänäsen koodausteorian kurssin luentomonisteen pohjalta. Kurssin aiheista löytyy kirjallisuudesta tietoa muun muassa lähteistä R. Lidl, H. Niederreiter: Finite Fields, Cambridge Univeristy Press. J. H. van Lint: Introduction to Coding Theory, Springer-Verlag, F. J. MacWilliams, N. J. A. Sloane: The Theory of Error-correcting Codes, North-Holland, S. Roman: Coding and Information Theory, Springer-Verlag, S. A. Vanstone, P. C. Oorschot: An Introduction to Error Correcting Codes with Application, Kuwer Academic Publishers, Näistä ensimmäinen käsittelee varsin kattavasti äärellisiä kuntia, muut keskittyvät koodausteoriaan. 1.1 Johdanto 1940-luvun lopulla Claude Shannon esitti tiedonsiirtojärjestelmiä käsittelevän matemaattisen teorian, informaatioteorian perusideat. Yksi tämän teorian keskeisimpiä alueita on koodausteoria. Yksinkertainen tiedonsiirtojärjestelmä koostuu kolmesta osasta: tietolähteestä, tiedonsiirtokanavasta ja tiedon vastaanottajasta. Usein käytetyt kanavat ovat esimerkiksi puhelinlinjat, ilmakehä tai avaruus radioliikenteessä, jne. Yleensä kanavat ovat alttiita häiriöille, jotka aiheuttavat virheitä lähetettyyn tietoon. Koska vastaanottaja ei voi tietää, mitä tietoa kanavaan on lähetetty, on korjaukset pystyttävä tekemään kanavasta vastaanotetun tiedon perusteella. Koodausteoria pyrkii mahdollistamaan tämän. Jo Shannon osoitti, että häiriöisessäkin kanavassa tiedonsiirto saadaan halutun luotettavaksi käyttämällä sopivaa koodausta, jonka löytäminen tosin ei ole helppoa. Kun halutaan suorittaa virheenkorjaus, on edellä mainittuun tiedonsiirtojärjestelmään lisättävä vielä kaksi osaa: kooderi ja dekooderi. Kooderi muodostaa lähetettäväksi halutusta tiedosta m (viesti tai sanoma) jonkin koodisanan c, joka lähetetään kanavaan. Dekooderin tehtävänä on arvata, mikä viesti on haluttu lähettää. Arvaus m perustuu kanavasta vastaanotettuun tietoon r. 1
5 Kokonaisuudessaan tiedonsiirtojärjestelmän tässä kurssissa suoritettavan matemaattisen käsittelyn kannalta olennainen kaavio on seuraava: tietolähde m kooderi tiedonsiirtokanava c r dekooderi kohina m vastaanottaja Tieto saapuu yleensä vektorina, jonka komponentit ovat äärellisen kunnan, useimmiten kunnan F 2 = {0, 1}, alkioita. Koodausteorian perusidea on se, että koodisanat ovat jollakin tavalla mitattuna kaukana toisistaan, jolloin virheellinenkin muoto voidaan tulkita oikeaksi (eli lähinnä olevaksi koodisanaksi). Viestityksen tapahtuessa bitteinä, ts. aakkoston {0, 1} alkioina, voidaan sanojen välistä etäisyyttä mitata esimerkiksi sillä, kuinka monessa kohdassa bitit eroavat toisistaan. Jotta virhe voitaisiin havaita ja mahdollisesti korjata, joudutaan käyttämään pitempiä sanoja kuin häiriöttömässä kanavassa olisi tarpeellista. Tämä on koodauksen hinta. Yksi yksinkertainen esimerkki virheenpaljastavasta koodista on pariteetintarkistuskoodi. Siinä, sen jälkeen kun viesti on käännetty bittimuotoon, kooderi lisää loppuun yhden bitin niin, että bittien summa 0 (mod 2) (esimerkiksi koodataan vektoriksi ). Jos kanavassa syntyy yksi virhe, se paljastuu, koska tällöin vastaanotetun sanan bittien summa 0 (mod 2). 1.2 Kanavista Matemaattisesti kanavia kuvataan todennäköisyysavaruuksien avulla. Seuraavassa tarkastellaan ainoastaan yksinkertaisinta kanavaluokkaa: diskreettejä muistittomia kanavia (DMC, discrete memoryless channel). Diskreetin kanavan syöttö koostuu jonkin aakkoston A = {a 1, a 2,..., a n } kirjaimista muodostetuista jonoista, joita kutsutaan sanoiksi. Vastaavasti tulostus koostuu jonkin aakkoston B = {b 1, b 2,..., b m } kirjaimista muodostetuista jonoista. 2
6 Syötettä x = x 1... x n vastaava tulostus y = y 1... y n määräytyy siirtotodennäköisyyksien P (b j a i ) perusteella, missä P (b j a i ) on todennäköisyys, että tulostus on b j, kun syöttö on a i. Muistittomassa kanavassa tulostuksen y = y 1... y n jokainen kirjain y i riippuu vain vastaavasta syöttösanan kirjaimesta x i. Lähetettäessä kanavaan sana x = x 1... x n, vastaanotettu sana on y = y 1... y n todennäköisyydellä P (y x) = P (y 1 x 1 ) P (y n x n ). Yksinkertainen esimerkki DMC:stä on binäärinen symmetrinen kanava (BSC, binary symmetric channel). Tällä kanavalla sekä syöttö- että tulostusaakkosto on {0, 1} ja siirtotodennäköisyydet ovat P (0 1) = P (1 0) = p ja P (0 0) = P (1 1) = q = 1 p. Luonnollisesti voidaan olettaa, että p < q. Yleensä p on hyvin pieni, esimerkiksi p < Dekoodausvirheen todennäköisyys P e = P error DMC:ssä minimoidaan dekoodaamalla vastaanotettu sana y sellaiseksi koodisanaksi x, että P (y x) = max{p (y x i ) i = 1,..., k}. Tässä x 1,..., x k ovat lähetettäviä sanoja, jotka yleensä oletetaan yhtä todennäköisiksi. Esimerkiksi BSC:ssä on P (y x) = P (y 1 x 1 ) P (y n x n ) = p d H(x,y) (1 p) n d H(x,y), missä d H (x, y) määritellään seuraavasti. Määritelmä Avaruuden {0, 1} n alkioiden x ja y Hamming-etäisyydeksi d H (x, y) sanotaan niiden komponenttien määrää, joissa x ja y eroavat. Huomautus Pari ({0, 1} n, d H ) on metrinen avaruus; seuraavassa merkitään yleensä d = d H. Yllä olevan nojalla BSC:ssä todennäköisyys P (y x) maksimoidaan dekoodaamalla y sellaiseksi koodisanaksi x, että d(x, y) = min{d(x i, y) i = 1,..., k}. Hamming-etäisyys on siis tässä yhteydessä käyttökelpoinen. Tarkastellaan seuraavaa esimerkkiä: Huoneessa heitetään rahaa nopeudella t heittoa minuutissa. Huone on yhdistetty toiseen huoneeseen BSC:llä, jonka virhetodennäköisyys on p. Oletetaan, että kanava välittää 2t kirjainta minuutissa ja käytössä on T minuuttia, jos rahanheitto kestää T minuuttia. Kruunun tullessa lähetetään 0 ja klaavan tullessa 1. Shannonin tulosten mukaan tässäkin tilanteessa on mahdollista päästä mielivaltaisen pieneen virhetodennäköisyyteen sopivalla koodin valinnalla. 3
7 Virhetodennäköisyyttä voidaan pienentää esimerkiksi lähettämällä kahden heiton tulokset seuraavasti: kr, kr 0000 kl, kr 1001 kr, kl 0111 kl, kl 1110 Informaatio on siis kahdessa ensimmäisessä symbolissa, toiset kaksi varmistavat perillemenon. Dekoodaaja toimii seuraavasti. Jos saatu sanoma ei ole yksikään neljästä edellä mainituista, niin oletetaan, että neljäs symboli on oikea ja että virhe on yhdessä kolmesta ensimmäisestä symbolista. Tällöin jokainen saatu nelikkö voidaan dekoodata yksikäsitteisesti (jos viimeinen symboli on 0: 000, 111; jos taas viimeinen symboli on 1: 011, 100). Valitaan p = 0,001, jolloin q = 1 p = 0,999. Jos edellä mainitut oletukset ovat oikeita, niin tulos on oikea todennäköisyydellä q 4 + 3q 3 p 0,999. Lähetettäessä kaksi symbolia yksinään tulos on oikein todennäköisyydellä q 2 0, Koodaus-dekoodausjärjestelmä Määritelmä Koodausjärjestelmäksi sanotaan järjestettyä nelikköä (M, A, n, γ), missä M ja A ovat äärellisiä epätyhjiä joukkoja, n Z + ja γ on injektio M A n. Joukkoa M sanotaan viestiaakkostoksi, joukkoa A koodiaakkostoksi, joukkoa C = γ(m) koodiksi, lukua n koodin C pituudeksi ja kuvausta γ koodauskuvaukseksi. Määritelmä Koodaus-dekoodausjärjestelmäksi sanotaan järjestettyä kuusikkoa (M, A, n, γ,?, δ), missä (M, A, n, γ) on koodausjärjestelmä,? on symboli, joka ei kuulu joukkoon M, ja δ on kuvaus A n M {?}, jolle δ(γ(m)) = m kaikilla m M. Kuvausta δ sanotaan dekoodauskuvaukseksi ja symbolia? virheilmoitussymboliksi. Määritelmä Tiedonvälitysjärjestelmäksi sanotaan järjestettyä paria (K, D), missä K on Määritelmän mukainen koodaus-dekoodausjärjestelmä ja D on diskreetti muistiton kanava, jonka syöttö- ja tulostusaakkosto on A. Jatkossa merkintä F q tarkoittaa kertalukua q olevaa äärellistä kuntaa ja oletetaan, että A = F q (usein q = 2). Joukkoa F n tarkastellaan lineaariavaruutena kunnan F suhteen. 4
8 Määritelmä Avaruuden F n alkioiden a ja b Hamming-etäisyydeksi d H (a, b) = d(a, b) sanotaan niiden komponenttien lukumäärää, joissa a ja b eroavat toisistaan. Avaruuden F n alkion a Hamming-painoksi wt H (a) = wt(a) sanotaan vektorin a nollasta eroavien komponenttien lukumäärää. Vektorin a paino on siis wt(a) = d(a, 0). Selvästi (F n, d H ) on metrinen avaruus. Joukkoa B(a, e) = {x F n d(x, a) e} sanotaan a-keskiseksi e-säteiseksi palloksi ja joukkoa S(a, e) = {x F n d(x, a) = e} a-keskisen e-säteisen pallon pinnaksi. Joukon A alkioiden lukumäärälle käytetään merkintää A, tai joskus #A. Määritelmä Koodin C minimietäisyydeksi sanotaan lukua d min C = min{d(a, b) a, b C, a b}. Koodia C sanotaan e virhettä korjaavaksi koodiksi, jos koodisanakeskiset e- säteiset pallot ovat erillisiä. Jos lisäksi nämä pallot yhdessä täyttävät koko avaruuden F n, niin koodia C sanotaan täydelliseksi e virhettä korjaava koodiksi. Koodia C F n, jolle C = K ja d min C = d, sanotaan (n, K, d)-koodiksi. Lukua R(C) = 1 n log q C sanotaan koodin C informaatiosuhteeksi. Huomautus Sen, että koodi C on e virhettä korjaava, voi ilmaista myös muodossa d min C 2e + 1. Koodin C täydellisyyden ehto toisin ilmaistuna on c C B(c, e) = F n. Minimietäisyyden selville saaminen vaatii yleensä C ( C 1) 2 laskutoimitusta. Jos C = q k, niin informaatiosuhde on R(C) = k n. Määritelmä Binäärisen symmetrisen kanavan kapasiteetiksi kutsutaan lukua K = 1 + p log 2 p + (1 p) log 2 (1 p), missä p on virhetodennäköisyys. Oletetaan, että 0 < R < K ja ε > 0. Tällöin pätee Shannonin lause: On mahdollista löytää koodi, jonka informaatiosuhde on R ja virhetulkinnan todennäköisyys pienempi kuin ε. Olkoon F = q. Asetetaan A q (n, d) = max{k on olemassa (n, K, d)-koodi C F n }, R q (n, d) = 1 n log q A q (n, d). 5
9 Koodausteoriassa keskeisiä kysymyksiä ovat muun muassa seuraavat: luvun A q (n, d) arviointi; hyvien koodien konstruointi, siis sellaisten (n, K, d)- koodien, joille K A q (n, d); nopeiden ja halpojen koodaus- ja dekoodausalgoritmien löytäminen. Määritelmä Dekoodausfunktiota δ sanotaan e virhettä korjaavaksi, jos δ(r) = m aina, kun d(γ(m), r) e. Jos C on e virhettä korjaava koodi ja δ on funktio, joka dekoodaa lähimmäksi koodisanaksi, niin myös δ on e virhettä korjaava. Tällaisen funktion δ löytäminen on kuitenkin yleensä sekä matemaattisesti että teknisesti hankalaa. Tehokkaan koodaus-dekoodausjärjestelmän löytämiseksi annetaan tarkasteltaville joukoille ja funktioille sopivia algebrallisia ominaisuuksia. Tällaisten käsittelyjen mahdollistamiseksi tarkastellaan seuraavassa äärellisten kuntien ominaisuuksia. 6
10 2 Äärellisistä kunnista Kommutatiiviseksi ykköselliseksi renkaaksi kutsutaan epätyhjää joukkoa R varustettuna laskutoimituksilla + (yhteenlasku) ja (kertolasku), jotka toteuttavat jokaisella a, b, c R ehdot 1. assosiatiivisuus ja kommutatiivisuus: a + (b + c) = (a + b) + c, a + b = b + a, a(bc) = (ab)c, ab = ba; 2. distributiivisuus: a(b + c) = ab + ac; 3. on olemassa sellainen 0 R (nolla-alkio), että a + 0 = a kaikilla a R; 4. jokaista a R kohti on olemassa sellainen b R (vasta-alkio), että a+b = 0; 5. on olemassa sellainen 1 R, 1 0 (ykkösalkio), että a 1 = a kaikilla a R \ {0}. Jatkossa renkaalla tarkoitetaan kommutatiivista ykkösellistä rengasta. Rengasta sanotaan kunnaksi, jos edelläolevien ehtojen lisäksi 6. jokaista a R \ {0} kohti on olemassa sellainen b R (käänteisalkio), että ab = 1. Alkion a vasta-alkiota merkitään a ja käänteisalkiota a Perustuloksia Olkoon m Z +. Kokonaislukujen a ja b sanotaan olevan kongruentteja modulo m, jos m (a b). Tätä merkitään a b (mod m). Kongruenssi modulo m on ekvivalenssirelaatio ja se jakaa joukon Z alkiot ekvivalenssiluokkiin. Nämä ovat jäännösluokkia modulo m ja alkion a määräämä jäännösluokka a koostuu luvuista x, joille x a (mod m). Siis a = {a + nm n Z}. Näitä jäännösluokkia on m kappaletta, esimerkiksi 0, 1,..., m 1, ja niiden muodostamalle joukolle käytetään merkintää Z m. Kun määritellään joukon Z m yhteen- ja kertolasku asettamalla a + b = a + b ja a b = ab, joukosta Z m saadaan rengas. 7
11 Lause Rengas Z m on kunta, jos ja vain jos m on alkuluku. Todistus. Jos m on yhdistetty luku, niin m = kl joillakin 1 < k, l < m. Tällöin k, l 0, mutta k l = m = 0. Jos esimerkiksi l 1 olisi olemassa, niin k = k 1 = k(l l 1 ) = (k l)l 1 = 0 l 1 = 0, mikä on ristiriita. Siten alkiolla l ei ole käänteisalkiota eikä Z m ole kunta. Olkoon sitten m = p alkuluku ja olkoon a 0. Tällöin syt(a, p) = 1 ja Eukleideen algoritmin mukaan on olemassa sellaiset x, y Z, että ax+py = 1 renkaassa Z. Täten renkaassa Z m saadaan yhtäsuuruus a x + p y = 1. Tässä p y = 0, joten a x = 1 eli x = a 1. Näin ollen Z p on kunta. Esimerkiksi kunnille Z 2 ja Z 5 saadaan seuraavat laskutaulut: Z 2 : Z 5 : Kunnassa Z p, p alkuluku, pätee a } + {{ + a } = p a = 0 kaikilla a Z p. p kpl Määritelmä Kunnan F karakteristikaksi n sanotaan pienintä sellaista positiivista kokonaislukua (jos on olemassa), että na := a } + {{ + a } = 0 kaikilla a F. n kpl Jos tällaista lukua n ei ole olemassa, sanotaan, että kunnan F karakteristika on 0. Lause Kunnan karakteristika on aina alkuluku tai 0. 8
12 Todistus. Riittää tarkastella määritelmän ehtoa, kun a = 1. Oletetaan, että karakteristika on n 0 ja että n1 = 0. Jos n olisi yhdistetty luku, niin n = kl joillakin k, l {2, 3,..., n 1}. Tällöin 0 = n1 = (kl)1 = (k1)(l1). Koska kunta on kokonaisalue, niin k1 = 0 tai l1 = 0. Tämä on ristiriidassa karakteristikan määritelmän kanssa, joten n on alkuluku. Lause Jos kunnan F karakteristika on 0, niin sen suppein alikunta on Q (isomorfinen kunnan Q kanssa). Jos taas kunnan F karakteristika on alkuluku p, niin sen suppein alikunta on Z p (isomorfinen kunnan Z p kanssa). Todistus. Harjoitustehtävä 6. Kun otetaan huomioon, että kuntaa voidaan tarkastella vektoriavaruutena suppeimman alikuntansa suhteen, saadaan helposti seuraava tulos. Lause Äärellisen kunnan F kertaluku F (eli kunnan F alkioiden lukumäärä) on muotoa p m, missä m Z + ja p on kunnan F karakteristika. Todistus. Koska F on äärellinen, niin sen karakteristika on jokin alkuluku p (Lause 2.1.3) ja sen suppein alikunta voidaan samaistaa kunnan Z p kanssa (Lause 2.1.4). Kun F ajatellaan vektoriavaruudeksi kunnan Z p suhteen, on sen dimensio välttämättä äärellinen. Olkoon dim F = m ja {α 1,..., α m } F avaruuden F kanta. Tällöin kunnan F jokaisella alkiolla on yksikäsitteinen esitys kantavektoreiden lineaariyhdisteenä eli F = {a 1 α a m α m a i Z p }. Siten F = p m, koska tässä jokainen kerroin a i voidaan valita p eri tavalla Seurauksessa todetaan, että mielivaltaista alkuluvun potenssia p m vastaa kunta, jonka kertaluku on p m. Voidaan osoittaa, että kaikki samaa kertalukua olevat äärelliset kunnat ovat isomorfisia. Isomorfiaa vaille yksikäsitteiselle kertalukua p m olevalle kunnalle käytetään yleensä merkintää F p m tai GF(p m ) (Galois field, Évariste Galois, ). Esimerkiksi Z p ja F p voidaan samaistaa. Seuraavassa jätetään yleensä viivat pois ja merkitään Z p = {0, 1,..., p 1}. 9
13 2.2 Kunnan F p m konstruointi Polynomirenkaalle kunnan F suhteen käytetään seuraavassa merkintää F[x]. Astetta m olevaa polynomia sanotaan jaottomaksi, jos se ei ole jaollinen millään sellaisella renkaan F[x] polynomilla, jonka aste on positiivinen ja pienempi kuin m. Tämä on yhtäpitävää sen kanssa, että polynomilla ei ole olemassa tekijöihinjakoa fg, missä deg f, deg g 1. Olkoon g F[x] astetta m 1 oleva polynomi. Jos p, q F[x], niin merkitään p q (mod g) jos ja vain jos g (p q). Tämä kongruenssi on ekvivalenssirelaatio ja jakaa joukon F[x] alkiot ekvivalenssiluokkiin, jotka ovat jäännösluokkia modulo g. Jos f F[x] on mielivaltainen, niin jakoyhtälön mukaan f(x) = s(x)g(x) + r(x), missä deg r < m. Tässä, kuten jatkossakin, nollapolynomin asteeksi sovitaan deg 0 =, jolloin edellä voi olla r(x) = 0. Näin ollen f r (mod g), joten kustakin jäännösluokasta löytyy edustaja, jonka aste on < m, esimerkiksi edellä f {r + pg p F[x]} =: r (= f). Toisaalta, jos r 1 ja r 2 ovat kaksi eri polynomia ja deg r i < m, niin r 1 r 2, sillä g (r 1 r 2 ). Jäännösluokkien modulo g joukko F[x]/ g(x) on siis { r m 1 r(x) = i=0 } a i x i, a i F. Kun määritellään yhteen- ja kertolasku asettamalla r 1 + r 2 = r 1 + r 2 ja r 1 r 2 = r 1 r 2, niin F[x]/ g(x) tulee renkaaksi, jonka nolla- ja ykkösalkio ovat 0 ja 1. Lause Olkoon p alkuluku ja g Z p [x] astetta m 1 oleva polynomi. Tällöin jäännösluokkarengas Z p [x]/ g(x) on kunta jos ja vain jos g on jaoton. Kyseisessä kunnassa on p m alkiota. Todistus. Harjoitustehtävä 7. Jos merkitään α = x, niin yllä olevan mukaan F p m = { m 1 i=0 } a i α i ai Z p, g(α) = 0, missä g on astetta m 1 oleva renkaan Z p [x] jaoton polynomi. Kunnan F p m konstruoiminen on siis mahdollista heti, kun löytyy sopiva jaoton polynomi. Jaottomuustarkastelussa lineaarinen tekijä löytyy seuraavan lauseen avulla. 10
14 Lause Olkoon F kunta. Jos f(x) F[x] ja a F, niin (x a) f(x) jos ja vain jos f(a) = 0. Todistus. Jakoyhtälön mukaan f(x) = h(x)(x a) + r, missä r F on vakiopolynomi. Toisaalta (x a) f(x), jos ja vain jos r = 0, ja toisaalta r = f(a). Väite seuraa tästä. Seuraus Olkoon F kunta ja f F[x]. Jos deg f {2, 3}, niin f on jaoton, jos ja vain jos sillä ei ole nollakohtia kunnassa F. Esimerkki Konstruoidaan kunta F 16 = F 2 4 käyttämällä polynomia g(x) = x 4 + x + 1 Z 2 [x]. Koska g(0) = g(1) = 1 0, niin polynomilla g ei ole lineaarisia tekijöitä. Mahdolliset toisen asteen tekijät saadaan yhtälöstä x 4 + x + 1 = (x 2 + ax + b)(x 2 + cx + d). Ratkaisemalla kertoimet a, b, c ja d saadaan ristiriita. Siten g on jaoton renkaassa Z 2 [x] ja { 3 } F 16 = a i α i ai Z 2, α 4 + α + 1 = 0, ts. α 4 = 1 + α. i=0 Merkitään jälleen alkiota a 0 + a 1 α + a 2 α 2 + a 3 α 3 jonona a 0 a 1 a 2 a 3. Tällöin saadaan seuraavat potenssit: 1 = 1000 α = 0100 α 2 = 0010 α 3 = 0001 α 4 = 1100 α 5 = 0110 α 6 = 0011 α 7 = 1101 α 8 = 1010 α 9 = 0101 α 10 = 1110 α 11 = 0111 α 12 = 1111 α 13 = 1011 α 14 = 1001 (Seuraavana saataisiin α 15 = 1000 = 1.) Esimerkki Kunta F 32 saadaan konstruoitua vastaavasti esimerkiksi polynomin x 5 + x F 2 [x] avulla. (Totea, että tämä todella on jaoton!) Jos α on tämän polynomin nollakohta eli α 5 + α = 0, niin alkion α potenssit ovat: α = α 2 = α 3 = α 4 = α 5 = α 6 = α 7 = α 8 = α 9 = α 10 = α 11 = α 12 = α 13 = α 14 = α 15 = α 16 = α 17 = α 18 = α 19 = α 20 = α 21 = α 22 = α 23 = α 24 = α 25 = α 26 = α 27 = α 28 = α 29 = α 30 =
15 Edellä olevissa esimerkeissä F := F\{0} on kertolaskun suhteen syklinen ryhmä. Tämä ominaisuus pätee yleisesti äärellisissä kunnissa, kuten pian osoitetaan. Määritelmä Kunnan F alkion a F (multiplikatiiviseksi) kertaluvuksi sanotaan pienintä sellaista k Z +, että a k = 1. Tätä merkitään k = ord a tai k = a. Määritelmä Kunnan F q alkiota γ 0 sanotaan primitiiviseksi eli kunnan F q primitiivialkioksi, jos ord γ = q 1, ts. jos 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 Äärellisen kunnan nollasta 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. Todistus. Joukko Fq on ryhmä kertolaskun suhteen. Olkoon α Fq annettu ja olkoon r = ord α. Koska ryhmässä Fq on q 1 alkiota, niin potensseilla α i, i = 0, 1, 2,..., q 1 on korkeintaan q 1 eri arvoa. Siten r q 1. Valitaan nyt α Fq niin, että sen kertaluku r on mahdollisimman suuri. Osoitetaan, että ryhmän Fq jokaisen alkion kertaluku on luvun r tekijä. Olkoon β Fq ja l = ord β. Olkoon π alkuluku, jolle π l, l = π b l ja π l. Olkoon edelleen r = π a r ja π r. Tällöin ord α πa = r ja ord β l = π b. Harjoitustehtävän 13b mukaan ord α πa β l = π b r, joten alkion α valinnasta johtuen b a. Täten l r, ja jokainen β Fq toteuttaa yhtälön x r 1 = 0. Polynomilla x r 1 on siten vähintään q 1 nollakohtaa, eli r q 1. Siis r = q 1, ja yllä valittu α generoi ryhmän Fq, joka on syklinen. Jälkimmäinen väite seuraa yleisistä syklisten ryhmien ominaisuuksista ja se jätetään harjoitustehtäväksi. Seuraus Kunnan F q jokainen alkio toteuttaa yhtälön x q x = 0 ja x q x = β Fq(x β). Lause Jos kunnan F karakteristika on p, niin siellä pätee yhtälö (x + y) p = x p + y p. 12
16 Todistus. Binomikaavan nojalla (x + y) p = p ( ) p 1 p ( ) p x i y p i = x p + y p + x i y p i. i i i=0 Koska p ( p i) kaikilla i = 1,..., p 1, niin ( ) p x i y p i = pa = 0 jollakin a F. i Tämä todistaa väitteen. Seuraus Jos l Z + ja β i F q, missä q = p m, niin i=1 ( k ) p l β i = i=1 k i=1 β pl i. Jos edelleen f F q [x], niin (f(x)) ql = f(x ql ). Todistus. Väitteet seuraavat Lauseesta induktiolla ja huomaamalla, että Seurauksen mukaan jokainen a F q toteuttaa ehdon a q = a. Seuraus Kuvaus σ : F p m F p m, σ(x) = x p on bijektiivinen (kunta)homomorfismi, kunnan F p m ns. Frobenius-automorfismi. Todistus. Lauseet ja Lause Polynomi x pm x Z p [x] on renkaan Z p [x] niiden jaottomien ykköspolynomien (korkeimman potenssin kerroin 1) tulo, joiden asteet ovat luvun m tekijöitä. Todistus. Todistetaan väite kolmessa osassa. Osoitetaan ensin, että jokainen väitetynlainen ykköspolynomi jakaa polynomin x pm x, sitten että polynomin x pm x jokaisen jaottoman tekijän aste jakaa luvun m ja lopuksi, että polynomin x pm x tekijät ovat yksinkertaiset. Olkoon siis ensin r(x) Z p [x] jaoton ykköspolynomi, deg r = d ja d m. Tapaus r(x) = x on selvä, joten oletetaan, että r(x) x. Tarkastellaan kuntaa F p d = Z p [x]/ r(x). Polynomin r(x) nollakohdalle α pätee α pd 1 1 = 0. Lisäksi r on jaoton, joten r(x) (x pd 1 1). Koska d m, niin (p d 1) (p m 1). Edelleen (x pd 1 1) (x pm 1 1) ja r(x) (x pm 1 1). Olkoon sitten r jaoton astetta d oleva ykköspolynomi ja r(x) (x pm x). Osoitetaan, että d m. Tapaus r(x) = x on selvä, joten oletetaan, että 13
17 r(x) x. Tällöin r(x) (x pm 1 1). Olkoon F = Z p [x]/ r(x), jolloin kunnan F kertaluku on p d. Jos α on polynomin r nollakohta ja β kunnan F primitiivialkio, niin on olemassa sellaiset kunnan Z p alkiot a 0, a 1,..., a d 1, että β = a 0 + a 1 α + + a d 1 α d 1. Koska r(α) = 0, niin α pm = α ja Seurauksen nojalla myös β pm = β. Täten β pm 1 = 1 ja, koska ord β = p d 1, niin (p d 1) (p m 1). Harjoitustehtävän 28 nojalla d m. Enää on osoitettavana, että polynomin x pm x tekijät ovat yksinkertaiset. Jos f(x) = x pm x, niin f (x) = 1. Siten syt(f, f ) = 1 eikä polynomilla f ole useammankertaisia tekijöitä. Lause Jokaista alkulukua p ja positiivista kokonaislukua m kohti renkaassa Z p [x] on jaoton ykköspolynomi, jonka aste on m. Todistus. Olkoon I p (m) renkaan Z p [x] jaottomien astetta m olevien ykköspolynomien lukumäärä. Lauseen mukaan p m = d m di p(d), joten Näin ollen I p (m) 1. mi p (m) = p m di p (d) p m d m d m d<m d<m m 1 p m p i = p m pm 1 p 1 > 0. i=0 Seuraus On olemassa kunta F p m. p d 14
18 3 Lineaariset koodit 3.1 Lineaarisen koodin määrittely Olkoon F äärellinen kunta. Joukko F n on vektoriavaruus kunnan F suhteen, jonka kannaksi voidaan valita esimerkiksi vektorit E 1 = , E 2 = ,..., E n = Lineaarialgebrasta tiedetään, että epätyhjä joukko U F n on avaruuden F n aliavaruus, jos x + y U kaikilla x, y U ja ax U kaikilla a F ja x U. Jos F = F p, erityisesti F 2, riittää todeta vain ensimmäinen ehto, sillä toinen on selvä. Määritelmä Koodausjärjestelmää (M, F, n, γ) sanotaan lineaariseksi, jos M on vektoriavaruus F k (luonnollisesti k n) ja γ on injektiivinen lineaarinen kuvaus M F n. Tällöin C = γ(m) on selvästi avaruuden F n k-ulotteinen aliavaruus, joten on luonnollista asettaa seuraava määritelmä. Määritelmä Lineaariseksi koodiksi kutsutaan avaruuden F n aliavaruutta. Aliavaruuden ollessa k-ulotteinen ja koodin minimietäisyyden ollessa d koodia kutsutaan [n, k, d]-koodiksi tai lyhyemmin [n, k]-koodiksi. Lineaarista koodia sanotaan myös ryhmäkoodiksi, koska (C, +) on ryhmä. 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 a k g k = (a 1... a k )G, missä g 1 g 2 G =. g k Koodauskuvaus γ voidaan siis valita niin, että viestivektori m F k kerrotaan matriisilla G, eli valitaan γ(m) = mg. Tällöin k n C = {c c = mg, m F k }. Määritelmä Edellä mainittua koodin kantavektoreista muodostettua k n-matriisia G sanotaan [n, k]-koodin C generoijamatriisiksi.. 15
19 Huomautus Koska kanta ei ole yksikäsitteinen, ei myöskään G ole sitä. Sen sijaan aina rank G = k. Esimerkki Seuraavassa on esimerkkejä lineaarisista koodeista kunnan F 2 suhteen annettuna generoijamatriisin avulla. [ ] C 1 : G 1 = [3, 2]-koodi [ ] C 2 : G 2 = [5, 2]-koodi C 3 : G 3 = [7, 4]-koodi Toistokoodi on [n, 1]-koodi, jolle G = [ ]. 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. Systemaattisesta koodauksesta puhutaan myös silloin, kun viestivektori on luettavista suoraan koodisanasta, mutta ei välttämättä sen alusta. Jos koodi C 1 saadaan koodista C permutoimalla koodin C koodisanojen komponentteja, niin koodeja C 1 ja C sanotaan ekvivalenteiksi, merkitään C 1 C. Lisäksi lineaarialgebrasta tiedetään, että elementaariset vaakarivimuunnokset eivät muuta matriisin vaakarivien virittämää aliavaruutta. Näin ollen jokaista koodia vastaa sellainen ekvivalenttinen koodi, jossa koodaus on systemaattista. Yksi lineaaristen koodien merkittävä etu on se, että minimietäisyyden laskemiseen tarvitaan vain C 1 etäisyyden laskemista. Lause Jos C on lineaarinen koodi, niin d min C = min{wt(x) x C, x 0}. Todistus. {x y x, y C, x y} = C \ {0}. 16
20 3.2 Tarkistusmatriisi Määritelmä Lineaarisen [n, k]-koodin C tarkistusmatriisiksi kutsutaan (n k) n-matriisia H, jolle C = {x F n xh T = 0}. Huomautus Tarkistusmatriisi on olemassa: Olkoon C [n, k]-koodi kunnan F suhteen ja olkoot koodin kantavektorit g 1,..., g k. Tällöin matriisin H jokaisen vaakarivin y tulee toteuttaa ehto g i y T = 0 kaikilla i = 1,..., k eli Gy T = 0 T. Kyseessä on lineaarinen homogeeninen yhtälöryhmä, jonka kerroinmatriisin G aste on k. Tunnetusti (LA I) tämän yhtälöryhmän ratkaisuvektorit muodostavat (pysty)vektoriavaruuden F (n) aliavaruuden, jonka dimensio on n rank G = n k. Olkoon H matriisi, jonka vaakariveinä ovat tämän aliavaruuden kantavektorit vaakavektoreina. Tällöin g i H T = 0 kaikilla i = 1,..., k eli xh T = 0 kaikilla x C, ja C {x F n xh T = 0}. Erityisesti rank H = n k. Toisaalta, jos xh T = 0, niin Hx T = 0 T. Ratkaisut x T muodostavat vektoriavaruuden, jonka dimensio on n rank H = n (n k) = k. Matriisin G lineaarisesti vapaita vaakarivejä vastaavat pystyvektorit muodostavat tämän avaruuden kannan, joten x C. Siten H on koodin C tarkistusmatriisi. Tarkistusmatriisi ei ole yksikäsitteinen. Yllä olevan nojalla jokainen matriisi H, jolle rank H = n k ja GH T = 0, kelpaa tarkistusmatriisiksi. Lause Olkoon C [n, k]-koodi ja olkoon sen generoijamatriisi systemaattisessa muodossa G = [ I k P ]. Silloin matriisi H = [ P T I n k ] on koodin C tarkistusmatriisi. Todistus. Annetun matriisin H aste on n k ja GH T = [ I k P ] [ ] P = P + P = 0. I n k Huomautuksen mukaan H on koodin C tarkistusmatriisi. Huomautus Lauseesta seuraa, että rank H = n k. Edelleen Lauseesta seuraa, että jos H = [ ] A I n k on koodin C tarkistusmatriisi, niin G = [ I k A T] on koodin C yksi generoijamatriisi, vieläpä systemaattisessa muodossa. Edelleen binääritapauksessa P T = P T. 17
21 Avaruuden F n sisätulo määritellään kuten euklidinen sisätulo: Jos a = a 1 a 2... a n F n ja b = b 1 b 2... b n F n, niin a b = a 1 b 1 + a 2 b a n b n. Määritelmä [n, k]-koodin C duaalikoodiksi C sanotaan koodia C = {y F n x y = 0 kaikilla x C}. Lause [n, k]-koodin C duaalikoodi C on [n, n k]-koodi. Todistus. Jos y 1, y 2 C ja λ 1, λ 2 F, niin kaikilla x C pätee (λ 1 y 1 + λ 2 y 2 ) x = λ 1 y 1 x + λ 2 y 2 x = 0. Tästä johtuen C on avaruuden F n aliavaruus ja siis lineaarinen koodi. Olkoon G koodin C generoijamatriisi. Silloin y C, jos ja vain jos Gy T = 0. Tämän homogeenisen yhtälöryhmän kerroinmatriisin G aste on k, joten ratkaisuavaruuden C dimensio on n k ja C on [n, n k]-koodi. Lause Koodin C tarkistusmatriisi on duaalikoodin C generoijamatriisi ja päinvastoin. Seuraava tarkistusmatriisia koskeva tulos osoittautuu hyödylliseksi. Lause Jos C on [n, k]-koodi ja H sen tarkistusmatriisi, niin d min C = d täsmälleen silloin, kun jokainen matriisin H (d 1):n sarakkeen joukko on lineaarisesti vapaa ja löytyy sellainen matriisin H d:n sarakkeen joukko, joka on lineaarisesti sidottu. Todistus. Olkoon c = (c 1,..., c n ) C koodisana, jonka paino on e. Olkoot sanan c nollasta eroavat koordinaatit c i1,..., c ie ja olkoot h 1,..., h n matriisin H sarakkeet. Tällöin h T 1 ch T = 0 c. h T n = c i1 h T i c ie h T i e = 0 matriisin H e saraketta h i1,..., h ie ovat lineaarisesti sidottuja. Nyt d min C d, jos ja vain jos koodissa C ei ole nollasta eroavaa sanaa, jonka paino olisi korkeintaan d 1. Ekvivalenssien (1) nojalla tämä on yhtäpitävää sen kanssa, että matriisin H mitkä tahansa d 1 saraketta ovat lineaarisesti vapaita. Lisäksi d min C d, jos ja vain jos koodissa C on nollasta eroava sana, jonka paino on korkeintaan d. Ekvivalenssien (1) nojalla tämä on yhtäpitävää sen kanssa, että matriisissa H on d:n lineaarisesti sidotun sarakkeen joukko. Väite seuraa näistä kahdesta tuloksesta. 18 (1)
22 Tästä saadaan välittömästi seuraava yläraja lineaarisen koodin minimietäisyydelle. Seuraus Lineaarisen [n, k]-koodin minimietäisyys on korkeintaan n k + 1. Todistus. Tarkistusmatriisissa on n k riviä, joten Lauseen mukaan d 1 n k eli d n k + 1. Määritelmä Lineaarista [n, k]-koodia, jonka minimietäisyys on n k + 1, sanotaan maksimietäisyyskoodiksi eli MDS-koodiksi. 3.3 Lineaarisen koodin dekoodaus 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ä Vektorin x F n syndromiksi sanotaan vektoria s(x) = xh T. 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 Vektorit x ja y ovat samassa koodin C sivuluokassa täsmälleen silloin, kun niillä on sama syndromi. Todistus. Vektorit x ja y ovat samassa sivuluokassa jos ja vain jos x = y + c jollakin c C eli x y = c C. Tämä on yhtäpitävää sen kanssa, että (x y)h T = 0 eli xh T = yh T. Esimerkki Olkoon C kunnan F 2 suhteen oleva koodi, jonka generoijamatriisi ja tarkistusmatriisi ovat G = ja H = Koodin C sanat ovat tällöin c 1 = c 2 = c 3 = c 4 = c 5 = c 6 = c 7 = c 8 = Binäärisille koodeille pätee 19
23 Lause Binäärisen koodin tapauksessa, jos virhevektorissa e on ykkönen kohdissa i 1,..., i w, niin vektorin r = c + e syndromi on matriisin H sarakkeiden i 1,..., i w summa transponoituna. 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 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; 3. 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 Olkoon C [4, 2]-koodi kunnan F 3 = {0, 1, 2} suhteen ja olkoon sen generoijamatriisi [ ] G = Tarkistusmatriisiksi tulee H = [ ] Lauseen avulla nähdään, että koodin C minimietäisyys on 3. Koodille C saadaan seuraava standardikaavio: c 1 c 2 c 3 c 4 c 5 c 6 c 7 c 8 e 9 e e e e e e e e e
24 Yllä oleva täydellinen kaavio vaatii yleensä liikaa tilaa. Koska jokaisella rivillä on sama syndromi, riittää tallentaa sivuluokkien johtajat ja niiden syndromit. Näin saadun syndromiluettelon avulla voidaan toimia seuraavasti: Jos saadaan sana r, niin 1. lasketaan syndromi rh T ; 2. etsitään syndromiluettelon avulla vastaava sivuluokan johtaja e i ; 3. lasketaan r e i = c. Esimerkki Esimerkin 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 3 : s(2000) = 11 e 6 : s(0010) = 10 e 9 : s(0002) = Hammingin koodit Hammingin koodit keksi Richard W. Hamming 1940-luvun lopulla. Ne ovat täydellisiä yhden virheen korjaavia koodeja. Olkoon H binäärisen lineaarisen koodin tarkistusmatriisi. Jos c on lähetetty ja r = c + e saatu sana, niin Lauseen mukaan s(r) = eh T on matriisin H niiden sarakkeiden summan transpoosi, joita vastaavissa kohdissa on syntynyt virhe. Sen vuoksi matriisissa H mahdollisesti olevaa saraketta 0 T vastaavassa kohdassa oleva virhe ei vaikuta syndromiin ja jää näin havaitsematta. Jos taas matriisissa H on kaksi samanlaista saraketta, niin näitä vastaavissa kohdissa syntynyt virhepari ei vaikuta syndromiin ja jää sekin havaitsematta. Jos toisaalta matriisin H kaikki sarakkeet ovat nollasta eroavia ja erisuuria sekä wt(e) = 1, missä 1 on kooordinaatissa i, niin eh T on matriisin H sarake i transponoituna. Täten yhden bitin virhe voidaan paikallistaa ja korjata. Lause Lineaarinen binäärinen koodi on (vähintään) yhden virheen korjaava, jos ja vain jos sen tarkistusmatriisin sarakkeet ovat nollasta eroavia ja erisuuria. Jos H on r-rivinen eli n k = r, niin selvästi matriisissa H voi olla enintään 2 r 1 nollasta eroavaa erisuurta saraketta. 21
25 Määritelmä Binääristä lineaarista koodia, jonka tarkistusmatriisin H sarakkeet ovat lukujen 1, 2, 3,..., 2 r 1 binääriesitykset, sanotaan (binääriseksi) Hammingin [2 r 1, 2 r r 1]-koodiksi. Edellä todettiin, että Hammingin koodin minimietäisyys on vähintään 3 eli että koodisanakeskiset 1-säteiset pallot ovat erilliset. Osoitetaan lisäksi, että nämä pallot B(c, 1) täyttävät koko avaruuden F n ja koodi on siis täydellinen. Lause Binäärinen Hammingin koodi on täydellinen. Todistus. Edellisen mukaan koodisanakeskiset 1-säteiset pallot ovat erilliset. Kussakin tällaisessa pallossa on n+1 = (2 r 1)+1 = 2 r alkiota. Koodisanoja on 2 k = 2 n r = 2 2r 1 r kappaletta. Yhteensä palloissa on siis 2 r 2 2r 1 r = 2 2r 1 = 2 n = F n 2 alkiota. Huomautus Koska Hammingin koodi on täydellinen, se dekoodaa väärin kaikki vähintään 2-painoisesti virheelliset sanat. Hammingin koodi voidaan määritellä myös silloin, kun q 2. Kunnassa F q valitaan Hammingin koodin tarkistusmatriisi H niin, että sen sarakkeina ovat kaikki avaruuden F r q pareittain lineaarisesti vapaat vektorit transponoituina. Näiden lukumäärä on q r 1 q 1. Näin saadaan yhden virheen korjaava Hammingin [ qr 1 q 1, qr 1 q 1 r]-koodi H r(q). Esimerkki Kun valitaan q = 3, r = 3, qr 1 q 1 = 13, niin saadaan ternäärinen [13, 10]-koodi. Tämä koodi antaa ratkaisun seuraavalle vakioveikkausongelmalle: Kuinka monta saraketta tarvitaan, että vähintään 12 oikein on varma? Koska edellä mainittu Hammingin [13, 10]-koodi on täydellinen, niin avaruuden F3 13 jokaisen alkion 1-säteisessä ympäristössä on jokin koodisana. Täten 3 10 = saraketta riittää. 3.5 Reedin Mullerin koodit Reedin Mullerin koodit löysi vuonna 1954 D. E. Muller ja ovat siten eräitä vanhimmista koodityypeistä. Samana vuonna Irving S. Reed kehitti niille enemmistöpäätökseen perustuvan dekoodausalgoritmin. Olkoon tässä kappaleessa F = F 2 ja n = 2 m. Määritellään avaruuteen F n kertolasku koordinaateittain: ab = (a 0 b 0, a 1 b 1,..., a n 1 b n 1 ), kun a = (a 0, a 1,..., a n 1 ) ja b = (b 0,..., b n 1 ). Tällöin avaruuden F n alkiot ovat idempotentteja: a 2 = a. 22
26 Tarkastellaan m n-matriisia, jonka sarakkeina ovat lukujen 0, 1,..., 2 m 1 binääriesitykset. Olkoot v m, v m 1,..., v 1 tämän matriisin rivit. Olkoon edelleen m j = ξ ij 2 i 1, ξ ij {0, 1}, i=1 luvun j {0, 1,..., 2 m 1} binääriesitys ja A i avaruuden F m niiden alkioiden joukko, joilla on 1 kohdassa i, toisin sanoen A i = {x j F m ξ ij = 1}. Vektori v i voidaan tulkita joukon A i karakteristiseksi funktioksi (vektorin v i koordinaatti on 1 täsmälleen niille j, joille x j A i ). Jos luvut i 1, i 2,..., i k ovat erisuuria, niin vastaavasti v i1 v i2 v ik on joukon A i1 A i2 A ik karakteristinen funktio. Tämä joukko muodostuu avaruuden F m niistä alkioista, joissa on 1 kohdissa i 1, i 2,..., i k. Siten A i1 A i2 A ik = 2 m k ja on todistettu seuraava tulos. Lause Jos luvut i 1, i 2,..., i k ovat erisuuria, niin wt(v i1 v i2 v ik ) = 2 m k. Osoitetaan nyt, että nämä vektorit ja v 0 = (1, 1,..., 1) ovat lineaarisesti vapaita. Lause Joukko muodostaa avaruuden F n kannan. {v 0 } {v i1 v ik k = 1,..., m} Todistus. Väitteen vektorien lukumäärä on korkeintaan ( ) ( ) ( ) ( ) m m m m = (1 + 1) m = 2 m = n m Riittää siis osoittaa, että jokainen luonnollisen kannan vektori E j on esitettävissä annettujen vektorien lineaariyhdisteenä. Huomaa aluksi, että v 2 i = v i kaikilla i. Lisäksi vektoreiden v i muodostaman matriisin sarakkeet ovat erisuuria, joten seuraavassa tulossa komponenttia j lukuunottamatta komponenteissa esiintyy tekijänä 0. Siten ( )( E j = v i ξ ij =1 ξ ij =0 ) (v i + v 0 ) = m (v i + (1 + ξ ij )v 0 ). i=1 23
27 Määritelmä Kun 1 r m, niin 2 m -pituiseksi r:nnen kertaluvun Reedin Mullerin koodiksi eli RM-koodiksi sanotaan sitä avaruuden F 2m aliavaruutta, jonka kantavektoreina ovat v 0 ja kaikki vektorien v 1, v 2,..., v m tulot v i1 v i2 v ik, missä k r. Tälle koodille käytetään merkintää R(r, m). Nollannen kertaluvun Reedin Mullerin koodiksi R(0, m) sanotaan vektorin v 0 generoimaa toistokoodia. Lause m -pituisen r:nnen kertaluvun RM-koodin duaalikoodi on 2 m - pituinen (m r 1):nnen kertaluvun RM-koodi: R(r, m) = R(m r 1, m). Todistus. Olkoon a = v i1 v i2 v ik jokin koodin R(r, m) kantavektori, jolloin k r. Olkoon vastaavasti b = v j1 v j2 v jl jokin koodin R(m r 1, m) kantavektori, jolloin l m r 1. Nyt ab = v t1 v t2 v ts, missä s k + l m 1. Lauseen nojalla wt(ab) = 2 m s, joka on parillinen, koska s < m. Siten a b = 0 ja R(m r 1, m) R(r, m). Lisäksi dim R(m r 1, m) = i=0 m r 1 i=0 ( ) m i ( ( ) ( ) ) m m m = m r 1 ( ) ( ) ( ) m m m m = = m m 1 r + 1 i=r+1 m ( ) m r ( ) m r ( ) m = = 2 m i i i i=0 i=0 = n dim R(r, m) = dim R(r, m), joten R(m r 1, m) = R(r, m). Lause Koodin R(r, m) minimietäisyys on 2 m r. ( ) m i Todistus. Lauseen nojalla d min R(r, m) 2 m r. Osoitetaan induktiolla, että d min R(r, m) 2 m r. Kun m = 1, niin R(0, 1) = {00, 11}, joten d min R(0, 1) = 2 = Lisäksi R(1, 1) = {00, 10, 01, 11}, joten d min R(1, 1) = 1 = ja väite pätee, kun m = 1. Oletetaan sitten, että d min R(r, m) 2 m r kaikilla r = 0, 1,... m ja osoitetaan, että myös d min R(r, m+1) 2 m+1 r kaikilla r = 0, 1,... m+1. Koodi 24
28 R(0, m+1) on 2 m+1 -pituinen toistokoodi, jonka minietäisyys on 2 m+1 0. Kun r 0, niin harjoitustehtävän 24 mukaan R(r + 1, m + 1) = {(u, u + v) u R(r + 1, m), v R(r.m)}. Edelleen tehtävän 23 ja induktio-oletuksen mukaan d min R(r + 1, m + 1) min{2d min R(r + 1, m), d min R(r, m)} min{2 2 m (r+1), 2 m r } = 2 m r = 2 m+1 (r+1). Näin ollen d min R(r, m + 1) 2 m+1 r ja saadaan väite. Koodi R(r, m) on siis 2 m r 1 1 virhettä korjaava koodi. Tutkitaan nyt RM-koodien koodausta ja dekoodausta. Tarkastellaan koodia R(r, m). Jos ( ) ( ) m m M = , 1 r niin vektori a = (a 0, a 1,..., a M 1 ) on luonnollista (mutta ei systemaattista) koodata vektoriksi c = a 0 v 0 + a 1 v a M 1 v m r 1 v m. (2) Olkoon k {0, 1,..., m} ja olkoon C(i 1,..., i k ) sellaisten lukujen j = m ξ ij 2 i 1 i=1 joukko, että ξ ij = 0 kaikilla i / {i 1,..., i k }. Tällöin Lauseen todistuksen nojalla m E j = (v i + (1 + ξ ij )v 0 ), joten v i1... v ik i=1 on vektorin E j kehitelmässä täsmälleen silloin, kun m i=1 i/ {i 1,...,i k } (1 + ξ ij )v 0 = v 0, toisin sanoen täsmälleen silloin, kun ξ ij = 0 kaikilla i / {i 1,..., i k } eli j C(i 1,..., i k ). Näin ollen E j = m k=0 (i 1,...,i k ) j C(i 1,...,i k ) v i1 v i2 v ik. 25
29 Kun f = (f 0,..., f n 1 ) F n, niin n 1 f = f j E j = j=0 m ( f j )v i1 v i2 v ik. (3) k=0 (i 1,...,i k ) j C(i 1,...,i k ) Olkoon nyt f = c koodisana. Jos a s on termin v i1 v ir kerroin yhtälössä (2), niin yhtälön (3) nojalla a s = f j. (4) Jos t / {i 1,..., i r }, niin yhtälössä (3) j C(i 1,...,i r) j C(i 1,...,i r,t) f j = 0, (5) sillä kun f = c, tulossa v i1 v i2 v ik voi olla korkeintaan r tekijää. Koska C(i 1,..., i r, t) voidaan kirjoittaa pistevieraiden joukkojen C(i 1,..., i r ) ja C(i 1,..., i r ) + 2 t 1 unionina, niin yhtälöiden (4) ja (5) nojalla a s = f j, j C(i 1,...,i r)+2 t 1 kun t / {i 1,..., i r }. Tämä ylestyy induktiolla seuraavaan muotoon. Lause Jos a s on yhtälössä (2) r:n vektorin v i tulon kerroin, niin on olemassa sellainen joukon {0,..., n 1} jako 2 r alkion osajoukoiksi C 1,..., C 2 m r, että jokaisella v {1,..., 2 m r } pätee a s = j C v f j. Olkoon saatu sana x = (x 0,..., x n 1 ). Jos vektorissa x on vähemmän kuin 2 m r 1 virhettä, niin suurin osa Lauseen yhtälöistä a s = j C v x j, v = 1,..., 2 m r, on voimassa ja siten a s saadaan enemmistöratkaisulla oikein määrätyksi. Kun kaikki r:n vektorin v i tuloa vastaavat kertoimet a s on löydetty, päästään nämä termit vähentämällä R(r 1, m)-koodiin, johon voidaan toistaa sama menettely. Jatkamalla menettelyä saadaan kaikki enintään (2 m r 1 1)- painoiset virheet korjatuiksi dekoodauksessa. Hyvän virheenkorjauskykynsä johdosta R(1, m) on sopiva käytettäväksi poikkeuksellisen häiriöisissä kanavissa. Niinpä muun muassa avaruusaluksen Mariner 9 lähettäessä kuvia Marsista käytettiin tällaista 32-pituista R(1, 5)- koodia, jolloin kuvan jokaisen pisteen tummuus ilmoitettiin 64-jakoisella asteikolla (64 = 2 6, 2 6 = 1 + ( 5 1) = dim R(1, 5)). 26
30 3.6 Uusien lineaaristen koodien muodostaminen tunnetuista Määritelmä Olkoon C koodi kunnan F q suhteen. Laajennetuksi koodiksi kutsutaan koodia C = {( n ) c 1,..., c n, c k (c1,..., c n ) C }. k=1 Binääritapauksessa laajentaminen tarkoittaa pariteetintarkistusbitin lisäämistä. Tällöin myös d min C = d min C + 1, jos d min C on pariton, ja d min C = d min C muulloin. Lause Jos C on (n, M, d)-koodi kunnan F q suhteen, niin C on (n + 1, M, d 0 )-koodi, missä d d 0 d + 1. Jos C on lineaarinen, niin myös C on lineaarinen. Tällöin edelleen 0 H = H on koodin C tarkistusmatriisi, jos H on koodin C tarkistusmatriisi. Määritelmä Kunnan F q suhteen olevien [n i, k i, d i ]-koodien C i, i = 1, 2, suoraksi summaksi sanotaan koodia C 1 C 2 = {(c 1, c 2 ) c 1 C 1, c 2 C 2 }. Lause Määritelmän merkinnöin koodi C 1 C 2 on [n 1 + n 2, k 1 + k 2, min{d 1, d 2 }]-koodi. Jos G i on koodin C i generoijamatriisi, niin [ G 1 ] 0 0 G 2 on koodin C 1 C 2 generoijamatriisi lohkomuodossa. Todistus. Pituus, lineaarisuus, minimietäisyys ja generoijamatriisi ovat selviä. Dimensiota varten huomataan, että C 1 C 2 = q k 1 q k 2 = q k 1+k 2, joten koodin C 1 C 2 dimensio on log q C 1 C 2 = k 1 + k 2. Määritelmä Kunnan F q suhteen olevien [n, k i, d i ]-koodien C i, i = 1, 2, (u, u + v)-konstruktioksi kutsutaan koodia C = {(u, u + v) u C 1, v C 2 }. Lause Yllä määritelty C on [2n, k 1 + k 2, min{2d 1, d 2 }]-koodi. Jos G i on koodin C i generoijamatriisi, niin [ G 1 G 1 ] 0 G 2 on koodin C generoijamatriisi lohkomuodossa. 27
31 Todistus. Generoijamatriisia koskeva väite on selvä ja muut kohdat ovat harjoitustehtävänä 23. Seuraus Jos A on binäärinen [n, k, d]-koodi, niin C = {(c, c) c A} {(c, 1 + c) c A} on binäärinen [2n, k + 1, min{2d 1, n}]-koodi. Todistus. Valitaan Lauseessa C 1 = A ja C 2 = {0, 1}. Lause Reedin Mullerin koodi R(m 2, m) on ekvivalenttinen laajennetun Hammingin [2 m, 2 m m 1]-koodin kanssa. Todistus. Lauseen mukaan R(m 2, m) = R(1, m). Koodin R(1, m) kantavektorit ovat v 0, v 1,..., v m, ja generoijamatriisi on v m v m G =. = = 0. H v , v missä H on Hammingin koodin tarkistusmatriisi. Tästä saadaan laajennetun Hammingin koodin tarkistusmatriisi siirtämällä ensimmäinen sarake viimeiseksi. Muita tapoja muodostaa uusia koodeja annetusta [n, k]-koodista C: 1. Koordinaatin poistaminen (punkteeraus) muuttaa koodin C [n 1, k]- koodiksi, jonka minimietäisyys on tavallisesti yhtä pienempi kuin alkuperäisen koodin. 2. Paritonpainoisten sanojen poistaminen binäärisestä koodista C muuttaa sen tavallisesti [n, k 1]-koodiksi, jonka minimietäisyys voi kasvaa. 3. Vektorin 1 = lisääminen, kun 1 / C: Binäärisen koodin C ja koodin 1+C unioni on [n, k+1]-koodi, jonka minimietäisyys on min{d, n d }, missä d on pienin ja d suurin koodin C nollasta eroavien koodisanojen painoista. 4. Binäärisen koodin pidentäminen lisäämällä vektori 1 ja laajentamalla. 5. Koodin lyhentäminen: Olkoon i {1,..., n} ja α F. Otetaan vain ne koodisanat c, joissa c i = α, ja poistetaan sitten i:s koordinaatti. 28
32 4 Sykliset koodit Sykliset koodit muodostavat lineaaristen koodien alalajin, joka keksittiin noin vuonna Sen jälkeen ne ovat olleet koodausteoriassa varsin keskeisessä asemassa, koska ne ovat matemaattisesti ja teknisesti melko selkeitä, ovat helposti koodattavia ja sisältävät koodiluokkia, joille saadaan kohtuullisia dekoodausalgoritmeja. 4.1 Algebrallisia apuneuvoja Jäännösluokkarengas R n Olkoon F = F q, q = p l. Syklisten koodien yhteydessä käytetään jäännösluokkarengasta R n = F[x]/ x n 1, jonka alkiot ovat jäännösluokkia f = {f(x) + h(x)(x n 1) h(x) F[x]}. Koska deg(x n 1) = n, kappaleen 2.2 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öluokka. 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 g(x) = b 0 + b 1 x + + b n 1 x n 1 R n, niin ja f(x) + g(x) = (a 0 + b 0 ) + (a 1 + b 1 )x + + (a n 1 + b n 1 )x n 1 R n f(x)g(x) = r(x) R n, missä f(x)g(x) = h(x)(x n 1) + r(x) ja deg r n 1. Jakojäännös r(x) saadaan tulosta f(x)g(x) nopeasti huomaamalla, että renkaassa R n pätee x n = 1, x n+1 = x,... 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. 29
33 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 R n a(x) = a F n, R n b(x) = b F n, R n a(x)b(x) = 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 a n 2 x n 1 + a n 1 = (a n 1, a 0, a 1,..., a n 2 ). Määritelmä Renkaan R osajoukkoa I sanotaan ideaaliksi, jos a) a b I kaikilla a, b I b) ra I kaikilla a I ja kaikilla r R. Ideaalia a := {ra r R} sanotaan alkion a generoimaksi pääideaaliksi (principal ideal). Rengasta, jonka jokainen ideaali on pääideaali, sanotaan pääideaalirenkaaksi. Tunnetusti F[x] on pääideaalirengas eli jos I on renkaan F[x] ideaali, niin on olemassa sellainen g F[x], että I = g(x) = {f(x)g(x) f F[x]}. Määritelmä Polynomia, jonka korkeimman potenssin kerroin on 1, sanotaan ykköspolynomiksi (pääpolynomi, monic polynomial). Lause Rengas R n on pääideaalirengas. Todistus. Olkoon I 0 jäännösluokkarenkaan R n ideaali ja g(x) mahdollisimman alhaista astetta oleva ideaalin I ykköspolynomi. Jos c(x) I, niin jakoyhtälön mukaan renkaassa F[x] missä deg r < deg g. Nyt c(x) = h(x)g(x) + r(x), r(x) = c(x) h(x)g(x) I, joten r(x) = 0, sillä muutoin päädytään ristiriitaan polynomin g valinnan kanssa (kertomalla r sopivalla vakiolla saataisiin ykköspolynomi). Siis c(x) = h(x)g(x) g(x), ja I = g(x). 30
34 Huomautus Koska deg c < n, niin Lauseen todistuksesta käy ilmi, että jokainen ideaalin I alkio on muotoa h(x)g(x), missä deg h < n k, jos deg g = k. Edelleen todistuksen mukainen g on yksikäsitteinen ja sitä sanotaan ideaalin I generoijapolynomiksi Minimipolynomi 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 ykköspolynomin nollakohta. Määritelmä Alkion α F q r minimipolynomiksi kunnan F q suhteen, merkitään m α (x), sanotaan sitä mahdollisimman alhaista astetta olevaa renkaan F q [x] ykköspolynomia, jonka nollakohtana α on, ts. jolle m α (α) = 0. Huomautus Minimipolynomi m α on yksikäsitteinen. Jos α F q, niin m α (x) = x α. Lause Olkoon α F q r. a) m α on jaoton renkaassa F q [x] ja deg m α r. b) Jos f F q [x] toteuttaa ehdon f(α) = 0, niin m α f; erityisesti m α (x qr 1 1), kun α 0. c) m α (x) = (x α)(x α q ) (x α qu 1 ), missä u on pienin ehdon α qu = α toteuttava positiivinen kokonaisluku (selvästi u r). Jos α on kunnan F q r primitiivialkio, niin u = r. Todistus. a) Jos m α ei ole jaoton, niin m α (x) = f(x)g(x) joillakin f, g F q [x] ja deg f, deg g < deg m α. Koska 0 = m α (α) = f(α)g(α), niin f(α) = 0 tai g(α) = 0. Tämä on ristiriidassa minimipolynomin määritelmän kanssa, joten m α on jaoton. Koska m α on jaoton, niin F q [x]/ m α (x) on kunta, jossa on q t, t = deg m α, alkiota eli F q t. Koska α F q r ja kunnan F q t alkiot ovat alkion α polynomeja, niin F q t F q r. Lisäksi F q t on ryhmä kertolaskun suhteen ja siinä on q t 1 alkiota. Siten F q t on ryhmän F q r aliryhmä ja (qt 1) (q r 1). Sijoittamalla harjoitustehtävässä 28 x = q nähdään, että t r. b) Olkoon f(x) F q [x] ja f(α) = 0. Jakoyhtälön mukaan renkaassa F q [x] saadaan f(x) = g(x)m α (x) + r(x), missä deg r < deg m α. Tällöin 0 = f(α) = g(α)m α (α) + r(α) = r(α) 31
35 ja edellä olevaan tapaan saadaan ristiriita, jos r(x) 0. Jokainen α F q r toteuttaa yhtälön αqr 1 1 = 0, joten m α (x qr 1 1). c) Olkoon m α (x) = a 0 + a 1 x + + a t 1 x t 1 + x t F q [x]. Seurauksen nojalla m α (α q ) = m α (α) q = 0, joten α q on polynomin m α juuri. Vastaavasti α q2, α q3,... ovat nollakohtia. Jos α qi = α qj joillakin 0 i < j u 1, niin α qj i = α. Tämä on ristiriita luvun u valinnan kanssa, sillä tässä 0 < j i < u. Näin ollen t u. Tarkastellaan polynomia g(x) = (x α)(x α q ) (x α qu 1 ). Osoitetaan, että g F q [x], jolloin b-kohdan nojalla m α g ja t u. Tällöin t = u ja m α ja g ovat samaa astetta olevia ykköspolynomeja, joilla on täsmälleen samat nollakohdat, joten m α = g. Riittää siis osoittaa, että g F q [x]. Nyt g(x) = g 0 + g 1 x + + g u 1 x u 1 + x u, g j F q r. Olkoon ĝ(x) = g q 0 + g q 1x + + g q u 1x u 1 + x u, jolloin ĝ(α qk ) = ( g(α qk 1 ) ) q kaikilla k = 1,..., u. Täten g ja ĝ ovat samaa astetta olevat ykköspolynomit, joilla on täsmälleen samat nollakohdat, joten ne ovat sama polynomi. Siten g q j = g j kaikilla j = 0, 1,..., u 1, ja g j F q Ykkösen juurista Oletetaan tässä kappaleessa, että n Z + toteuttaa ehdon syt(n, q) = 1. Tällöin on olemassa sellainen m Z +, että n (q m 1). Tästä johtuen jossakin kunnan F q laajennuksessa F q m on olemassa (ks. harjoitustehtävä 29) primitiivinen n:s ykkösen juuri α, jolle α n = 1, α i α j kaikilla 0 i < j n 1. Syklisiä koodeja tarkasteltaessa tarvitaan polynomin x n 1 tekijöihinjako renkaassa F[x], ts. on kyettävä määräämään sellaiset jaottomat polynomit f i F[x], että x n 1 = f 1 (x)f 2 (x) f t (x), 32
36 missä ehdon syt(n, q) = 1 nojalla f i (x) f j (x) kaikilla i j. Lauseen nojalla polynomit f i ovat alkion α potenssien α s minimipolynomeja. Edelleen Lauseen c-kohdan nojalla alkion α s minimipolynomi on m α s = (x α s )(x α sq ) (x α squs 1 ), missä u s on pienin sellainen positiivinen kokonaisluku, että α squs α on primitiivinen n:s ykkösen juuri, niin = α s. Koska α squs = α s jos ja vain jos sq us s (mod n). Edellä olevan perusteella polynomin x n 1 jaottomien tekijöiden löytämiseksi on tarkoituksenmukaista jakaa Z n syklotomisiin sivuluokkiin luvun q suhteen niin, että alkion s sisältävä sivuluokka on C s = {s, sq, sq 2,..., sq us 1 }, missä u s on pienin sellainen positiivinen kokonaisluku, että sq us s (mod n). Erityisesti C 0 = {0}, joka vastaa polynomin x n 1 tekijää x 1. Vastaavasti muitakin syklotomisia sivuluokkia C s vastaa polynomin x n 1 jaoton tekijä m α s(x) = i C s (x α i ), joka on alkioiden α i, i C s, minimipolynomi. Koska sivuluokat ovat erilliset, niin x n 1 = m α s(x), s missä s käy läpi sivuluokkien edustajat (yksi s kustakin sivuluokasta). Huomaa, että täten myös x n 1 = n 1 i=0 (x αi ). 4.2 Syklisen koodin määritelmä ja perusominaisuuksia Seuraavassa F = F q, n Z +, syt(n, q) = 1 ja R n = F[x]/ x n 1. Määritelmä 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, eli jokaisen koodisanan syklinen siirto on koodisana. Lause Jäännösluokkarenkaan R n osajoukko C on syklinen koodi täsmälleen silloin, kun se on renkaan R n ideaali. 33
37 Todistus. Olkoon ensin C renkaan R n ideaali. Tällöin C on avaruuden F n aliavaruus, sillä ideaalin määritelmän nojalla C, x y C ja ax C aina, kun x, y C ja a F. Siten C on lineaarinen koodi. Jos lisäksi c = c(x) = c 0 + c 1 x + + c n 1 x n 1 C, niin xc(x) C. Koska x n = 1 renkaassa R n, niin xc(x) = c 0 x + c 1 x c n 2 x n 1 + c n 1 x n = (c n 1, c 0, c 1,..., c n 2 ). Siten (c n 1, c 0, c 1,..., c n 2 ) C, ja C on syklinen. Olkoon sitten C syklinen (n-pituinen) koodi kunnan F suhteen, jolloin C. Koska syklinen koodi on lineaarinen, niin x y C aina, kun x, y C. Jos c(x) = c 0 + c 1 x + + c n 1 x n 1 = (c 0, c 1,..., c n 1 ) C, niin syklisyyden nojalla myös (c n 1, c 0, c 1,..., c n 2 ) C eli xc(x) C. Edelleen x 2 c(x) C,..., x n 1 c(x) C. Lineaarisena avaruutena C sisältää täten myös alkiot (a 0 + a 1 x + + a n 1 x n 1 )c(x) kaikilla a i F. Näin ollen f(x)c(x) C aina, kun f(x) R n, ja C on renkaan R n ideaali. Lause Jos g(x) (x n 1) renkaassa F[x] ja deg g(x) = n k, niin polynomin g generoima jäännösluokkarenkaan R n ideaali g(x) on syklinen [n, k]-koodi. Jos C on syklinen [n, k]-koodi, niin on olemassa sellainen astetta n k oleva ykköspolynomi g(x), että g(x) (x n 1) renkaassa F[x] ja C on polynomin g(x) generoima renkaan R n ideaali. Todistus. Olkoon ensin g(x) (x n 1) ja deg g(x) = n k. Lauseen nojalla ideaali g(x) = {f(x)g(x) f(x) R n } on n-pituinen syklinen koodi. Osoitetaan vielä, että koodin C dimensio on k. Nyt on olemassa sellainen h(x) F[x], että deg h = k ja x n 1 = g(x)h(x). Täten polynomin g(x) generoima jäännösluokkarenkaan R n ideaali on {m(x)g(x) m(x) F[x]/ h(x) }, jossa on q deg h = q k alkiota. Siis dim C = k. Olkoon sitten C syklinen [n, k]-koodi. Lauseen nojalla C on renkaan R n ideaali. Lauseen todistuksen mukaan C = g(x), missä g(x) on koodin C mahdollisimman alhaista astetta oleva ykköspolynomi. Olkoon renkaassa F[x] x n 1 = h(x)g(x) + r(x), missä deg r < deg g. Tällöin renkaassa R n pätee r(x) = x n 1 h(x)g(x) = h(x)g(x) g(x). Jos r(x) 0, saadaan ristiriita polynomin g valinnan kanssa. Täten r(x) = 0 ja g(x) (x n 1). Koska dim C = k, niin todistuksen alkuosan nojalla deg g = n dim C = n k. 34
38 Määritelmä Lauseessa esiintyvää koodin C mahdollisimman alhaista astetta oleva ykköspolynomia g(x) sanotaan koodin C generoijapolynomiksi ja polynomia h(x) = (x n 1)/g(x) koodin C tarkistuspolynomiksi. Seuraavaa lausetta voi käyttää generoijapolynomin selvittämiseen. Lause Syklisen koodin C = f(x) generoijapolynomi on g(x) = syt(f(x), x n 1). Todistus. Koska g f, niin f(x) g(x). Toisaalta Eukleideen algoritmin mukaan on olemassa sellaiset a, b F[x], että renkaassa F[x] g(x) = a(x)f(x) + b(x)(x n 1). Renkaassa R n pätee tällöin g(x) = a(x)f(x) C. Siten g(x) f(x) ja g(x) = f(x) = C. Olkoon c(x) C, c(x) 0, jolloin c(x) = a(x)f(x) jollakin a(x) R n. Siten renkaassa F[x] c(x) = a(x)f(x) + b(x)(x n 1) jollakin b F[x]. Koska g(x) = syt(f(x), x n 1), niin g c renkaassa F[x] ja deg g deg c. Näin ollen g on koodin C alhaisinta astetta oleva ykköspolynomi ja siis generoijapolynomi. Olkoon x n 1 = f 1 (x)f 2 (x) f t (x) polynomin x n 1 alkutekijöihin jako renkaassa F[x]. Koska syt(n, q) = 1, kukin f i (x) esiintyy vain kerran. Kaikki n-pituiset sykliset koodit kunnan F yli saadaan ottamalla generoijaksi kukin polynomin x n 1 tekijä, joita on t j=0 ( ) t = 2 t j kappaletta. Erityisesti jaottoman tekijän f i (x) generoimaa koodia sanotaan maksimaaliseksi sykliseksi koodiksi ja polynomin xn 1 f i generoimaa koodia minimaaliseksi eli jaottomaksi sykliseksi (x) koodiksi. 4.3 Generoija- ja tarkistusmatriisi Olkoon g(x) = g 0 +g 1 x+ +g n k x n k koodin C generoijapolynomi. Tällöin joukko {g(x), xg(x),..., x k 1 g(x)} on koodin C kanta, ja generoijamatriisiksi 35
39 voidaan ottaa matriisi g 0 g g n k g 1 0 g 0 g g n k... 0 G = =: g g 0 g g n k Koodauskuvaukseksi voidaan valita generoijapolynomilla g(x) kertominen: m(x)g(x) = (m 0 g 0, m 0 g 1 + m 1 g 0, m 0 g 2 + m 1 g 1 + m 2 g 0,..., m k 1 g n k ) = mg. Generoijamatriisia ei siis välttämättä tarvita koodauksessa. Merkitään h(x) = h 0 + h 1 x + + h k x k sekä g i = 0 kaikilla i / [0, n k] ja h j = 0 kaikilla j / [0, k]. Koska g(x)h(x) = x n 1, niin g k g(x)h(x) = n s l x l, l=0 missä s 0 = 1, s n = 1, s l = l i=0 g ih l i = 0, kun l = 1, 2,..., n 1. Jos valitaan h k h k h h k h k h H = =: h k h k h 0 niin kaikilla i = 1,..., k ja kaikilla j = 1,..., n k pätee g i h j = s k i+j. h 1 h 2. h n k Tässä 1 k i + j n 1, joten g i h j = 0 kaikilla i ja j. Siis GH T = 0. Lisäksi rank H = n k, joten H on koodin C tarkistusmatriisi. 4.4 Systemaattinen koodaus Edellä olevalla tavalla koodaus on helppo tehdä, mutta se ei yleensä ole systemaattinen. Koodi voidaan kuitenkin saada systemaattiseen muotoon seuraavasti. Oletetaan, että viestit vastaavat polynomeja totutusti: m = (m 0, m 1,..., m k 1 ) m(x) = m 0 + m 1 x + + m k 1 x k 1., 36
40 Tällöin x n k m(x) = m 0 x n k + + m k 1 x n 1 = f(x)g(x) u(x), (6) missä f(x) F[x] ja deg u < n k, joten u(x) = u 0 +u 1 x+ +u n k 1 x n k 1. Polynomia u(x) + x n k m(x) = u 0 + u 1 x + + u n k 1 x n k 1 + m 0 x n k + m 1 x n k m k 1 x n 1 vastaava sana (u 0, u 1,..., u n k 1, m 0, m 1,..., m k 1 ) on koodisana, koska yhtälön (6) nojalla u(x) + x n k m(x) = f(x)g(x) g(x) = C. Lisäksi kuvaus γ : m(x) u(x) + x n k m(x) on bijektio F k C. Näin kuvausta γ käyttäen koodaus tapahtuu systemaattisesti, kuitenkin niin, että informaatiosymbolit ovat lopussa. Syklisen koodin generoijamatriisi saadaan systemaattiseen muotoon seuraavasti. Jakamalla x n k+i, i = 0, 1,..., k 1, polynomilla g(x) saadaan joten x n k+i = f i (x)g(x) u i (x), f i (x) F[x], deg u i < n k, u i (x) + x n k+i = f i (x)g(x) C kaikilla i = 0, 1,..., k 1. Koska nämä koodisanat ovat lineaarisesti vapaita, ne voidaan valita generoijamatriisin G vaakariveiksi: u u 0,n k u u 1,n k G = , u k 1,0... u k 1,n k missä on merkitty u i (x) = u i0 + u i1 x + + u i,n k 1 x n k 1. Luonnollisesti koodin C tarkistusmatriisiksi voidaan valita u 00 u u k 1, u 01 u u k 1,1 H = u 0,n k 1 u 1,n k 1... u k 1,n k 1 Esimerkki Jos saadussa sanassa r(x) = c(x)+e(x) on yksi virhe, niin yksi tapa hoitaa dekoodaus on Meggitt-dekoodaus. Lasketaan ensin syndromipolynomi s(x) = r(x)h(x) = c(x)h(x) + e(x)h(x) = e(x)h(x). 37
41 Lisäksi x i s(x) = (x i e(x))h(x) kaikilla i = 0, 1,..., n 1. Jos saadussa sanassa on vain 1 virhe, niin kokeilemalla löydetään sellainen i, että virhe on viimeisessä koordinaatissa (jos e(x) = x j, niin tämä toteutuu, kun i = n 1 j). Laaditaan ensin syndromiluettelo s 1 (x), s 2 (x),..., s q 1 (x), missä s j (x) on virhettä a j x n 1 vastaava syndromipolynomi ja {a 1,..., a q 1 } = F q. Varsinaisessa dekoodauksessa lasketaan x i s(x), i = 0,..., n 1, ja etsitään syndromiluettelosta sellainen s j (x), että x i s(x) = s j (x). Tällöin x i e(x) = a j x n 1 ja virhe on e(x) = a j x n 1 i. 4.5 Syklisen koodin nollakohdat Jos α 1, α 2,..., α n k ovat syklisen koodin C = g(x) generoijapolynomin g(x) nollakohdat (sopivassa kunnan F laajennuksessa), niin v(x) C täsmälleen silloin, kun c(α 1 ) = = c(α n k ) = 0. Näin ollen voidaan määritellä C = {c(x) R n c(α 1 ) = = c(α n k ) = 0}. Seurauksen (ks. myös Lauseen c-kohdan todistus) mukaan α q on nollakohta aina, kun α on nollakohta, joten ylläolevassa koodin C määrittelyssä riittää ottaa yksi edustaja kustakin eksponenttien syklotomisesta sivuluokasta. Siis C = {c(x) R n c(α i ) = 0 kaikilla i = 1,..., n k} { n 1 n 1 = c j x j } c j α j i = 0 kaikilla i = 1,..., n k j=0 j=0 = {(c 0, c 1,..., c n 1 ) F n (c 0, c 1,..., c n 1 ) (1, α i, α 2 i,..., α n 1 i ) = 0} = {c F n cĥt = 0}, missä 1 α 1... α1 n 1 1 α 2... α n 1 2 Ĥ =... 1 α n k... α n 1 n k (n k) n. (7) Matriisi Ĥ on siis eräänlainen tarkistusmatriisi, jonka alkiot kuuluvat johonkin kunnan F laajennuskuntaan. Lause Binäärinen syklinen koodi, jonka pituus n = 2 m 1 ja jonka generoija on jaoton polynomi, jolla on nollakohtana kunnan F 2 m primitiivialkio α, on ekvivalenttinen Hammingin [n, n m]-koodin kanssa. 38
42 Todistus. Olkoon α kunnan F 2 m primitiivialkio, eli α on primitiivinen n:s ykkösen juuri, kun n = 2 m 1. Tällöin m α (x) on luvun 1 määräämää syklotomista sivuluokkaa modulo n vastaava polynomin x n 1 jaoton tekijä. Tämä sivuluokka on {1, 2, 2 2,..., 2 m 1 }, joten minimipolynomin m α (x) nollakohdat ovat α, α 2,..., α 2m 1. Olkoon v(x) = v 0 + v 1 x + + v n 1 x n 1, jolloin v(x) m α (x), jos ja vain jos 0 = v(α) = n 1 j=0 v jα j (tällöin myös v(α 2 ) = = v(α 2m 1 ) = 0). Kun j = 0,..., n 1, niin α j = m 1 i=0 e ijα i joillakin e ij F 2. Siten n 1 n 1 m 1 m 1 0 = v j α j = v j e ij α i = j=0 j=0 i=0 i=0 (n 1 j=0 v j e ij ) α i n 1 v j e ij = 0 kaikilla i = 0,..., m 1 j=0 vh T = 0, missä matriisin H sarake j on (e 0j, e 1j,..., e m 1,j ) T. Matriisi H on siis koodin m α (x) tarkistusmatriisi. Koska α on kunnan F 2 m primitiivialkio, niin matriisin H sarakkeet ovat lukujen 1, 2,..., 2 m 1 binääriesitykset jossakin järjestyksessä. Väite seuraa tästä. 4.6 Idempotentit Yleisessä renkaassa alkiota e sanotaan idempotentiksi, jos e 2 = e. Syklisen koodin idempotentilta vaaditaan kuitenkin vähän enemmän. Oletetaan tässäkin kappaleessa, että syt(n, q) = 1. Lause Olkoon C n-pituinen syklinen koodi. Koodissa C on yksikäsitteinen seuraavat ehdot toteuttava alkio e(x) C: a) e(x) 2 = e(x) renkaassa R n. b) C on polynomin e(x) generoima ideaali, ts. C = e(x). c) e(x)c(x) = c(x) kaikilla c(x) C, ts. e(x) on koodin C ykkösalkio. Todistus. Koodilla C on generoijapolynomi g(x), jolle C = g(x) ja x n 1 = g(x)h(x), missä syt(g(x), h(x)) = 1. Täten Eukleideen algoritmin nojalla on olemassa sellaiset a, b F q [x], että 1 = a(x)g(x) + b(x)h(x). (8) Osoitetaan, että e(x) = a(x)g(x) toteuttaa väitteen ehdot. 39
43 a) Kertomalla yhtälö (8) puolittain polynomilla e(x) saadaan renkaassa R n e(x) = e(x) 2 + b(x)h(x)a(x)g(x) = e(x) 2 + a(x)b(x)(x n 1) = e(x) 2. b) Lauseen nojalla koodin e(x) generoijapolynomi on syt(x n 1, e(x)) = syt(g(x)h(x), a(x)g(x)) = g(x) syt(h(x), a(x)) = g(x). Näin ollen e(x) = g(x) = C. c) Olkoon c(x) C = e(x), jolloin c(x) = c 1 (x)e(x) = e(x)c 1 (x) jollakin c 1 (x) R n. Täten e(x)c(x) = e(x) 2 c 1 (x) = e(x)c 1 (x) = c(x), ja e(x) on koodin C ykkösalkio. Jos e 1 (x) ja e 2 (x) molemmat toteuttavat lauseen ehdot, niin c-kohdan mukaan e 1 (x) = e 1 (x)e 2 (x) = e 2 (x). Lauseen ehdot toteuttavaa polynomia e(x) C kutsutaan koodin C idempotentiksi. Huomautus (1) Matriisi, jonka ensimmäinen rivi on e(x) ja muut sen k 1 syklisiä siirtoa xe(x),..., x k 1 e(x), on koodin C generoijamatriisi. (2) Olkoon α primitiivinen n:s ykkösen juuri. Tällöin e(α i ) {0, 1} kaikilla i = 0, 1,..., n 1 ja g(α i ) = 0 jos ja vain jos e(α i ) = 0. Edelleen binäärisen polynomin h(x) = xn 1 generoiman koodin idempotentti on 1 + e(x) (vrt. harjoitustehtävään 41), kun e(x) on koodin g(x) g(x) idempotentti. Tarkastellaan binäärisiä syklisiä koodeja, ts. q = 2. Aikaisemman nojalla x n 1 = f 1 (x)f 2 (x) f t (x), missä f i F[x] ovat jaottomia ja kukin niistä vastaa yhtä syklotomista sivuluokkaa modulo n. Nämä ovat nyt muotoa {a, 2a,..., 2 u 1 a}, 40
44 missä u on pienin ehdon 2 u a a (mod n) toteuttava positiiviluku. Koska e(x) 2 = e(x), täytyy idempotentin sisältää myös termi x 2i, jos se sisältää termin x i (x n = 1 renkaassa R n ). Tästä johtuen syklisen binäärisen koodin idempotentin termien eksponentit muodostavat eräiden syklotomisten sivuluokkien unionin. Täten kaikki mahdolliset idempotentit saadaan muodostettua suorittamatta polynomin x n 1 tekijöihin jakoa. Minimaalisen koodin xn 1 f i idempotenttia sanotaan primitiiviseksi idempotentiksi. (x) Lause Olkoon M i polynomin (x n 1)/f i (x) generoima binäärinen minimaalinen koodi ja θ i (x) sen primitiivinen idempotentti. a) θ i (x)θ j (x) = 0 renkaassa R n kaikilla i j. b) t θ i (x) = 1. i=1 c) Polynomin f i1 (x)f i2 (x) f ir (x) generoiman syklisen koodin idempotentti on 1 + θ i1 (x) + θ i2 (x) + + θ ir (x). Todistus. a) Olkoon i j, jolloin θ i (x)θ j (x) M i M j. Harjoitustehtävän 37b mukaan koodin M i M j generoijapolynomi on pyj ( x n 1, ) xn 1 f i (x) f j (x) = x n 1. Täten M i M j = x n 1 = {0}, ja θ i (x)θ j (x) = 0 renkaassa R n. b) Jos C ai on polynomia f i (x) vastaava syklotominen sivuluokka (f i (α j ) = 0, jos ja vain jos j C ai ), niin { θ i (α j ) = 0, kun j / C ai, θ i (α j ) = 1, kun j C ai. Tämän ja harjoitustehtävän 44 nojalla t θ l (x) = l=1 t n 1 l=1 i=0 i=0 n 1 ( t n 1 ) θ l (α j )α )x ij i = θ l (α j )α ij x i (n 1 j=0 n 1 ( t = α ij l=1 j C al ) x i = i=0 n 1(n 1 i=0 j=0 l=1 j=0 α ij ) x i Tässä jokaisella 1 i n 1 pätee n 1 t l=1 θ i(x) = 1. j=0 α ij = 1 α in 1 α i = 0, joten c) Viimeinen kohta on harjoitustehtävänä
45 4.7 Syklisen koodin jälkiesitys Olkoon F = F q ja K = F q m kunnan F laajennuskunta. Määritelmä Kuntalaajennuksen K/F jälkifunktioksi (trace function) sanotaan kuvausta Tr K F : K F, Tr K F (x) = m 1 i=0 x qi = x + x q + x q2 + + x qm 1. Kuvaa Tr K F (x) sanotaan alkion x K jäljeksi kunnan F suhteen. Jos kunnat ovat selvät, niin jälkifunktiota merkitään Tr. Jos q = p on alkuluku, niin kuvausta Tr K F p sanotaan absoluuttiseksi jälkifunktioksi ja jälkeä Tr K F p (x) alkion x K absoluuttiseksi jäljeksi. Lause Olkoon Tr laajennuksen K/F jälkifunktio. Tällöin a) Tr on F-lineaarinen kuvaus eli kaikilla x, y K ja a F pätee Tr(x + y) = Tr(x) + Tr(y) ja Tr(ax) = a Tr(x). b) Tr on surjektio K F ja saa jokaisen arvonsa yhtä monesti. c) Tr(a) = ma kaikilla a F. d) Tr(x q ) = Tr(x) kaikilla x K. Todistus. a) Oletetaan, että x, y K ja a F. Tällöin m 1 m 1 Tr(x + y) = (x + y) qi = (x qi + y qi ) = i=0 = Tr(x) + Tr(y). i=0 m 1 i=0 x qi + Kaikilla a F q pätee a q = a, joten a qi = a kaikilla i 0. Siten m 1 Tr(ax) = (ax) qi = i=0 m 1 i=0 a qi x qi = m 1 i=0 m 1 ax qi = a i=0 m 1 i=0 y qi x qi = a Tr(x). b) Polynomilla x+x q + +x qm 1 on korkeintaan q m 1 nollakohtaa kunnassa K. Tästä johtuen on olemassa sellainen β K, että Tr(β) 0. Siis b = Tr(β) F q = F q \{0}. Jos nyt a F, niin myös ab 1 F ja a-kohdan mukaan Tr(ab 1 β) = ab 1 Tr(β) = ab 1 b = a. 42
46 Näin ollen Tr on surjektio. Jos ξ Ker Tr, niin Tr(a + ξ) = Tr(a) + Tr(ξ) = Tr(a) + 0 = Tr(a) kaikilla a K. Koska a + ξ 1 a + ξ 2, kun ξ 1 ξ 2, niin jokaisella b F on vähintään Ker Tr eri alkukuvaa ja K Ker Tr F. Toisaalta homomorfismien peruslauseen (Alg. I) nojalla K/ Ker Tr = Im Tr = F. Kaikki tässä esiintyvät ryhmät ovat äärellisiä, joten K = Ker Tr F ja jokaisella b F on oltava täsmälleen Ker Tr alkukuvaa. c) Kuten edellä todettiin, on a qi = a kaikilla i 0, kun a F. Siten Tr(a) = m 1 i=0 a qi = d) Kun x K, niin x qm = x ja saadaan m 1 Tr(x q ) = (x q ) qi = i=0 m 1 i=0 m 1 i=0 a = ma. x qi+1 = Tr(x). Huomautus Jos K = F q m ja alkion α K minimipolynomin (kunnan F q suhteen) m α (x) aste on m, niin (ks. Lauseen c-kohta) m α (x) = (x α)(x α q ) (x α qm 1 ) = x m (α + α q + + α qm 1 )x m 1 + = x m Tr K F (α)x m , joten Tr K F (α) = (termin x m 1 kerroin). Määritelmä Olkoon F = F q, K = F q m, γ kunnan K primitiivialkio ja P renkaan K[x] additiivinen aliryhmä, joka on suljettu kunnan F alkioilla kertomisen suhteen. Olkoon edelleen n Z + ja Tr jälkikuvaus Tr K F. Muotoa C(P ) = { c(f) = ( Tr(f(1)), Tr(f(γ)),..., Tr(f(γ n 1 )) ) f P } olevaa lineaarista koodia kutsutaan pituutta n olevaksi jälkikoodiksi kunnan F suhteen. Koska syklisen koodin duaalikoodi on syklinen, niin seuraavan lauseen perusteella jokainen syklinen koodi voidaan esittää jälkikoodina. 43
47 Lause Olkoot F, K ja γ kuten Määritelmässä Oletetaan, että n (q m 1) ja q m 1 = nn, N Z +. Olkoon B syklinen n-pituinen koodi kunnan F suhteen, jonka nollakohdat ovat γ Ns 1,..., γ Nsu. Tällöin koodin B duaalikoodi B on jälkikoodi C(P ), missä { u } P = a i x Ns i a i K. i=1 Todistus. Huomaa, että γ N on primitiivinen n:s ykkösen juuri. Olkoon b = (b 0,..., b n 1 ) F n ja c = c(f) C(P ), missä f(x) = u i=1 a ix Ns i. Merkitään b(x) = n 1 j=0 b jx j ja lasketaan vektoreiden b ja c pistetulo: n 1 n 1 b c = b j Tr(f(γ j )) = = = j=0 n 1 j=0 j=0 u Tr(b j a i γ Nsij ) = i=1 u Tr(a i b(γ Ns i )). i=1 b j u Tr(a i γ Nsij ) i=1 u Tr i=1 (a i n 1 j=0 ) b j γ Ns ij Jos nyt b B, niin b(γ Ns i ) = 0 kaikilla i = 1,..., u, joten b c = 0 kaikilla c C(P ). Näin ollen B C(P ). Olkoon nyt b C(P ), jolloin b c = 0 kaikilla c C(P ). Valitaan c = c(f), missä f(x) = ax Ns j, j {1,..., u} ja a K. Tällöin Tr(ab(γ Ns j )) = b c = 0. Tästä seuraa jäljen surjektiivisuuden nojalla, että b(γ Ns j ) = 0. Tämä pätee kaikilla j = 1,..., u, joten b B eli C(P ) B. Huomautus Jos α = γ N (primitiivinen n:s ykkösen juuri), niin edellä riittää ottaa mukaan sellainen nollakohtien α s i = γ Ns i joukko, missä on yksi edustaja s i jokaisesta joukkoon {s 1,..., s u } kuuluvasta syklotomisesta sivuluokasta modulo n. 4.8 Mattsonin Solomonin polynomit Oletetaan, kuten edellä, että F = F q ja syt(n, q) = 1. Olkoon α primitiivinen n:s ykkösen juuri eräässä kunnan F laajennuskunnassa F q m. Määritelmä Vektorin a = (a 0, a 1,..., a n 1 ) Fq n (eli polynomin m a(x) = a 0 + a 1 x + + a n 1 x n 1 ) Mattsonin Solomonin polynomiksi, tai MS-polynomiksi, kutsutaan polynomia n A(z) = A a (z) = A j z n j F q m[z], j=1 44
48 missä A j = a(α j ) = n 1 a i α ij kaikilla j = 1,..., n. i=0 Lause Kun a ja A(z) ovat kuten edellä, niin a i = 1 n A(αi ) kaikilla i = 0, 1,..., n 1. Todistus. Koska α n = 1, saadaan n n A(α i ) = A j α (n j)i = A j α ji = j=1 j=1 n 1 = n α (k i)j. a k k=0 j=1 n α ij (n 1 j=1 k=0 ) a k α kj Kun k = i, niin tässä n j=1 α(k i)j = n j=1 1 = n. Kun k i, niin n < k i < n ja k i 0. Merkitsemällä l = k i saadaan α l 1 ja n j=1 α lj = α l (1 + α l + + α (n 1)l ) = α l 1 αnl 1 α l = 0. Koska syt(n, q) = 1, niin n 0 kunnan F alkioksi tulkittuna ja yhtälö A(α i ) = na i voidaan jakaa puolittain alkiolla n F. Seuraus wt(a) = n r, missä r on niiden n:nsien ykkösen juurten lukumäärä, jotka ovat polynomin A a (z) nollakohtia; erityisesti wt(a) n deg A a (z). Lause (BCH-raja). Olkoon α F q m primitiivinen n:s ykkösen juuri, b N ja d Z +. Olkoon g(x) F[x] polynomi, jonka nollakohtia ovat (ainakin) α b, α b+1,..., α b+d 2, ja olkoon C polynomin g generoima n-pituinen syklinen koodi. Tällöin d min C d. Todistus. Olkoon c(x) C, c(x) 0. Koska g(x) c(x) renkaassa R n, niin c(x) = f(x)g(x) renkaassa R n ja c(x) = f(x)g(x) + a(x)(x n 1) renkaassa F[x]. Täten c(α j ) = 0 kaikilla b j b + d 2, ja A(z) = A c (z) = n c(α j )z n j j=1 = c(α)z n c(α b 1 )z n b+1 + c(α b+d 1 )z n b d c(α n ). 45
49 Olkoon A (z) = z b 1 A(z) (z n 1) ( c(α)z b c(α b 1 ) ) = c(α b+d 1 )z n d + + c(α n )z b 1 + c(α)z b c(α b 1 ). Jokainen n:s ykkösen juuri, joka on polynomin A(z) nollakohta, on myös polynomin A (z) nollakohta. Tällaisten ykkösen juurten määrä on korkeintaan deg A n d. Seurauksen nojalla wt c n (n d) = d, joten d min C d. 46
50 5 BCH-, RS- ja Goppa-koodit 5.1 BCH-koodien määrittely BCH-koodit keksi vuonna 1959 Alexis Hocquenghem sekä hänestä riippumatta vuonna 1960 Raj C. Bose ja Dijen K. Ray-Chaudhuri. Näitä koodeja voidaan pitää Hammingin koodien yleistyksenä (vertaa Lauseseen 4.5.1). Luonnollisinta on kuitenkin tarkastella niitä syklisten koodien alalajina. BCHkoodien merkitys perustuu erityisesti siihen, että niille löytyy kohtuullisia dekoodausalgoritmeja. Olkoon jälleen F = F q, syt(n, q) = 1 ja m alkion 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ä Polynomin pyj(m α (x), m α 2(x),..., m α d 1(x)) generoimaa n-pituista syklistä koodia sanotaan (kapea-alaiseksi) BCH-koodiksi (narrow-sense BCH code), jonka suunniteltu etäisyys on d des C = d. Polynomin pyj(m α b(x), m α b+1(x),..., m α b+d 2(x)), missä b N, generoimaa n-pituista syklistä koodia sanotaan yleistetyksi BCH-koodiksi, jonka suunniteltu etäisyys on d. Jos α on kunnan F q m primitiivialkio eli jos n = q m 1, niin vastaavaa (yleistettyä) BCH-koodia sanotaan primitiiviseksi koodiksi. Jos BCH-koodin suunniteltu etäisyys on 2t + 1, sitä sanotaan tavallisesti t virhettä korjaavaksi BCH-koodiksi. Lause a) Olkoon C = g(x) n-pituinen (yleistetty) BCH-koodi kunnan F q suhteen ja olkoon sen suunniteltu etäisyys d. Tällöin dim C n (d 1)m ja d min C d. b) Olkoon C binäärinen n-pituinen BCH-koodi, jonka suunniteltu etäisyys on d = 2t + 1. Silloin dim C n mt ja d min C 2t + 1. Todistus. a) Lauseen mukaan deg m β (x) m kaikilla β F q m, joten deg g (d 1)m. Toisaalta deg g = n dim C, joten n dim C (d 1)m eli dim C n (d 1)m. 47
51 Minimietäisyyden raja saadaan suoraan BCH-rajasta (Lause 4.8.4). Sen saa todistettua myös ilman Mattsonin Solomonin polynomeja hyödyntämällä kappaleen 4.5 tarkasteluja. Olkoot polynomilla g nollakohtina α b, α b+1,..., α b+d 2. Jos c C, niin cĥt = 0, missä 1 α b α 2b... α (n 1)b 1 α b+1 α 2(b+1)... α (n 1)(b+1) Ĥ = α b+d 2 α 2(b+d 2)... α (n 1)(b+d 2) on yhtälön (7) mukainen matriisi. Olkoon c 0 ja wt(c) = w, 1 w d 1. Olkoot c i1, c i2,..., c iw vektorin c nollasta eroavat koordinaatit, missä i j {0,..., n 1} kaikilla j. Yhtälöstä cĥt = 0 saadaan yhtälöryhmä c i1 α i 1b + c i2 α i 2b + + c iw α iwb = 0 c i1 α i 1(b+1) + c i2 α i 2(b+1) + + c iw α iw(b+1) = 0. c i1 α i1(b+w 1) + c i2 α i2(b+w 1) + + c iw α iw(b+w 1) = 0 Tällä yhtälöryhmällä on epätriviaali ratkaisu (c i1,..., c iw ), joten α i 1b α i 2b α iwb α i 1(b+1) α i 2(b+1) α iw(b+1) 0 =... α i 1(b+w 1) α i 2(b+w 1) α iw(b+w 1) α i 1 α i 2 α iw = α i1b α i 2b α iwb α 2i 1 α 2i 2 α 2iw... α (w 1)i 1 α (w 1)i 2 α (w 1)iw = α i 1b α i 2b α iwb j<k(α i k α i j ). Täten on olemassa sellaiset 1 j < k w, että α i j = α i k eli α i k i j = 1. Tämä on ristiriidassa sen kanssa, että α on primitiivinen n:s ykkösen juuri. Näin ollen w d ja saadaan väite. b) Binääritapauksessa polynomin m β (x) nollakohtia ovat β, β 2, β 4,... Siten m β (x) = m β 2(x) = m β 4(x) =... ja g(x) = pyj(m α, m α 2,..., m α 2t) = pyj(m α, m α 3,..., m α 2t 1). 48
52 Näin ollen deg g mt ja väite saadaan a-kohdan tapaan. Huomaa, että edellisen lauseen todistuksessa ei tarvita tietoa, että d on juuri suunniteltu etäisyys vaan lause todistaa BCH-rajan (ks. Lause 4.8.4): jos syklisellä koodilla C on d peräkkäistä nollakohtaa, niin d min C d + 1. Esimerkki Marcel J. E. Golaylta tunnettaan kaksi koodia, binäärinen ja ternääninen Golayn koodi. Molemmat on julkaistu vuonna 1949 ja kumpikin on täydellinen. Muut täydelliset koodit äärellisten kuntien suhteen ovat Hammingin koodit (Lause 3.4.3) ja ns. triviaalit täydelliset koodit: binääriset paritonpituiset toistokoodit, yhden sanan koodit ja koko avaruus F n q. Tarkastellaan seuraavassa binääristä Golayn koodia; ternäärinen esiintyy harjoitustehtävässä 52. Olkoon q = 2 ja n = 23. Pienin m, jolle 23 (2 m 1), on m = 11, ja = 2047 = Nyt saadaan syklotomiset sivuluokat C 0 = {0}, C 1 = {1, 2, 4, 8, 16, 9, 18, 13, 3, 6, 12} C 5 = {5, 10, 20, 17, 11, 22, 21, 19, 15, 7, 14}. Vastaava polynomin x 23 1 tekijöihinjako renkaassa F 2 [x] on x 23 1 = (x 1)(x 11 + x 10 + x 6 + x 5 + x 4 + x 2 + 1) ja (x 11 + x 9 + x 7 + x 6 + x 5 + x + 1). Olkoon α primitiivinen 23:s ykkösen juuri, jolle m α (x) = x 11 + x 10 + x 6 + x 5 + x 4 + x Polynomin g(x) = m α (x) nollakohtina ovat α, α 2, α 3 ja α 4, joten binäärisen Golayn koodin G 23 = g(x) minimietäisyys on BCH-rajan mukaan d min G Itse asiassa d min G 23 = 7, mitä ei todisteta tässä. Siten G 23 on 3 virhettä korjaava. Koodin G 23 dimensio on dim G 23 = n deg g = = 12. Jokaisessa koodisanakeskisessä 3-säteisessä pallossa on B(c, 3) = 3 i=0 ( ) = i vektoria. Yhteensä näissä palloissa on siten alkiota, ja G 23 on täydellinen koodi G 11 = = 2 23 = F = 2048 = 2 11
53 Minimietäisyyden ylärajan löytäminen on hankalampaa. Seuraava tulos kuitenkin tiedetään. Lause Olkoon n = ab ja C = g(x) n-pituinen BCH-koodi, jonka suunniteltu etäisyys d des C = a. Tällöin d min C = a. Todistus. BCH-rajan mukaan d min C a, joten riittää osoittaa, että koodista C löytyy a-painoinen sana. Nyt x n 1 = x ab 1 = (x b 1)(1+x b + +x (a 1)b ). Olkoon α primitiivinen n:s ykkösen juuri, jolloin α ib 1 kaikilla i = 1,..., a 1. Täten jokainen α i on polynomin 1 + x b + + x (a 1)b nollakohta. Lauseen nojalla m α i(x) (1 + x b + + x (a 1)b ) kaikilla i = 1,..., a 1. Koska g(x) = pyj(m α (x),..., m α a 1(x)), niin g(x) (1 + x b + + x (a 1)b ). Siten 1 + x b + + x (a 1)b g(x) = C ja tämän sanan paino on a. 5.2 BCH-koodin dekoodaus Tarkastellaan t virhettä korjaavaa n-pituista BCH-koodia. Olkoon α primitiivinen n:s ykkösen juuri, c = c(x) = c 0 + c 1 x + + c n 1 x n 1 = (c 0, c 1,..., c n 1 ) lähetetty sana ja r = r(x) saatu sana. Tällöin missä e(x) on virhe. Merkitään jolloin r(x) = c(x) + e(x), S i = r(α i ), i = 1, 2,..., 2t, (9) S i = c(α i ) + e(α i ) = 0 + e(α i ) = e(α i ), i = 1, 2,..., 2t. Jos wt(e) = w t ja e(x) = w e jl x j l, niin l=1 S i = w e jl α ij l, i = 1, 2,..., 2t. (10) l=1 Jos potenssit α j 1,..., α j l saadaan selville, niin eksponentit j1, j 2,..., j l ilmaisevat virhekohdat. Merkitään x l = α j l ja yl = e jl, l = 1,..., w. Tällöin yhtälön (10) mukaan S i = w y l x i l, i = 1,..., 2t. l=1 50
54 Määritellään virhekohtapolynomi σ(z): σ(z) = w (1 x i z) = i=1 w σ j z j, σ 0 = 1, j=0 jonka nollakohtien käänteisalkiot ilmaisevat virhekohdat. Suureista S i saadaan muodostettua polynomi 2t 2t S(z) = S i z i = = i=1 w l=1 i=1 z i w l=1 y l x l z 1 (x lz) 2t 1 x l z. y l x i l = Merkitään A l (z) = y l x l z w (1 x j z), jolloin saadaan j=1 j l w l=1 2t y l i=1 (x l z) i S(z)σ(z) = = w w y l x l z(1 (x l z) 2t ) (1 x j z) l=1 w A l (z) l=1 j=1 j l w A l (z)(x l z) 2t. l=1 Koska deg A l (z) w, niin yllä termien z w+1, z w+2,..., z 2t kertoimet ovat 0. Nämä saadaan kertomalla tulo S(z)σ(z) = ( 2t i=1 S iz i)( w j=0 σ jz j), σ 0 = 1, tavalliseen tapaan auki. Suorittamalla kertominen päädytään yhtälöryhmään σ w S 1 + σ w 1 S σ 1 S w + S w+1 = 0 σ w S 2 + σ w 1 S σ 1 S w+1 + S w+2 = 0 (11). σ w S w + σ w 1 S w σ 1 S 2w 1 + S 2w = 0. 51
55 Tässä x 1 x 2... x w y 1 x x 1 x x w 1 1 x 2 1 x x 2 0 y 2 x x 2 x x w 1 2 w x w 1 1 x2 w 1... x w y w x w 1 x w x 2 w... x w 1 w w S 1 S 2... S w S 2 S 3... S w+1 =.... (12) S w S w+1... S 2w 1 Koska x 1,..., x l ovat nollasta eroavia ja erisuuria, niin yhtälöryhmän (11) determinantti, eli det[s i ] yhtälössä (12), on nollasta eroava. Siten kertoimet σ j saadaan ratkaistua yksikäsitteisesti yhtälöryhmästä (11). Jos f > w, niin suorittamalla yhtälön (12) kaltainen tekijöihinjako nähdään, että yhtälöryhmän σ f S σ 1 S f + S f+1 = 0 σ f S σ 1 S f+1 + S f+2 = 0. σ f S f + + σ 1 S 2f 1 + S 2f = 0 determinantti on nolla. Mikäli w t, niin oikea w (jota ei tiedetä ennakolta) saadaan seuraavasti: Valitaan w = t. Jos yhtälöryhmän (11) determinantti on 0, valitaan w = t 1 ja jatketaan samaan tapaan. Varsinainen dekoodausmenettely on seuraava: 1. Lasketaan suureet S i yhtälöiden (9) avulla. 2. Määrätään oikea w yllä kuvatulla tavalla. 3. Ratkaistaan alkiot σ j yhtälöryhmän (11) avulla. 4. Virhekohdat saadaan virhekohtapolynomin σ(z) nollakohtien käänteisalkioiden eksponentteina. 5. Ratkaistaan kertoimet y l eli virhearvot yhtälöryhmästä S i = w x i ly l, i = 1,..., w. l=1 52
56 5.3 Reedin Solomonin koodit Reedin Solomonin koodit ovat BCH-koodeja, joissa n = q 1. Irving S. Reed ja Gustave Solomon löysivät ne vuonna Näillä on huomattava merkitys muun muassa sen vuoksi, että ne ovat maksimietäisyyskoodeja ja niitä voidaan käyttää muiden koodien konstruoinnissa. Muun muassa ensimmäinen virheenkorjausta laajasti hyödyntänyt kuluttajatuote, CD-levy, käyttää RSkoodeja. RS-koodeja käytetään myös DVD- ja Blu-ray-levyillä sekä Euroopan (DVB) ja Pohjois-Amerikan (ATSC) digitelevisiolähetyksissä. Määritelmä Reedin Solomonin koodiksi eli RS-koodiksi sanotaan BCH-koodia, jonka aakkosto on F q, lohkopituus n = q 1 ja generoija d 1 g(x) = (x α i ), missä d on suunniteltu etäisyys ja α on kunnan F q primitiivialkio. i=1 Esimerkki Olkoon q = 4 ja α kunnan F 4 primitiivialkio, jolle α 2 + α + 1 = 0. Tarkastellaan RS-koodia, jonka suunniteltu etäisyys on 2. Sen generoijapolynomi on g(x) = x α ja koodisanat ovat c(x) = (a+bx)(x α), missä a, b F 4. Sanat on esitetty allaolevassa taulukossa. a b 0 1 α α α1 0α 2 α 01α 2 1 α10 αα 2 1 ααα α0α 2 α α 2 α0 α 2 01 α 2 1α α 2 α 2 α 2 α 2 1α α 1αα 2 Lauseessa osoitettiin, että lineaarisen [n, k]-koodin minimietäisyys on korkeintaan n k + 1. Määritelmän mukaan maksimietäisyyskoodeilla on juuri tämä minimietäisyys. Lause RS-koodit ovat maksimietäisyyskoodeja. Todistus. RS-koodin, jonka generoijapolynomi on g, minimetäisyys on BCHrajan (Lause tai Lause a) nojalla vähintään deg g + 1 = n k + 1, kun kyseessä on [n, k]-koodi. Lauseen mukaan d min = n k + 1. Edellisen lauseen todistuksesta käy ilmi, että RS-koodin minimietäisyys on d min = deg g+1 = d des. RS-koodi voidaan dekoodata kappaleen 5.2 teoriaa käyttäen. 53
57 Lause Olkoon C [n, k, d]-rs-koodi, jonka generoijapolynomi on g(x) = (x α)(x α 2 ) (x α d 1 ). Laajennetaan koodin C jokainen sana c = c 0 c 1 c n 1 sanaksi c 0 c 1 c n 1 c n, missä n 1 c n = c i. i=0 Näin saatu koodi on [n + 1, k, d + 1]-koodi. Todistus. Osoitetaan, että laajennettaessa koodia C jokaisesta d-painoisesta koodisanasta tulee (d + 1)-painoinen. Olkoon c(x) = c 0 c 1... c n 1 = c C jokin d-painoinen sana. Tällöin n 1 c n = c i = c(1) i=0 ja riittää osoittaa, että c(1) 0. Nyt c(x) = a(x)g(c) jollakin a(x) F q [x], joten c(1) = a(1)g(1), missä g(1) 0. Jos c(1) = 0, niin a(1) = 0 ja (x 1) a(x). Tällöin (x 1)g(x) c(x) ja polynomilla c(x) on peräkkäiset nollakohdat 1 = α 0, α, α 2,..., α d 1. BCHrajan nojalla wt(c) d + 1, mikä on ristiriita, sillä c oletettiin d-painoiseksi. Näin ollen c(1) 0 ja c n 0. Lause Olkoon P k renkaan F q [x] korkeintaan astetta k 1 olevien polynomien muodostama joukko, α kunnan F q primitiivialkio, n = q 1 ja k sellainen positiiviluku, että k n. Tällöin C = {(f(1), f(α),..., f(α n 1 )) f P k } on RS-koodi, jonka generoijapolynomi on g(x) = n k (x α i ). Todistus. Harjoitustehtävän 46 mukaan C on syklinen koodi kunnan F q suhteen ja dim C = k. Koska g(x) on n-pituinen syklinen koodi, jonka dimensio on n deg g = n (n k) = k = dim C, niin riittää osoittaa, että C g(x). i=1 54
58 Olkoon c(x) = n 1 j=0 c jx j C. Silloin c j = f(α j ), j = 0, 1,..., n 1, eräällä f(x) = k 1 l=0 f lx l P k, missä f l F q. Jokaisella i = 1,..., n k pätee n 1 n 1 n 1 k 1 k 1 c(α i ) = c j α ij = f(α j )α ij = f l α lj α ij = j=0 j=0 j=0 l=0 l=0 α (l+i)j, f l n 1 missä 1 l + i n 1. Koska α on primitiivinen n:s ykkösen juuri, niin α i+l 1 ja n 1 α (l+i)j = 1 α(l+i)n = 0. 1 α l+i j=0 Siis c(α i ) = 0 kaikilla i = 1,..., n k, joten c(x) g(x) ja saatiin väite. Olkoon C [n, k, d]-rs-koodi kunnan F q, q = p m, suhteen. Kunnan F q alkio voidaan korvata m-pituisella F p -kertoimisella vektorilla seuraavasti. Olkoon {β 1,..., β m } laajennuksen F q /F p kanta, jolloin saadaan yksikäsitteinen vastaavuus m γ = b i β i F q (b 1, b 2,..., b m ). i=1 Korvaamalla sanassa γ = (γ 0, γ 1,..., γ n 1 ) C kukin kirjain vastaavalla m-pituisella vektorilla γ i = (b i1, b i2,..., b im ) saadaan avaruuden Fp mn vektori (b 01,..., b (n 1)m ). Näin saadaan kunnan F p suhteen oleva koodi {(b 01,..., b (n 1)m ) γ = (γ 0, γ 1,..., γ n 1 ) C, γ i = (b i1, b i2,..., b im )}. Tämä on [mn, mk, d]-koodi (minimietäisyys on vähintään d). 5.4 Goppa-koodit Goppa-koodit keksi vuonna 1970 Valerii Goppa. Muun muassa BCH-koodit saadaan Goppa-koodien erikoistapauksena. Ennen Goppa-koodien esittelyä tarvitaan käänteisalkion a 1 (x) (mod G(x)) käsite, missä a ja G ovat polynomeja. Jos syt(a(x), G(x)) = 1 renkaassa F[x], niin on olemassa sellaiset u, v F[x], että 1 = a(x)u(x) + G(x)v(x). Näin ollen a(x)u(x) 1 (mod G(x)). Merkitään tällöin u(x) 1 a(x) u(x) a 1 (x) (mod G(x)) (mod G(x)). tai j=0 55
59 Esimerkki Olkoon α kunnan F 16 primitiivialkio, jolle α 4 + α + 1 = 0. Laske (x α 2 ) 1 (mod (x 2 + α 7 x + 1)). 1. tapa: Yhtälön ratkaiseminen suoraan: 1 (a + bx)(x α 2 ) aα 2 + (a + bα 2 )x + bx 2 aα 2 + (a + bα 2 )x + b(1 + α 7 x) = aα 2 + b + (a + bα 2 + bα 7 )x (mod (x 2 + α 7 x + 1)) jos ja vain jos a ja b totetuttavat yhtälöryhmän { aα 2 + b = 1 a + bα 12 = 0, jonka ratkaisu on a = α 9, b = α 12. Siten (x α 2 ) 1 (mod (x 2 + α 7 x + 1)) = α 9 + α 12 x. 2. tapa: Eukleideen algoritmi. Olkoon nyt C kunnan F q suhteen oleva n-pituinen (kapea-alainen) BCHkoodi, jonka suunniteltu etäisyys on d. Koodin C generoijapolynomi on siis g(x) = pyj { m α (x),..., m α d 1(x) }, missä m α i(x) on alkion α i minimipolynomi ja α on primitiivinen n:s ykkösen juuri eräässä kunnan F q laajennuksessa F q m. Lause Yllä oleva koodi C on muotoa n 1 C = { c = (c 0,..., c n 1 ) F n q i=0 c } i x α 0 (mod i xd 1 ). Todistus. Koska C on BCH-koodi, niin c C, jos ja vain jos c(α j ) = 0 kaikilla j = 1, 2,..., d 1. Täten s(x) = d 1 j=1 s jx j 1 on nollapolynomi, missä s j = c(α j ). Toisaalta d 1 d 1 n 1 s(x) = s j x j 1 = c i α ij x j 1 j=1 i=0 j=1 j=1 i=0 n 1 d 1 n 1 = c i α i (α i x) j 1 = c i α i 1 (αi x) d 1 1 α i x n 1 i=0 joten saadaan väite. n 1 c i α i 1 1 α i x = i=0 i=0 n 1 c i α i x = 56 i=0 c i x α i (mod x d 1 ),
60 Määritelmä Olkoon G(x) astetta s oleva renkaan F q m[x] ykköspolynomi. Olkoon L = {α 0, α 1,..., α n 1 } F q m sellainen joukko, että L = n ja G(α i ) 0 kaikilla i = 0,..., n 1. Goppa-koodiksi sanotaan koodia Γ (L, G) = { c F n q n 1 i=0 c i x α i 0 } (mod G(x)). (13) Huomautus (1) Lauseen mukaan BCH-koodit (kapea-alaiset, nollakohtina α, α 2,..., α d 1 ) ovat Goppa-koodeja. (2) Goppa-koodit ovat lineaarisia koodeja (jos c 1, c 2 Γ (L, G), niin c 1 +c 2 Γ (L, G) ja ac 1 Γ (L, G) kaikilla a F q ). (3) Yleisesti Goppa-koodit eivät ole syklisiä. Tässä vaaditaan vain n Z +, n q m ; ei tarvita ehtoa syt(n, q) = 1. Lause Edellä määritelty Γ (L, G) on [n, n ms, s + 1]-koodi. Todistus. Pituus on selvä. Osoitetaan ensin, että dimensio k on vähintään 1 n ms. Kirjoitetaan ensin kukin lauseke x α i (mod G(x)) polynomina. Siis 1 x α i s 1 j=0 G ijx j (mod G(x)) joillakin G ij F q m. Yhtälön (13) ehto tulee tällöin muotoon n 1 0 i=0 s 1 G ij x j = c i s 1 j=0 j=0 c i G ij )x j (mod G(x)), (n 1 i=0 n 1 c i G ij = 0 kaikilla j = 0, 1,..., s 1. (14) i=0 Koodisanan koordinaattien c i on siis toteutettava yhtälöryhmä (14), jossa on s yhtälöä ja jossa kertoimet G ij ovat kunnan F q m alkioita. Jos {β 1,..., β m } on kunnan F q m kanta kunnan F q suhteen, niin jokaisella i ja j saadaan G ij = m l=1 g ijlβ l, missä g ijl F q. Tällöin yhtälö n 1 i=0 c ig ij = 0 toteutuu, jos ja vain jos n 1 m m (n 1 g ijl β l = c i g ijl )β l = 0. i=0 c i l=0 l=0 Koska {β 1,..., β m } on kanta, saadaan yhtälöryhmässä (14) indeksiä j vastaavan yhtälön kanssa yhtäpitävä ryhmä i=0 n 1 c i g ijl = 0 kaikilla l = 1,..., m. (15) i=0 57
61 Kutakin ryhmän (14) yhtälöä vastaa siis m yhtälöä (15), joiden kertoimet g ijl ovat kunnasta F q. Näin ollen kukin koodisana toteuttaa ms kappaletta lineaarisia homogeenisia yhtälöitä, joiden kertoimet ovat kunnasta F q. Koodin Γ (L, G) tarkistusmatriisin aste on siten n k ms, eli k n ms. Osoitetaan vielä, että minietäisyys on vähintään s + 1. Olkoon 0 c Γ (L, G), wt(c) = w ja olkoot vektorin c nollasta eroavat koordinaatit c i1, c i2,..., c iw. Määrittelyehto (13) saadaan muotoon 0 n 1 i=0 c i x α i = w l=1 c il x α il = w l=1 c i l w j=1, l (x α i j ) w j=1 (x α i j ) (mod G(x)), missä tulossa w j=1, l indeksi j käy läpi joukon {1,..., w} \ {l} alkiot. Koska ( w ) syt (x α ij ), G(x) = 1, niin edellinen pätee ainoastaan, kun j=1 w l=1 G(x) c il w j=1, l ( w l=1 (x α ij ) 0 (mod G(x)) c il w j=1, l ) (x α ij ). Harjoitustehtävän 71 mukaan on oltava w 1 deg G(x) = s eli w s + 1. Huomautus Edellä olevassa todistuksessa saadusta matriisista Ĥ = [G ij ] saadaan koodin Γ (L, G) tarkistusmatriisi korvaamalla kukin G ij m- pituisella sarakkeella, jonka alkiot kuuluvat kuntaan F q, ja poistamalla saadusta matriisista turhat rivit (siis ne, jotka ovat jäljelle jäävien lineaariyhdisteitä). Esimerkki Olkoon α kunnan F 16 primitiivialkio, jolle α 4 + α + 1 = 0. Muodostetaan binäärinen 12-pituinen Goppa-koodi Γ (L, G), jolle G(x) = (x + α)(x + α 14 ) = x 2 + α 7 x + 1 ja L = {α i i = 2, 3,..., 13}. Määritelmästä seuraa, että Γ (L, G) = { c F i=0 c } i x α 0 (mod i+2 (x2 + α 7 x + 1)). Lauseen mukaan Γ (L, G) on [12, 4, 3]-koodi (n = 12, m = 4, s = 2). Määrätään tämän koodin tarkistusmatriisi. Edellä olevan todistuksen mukaisen matriisin Ĥ = [G ij] löytämiseksi tarvitaan polynomit G i (x) = 1 j=0 G ij x j 1 x α i = 1 x α i+2 (mod (x 2 + α 7 x + 1)) 58
62 jokaisella i = 0, 1,..., 11. Laskemalla nämä vaikkapa jollakin Esimerkissä esitetyllä tavalla saadaan [ ] α 9 α 9 α 10 α 9 α 10 0 α 10 α 8 α 2 α 7 α 14 α 6 Ĥ = α 12 α 6 α 6 α α 11 1 α α 8 α 4 α α 3 α 14. Korvaamalla matriisissa Ĥ kukin alkio vastaavalla binäärisarakkeella saadaan matriisi H = , joka on tarkistusmatriisi, koska sen aste on 8 (totea!). Edellisen lauseen mukaan on saatu Goppa-koodi, joka on [12, 4, 3]-koodi. Binääritapauksessa minimietäisyyden alarajaa voidaan usein parantaa. Lause Olkoon q = 2 ja oletetaan, että polynomilla G(x) ei ole useammankertaisia nollakohtia. Tällöin d min Γ (L, G) 2s + 1. Todistus. Olkoon c = (c 0, c 1,..., c n 1 ) 0 w-painoinen koodisana, missä c i F 2 = {0, 1}. Olkoon f(x) = n 1 i=0 (x α i) c i, missä alkiot c i tulkitaan kokonaisluvuiksi. Tällöin f n 1 (x) f(x) = c i 0 x α i i=0 (mod G(x)). Edelleen syt(f, G) = 1, joten yllä oleva kongruenssi pätee ainoastaan, kun G(x) f (x). Harjoitustehtävän 71 nojalla f (x) 0. Jos f(x) = w i=0 f ix i, niin f (x) = f 1 + f 3 x 2 + f 5 x f 2u+1 x 2u, missä 2u + 1 w. Näin ollen f (x) = g(x) 2 = (g 1 + g 3 x + + g 2u+1 x u ) 2, missä g 2 i = f i, i = 1, 3,..., 2u + 1. Siis G(x) g(x) 2, g(x) 0. Polynomin G nollakohdat ovat yksinkertaisia, joten G(x) g(x) ja s = deg G deg g = u. Täten w 2u + 1 2s + 1. Goppa-koodien dekoodauksessa voidaan käyttää esimerkiksi seuraavassa kappaleessa esiteltävää menetelmää. 59
63 5.5 Alternanttikoodit ja niiden Eukleideen algoritmiin perustuva dekoodaus Olkoon α primitiivinen n:s ykkösen juuri eräässä kunnan F q laajennuksessa F q m ja olkoon syt(n, q) = 1. Suunniteltua etäisyyttä d olevan yleistetyn BCHkoodin, jonka nollakohdat ovat α b, α b+1,..., α b+d 2, koodisanat toteuttavat Lauseen todistuksen mukaan ehdon missä cĥt = 0, (16) 1 α b α 2b... α (n 1)b 1 α b+1 α 2(b+1)... α (n 1)(b+1) Ĥ = Ĥ1 = α b+d 2 α 2(b+d 2)... α (n 1)(b+d 2) Myös Goppa-koodin Γ (L, G), missä L = {α 1,..., α n } F q m ja deg G = s, koodisanat c totetuttavat ehdon (16), kun G(α 1 ) 1... G(α n ) 1 α 1 G(α 1 ) 1... α n G(α n ) 1 Ĥ = Ĥ2 =... α1 s 1 G(α 1 ) 1... α s 1 G(α n ) 1 Matriisit Ĥ yllä ovat tarkistusmatriiseja, joiden alkiot kuuluvat kuntaan F q m. Varsinaiset tarkistusmatriisit saadaan näistä tarvittaessa korvaamalla alkiot m-pituisilla F q -alkioisilla sarakkeilla (esimerkiksi polynomikannan avulla) ja poistamalla turhat eli muista lineaarisesti riippuvat rivit. Tarkastellaan seuraavaksi matriisia h 1 h 2... h n h 1 α 1 h 2 α 2... h n α n Ĥ =,... h 1 α1 r 1 h 2 α2 r 1... h n αn r 1 missä h 1, h 2,..., h n ovat nollasta eroavia ja α 1, α 2,..., α n ovat keskenään erisuuria kunnan F q m alkioita. Määritelmä Olkoon ylläolevin merkinnöin α = (α 1,... α n ) ja h = (h 1,..., h n ). Olkoon r < n. Alternanttikoodiksi kunnan F q suhteen sanotaan koodia A(α, h) = {c F n q cĥt = 0}. n r n 60
64 Lause Alternanttikoodi A(α, h) on [n, k, d]-koodi, missä n mr k n r ja d r + 1. Todistus. Alaraja n mr k osoitetaan samalla tavalla kuin Lauseen todistuksessa. Yläraja k n r seuraa siitä, että rank Ĥ = r (matriisin Ĥ r r-alimatriisin determinantti saadaan van der Monden determinantin avulla). Minimietäisyyttä koskeva tulos jätetään harjoitukseksi. Esitetään nyt alternanttikoodeille Eukleideen algoritmiin perustuva dekoodausmenettely. Samalla saadaan BCH- ja Goppa-koodeille dekoodausmenettely. Oletetaan, että on lähetetty koodisana c ja vastaanotettu vektori u = c + e. Oletetaan, että r on parillinen, r = 2t, jolloin Lauseen mukaan d 2t+1. Oletetaan lisäksi, että virheiden määrä on e t = r 2. Olkoot virheet paikoissa 1 i 1 < i 2 < < i e n. Jos vektorin e i:s koordinaatti on e ij, niin asetetaan jokaisella j = 1,..., e Lasketaan aluksi syndromi x j = α ij (virhepaikat) ja y j = e ij (virhearvot). uĥt = (c + e)ĥt = 0 + eĥt = eĥt =: (S 0, S 1,..., S r 1 ), ja vastaava syndromipolynomi S(x) = r 1 S l = e h ik αi l k e ik = k=1 l=0 S l x l, missä e h ik x l ky k kaikilla l = 0, 1,..., r 1. k=1 Määritellään virhekohtapolynomi ja virhearvopolynomi ω(x) = σ(x) = e (1 x i x) = i=1 e h ik y k k=1 e j=1, k e σ i x i, σ 0 = 1, i=0 (1 x j x) = e σ(x) h ik y k 1 x k x, missä merkintä e j=1, k tarkoittaa tuloa joukon {1,..., e} \ {k} yli (vrt. Lauseen todistus). Tässä ω(x 1 l ) = e h ik y k k=1 e j=1, k k=1 (1 x j x 1 ) = h il y l l e j=1, l (1 x j x 1 l ), (17) 61
65 joten y l = Koska σ (x) = e x j ja j=1 ω(x 1 l ) h il e j=1, l (1 x jx 1 e i=1, j l ) (1 x i x), niin σ (x 1 l ) = x l y l = x lω(x 1 l ) h il σ (x 1 Täten saatiin seuraava lause. l ) Lause Ylläolevin merkinnöin y l = ω(x 1 l ) h il e j=1, l (1 x jx 1 l e i=1, l kaikilla l = 1, 2,..., e. (1 x i x 1 l ) kaikilla l = 1, 2,..., e. ) = x 1 lω(x h il σ (x 1 l ) l ) kaikilla l = 1, 2,..., e. Jos polynomit σ(x) ja ω(x) saadaan selville, niin polynomin σ(x) nollakohtien avulla saadaan virhepaikat x j ja edellisen lauseen avulla virhearvot y j. Nämä yhdessä kertovat virhevektorin e. Osoitetaan seuraavaksi avainehdon voimassaolo, jota tarvitaan jatkossa. Lause (avainehto). Ylläolevin merkinnöin Lisäksi syt(σ, ω) = 1. σ(x)s(x) ω(x) (mod x r ). Todistus. Edellä olevien tulosten mukaan r 1 ω(x) σ(x)s(x) = ω(x) σ(x) S l x l = = = l=0 e r 1 σ(x) h ik y k 1 x k x σ(x) k=1 l=0 e h ik x l ky k x l k=1 r 1 e σ(x) ( ) h ik y k 1 (1 x k x) (x k x) l 1 x k x l=0 e σ(x) h ik y k 1 x k x (x kx) r k=1 k=1 0 (mod x r ). 62
66 Polynomin σ(x) nollakohdat ovat x 1 l, l = 1,..., e, ja yhtälön (17) nojalla ω(x 1 l ) = h il y l e j=1, l (1 x j x 1 l ) 0. Täten polynomeilla σ(x) ja ω(x) ei ole yhteisiä nollakohtia eikä yhteisiä alkutekijöitä. Näin saadaan alternanttikoodeille seuraava dekodausmenettely: Olkoon A(α, h) alternanttikoodi, missä r = 2t. Jos virheiden lukumäärä on korkeintaan t, niin ne voidaan korjata vastaanotetusta sanasta u seuraavasti: 1. Lasketaan syndromi uĥt = (S 0, S 1,..., S r 1 ); S(x) = S 0 + S 1 x + + S r 1 x r 1. Jos S(x) = 0, niin u = c. 2. Määrätään polynomit σ(x) ja ω(x) alla esiteltävällä tavalla. 3. Polynomin σ(x) nollakohtien käänteisalkioina saadaan x 1 = α i1,..., x e = α ie. 4. Lasketaan virhearvot y 1 = e i1,..., y e = e ie Lauseen avulla. 5. Lasketaan c = u e. Edellä kohdassa 2 polynomit σ(x) ja ω(x) voidaan määrittää käyttämällä Eukleideen algoritmia renkaassa F[x]. Olkoot f(x), g(x) F[x] nollasta eroavia polynomeja. Merkitään r 1 (x) = f(x) ja r 0 (x) = g(x), jolloin Eukleideen algoritmi polynomeille f(x) ja g(x) tulee muotoon r 1 (x) = q 1 (x)r 0 (x) + r 1 (x), deg r 1 < deg r 0, r 0 (x) = q 2 (x)r 1 (x) + r 2 (x), deg r 2 < deg r 1,. r k 1 (x) = q k+1 (x)r k (x) + r k+1 (x), deg r k+1 < deg r k,. r s 2 (x) = q s (x)r s 1 (x) + r s (x), deg r s < deg r s 1, r s 1 (x) = q s+1 (x)r s (x), r s+1 (x) 0. 63
67 Tässä jokainen q k, r k F[x]. Tällöin syt(f(x), g(x)) = r s (x). Määritellään polynomijonot (a k ), (b k ) seuraavasti: a 1 (x) = 1, b 1 (x) = 0; a 0 (x) = 0, b 0 (x) = 1; a k (x) = q k (x)a k 1 (x) + a k 2 (x), kun 1 k s + 1, b k (x) = q k (x)b k 1 (x) + b k 2 (x), kun 1 k s + 1. Tällöin on voimassa seuraavat tulokset. Lemma Edellä olevin merkinnöin jokaisella 0 k s + 1 pätee: a) b k r k 1 b k 1 r k = ( 1) k f b) a k r k 1 a k 1 r k = ( 1) k+1 g c) a k b k 1 a k 1 b k = ( 1) k+1 d) r k = a k f + b k g (pätee myös, kun k = 1) e) deg a k + deg r k 1 = deg g (ei päde, kun k = 0) f) deg b k + deg r k 1 = deg f. Todistus. Harjoitustehtävä 75. Lemman d-kohdan nojalla b k (x)g(x) r k (x) (mod f(x)) ja f-kohdan nojalla deg b k + deg r k < deg f. Lemma Oletetaan, että Eukleideen algoritmia sovelletaan polynomeihin f ja g. Jos µ 0 ja ν deg syt(f, g) ovat kokonaislukuja, joille µ + ν = deg f 1, niin on olemassa sellainen yksikäsitteinen k {0,..., s}, että deg b k µ ja deg r k ν. Todistus. Lemman f-kohdan nojalla deg b k = deg f deg r k 1 ja toisaalta µ = deg f (ν + 1). Siten deg b k µ jos ja vain jos deg r k 1 ν + 1. Jakojäännösten asteiden deg r k muodostama jono on aidosti vähenevä, joten on olemassa yksikäsitteinen k, jolle deg r k ν ja deg r k 1 ν + 1. Lemma Olkoot f, g, b, r F[x] sellaisia nollasta eroavia polynomeja, että b(x)g(x) r(x) (mod f(x)), (18) deg b µ, deg r ν, µ + ν = deg f 1. 64
68 Olkoot edelleen (a k ), (b k ) ja (r k ), k = 1, 0,..., edellä olevan mukaisia polynomijonoja, jotka saadaan soveltaen Eukleideen algoritmia polynomeihin f ja g. Tällöin on olemassa sellainen yksikäsitteinen indeksi k {0,..., s} ja polynomi λ(x) F[x], että b(x) = λ(x)b k (x) ja r(x) = λ(x)r k (x). Todistus. Kongruenssin (18) nojalla syt(f, g) r, joten ν deg syt(f, g). Lemman nojalla on olemassa sellainen yksikäsitteinen 0 k s, että deg b k µ, deg r k ν (ja deg r k 1 > ν). Lemman d-kohdan mukaan r k = a k f + b k g. Kongruenssin (18) mukaan on olemassa polynomi a(x) F[x], jolle r = af + bg. Täten { r k b = a k bf + b k bg b k r = ab k f + bb k g eli r k b b k r = (a k b ab k )f. Tässä yhtälössä deg(r k b) = deg r k + deg b ν + µ < deg f deg(b k r) = deg b k + deg r µ + ν < deg f, ja joten r k b = b k r ja a k b = ab k. (19) Lemman c-kohdan mukaan syt(a k, b k ) = 1, joten yhtälön (19) nojalla b k b eli b(x) = λ(x)b k (x) eräällä λ(x) F[x]. Sijoittamalla tämä yhtälöön (19) saadaan r(x) = λ(x)r k (x). Lause Olkoot S(x), σ(x) ja ω(x) sellaisia nollasta eroavia polynomeja, että σ(x)s(x) ω(x) (mod x r ), σ(0) = 1, deg σ µ, deg ω ν, µ + ν = r 1 ja syt(σ, ω) = 1. Tällöin on olemassa sellainen yksikäsitteinen indeksi k, että sovellettaessa Eukleideen algoritmia polynomeihin x r ja S(x) saadaan deg r k ν, deg r k 1 > ν, σ(x) = b k (0) 1 b k (x), ω(x) = b k (0) 1 r k (x). 65
69 Todistus. Valitaan Lemmssa f(x) = x r, g(x) = S(x), b(x) = σ(x) ja r(x) = ω(x). Lisäksi oletusten nojalla µ + ν = r 1 = deg x r 1. Lemman nojalla on olemassa sellainen yksikäsitteinen k ja polynomi λ(x) F[x], että σ(x) = λ(x)b k (x), ω(x) = λ(x)r k (x). Koska syt(σ, ω) = 1, niin λ(x) = λ F. Lisäksi σ(0) = 1, joten 1 = λb k (0) ja λ = b k (0) 1. Lauseen mukaisen avainehdon ratkaisut σ(x) ja ω(x), joille deg σ t ja deg ω t 1, saadaan suoraan Lauseesta valitsemalla siinä r = 2t, µ = t ja ν = t 1. Esimerkki Olkoon C 15-pituinen BCH-koodi, jonka suunniteltu etäisyys on d = 5 (jolloin t = 2). Käytetään kunnan F 16 primitiivialkiota α, jolle α 4 + α + 1 = 0. Koodin C nollakohdat ovat α, α 2, α 3 ja α 4, jotka vastaavat syklotomisia sivuluokkia C 1 = {1, 2, 4, 8} ja C 3 = {3, 6, 9, 12}. Generoijapolynomi on siis g(x) = pyj(m α (x), m α 3(x)) = m α (x) m α 3(x) = (x 4 + x + 1)(x 4 + x 3 + x 2 + x + 1) = x 8 + x 7 + x 6 + x Matriisiksi Ĥ tulee nyt 1 α... α 14 Ĥ = 1 α 2... α α 3... α α 4... α 4 14 (yleisen alternanttikoodin merkinnöin nyt h i = α i = α i 1 ). Dekoodataan saatu sana u = Sanaa u vastaava polynomi on u(x) = 1 + x 4 + x 6 + x 7 + x 10 + x 11 + x 12 ja syndromi uĥt = (u(α), u(α 2 ), u(α 3 ), u(α 4 )) = (α 4, α 8, α 12, α) = (S 0, S 1, S 2, S 3 ), joten syndromipolynomiksi tulee S(x) = α 4 + α 8 x + α 12 x 2 + αx 3. Avainehto on nyt σ(x)s(x) ω(x) (mod x 4 ), deg σ 2, deg ω 1 (2 + 1 = 3 = 4 1). Eukleideen algoritmi antaa x 4 = (α 14 x + α 10 )S(x) + α 14, 66
70 joten r 1 (x) = α 14 ja b 1 (x) = α 14 x + α 10. Koska deg r 1 1, Lauseessa k = 1. Tällöin b 1 (0) 1 = (α 10 ) 1 = α 5 sekä σ(x) = α 5 b 1 (x) = α 4 x + 1 ja ω(x) = α 5 r 1 (x) = α 4. Polynomin σ nollakohtana on α 4, joten x 1 = α 4 = α 5 ja virhe on viidennessä komponentissa. Virhevektori on siten e = ( ) eli virhepolynomi on x 4 (koodi on kunnan F 2 suhteen, joten virhearvo on 1). Lause antaa virhearvoksi y 1 = x 1ω(x 1 1 ) h 5 σ (x 1 1 ) = α4 α4 α 4 α = 1, 4 kuten pitääkin. Dekoodattu sana on siis c = u e = Alternanttikoodin dekoodaus, kun esiintyy pyyhkyitymiä ja virheitä Joissakin tilanteissa vastaanotetun sanan kirjainta ei saa tulkittua millään tavalla. Tällöin kyseessä on pyyhkiytymä (erasure). Jos pyyhkiytymää merkitään symbolilla, niin tulostusaakkostona on F q { }. Intuitiivisesti ajateltuna pyyhkiytymiä voidaan korjata enemmän kuin virheitä, sillä kyseiset kohdat tiedetään varmasti vääriksi. Seuraava lause, jonka todistus sivuutetaan, antaa rajan virheenkorjauskyvylle pyyhkiytymien esiintyessä. Huomaa, että lauseessa voi olla e 0 + e 1 > d 1 2. Lause Jos koodin C minimietäisyys on d, niin se korjaa e 0 pyyhkiytymää ja e 1 virhettä, kun e 0 + 2e 1 d 1. Esitetään seuraavaksi menettely, jolla saavutetaan tämän lauseen mukainen dekoodaus alternanttikoodeille missä Ĥ = A(α, h) = {c F n q cĥt = 0}, h 1 h 2... h n h 1 α 1 h 2 α 2... h n α n... h 1 α1 r 1 h 2 α2 r 1... h n αn r 1 h 1, h 2,..., h n Fq ja alkiot α 1, α m 2,..., α n Fq m ovat erisuuria. Oletetaan, että vastaanotetussa sanassa u = (u 1,..., u n ), u i F q { }, on e 0 pyyhkiytymää ja e 1 virhettä ja että e 0 + 2e 1 r. Määritellään lisäksi joukot r n I 0 = {i u i = }, Î 0 = {i I 0 c i 0}, I 1 = {i u i, u i c i }, I = I 0 I 1 ja Î = Î0 I 1., 67
71 Muodostetaan ensin pyyhkiytymänpaikantaja σ 0 (x) = i I 0 (1 α i x), Jos I 0 =, niin asetetaan σ 0 (x) = 1. Korvataan sanassa u pyyhkiytymät alkiolla 0, jolloin saadaan sana û = (û 1,..., û n ), missä { u i, kun u i, û i = 0, kun u i =. Sanassa û on mahdollisesti e 0 + e 1 virhettä (voi olla e 0 + e 1 > r ). Merkitään 2 û = c + ê ja lasketaan syndromit: S = ûĥt = cĥt + êĥt = êĥt = (S 0, S 1,..., S r 1 ). Olkoon lisäksi S(x) = r 1 l=0 S lx l. Jos ê = (ê 1,..., ê n ), niin ê i 0 kaikilla i Î ja ê i = 0 muulloin. Määritellään seuraavaksi vektoria û vastaava virhekohtapolynomi ˆσ(x) = i Î (1 α i x) ja virhearvopolynomi ˆω(x) = i Î ˆσ(x) h i ê i (1 α j x) = h i ê i 1 α i x. j Î\{i} i Î Kuten Lauseessa 5.5.4, nytkin saadaan syt(ˆσ, ˆω) = 1. Polynomi σ 1 (x) = i I 1 (1 α i x) on virheenpaikantaja ja σ 1 (x) ˆσ(x). Kuten Lauseessa 5.5.4, saadaan avainehto ˆσ(x)S(x) ˆω(x) (mod x r ). Kertomalla tämä puolittain tulolla (1 α i x) saadaan i I 0 \Î0 σ(x)s(x) ω(x) (mod x r ), (20) missä σ(x) = σ 0 (x)σ 1 (x) ja ω(x) = ˆω(x) i I 0 \Î0(1 α i x) = i Î σ(x) h i ê i 1 α i x = i I σ(x) h i ê i 1 α i x. Määritellään nyt muunnettu syndromipolynomi S 0 (x) asettamalla S 0 (x) σ 0 (x)s(x) (mod x r ), 68
72 jolloin yhtälöstä (20) saadaan σ 1 (x)s 0 (x) ω(x) (mod x r ). (21) Merkitään µ = r e 0 ja ν = r 1 µ, jolloin µ + ν = r 1 sekä 2 deg σ 1 = e 1 ja deg ω e 0 + e 1 1. Koska oletuksen mukaan e 0 + 2e 1 r, niin e 1 r e 0, joten e 2 1 µ. Lisäksi 2e 0 + 2e 1 r + e 0, joten e 0 + e 1 r + e 0 2 = r r e 0 2 r e0 r = r µ. 2 Täten deg ω r 1 µ = ν. Soveltamalla Eukleideen algoritmia Lauseen mukaisesti polynomeihin x r ja S 0 (x) kunnes saadaan deg r k (x) ν ja deg r k 1 (x) > ν σ 1 (x) = b k (0) 1 b k (x) ja ω(x) = b k (0) 1 r k (x) (koska syt(ˆσ, ˆω) = 1, niin syt(σ 1, ω) = 1). Polynomin σ 1 (x) nollakohdista saadaan nyt joukko I 1 eli virheiden paikat. Tästä saadaan σ(x) = σ 0 (x)σ 1 (x) ja virheiden arvot saadaan Lauseen tapaan jokaisella k I laskemalla ê k = α kω(α 1 k ) h k σ (α 1 k ). Huomaa, että ê k = 0, kun k I 0 \ Î0. Nämäkin on kuitenkin laskettava, sillä etukäteen ei tiedetä, minkä pyyhkiytymien paikalla pitäisi olla 0. Dekoodausalgoritmi on siis seuraavanlainen: 1. Määrätään I 0 ja σ 0 (x) = (1 α i x). i I 0 2. Määrätään û ja lasketaan ûĥt = (S 0,..., S r 1 ) ja S(x) = r 1 l=0 S l x l. 3. Lsketaan muunnettu syndromipolynomi S 0 (x) σ 0 (x)s(x) (mod x r ). 4. Ratkaistaan kongruenssista (21), eli σ 1 (x)s 0 (x) ω(x) (mod x r ), polynomit σ 1 (x) ja ω(x) Eukleideen algoritmin avulla (µ = r e 0, ν = r 1 µ) Määrätään virhekohtien joukko I 1 polynomin σ 1 (x) nollakohdista ja lasketaan σ(x) = σ 0 (x)σ 1 (x). 69
73 6. Lasketaan jokaisella i I = I 1 I 0 virhearvot ê i = α iω(α 1 i ) h i σ (α 1 i ). 7. Lasketaan c = û ê. Esimerkki Tarkastellaan [7, 2]-RS-koodia, jonka suunniteltu etäisyys on d = 6. Olkoon α kunnan F 8 primitiivialkio, jolle α 3 + α + 1 = 0. Tarkasteltavan koodin generoijapolynomi on tällöin g(x) = (x α)(x α 2 )(x α 3 )(x α 4 )(x α 5 ). Edellä olevan mukaan e 0 pyyhkiytymää ja e 1 virhettä saadaan korjattua, kun e 0 + 2e 1 5. Dekoodataan sana u = (α 4, α 3, α 6,, α 2, α 4, α 2 ). Yleisen alternanttikoodin merkinnöin nyt h i = α i = α i 1, joten 1 α... α 6 1 α 2... α 12 Ĥ =... 1 α 5... α 30 Edetään dekoodauksessa yllä kuvatulla tavalla. 70
74 6 Ryöppyvirheitä korjaavat koodit 6.1 Peruskäsitteitä Edellä 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ä 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. Lineaaristen koodien ryöppyvirheenkorjauskyvylle saadaan helposti seuraavat rajat. Lause (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. Todistus. a) Olkoon C [n, k]-koodi kunnan F q suhteen. Sellaisia joukon F n q vektoreita, joiden viimeiset n b komponenttia ovat 0, on q b kappaletta. Jos C paljastaa kaikki enintään b-pituiset ryöpyt, niin näiden vektorien on oltava eri sivuluokissa. Jos nimittäin a ja b ovat tällaisia vektoreita ja ovat samassa sivuluokassa, niin a b C, joten a b olisi enintään b-pituinen ryöppy eikä paljastuisi (koska se olisi koodisana). Siis sivuluokkien lukumäärä on q n k q b, joten n k b. 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 pysty korjaamaan kaikkia enintään b-pituisia ryöppyjä, sillä 0+e 1 = e+e 2. Siis koodi havaitsee 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. 71
75 Seuraavassa taulukossa on eräitä Reiger-optimaalisia binäärisiä syklisiä koodeja, jotka on etsitty tietokoneella. Generoijapolynomin kertoimet on annettu oktaalimuodossa. b n k g(x) Määritelmä Sykliseksi b-ryöpyksi sanotaan Määritelmän 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ä (tavallisen b-ryöpyn sykliset siirrot). Määritelmä Sykliseksi b-ryöppyvirheet korjaavaksi koodiksi sanotaan syklistä koodia, joka korjaa kaikki enintään b-pituiset sykliset ryöpyt. Lause Jos C on syklinen b-ryöppyvirheet korjaava [n, k]-koodi kunnan F q suhteen ja 1 k n 1, niin n(q 1) q n k b+1 1. 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ä b < n ). Näillä 2 kaikilla ja nollavektorilla 0 tulee olla eri syndromi, joten q n k n(q 1)q b Tämän perusteella q n k b+1 n(q 1) RS-koodeista johdetut koodit Olkoon α kunnan F p m primitiivialkio. Tarkastellaan pituutta n = p m 1 olevaa RS-koodia, jonka generoijapolynomi on d 1 g(x) = (x α i ). i=1 72
76 Tämän koodin minimietäisyys on d ja n k = d 1, sillä RS-koodit ovat maksimietäisyyskoodeja. Jos {β 1,..., β m } on kunnan F p m kanta kunnan Z p suhteen, niin jokaisella β F p m on yksikäsitteinen esitys β = b 1 β b m β m, b i Z p, ja saadaan vastaavuus β (b 1,..., b m ). Korvaamalla tämän vastaavuuden mukaisesti edellä olevan RS-koodin koodisanoissa jokainen komponentti m-pituisella Z p -kertoimisella vektorilla saadaan mn-pituinen lineaarinen koodi C kunnan Z p suhteen. 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, niin kaikki enintään b-pituiset ryöppyvirheet voidaan korjata. 6.3 Tulokoodit Määritelmä 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 ) Kronecker-tulolle pätevät seuraavat perusominaisuudet. Näiden todistaminen on harjoitustehtävänä Jos tulot AC ja BD ovat määriteltyjä, niin myös (A B)(C D) on määritelty ja (A B)(C D) = (AC) (BD). 2. (A B) T = A T B T. 3. Jos A + B on määritelty, niin (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. 73
77 A A n B = A 1 B.. A n B 6. Jos matriisin A rivit ovat lineaarisesti vapaat, samoin matriisin B rivit, niin myös matriisin A B rivit ovat lineaarisesti vapaat. 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. Määritelmä 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. Lause 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 selvä. 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. Lause 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ä. 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 dt 1 c 11 = c 33 + d T 1 c 11 + d T 2 c 22. c n1,1 c n1,2 74 c n1,3
78 n 1 = = d T i c ii, i=1 missä d i C 1 ja c ii C 2 kaikilla i = 1,..., n 1. 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 (ks. harjoitustehtävä 86). Olkoot koodin C i, i = 1, 2, generoijaja 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 Lause 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. 6.4 Kiedotut koodit Määritelmä 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 75
79 C sanoja c i = c i1 c i2... c in, i = 1,..., l, ja muodostetaan niistä matriisi c 1 c 11 c c 1n c 2. = c 21 c c 2n.... c l c l1 c l2... c ln Tällöin koodin C (l) koodisana on sana, joka saadaan lukemalla ylläoleva matriisi pystyriveittäin eli sana c 11 c c l1 c 12 c c l2... c 1n c 2n... c ln. 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 c l2 x 2l c 1n x (n 1)l + c 2n x (n 1)l 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 ). Lause 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 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 ). Todistus. Pituus, dimensio ja lineaarisuus olivat edellä. Jos koodin C (l) sanaan c 1 c 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 c 1n c = c 2,. c l 1,1 c l 1,2 c l 1,3... c l 1,n 76 c l 1
80 missä c tarkoittaa vektorin c yhden askelen syklistä siirtoa. 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). 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ä. 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 c 1n1. c k2 1c k 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ä viestisanoiksi koodille C 2. Näin saadaan koodin C 2 sanat d 11 d d 1n2,..., d n1 1d n 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. 77
81 7 Koodijonot hajaspektritekniikassa 7.1 Monen käyttäjän kanavat Olkoot n ja N luonnollisia lukuja ja K kanava, joka hyväksyy syötteeksi kokonaisluvut väliltä [ N, N]. Olkoon edelleen E binääriaakkosto {1, 1} Z. Oletetaan, että kanavalla K on N käyttäjää U 1, U 2,..., U N. Kullakin hetkellä käyttäjä U i lähettää viestin m i { 1, 0, 1}, missä m i = 0 tarkoittaa, että U i ei lähetä mitään. Kanavan läpi lähetetään summa s = m 1 +m 2 + +m N ja vastaanottajan epäkiitollisena tehtävänä on löytää luvut m 1, m 2,..., m N. Tämän mahdollistamiseksi kullekin käyttäjälle U i valitaan n-pituinen vektori u i E n. Käyttäjä U i koodaa viestinsä m i vektoriksi u i, jos m i = 1, m i u i = 0, jos m i = 0, u i, jos m i = 1. Kanavaan lähetetään avaruudessa R n laskettu summa s = m 1 u 1 + m 2 u 2 + +m N u N. Vastaanottaja laskee luvut m i = (s u i )/n, missä u v tarkoittaa avaruuden R n normaalia (euklidista) sisätuloa. Koska u k u k = n kaikilla k, niin nm i = s u i = m 1 u 1 u i + m 2 u 2 u i + + m N u N u i N = nm i + m k u k u i. k=1 k i Vastaanottaja pystyy tunnistamaan viestin m i, jos N k=1 k i m k u k u i < n 2. Tämä ehto toteutuu, jos tulot m k u k u i, k i, ovat pieniä eli, jos m k = 0 (ts. U k ei ole kanavalla) tai itseisarvot u k u i ovat pieniä. On siis tarpeellista löytää riittävän laajoja joukkoja C = {u 1, u 2,..., u N } E n, joille u i u k θ, kun i k, missä θ n on annettu vakio. Parametrin θ pienillä arvoilla kanavalla voi olla samanaikaisesti useita eri käyttäjiä. Vektoreina u i voidaan käyttää riittävän suuren Hadamardin matriisin rivejä (ks. luku 8). 78
82 Käytännössä tilanne ei kuitenkaan ole yllä kuvatun yksinkertainen, koska vektorit m i u i eivät useinkaan ole samassa vaiheessa, vaan tilanne on seuraavan kaltainen: U u 1 u 1 u 1 u 1... U u 2 u 2 u 2 u 2... Tällöin kanavassa kulkeekin summan s tilalla summa u = m 1 T t1 (u 1 ) + m 2 T t2 (u 2 ) + + m N T tn (u N ), missä vektori T t (x) on joko vektorin x = x 1 x 2... x n t askelen syklinen siirto tai t askelen negasyklinen siirto S t (x) = x n t+1,..., x n, x 1,..., x n t N t (x) = x n t+1,..., x n, x 1,..., x n t. Tällöin onkin etsittävä riittävän laajoja joukkoja C = {u 1,..., u N }, joille luvut S t (u i ) u j ja N t (u i ) u j, missä t = 0, 1,..., n 1, i, j = 1,..., N ja t 0, jos i = j, ovat pieniä. Useille joukoille lausekkeita S t (u i ) u j varten on olemassa hyviä teoreettisia tarkastelumenetelmiä, sen sijaan lausekkeiden N t (u i ) u j teoreettinen arviointi on ongelmallista. Käytännössä tarvittavat joukot konstruoidaan kahdessa vaiheessa: 1. Konstruoidaan analyyttisin menetelmin joukkoja {u 1,..., u N }, joille lausekkeet S t (u i ) u j ovat pieniä. 2. Testataan lausekkeiden N t (u i ) u j suuruutta numeerisin menetelmin. 7.2 Korrelaatioista Määritelmä Avaruuden E n vektoreiden x = (x 0, x 1,..., x n 1 ) ja y = (y 0, y 1,..., y n 1 ) ristikorrelaatioksi kutsutaan lukua C x,y (t) := x S t (y) = i Zn x i y i+t, missä t Z + ja indeksit lasketaan modulo n. Ristikorrelaatiota C x (t) := C x,x (t) = x S t (x) = i Zn x i x i+t sanotaan vektorin x autokorrelaatioksi. 79
83 Määritelmä Kun n N ja θ R, 0 θ < n, niin merkinnällä M(n, θ) tarkoitetaan suurinta sellaisen joukon A E n kertalukua, jolle a) C x,y (t) θ kaikilla t = 0, 1,..., n 1, x, y A ja x y b) C x (t) θ kaikilla t = 1, 2,..., n 1 ja x A. Lukua M(n, θ) voidaan arvioida käyttämällä hyväksi tunnettuja arvioita luvulle m(n, θ), joka määritellään seuraavasti: m(n, θ) on suurin sellaisten joukkojen A E n kertaluvuista, joille a b θ kaikilla a, b A ja a b. Lause M(n, θ) m(n, θ)/n. Todistus. Oletetaan, että A toteuttaa ehdot a) ja b) ja A = M(n, θ). Tällöin A = {S t (x) x A, t = 0, 1,..., n 1} on kertalukua n A ja ehtojen a) ja b) nojalla a b θ kaikilla a, b A ja a b. Tästä seuraa, että nm(n, θ) = n A m(n, θ). 7.3 Additiivinen karakteeri Olkoon F = F q, q = p k, ja K = F q m. Määritelmän mukaan alkion x K jälki kunnan F suhteen on Tr(x) = Tr K F (x) = m 1 i=0 x qi = x + x q + x q2 + + x qm 1. Lauseessa osoitettiin eräitä jäljen perusominaisuuksia. Seuraavassa käytetään absoluuttista jälkeä eli jälkeä Tr F Z p (x) = x + x p + + x pk 1. Olkoon lisäksi ζ = ζ p = e 2πi/p C kompleksinen primitiivinen p:s ykkösen juuri. Määritelmä Kuvausta χ: F q C, χ(a) = ζ Tr(a), missä ζ = e 2πi/p, sanotaan kunnan F q (kanoniseksi) additiiviseksi karakteeriksi. Additiivisen karakteerin nimitys johtuu siitä, että χ(a + b) = ζ Tr(a+b) = ζ Tr(a)+Tr(b) = χ(a)χ(b) kaikilla a, b F q. (22) Täten χ on ryhmähomomorfismi kunnan F q additiiviselta ryhmältä kompleksitason yksikköympyrälle (jossa operaationa on kertolasku). Jos p = 2, niin ζ = 1. Tällöin kaikilla a F 2 m { χ(a) = ( 1) Tr(a) 1, jos Tr(a) = 0, = 1, jos Tr(a) = 1. 80
84 Lause Jos χ on kunnan F q kanoninen additiivinen karakteeri ja a F q, niin { q, jos a = 0, χ(ax) = x F q 0, jos a 0. Todistus. Koska Tr(0) = 0, niin väite pätee tapauksessa a = 0. Kun a 0 niin kuvaus F q F q, x ax on bijektio. Koska jälki on surjektio (ks. Lause b), niin on olemassa sellainen b F q, että Tr(ab) = 1. Tällöin χ(ab) = ζ 1 = ζ 1. Kun x käy läpi kunnan F q alkiot, samoin käy b + x, joten käyttämällä yhtälöä (22) saadaan S := x Fq χ(ax) = x Fq χ(a(x + b)) = x Fq χ(ax)χ(ab) = ζ x Fq χ(ax) = ζs. Koska ζ 1, niin S = Goldin jonoista Konstruoidaan nyt edellä esitettyjen tulosten avulla jonoja, joilla on hajaspektritekniikassa tarvittavat ominaisuudet. Lause Olkoon m 3 pariton kokonaisluku ja q = 2 m. Olkoon χ kunnan F q additiivinen karakteeri ja d = 2 e + 1, missä e Z +, e < m ja syt(e, m) = 1. Olkoon S(β, γ) = x Fq χ(βx d + γx) kaikilla β, γ F q. Jos β 0 tai γ 0, niin S(β, γ) 2q. Todistus. Jos β = 0, niin Lauseen mukaan S(0, γ) = 0. Oletetaan nyt, että β 0. Tällöin S(β, γ) 2 = χ(βx d + γx) χ(βy d + γy) x Fq y Fq = χ(βx d + γx)χ(βy d + γy) x Fq y F q = χ(β(x d + y d ) + γ(x + y)). x Fq y F q 81
85 Merkitään z = x + y, jolloin y d = (z x) d = (x + z) 2e +1 = (x + z)(x 2e + z 2e ) = x d + x d 1 z + z d 1 x + z d ja S(β, γ) 2 = χ(βx d 1 z + βxz d 1 + βz d + γz). x Fq y F q Lauseen d-kohdan mukaan χ(a 2 ) = χ(a) kaikilla a F q. Täten χ(a d 1 ) = χ(a 2e ) = χ(a), χ(βxz d 1 ) = χ(β d 1 x d 1 z (d 1)2 ), χ(βx d 1 z + βxz d 1 + βz d + γz) = χ(βz d + γz)χ(βx d 1 z)χ(βxz d 1 ) = χ(βz d + γz)χ(βz(β d 2 z d(d 2) + 1)x d 1 ). Siis S(β, γ) 2 = z Fq χ(βz d + γz) x Fq χ(βz(β d 2 z d(d 2) + 1)x d 1 ). Kun x käy läpi kunnan F q alkiot, samoin käy myös x d 1 = x 2e. Siten Lauseen nojalla yllä sisäsumma on q = 2 m, kun βz(β d 2 z d(d 2) + 1) = 0, ja 0 muulloin. Nyt χ(βz d + γz) = 1, joten edellä olevan ja kolmioepäyhtälön mukaan S(β, γ) 2 (N + 1)q, missä N on polynomin β d 2 z d(d 2) + 1 nollakohtien lukumäärä kunnassa F q. Riittää enää osoittaa, että N 1. Olkoon α kunnan F q primitiivialkio ja olkoot α k ja α h, 0 h < k q 2, polynomin β d 2 z d(d 2) + 1 kaksi eri nollakohtaa. Tällöin joten β d 2 α kd(d 2) + 1 = 0 ja β d 2 α hd(d 2) + 1 = 0, Tämä on mahdollista vain, jos α kd(d 2) = α hd(d 2) α (k h)d(d 2) = 1. (q 1) (k h)d(d 2) (2 m 1) (k h)(2 2e 1). Koska syt(e, m) = 1 ja m on pariton, niin syt(2e, m) = 1. Harjoitustehtävän 28 (ks. myös tehtävä 96) nojalla syt(2 m 1, 2 2e 1) = 1, joten on oltava (2 m 1) (k h), eli (q 1) (k h). Tämä on ristiriita, joten N 1 ja S(β, γ) 2 2q. 82
86 Määritelmä Olkoon n = 2 m 1 ja d = 2 e +1, missä m, e Z +, m on pariton, e < m ja syt(e, m) = 1. Olkoon χ kunnan F 2 m = F n+1 additiivinen karakteeri ja α kunnan F 2 m primitiivialkio. Alkion β F q määräämäksi Goldin (m, e)-jonoksi sanotaan joukon { 1, 1} n vektoria (x 0, x 1,..., x n 1 ), missä x i = χ(βα di + α i ). Lause Olkoot x = (x 0, x 1,..., x n 1 ) ja y = (y 0, y 1,..., y n 1 ) alkioiden β ja γ määräämät (n-pituiset) Goldin (m, e)-jonot, missä n = 2 m 1. Tällöin kaikilla t = 1, 2,..., n 1 ja tapauksessa β γ myös arvolla t = 0 pätee C x,y (t) 1 + 2(n + 1) = m+1. Todistus. Ristikorrelaation C x,y (t) määritelmän mukaan (merkinnät kuten edellä) C x,y (t) = i Zn x i y i+t = i Zn χ(βα di + α i )χ(γα d(i+t) + α i+t ) = i Zn χ((β + γα dt )α di + (1 + α t )α i ) = 1 + x F 2 m χ((β + γα dt )x d + (1 + α t )x) = 1 + S(β + γα dt, α t + 1). Jos 1 t n 1, niin α t Jos β γ ja t = 0, niin β+γα 0 = β+γ 0. Lauseen nojalla C x,y (t) m = 1 + 2(n + 1). 83
87 8 Hadamardin matriisit ja koodit Tähän mennessä käsitellyt koodit ovat olleet lineaarisia. Kappaleessa 8.2 esiteltävät Hadamardin koodit ovat esimerkkejä epälineaarisista koodeista. Ne toteuttavat lisäksi eräitä koodirajoja ja ovat siten tietyssä mielessä parhaita mahdollisia. 8.1 Hadamardin matriisit Tarkastellaan aluksi lyhyesti Hadamardin matriiseja, joiden avulla Hadamardin koodeja konstruoidaan. Määritelmä n-riviseksi Hadamardin matriisiksi sanotaan sellaista pelkästään kokonaisluvuista 1 ja 1 koostuvaa n n-matriisia H, jolle HH T = ni. (23) Hadamardin matriisin H kahden eri rivin sisätulo on 0 ja jokaisen rivin sisätulo itsensä kanssa on n. Täten kertoimella 1 n skaalatut rivit ovat ortonormaalit. Yhtälön (23) mukaan H 1 = 1 n HT, joten Hadamardin matriisit ovat kääntyviä. Kertomalla yhtälö (23) vasemmalta matriisin H käänteismatriisilla ja oikealta matriisilla H saadaan H T H = ni. Matriisin H sarakkeilla on täten samat ominaisuudet kuin sen riveillä. Jos matriisin H jokin rivi tai sarake kerrotaan luvulla 1, on kahden eri rivin tai sarakkeen sisätulo edelleen nolla ja samoin jokaisen rivin tai sarakkeen sisätulo itsensä kanssa on n, joten myös näin saadaan Hadamardin matriisi. Näin H voidaan muuntaa sellaiseksi, että sen ensimmäisen rivin ja ensimmäisen sarakkeen jokainen alkio on 1. Tällaista Hadamardin matriisia sanotaan normalisoiduksi. Samoin nähdään, että rivien tai sarakkeiden permutoinnin jälkeenkin Hadamardin matriisi säilyy Hadamardin matriisina. Se, mitä rivilukua n olevia H-matriiseja on olemassa, on osittain avoin. Seuraavassa osoitetaan, että jokaisen H-matriisin riviluku on 1, 2 tai luvun 4 monikerta, mutta edelleen on avoimena kysymys siitä, löytyykö n-rivistä Hadamardin matriisia kaikilla n = 4k, k = 1, 2,... Pienin 4k, jota vastaavaa Hadamardin matriisia ei ole löydetty, on = 668. Huomaa, että 1- ja 2-rivinen Hadamardin matriisi löytyy: H 1 = [1], H 2 = [ ]. 84
88 Lause Jos on olemassa n-rivinen Hadamardin matriisi, niin n = 1, 2 tai luvun 4 monikerta. Todistus. Voidaan olettaa, että n 3. Olkoon H normalisoidussa muodossa oleva n-rivinen Hadamardin matriisi. Permutoimalla sarakkeita sopivasti kolmeksi ensimmäiseksi riviksi saadaan }... {{ 1 } i kpl }... {{ 1 } j kpl }... {{ 1 } k kpl }... {{ 1 } l kpl Laskemalla näiden rivien välisiä pistetuloja saadaan seuraavat yhtälöt: (rivi 1) (rivi 2) = 0 = i + j k l = 0, (24) (rivi 1) (rivi 3) = 0 = i j + k l = 0, (25) (rivi 2) (rivi 3) = 0 = i j k + l = 0. (26) Laskemalla yhtälöt (24) ja (25) yhteen saadaan i = l. Vastaavasti yhtälöistä (25) ja (26) saadaan i = j sekä yhtälöistä (24) ja (26) i = k. Lisäksi i + j + k + l = n, joten n = 4i. Tarkastellaan nyt kahta menetelmää Hadamardin matriisien konstruoimiseksi. Ensimmäinen menetelmä nojaa siihen huomioon, että jos H n on n-rivinen Hadamardin matriisi, niin [ ] Hn H H = n H n H n on 2n-rivinen Hadamardin matriisi: [ ] [ HH T Hn H = n H T n Hn T H n H n Hn T [ ] 2nIn 0 = n n = 2nI 0 n n 2nI 2n. n H T n ] [ ] 2Hn Hn = T 0 n n 0 n n 2H n Hn T Lähtemällä liikkeelle matriisista H 1 = [1] saadaan aikaan n-rivinen Hadamardin matriisi aina, kun n = 2 i, i = 0, 1,...: [ ] H 2 =, H = , jne
89 Toinen tapa konstruoida Hadamardin matriiseja on hyödyntää äärellisen kunnan neliöiden jakautumista. Olkoon q parittoman alkuluvun potenssi. Jos α on kunnan F q primitiivialkio, niin alkion β Fq esitysmuodossa β = α i olevaa eksponenttia i {0,..., q 2} sanotaan alkion β α-kantaiseksi indeksiksi ja merkitään i = ind α β = ind β. Määritellään kunnan F q Legendren symboli ψ seuraavasti: { 0, jos a = 0, ψ(a) = ( 1) ind a, jos a 0. Täten ψ(a) = 1, jos a 0 on neliö, ja ψ(a) = 1, jos a 0 on epäneliö. Legendren symboli ψ on myös multiplikatiivinen karakteeri, sillä ψ(x)ψ(y) = ( 1) ind x+ind y = ( 1) ind xy = ψ(xy) kaikilla x, y F q. Koska ( 1) 2 = 1, niin 1 = α q 1 2 ja ψ( 1) = ( 1) q 1 2 eli ψ( 1) = { 1, jos q = 4k + 1, 1, jos q = 4k 1. (27) Lause Jos c 0, niin Todistus. Koska ψ(0) = 0, niin b F q ψ(b)ψ(b + c) = b F q ψ(b)ψ(b + c) = 1. ( b + c ) ψ(b 2 )ψ b b F q = b F q ( b + c ψ b Koska c 0, niin b+c 1. Jos b+c = d+c, niin db + dc = bd + bc, joten dc = bc b b d eli d = b. Siten b+c käy läpi joukon F b q \ {1} alkiot, kun b käy läpi joukon Fq alkiot. Täten ψ(b)ψ(b + c) = ψ(z) = 1, b F q ). z F q\{1} sillä joukossa Fq on neliöitä ja epäneliöitä yhtä monta ja ylläolevassa summassa on mukana jokainen epäneliö ja alkiota 1 lukuunottamatta jokainen neliö. Näiden tulosten avulla voidaan esittää Paleyn konstruktio Hadamardin matriisien konstruoimiseksi. Tämä menetelmä on käyttökelpoinen, kun n (= 4i) on muotoa n = q + 1, missä q on parittoman alkuluvun potenssi. 86
90 Olkoon F q = {a 0, a 1,..., a q 1 }, missä a 0 = 0 ja a 1 = 1. Muodostetaan Jacobstahlin matriisi P = [p ij ] q q määrittelemällä p ij = ψ(a j a i ). Nyt q on muotoa 4k 1, joten yhtälön (27) nojalla ψ( 1) = 1. Täten p ij = ψ(a j a i ) = ψ( 1)ψ(a i a j ) = ψ(a i a j ) = p ji, ja P on vinosymmetrinen eli P T = P. Lause Olkoon J sellainen q q-matriisi, jonka jokainen alkio on 1. Tällöin P J = JP = 0 ja P P T = qi q J. Todistus. Matriisin P kullakin rivillä ja sarakkeella esiintyy jokainen ψ(a), a F q. Täten jokaisella rivillä ja sarakkeella on yksi 0 ja q 1 kappaletta sekä 2 alkiota 1 että alkiota 1. Täten P J = JP = 0. Olkoon P P T = [r ij ] q q, jolloin q 1 q 1 r ij = p ik p jk = ψ(a k a i )ψ(a k a j ). k=0 k=0 Kun i = j, niin r ij = q 1 k=0 ψ(a k a i ) 2 = q 1. Kun i j, merkitään b = a k a i, jolloin a k a j = a k a i + a i a j = b + c, missä c = a i a j 0 ei riipu indeksistä k. Lauseen mukaan r ij = b F q ψ(b)ψ(b + c) = 1. Olkoon [ ] 1 1 H = 1 T, P I q missä 1 on q-pituinen vektori, jonka jokainen koordinaatti on 1. Tällöin [ ] [ ] HH T = 1 T P I q 1 T P T I q [ ] q (P = T I q ) 1 T + (P I q )1 T 1 T 1 + (P I q )(P T I q ) [ ] q = 0 T J + P P T P P T + I q [ ] q = 0 T qi q + I q = (q + 1)I q+1. Täten H on Hadamardin matriisi. Näin konstruoitua normalisoitua Hadamardin matriisia H sanotaan Paley-tyyppiseksi Hadamardin matriisiksi. 87
91 Esimerkki Olkoon q = 3, jolloin F 3 = {0, 1, 2} = {a 0, a 1, a 2 }. Tällöin ψ(0) = 0, ψ(1) = 1, ψ(2) = 1 ja ψ(a 0 a 0 ) ψ(a 1 a 0 ) ψ(a 2 a 0 ) ψ(0) ψ(1) ψ(2) P = ψ(a 0 a 1 ) ψ(a 1 a 1 ) ψ(a 2 a 1 ) = ψ(2) ψ(0) ψ(1) ψ(a 0 a 2 ) ψ(a 1 a 2 ) ψ(a 2 a 2 ) ψ(1) ψ(2) ψ(0) = Kun q = 7, niin kunnan F q = F 7 neliöt ovat 1, 2 ja 4 sekä epäneliöt 3, 5 ja 6. Siten ψ(0) ψ(1) ψ(2) ψ(3) ψ(4) ψ(5) ψ(6) ψ(6) ψ(0) ψ(1) ψ(2) ψ(3) ψ(4) ψ(5) P = ψ(1) ψ(2) ψ(3) ψ(4) ψ(5) ψ(6) ψ(0) = Olkoon q = 9 ja α kunnan F 9 primitiivialkio, jolle α 2 + α 1 = 0. Tällöin F 9 = {a 0, a 1,..., a 8 } = { 0, 1, 2, α, 1 + α, 2 + α, 2α, 1 + 2α, 2 + 2α } = { 0, α 0, α 4, α 1, α 7, α 6, α 5, α 2, α 3 }. Kunnan F 9 neliöt ovat {1, α 2, α 4, α 6 } ja epäneliöt {α, α 3, α 5, α 7 }, joten P =
92 Vastaavat Hadamardin matriisit ovat H 4 = , H 8 = Viimeinen tapaus ei anna Hadamardin matriisia, sillä q + 1 = = 10 ei ole jaollinen luvulla Hadamardin koodit Seuraavassa (n, M, d)-koodilla tarkoitetaan, kuten luvussa 1, n-pituista koodia, jonka koodisanojen lukumäärä on M ja minimietäisyys d. Esimerkiksi (lineaarinen) [n, k, d]-koodi kunnan F q suhteen on edellä mainittua merkintää käyttäen (n, q k, d)-koodi. Koodausteorian keskeisimpiä ongelmia on kolmannen parametrin optimaalinen löytäminen, kun kaksi muuta on annettu. Hadamardin koodeista saadaan tässä mielessä hyviä koodeja. Olkoon H n n-rivinen normalisoitu Hadamardin matriisi. Jos luvun 1 tilalle kirjoitetaan 0 ja luvun 1 tilalle 1, saadaan binäärinen Hadamardin matriisi A n. Koska matriisin H n rivit ovat ortogonaaleja, niin matriisin A n jokaisen kahden eri rivin Hamming-etäisyys on n 2. Matriisista A n saadaan kolme Hadamardin koodia seuraavasti: 1. Poistetaan matriisin A n ensimmäinen sarake, jolloin saadaan riveistä muodostuva (n 1, n, n/2)-koodi A n. 2. Lisätään koodiin A n sanoiksi matriisin A n edellä olevaan tapaan lyhennettyjen rivien komplementit. Näin saadaan (n 1, 2n, n/2 1)-koodi B n. 3. Otetaan koodisanoiksi matriisin A n rivit ja niiden komplementit, jolloin muodostuu (n, 2n, n/2)-koodi C n. Esimerkki Käyttämällä Esimerkissä saatua Paley-tyyppistä 4-89
93 ja 8-rivistä Hadamardin matriisia saadaan matriiseista A 4 = ja A 8 = koodit A 4 = , B 4 = , A 8 = , B 8 = Hadamardin koodit eivät yleensä ole lineaarisia. Ne ovat kombinatorisesti parhaita siinä mielessä, että niiden avulla voidaan muodostaa koodeja, joille pätee yhtäsuuruus Plotkin-rajassa (ks. harjoitustehtävä 92). Tämän ns. Levenšteinin lauseen (ks. harjoitustehtävä 93) todistuksessa voidaan käyttää hyväksi seuraavia konstruktioita: 1. Koodin A n nollalla alkavat koodisanat muodostavat (n 2, n/2, n/2)- koodin A n, jos niiden ensimmäinen kirjain poistetaan. 2. Olkoon C i (n i, M i, d i )-koodi, i = 1, 2. Esitetään koodi C i edellä olevaan tapaan matriisina laittamalla sen sanat matriisin vaakariveiksi. Asetetaan a kappaletta koodeja C 1 vierekkäin ja sen jälkeen b kappaletta koodeja C 2. 90
94 Poistetaan M 2 M 1 koodin C 2 viimeistä riviä, jos M 1 < M 2, ja M 1 M 2 koodin C 1 viimeistä riviä, jos M 1 > M 2. Näin saadaan (n, M, d)-koodi, missä n = an 1 + bn 2, M = min{m 1, M 2 } ja d ad 1 + bd 2. Tälle koodille käytetään merkintää ac 1 bc 2. Esimerkiksi Koodeista C 1 = ja C 2 = saadaan koodi C 1 1C 2 =
95 9 Koodirajoista 9.1 Peruskäsitteitä Olkoon F aakkosto, jonka kertaluku on q. Kuten johdannossakin, (n, K, d)- koodilla tarkoitetaan n-pituista koodia, jonka kertaluku on K ja minimietäisyys d. Seuraavassa tarkastellaan kertaluvun K ylärajoja, kun n ja d on kiinnitetty, sekä minietäisyyden d ylärajoja, kun n ja K on kiinnitetty. Määritellään tätä varten suureet m(n, d) = m q (n, d) = max{k on olemassa (n, K, d)-koodi} d(n, K) = d q (n, K) = max{d on olemassa (n, K, d)-koodi}. ja Jos a F n, olkoot B(a, r) = {x F n d(x, a) r} S(a, r) = {x F n d(x, a) = r} ja a-keskinen r-säteinen pallo ja sen pinta. Olkoon lisäksi B r (n) pallon B(a, e) alkioiden lukumäärä ja S r (n) sen pinnan alkioiden lukumäärä, jolloin ( ) n r ( ) n S r (n) = (q 1) r ja B r (n) = (q 1) k. r k Jos (n, K, d)-koodin jokaisesta koodisanasta poistetaan ennalta valitut d 1 komponenttia saadaan (n d + 1, K, 1)-koodi. Siten K q n d+1 ja saadaan Singleton-raja m(n, d) q n d+1. Olkoon C (n, K, d)-koodi ja r = d 1. Tällöin koodisanakeskiset r-säteiset 2 pallot ovat erilliset, joten q n = F n c C k=0 B(c, r) = c C B(c, r) = C B r (n) = K B r (n). Siten K qn B r (n) ja saadaan Hamming-raja eli pallopakkausraja m(n, d) qn B r (n). Koodin C informaatiosuhde R on R = 1 n log q K, joten K = q Rn. Näin saadaan Hamming-rajalle yhtäpitävä muoto B r (n) q (1 R)n. 92
96 9.2 Plotkin-raja Seuraavassa esitettävä Plotkin-raja perustuu koodisanojen keskimääräisen etäisyyden arvioimiseen. Avaruuden F n osajoukon X kokonaisetäisyys d tot x määritellään yhtälöllä d tot X = d(a, b) a X ja keskietäisyys yhtälöllä d av X = b X d tot X X ( X 1). (28) Koska tällöin keskietäisyys on joukon X eri sanojen etäisyyksien keskiarvo, niin d min X d av X. Lemma Jos x 1, x 2,..., x n ovat reaalilukuja, niin n x 2 i 1 ( n ) 2. x i n i=1 Yhtäsuuruus pätee täsmälleen silloin, kun kuvut x i ovat yhtäsuuria. Todistus. Harjoitustehtävä 97. Kiinnitetään aakkoston F alkioiden numerointi: α 1, α 2,..., α q. Kun X F n, määritellään x ij joukon X niiden alkioiden lukumääräksi, joiden i:s komponentti on α j. Tällöin i=1 q x ij = X kaikilla i = 1,..., n. j=1 Lemma Jos X F n, niin d tot X = n X 2 n q i=1 j=1 x 2 ij. 93
97 Todistus. d tot X = = = n {(a, b) X 2 a i b i } i=1 n i=1 n q {(a, b) X 2 a i = α j b i } j=1 i=1 j=1 = n X 2 q x ij ( X x ij ) = X n q i=1 j=1 x 2 ij. n q x ij i=1 j=1 n q i=1 j=1 x 2 ij Tämän lemman seurauksena saadaan Plotkin-raja. Lause (Plotkin-raja). Jos K > 1, niin d(n, K) (q 1)nK q(k 1). Todistus. Olkoon C (n, K, d)-koodi. Tällöin K = C ja valitsemalla yhtälössä (28) ja Lemmoissa ja X = C saadaan d tot C C ( C 1) = 1 d min C d av C = K(K 1) 1 (nk 2 n ) K(K 1) q K2 = nk K 1 = (q 1)nK q(k 1). ( nk 2 ( 1 1 q Tämä pätee kaikille pituutta n ja kertalukua K oleville koodeille, joten saatiin väite. 9.3 Elias-raja Plotkin-rajan yhteydessä arvioitiin koodin minimietäisyyttä keskietäisyyden avulla. Jos koodisanojen etäisyydet ovat hyvin erisuuria, tämä arvio on ilmeisen epätarkka. Tämä epätarkkuus voidaan välttää tarkastelemalla vain lähekkäin sijaitsevia koodisanoja. Lemmassa todetaan, että avaruuden F n erääseen pallon pintaan kuuluu paljon koodisanoja, minkä jälkeen Lemmasta seuraa, että näiden sanojen keskietäisyys on pieni. 94 ) n i=1 q j=1 x 2 ij )
98 Lemma Jos n-pituisen koodin C informaatiosuhde on vähintään R (eli koodisanojen lukumäärä on vähintään q Rn ), niin avaruuden F n jonkin r-säteisen pallon pintaan kuuluu vähintään S r (n)/q n(1 R) koodin C alkiota. Täsmällisemmin ilmaistuna: on olemassa sellainen x F n, että S(x, r) C KS r(n) q n. Todistus. Ehdon d(c, x) = r toteuttavien parien (c, x) C F n lukumäärä on S r (x) C = S r (c) = KS r (n). x F n c C Koska ylläolevassa summassa on F n = q n alkiota, niin löytyy sellainen x F n, että S r (x) C KSr(n). q n Lemma Jos n-pituinen kertalukua K oleva koodi C sisältyy avaruuden F n johonkin pallonpintaan S(x, r), niin ( ) d av C 2. Kr K 1 qr (q 1)n Todistus. Olkoon F = {α 1, α 2,..., α q } ja olkoon väitteessä esiintyvän vektorin x i:s koordinaatti α ji. Olkoon x ij niiden koodisanojen lukumäärä, joiden i:s koordinaatti on α j. Valitsemalla X = C Lemmassa saadaan n q Koska C S(x, r), niin d tot C = nk 2 Kr = c C d(c, x) = Tämän avulla saadaan n n q x iji = x ij i=1 i=1 j=1 n i=1 n x 2 ij i i=1 i=1 x j=1 j j i n d(c i, α ji ) = i=1 c C q x ij = j=1 j j i 2 ij. n i=1 q x ij. j=1 j j i n K Kr = K(n r). i=1 Lemman ja näiden nojalla d tot C nk 2 1 ( n ) 2 1 ( n x i n n(q 1) i=1 = nk 2 1 n K2 (n r) 2 i=1 q x ij j=1 j j i ) 2 1 n(q 1) K2 r 2 = K 2 r 95 ( 2 qr ). (q 1)n
99 Jakamalla kumpikin puoli luvulla K(K 1) saadaan väite. Jos C on (n, K, d)-koodi, niin Lemman nojalla on olemassa sellainen x F n, että S(x, r) C KS r(n) q n. Lemmaa voidaan nyt soveltaa joukkoon S(x, r) C. 9.4 Gilbert Varšamov-raja Edellä on tarkasteltu koodin minimietäisyyden tai kertaluvun ylärajoja. Gilbert Varšamov-raja puolestaan osoittaa, että tietyillä parametrien n, d min ja R arvoilla on olemassa koodeja. Seuraava Gilbertin lause osoittaa, että jokaista koodia voidaan suurentaa minimietäisyys säilyttäen tiettyyn rajaan saakka. Lause Jos C on n-pituinen koodi, jonka minimietäisyys on d, niin C sisältyy n-pituiseen koodiin, jonka minimietäisyys on d ja kertaluku vähintään q n B d 1 (n). Tarkastellaan seuraavaksi lineaarista [n, k]-koodia, jonka aakkosto F on q äärellinen kunta F q, minimietäisyys d ja kertaluku pienempi kuin n. B d 1 (n) Lauseen nojalla on olemassa sellainen x Fq n, että d(x, c) d jokaisella c C. Joukko F q x + C = {ax + c a F q, c C} on [n, k + 1]-koodi, jonka minimietäisyys on d. Näin ollen pätee: Lause Jos n-pituisen lineaarisen koodin C minimietäisyys on d, niin C sisältyy n-pituiseen lineaariseen koodiin, jonka minimietäisyys on d ja kertaluku vähintään q n B d 1 (n). 96
100 Koodausteorian harjoitustehtäviä, syksy Binääristä koodia C = {(x 1, x 2,..., x n ) Z n 2 x 1 + x x n = 0} sanotaan pituutta n olevaksi parillispainoiseksi koodiksi. Määrää C ja koodin informaatiosuhde. 2. Osoita, että Hamming-etäisyys d(x, y) toteuttaa kolmioepäyhtälön d(x, y) d(x, z) + d(z, y) kaikilla x, y, z F n. 3. Määritellään x y = (x 1 y 1, x 2 y 2,..., x n y n ), kun x = (x 1,..., x n ) ja y = (y 1,..., y n ). Osoita, että jokaisella x, y F2 n pätee a) wt(x + y) = wt(x) + wt(y) 2 wt(x y), b) wt(x) wt(y) wt(x + y) wt(x) + wt(y). 4. Kertaa algebran kurssista Eukleideen algoritmi suurimman yhteisen tekijän määräämiseksi kokonaisluvuille ja polynomirenkaan F[x] polynomeille, kun F on kunta. Määrää syt(242, 186) ja renkaan Z 2 [x] polynomien f(x) = x ja g(x) = x 4 + x 3 + x + 1 suurin yhteinen tekijä. 5. Osoita, että äärellinen kokonaisalue on kunta. 6. Kertaa algebran kurssista mitä tarkoitetaan kuntien välisellä isomorfialla. Osoita, että kunnan suppein alikunta on isomorfinen joko kunnan Q tai kunnan Z p (eräällä alkuluvulla p) kanssa. 7. Olkoon p alkuluku ja g Z p [x] astetta m 1 oleva jaoton polynomi. Osoita, että jäännösluokkarengas Z p [x]/ g(x) on kunta, jossa on p m alkiota. 8. Muodosta kunnat F 8, F 9 ja F 25. Määrää kussakin tapauksessa primitiivialkio. 9. Tutki polynomien x ja x 2 2 jaollisuutta renkaissa Q[x], R[x], C[x], Z 2 [x] ja Z 3 [x]. 10. Laske kunnassa F 16 (1001) (1011) ja (1111) 1/ , missä alkiot on esitetty primitiivialkion α, α 4 + α + 1 = 0, avulla. Määrää jokin renkaan F 16 [x] jaoton toisen asteen polynomi. 1
101 11. Määrää kunnan F 16 primitiivialkiot. Osoita, että polynomi x 4 +x 3 +x 2 + x + 1 on jaoton renkaassa Z 2 [x], mutta ei ole primitiivinen polynomi. 12. Konstruoi kaksi kuntaa F 8 käyttämällä kahta eri polynomia ja osoita, että nämä kunnat ovat isomorfiset. 13. Oletetaan, että G on Abelin ryhmä. Olkoot g, h G vastaavasti kertalukua r ja s olevat alkiot. Osoita, että a) jos g n = 1, niin r n; b) jos syt(r, s) = 1, niin alkion gh kertaluku on rs. 14. Olkoon C [6, 3]-koodi kunnan F 4 suhteen ja olkoon sen generoijamatriisi α α G = α 1 α, α α 1 missä α 2 + α + 1 = 0. Onko C = C? 15. Olkoot C 1 ja C 2 binäärisiä lineaarisia koodeja, joiden generoijamatriisit ovat [ ] G 1 =, G = Määrää kummankin koodin minimietäisyys ja etsi molemmille tarkistusmatriisi. 16. Olkoon C sellainen lineaarinen koodi kunnan F 3 suhteen, jonka generoijamatriisi on [ ] a) Lausu generoijamatriisi systemaattisessa muodossa. b) Määrää koodille C tarkistusmatriisi. c) Dekoodaa sanat 2121, 1201 ja
102 17. Olkoon koodilla C i kunnan F i suhteen generoijamatriisi G i, i = 1, 2. Etsi koodille C i tarkistusmatriisi ja määrää minimietäisyys, kun F 1 = F 5, ja G 1 = , F 2 = F 3, ja G 2 = Olkoon α kunnan F 4 primitiivialkio, jolle α 2 + α + 1 = 0. Olkoon C lineaarinen koodi kunnan F 4 suhteen, jonka generoijamatriisi on α 2 α α α Määrää koodin C minimietäisyys ja laadi kaavio sivuluokkien johtajista ja syndromeista. Dekoodaa sana (0110α 2 0). 19. Määrää 5-pituinen Hammingin koodi kunnan F 4 suhteen. Mikä on tämän koodin generoijamatriisi? 20. Määrää Hammingin [7, 4]-koodin ja sen laajennuksen duaalikoodi. 21. Muodosta Hammingin koodin H 3 (3) generoija- ja tarkistusmatriisi. 22. Binäärisen Hammingin koodin H r duaalikoodi on simpleksikoodi S r. Osoita, että S r on [2 r 1, r, 2 r 1 ]-koodi. Osoita edelleen, että kahden eri koodisanan välinen etäisyys on 2 r Olkoot koodit C i (n, M i, d i )-koodeja, i = 1, 2. Määritellään uusi koodi C asettamalla C = {(u, u + v) u C 1, v C 2 }. Osoita, että C on (2n, M 1 M 2, d)-koodi, missä d min{2d 1, d 2 }. Totea, että jos erityisesti yllä C i on (lineaarinen) [n, k i, d i ]-koodi, niin C on [2n, k 1 + k 2, min{2d 1, d 2 }]-koodi. 24. Osoita, että R(r + 1, m + 1) = {(u, u + v) u R(r + 1, m), v R(r, m)}. 3
103 25. Tarkastellaan 16-pituisia Reedin Mullerin koodeja R(1, 4) ja R(2, 4) (vrt. luentoesimerkki). a) Käytetään koodia R(1, 4). Dekoodaa sana b) Käytetään koodia R(2, 4). Dekoodaa sana Olkoon C binäärinen [n, k]-koodi ja y F2 n. Osoita, että { ( 1) x y 2 k, jos y C, = 0, jos y / C. x C Tässä 1 Z ja tulon x y F 2 = {0, 1} arvo tulkitaan vastaavaksi kokonaisluvuksi. 27. Määrää Hammingin [7, 4]-koodin painopolynomi duaalikoodin painopolynomin avulla. 28. Olkoot d, m N. Osoita, että Osoita tämän avulla, että d m jos ja vain jos (x d 1) (x m 1). syt(x m 1, x n 1) = x syt(m,n) 1. Huomaa, että tämä pätee erityisesti silloin, kun x 2 on kokonaisluku. 29. Olkoon q alkuluvun potenssi ja syt(n, q) = 1, n Z +. Osoita, että on olemassa sellainen m Z +, että n (q m 1). Osoita edelleen, että jostakin kunnan F q laajennuksesta löytyy primitiivinen n:s ykkösen juuri. 30. Määrää syklotomiset sivuluokat ja polynomin x n 1 tekijöihinjako renkaassa F q [x], kun a) n = 11, q = 2; b) n = 15, q = 2; c) n = 8, q = 3; d) n = 11, q = Jaa polynomit x p 1 ja x p 1 1 jaottomiin tekijöihin renkaassa F p [x], missä p on alkuluku. 32. Määrää kaikki 5-pituiset binääriset sykliset koodit. 4
104 33. Olkoon α yhtälön α 4 +α+1 = 0 toteuttava kunnan F 16 primitiivialkio. Määrää minimipolynomit m α (x), m α 3(x), m α 4(x) ja m α 5(x) kunnan F 2 suhteen. Määrää myös polynomin m α (x) m α 3(x) virittämän syklisen koodin generoija- ja tarkistusmatriisi. 34. Määrää kaikkien 7-pituisten binääristen syklisten koodien C i generoijamatriisi ja duaalikoodi. Tutki, milloin C i C j, kun i j. 35. Olkoot a(x) = a 0 + a 1 x + + a 6 x 6, b(x) = b 0 + b 1 x + + b 6 x 6 R 7. Osoita, että a(x)b(x) = 0 renkaassa R 7 jos ja vain jos vektori a = (a 0, a 1,..., a 6 ) on ortogonaalinen vektorin b = (b 6, b 5,..., b 0 ) ja sen jokaisen syklisen siirron kanssa. 36. Mikä on 4-pituisen ternäärisen syklisen koodin generoijapolynomi? C = x 3 + 2x 2 + 2x Olkoot g 1 (x) ja g 2 (x) renkaan R n syklisten koodien C 1 ja C 2 generoijapolynomit. a) Osoita, että koodin C 1 + C 2 = {c 1 + c 2 c i C i } generoijapolynomi on syt(g 1 (x), g 2 (x)). b) Osoita, että koodin C 1 C 2 generoijapolynomi on pyj(g 1 (x), g 2 (x)). 38. Määrää kaikkien 4-pituisten ternääristen syklisten koodien generoijamatriisit systemaattisessa muodossa. 39. Määrää 9-pituisen polynomin g(x) = x 6 + x F 2 [x] generoiman maksimaalisen syklisen koodin generoijamatriisi systemaattisessa muodossa. 40. Määrää polynomin x 4 +x+1 generoiman 15-pituisen binäärisen syklisen koodin idempotentti. 41. Olkoon e(x) binäärisen koodin C idempotentti. Määrää duaalikoodin C idempotentti. 42. Olkoot C 1 ja C 2 renkaan R n syklisiä koodeja, joiden idempotentit ovat vastaavasti e 1 (x) ja e 2 (x). Osoita, että a) C 1 C 2 jos ja vain jos e 1 (x)e 2 (x) = e 1 (x), b) koodin C 1 C 2 idempotentti on e 1 (x)e 2 (x), 5
105 c) koodin C 1 + C 2 idempotentti on e 1 (x) + e 2 (x) e 1 (x)e 2 (x). 43. Todista luentojen Lauseen c-kohta: Jos polynomin (x n 1)/f i (x) generoiman minimaalisen koodin primitiivinen idempotentti on θ i (x), niin polynomin f i1 (x)f i2 (x) f ir (x) generoiman syklisen koodin idempotentti on 1 + θ i1 (x) + θ i2 (x) + + θ ir (x). 44. Olkoon q alkuluvun potenssi ja syt(n, q) = 1, n Z +. Olkoon edelleen α primitiivinen n:s ykkösen juuri ja c(x) = c 0 +c 1 x+ +c n 1 x n 1 F[x]. Osoita, että c i = 1 n 1 c(α j )α ij kaikilla i = 0, 1,..., n 1. n j=0 45. Olkoot q, n ja α kuten edellisessä tehtävässä. Olkoon C syklinen koodi, jonka generoijapolynomi on g(x) = i K(x α i ), missä K on eräiden syklotomisten sivuluokkien unioni. Oletetaan, että p(x) R n toteuttaa jokaisella i K ehdon p(α i ) 0. Osoita, että C = p(x)g(x). 46. Olkoon α kunnan F q primitiivialkio, n = q 1 ja k n positiivinen kokonaisluku. Määritellään n-pituinen koodi kunnan F q suhteen asettamalla C = {(f(1), f(α),..., f(α n 1 )) f F q [x], deg f < k}. a) Osoita, että C on lineaarinen koodi ja määrää sen dimensio. b) Määrää koodin C minimietäisyys. c) Osoita, että C on syklinen koodi. 47. Määrää kunnan F 4 alkioiden absoluuttiset jäljet. 48. Määrää kunnan F 16 alkioiden absoluuttiset jäljet ja jäljet kunnan F 4 suhteen. 49. Määrää kunnan F 32 alkion β = b 0 + b 1 α + b 2 α 2 + b 3 α 3 + b 4 α 4, b i Z 2, jälki, kun α toteuttaa yhtälön α 5 + α = 0. 6
106 50. Tarkastellaan kunnassa Z 3 Fibonaccin rekursiota s t = s t 1 + s t 2, t 2, alkuehdolla s 0 = 0, s 1 = 1. Osoita, että s t = Tr((α + 1)α t ) toteuttaa tämän rekursion, kun α on yhtälön α 2 = α + 1 toteuttava kunnan F 9 primitiivialkio ja Tr on kunnan F 9 absoluuttinen jälki. 51. Olkoon g(x) = x15 1. Määrää 15-pituisen syklisen koodin C = x 4 + x g(x) jälkiesitys. 52. Tunnetusti (tehtävä 30d) x 11 1 = (x 1)g 1 (x)g 2 (x) renkaassa Z 3 [x], missä g 1 (x) = x 5 + x 4 x 3 + x 2 1 ja g 2 (x) = x 5 x 3 + x 2 x 1. a) Mikä on kunnan Z 3 suppein laajennuskunta, joka sisältää yhtälön x 11 1 = 0 ratkaisut? Mitkä näistä ratkaisuista ovat polynomin g 1 (x) nollakohtia? b) Muodosta ternäärisen koodin g 1 (x) tarkistusmatriisi. Äärellisellä työmäärällä nähdään, että mitkä tahansa 4 tämän matriisin saraketta ovat lineaarisesti riippumattomia. Määrää tähän tietoon nojautuen koodin g 1 (x) minimietäisyys. c) Edellisen kohdan koodi on ns. ternäärinen Golayn koodi. Osoita tämä koodi täydelliseksi. 53. Olkoon α primitiivinen n:s ykkösen juuri ja C syklinen n-pituinen koodi, jolla on nollakohdat α b, α b+r, α b+2r,..., α b+(d 2)r, missä syt(n, r) = 1. Osoita, että d min C d. 54. Riippuuko BCH-koodi käytettävän primitiivisen n:nnen ykkösen juuren valinnasta? 55. Määrää kaikki 15-pituiset BCH-koodit, joilla b = 1 ja käytettävä ykkösen juuri α toteuttaa yhtälön α 4 + α + 1 = Olkoon β kunnan F 16 primitiivialkio, joka toteuttaa yhtälön x 4 + x = 0. Määrää 2 virhettä korjaavan BCH-koodin generoijapolynomi, kun konstruktio tehdään käyttämällä alkiota β. 57. Konstruoi binäärinen 7-pituinen yleistetty BCH-koodi, jolle b = 0 ja d des C = 3. 7
107 58. Konstruoi ternäärinen n-pituinen BCH-koodi C, jolle d des C = d, kun a) n = 8, d = 3; b) n = 26, d = Tarkastellaan 15-pituista 2 virhettä korjaavaa BCH-koodia, jonka generoijapolynomi on m α (x) m α 3(x), missä α F 16 ja α 4 + α + 1 = 0. Dekoodaa vastaanotetut sanat ja Olkoon C binäärinen BCH-koodi, jonka pituus on 93 ja d des C = 13, ja olkoon α primitiivinen 93:s ykkösen juuri. Mikä on suppein kunnan Z 2 laajennus, jossa α voi olla? Määrää generoijapolynomin nollakohdat α i ja koodin dimensio. Mitä BCH-rajan perusteella on pääteltävissä minimietäisyydestä? 61. Käytetään BCH-koodia, jolle luentojen merkinnöin q = 2, n = 15 ja t = 2. Dekoodaa sana r(x) = 1 + x 5 + x 6 + x 7 + x 11 + x Olkoon [15, 5]-BCH-koodin generoija g(x) = 1 + x 2 + x 5 + x 6 + x 8 + x 9 + x 10. Dekoodaa sana Olkoon α kunnan F 32 primitiivialkio, jolle α 5 = α Määrää alkion α i minimipolynomi m α i(x), kun i {1, 3, 4, 5}. Käytetään 31-pituista BCH-koodia C, jolle d des C = 5. Dekoodaa sana Käytetään samaa alkiota α kuin tehtävässä 63 ja 31-pituista BCHkoodia, jolle d des C = 7. Vastaanotetulle sanalle r(x) pätee r(α) = α 10, r(α 3 ) = α 22 ja r(α 5 ) = α 25. Määrää todennäköisin virhevektori. 65. Olkoon α kunnan F 16 primitiivialkio, jolle α 4 +α+1 = 0. Tarkastellaan 15-pituista RS-koodia, jonka generoi polynomi g(x) = (x 1)(x α)(x α 2 )(x α 3 )(x α 4 )(x α 5 ). Dekoodaa polynomi r(x) = 1 + α 4 x + αx 3 + α 9 x 5 + x 6. 8
108 66. a) Määrää sellaisen RS-koodin koodisanat, jonka parametrit ovat q = 9, n = 8 ja d des C = 3. b) Muodosta edellisen kohdan koodia käyttäen lineaarinen koodi, jonka aakkosto on F Muodostetaan tehtävän 65 RS-koodista binäärinen koodi korvaamalla kukin koodisanan komponentti 4-pituisella binäärivektorilla. Määrää koodisanasta (α + x 2 + α 4 x 3 )g(x) saatava binäärikoodin sana. Mikä on binäärikoodin ryöppyvirheen korjauskyky? 68. Osoita, että [7, 2, 6]-RS-koodin, missä b = 1, idempotentti on e(x) = α 3 x + α 6 x 2 + αx 3 + α 5 x 4 + α 4 x 5 + α 2 x 6, missä α F 8, α 3 + α + 1 = a) Olkoon n = q 1, α F q kunnan F q primitiivialkio ja b, d Z +. Osoita, että koodin g(x), missä g(x) = b+d 2 i=b (x α i ), duaalikoodi on samaa muotoa oleva koodi (vrt. RS-koodiin ja yleistettyyn BCHkoodiin). b) Osoita, että MDS-koodin (eli maksimietäisyyskoodin) duaalikoodi on MDS-koodi. 70. Olkoon α yhtälön α 4 +α 3 +1 = 0 toteuttava kunnan F 16 primitiivialkio. Laske (x α i ) 1 (mod (x 2 + α 8 x + 1)), kun i = 2, 5, Olkoot α 1,..., α w F q keskenään erisuuria ja olkoot c 1,..., c w F q sellaisia, että ainakin yksi c i on nollasta eroava. Osoita, että w w (x α j ) 0. l=1 c l j=1 j l 72. Tarkastellaan Goppa-koodia Γ (L, G), missä L = {α 1,..., α n } sekä deg G = s. Osoita, että missä c Γ (L, G) jos ja vain jos cĥt = 0, Ĥ = G(α 1 ) 1 G(α n ) 1 α 1 G(α 1 ) 1 α n G(α n ) 1 1 G(α 1 ) 1 α s 1 G(α n ) 1 α s Osoita, että on mahdollista muodostaa Goppa-koodi Γ (L, G), missä G(x) = x 2 + x + 1 ja L = F 8. Määrää tämän koodin tarkistusmatriisi ja koodisanat. 9 n.
109 74. Oletetaan, että L koostuu primitiivisistä 15:nsistä ykkösen juurista ja G(x) = x Määrää koodin Γ (L, G) tarkistusmatriisi. 75. Todista Lemma Olkoon F = F 2, f(x) = x 8 ja g(x) = x 6 + x 4 + x 2 + x + 1. Laske Eukleideen algoritmin mukaiset polynomijonot (a k ), (b k ), (r k ) ja (q k ). Esitä näitä laskuja käyttäen kongruenssille (x 6 + x 4 + x 2 + x + 1)σ(x) ω(x) (mod x 8 ) ratkaisu σ(x), ω(x), missä deg σ µ ja deg ω ν, kun a) µ = 4, ν = 3; b) µ = 3, ν = Olkoon F = F 2, f(x) = x 8 1 ja g(x) = x 6 1. Laske Eukleideen algoritmin mukaiset polynomijonot (a k ), (b k ) ja (r k ). Määrää kullakin parilla (µ, ν), µ + ν = 7, Lemman mukaiset k, b k ja r k. 78. Ratkaise harjoitustehtävät Eukleideen algoritmiin nojautuen. 79. Dekoodaa sana käyttämällä tehtävän 73 koodia ja alternanttikoodien dekoodausalgoritmia. 80. Olkoon q = 2, m = 3 ja α F 8, α 3 + α + 1 = 0. Olkoon edelleen α = (1, α, α 2,..., α 6 ) ja h = (1, 1,..., 1). Mikä on ainoa mielekäs parametrin r arvo? Määrää tätä arvoa r vastaavan alternanttikoodin A(α, h) tarkistusmatriisi ja minimietäisyys. Onko kyseessä syklinen koodi? 81. Kuinka monta sellaista paria (e 0, e 1 ) N 2 on olemassa, joille e 0 +2e 1 d 1? 82. Tarkastellaan [15, 7]-RS-koodia, joka on tehty käyttäen kunnan F 16 primitiivialkiota α, jolle α 4 + α + 1 = 0. Dekoodaa sana u = (α 13, 1,, α 10, α 12, α 6,, α 5, α 13,, α, α 8, α 7, α 2, α 9 ). 83. Tarkastellaan [7, 2]-RS-koodia, joka on tehty käyttäen kunnan F 8 primitiivialkiota α, jolle α 3 + α + 1 = 0. Dekoodaa sana u = (, α, α,, α, α, α 4 ). 10
110 84. Konstruoi kaikki enintään 9-pituiset ryöppyvirheet korjaava koodi käyttämällä sopivaa RS-koodia kunnan F 16 suhteen. 85. Todista Kronecker-tulon A B ominaisuudet: a) Jos AC ja BD ovat määriteltyjä, niin b) (A B) T = A T B T ; (A B)(C D) = (AC) (BD); c) Jos matriisin A rivit ovat lineaarisesti riippumattomat, samoin matriisin B rivit, niin myös matriisin A B rivit ovat lineaarisesti riippumattomat. 86. Todista seuraava tulos: Jos H i on koodin C i, i = 1, 2, tarkistusmatriisi, niin matriisi H 1 H 2 H = H 1 A 2, A 1 H 2 missä k 1 n 1 -matriisi A 1 ja k 2 n 2 -matriisi A 2 on valittu niin, että matriisien [ ] [ ] H1 H2 ja A 1 rivit ovat lineaarisesti riippumattomia, on tulokoodin C 1 C 2 tarkistusmatriisi. 87. Olkoot C 1 ja C 2 binäärisiä koodeja, joiden generoijamatriisit ovat [ ] G 1 = ja G = Muodosta tulokoodin C 1 C 2 generoija- ja tarkistusmatriisi ja määrää sen minimietäisyys ja ryöppyvirheenkorjauskyky. 88. Olkoon C syklinen Reiger-optimaalinen [7, 3]-koodi, jonka generoijapolynomi on g(x) = x 4 +x 3 +x Määrää 3-kertaisesti kiedotun koodin C (3) generoijapolynomi ja ryöppyvirheenkorjauskyky. 89. Muodosta 12-rivinen Hadamardin matriisi H Olkoon A = H 12 I ja G = [ I A ], missä H 12 on 12-rivinen Hadamardin matriisi. Osoita, että G on sellaisen ternäärisen [24, 12]-koodin generoijamatriisi, jonka minimietäisyys on A 2
111 91. Olkoon m(n, d) = {max M on olemassa (n, M, d)-koodi}. Osoita, että binäärisillä koodeilla m(n, d) 2m(n 1, d). 92. Olkoon C binäärinen (n, M, d)-koodi. Osoita Plotkin-raja: a) Jos d on parillinen ja 2d n, niin d m(n, d) 2 2d n ja m(2d, d) 4d; b) Jos d on pariton ja 2d + 1 n, niin d + 1 m(n, d) 2 ja m(2d + 1, d) 4d d + 1 n 93. Todista Levenšteinin lause: Jos jokaista n Z + kohti on olemassa 4n-rivinen Hadamardin matriisi, niin on olemassa koodi, jolla Plotkinrajassa pätee yhtäsuuruus. 94. Laske jonojen ( 1, 1, 1, 1, 1, 1, 1) ja ( 1, 1, 1, 1, 1, 1, 1) ristikorrelaatiot. 95. Konstruoi 8 sellaista joukon E 8, E = { 1, 1}, vektoria, jotka ovat keskenään ortogonaalisia. 96. Todista, että jos luonnolliset luvut m ja n ovat keskenään jaottomia (ts. syt(m, n) = 1), niin syt(2 m 1, 2 n 1) = Todista, että jos x 1, x 2,..., x m ovat reaalilukuja, niin m x 2 i 1 ( m ) 2 x i m i=1 ja yhtäsuuruus pätee täsmälleen silloin, kun luvut x i ovat yhtäsuuria. 98. Olkoon α F q m ja Tr jälki F q m F q. Osoita, että Tr(α) = 0 jos ja vain jos on olemassa sellainen β F q m, että α = β q β. Olkoon nyt q = 2 ja α F 2 m. Osoita, että toisen asteen yhtälöllä i=1 x 2 + x = α on ratkaisu kunnassa F 2 m jos ja vain jos Tr(α) = 0. Osoita edelleen, että jos x 1 = β on ratkaisu, niin toinen ratkaisu on x 2 = β
112 99. Olkoot α, θ F 2 m. Määritellään β F 2 m asettamalla Osoita, että β = αθ 2 + (α + α 2 )θ (α + α α 2m 2 )θ 2m 1. β 2 + β = α(tr(θ) θ) + θ(tr(α) α) Olkoon α F 16, α 4 + α + 1 = 0. Millä γ F 16 yhtälö x 2 + x = γ on ratkeava? Määrää yhtälön ratkaisut, kun γ = α Konstruoi tapauksessa m = 4 ja e = 3 alkioita β = 1 ja β = α 5 vastaavat Goldin jonot, missä α F 16, α 4 + α + 1 = 0. 13
Koodausteoria, Kesä 2014
Koodausteoria, Kesä 2014 Topi Törmä Matemaattisten tieteiden laitos Koodausteoria 10 op Kontaktiopetusta 50 h, 26.5. - 26.6. ma 10-14, ti 10-13, to 10-13 Aloitusviikolla poikkeuksellisesti ke 10-13 torstain
Koodausteoria, Kesä 2014
Koodausteoria, Kesä 2014 Topi Törmä Matemaattisten tieteiden laitos 3. Lineaariset koodit Topi Törmä Matemaattisten tieteiden laitos 2 / 22 3.1 Lineaarisen koodin määrittely Olkoon F äärellinen kunta.
Koodausteoria, Kesä 2014
Koodausteoria, Kesä 2014 Topi Törmä Matemaattisten tieteiden laitos 3.5 Reedin-Mullerin koodit Olkoon tässä kappaleessa F = F2 = Z2 ja n = 2 m. Määritellään avaruuteen F n kertolasku koordinaateittain:
Koodausteoria, Kesä 2014
Koodausteoria, Kesä 2014 Topi Törmä Matemaattisten tieteiden laitos 3.3 Lineaarisen koodin dekoodaus Oletetaan, että lähetettäessä kanavaan sana c saadaan sana r = c + e, missä e on häiriön aiheuttama
Koodausteoria, Kesä 2014
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
Koodausteoria, Kesä 2014
Koodausteoria, Kesä 2014 Topi Törmä Matemaattisten tieteiden laitos 5 BCH-, RS- ja Goppa-koodit Topi Törmä Matemaattisten tieteiden laitos 2 / 15 5.1 BCH-koodien määrittely Olkoon jälleen F = F q, syt(n,
1 Lineaariavaruus eli Vektoriavaruus
1 Lineaariavaruus eli Vektoriavaruus 1.1 Määritelmä ja esimerkkejä Olkoon K kunta, jonka nolla-alkio on 0 ja ykkösalkio on 1 sekä V epätyhjä joukko. Oletetaan, että joukossa V on määritelty laskutoimitus
802320A LINEAARIALGEBRA OSA I
802320A LINEAARIALGEBRA OSA I Tapani Matala-aho MATEMATIIKKA/LUTK/OULUN YLIOPISTO SYKSY 2016 LINEAARIALGEBRA 1 / 72 Määritelmä ja esimerkkejä Olkoon K kunta, jonka nolla-alkio on 0 ja ykkösalkio on 1 sekä
Koodausteoria, Kesä 2014
Koodausteoria, Kesä 2014 Topi Törmä Matemaattisten tieteiden laitos 4.7 Syklisen koodin jälkiesitys Olkoon F = F q ja K = F q m kunnan F laajennuskunta. Määritelmä 4.7.1. Kuntalaajennuksen K/F jälkifunktioksi
ja jäännösluokkien joukkoa
3. Polynomien jäännösluokkarenkaat Olkoon F kunta, ja olkoon m F[x]. Polynomeille f, g F [x] määritellään kongruenssi(-relaatio) asettamalla g f mod m : m g f g = f + m h jollekin h F [x]. Kongruenssi
Avaruuden R n aliavaruus
Avaruuden R n aliavaruus 1 / 41 Aliavaruus Esimerkki 1 Kuva: Suora on suljettu yhteenlaskun ja skalaarilla kertomisen suhteen. 2 / 41 Esimerkki 2 Kuva: Suora ei ole suljettu yhteenlaskun ja skalaarilla
7. Olemassaolo ja yksikäsitteisyys Galois n kunta GF(q) = F q, jossa on q alkiota, määriteltiin jäännösluokkarenkaaksi
7. Olemassaolo ja yksikäsitteisyys Galois n kunta GF(q) = F q, jossa on q alkiota, määriteltiin jäännösluokkarenkaaksi Z p [x]/(m), missä m on polynomirenkaan Z p [x] jaoton polynomi (ks. määritelmä 3.19).
Lineaarikombinaatio, lineaarinen riippuvuus/riippumattomuus
Lineaarikombinaatio, lineaarinen riippuvuus/riippumattomuus 1 / 51 Lineaarikombinaatio Johdattelua seuraavaan asiaan (ei tarkkoja määritelmiä): Millaisen kuvan muodostaa joukko {λv λ R, v R 3 }? Millaisen
koska 2 toteuttaa rationaalikertoimisen yhtälön x 2 2 = 0. Laajennuskunnan
4. Äärellisten kuntien yleisiä ominaisuuksia 4.1. Laajenuskunnat. Tarkastellaan aluksi yleistä kuntaparia F ja K, missä F on kunnan K alikunta. Tällöin sanotaan, että kunta K on kunnan F laajennuskunta
Lineaarialgebra ja matriisilaskenta II. LM2, Kesä /141
Lineaarialgebra ja matriisilaskenta II LM2, Kesä 2012 1/141 Kertausta: avaruuden R n vektorit Määritelmä Oletetaan, että n {1, 2, 3,...}. Avaruuden R n alkiot ovat jonoja, joissa on n kappaletta reaalilukuja.
on Abelin ryhmä kertolaskun suhteen. Tämän joukon alkioiden lukumäärää merkitään
5. Primitiivinen alkio 5.1. Täydennystä lukuteoriaan. Olkoon n Z, n 2. Palautettakoon mieleen, että kokonaislukujen jäännösluokkarenkaan kääntyvien alkioiden muodostama osajoukko Z n := {x Z n x on kääntyvä}
Esko Turunen Luku 3. Ryhmät
3. Ryhmät Monoidia rikkaampi algebrallinen struktuuri on ryhmä: Määritelmä (3.1) Olkoon joukon G laskutoimitus. Joukko G varustettuna tällä laskutoimituksella on ryhmä, jos laskutoimitus on assosiatiivinen,
Äärellisesti generoitujen Abelin ryhmien peruslause
Tero Harju (2008/2010) Äärellisesti generoitujen Abelin ryhmien peruslause Merkintä X on joukon koko ( eli #X). Vapaat Abelin ryhmät Tässä kappaleessa käytetään Abelin ryhmille additiivista merkintää.
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
1. Polynomit Tässä luvussa tarkastelemme polynomien muodostamia renkaita polynomien ollisuutta käsitteleviä perustuloksia. Teemme luvun alkuun kaksi sopimusta: Tässä luvussa X on muodollinen symboli, jota
Kannan vektorit siis virittävät aliavaruuden, ja lisäksi kanta on vapaa. Lauseesta 7.6 saadaan seuraava hyvin käyttökelpoinen tulos:
8 Kanta Tässä luvussa tarkastellaan aliavaruuden virittäjävektoreita, jotka muodostavat lineaarisesti riippumattoman jonon. Merkintöjen helpottamiseksi oletetaan luvussa koko ajan, että W on vektoreiden
2 Renkaat ja kunnat. toteutuvat: 1. pari (K, +) on Abelin ryhmä, jonka neutraalialkio on 0 K,
1 Ryhmät Olkoot S on joukko ja X S. Jos kuvaus : S S S, (x, y) x y toteuttaa ehdon x y X kaikilla x, y X, niin sanotaan, että binäärinen operaatio on suljettu joukon X suhteen. Määritelmä 1. Olkoot G joukko
R : renkaan R kääntyvien alkioiden joukko; R kertolaskulla varustettuna on
0. Kertausta ja täydennystä Kurssille Äärelliset kunnat tarvittavat esitiedot löytyvät Algebran kurssista [Alg]. Hyödyksi voivat myös olla (vaikka eivät välttämättömiä) Lukuteorian alkeet [LTA] ja Salakirjoitukset
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
Renkaat Tarkastelemme seuraavaksi rakenteita, joissa on määritelty kaksi binääristä assosiatiivista laskutoimitusta, joista toinen on kommutatiivinen. Vaadimme muuten samat ominaisuudet kuin kokonaisluvuilta,
Kuvauksista ja relaatioista. Jonna Makkonen Ilari Vallivaara
Kuvauksista ja relaatioista Jonna Makkonen Ilari Vallivaara 20. lokakuuta 2004 Sisältö 1 Esipuhe 2 2 Kuvauksista 3 3 Relaatioista 8 Lähdeluettelo 12 1 1 Esipuhe Joukot ja relaatiot ovat periaatteessa äärimmäisen
Liite 2. Ryhmien ja kuntien perusteet
Liite 2. Ryhmien ja kuntien perusteet 1. Ryhmät 1.1 Johdanto Erilaisissa matematiikan probleemoissa törmätään usein muotoa a + x = b tai a x = b oleviin yhtälöihin, joissa tuntematon muuttuja on x. Lukujoukkoja
Polynomien suurin yhteinen tekijä ja kongruenssi
Polynomien suurin yhteinen tekijä ja kongruenssi Pro gradu -tutkielma Outi Aksela 2117470 Matemaattisten tieteiden laitos Oulun yliopisto Syksy 2016 Sisältö Johdanto 2 1 Renkaat 3 1.1 Rengas...............................
Mitään muita operaatioita symbolille ei ole määritelty! < a kaikilla kokonaisluvuilla a, + a = kaikilla kokonaisluvuilla a.
Polynomit Tarkastelemme polynomirenkaiden teoriaa ja polynomiyhtälöiden ratkaisemista. Algebrassa on tapana pitää erillään polynomin ja polynomifunktion käsitteet. Polynomit Tarkastelemme polynomirenkaiden
Kanta ja dimensio 1 / 23
1 / 23 Kuten ollaan huomattu, saman aliavaruuden voi virittää eri määrä vektoreita. Seuraavaksi määritellään mahdollisimman pieni vektorijoukko, joka virittää aliavaruuden. Jokainen aliavaruuden alkio
802355A Algebralliset rakenteet Luentorunko Syksy Markku Niemenmaa Kari Myllylä Topi Törmä Marko Leinonen
802355A Algebralliset rakenteet Luentorunko Syksy 2016 Markku Niemenmaa Kari Myllylä Topi Törmä Marko Leinonen Sisältö 1 Kertausta kurssilta Algebran perusteet 3 2 Renkaat 8 2.1 Renkaiden teoriaa.........................
MS-C1340 Lineaarialgebra ja
MS-C1340 Lineaarialgebra ja differentiaaliyhtälöt Vektoriavaruudet Riikka Kangaslampi kevät 2017 Matematiikan ja systeemianalyysin laitos Aalto-yliopisto Idea Lineaarisen systeemin ratkaiseminen Olkoon
6 Vektoriavaruus R n. 6.1 Lineaarikombinaatio
6 Vektoriavaruus R n 6.1 Lineaarikombinaatio Määritelmä 19. Vektori x œ R n on vektorien v 1,...,v k œ R n lineaarikombinaatio, jos on olemassa sellaiset 1,..., k œ R, että x = i v i. i=1 Esimerkki 30.
802320A LINEAARIALGEBRA OSA III
802320A LINEAARIALGEBRA OSA III Tapani Matala-aho MATEMATIIKKA/LUTK/OULUN YLIOPISTO SYKSY 2016 LINEAARIALGEBRA 1 / 56 Määritelmä Määritelmä 1 Olkoot V ja W lineaariavaruuksia kunnan K yli. Kuvaus L : V
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.
ALGEBRA II 27 on homomorfismi. Ensinnäkin G(a + b) a + b G(a)+G(b) (f), G(ab) ab G(a)G(b) G(a) G(b) (f), ja koska kongruenssien vasempien ja oikeiden puolten asteet ovat pienempiä kuin f:n aste, niin homomorfiaehdot
Määritelmä 1. Olkoot V ja W lineaariavaruuksia kunnan K yli. Kuvaus L : V. Termejä: Lineaarikuvaus, Lineaarinen kuvaus.
1 Lineaarikuvaus 1.1 Määritelmä Määritelmä 1. Olkoot V ja W lineaariavaruuksia kunnan K yli. Kuvaus L : V W on lineaarinen, jos (a) L(v + w) = L(v) + L(w); (b) L(λv) = λl(v) aina, kun v, w V ja λ K. Termejä:
MS-A0402 Diskreetin matematiikan perusteet
MS-A0402 Diskreetin matematiikan perusteet Osa 4: Modulaariaritmetiikka Riikka Kangaslampi 2017 Matematiikan ja systeemianalyysin laitos Aalto-yliopisto Modulaariaritmetiikka Jakoyhtälö Määritelmä 1 Luku
Diofantoksen yhtälön ratkaisut
Diofantoksen yhtälön ratkaisut Matias Mäkelä Matemaattisten tieteiden tutkinto-ohjelma Oulun yliopisto Kevät 2017 Sisältö Johdanto 2 1 Suurin yhteinen tekijä 2 2 Eukleideen algoritmi 4 3 Diofantoksen yhtälön
a b 1 c b n c n
Algebra Syksy 2007 Harjoitukset 1. Olkoon a Z. Totea, että aina a 0, 1 a, a a ja a a. 2. Olkoot a, b, c, d Z. Todista implikaatiot: a) a b ja c d ac bd, b) a b ja b c a c. 3. Olkoon a b i kaikilla i =
MS-C1340 Lineaarialgebra ja differentiaaliyhtälöt
MS-C1340 Lineaarialgebra ja differentiaaliyhtälöt Vektoriavaruudet Riikka Kangaslampi Matematiikan ja systeemianalyysin laitos Aalto-yliopisto 2015 1 / 17 R. Kangaslampi Vektoriavaruudet Vektoriavaruus
Lineaarialgebra ja matriisilaskenta I
Lineaarialgebra ja matriisilaskenta I 29.5.2013 HY / Avoin yliopisto Jokke Häsä, 1/26 Kertausta: Kanta Määritelmä Oletetaan, että w 1, w 2,..., w k W. Vektorijono ( w 1, w 2,..., w k ) on aliavaruuden
TOOLS. Tapani Matala-aho MATEMATIIKKA/LUTK/OULUN YLIOPISTO TOOLS 1 / 28
TOOLS Tapani Matala-aho MATEMATIIKKA/LUTK/OULUN YLIOPISTO 2018 TOOLS 1 / 28 Merkintöjä ja algebrallisia rakenteita Lukujoukkoja N = {0, 1, 2,..., GOOGOL 10,...} = {ei-negatiiviset kokonaisluvut}. TOOLS
Reedin ja Solomonin koodit Katariina Huttunen
Pro Gradu Reedin ja Solomonin koodit Katariina Huttunen Jyväskylän yliopisto Matematiikan laitos Lokakuu 2016 Tiivistelmä Huttunen Katariina, Reedin ja Solomonin koodit, matematiikan pro gradututkielma,
Teema 4. Homomorfismeista Ihanne ja tekijärengas. Teema 4 1 / 32
1 / 32 Esimerkki 4A.1 Esimerkki 4A.2 Esimerkki 4B.1 Esimerkki 4B.2 Esimerkki 4B.3 Esimerkki 4C.1 Esimerkki 4C.2 Esimerkki 4C.3 2 / 32 Esimerkki 4A.1 Esimerkki 4A.1 Esimerkki 4A.2 Esimerkki 4B.1 Esimerkki
802328A LUKUTEORIAN PERUSTEET Merkintöjä ja Algebrallisia rakenteita
802328A LUKUTEORIAN PERUSTEET Merkintöjä ja Algebrallisia rakenteita Tapani Matala-aho MATEMATIIKKA/LUTK/OULUN YLIOPISTO SYKSY 2016 LUKUTEORIA 1 / 25 Lukujoukkoja N = {0, 1, 2,..., GOOGOL 10,...} = {ei-negatiiviset
H = : a, b C M. joten jokainen A H {0} on kääntyvä matriisi. Itse asiassa kaikki nollasta poikkeavat alkiot ovat yksiköitä, koska. a b.
10. Kunnat ja kokonaisalueet Määritelmä 10.1. Olkoon K rengas, jossa on ainakin kaksi alkiota. Jos kaikki renkaan K nollasta poikkeavat alkiot ovat yksiköitä, niin K on jakorengas. Kommutatiivinen jakorengas
Algebran ja lukuteorian harjoitustehtäviä. 1. Tutki, ovatko seuraavat relaatiot ekvivalenssirelaatioita joukon N kaikkien osajoukkojen
Algebran ja lukuteorian harjoitustehtäviä Versio 1.0 (27.1.2006) Turun yliopisto Lukuteoria 1. Tutki, ovatko seuraavat relaatiot ekvivalenssirelaatioita joukon N kaikkien osajoukkojen joukolla: a) C D
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.
Vapaus Määritelmä Oletetaan, että v 1, v 2,..., v k R n, missä n {1, 2,... }. Vektorijono ( v 1, v 2,..., v k ) on vapaa eli lineaarisesti riippumaton, jos seuraava ehto pätee: jos c 1 v 1 + c 2 v 2 +
802355A Renkaat, kunnat ja polynomit Luentorunko Syksy 2013
802355A Renkaat, kunnat ja polynomit Luentorunko Syksy 2013 Työryhmä: Markku Niemenmaa, Kari Myllylä, Juha-Matti Tirilä, Antti Torvikoski, Topi Törmä Sisältö 1 Kertausta kurssilta Lukuteoria ja ryhmät
d Z + 17 Viimeksi muutettu
5. Diffien ja Hellmanin avaintenvaihto Miten on mahdollista välittää salatun viestin avaamiseen tarkoitettu avain Internetin kaltaisen avoimen liikennöintiväylän kautta? Kuka tahansahan voi (ainakin periaatteessa)
Insinöörimatematiikka D
Insinöörimatematiikka D M. Hirvensalo [email protected] V. Junnila [email protected] Matematiikan ja tilastotieteen laitos Turun yliopisto 2015 M. Hirvensalo [email protected] V. Junnila [email protected] Luentokalvot
a ord 13 (a)
JOHDATUS LUKUTEORIAAN (syksy 2017) HARJOITUS 4, MALLIRATKAISUT Tehtävä 1. Etsi asteet ord p (a) luvuille a 1, 2,..., p 1 kun p = 13 ja kun p = 17. (ii) Mitkä jäännösluokat ovat primitiivisiä juuria (mod
renkaissa. 0 R x + x =(0 R +1 R )x =1 R x = x
8. Renkaat Tarkastelemme seuraavaksi rakenteita, joissa on määritelty kaksi assosiatiivista laskutoimitusta, joista toinen on kommutatiivinen. Vaadimme näiltä kahdella laskutoimituksella varustetuilta
Bijektio. Voidaan päätellä, että kuvaus on bijektio, jos ja vain jos maalin jokaiselle alkiolle kuvautuu tasan yksi lähdön alkio.
Määritelmä Bijektio Oletetaan, että f : X Y on kuvaus. Sanotaan, että kuvaus f on bijektio, jos se on sekä injektio että surjektio. Huom. Voidaan päätellä, että kuvaus on bijektio, jos ja vain jos maalin
x j x k Tällöin L j (x k ) = 0, kun k j, ja L j (x j ) = 1. Alkuperäiselle interpolaatio-ongelmalle saadaan nyt ratkaisu
2 Interpolointi Olkoon annettuna n+1 eri pistettä x 0, x 1, x n R ja n+1 lukua y 0, y 1,, y n Interpoloinnissa etsitään funktiota P, joka annetuissa pisteissä x 0,, x n saa annetut arvot y 0,, y n, (21)
Lineaariset ryhmät Pro gradu -tutkielma Miia Lillstrang Matematiikan yksikkö Oulun yliopisto 2016
Lineaariset ryhmät Pro gradu -tutkielma Miia Lillstrang 2187044 Matematiikan yksikkö Oulun yliopisto 2016 Sisältö Johdanto 2 1 Esitietoja 3 1.1 Ryhmät.............................. 3 1.1.1 Ryhmä ja aliryhmä....................
R 1 = Q 2 R 2 + R 3,. (2.1) R l 2 = Q l 1 R l 1 + R l,
2. Laajennettu Eukleideen algoritmi Määritelmä 2.1. Olkoot F kunta ja A, B, C, D F [x]. Sanotaan, että C jakaa A:n (tai C on A:n jakaja), jos on olemassa K F [x] siten, että A = K C; tällöin merkitään
JAKSO 2 KANTA JA KOORDINAATIT
JAKSO 2 KANTA JA KOORDINAATIT Kanta ja dimensio Tehtävä Esittele vektoriavaruuden kannan määritelmä vapauden ja virittämisen käsitteiden avulla ja anna vektoriavaruuden dimension määritelmä Esittele Lause
isomeerejä yhteensä yhdeksän kappaletta.
Tehtävä 2 : 1 Esitetään aluksi eräitä havaintoja. Jokaisella n Z + symbolilla H (n) merkitään kaikkien niiden verkkojen joukkoa, jotka vastaavat jotakin tehtävänannon ehtojen mukaista alkaanin hiiliketjua
Matriisien tulo. Matriisit ja lineaarinen yhtälöryhmä
Matriisien tulo Lause Olkoot A, B ja C matriiseja ja R Tällöin (a) A(B + C) =AB + AC, (b) (A + B)C = AC + BC, (c) A(BC) =(AB)C, (d) ( A)B = A( B) = (AB), aina, kun kyseiset laskutoimitukset on määritelty
Tekijä Pitkä Matematiikka 11 ratkaisut luku 2
Tekijä Pitkä matematiikka 11 0..017 170 a) Koska 8 = 4 7, luku 8 on jaollinen luvulla 4. b) Koska 104 = 4 6, luku 104 on jaollinen luvulla 4. c) Koska 4 0 = 80 < 8 ja 4 1 = 84 > 8, luku 8 ei ole jaollinen
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.
Liittomatriisi Määritelmä 16 Olkoon A 2 M(n, n). Matriisin A liittomatriisi on cof A 2 M(n, n), missä (cof A) ij =( 1) i+j det A ij kaikilla i, j = 1,...,n. Huomautus 8 Olkoon A 2 M(n, n). Tällöin kaikilla
14. Juurikunnat Määritelmä ja olemassaolo.
14. Juurikunnat Mielivaltaisella polynomilla ei välttämättä ole juuria tarkasteltavassa kunnassa. Tässä luvussa tutkitaan sellaisia algebrallisia laajennoksia, jotka saadaan lisäämällä polynomeille juuria.
Lineaarialgebra ja matriisilaskenta I
Lineaarialgebra ja matriisilaskenta I 30.5.2013 HY / Avoin yliopisto Jokke Häsä, 1/19 Käytännön asioita Kurssi on suunnilleen puolessa välissä. Kannattaa tarkistaa tavoitetaulukosta, mitä on oppinut ja
1 Algebralliset perusteet
1 Algebralliset perusteet 1.1 Renkaat Tämän luvun jälkeen opiskelijoiden odotetaan muistavan, mitä ovat renkaat, vaihdannaiset renkaat, alirenkaat, homomorfismit, ideaalit, tekijärenkaat, maksimaaliset
Insinöörimatematiikka D
Insinöörimatematiikka D M. Hirvensalo [email protected] V. Junnila [email protected] Matematiikan ja tilastotieteen laitos Turun yliopisto 2015 M. Hirvensalo [email protected] V. Junnila [email protected] Luentokalvot
Johdatus lineaarialgebraan
Johdatus lineaarialgebraan Osa II Lotta Oinonen, Johanna Rämö 28. lokakuuta 2014 Helsingin yliopisto Matematiikan ja tilastotieteen laitos Sisältö 15 Vektoriavaruus....................................
7 Vapaus. 7.1 Vapauden määritelmä
7 Vapaus Kuten edellisen luvun lopussa mainittiin, seuraavaksi pyritään ratkaisemaan, onko annetussa aliavaruuden virittäjäjoukossa tarpeettomia vektoreita Jos tällaisia ei ole, virittäjäjoukkoa kutsutaan
Ennakkotehtävän ratkaisu
Ennakkotehtävän ratkaisu Ratkaisu [ ] [ ] 1 3 4 3 A = ja B =. 1 4 1 1 [ ] [ ] 4 3 12 12 1 0 a) BA = =. 1 + 1 3 + 4 0 1 [ ] [ ] [ ] 1 0 x1 x1 b) (BA)x = =. 0 1 x 2 x [ ] [ ] [ 2 ] [ ] 4 3 1 4 9 5 c) Bb
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 )
Määritelmä 519 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 h v 1 v 2 v m T 1 v 1 T 2 v 2 T m v m 514 sanotaan olevan kuvausten T 1,, T m indusoima ja sitä
Lineaarialgebra ja matriisilaskenta II Syksy 2009 Laskuharjoitus 1 ( ) Ratkaisuehdotuksia Vesa Ala-Mattila
Lineaarialgebra ja matriisilaskenta II Syksy 29 Laskuharjoitus (9. - 3..29) Ratkaisuehdotuksia Vesa Ala-Mattila Tehtävä. Olkoon V vektoriavaruus. Todistettava: jos U V ja W V ovat V :n aliavaruuksia, niin
Mikäli huomaat virheen tai on kysyttävää liittyen malleihin, lähetä viesti osoitteeseen
Mikäli huomaat virheen tai on kysyttävää liittyen malleihin, lähetä viesti osoitteeseen [email protected]. 1. 2. Muista. Ryhmän G aliryhmä H on normaali aliryhmä, jos ah = Ha kaikilla a G. Toisin
Algebra I, harjoitus 5,
Algebra I, harjoitus 5, 7.-8.10.2014. 1. 2 Osoita väitteet oikeiksi tai vääriksi. a) (R, ) on ryhmä, kun asetetaan a b = 2(a + b) aina, kun a, b R. (Tässä + on reaalilukujen tavallinen yhteenlasku.) b)
MS-C1340 Lineaarialgebra ja differentiaaliyhtälöt
MS-C1340 Lineaarialgebra ja differentiaaliyhtälöt Ominaisarvoteoriaa Riikka Kangaslampi Matematiikan ja systeemianalyysin laitos Aalto-yliopisto 2015 1 / 22 R. Kangaslampi matriisiteoriaa Kertaus: ominaisarvot
800333A Algebra I Luentorunko Kevät Työryhmä: Markku Niemenmaa, Kari Myllylä, Juha-Matti Tirilä
800333A Algebra I Luentorunko Kevät 2010 Työryhmä: Markku Niemenmaa, Kari Myllylä, Juha-Matti Tirilä Sisältö 1 Lukuteorian alkeita 3 1.1 Kongruenssiin liittyviä perustuloksia.............. 7 2 Ekvivalenssirelaatio
MS-C1340 Lineaarialgebra ja
MS-C1340 Lineaarialgebra ja differentiaaliyhtälöt Ominaisarvoteoriaa Riikka Kangaslampi Kevät 2017 Matematiikan ja systeemianalyysin laitos Aalto-yliopisto Ominaisarvot Kertaus: ominaisarvot Määritelmä
Matriisilaskenta, LH4, 2004, ratkaisut 1. Hae seuraavien R 4 :n aliavaruuksien dimensiot, jotka sisältävät vain
Matriisilaskenta LH4 24 ratkaisut 1 Hae seuraavien R 4 :n aliavaruuksien dimensiot jotka sisältävät vain a) Kaikki muotoa (a b c d) olevat vektorit joilla d a + b b) Kaikki muotoa (a b c d) olevat vektorit
1 Määrittelyjä ja aputuloksia
1 Määrittelyjä ja aputuloksia 1.1 Supremum ja infimum Aluksi kerrataan pienimmän ylärajan (supremum) ja suurimman alarajan (infimum) perusominaisuuksia ja esitetään muutamia myöhemmissä todistuksissa tarvittavia
Lineaarialgebra ja differentiaaliyhtälöt Laskuharjoitus 1 / vko 44
Lineaarialgebra ja differentiaaliyhtälöt Laskuharjoitus 1 / vko 44 Tehtävät 1-3 lasketaan alkuviikon harjoituksissa, verkkotehtävien dl on lauantaina aamuyöllä. Tehtävät 4 ja 5 lasketaan loppuviikon harjoituksissa.
Tensorialgebroista. Jyrki Lahtonen A = A n. n=0. I n, I = n=0
Tensorialgebroista Esitysteorian kesäopintopiiri, Turun yliopisto, 2012 Jyrki Lahtonen Olkoon k jokin skalaarikunta. Kerrataan k-algebran käsite: A on k-algebra, jos se on sekä rengas että vektoriavaruus
Algebra II. Syksy 2004 Pentti Haukkanen
Algebra II Syksy 2004 Pentti Haukkanen 1 Sisällys 1 Ryhmäteoriaa 3 1.1 Ryhmän määritelmä.... 3 1.2 Aliryhmä... 3 1.3 Sivuluokat...... 4 1.4 Sykliset ryhmät... 7 1.5 Ryhmäisomorfismi..... 11 2 Polynomeista
MAT-41150 Algebra I (s) periodilla IV 2012 Esko Turunen
MAT-41150 Algebra I (s) periodilla IV 2012 Esko Turunen Tehtävä 1. Onko joukon X potenssijoukon P(X) laskutoimitus distributiivinen laskutoimituksen suhteen? Onko laskutoimitus distributiivinen laskutoimituksen
Matematiikan ja tilastotieteen laitos Algebra I - Kesä 2009 Ratkaisuehdoituksia harjoituksiin 8 -Tehtävät 3-6 4 sivua Heikki Koivupalo ja Rami Luisto
Matematiikan ja tilastotieteen laitos Algebra I - Kesä 2009 Ratkaisuehdoituksia harjoituksiin 8 -Tehtävät 3-6 4 sivua Heikki Koivupalo ja Rami Luisto 3. Oletetaan, että kunnan K karakteristika on 3. Tutki,
Diskreetin matematiikan perusteet Laskuharjoitus 2 / vko 9
Diskreetin matematiikan perusteet Laskuharjoitus 2 / vko 9 Tuntitehtävät 9-10 lasketaan alkuviikon harjoituksissa ja tuntitehtävät 13-14 loppuviikon harjoituksissa. Kotitehtävät 11-12 tarkastetaan loppuviikon
9 Matriisit. 9.1 Matriisien laskutoimituksia
9 Matriisit Aiemmissa luvuissa matriiseja on käsitelty siinä määrin kuin on ollut tarpeellista yhtälönratkaisun kannalta. Matriiseja käytetään kuitenkin myös muihin tarkoituksiin, ja siksi on hyödyllistä
802320A LINEAARIALGEBRA OSA II
802320A LINEAARIALGEBRA OSA II Tapani Matala-aho MATEMATIIKKA/LUTK/OULUN YLIOPISTO SYKSY 2016 LINEAARIALGEBRA 1 / 64 Sisätuloavaruus Määritelmä 1 Olkoon V reaalinen vektoriavaruus. Kuvaus on reaalinen
Yleiset lineaarimuunnokset
TAMPEREEN YLIOPISTO Pro gradu -tutkielma Kari Tuominen Yleiset lineaarimuunnokset Matematiikan ja tilastotieteen laitos Matematiikka Toukokuu 29 Tampereen yliopisto Matematiikan ja tilastotieteen laitos
1 Sisätulo- ja normiavaruudet
1 Sisätulo- ja normiavaruudet 1.1 Sisätuloavaruus Määritelmä 1. Olkoon V reaalinen vektoriavaruus. Kuvaus : V V R on reaalinen sisätulo eli pistetulo, jos (a) v w = w v (symmetrisyys); (b) v + u w = v
jonka laskutoimitus on matriisien kertolasku. Vastaavasti saadaan K-kertoiminen erityinen lineaarinen ryhmä
4. Ryhmät Tässä luvussa tarkastelemme laskutoimituksella varustettuja joukkoja, joiden laskutoimitukselta oletamme muutamia yksinkertaisia ominaisuuksia: Määritelmä 4.1. Laskutoimituksella varustettu joukko
Insinöörimatematiikka D
Insinöörimatematiikka D Mika Hirvensalo [email protected] Matematiikan ja tilastotieteen laitos Turun yliopisto 2014 Mika Hirvensalo [email protected] Luentokalvot 3 1 of 16 Kertausta Lineaarinen riippuvuus
1 Ominaisarvot ja ominaisvektorit
1 Ominaisarvot ja ominaisvektorit Olkoon A = [a jk ] n n matriisi. Tarkastellaan vektoriyhtälöä Ax = λx, (1) 1 missä λ on luku. Sellaista λ:n arvoa, jolla yhtälöllä on ratkaisu x 0, kutsutaan matriisin
Insinöörimatematiikka D
Insinöörimatematiikka D M. Hirvensalo [email protected] V. Junnila [email protected] A. Lepistö [email protected] Matematiikan ja tilastotieteen laitos Turun yliopisto 2016 M. Hirvensalo V. Junnila A. Lepistö
Osoita, että täsmälleen yksi vektoriavaruuden ehto ei ole voimassa.
LINEAARIALGEBRA Harjoituksia 2016 1. Olkoon V = R 2 varustettuna tavallisella yhteenlaskulla. Määritellään reaaliluvulla kertominen seuraavasti: λ (x 1, x 2 ) = (λx 1, 0) (x 1, x 2 ) R 2 ja λ R. Osoita,
Algebra I Matematiikan ja tilastotieteen laitos Ratkaisuehdoituksia harjoituksiin 8 (7 sivua)
Algebra I Matematiikan ja tilastotieteen laitos Ratkaisuehdoituksia harjoituksiin ( sivua).... Nämä ovat kurssin Algebra I harjoitustehtävien ratkaisuehdoituksia. Ratkaisut koostuvat kahdesta osiosta,
{I n } < { I n,i n } < GL n (Q) < GL n (R) < GL n (C) kaikilla n 2 ja
5. Aliryhmät Luvun 4 esimerkeissä esiintyy usein ryhmä (G, ) ja jokin vakaa osajoukko B G siten, että (B, B ) on ryhmä. Määrittelemme seuraavassa käsitteitä, jotka auttavat tällaisten tilanteiden käsittelyssä.
Esimerkki A1. Jaetaan ryhmä G = Z 17 H = 4 = {1, 4, 4 2 = 16 = 1, 4 3 = 4 = 13, 4 4 = 16 = 1}.
Jaetaan ryhmä G = Z 17 n H = 4 sivuluokkiin. Ratkaisu: Koska 17 on alkuluku, #G = 16, alkiona jäännösluokat a, a = 1, 2,..., 16. Määrätään ensin n H alkiot: H = 4 = {1, 4, 4 2 = 16 = 1, 4 3 = 4 = 13, 4
MAT Algebra I (s) periodeilla IV ja V/2009. Esko Turunen
MAT-41150 Algebra I (s) periodeilla IV ja V/2009. Esko Turunen Tämä tiedosto sisältää kurssin kaikki laskuharjoitukset. viikottain uusia tehtäviä. Tiedostoon lisätään To 05.02.09 pidetyt harjoitukset.
