1 / 81

Konvoluutiokoodaus

Konvoluutiokoodaus. Konvoluutiokoodauksessa keskeistä on muistin sisällyttäminen koodaukseen. Koodauksen lopputulokseen vaikuttaa myös se mitä on tapahtunut aikaisemmin.

tim
Télécharger la présentation

Konvoluutiokoodaus

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Konvoluutiokoodaus • Konvoluutiokoodauksessa keskeistä on muistin sisällyttäminen koodaukseen. • Koodauksen lopputulokseen vaikuttaa myös se mitä on tapahtunut aikaisemmin. • Merkintä (n, k, m) konvoluutiokoodaus tarkoittaa: n on koodatun symbolin bittipituus, k on alkuperäisen informaatiosymbolin pituus ja m on koodauksen muistin syvyys. tMyn

  2. Esim. (2, 1, 3) konvoluutiokoodauksessa informaatiosymbolin pituus on 1 bitti, koodatun symbolin pituus on 2 bittiä ja kunkin lähtöbitin arvo määräytyy kolmen edeltävän lähtöbitin arvosta. • Siirtorekisteriä voidaan hyvin käyttää edustamaan muistia, kuva 1. tMyn

  3. S In Out A B C D S Kuva 1. Siirtorekisteriesitys yksinkertaisesta konvoluutiokoodauksesta. tMyn

  4. Kunkin näytteenoton hetkellä uusi bitti syötetään sisään vasemmalta, ja sarakkeessa oleva bitti siirtyy yhden position oikealle. • Toteutuksessa muistin syvyys on kolme bittiä. • Lähtöarvo on riippuvainen kaikista neljästä sarakkeesta ja vasemmanpuoleisin bitti edustaa tulobittiä. • Joka kerta kun bitti saapuu tulosarakkeeseen A generoidaan kaksi lähtöbittiä. • Olkoon kuvan lähtökytkin alussa yläasennossaan. Silloin ensimmäinen lähtöbitti on tulobitin ja kolmen aiemmin saapuneen bitin summa. tMyn

  5. Seuraavaksi kytkin siirtyy ala-asentoonsa, ja seuraava lähtöbitti on tulobitin, sitä edeltäneen tulobitin ja kolme arvoa aiemmin tulleen bitin summa. tMyn

  6. Kuvan 1 takaisinkytketty siirtorekisteri suorittaa aikatason konvoluution. • Sekä ylempi että alempi summain voidaan kuvata konvoluutiona missä h on impulssivaste. • Ylemmälle summaimelle impulssivaste h=1111 ja alemmalle summaimelle h=1101. • Impulssivaste saadaan asettamalla ykkönen tuloksi (yksikköimpulssi) ja antamalla sen liukua oikealle. tMyn

  7. Merkitään ylempää ja alempaa impulssivastetta uudella symbolilla ja • Näillä merkinnöillä ylempi ja alempi lähtö voidaan kirjoittaa konvoluutio-operaationa ja • Summaesitysmuotona saadaan ja • Näillä merkinnöillä lähtönä on vuoron perään tMyn

  8. Konvoluutio voidaan myös esittää matriisioperaationa. • Generointimatriisin muoto on • Matriisissa on rivejä yhtä monta kuin mitä on bittejä tulosanassa. tMyn

  9. Paperilla esitettynä matriisimuoto tulee helposti hankalaksi, koska tulobitteinä on elävässä elämässä ”katkeamaton jono” bittejä. Matriisista tulee siis helposti aika iso… • Helpompi tapa esittää konvoluutiokoodaus on käyttää tilakaaviota. • Kuvassa 2 on esitetty kuvan 1 siirtorekisteriesitys tilakaaviona. tMyn

  10. 1 S4 S6 1 1 0 1 1 1 0 0 S2 S5 S7 S0 0 1 1 0 0 0 S1 S3 0 Kuva 2. Tilakaavioesitys kuvan 1 konvoluutiokoodauksesta. tMyn

  11. Järjestelmän muisti edustaa järjestelmän eri tiloja. • Eri tilat löytyvät kolmesta oikean puolimmaisesta sarakkeesta kuvan 1 siirtorekisteristä. • Tulobitti yhdessä järjestelmän tilan kanssa muodostaa lähtöbitit sekä seuraavan tilan. • Eniten merkitsevä bitti on oikean puolimmaisin bitti. • Kuvan 2 tiloina ovat siis jne. • Olkoot esim. tilana • Jos seuraavana tulobittinä on 0, niin silloin siirrytään tilaan tMyn

  12. Koska muisti on kolmen bitin levyinen, on järjestelmässä 8 mahdollista erilaista tilaa. • Lisätään kuvan 2 havainnollisuutta. • Sen lisäksi että kirjoitetaan tilan siirtymisen määräävä tulobitti, niin merkitään myös vastaavat lähtöbitit kenoviivalla eroteltuna, kuva 3. tMyn

  13. 1/00 S4 S6 1/10 0/00 1/11 0/11 1/11 1/01 1/00 0/01 S0 S2 S5 S7 0/00 0/10 1/10 0/10 1/01 0/11 S1 S3 0/01 Kuva 3. Tarkennettu tilakaavio kuvan 1 konvoluutiokoodauksesta. tMyn

  14. Kuvasta 3: Ollaan esim. tilassa , ja tulobittinä vastaanotetaan ykkönen. Bitit ABCD ovat siis nyt 1000 ja lähtöbitteinä ovat 11. • Kuvan 3 tilakaaviota voidaan käyttää rajoitetusti etsittäessä lähtöbitit tietylle tulosekvenssille. • Ajatellaan, että vastaanotetaan koodattua dataa, joka on koodattu kuvan 1 konvoluutiokoodausmenetelmällä. Siirtotiellä on voinut tapahtua virheitä. Miten dekoodaus onnistuu? • Alustava ratkaisu: Käytetään kuvan 3 tilakaaviota hyväksi. Etsitään reitti, joka on mahdollisimman lähellä vastaanotettua koodia. Hankalaa!!... tMyn

  15. Tilakaavion syklisyyden huomioiminen tapahtuu verkkokaavion (trellis) avulla, kuva 4. • Verkon haaroihin ei ole merkitty tulobitin arvoa, koska sovitaan seuraavasti: Vasemmalla ensimmäisellä sarakkeella on rekisterin mahdollinen sisältö, • Ylempi haara kuvaa tilannetta, jossa tulobittinä on 0, ja alempi kuvaa tilannetta, jossa tulobittinä on 1. • Huom! Tilat on laitettava järkevään järjestykseen ensimmäisessä sarakkeessa! Jos ollaan esim. tilassa , niin silloin on mahdollista siirtyä tilaan (ja lähdöksi tulee 11), jos seuraava tulobitti on 1, ja toisena mahdollisuutena on pysyä tilassa (ja lähdöksi tulee 00), jos seuraava tulobitti on 0. tMyn

  16. 00 00 00 00 00 00 S0 11 11 11 11 11 11 11 11 11 S4 11 11 11 11 11 00 00 00 00 00 00 00 00 S2 10 10 10 10 01 01 01 01 S6 01 01 01 01 10 10 10 10 S1 00 00 00 11 11 11 S5 01 01 01 10 10 10 S3 10 10 10 01 01 01 S7 Kuva 4. Verkkokaavio (trellis) kuvan 1 konvoluutiokoodauspiiristä. tMyn

  17. Kun ensimmäisellä sarakkeella (kuva 4) kaikki tilat ovat oikeassa järjestyksessä, niin tilasiirrot ovat silloin seuraavanlaisia: Ylimmältä riviltä siirrytään joko seuraavaan alempaan tai sitten pysytään samalla rivillä. Jos lähdetään toiselta riviltä, niin sitten mennään kolmannelle tai neljännelle riville. Jos lähdetään kolmannelta riviltä, niin sitten mennään joko viidennelle tai kuudennelle riville. Näin jatketaan, kunnes rivit loppuvat. • Kun rivit loppuvat, niin sitten mennään alkuun! Riviltä 5 ei siis mennäkään joko riville 9 tai 10, vaan joko riville 1 tai 2. Riviltä 6 mennään joko riville 3 tai 4 jne… • Lähtöbitit merkitään viivan viereen. tMyn

  18. Viterbi-dekoodaus käyttää hyväksi äskeisen tyyppistä verkkoa etsittäessä koodisymboleja, jotka ovat mahdollisimman lähellä vastaanotettuja (mahdollisesti virheitä sisältäviä) koodisymboleja. tMyn

  19. Viterbi-dekoodauksen perusidean esittäminen on hieman työläs tehtävä, joten otetaan aluksi yksinkertaisempi enkoodausesimerkki, kuva 5. • Kun tulobitti saapuu A-sarakkeeseen, generoi kytkentä kaksi lähtöbittiä. • Muistia edustavat sarakkeet B ja C. • Olkoot lähdössä kytkin alussa yläasennossaan. • Kunkin näytteenoton hetkellä uusi tulobitti syötetään sisään vasemmalta ja sarakkeissa olevat bitit siirtyvät yhden position oikealle. tMyn

  20. S Out In A B C S Kuva 5. (2, 1, 2)-konvoluutioenkoodauskytkentä. tMyn

  21. Olkoot vaikkapa tulobitteinä bitit 101. Alussa rekistereiden • sisältö on 000. Mikä on lähtö? S Hetkellä 1 0 0 1 1 S S Hetkellä 0 0 1 1 0 S tMyn

  22. S Hetkellä 1 1 0 0 0 S S Hetkellä 0 0 1 1 0 S S 0 1 0 Hetkellä 1 1 S tMyn

  23. Lähdöksi saatiin 11 10 00 10 11. • Kytkennän (edelleenkin kuva 5) muisti, kaksi oikean puolimmaista saraketta, edustaa järjestelmän eri tiloja. • Tulobitti yhdessä järjestelmän tilan kanssa muodostaa lähtöbitit ja seuraavan tilan. • Olkoot esim. tilana 11. Jos seuraava tulobitti on 0, niin sellaisessa tapauksessa siirrytään tilaan 01. • Määritellään järjestelmän mahdolliset tilat a=00, b=10, c=01 ja d=11. • Yllä esitetyn päättelyketjun mukaisesti kytkennästä kuvassa 5 voidaan piirtää tilakaavio, kuva 6. tMyn

  24. 00 enkooderin tila lähtöbitit 00 11 11 00 10 01 10 01 01 11 tulobittinä 0 10 tulobittinä 1 Kuva 6. Tilakaavio kuvan 5 enkooderikytkennästä. tMyn

  25. Varmistetaan seuraavaksi, että kytkennän muistilla on vaikutus lopputulokseen. • Olkoot aluksi niin, että tulobitteinä on ensimmäiseksi 11011, ja loput tulobitit ovat nollia niin kauan kunnes rekisterit ovat kaikki nollia. Rekisterien sisältö on alussa 000. Lasketaan lähtöbitit, taulu 1: tMyn

  26. tila hetkellä tila hetkellä Taulu 1. Kuvan 5 enkooderin tuottama lähtö silloin kun tulobitteinä on m=11011 ja kun rekisterien sisältö on alussa 000. tMyn

  27. Lähdöksi saatiin 11 01 01 00 01 01 11. • Toistetaan edellinen esimerkki sillä erotuksella, että nyt kaksi edeltävää bittiä ovat arvoltaan 11 (kolmas on tuntematon x), taulu 2: tMyn

  28. tila hetkellä tila hetkellä Taulu 2. Kuvan 5 enkooderin tuottama lähtö silloin kun tulobitteinä on m=11011 ja kun rekisterien sisältö on alussa 11x. tMyn

  29. Lähdöksi saatiin tällä kertaa 10 10 01 00 01 01 11. • Eli lähtö on riippuvainen aikaisemmasta tilasta! tMyn

  30. Tilakaavio kuvaa hyvin enkooderin toiminnan, mutta siitä puuttuu aikaulottuvuus. • Aikaulottuvuuden mukaan ottaminen tapahtuu esim. puukaavion (tree diagram) avulla. • Puukaaviota luetaan vasemmalta oikealle. • Koodisana löytyy seuraavasti: jos tulobittinä on 0, niin silloin siirrytään ylöspäin seuraavaan haaraan. • Jos taas tulobittinä on 1, niin sitten siirrytään alaspäin seuraavaan haaraan. • Oletetaan, että lähdetään liikkeelle tilasta 00 (=a), ja piirretään puukaavio kuvan 5 enkooderista, kuva 7: tMyn

  31. 00 a 00 11 a 00 10 b 11 01 a 00 11 c 10 00 b 11 01 d 01 10 a 00 Kuva 7. Kuvan 5 enkooderista piirretty puukaavio, ylempi haara…….. 00 a 11 11 c 10 10 b 00 01 b 11 11 c 01 00 d 01 01 d 10 10 a 0 1 alempi haara seuraavassa diassa! tMyn

  32. 00 a 00 11 a 11 10 b 11 01 c 10 11 c 10 00 b 00 01 d 01 10 b 11 Kuva 7. Kuvan 5 enkooderista piirretty puukaavio, alempi haara. 00 a 11 11 c 01 10 b 00 01 d 01 11 c 01 00 d 10 01 d 10 10 tMyn

  33. Kun tulobitteinä on 11011, niin paksunnettu viiva kuvaa koodattua informaatiota 11 01 01 00 01 … • Tällä tekniikalla loppuu sekä paperi että hermot. • Puukaaviosta huomataan, että se alkaa toistamaan itseään kohdasta alkaen eli kolmannen haarautumisen jälkeen. • Yleisesti ottaen puukaavio alkaa toistamaan itseään K haarautumisen jälkeen, jossa K=m+1, m=muistin syvyys. • Ensimmäinen haarautuminen (hetkellä ) tuottaa solmut a ja b (kirjaimet viittaavat tiloihin). • Haarautumisen kohdalla solmujen määrä aina kaksinkertaistuu. tMyn

  34. Hetkellä haarautuminen tuottaa solmut a, b, c ja d. • Kolmannen haarautumisen jälkeen kaaviossa on 8 solmua: a, a, b, b, … • Huomataan, että tästä lähtien ylempi ja alempi haara ovat identtisiä. • Selityksenä tähän on se, että samalla kun 4. bitti tulee enkooderiin vasemmalta, niin silloin ensimmäisenä tullut bitti tipahtaa oikealta ulos eikä siis enää vaikuta lähtöbittejä generoitaessa. • Yllä mainitulla havainnolla on se merkitys, että kaksi sellaista reittiä, joilla on sama tila ajanhetkellä voidaan yhdistää. tMyn

  35. Tämä siitä syystä, että kyseisiä reittejä ei kuitenkaan voitaisi erottaa mitenkään. • Kun tällaiset yhdistämiset tehdään, syntyy uusi diagrammi, nimeltään verkkokaavio (trellis). • Verkkokaavio ottaa huomioon puukaavion toistot, ja niinpä verkkokaavio on paras kuvaus enkooderin toiminnasta. • Kuvassa 8 esitetään kuvan 5 enkooderikytkennän verkkokaavio. tMyn

  36. 00 00 00 00 00 a=00 11 11 11 11 11 b=10 10 10 10 10 01 01 01 01 11 11 11 00 00 00 c=01 01 01 01 d=11 10 10 10 tulobittinä 0 tulobittinä 1 Kuva 8. Verkkokaavio (trellis) kuvan 5 konvoluutiokoodauspiiristä. tMyn

  37. Verkkokaavion solmut kuvaavat enkooderin tiloja. • Kuvan 8 verkkokaavio saavuttaa tietyn jaksollisuuden, kun on saavutettu syvyys 3, siis ajan hetkellä . • Yleisesti tämä jaksollisuus saavutetaan kohdassa K. • Tässä kohden ja sen jälkeen (esimerkissä ajan hetkellä ) kuhunkin tilaan voidaan tulla kahden aikaisemman tilan kautta. • Samaten kustakin tilasta voidaan mennä kahteen seuraavaan tilaan. • Eteenpäin mentäessä toinen haara edustaa tilannetta, jossa tulobittinä on ollut 0, toinen edustaa tulobittiä 1. tMyn

  38. Dekoodausvaiheessa puhutaan ”maximum likelihood decoding” –prosessista. • Tavoitteena on siis nimensä mukaisesti valita todennäköisin vaihtoehto ratkaisuksi. • Kun vastaanotetaan L solmun koodisanat (binaariset), niin silloin mahdollisia vaihtoehtoja on , eli aika monta... • Kun käytetään verkkokaavioesitysmuotoa (trellis), niin on mahdollista konfiguroida dekooderi, joka kykenee hylkäämään epätodennäköiset vaihtoehdot pois. • Päätös parhaasta vaihtoehdosta tehdään jäljelle jääneen polun mukaan (surviving path). tMyn

  39. Vastaanotossa dekooderille tuleva binaarinen tieto tulee demodulaattorin lähdöstä. • Käytännössä on kaksi tapaa, jolla demodulaattori päättää, onko saapunut informaatiobitti binaarinen ykkönen vaiko binaarinen nolla. • Näistä menetelmistä käytetään nimiä ”hard decision” ja ”soft decision”. • Päätösprosessia voidaan havainnollistaa kuvalla 9. tMyn

  40. binaarisen nollan vastaanottotodennäköisyys binaarisen ykkösen vastaanottotodennäköisyys 110 000 001 010 011 100 101 111 1 0 Kuva 9. ”Hard-decision decoding” – ja ”soft-decision decoding”. tMyn

  41. Jos demodulaattori ilmoittaa saapuneesta informaatiosta (onko kyseessä binaarinen ykkönen vaiko binaarinen nolla) yhdellä bitillä, niin silloin puhutaan ”hard-decision decoding” –prosessista. • Kun demodulaattori ilmoittaa saapuneesta informaatiobitistä esim. käyttäen kahdeksaa tasoa (siis kolmella bitillä), niin silloin puhutaan ”soft-decision decoding” –prosessista. • Kun lähetetään dekooderille 3-bittinen sana yhden bitin sijasta, niin se vastaa tilannetta, jossa dekooderille annetaan enemmän tietoa päätöksen teon perusteeksi (measure of confidence). tMyn

  42. Kuvasta 9: Kun dekooderille tulee tieto ”111”, niin siitä dekooderi voi päätellä, että saapunut bitti on hyvin varmasti ykkönen (very high confidence). • Jos sitä vastoin saatu tieto olisi ollut ”100”, olisi se tarkoittanut sitä, että tuleva bitti on arvoltaan ykkönen melkoisen hintelällä varmuudella (very low confidence). • Toki viime kädessä dekooderin on puolestaan tehtävä aina hard decision!! • Kirjallisuudessa löytyy viitteitä siihen suuntaan, että tiettyjen ehtojen täyttyessä (esim. että käytössä on ”Gaussian channel”) kolmen bitin käyttö verrattuna yhteen bittiin antaa 2 dB paremman suorituksen halutulla signaali-kohinasuhteella. tMyn

  43. Hintana paremmalle suorituskyvylle on kolminkertainen datamäärä dekoodausvaiheessa (tarvittava muistin määrä ja mahdollisesti nopeus!). • Soft-decision decoding on käytössä Viterbi-algoritmissa (Viterbi convolutional decoding algorithm). • Viterbi-algoritmi laskee kullakin ajan hetkellä vastaanotetun koodin samankaltaisuutta tai etäisyyttä (measure of similarity or distance) verrattuna kuhunkin läheiseen solmuun saapuvaa trellispolkua samaisella hetkellä . • Viterbi-algoritmi jättää pois ne polut potentiaalisten ehdokkaiden joukosta, jotka eivät mitä luultavimmin ole hyviä ehdokkaita (maximum likelihood choice). tMyn

  44. Kun kaksi polkua yhtyy samaan tilaan, niin parempi valitaan (surviving path). • Tämä valinta tehdään jokaisen tilan kohdalla. • Näin toimien edetään syvemmälle verkkokaavioon. • Optimipolun valintaa voidaan kutsua joko nimellä ”maximum likelihood metric” tai ”minimum distance metric”. tMyn

  45. Otetaan esimerkkinä BSC-kanava (Binary Symmetric Channel), jolloin tavoitteena on etsiä polku, jonka Hamming-etäisyys (Hamming distance) on pienin mahdollinen verrattuna dekooderin vastaanottamaan koodisanaan. • Enkooderi on esitetty aiemmin kuvassa 5 ja vastaava verkkokaavio on esitetty kuvassa 8. • Dekooderin toiminnan ymmärtämiseksi piirretään kohta saman tyyppinen verkkokaavio kuin mitä on piirretty enkooderin toiminnasta kuvassa 8. tMyn

  46. Aloitetaan ajan hetkestä tilasta 00.Jokaisesta tilasta on mahdollista haarautua jompaan kumpaan kahdesta uudesta tilasta (riippuen input-bitistä). • Niinpä koko verkkokaavio on esillä hetken jälkeen. • Dekoodausprosessi selviää helpoiten tarkastelemalla kuvan 8 enkooderin verkkokaaviota saman aikaisesti kuvan 10 dekooderin verkkokaavion kanssa. • Merkitään dekooderin verkkokaaviossa kunakin ajan hetkenä jokaiseen solmuun Hamming-etäisyys. • Hamming-etäisyys lasketaan kussakin solmussa vastaanotetun koodisymbolin ja enkooderin verkkokaaviosta vastinsolmun arvon erotuksena. tMyn

  47. Kuvassa 10 on merkitty alkuperäiseksi informaatiosekvenssiksi m, enkoodatuksi sekvenssiksi U ja vastaanotetuksi koodisekvenssiksi dekooderin tuloon Z. • Enkooderin toimintaperiaate tunnetaan dekooderin puolella a priori (a priori = it is knowable independently of experience). • Enkooderin verkkokaavion haarojen koodisanat ovat juuri niitä, joiden oletetaan tulevan enkooderin lähdöstä kunkin tilamuutoksen jälkeen. tMyn

  48. Dekooderin verkkokaavion haarojen merkinnät (Hamming-etäisyydet) muodostetaan ”lennossa” sitä mukaan kun vastaanotetaan informaatiota demodulaattorilta. • Lähdetään liikkeelle ajan hetkestä : vastaanotetaan koodisynbolit 11, kuva 10. • Hamming-etäisyyden laskemiseksi tutkitaan enkooderin verkkokaaviota, kuva 8. • Kuvasta 8 nähdään, että tilasiirtymä 00 -> 00 tuottaa lähtevälle haaralle lähtöbitit 00. • Mutta nyt vastaanotettiin bitit 11. tMyn

  49. Siispä dekooderin verkkokaaviossa merkitään tilasiirtymä 00 -> 00 Hamming-etäisyydellä 2 (koodien 00 ja 11 Hamming-etäisyys). • Enkooderin verkkokaaviosta kuvassa 8 nähdään, että tilasiirtymä 00 -> 10 tuottaa lähtöbitit 11, joka vastaa täsmälleen sitä, mitä vastaanotettiin hetkellä . • Siis dekooderin verkkokaaviossa tilasiirtymä 00 -> 10 merkitään Hamming-etäisyydellä 0, kuva 10. tMyn

  50. Alkuperäinen informaatio m: 1 1 0 1 1 … Koodattu informaatio U: 11 01 01 00 01 … Vastaanotettu informaatio Z: 11 01 01 10 01 ... 2 1 1 1 1 a=00 0 1 1 1 1 b=10 2 2 2 0 0 0 2 0 1 1 1 1 1 1 c=01 2 0 0 d=11 0 2 2 tulobittinä 0 tulobittinä 1 Kuva 10. Verkkokaavio (trellis) dekoodausvaiheesta. tMyn

More Related