Algebralliset menetelmät virheenkorjauskoodin tunnistamisessa

Samankaltaiset tiedostot
TIIVISTELMÄRAPORTTI. Algebralliset menetelmät virheenkorjauskoodin tunnistuksessa

esimerkkejä erilaisista lohkokoodeista

Koodausteoria, Kesä 2014

TIIVISTELMÄRAPORTTI. Virheenkorjauskoodien tunnistus signaalitiedustelussa

Ongelma 1: Onko datassa tai informaatiossa päällekkäisyyttä?

Koodausteoria, Kesä 2014

Digitaalitekniikan matematiikka Luku 13 Sivu 1 (10) Virheen havaitseminen ja korjaus

Koodausteoria, Kesä 2014

MAANPUOLUSTUSKORKEAKOULU VIRHEENKORJAUSALGORITMIT. Kandidaatintutkielma. Kadetti Ville Parkkinen. 99. kadettikurssi Maasotalinja

TLT-5400 DIGITAALINEN SIIRTOTEKNIIKKA

Reedin ja Solomonin koodit Katariina Huttunen

Koodausteoria, Kesä 2014

INFORMAATIOTEORIA & KOODAUS TÄRKEIMPIEN ASIOIDEN KERTAUS A Tietoliikennetekniikka II Osa 28 Kari Kärkkäinen Syksy 2015

Luku- ja merkkikoodit. Digitaalitekniikan matematiikka Luku 12 Sivu 1 (15)

Koodausteoria, Kesä 2014

Tietotekniikan valintakoe

Säännöllisen kielen tunnistavat Turingin koneet

Laskennan mallit (syksy 2009) Harjoitus 11, ratkaisuja

Signaalien datamuunnokset. Digitaalitekniikan edut

Signaalien datamuunnokset

Kaksi pistettä määräävät suoran, kolme paraabelin miten tämä selittää QR-koodin toiminnan

Radioamatöörikurssi 2016

A! Modulaatioiden luokittelu. Luento 4: Digitaaliset modulaatiokonstellaatiot, symbolijonolähetteet. ELEC-C7230 Tietoliikenteen siirtomenetelmät

Turingin koneen laajennuksia

Koodausteoria, Kesä 2014

KONVOLUUTIOKOODIT A Tietoliikennetekniikka II Osa 25 Kari Kärkkäinen Syksy 2015

JOHDANTO VIRHEENKORJAAVAAN KOODAUKSEEN KANAVAKOODAUSMENETELMÄT A Tietoliikennetekniikka II Osa 22 Kari Kärkkäinen Syksy 2015

SGN-1200 Signaalinkäsittelyn menetelmät Välikoe

SGN-1200 Signaalinkäsittelyn menetelmät, Tentti

Mediaanisuodattimet. Tähän asti käsitellyt suodattimet ovat olleet lineaarisia. Niille on tyypillistä, että. niiden ominaisuudet tunnetaan hyvin

4. Tehtävässä halutaan todistaa seuraava ongelma ratkeamattomaksi:

Koodausteoria, Kesä 2014

Kokonaislukuoptimointi

Laskennan teoria (kevät 2006) Harjoitus 3, ratkaisuja

Se mistä tilasta aloitetaan, merkitään tyhjästä tulevalla nuolella. Yllä olevassa esimerkissä aloitustila on A.

pitkittäisaineistoissa

S09 04 Kohteiden tunnistaminen 3D datasta

811120P Diskreetit rakenteet

Algoritmit 2. Luento 9 Ti Timo Männikkö

TL5503 DSK, laboraatiot (1.5 op) Audiosignaalit (ver 1.0) Jyrki Laitinen

WIMAX-järjestelmien suorituskyvyn tutkiminen

Laajennetut Preparata-koodit

KAISTANLEVEYDEN JA TEHON KÄYTÖN KANNALTA OPTIMAALINEN MODULAATIO TRELLISKOODATTU MODULAATIO (TCM)

Algoritmit 2. Luento 9 Ti Timo Männikkö

Dynaamisten systeemien teoriaa. Systeemianalyysilaboratorio II

Laskuharjoitus 4 ( ): Tehtävien vastauksia

