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: 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. Topi Törmä Matemaattisten tieteiden laitos 2 / 17
3.5 Reedin-Mullerin koodit Olkoon tässä kappaleessa F = F2 = Z2 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. Tarkastellaan m n-matriisia M, jonka sarakkeina ovat lukujen 0, 1,..., 2 m 1 binääriesitykset. Merkitään matriisin rivejä vektoreilla v m, v m 1,..., v 1 F n ja sarakkeita vektoreilla s 0, s 1,..., s n 1 F (m). Topi Törmä Matemaattisten tieteiden laitos 2 / 17
Tällöin ξ m0 ξ m1 ξ m(n 1) ξ (m 1)0 ξ (m 1)1 ξ (m 1)(n 1) M =...... = ξ 10 ξ 11 ξ 1(n 1) = [ s 0 s 1 s n 1 ] F m n, missä v i = [ ] ξ i0 ξ i1 ξ i(n 1), sj = ξ mj ξ (m 1)j. ξ 1j ja v m v m 1 j = m i=1 ξ ij2 i 1, ξ ij {0, 1}, luvun j {0, 1,..., 2 m 1} binääriesitys.. v 1 Topi Törmä Matemaattisten tieteiden laitos 3 / 17
Merkitään ξ ij = v i (j) = s j (i) kaikilla i = 1,..., m ja j = 0, 1,..., n 1 sekä A i = {s j F (m) s j (i) = 1} = {s j F (m) v i (j) = 1}. Tällöin A i = 2 m 1. Topi Törmä Matemaattisten tieteiden laitos 4 / 17
Merkitään ξ ij = v i (j) = s j (i) kaikilla i = 1,..., m ja j = 0, 1,..., n 1 sekä A i = {s j F (m) s j (i) = 1} = {s j F (m) v i (j) = 1}. Tällöin A i = 2 m 1. Lisäksi jos luvut i 1, i 2,..., i k {1,..., m} ovat erisuuria, niin A i1 A i2... A ik = {s j F (m) v ih (j) = 1 kaikilla h = 1,..., k} ja A i1 A i2... A ik = 2 m k. = {s j F (m) (v i1 v i2... v ik )(j) = 1} Topi Törmä Matemaattisten tieteiden laitos 4 / 17
Merkitään ξ ij = v i (j) = s j (i) kaikilla i = 1,..., m ja j = 0, 1,..., n 1 sekä A i = {s j F (m) s j (i) = 1} = {s j F (m) v i (j) = 1}. Tällöin A i = 2 m 1. Lisäksi jos luvut i 1, i 2,..., i k {1,..., m} ovat erisuuria, niin A i1 A i2... A ik = {s j F (m) v ih (j) = 1 kaikilla h = 1,..., k} ja A i1 A i2... A ik = 2 m k. Lause 3.5.1. = {s j F (m) (v i1 v i2... v ik )(j) = 1} Jos luvut i 1, i 2,..., i k ovat erisuuria, niin wt(v i1 v i2 v ik ) = 2 m k. Topi Törmä Matemaattisten tieteiden laitos 4 / 17
Merkitään v 0 = (1, 1,..., 1) F n. Lause 3.5.2. Joukko V = {v 0 } {v i1 v ik k = 1,..., m} muodostaa avaruuden F n kannan. Topi Törmä Matemaattisten tieteiden laitos 5 / 17
Merkitään v 0 = (1, 1,..., 1) F n. Lause 3.5.2. Joukko V = {v 0 } {v i1 v ik k = 1,..., m} muodostaa avaruuden F n kannan. Todistus: Joukon V vektorien lukumäärä on korkeintaan ( ) ( ) ( ) ( ) m m m m 1 + + + + + = (1 + 1) m = 2 m = n. 1 2 3 m Riittää siis osoittaa, että jokainen luonnollisen kannan vektori E j on esitettävissä joukon V vektorien lineaariyhdisteenä, sillä tällöin väitteen vektorijoukko virittää avaruuden F n ja koska dim F n = n, näitä vektoreita on oltava vähintään n kappaletta. Topi Törmä Matemaattisten tieteiden laitos 5 / 17
Osoitetaan, että ( )( E j = v i = ξ ij =1 ξ ij =0 ) (v i + v 0 ) = m (v i + (1 + v i (j))v 0 ). i=1 m (v i + (1 + ξ ij )v 0 ) i=1 Topi Törmä Matemaattisten tieteiden laitos 6 / 17
Osoitetaan, että ( )( E j = v i = ξ ij =1 ξ ij =0 ) (v i + v 0 ) = m (v i + (1 + v i (j))v 0 ). i=1 m (v i + (1 + ξ ij )v 0 ) i=1 Huomaa, että yhtälön oikea puoli voidaan purkaa joukon V vektoreiden lineaariyhditeeksi. Nyt yhtälön oikean puolen komponentti r on 1 vektorin (v i + (1 + v i (j))v 0 ) komponentti r on 1 kaikilla i = 1,..., m v i (r) = 1, kun v i (j) = 1 ja v i (r) = 0, kun v i (j) = 0 r = j. Tässä viimeinen yhtäsuuruus seuraa siitä, että matriisin M sarakkeet ovat erisuuria. Topi Törmä Matemaattisten tieteiden laitos 6 / 17
Määritelmä 3.5.3. 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. Topi Törmä Matemaattisten tieteiden laitos 7 / 17
Määritelmä 3.5.3. 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. Huom. R(m, m) = F 2m. Topi Törmä Matemaattisten tieteiden laitos 7 / 17
Lause 3.5.4. 2 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). Topi Törmä Matemaattisten tieteiden laitos 8 / 17
Lause 3.5.4. 2 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 3.5.1 nojalla wt(ab) = 2 m s, joka on parillinen, koska s < m. Topi Törmä Matemaattisten tieteiden laitos 8 / 17
Lause 3.5.4. 2 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 3.5.1 nojalla wt(ab) = 2 m s, joka on parillinen, koska s < m. Siten a b = 0 aina, kun a on koodin R(r, m) kantavektori ja b on koodin R(m r 1, m) kantavektori. Näin ollen x y = 0 kaikilla x R(r, m) ja y R(m r 1, m), joten R(m r 1, m) R(r, m). Topi Törmä Matemaattisten tieteiden laitos 8 / 17
Lisäksi dim R(m r 1, m) = m r 1 i=0 ( ) m i ( ( ) ( ) ) m m m = + + + 0 1 m r 1 ( ) ( ) ( ) m m m m = + + + = m m 1 r + 1 m ( ) m r ( ) m r ( ) m = = 2 m i i i i=0 i=0 i=0 = n dim R(r, m) = dim R(r, m), joten R(m r 1, m) = R(r, m). i=r+1 ( ) m i Topi Törmä Matemaattisten tieteiden laitos 9 / 17
Lause 3.5.5. Koodin R(r, m) minimietäisyys on 2 m r. Topi Törmä Matemaattisten tieteiden laitos 10 / 17
Lause 3.5.5. Koodin R(r, m) minimietäisyys on 2 m r. Todistus: Koska d min R(r, m) = min{wt(x) x R(r, m)}, niin Lauseen 3.5.1 nojalla d min R(r, m) 2 m r. Osoitetaan induktiolla luvun m suhteen, että d min R(r, m) 2 m r. Topi Törmä Matemaattisten tieteiden laitos 10 / 17
Lause 3.5.5. Koodin R(r, m) minimietäisyys on 2 m r. Todistus: Koska d min R(r, m) = min{wt(x) x R(r, m)}, niin Lauseen 3.5.1 nojalla d min R(r, m) 2 m r. Osoitetaan induktiolla luvun m suhteen, 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 = 2 1 0. Lisäksi R(1, 1) = {00, 10, 01, 11}, joten d min R(1, 1) = 1 = 2 1 1 ja väite pätee, kun m = 1. Topi Törmä Matemaattisten tieteiden laitos 10 / 17
Lause 3.5.5. Koodin R(r, m) minimietäisyys on 2 m r. Todistus: Koska d min R(r, m) = min{wt(x) x R(r, m)}, niin Lauseen 3.5.1 nojalla d min R(r, m) 2 m r. Osoitetaan induktiolla luvun m suhteen, 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 = 2 1 0. Lisäksi R(1, 1) = {00, 10, 01, 11}, joten d min R(1, 1) = 1 = 2 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. Topi Törmä Matemaattisten tieteiden laitos 10 / 17
Koodi R(0, m + 1) on 2 m+1 -pituinen toistokoodi, jonka minietäisyys on 2 m+1 0 eli väite pätee, kun r = 0. Kun 0 k m, niin harjoituksen 4 tehtävän 1 mukaan R(k + 1, m + 1) = {(u, u + v) u R(k + 1, m), v R(k, m)}. Topi Törmä Matemaattisten tieteiden laitos 11 / 17
Koodi R(0, m + 1) on 2 m+1 -pituinen toistokoodi, jonka minietäisyys on 2 m+1 0 eli väite pätee, kun r = 0. Kun 0 k m, niin harjoituksen 4 tehtävän 1 mukaan R(k + 1, m + 1) = {(u, u + v) u R(k + 1, m), v R(k, m)}. Edelleen harjoituksen 3 tehtävän 5 ja induktio-oletuksen mukaan d min R(k + 1, m + 1) min{2d min R(k + 1, m), d min R(k, m)} min{2 2 m (k+1), 2 m k } = 2 m k = 2 m+1 (k+1). Näin ollen d min R(r, m + 1) 2 m+1 r myös kun 1 r m + 1 ja saadaan väite. Topi Törmä Matemaattisten tieteiden laitos 11 / 17
Koodi R(0, m + 1) on 2 m+1 -pituinen toistokoodi, jonka minietäisyys on 2 m+1 0 eli väite pätee, kun r = 0. Kun 0 k m, niin harjoituksen 4 tehtävän 1 mukaan R(k + 1, m + 1) = {(u, u + v) u R(k + 1, m), v R(k, m)}. Edelleen harjoituksen 3 tehtävän 5 ja induktio-oletuksen mukaan d min R(k + 1, m + 1) min{2d min R(k + 1, m), d min R(k, m)} min{2 2 m (k+1), 2 m k } = 2 m k = 2 m+1 (k+1). Näin ollen d min R(r, m + 1) 2 m+1 r myös kun 1 r m + 1 ja saadaan väite. Koodi R(r, m) on näin ollen 2 m r 1 1 virhettä korjaava koodi. Topi Törmä Matemaattisten tieteiden laitos 11 / 17
RM-koodien koodaus ja dekoodaus Tarkastellaan koodia R(r, m). Sen kantavektoreiden lukumäärä on ( ) ( ) m m M = 1 + + +. 1 r Tällöin vektori a = (a 0, a 1,..., a M 1 ) on luonnollista (mutta ei systemaattista) koodata vektoriksi c = a 0 v 0 + a 1 v 1 + + a M 1 v m r 1 v m. (2) Topi Törmä Matemaattisten tieteiden laitos 12 / 17
RM-koodien koodaus ja dekoodaus Tarkastellaan koodia R(r, m). Sen kantavektoreiden lukumäärä on ( ) ( ) m m M = 1 + + +. 1 r Tällöin vektori a = (a 0, a 1,..., a M 1 ) on luonnollista (mutta ei systemaattista) koodata vektoriksi c = a 0 v 0 + a 1 v 1 + + a M 1 v m r 1 v m. (2) Olkoon k {0, 1,..., m}, i 1 < i 2 <... < i k ja olkoon C(i 1,..., i k ) sellaisten lukujen m j = ξ ij 2 i 1 i=1 joukko, että ξ ij = 0 kaikilla i / {i 1,..., i k }. Topi Törmä Matemaattisten tieteiden laitos 12 / 17
RM-koodien koodaus ja dekoodaus Tarkastellaan koodia R(r, m). Sen kantavektoreiden lukumäärä on ( ) ( ) m m M = 1 + + +. 1 r Tällöin vektori a = (a 0, a 1,..., a M 1 ) on luonnollista (mutta ei systemaattista) koodata vektoriksi c = a 0 v 0 + a 1 v 1 + + a M 1 v m r 1 v m. (2) Olkoon k {0, 1,..., m}, i 1 < i 2 <... < i k ja olkoon C(i 1,..., i k ) sellaisten lukujen m j = ξ ij 2 i 1 i=1 joukko, että ξ ij = 0 kaikilla i / {i 1,..., i k }. Huom! Kun k = 0, niin C( ) = {0} ja kun k = m, niin C(1,..., m) = {0, 1,..., 2 m 1}. Topi Törmä Matemaattisten tieteiden laitos 12 / 17
Tällöin Lauseen 3.5.2 todistuksen nojalla E j = m (v i + (1 + ξ ij )v 0 ) i=1 = (v 1 + (1 + ξ 1j )v 0 )(v 2 + (1 + ξ 2j )v 0 )... (v m + (1 + ξ mj )v 0 ), missä ξ ij = v i (j), joten v i1... v ik 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 ). Topi Törmä Matemaattisten tieteiden laitos 13 / 17
Tällöin Lauseen 3.5.2 todistuksen nojalla E j = m (v i + (1 + ξ ij )v 0 ) i=1 = (v 1 + (1 + ξ 1j )v 0 )(v 2 + (1 + ξ 2j )v 0 )... (v m + (1 + ξ mj )v 0 ), missä ξ ij = v i (j), joten v i1... v ik 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. Topi Törmä Matemaattisten tieteiden laitos 13 / 17
Kun f = (f 0,..., f n 1 ) F n, niin n 1 n 1 m f = f j E j = f j = j=0 m k=0 (i 1,...,i k ) j=0 ( j C(i 1,...,i k ) k=0 (i 1,...,i k ) j C(i 1,...,i k ) v i1 v i2 v ik f j )v i1 v i2 v ik. (3) Topi Törmä Matemaattisten tieteiden laitos 14 / 17
Kun f = (f 0,..., f n 1 ) F n, niin n 1 n 1 m f = f j E j = f j = j=0 m k=0 (i 1,...,i k ) j=0 ( j C(i 1,...,i k ) k=0 (i 1,...,i k ) j C(i 1,...,i k ) v i1 v i2 v ik f j )v i1 v i2 v ik. (3) 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 = j C(i 1,...,i r ) f j. (4) Topi Törmä Matemaattisten tieteiden laitos 14 / 17
Jos t / {i 1,..., i r }, niin yhtälössä (3) f j = 0, (5) j C(i 1,...,i r,t) sillä kun f = c, tulossa v i1 v i2 v ik voi olla korkeintaan r tekijää. Topi Törmä Matemaattisten tieteiden laitos 15 / 17
Jos t / {i 1,..., i r }, niin yhtälössä (3) 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. Topi Törmä Matemaattisten tieteiden laitos 15 / 17
Lause 3.5.6. 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. Topi Törmä Matemaattisten tieteiden laitos 16 / 17
Lause 3.5.6. 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. Huomautus: Joukon {0, 1,..., n 1} jako joukoiksi C 1,..., C 2 m r saadaan määräämällä joukot C(i 1,..., i r ) + z, missä z käy läpi kaikki potenssit 2 t 1 ja niiden eri summat. Koska lukuja t / {i 1,..., i r } on m r kappaletta, niin lukuja z on ( ( ) m r m r 0 ) + 1 ) +... + kappaletta. Lauseen 3.5.6 nojalla j C v f j = kaikilla v, w {1, 2,..., 2 m r }. j C w f j ( m r m r = 2 m r Topi Törmä Matemaattisten tieteiden laitos 16 / 17
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 3.5.6 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. Topi Törmä Matemaattisten tieteiden laitos 17 / 17