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 virhe. Dekoodaaja ei tunne vektoria c eikä vektoria e. Näiden löytämiseksi käytetään syndromia. Topi Törmä Matemaattisten tieteiden laitos 2 / 9
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ä 3.3.1. Vektorin x F n syndromiksi sanotaan vektoria s(x) = xh T. Topi Törmä Matemaattisten tieteiden laitos 2 / 9
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ä 3.3.1. 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}. Topi Törmä Matemaattisten tieteiden laitos 2 / 9
Lause 3.3.2. Vektorit x ja y ovat samassa koodin C sivuluokassa täsmälleen silloin, kun niillä on sama syndromi. Topi Törmä Matemaattisten tieteiden laitos 3 / 9
Lause 3.3.2. Vektorit x ja y ovat samassa koodin C sivuluokassa täsmälleen silloin, kun niillä on sama syndromi. Lause 3.3.4. 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. Topi Törmä Matemaattisten tieteiden laitos 3 / 9
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. Topi Törmä Matemaattisten tieteiden laitos 4 / 9
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. Topi Törmä Matemaattisten tieteiden laitos 4 / 9
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. Topi Törmä Matemaattisten tieteiden laitos 4 / 9
Täydellinen standardikaavio vaatii yleensä liikaa tilaa. Koska jokaisella rivillä on sama syndromi, riittää tallentaa sivuluokkien johtajat ja niiden syndromit. (Itse asiassa riittää laskea niiden vektorien syndromit, joiden paino on korkeintaan koodin virheenkorjauskyky.) 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. Topi Törmä Matemaattisten tieteiden laitos 5 / 9
3.4 Hammingin koodit Olkoon H binäärisen lineaarisen koodin tarkistusmatriisi. Jos c on lähetetty ja r = c + e saatu sana, niin Lauseen 3.3.4 mukaan s(r) = eh T on matriisin H niiden sarakkeiden summan transpoosi, joita vastaavissa kohdissa on syntynyt virhe. Topi Törmä Matemaattisten tieteiden laitos 6 / 9
3.4 Hammingin koodit Olkoon H binäärisen lineaarisen koodin tarkistusmatriisi. Jos c on lähetetty ja r = c + e saatu sana, niin Lauseen 3.3.4 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. Topi Törmä Matemaattisten tieteiden laitos 6 / 9
3.4 Hammingin koodit Olkoon H binäärisen lineaarisen koodin tarkistusmatriisi. Jos c on lähetetty ja r = c + e saatu sana, niin Lauseen 3.3.4 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. Esimerkiksi tapauksessa [ ] 1 1 0 1 0 H =, e 1 0 1 0 1 1 = 01000, e 2 = 00010 on e 1 H T = e 2 H T = 10. Topi Törmä Matemaattisten tieteiden laitos 6 / 9
Jos toisaalta matriisin H kaikki sarakkeet ovat nollasta eroavia ja erisuuria sekä wt(e) = 1, missä 1 on koordinaatissa i, niin eh T on matriisin H sarake i transponoituna. Täten yhden bitin virhe voidaan paikallistaa ja korjata. Topi Törmä Matemaattisten tieteiden laitos 7 / 9
Jos toisaalta matriisin H kaikki sarakkeet ovat nollasta eroavia ja erisuuria sekä wt(e) = 1, missä 1 on koordinaatissa i, niin eh T on matriisin H sarake i transponoituna. Täten yhden bitin virhe voidaan paikallistaa ja korjata. Edellä mainittu voidaan todeta myös havaitsemalla, että jos matriisin H sarakkeet ovat nollasta eroavia ja erisuuria, niin matriisin H sarakkeiden epätriviaali lineaarikombinaatio voi olla 0 T vain, jos nollasta eroavien kerrointen lukumäärä on vähintään 3. Lauseen 3.2.8 nojalla d min C 3 ja C on siis yhden virheen korjaava. Näin on esitetty kaksi todistusta seuraavalle lauseelle. Topi Törmä Matemaattisten tieteiden laitos 7 / 9
Lause 3.4.1. Lineaarinen binäärinen koodi on (vähintään) yhden virheen korjaava, jos ja vain jos sen tarkistusmatriisin sarakkeet ovat nollasta eroavia ja erisuuria. Topi Törmä Matemaattisten tieteiden laitos 8 / 9
Lause 3.4.1. Lineaarinen binäärinen koodi on (vähintään) yhden virheen korjaava, jos ja vain jos sen tarkistusmatriisin sarakkeet ovat nollasta eroavia ja erisuuria. Huomautus 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. Topi Törmä Matemaattisten tieteiden laitos 8 / 9
Lause 3.4.1. Lineaarinen binäärinen koodi on (vähintään) yhden virheen korjaava, jos ja vain jos sen tarkistusmatriisin sarakkeet ovat nollasta eroavia ja erisuuria. Huomautus 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. Määritelmä 3.4.2. 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. Topi Törmä Matemaattisten tieteiden laitos 8 / 9
Lause 3.4.3. Binäärinen Hammingin koodi on täydellinen. Topi Törmä Matemaattisten tieteiden laitos 9 / 9
Lause 3.4.3. Binäärinen Hammingin koodi on täydellinen. Huomautus 3.4.4. Koska Hammingin koodi on täydellinen, se dekoodaa väärin kaikki vähintään 2-painoisesti virheelliset sanat. Topi Törmä Matemaattisten tieteiden laitos 9 / 9