Korkean resoluution ja suuren kuva-alueen SAR

Hammastankohissin modernisointi. Heikki Laitasalmi

Tietojen haku ja raportit

HÄLYRI-SOVELLUKSEN KÄYTTÖOHJEET

Ongelma 1: Miten tieto kannattaa koodata, jos sen halutaan olevan hyvin vaikeasti luettavaa?

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

SGN-1200 Signaalinkäsittelyn menetelmät, Tentti

Laskuharjoitus 2 ( ): Tehtävien vastauksia

Lineaariset kongruenssiyhtälöryhmät

Vapaapäivien optimointi

Radioamatöörikurssi 2017

1 Määrittele seuraavat langattoman tiedonsiirron käsitteet.

Äänekosken lukio Mab4 Matemaattinen analyysi S2016

TL5503 DSK, laboraatiot (1.5 op) Suodatus 2 (ver 1.0) Jyrki Laitinen

Matematiikan tukikurssi

VIRHEENKORJAUS JA -ILMAISU

Koodaamme uutta todellisuutta FM Maarit Savolainen

Matlab-tietokoneharjoitus

JATKUVAN AWGN-KANAVAN KAPASITEETTI SHANNON-HARTLEY -LAKI

TURBOKOODAUS. Miten turbokoodaus eroaa konvoluutiokoodauksesta? A Tietoliikennetekniikka II Osa 26 Kari Kärkkäinen Syksy 2015

T kevät 2007 Laskennallisen logiikan jatkokurssi Laskuharjoitus 1 Ratkaisut

isomeerejä yhteensä yhdeksän kappaletta.

MONITILAISET TIEDONSIIRTOMENETELMÄT TÄRKEIMPIEN ASIOIDEN KERTAUS A Tietoliikennetekniikka II Osa 18 Kari Kärkkäinen Syksy 2015

Liikehavaintojen estimointi langattomissa lähiverkoissa. Diplomityöseminaari Jukka Ahola

on rekursiivisesti numeroituva, mutta ei rekursiivinen.

33. pohjoismainen matematiikkakilpailu 2019 Ratkaisut

Pysähtymisongelman ratkeavuus [Sipser luku 4.2]

Ohjelmassa muuttujalla on nimi ja arvo. Kääntäjä ja linkkeri varaavat muistilohkon, jonne muuttujan arvo talletetaan.

Tietorakenteet ja algoritmit

5.3 Ratkeavia ongelmia

SIGNAALITEORIAN JATKOKURSSI 2003

ReplicaX työkalu avointen datakopioiden luomiseen

815338A Ohjelmointikielten periaatteet Harjoitus 7 Vastaukset

Matriisilaskenta Laskuharjoitus 5 - Ratkaisut / vko 41

Shannonin ensimmäinen lause

Matematiikan johdantokurssi, syksy 2016 Harjoitus 11, ratkaisuista

Väliraportti: Vesipistekohtainen veden kulutuksen seuranta, syksy Mikko Kyllönen Matti Marttinen Vili Tuomisaari

pitkittäisaineistoissa

Algoritmit 2. Luento 10 To Timo Männikkö

Tilastolliset ohjelmistot A. Pinja Pikkuhookana

Avaa ohjelma ja tarvittaessa Tiedosto -> Uusi kilpailutiedosto

Käyttöohje LogiComm ohjausjärjestelmä

AS Automaation signaalinkäsittelymenetelmät. Tehtävä 1. Käynnistä fuzzy-toolboxi matlabin komentoikkunasta käskyllä fuzzy.

Ongelma(t): Mikä on Turingin kone? Miten Turingin kone liittyy funktioihin ja algoritmeihin? Miten Turingin kone liittyy tietokoneisiin?

Lahden kaupunki ja EUREF, kokemuksia 7-vuoden yhteiselosta. EUREF-päivä

Insinöörimatematiikka D

Testaa: Vertaa pinon merkkijono syötteeseen merkki kerrallaan. Jos löytyy ero, hylkää. Jos pino tyhjenee samaan aikaan, kun syöte loppuu, niin

Plagioinnin tunnistaminen lähdekielisistä ohjelmista

Zeon PDF Driver Trial

