Koodausteoria, Kesä 2014 Topi Törmä Matemaattisten tieteiden laitos
5.6 Alternanttikoodin dekoodaus, kun esiintyy pyyhkiytymiä 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ä. Topi Törmä Matemaattisten tieteiden laitos 2 / 14
5.6 Alternanttikoodin dekoodaus, kun esiintyy pyyhkiytymiä 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ä. Lause 5.6.1. Jos koodin C minimietäisyys on d, niin se korjaa e 0 pyyhkiytymää ja e 1 virhettä, kun e 0 + 2e 1 d 1. Huomaa, että lauseessa voi olla e 0 + e 1 > d 1 2 d 1 2 = t, missä t on koodin virheenkorjauskyky. Topi Törmä Matemaattisten tieteiden laitos 2 / 14
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 F q m ja alkiot α 1, α 2,..., α n F q m ovat erisuuria. Olkoon c = (c 1,..., c n ) lähetetty sana ja 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. r n, Topi Törmä Matemaattisten tieteiden laitos 3 / 14
Määritellään lisäksi joukot 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. Topi Törmä Matemaattisten tieteiden laitos 4 / 14
Määritellään lisäksi joukot 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. 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 =. Topi Törmä Matemaattisten tieteiden laitos 4 / 14
Sanassa û on mahdollisesti e 0 + e 1 virhettä (voi olla e 0 + e 1 > r 2 ). Merkitään û = c + ê ja lasketaan syndromit: S = ûĥt = cĥt + êĥt = êĥt = (S 0, S 1,..., S r 1 ). Topi Törmä Matemaattisten tieteiden laitos 5 / 14
Sanassa û on mahdollisesti e 0 + e 1 virhettä (voi olla e 0 + e 1 > r 2 ). Merkitään û = 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) = ˆσ(x) h i ê i (1 α j x) = h i ê i 1 α i x. i Î j Î \{i} i Î Topi Törmä Matemaattisten tieteiden laitos 5 / 14
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 ). Topi Törmä Matemaattisten tieteiden laitos 6 / 14
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 i I 0 \Î0 (1 α i x) saadaan σ(x)s(x) ω(x) (mod x r ), (1) missä σ(x) = σ 0 (x)σ 1 (x) ja ω(x) = ˆω(x) i x) = i I 0 \Î0(1 α i Î sillä ê i = 0, kun i / Î. σ(x) h i ê i 1 α i x = i I σ(x) h i ê i 1 α i x, Topi Törmä Matemaattisten tieteiden laitos 6 / 14
Määritellään nyt muunnettu syndromipolynomi S 0 (x) asettamalla jolloin yhtälöstä (1) saadaan S 0 (x) σ 0 (x)s(x) (mod x r ), σ 1 (x)s 0 (x) ω(x) (mod x r ). (2) Merkitään µ = r e 0 2 ja ν = r 1 µ, jolloin µ + ν = r 1 sekä deg σ 1 = e 1 ja deg ω e 0 + e 1 1. Topi Törmä Matemaattisten tieteiden laitos 7 / 14
Määritellään nyt muunnettu syndromipolynomi S 0 (x) asettamalla jolloin yhtälöstä (1) saadaan S 0 (x) σ 0 (x)s(x) (mod x r ), σ 1 (x)s 0 (x) ω(x) (mod x r ). (2) Merkitään µ = r e 0 2 ja ν = r 1 µ, jolloin µ + ν = r 1 sekä 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 2, joten e 1 µ. Lisäksi 2e 0 + 2e 1 r + e 0, joten e 0 + e 1 r + e 0 2 = r r e 0 2 Täten deg ω r 1 µ = ν. r e0 r = r µ. 2 Topi Törmä Matemaattisten tieteiden laitos 7 / 14
Soveltamalla Eukleideen algoritmia Lauseen 5.5.8 mukaisesti polynomeihin x r ja S 0 (x) kunnes deg r k (x) ν ja deg r k 1 (x) > ν saadaan σ 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). Topi Törmä Matemaattisten tieteiden laitos 8 / 14
Soveltamalla Eukleideen algoritmia Lauseen 5.5.8 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 5.5.3 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. Topi Törmä Matemaattisten tieteiden laitos 8 / 14
Dekoodausalgoritmi on siis seuraavanlainen: 1. Määrätään I 0 ja σ 0 (x) = i I 0 (1 α i x). 2. Määrätään û ja lasketaan ûĥt = (S 0,..., S r 1 ) ja S(x) = r 1 S l x l. l=0 3. Lasketaan muunnettu syndromipolynomi S 0 (x) σ 0 (x)s(x) (mod x r ). 4. Ratkaistaan kongruenssista σ 1 (x)s 0 (x) ω(x) (mod x r ), polynomit σ 1 (x) ja ω(x) Eukleideen algoritmin avulla (µ = r e 0 2, ν = r 1 µ). 5. Määrätään virhekohtien joukko I 1 polynomin σ 1 (x) nollakohdista ja lasketaan σ(x) = σ 0 (x)σ 1 (x). 6. Lasketaan jokaisella i I = I 1 I 0 virhearvot ê i = α iω(α 1 i ) h i σ (α 1 i ). 7. Lasketaan c = û ê. Topi Törmä Matemaattisten tieteiden laitos 9 / 14
Esimerkki 2 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 ). Topi Törmä Matemaattisten tieteiden laitos 10 / 14
Esimerkki 2 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 Topi Törmä Matemaattisten tieteiden laitos 10 / 14
1. Nyt I 0 = {4} ja σ 0 (x) = 1 α 4 x = 1 α 3 x. Topi Törmä Matemaattisten tieteiden laitos 11 / 14
1. Nyt I 0 = {4} ja σ 0 (x) = 1 α 4 x = 1 α 3 x. 2. Muodostetaan û = (α 4, α 3, α 6, 0, α 2, α 4, α 2 ) ja vastaava polynomi Tällöin û(x) = α 4 + α 3 x + α 6 x 2 + α 2 x 4 + α 4 x 5 + α 2 x 6. S = ûĥt = (û(α), û(α 2 ), û(α 3 ), û(α 4 ), û(α 5 )) = (1, 1, α 5, α 2, α 4 ) ja syndromipolynomiksi tulee S(x) = 1 + x + α 5 x 2 + α 2 x 3 + α 4 x 4. Topi Törmä Matemaattisten tieteiden laitos 11 / 14
1. Nyt I 0 = {4} ja σ 0 (x) = 1 α 4 x = 1 α 3 x. 2. Muodostetaan û = (α 4, α 3, α 6, 0, α 2, α 4, α 2 ) ja vastaava polynomi Tällöin û(x) = α 4 + α 3 x + α 6 x 2 + α 2 x 4 + α 4 x 5 + α 2 x 6. S = ûĥt = (û(α), û(α 2 ), û(α 3 ), û(α 4 ), û(α 5 )) = (1, 1, α 5, α 2, α 4 ) ja syndromipolynomiksi tulee S(x) = 1 + x + α 5 x 2 + α 2 x 3 + α 4 x 4. 3. Muunnettu syndromipolynomi on nyt S 0 (x) = σ 0 (x)s(x) = (1 α 3 x)(1 + x + α 5 x 2 + α 2 x 3 + α 4 x 4 ) 1 + αx + α 2 x 2 + α 4 x 3 + x 4 (mod x 5 ). Topi Törmä Matemaattisten tieteiden laitos 11 / 14
4. Ratkaistaan kongruenssista σ 1 (x)s 0 (x) ω(x) (mod x r ) polynomit σ 1 (x) ja ω(x). Nyt µ = 5 1 2 = 2 ja ν = 2. Topi Törmä Matemaattisten tieteiden laitos 12 / 14
4. Ratkaistaan kongruenssista σ 1 (x)s 0 (x) ω(x) (mod x r ) polynomit σ 1 (x) ja ω(x). Nyt µ = 5 1 2 = 2 ja ν = 2. 4.1. Eukleideen algoritmi antaa x 5 = (x α 4 )S 0 (x) + α 4 x 3 + α 5 x 2 + α 4 x + α 4 = q 1 (x)s 0 (x) + r 1 (x), S 0 (x) = (α 3 x + α 5 )r 1 (x) + α 4 x 2 + α 5 x + α 6 = q 2 (x)r 1 (x) + r 2 (x). Koska deg r 2 2, niin Lauseen 5.5.8 mukaan saatiin k = 2 ja i q i (x) r i (x) 1 x + α 4 α 4 x 3 + α 5 x 2 + α 4 x + α 4 2 α 3 x + α 5 α 4 x 2 + α 5 x + α 6 Topi Törmä Matemaattisten tieteiden laitos 12 / 14
4. Ratkaistaan kongruenssista σ 1 (x)s 0 (x) ω(x) (mod x r ) polynomit σ 1 (x) ja ω(x). Nyt µ = 5 1 2 = 2 ja ν = 2. 4.1. Eukleideen algoritmi antaa x 5 = (x α 4 )S 0 (x) + α 4 x 3 + α 5 x 2 + α 4 x + α 4 = q 1 (x)s 0 (x) + r 1 (x), S 0 (x) = (α 3 x + α 5 )r 1 (x) + α 4 x 2 + α 5 x + α 6 = q 2 (x)r 1 (x) + r 2 (x). Koska deg r 2 2, niin Lauseen 5.5.8 mukaan saatiin k = 2 ja i q i (x) r i (x) 1 x + α 4 α 4 x 3 + α 5 x 2 + α 4 x + α 4 2 α 3 x + α 5 α 4 x 2 + α 5 x + α 6 4.2. Edelleen b 1 (x) = q 1 (x) = x + α 4 ja b 2 (x) = q 2 (x)b 1 (x) + b 0 (x) = α 3 x 2 + α 4 x + α 6, σ 1 (x) = b 2 (0) 1 b 2 (x) = 1 + α 5 x + α 4 x 2, ω(x) = b 2 (0) 1 r 2 (x) = 1 + α 6 x + α 5 x 2. Topi Törmä Matemaattisten tieteiden laitos 12 / 14
5. Kokeilemalla havaitaan, että σ 1 (1) = 1 + α 5 + α 4 = 0 ja σ 1 (α 3 ) = 1 + α 8 + α 10 = 1 + α + α 3 = 0. Koska α i = α i 1 ja 1 1 = 1 = α 1 sekä (α 3 ) 1 = α 4 = α 5, niin virhekohtien joukko on I 1 = {1, 5} ja σ(x) = σ 0 (x)σ 1 (x) = 1 + α 2 x + α 2 x 2 + x 3. Topi Törmä Matemaattisten tieteiden laitos 13 / 14
5. Kokeilemalla havaitaan, että σ 1 (1) = 1 + α 5 + α 4 = 0 ja σ 1 (α 3 ) = 1 + α 8 + α 10 = 1 + α + α 3 = 0. Koska α i = α i 1 ja 1 1 = 1 = α 1 sekä (α 3 ) 1 = α 4 = α 5, niin virhekohtien joukko on I 1 = {1, 5} ja σ(x) = σ 0 (x)σ 1 (x) = 1 + α 2 x + α 2 x 2 + x 3. 6. Lasketaan ê i = α iω(α 1 i ) h i σ (α 1, kun i = 1, 4, 5. Tässä i ) σ (x) = α 2 + x 2 ja h i = α i = α i 1, joten ê 1 = 1 + α6 + α 5 α 2 + 1 ê 5 = 1 + α2 + α 3 α 2 + α 1 = α 3 ja ê = (α 4, 0, 0, α, α 3, 0, 0). = α 4, ê 4 = 1 + α3 + α 1 α 2 + α 6 = α, Topi Törmä Matemaattisten tieteiden laitos 13 / 14
7. Nyt voidaan laskea todennäköisimmin lähetetty sana: c = û ê = (α 4, α 3, α 6, 0, α 2, α 4, α 2 ) ê = (0, α 3, α 6, α, α 5, α 4, α 2 ). Vastaava polynomi on c(x) = α 3 x + α 6 x 2 + αx 3 + α 5 x 4 + α 4 x 5 + α 2 x 6 ja laskemalla havaitaan, että c(α) = c(α 2 ) = = c(α 5 ) = 0, kuten pitääkin. Topi Törmä Matemaattisten tieteiden laitos 14 / 14