Jos sekaannuksen vaaraa ei ole, samastamme säännöllisen lausekkeen ja sen esittämän kielen (eli kirjoitamme R vaikka tarkoitammekin L(R)).

SYMBOLIVIRHETODENNÄKÖISYYDESTÄ BITTIVIRHETODENNÄKÖISYYTEEN

Kuva maailmasta Pakettiverkot (Luento 1)

jens 1 matti Etäisyydet 1: 1.1 2: 1.4 3: 1.8 4: 2.0 5: 3.0 6: 3.6 7: 4.0 zetor

Algoritmit 2. Luento 12 To Timo Männikkö

Transkriptio:

Algebralliset menetelmät virheenkorjauskoodin tunnistamisessa Jyrki Lahtonen, Anni Hakanen, Taneli Lehtilä, Toni Hotanen, Teemu Pirttimäki, Antti Peltola Turun yliopisto MATINE-tutkimusseminaari, 16.11.2017

Johdanto Tutkimusongelma: Virheenkorjauskoodin tunnistaminen havaitusta radiosignaalista. Oletuksenamme on, että radiosignaali on jo tulkittu biteiksi. Seuraavana askeleena signaalin käsittelyssä olisi kanavakoodauksen purkaminen. Olemme kehittäneet tunnistusalgoritmeja konvoluutiokoodien ja Reedin-Solomonin koodien tunnistamiseen binäärisyötteestä. Nämä ovat virheenkorjauskoodeja, joilla on paljon algebrallista rakennetta ja sen vuoksi tunnistettavissa pienehköstä datamäärästä. Tunnistusmenetelmät on implementoitu Matlab- ja Mathematica-ohjelmistoilla.

Konvoluutiokoodeista

Konvoluutiokoodit Virheenkorjauskoodi, jolla viesti koodataan muutaman bitin pätkissä. Kooderin rakenne ilmaistaan generaattorimatriisilla. Esimerkki: ( ) 1 + D 1 + D 1 G = 0 D 1 + D Tärkeitä parametreja: generaattorimatriisin koko ja ulkoinen aste (koodauksen kompleksisuus), vapaa etäisyys (virheenkorjauskyky).

Gray-koodit Kiinnitetään koodisanojen pituus n. Järjestetään kaikki n pituiset koodisanat siten, että seuraava sana eroaa edellisestä yhden bitin kohdalla. Esimerkiksi kun n = 2, eräs Gray-koodi on {00, 10, 11, 01}.

M-QAM Im 11 10 00 Re 01 01 00 10 11

DQAM Lähde: Weber, W. J., Differential encoding formultiple amplitude and phase shift keying systems, IEEE Trans. Comms., vol. 26, no. 3, Mar. 1978, pp. 385 391. Copyright c 1978 IEEE.

ADQAM Lähde: Hwang J, Chiu Y, Liao C. Angle differential-qam scheme for resolving phase ambiguity in continuous transmission system. Int. J. Communication Systems, 2008. 21(6):631 641. Copyright c 2007 John Wiley & Sons, Ltd.

Muunnokset & siirtymät Gray-koodista toiseen voidaan siirtyä bittien permutoinnin ja vakiovektorin lisäämisen avulla. Kun saatu signaali on muunnettu binääriseksi jonkin QAM-mallin ja Gray-koodin mukaan, käytetty Gray-koodi voidaan vaihtaa toiseen permutoimalla bittejä ja lisäämällä vakiovektori. Väärä Gray-koodi sekoittaa viestin rakennetta. Väärin tulkittu viesti on kuitenkin jonkin konvoluutiokooderin ulostulo. Tällaiselle kooderille saadaan generaattorimatriisi muokkaamalla alkuperäisen koodin generaattorimatriisia.

Tunnistus & valinta Menetelmä konvoluutiokoodin generaattorimatriisin tunnistamiseen binäärisestä viestistä on jo olemassa. Väärällä Gray-koodilla saatu generaattorimatriisi on kuitenkin pääsääntöisesti suurempi kuin alkuperäinen. Oikea generaattorimatriisi ja Gray-koodi voidaan tunnistaa käymällä kaikki vaihtoehdot läpi ja valitsemalla koodi, jolla on parhaat ominaisuudet (oletamme, että viestin lähettäjä käyttää hyvää kanavakoodausta).

Reedin-Solomonin koodeista

RS-koodin määrittely RS-koodit määritellään käyttäen aakkostona äärellistä kuntaa F q. Usein käytössä on esimerkiksi 256-alkioinen kunta F 2 8, jolloin koodisanojen symbolit voidaan esittää 8 bitillä. RS-koodit voidaan määritellä useilla tavoilla. Eräs tavallinen tapa on määritellä RS-koodi C, jonka pituus on n < 256 ja dimensio k, joukkona C = {m(x)g(x) m(x) F 2 8[x], deg(m(x)) < k}, missä g(x) F 2 8[x] on RS-koodin generaattoripolynomi, deg(g(x)) = n k.

RS-koodien tunnistaminen RS-koodi siis määräytyy käytetystä äärellisestä kunnasta, koodin pituudesta n, dimensiosta k sekä koodin generaattoripolynomista g(x). Tavoitteena on ensinnäkin kyetä tunnistamaan, onko bittijono tuotettu RS-koodilla, ja jos on, niin lisäksi pystyä tunnistamaan siitä kyseiset koodin määräävät parametrit. Olemme käsitelleet sekä tilannetta, jossa jo tunnemme tavan muuttaa binääriset koodiviestit kunnan alkioiksi, että tapausta, jossa ei ole tiedossa, miten tämä muunnos tehdään. Molempiin tilanteisiin on kehitetty luotettavia tunnistusmenetelmiä.

RS-koodien tunnistaminen Helpommassa tapauksessa, kun bittikombinaatiot on jo osattu tulkita äärellisen kunnan alkioiksi, RS-koodin tunnistaminen pystytään tekemään yleensä jo yhdenkin havaitun koodisanan perusteella tarkastelemalla sen nollakohtia. Nollakohdista voidaan päätellä koodin generaattoripolynomi. Bittikombinaatioiden tulkitseminen oikein äärellisen kunnan alkioiksi, esimerkiksi tavun muuntaminen kunnan F 2 8 alkioksi, onkin huomattavasti haastavampi tehtävä. Tämä muunnos voitaisiin periaatteessa tehdä hyvin useilla eri tavoilla, mutta järkeviä vaihtoehtoja on kuitenkin rajoitetusti. Mielellään tämä pitäisi pystyä havaitsemaan datasta.

RS-koodien tunnistaminen Ongelman ratkaisemiseen on implementoitu kaksi erilaista tunnistusalgoritmia. Molemmat näistä menetelmistä perustuvat RS-koodin sykliseen rakenteeseen ja hyödyntävät sitä hieman eri tavoin. Esimerkiksi kunnan F 2 8 yli määritellyn k-dimensioisen RS-koodin tunnistamiseksi tarvitaan havainto noin 8k koodilohkosta. RS-koodien syklisyyden vuoksi jokaisesta havaitusta koodilohkosta pystytään kuitenkin tuottamaan k kappaletta koodin sanoja, joten dataa tarvitaan käytännössä noin 8 koodisanan verran. Koodin parametrit pystytään selvittämään etsimällä binääriselle RS-koodille systemaattinen generaattorimatriisi tai vaihtoehtoisesti niin sanotuilla Gröbnerin kannoilla polynomialgebraa käyttäen.

RS-koodien tunnistaminen Kehitetyillä tunnistusalgoritmeilla pystytään luotettavasti erottamaan, onko bittijono sattumanvaraisesti generoitu vaiko tuotettu jollain RS-koodilla. Koodilohkojen pituus pystytään usein saamaan selville, vaikka ne sisältäisivät joitain bittivirheitä, mutta kaikkien RS-koodin parametrien tunnistamiseksi havaitun datan tulee kuitenkin olla täysin virheetöntä. Koodin tunnistamiseen liittyy myös monikäsitteisyyttä, jonka merkitystä on tutkittu. Erityisestikin bittiyhdistelmien kuvaus kunnan alkioiksi voidaan tehdä tietyillä eri tavoilla ja onnistua silti tunnistamaan koodin parametrit oikein.