FI109162B - Menetelmä ja järjestely konvoluutiokoodatun koodisanan dekoodaamiseksi - Google Patents

Menetelmä ja järjestely konvoluutiokoodatun koodisanan dekoodaamiseksi Download PDF

Info

Publication number
FI109162B
FI109162B FI20001571A FI20001571A FI109162B FI 109162 B FI109162 B FI 109162B FI 20001571 A FI20001571 A FI 20001571A FI 20001571 A FI20001571 A FI 20001571A FI 109162 B FI109162 B FI 109162B
Authority
FI
Finland
Prior art keywords
memory
sliding window
modulo
unit
metrics
Prior art date
Application number
FI20001571A
Other languages
English (en)
Swedish (sv)
Other versions
FI20001571A (fi
FI20001571A0 (fi
Inventor
Esko Nieminen
Original Assignee
Nokia Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nokia Corp filed Critical Nokia Corp
Priority to FI20001571A priority Critical patent/FI109162B/fi
Publication of FI20001571A0 publication Critical patent/FI20001571A0/fi
Priority to CN01812152.7A priority patent/CN1241329C/zh
Priority to PCT/FI2001/000619 priority patent/WO2002003554A1/en
Priority to AU2001272603A priority patent/AU2001272603A1/en
Priority to EP01951747A priority patent/EP1325560A1/en
Priority to US09/896,637 priority patent/US7213194B2/en
Publication of FI20001571A publication Critical patent/FI20001571A/fi
Application granted granted Critical
Publication of FI109162B publication Critical patent/FI109162B/fi
Priority to US11/683,047 priority patent/US20070162837A1/en

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/3905Maximum a posteriori probability [MAP] decoding or approximations thereof based on trellis or lattice decoding, e.g. forward-backward algorithm, log-MAP decoding, max-log-MAP decoding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2957Turbo codes and decoding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3723Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 using means or methods for the initialisation of the decoder
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/3972Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using sliding window techniques or parallel windows

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Error Detection And Correction (AREA)

Description

109162
Menetelmä ja järjestely konvoluutiokoodatun koodisanan de-koodaamiseksi
Keksinnön ala
Keksinnön kohteena on menetelmä ja järjestely konvoluutiokooda-5 tun koodisanan dekoodaamiseksi.
Keksinnön tausta
Tietoliikennejärjestelmissä tiedonsiirrossa käytetty siirtokanava aiheuttaa usein häiriöitä tiedonsiirrolle. Häiriöitä esiintyy kaikenlaisissa järjestelmissä, mutta erityisesti langattomissa tietoliikennejärjestelmissä siirtotie vai-10 mentaa ja vääristää siirrettävää signaalia monin eri tavoin. Siirtotiellä häiriöitä aiheuttavat tyypillisesti signaalin monitie-eteneminen, erilaiset häipymät ja heijastukset sekä myöskin toiset samalla siirtotiellä siirrettävät signaalit.
Häiriöiden vaikutuksen pienentämiseksi on kehitetty erilaisia koodausmenetelmiä, joilla signaalia pyritään suojaamaan häiriöiltä ja joiden avulla 15 pyritään myös poistamaan häiriöiden aiheuttamia virheitä signaalissa. Eräs tehokas koodausmenetelmä on konvoluutiokoodaus. Konvoluutiokoodauksessa lähetettävä symboleista koostuva signaali koodataan koodisanoiksi, jotka pe- ; rustuvat lähetettävien symboleiden konvoluutioon joko itsensä tai jonkin toisen • · • '·· signaalin kanssa. Konvoluutiokoodin määrittävät koodaussuhde sekä koo- 20 dauspolynomit. Koodaussuhde (k/n) tarkoittaa tuotettujen koodattujen symbo-·;··.· lien lukumäärää (n) suhteessa koodattavien symboleiden lukumäärään (k).
.*··. Kooderi toteutetaan usein siirtorekisterien avulla. Koodin vaikutussyvyydellä .···. (constraint length K) tarkoitetaan usein siirtorekisterin pituutta. Kooderia voi- • · daan pitää tilakoneena, jossa on 2K tilaa.
. . 25 Eräs konvoluutiokoodista edelleen kehitetty koodausmenetelmä on rinnakkainen ketjutettu konvoluutiokoodaus, PCCC (Parallel concatenated convolutional code) joka on turbokoodi. Eräs tapa muodostaa PCCC-koodi on käyttää kahta rekursiivista systemaattista konvoluutiokooderia ja lomittelijaa. Konvoluutiokooderit voivat olla joko samanlaisia tai erilaisia. Tuloksena saata-30 va koodi käsittää systemaattisen osan, joka vastaa suoraan kooderin sisään-‘ menossa olevia symboleita, ja kaksi pariteettiosaa, jotka ovat rinnakkaisten ‘ : konvoluutiokooderien ulostulot.
Vastaanottimen tehtävänä on siis dekoodata siirtotien yli edennyt koodattu signaali, joka usein on vääristynyt monin tavoin. Konvoluutiokoodi 35 dekoodataan yleensä ns. tilakuvion eli trelliksen avulla, joka vastaa kooderin 2 109162 tilakonetta. Trelliksessä esitetään kooderin tilat ja siirtymät tilojen välillä tarvittavine koodisanoineen.
Dekooderissa on siis pyrkimyksenä selvittää kooderin peräkkäiset tilat eli siirtymät tiloista toiseen. Siirtymien selvittämiseksi dekooderissa laske-5 taan ns. siirtometriikoita, jotka kuvaavat eri siirtymien todennäköisyyksiä. Siir-tometriikat ovat verrannollisia siirtymien todennäköisyyksien logaritmeihin.
Täten metriikoiden summat vastaavat todennäköisyyksien keskinäisiä tuloja.
Pienet metriikat vastaavat suurta todennäköisyyttä.
Erityisesti turbokoodien yhteydessä on sovellettu iteratiivisia dekoo-10 dausmenetelmiä, joissa käytetään pehmeitä bittipäätöksiä. Pehmeä päätös käsittää bittipäätöksen sekä todennäköisyyden että päätös oli oikea. Nämä menetelmät perustuvat yleensä tunnettuun symboleittain toimivaan Maximum A Posteriori (MAP) algoritmiin. Alkuperäinen MAP-algoritmi, jota esitellään turbokoodien yhteydessä esimerkiksi julkaisussa Berrou, Glavieux, Thitimajshi-15 ma: Near Shannon limit error-correcting coding: Turbo codes, Proc. IEEE Int.
Conf. Commun., Geneva, Switzerland, pp. 1064-1070, 1993, on liian monimutkainen toteutettavaksi käytännön tietoliikennejärjestelmissä. Siitä on edelleen kehitetty ns. MaxLogMap-menetelmä, jota esitellään esimerkiksi julkaisuissa S. S. Pietrobon, S. A. Barbulescu, A Simplication of the Modified Bahl • · .. 20 Decoding Algorithm for Systematic Convolutional Codes, ISITA 1994, Sydney, ; ’* NSW, pp. 1073 - 1077, Nov 1994 ja S. Benedetto, D. Divsalar, G. Montorsi, F.
· Pollara, Soft-Output Decoding Algorithms in Iterative Decoding of Turbo Codes, TDA Progress report pp. 42 -124, Feb 15, 1996.
• · ·
Niin MAP:n kuten myös MaxLogMapin käyttöön liittyy vakava muis- : 25 tivaatimus. Iteratiivisessa laskennassa edellisestä iteraatiosta viedään tietoa • · · seuraavaan iteraatiokierrokseen ns. ulkoisen painokertoimen muodossa. Tä-män laskemiseksi on oltava tiedossa trelliksessä polkumetriikoiden laskenta- | · · .*··, arvot sekä eteenpäin että taaksepäin laskettuna. Kummassakin suunnassa I · | ‘·* polkumetriikoiden senhetkiset arvot lasketaan edellisten arvojen perusteella ja '· ’· 30 laskenta etenee vastakkaisiin suuntiin vastaanotettua signaalia pitkin. Tämä tarkoittaa sitä, että toisen etenemissuunnan metriikat pitäisi tallettaa muistiin odottamaan vastakkaiseen suuntaan etenevää laskentaa. Esimerkiksi jos al-kuperäisten koodaamattomien bittien lukumäärä on N = 5000 ja käytetään kahdeksantilaista koodia, muistia tulisi olla käytettävissä 8*N, eli 40000 yksik-35 köä, ja jos oletetaan että sanaleveys on 16 bittiä, muistin tarve olisi 80 kt, mikä 3 109162 on nykytekniikalla toteutettuna suuri määrä. Tässä käytetyt esimerkkilukuarvot vastaavat uusien tietoliikennejärjestelmien parametrejä.
Muistin tarvetta voidaan pienentää käyttämällä ns. liukuvan ikkunan periaatetta. Tässä esimerkiksi eteenpäin laskettavat metriikat lasketaan jatku-5 vana toimintana ja taaksepäin menevät metriikat lasketaan siirrettävän vastaanotetun signaalin yli liukuvan ikkunan sisällä. Tähän liittyy se ongelma, että ikkunan lopussa (eteenpäin menevästä laskusuunnasta katsottuna) ei taakse-I päin laskettavien metriikoiden arvoja tunneta. Tämän ongelman poistaa kui tenkin polkumetriikoiden tunnettu ominaisuus, jossa laskettaessa polkumetriik-10 koja jonkin aikaa lukuarvot etsiytyvät oikeisiin arvoihin riippumatta aloituksessa käytetyistä arvoista. Alussa täytyy siis suorittaa etsintäjakson laskentaa, eli lämmittelyjakso, jonka aikana oikeat arvot löytyvät. Tarvittavan etsintäjakson pituus riippuu koodin vaikutussyvyydestä. On tunnettua, että jos etsintäjakso on noin viisi kertaa koodin vaikutussyvyys, saadaan hyvä lopputulos.
15 Tällaisia liukuvaa ikkunaa hyödyntäviä ratkaisuja on esitetty esimer kiksi jo mainitussa S. Benedetto et ai. -julkaisussa sekä patenttijulkaisussa US 5933462. Tällöin tarvittavan muistin määrää voidaan vähentää. Esitetyissä ratkaisuissa on kuitenkin edelleen muita haittapuolia. Ratkaisuissa tarvitaan suhteellisen monimutkainen ohjaus ja moniporttisia muistielementtejä, joista .. 20 voidaan lukea monta muistipaikkaa samanaikaisesti.
• *
Keksinnön lyhyt selostus 'j'*: Keksinnön tavoitteena on siten toteuttaa menetelmä ja menetelmän toteuttava järjestely siten, että konvoluutiokoodin dekoodaus voidaan suorittaa edullisesti. Tämä saavutetaan menetelmällä konvoluutiokoodatun koodisanan 25 dekoodaamiseksi koodisanan yli liukuvan ikkunan avulla, joka menetelmä kä- .·. ; sittää polkumetriikoiden laskemisen eteenpäin ja taaksepäin yhtäaikaisesti liu-• « * kuvassa ikkunassa, ja dekoodaustuloksen laskemisen polkumetriikoiden pe-': ’ rusteella synteesiyksikössä.
Keksinnön mukaisessa menetelmässä a) käytetään neliosaista liu-30 kuvaa ikkunaa, b) lasketaan polkumetriikkaa eteenpäin-suunnassa liukuvan .·!·, ikkunan ensimmäisessä osassa ja talletetaan polkumetriikat neliosaiseen muistiin, c) lasketaan polkumetriikkaa taaksepäin-suunnassa liukuvan ikkunan kahdessa muussa osassa siten, että laskentayksiköiden sisäänmeno tulee neliosaisesta muistista, d) viedään lasketut metriikat synteesiyksikköön ja laske-35 taan dekoodaustulos, e) siirretään liukuvaa ikkunaa eteenpäin yhden osan verran, f) toistetaan edellisiä askelia a) - e).
4 109162
Keksinnön kohteena on myös järjestely konvoluutiokoodatun koodi-sanan dekoodaamiseksi koodisanan yli liukuvan ikkunan avulla, joka järjestely käsittää ensimmäisen muistin koodisanan tallentamiseksi, ensimmäiset, toiset ja kolmannet laskentavälineet laskea polkumetriikoita eteenpäin ja taaksepäin 5 ja synteesiyksikön dekoodaustuloksen laskemiseksi polkumetriikoiden perusteella, ja toisen muistielementin polkumetriikoiden väliaikaiseksi tallentamiseksi.
Keksinnön mukaisessa järjestelyssä ensimmäiset laskentavälineet on sovitettu lukemaan koodisanan symboleita ensimmäisestä muistista ja las-10 kemaan polkumetriikkaa eteenpäin-suunnassa annetun mittaisen neliosaisen liukuvan ikkunan ensimmäisessä osassa ja tallettamaan polkumetriikat toiseen muistiin, toisten ja kolmansien laskentavälineiden sisäänmenoon on kytketty toisen muistin ulostulo, toiset ja kolmannet laskentavälineet on sovitettu laskemaan polkumetriikkaa taaksepäin-suunnassa liukuvan ikkunan kahdessa 15 muussa osassa, toisten ja kolmansien laskentavälineiden sekä toisen muistin ulostulo on toiminnallisesti kytketty synteesiyksikön sisäänmenoon, ja että järjestely käsittää ohjausvälineet, jotka on sovitettu siirtämään liukuvaa ikkunaa eteenpäin yhden osan verran, kunnes koodisanan loppu saavutetaan.
i# . Keksinnön edulliset suoritusmuodot ovat epäitsenäisten patentti- • ♦ j ..20 vaatimusten kohteena.
• · ; ’’ Keksinnön mukaisessa ratkaisussa sovelletaan siis liukuvaa ikku- :·· · naa. Tämän ansiosta tarvittavan muistin määrä on pieni. Keksinnön edullisten | toteutusmuotojen mukaisissa ratkaisuissa liukuva ikkuna on jaettu neljään osaan ja ikkunaa liikutetaan neljäsosan askeleella eteenpäin. Eteenpäin me-25 nevät polkumetriikat lasketaan muistiin aina samaan suuntaan edeten ja taaksepäin menevien polkumetriikoiden laskentadata luetaan muistista aina sa-maan suuntaan edeten, mutta kuitenkin päinvastaiseen suuntaan kuin eteen- • « .···. päin menevien metriikoiden tallennus tapahtuu. Ratkaisussa sovelletaan ensin eteenpäin menevää metriikan laskentaa vastaanotetulle signaalille ja vasta ' · ‘: 30 tämän jälkeen taaksepäin menevien metriikoiden laskentaa.
Neliosaista ikkunointia hyödyntävä ratkaisu on sikäli edullinen, että : *: ·. muistiin kirjoittamisen ja lukemisen ohjaus on yksinkertainen, koska kirjoitus- ja lukusuuntia ei tarvitse vaihtaa ikkunan paikan liikkuessa. Toinen merkittävä etu on se, että signaalimuistin ei tarvitse olla kaksoisporttimuisti, koska signaa-35 lia luetaan kerran näytettä kohti yhden kierroksen aikana. Tämä tapahtuu eteenpäin menevää metriikkaa laskettaessa. Taaksepäin laskevat metriikka- 5 109162 yksiköt lukevat eteenpäin menevän metriikkayksikön tallettamaa dataa apu-muistista.
Kuvioiden lyhyt selostus
Keksintöä selostetaan nyt lähemmin edullisten suoritusmuotojen 5 yhteydessä, viitaten oheisiin piirroksiin, joissa kuvio 1 esittää esimerkkiä konvoluutiokooderilähettimestä ja vastaanottimesta, jossa keksinnön mukaista ratkaisua voidaan soveltaa, kuviot 2a ja 2b havainnollistavat esimerkkiä turbokooderin ja -de-kooderin rakenteesta, 10 kuvio 3 havainnollistaa keksinnön edullisten toteutusmuotojen mu kaista dekooderiratkaisua ja kuvio 4 havainnollistaa liukuvaa ikkunaa.
Keksinnön yksityiskohtainen selostus
Viitaten kuvioon 1 tarkastellaan aluksi esimerkkiä lähettimestä 100 15 ja vastaanottimesta 102, joiden yhteydessä keksinnön edullisten toteutus- muotojen mukaista ratkaisua voidaan soveltaa. Lähetin 100 ja vastaanotin 102 kommunikoivat kuvion 1 esimerkissä radiokanavan 104 välityksellä. Lähetin :100 käsittää datalähteen 106, joka voi olla puhekooderi tai jokin muu dataläh-• · • '·· de. Datalähteen ulostulosta saadaan lähetettävä signaali 108, joka viedään ;<j’: 20 kanavakooderille 110, joka tässä tapauksessa on konvoluutiokooderi, edulli-:··: sesti turbokooderi. Koodatut symbolit 112 viedään modulaattorille 114, jossa j signaali moduloidaan jollain tunnetulla tavalla. Moduloitu signaali viedään ra- .··. diotaajuusosille 116, joissa se vahvistetaan ja antennin 118 avulla lähetetään radiotielle 104.
. . 25 Radiotiellä 104 signaaliin tulee häiriöitä ja tyypillisesti myös kohinaa.
Vastaanotin 102 käsittää antennin 120, jolla se vastaanottaa signaalin, joka *;·' viedään radiotaajuusosien 122 kautta demodulaattorille 124. Demoduloitu sig-naali viedään kanavadekooderille 126, jossa signaalille suoritetaan keksinnön edullisten toteutusmuotojen mukainen dekoodaus. Dekooderilta dekoodattu 30 signaali 128 viedään edelleen vastaanottimen muihin osiin.
’ Kuviossa 2a havainnollistetaan tyypillisen turbokooderin rakennetta.
Kooderi käsittää kaksi kooderia 200, 203 ja lomittelijan 204. Koodattava signaali 108 viedään sellaisenaan kooderin ulostuloon. Tätä komponenttia kutsutaan koodin systemaattiseksi osaksi S. Koodattava signaali viedään sellai-35 senaan myös ensimmäiselle kooderille A 200 ja lomittelijalle 204. Lomitettu 6 109162 signaali viedään toiselle kooderille B 202. Ensimmäisen kooderin ulostulosignaalia P1 ja toisen kooderin ulostulosignaalia P2 kutsutaan koodin pariteettio-siksi. Kooderit A ja B voivat olla joko samanlaisia tai erilaisia. Niiden rakenne on tunnetun tekniikan mukainen.
5 Kuviossa 2b havainnollistetaan tyypillisen turbodekooderin yleistä rakennetta 1/3 koodin tapauksessa. Dekooderiin tulee sisäänmenona koodin systemaattinen osa Skja pariteettiosat P1k ja P2k. Dekooderi käsittää kaksi de-! kooderiyksikköä, ensimmäisen yksikön A 210 ja toisen yksikön B 212. Ensim mäiselle yksikölle tulee sisäänmenona koodin systemaattinen osa Sk, pariteetit) tiosa P1k sekä ulkoinen painokerroin Ek edelliseltä iteraatiokierrokselta. Painokerroin tulee toisen yksikön B 212 ulostulosta lomituksenpurkajan 214 kautta. Ensimmäisen yksikön A 210 ulostulossa on uusi ulkoinen painokerroin Ekl joka viedään sisäänmenoksi toiselle yksikölle 212 lomittelijan 216 kautta, sekä pehmeän päätöksen käsittävä ulostulo A, joka viedään vastaanottimen muihin 15 osiin tarpeen mukaan. Toiselle yksikölle B tulee lisäksi sisäänmenona koodin systemaattinen osa Sk lomittelijan 218 kautta sekä pariteettiosa P2k. Yksikön ulostulona on uusi ulkoinen painokerroin Ek, joka viedään lomituksenpurkajan 214 kautta ensimmäiselle yksikölle 210 sekä pehmeän päätöksen käsittävä ulostulo B, joka viedään vastaanottimen muihin osiin tarpeen mukaan.
„ 20 Käytännön toteutuksessa lomittelijat 216 ja 218 on usein toteutettu j ; “ yhdellä lomittelijalla. Dekooderi voidaan myös toteuttaa rinnakkaisena toteu- ·'·* ·' tuksena. Tällöin dekooderiyksiköt 210 ja 212 ovat toteutettu rinnakkaisilla de- koodereilla.
Dekooderiyksiköissä suoritettava MaxLogMap-laskenta koostuu 25 kolmesta pääosasta: eteenpäin menevä polkumetriikoiden laskenta, taaksepäin peruuttava polkumetriikoiden laskenta ja eteen- ja taaksepäin laskettujen polkumetriikoiden yhdistäminen uuden ulkoisen painokertoimen ja pehmeän • * .··. päätöksen laskemiseksi. Uusi ulkoinen painokerroin viedään sisäänmenopa-rametriksi seuraavalle iteraatiokierrokselle kun taas pehmeän päätöksen etu-’· : 30 merkistä tehdään kova bittipäätös.
Tarkastellaan seuraavaksi esimerkkiä dekooderin toiminnasta.
Huomattakoon tässä että esitetyt laskutoimitukset ovat vain eräs mahdollinen ____: tapa toteuttaa haluttu laskenta, kuten alan ammattimiehelle on selvää. Keksin- * » nön mukaista ratkaisua voidaan soveltaa myös muiden dekoodauslaskenta-35 menetelmien kanssa. Esimerkiksi erilaisia korjaustermejä voidaan käyttää. Olkoon ak(s) turbokoodin kooderin tilan s polkumetriikka hetkellä k, k= 0,1,2.....N, 7 109162 missä N on koodaamattoman (alkuperäisen) datalohkon pituus, ja mahdolliset tilat ovat s=0,1,2,3,4,5,6, ja 7. Riippuen koodaustavasta kooderin alkutila tunnetaan vastaanottimessa tai sitten alkutila täytyy estimoida. Tässä esimerkissä oletetaan, että alkutila tunnetaan ja se on s=0. Tällöin eteenpäin trellistä me-5 nevä polkumetriikan laskenta voidaan alustaa seuraavasti: <x0(0) = 10000, ja a0(s) = - ao(0) kun s = 1, 2, 3, 4, 5, 6, 7.
Kooderin tilojen välistä sallitun tilasiirtymän siirtometriikkaa hetken k 10 tilan s' ja hetken k+1 tilan s välillä merkitään yk(s',s), ja sille voidaan antaa lukuarvo MaxLogMapin yhteydessä yhden pariteetin tapauksessa seuraavasti:
Yk(s',s) = (xk ( sk + Ek) + yk Pk) / 2, 15 missä xk = 1 jos tilojen s’ ja s välinen tilasiirtymä on nollabitin ai kaansaama ja xk = -1 jos tilojen s’ ja s välinen tilasiirtymä on ykkösbitin aiheuttama. Vastaavasti yk = 1 jos tilojen s’ ja s välisen tilasiirtymän pariteettibitti on nollabitti ja yk = -1 jos tilojen s’ ja s välisen tilasiirtymän pariteettibitti on ykkösbitti. Tässä Sk:lla merkitään turbokoodin systemaattisen osan vastaanotettua ..20 lukuarvoa joka voi olla lomitetussa tai suorassa järjestyksessä ajan suhteen j ! i ; . dekoodauksen vaiheesta riippuen, Ek tarkoittaa ulkoisen painokertoimen luku- j ··’ : arvoa, joka myös voi olla lomitettuna tai suorassa järjestyksessä, ja Pk on koo din se pariteettiosa joka on dekoodausvuorossa ja Pk luetaan aina suorassa järjestyksessä. Tässä oletetaan, että lähettimen modulaattori kuvaa nollabitin 25 arvolle 1 ja ykkösbitin arvolla -1.
Eteenpäin menevät polkumetriikat lasketaan kaavalla * · · ···;’ ak+1(s) = max(ak(s') + Yk(s',s))kun/c=0, 1,2, ..., N-1, * · *· ‘i 30 Polkumetriikaksi ak+1(s) valitaan siis suurin tilaan s hetkellä k+1 tule- va polkumetriikka niistä hetken k tiloista s', joista on sallittua siirtyä eteenpäin hetken k+1 tilaan s; sallitut tilasiirtymät määrää käytetty koodi.
Taaksepäin menevät polkumetriikat p^s') lasketaan seuraavasti: 35 βΝ( 0 ) = 10000 ja βΝ( s) = - βΝ( 0 ), kun s = 1, 2, 3, 4, 5, 6, ja 7; ja 8 109162
Pk( s* ) = max(pk+1(s) + yk(s',s))kun/c = N - 1, N-2, ..., 1, 0.
Tässä niin ikään polkumetriikan βκ( s') arvoksi valitaan suurin tilaan s' hetkellä k tuleva polkumetriikka niistä hetken k + 1 tiloista s, joista on sallit-5 tua siirtyä taaksepäin hetken k tilaan s'.
Kooderin siirtometriikan yk(s's) pariteettiosaa merkitään λ^',δ), K(s',s) = (yk Pk) / 2 missä yk = 1 jos hetken k tilan s’ ja hetken k + 1 tilan s välisen sallitun tilasiirtymän pariteettibitti on nollabitti ja yk = -1 jos kyseinen pariteettibitti 10 on ykkösbitti.
Hetken k nollabitin painokerroin Ok lasketaan kaavalla
Ok = max (ak{s) + K(s\s) + pk+1( s)) kun k = 0, 1, 2.....N - 1, 15 missä painokertoimeksi Ok valitaan suurin summista vastaten nolla- bitin aiheuttamia tilasiirtymiä hetken k tilojen s’ ja hetken k + 1 tilojen s välillä. Vastaavasti hetken k ykkösbitin painokerroin Yk lasketaan kaavalla
Yk = max ( a^s1) + Xk(s',s) + (W s)) kun /c= 0, 1, 2, .... N - 1, 20 • " missä painokertoimeksi Yk valitaan suurin summista vastaten yk- : kösbitin aiheuttamia tilasiirtymiä hetken k tilojen s’ ja hetken k + 1 tilojen s vä- T*-: Iillä.
Uusi ulkoinen painokerroin uEk hetkellä k lasketaan kaavalla : : 25 uEk - Ok—Yk, ja pehmeän päätöksen painokerroin Bk kaavalla .·. : Bk = Sk + Ek + uEk, * I » missä Ek on edellisen kierroksen ulkoinen painokerroin. Jos Bk on * yhtä suuri tai suurempi kuin nolla, vastaanotetuksi bitiksi laitetaan nollabitti ja » * :: 30 muussa tapauksessa ykkösbitti. Summaa ( Sk + Ek) sanotaan sisäiseksi pai- nokertoimeksi ja uusi ulkoinen painokerroin uEk laitetaan seuraavalle dekoo-, ! . dauskierrokselle sisäänmenoparametriksi.
' , Kuviossa 3 havainnollistetaan keksinnön edullisten toteutusmuoto jen mukaista dekooderiratkaisua. Dekoodattava signaali 300 viedään ensim-35 mäiseen muistielementtiin eli sisäänmenopuskuriin 302. Signaali käsittää systemaattisen osan S sekä pariteettiosat P1 ja P2, kuten aiemmin on selostettu.
9 109162
Eteenpäin-suunnassa polkumetriikoiden laskentaa suorittava yksikkö 304 lukee dataa puskurimuistista. Yksikkö tallettaa dataa toiseen muistielementtiin 306. Muistielementissä 306 on neljä eri osaa, joiden käyttöä selostetaan tuonnempana. Dekooderi käsittää kaksi taaksepäin polkumetriikoiden laskentaa 5 suorittavaa laskentayksikköä 308, 310. Näiden laskentayksiköiden sisäänme-not on kytketty muistielementtiin 306, joista ne lukevat käsittelemänsä datan myöhemmin selostettavalla tavalla. Laskentayksiköiden 308, 310 ulostulot on kytketty multiplekseriin 312. Dekooderi käsittää edelleen synteesiyksikön 314, joka polkumetriikoiden perusteella laskee pehmeän päätöksen, kovan päätök-10 sen sekä uuden ulkoisen painokertoimen seuraavaa iteraatiokierrosta varten. Synteesiyksikön sisäänmenona ovat ulostulot muistielementiltä sekä mul-tiplekseriltä. Dekooderi käsittää myös ohjauslogiikan 316, joka ohjaa eri osien toimintaa, kuten muistielementin 306 käyttöä ja multiplekseriä, siten että jompikumpi laskentayksiköiden 308, 310 ulostuloista viedään synteesiyksikölle 15 vuorollaan. Kytkentä voidaan toteuttaa muullakin tavoin ilman multiplekseriä.
Tarkastellaan keksinnön erään edullisen toteutusmuodon mukaista ratkaisua dekoodauksen suorittamiseksi kuvioiden 2b ja 3 mukaisessa dekoo-deriyksikössä, joka käsittää eteenpäin polkumetriikoiden laskentaa suorittavan .,,; laskentayksikön (F) 304, kaksi taaksepäin polkumetriikoiden laskentaa suorit-.. 20 tavaa laskentayksikköä (B1, B2), 308, 310, synteesiyksikön (S) 314 sekä neli- I ; ” pankkisen muistielementin (MO, M1, M2, ja M3) 306. Oletetaan tässä esimer- : : : kissä, että käytetyn liukuvan ikkunan pituus on 128 ja etsikkojakson pituus 32.
' ' Ratkaisu ei kuitenkaan ole rajoittunut näihin arvoihin, kuten alan ammattimie- * * t helle on selvää.
25 Eteenpäin laskeva yksikkö suorittaa koko ajan laskentaa liukuvan ikkunan alussa, ja taaksepäin laskevista yksiköistä toinen suorittaa etsintä- eli ‘ -. > lämmittelyjaksoa ja toinen hyötylaskentaa, vuoronperään. Taaksepäin laskevat .'yksiköt käyttävät sisäänmenonaan muistielementissä olevia arvoja. Muistiele-i , · , mentin lukusuunnat pysyvät koko ajan samoina.
• ’: 30 Menetelmää havainnollistetaan kuviossa 4. Kuviossa on esitetty liu- / kuva ikkuna 400, jonka pituus tässä esimerkissä siis on 128. Liukuva ikkuna on jaettu neljään osaan 402 - 408, joista kunkin osan pituus on 32. Liukuvan ikkunan ensimmäisessä osassa 402 suoritetaan laskentaa eteenpäin suunnassa, eli vasemmalta oikealle. Data luetaan ensimmäisestä muistista, ja tu-35 losdata talletetaan tällöin johonkin muistin osista MO - M4. Toisessa ikkunassa 404 on laskentayksikkö suorittamassa etsintäjaksoa, lukien dataa jostain 10 109162 muistin osasta MO - M4. Tämä laskenta etenee oikealta vasemmalle. Kolmannessa ikkunan osassa 406 ei ole toimintaa ja neljännessä osassa suoritetaan varsinaista laskentaa lukien dataa jostain muistin osasta MO - M4. Myös tämä laskenta etenee oikealta vasemmalle. Muistin eri osien käyttöä selvitetään tar-5 kemmin tuonnempana. Lopuksi liukuvaa ikkunaa siirretään oikealle yhden osan verran.
Systemaattiset näytteet Skja edellisellä kierroksella lasketut ulkoiset painokertoimet Ek luetaan sisään suorassa tai lomitetussa järjestyksessä tehtävästä kierroksesta riippuen. Sen sijaan pariteettinäytteet tulevat aina suoras-10 sa järjestyksessä mutta kahdesta eri pariteettidatan muistista vastaten turbo-koodin kahta komponenttikoodia. Sarjamuotoisessa toteutuksessa joka toisella kierroksella käytetään toista pariteettimuistia ja joka toisella kierroksella toista vuoronperään. Rinnakkaisessa toteutuksessa kumpikin dekooderi käyttää aina samaa paritettiosaa. Tämän vuoksi molemmille pariteeteille käytetään yhteistä 15 merkintää Pk.
Eteenpäin menevä polkumetriikoiden laskentayksikkö (F) 304 lukee input-datansa osoiteyksikön ohjauksen mukaisesti ja laskee polkumetriikat koodin sallittuja tilasiirtymiä seuraten. Polkumetriikoiden lukuarvot ja muu tarvittava tieto ohjataan yhteen toisen muistielementin neljästä osasta MO, M1, .. 20 M2, ja M3. Kullakin hetkellä k käytettävä muistin osa määräytyy hetken k mu- ; “ kaan seuraavasti: ·'· ’ ; käytettävän muistin osan numero = (k div 32 ) modulo 4.
·’ Tässä a div b tarkoittaa osamäärän a/b kokonaislukuosaa. Kyseiseen muistin osaan kirjoitetaan muistipaikkaan numero 25 muistipaikan numero = (k modulo 32 ).
Yksi muistialkio sisältää seuraavat tiedot: eteenpäin menevät pol-kumetriikat, sisäisen painokertoimen, pariteetin lukuarvon, ja sen muistipaikan • · .*··. osoitteen josta ulkoinen painokerroin haettiin: . · *. «k( 0 ), ak( 1 ), ak( 2 ), ak( 3 ), ak( 4 ), ak( 5 ), ak( 6 ), ak( 7 ) ( polku- • *·’ 30 metriikat) :: (S k + Ek) ( sisäinen painokerroin (summa laskettuna))
Pk (pariteetti) ..,.: index (k tai lomittelijan k:s elementti)
Samaan aikaan eteenpäin menevän polkumetriikoiden laskennan 35 kanssa toinen taaksepäin menevä polkumetriikoiden laskentayksikkö tekee et-sintäjaksoa. Jos ( k div 32 ) on parillinen, niin etsintäjaksoa suorittaa B1 308 ja ) 11 109162 ί parittomilla arvoilla puolestaan B2 310. Etsintäjaksoa suorittava taaksepäin kulkeva laskenta lukee input-datansa muistin osasta numero (( k div 32 ) + 3 ) modulo 4 muistipaikasta 31 - (Ac modulo 32 ).
5 Etsintäjakson aikana laskettuja taaksepäin eteneviä polkumetriikoi- den arvoja ei käytetä hyödyksi vaan tarkoituksena on ottaa talteen jakson viimeistä indeksiä vastaavat polkumetriikan arvot oikeiden lukuarvojen estimaattina polkumetriikoille. Tämä voidaan toteuttaa esimerkiksi siten, että viimeisten lukuarvojen kohdalla aloitetaan polkumetriikoiden hyödyntäminen.
10 Edelleen samanaikaisesti edellisten toimintojen rinnalla toinen taak sepäin menevä polkumetriikoiden laskenta, joka on B1 jos ( k modulo 32 ) pariton ja B2 jos parillinen, lukee input-datansa muistin osasta numero (( k div 32 ) + 1 ) modulo 4 muistipaikasta 31 - (Ac modulo 32 ), 15 lähettää sen hetkiset taaksepäin lasketut polkumetriikat samanaikaisesti eo. muistipaikasta olleiden eteenpäin menevien polkumetriikoiden lukuarvojen ja muun datan kanssa eteenpäin yksikölle (S) ja laskee sitten input-datan avulla uudet taaksepäin menevät polkumetriikat. Synteesiyksikkö (S) 314 laskee uuden ulkoisen painokertoimen ja tallettaa sen muistiin paikkaan index, josta * : 20 vastaava edellinen ulkoinen painokerroin haettiin, seuraavaa kierrosta varten.
• · ; '·· Yksikkö (S) laskee myös pehmeän päätöksen painokertoimen, jonka etumerk-:.· · ki ilmoittaa sen kierroksen kovan päätöksen.
·:··: Muistin osaan numero (( k div 32 ) + 2 ) modulo 4 ei kohdistu mi- tään toimintaa, muistipankkien käyttö vaihtuu 32 pituisen jakson välein. Etsin- • · * ;·*·; 25 täjaksoa varten taaksepäin peruuttavat polkumetriikat alustetaan kaikki yhtä suuriksi esim. nolliksi paitsi datalohkon lopussa, jossa etsintäjaksoa ei tarvita, ,.t . koska kooderin oletetaan lopettavan nollatilaan, jolloin painotetaan nollatilan metriikkaan enemmän kuin muita. Ns syklisen trelliksen terminoinnin yhtey-; * * dessä etsintäjakso tehdään myös datalohkon lopussa.
30 Taaksepäin kulkevien polkumetriikoiden laskenta alustetaan joka 64 pituisen jakson jälkeen uudestaan; tällöin seuraavat 32 näytettä se on läm-/..t mittelymoodissa, eli suorittaa etsintäjaksoa, sen jälkeen se alkaa tuottaa ' käyttökelpoista dataa uuden ulkoisen painokertoimen tai pehmeän päätöksen
» * * · I
laskemiseksi.
35 Aloitustilanteessa ensimmäinen hyödyllinen etsintäjakso alkaa het kellä Ac — 64 ja seuraavat etsintäjakson aloitushetket ovat Ac = 64 +k*32, n = 0, j 12 109162 1, 2, 3,... Yksikkö B1 aloittaa etsintäjakson hetkinä k = ( n + 1 )*64 ja yksikkö B2 aloittaa etsintäjaksot hetkinä k = (n + 1 )*64 +32.
Tila MO M1_M2 |m3
00 F_B2__B1CS
01 B2CS F___ JO__B1CS F_B2_ 11 B1 l B2CS [f
Taulukko 1 5
Oheinen taulukko 1 havainnollistaa muistin osien käyttöä dekoodauksen aikana tilakoneen avulla. Vasemmanpuoleisimmassa sarakkeessa on tilakoneen eri tilat binäärimuodossa. Tilat saadaan aiemmin mainitusta yhtälöstä 10 tila = (k div 32) modulo 4.
Sarakkeet MO, M1, M2 ja M3 käsittävät tiedon siitä mikä laskentayksikkö kulloinkin käsittelee mitäkin muistin osaa. Eteenpäin polkumetriikoiden laskentaa suorittava laskentayksikön F kirjoittaa muistiin ja taaksepäin polkumetriikoiden ... j laskentaa suorittavat laskentayksiköt lukevat muistista.
15 Tilassa 00 eteenpäin laskeva yksikkö kirjoittaa muistin osaan MO.
• · • ^ Taaksepäin laskeva yksikkö B2 lukee dataa osasta M1 ja laskee hyötylas-; kentaa. Muistin osaan M2 ei kohdistu toimintoja. Taaksepäin laskeva yksikkö ;,t‘ B1 lukee dataa osasta M3 ja on lämmittelyvaiheessa (B1cs).
Tilassa 01 eteenpäin laskeva yksikkö kirjoittaa muistin osaan M1.
20 Taaksepäin laskeva yksikkö B2 lukee dataa osasta MO ja on lämmittelyvaiheessa (B2CS). Taaksepäin laskeva yksikkö B1 lukee dataa osasta M2 ja las-; t'.: kee hyötylaskentaa. Muistin osaan M3 ei kohdistu toimintoja.
Tilassa 10 eteenpäin laskeva yksikkö kirjoittaa muistin osaan M2.
/ . Taaksepäin laskeva yksikkö B1 lukee dataa osasta M1 ja on lämmittelyvai- 25 heessa. Taaksepäin laskeva yksikkö B2 lukee dataa osasta M3 ja laskee ; * ‘ hyötylaskentaa. Muistin osaan MO ei kohdistu toimintoja.
Tilassa 11 eteenpäin laskeva yksikkö kirjoittaa muistin osaan M3.
:··; Taaksepäin laskeva yksikkö B1 lukee dataa osasta MO ja laskee hyötylas kentaa. Muistin osaan M1 ei kohdistu toimintoja. Taaksepäin laskeva yksikkö 30 B2 lukee dataa osasta M2 ja on lämmittelyvaiheessa I 13 109162
Kun tarkastellaan esimerkkiä yleisestä tapauksesta, merkitään nel-jäsosaikkunan pituutta L:llä ja etsintäjakson pituutta W:llä. Nämä voivat olla eripituisia, esimerkiksi L = 2*W, jolloin muistin osien koko kaksinkertaistuu, mutta suoritettavien etsintäjaksojen lukumäärä pienenee. Kuitenkin L>W.
5 Implementoinnin kannalta kahden potenssit ovat edullisia, koska silloin tarvittavan ohjaustiedon laskeminen on yksinkertaista, esim. L=W=Z2 tai L=64 ja W=32.
Merkitään siis L = neljäsosaikkunan pituus 10 W= etsintäjakson pituus N= dekoodattavien bittien lukumäärä, k = 0, 1, 2, ..., N - 1 Eteenpäin menevät polkumetriikat kirjoitetaan yhdessä muun tietueen datan kanssa muistin osaan numero (k div L) modulo 4 osoitteeseen k modulo L 15 Etsintäjaksoa suorittaa B1 aina kun ( k div L ) on parillinen ja B1 aloittaa etsintäjakson kun k = (n+1)*2*L + L-W, missä n=0,1,2, ... Etsintäjak-sossa käytettävä muistin osa on ( k div L + 3) modulo 4 ja osoitteet /.-1-(/( modulo L).
Vastaavasti etsintäjaksoa suorittaa B2 aina kun (k div L) on pariton I f I « ' * 20 ja B2 aloittaa etsintäjakson aloitetaan kun k = (n+1)*2*L + 2*L - W, missä ’·· n=0,1,2,...
:tj · Hyödyllisiä taaksepäin meneviä polkumetriikoita tuottaa B1 kun ( k I : div L ) on pariton ja vastaavasti B1 kun ( k div L ) on parillinen. Hyötyjaksossa : ’' *: käytettävä muistin osa on :"25 (k div L + 1) modulo 4 ja osoitteet L - 1 - (k modulo L).
Dekoodattavien symbolien loppuessa täytyy dekoodaus lopettaa . hallitusti riippuen koodauksen yhteydessä käytetystä terminoinnista. Tarkas- • I » ,',/ teilaan esimerkinomaisesti lopetusta konventionaalisen terminoinnin tapauk- ;·’ sessa kun L = W = 32. Tämä tapahtuu siten, että eteenpäin laskeva yksikkö :/ ·; 30 lopettaa toimintansa kun k - N, mutta taaksepäin etenevät yksiköt jatkavat /”: toimintaansa, kunnes /c=K=N + 31- [(N-1) modulo 32]. Tämän jälkeen toi- l * * /. nen taaksepäin menevä yksikkö, esimerkiksi B1, hyppää paikkaan N - 1 ja ’ , taaksepäin laskettavien metriikoiden alkuarvoiksi laitetaan ne polkumetriikat,
1 ' » t I
jotka suosivat koodin tilaa nolla. Yksikkö B2 laitetaan pois päältä. Seuraavaksi 35 yksikkö B1 lähtee laskemaan metriikoita taaksepäin muistin osasta t = ((N-1) div 32) modulo 4, edeten muistin osaan (t + 3) modulo 4, ja lopuksi (t + 2) mo- ! 14 109162 dulo 4. Lukujärjestys on laskeva kustakin muistin osasta. Esimerkiksi jos t = 00, niin käytettävät muistin osat ovat MO, M3 ja M2. Jos lohkon pituus on alle 65, niin silloin lopetusjärjestys on aina M1 ja MO tai pelkästään MO.
Lopetus ns. syklisen terminoinnin yhteydessä tapahtuu kuten yllä, 5 paitsi että B1:n alkuarvoiksi laitetaan ne alkuarvot, jotka lohkon alussa suoritettu etsintäjakso tilassa 01 antoi. Syklisen terminoinnin tapauksessa alussa täytyy suorittaa yksi etsintäjakso enemmän kuin konventionaalisen terminoinnin tapauksessa.
Lopetus tapauksessa, jossa ei ole terminointia ollenkaan, tapahtuu 10 kuten konventionaalisen terminoinnin yhteydessä, mutta B1:n alkuarvoiksi laitetaan sellaiset arvot, jotka suosivat kaikkia polkumetriikkoja yhtä paljon.
Vaikka keksintöä on edellä selostettu viitaten oheisten piirustusten mukaiseen esimerkkiin, on selvää, ettei keksintö ole rajoittunut siihen, vaan sitä voidaan muunnella monin tavoin oheisten patenttivaatimusten esittämän 15 keksinnöllisen ajatuksen puitteissa.
• ·« ·
» I
• · * · * · • · · * ♦ * a j I * * * * | · > I * I * · f * I * 1 « t • · * · · * · *
• I
: « * · i ! ! i · * * * * * · » * * t * l I t » * * » • > 1 • t il*** l s

Claims (19)

109162 ί 15 Patentti vaati m u kset
1. Menetelmä konvoluutiokoodatun koodisanan dekoodaamiseksi koodisanan yli liukuvan ikkunan avulla, joka menetelmä käsittää polkumetrii-koiden laskemisen eteenpäin ja taaksepäin yhtäaikaisesti liukuvassa ikkunas- 5 sa, ja dekoodaustuloksen laskemisen polkumetriikoiden perusteella syntee-siyksikössä (314), tunnettu siitä, että a) käytetään neliosaista liukuvaa ikkunaa (400), b) lasketaan polkumetriikkaa eteenpäin-suunnassa liukuvan ikku-10 nan ensimmäisessä osassa (402) ja talletetaan polkumetriikat neliosaiseen muistiin (306), c) lasketaan polkumetriikkaa taaksepäin-suunnassa liukuvan ikkunan kahdessa muussa osassa siten, että laskentayksiköiden sisäänmeno tulee neliosaisesta muistista (306), 15 d) viedään lasketut metriikat synteesiyksikköön (314) ja lasketaan dekoodaustulos, e) siirretään liukuvaa ikkunaa eteenpäin yhden osan verran, f) toistetaan edellisiä askelia a) - e).
2. Patenttivaatimuksen 1 mukainen menetelmä, tunnettu siitä, 20 että lasketaan polkumetriikkaa taaksepäin-suunnassa siten, että liukuvan ik- kunan toisessa osassa (404) laskentayksikkö suorittaa lämmittelyjaksoa tule- • · vaa laskentaa varten ja liukuvan ikkunan neljännessä osassa (408) lasken-! . tayksikkö suorittaa polkumetriikan laskentaa.
3. Patenttivaatimuksen 1 mukainen menetelmä, tunnettu siitä, ; ' 25 että lasketaan polkumetriikkaa taaksepäin-suunnassa kahdessa osassa siten, että jompikumpi osa suorittaa lämmittelyjaksoa ja toinen osa varsinaista las-kentaa.
4. Patenttivaatimuksen 1 mukainen menetelmä, tunnettu siitä, että neliosaista muistia (306) luetaan aina samasta suunnasta ja että luku-• 30 suunta on päinvastainen kuin kirjoitussuunta.
.· . 5. Patenttivaatimuksen 1 mukainen menetelmä, tunnettu siitä, *; [: että kullakin ajan hetkellä k eteenpäin-suuntaan laskentaa suorittava yksikkö (304) kirjoittaa neliosaisen muistin osan (k div L) modulo 4 muistipaikkaan k modulo L, missä L on liukuvan ikkunan neljäsosan pituus.
6. Patenttivaatimuksen 5 mukainen menetelmä, tunnettu siitä, että muistipaikkaan talletetaan eteenpäin lasketut polkumetriikat, sisäinen pai- 109162 nokerroin, pariteetin lukuarvo ja sen muistipaikan osoite, josta ulkoinen painokerroin haettiin.
7. Patenttivaatimuksen 1 mukainen menetelmä, tunnettu siitä, että lämmittelyjaksoa suoritettaessa sisäänmenodata haetaan kullakin ajan 5 hetkellä k muistielementistä ( k div L + 3) modulo 4, missä L on liukuvan ikkunan neljäsosan pituus.
8. Patenttivaatimuksen 1 mukainen menetelmä, tunnettu siitä, että taaksepäin meneviä polkumetriikoita dataa laskettaessa sisäänmenodata haetaan kullakin ajan hetkellä k neliosaisen muistin osasta ( k div L + 1) mo- 10 dulo 4, missä L on liukuvan ikkunan neljäsosan pituus.
9. Patenttivaatimuksen 1 mukainen menetelmä, tunnettu siitä, että yhteen synteesiyksikön sisäänmenoon on kytketty muistin osa (k div L +1) modulo 4, missä L on liukuvan ikkunan neljäsosan pituus.
10. Patenttivaatimuksen2mukainen menetelmä, tunnettu siitä, 15 että liukuvan ikkunan neljännessä osassa (408) laskentayksikön laskemat pol- kumetriikat viedään synteesiyksikölle.
11. Järjestely konvoluutiokoodatun koodisanan dekoodaamiseksi koodisanan yli liukuvan ikkunan (400) avulla, joka järjestely käsittää ensimmäisen muistin (302) koodisanan tallentamiseksi, ensimmäiset, toiset ja kol- 20 mannet laskentavälineet (304, 308, 310) laskea polkumetriikoita eteenpäin ja taaksepäin ja synteesiyksikön (314) dekoodaustuloksen laskemiseksi polku-:··: metriikoiden perusteella, ja toisen muistin (306) polkumetriikoiden väliaikaisek- si tallentamiseksi, tunnettu siitä, että 25 ensimmäiset laskentavälineet (304) on sovitettu lukemaan koodisa- nan symboleita ensimmäisestä muistista (302) ja laskemaan polkumetriikkaa eteenpäin-suunnassa annetun mittaisen neliosaisen liukuvan ikkunan ensim- • · ‘ · · · ’ mäisessä osassa (402) ja tallettamaan polkumetriikat toiseen muistiin (306), toisten ja kolmansien laskentavälineiden (308, 310) sisäänmenoon :. v,i 30 on kytketty toisen muistin (306) ulostulo, toiset ja kolmannet laskentavälineet (308, 310) on sovitettu laske-: maan polkumetriikkaa taaksepäin-suunnassa liukuvan ikkunan kahdessa • ··’ muussa osassa, toisten ja kolmansien laskentavälineiden (308, 310) sekä toisen v : 35 muistin (306) ulostulo on toiminnallisesti kytketty synteesiyksikön (314) si- ί": säänmenoon, ja että 109162 järjestely käsittää ohjausvälineet (316), jotka on sovitettu siirtämään liukuvaa ikkunaa eteenpäin yhden osan verran, kunnes koodisanan loppu saavutetaan.
12. Patenttivaatimuksen 11 mukainen järjestely, tunnettu siitä, 5 että toiset ja kolmannet laskentavälineet (308, 310) on sovitettu laskemaan polkumetriikkaa taaksepäin-suunnassa siten, että kun toiset laskentavälineet suorittavat lämmittelyjaksoa, suorittavat toiset laskentavälineet samanaikaisesti varsinaista laskentaa.
13. Patenttivaatimuksen 11 mukainen järjestely, tunnettu siitä, 10 että toinen muisti (306) käsittää neljä osaa (402 - 408).
14. Patenttivaatimuksen 12 mukainen järjestely, tunnettu siitä, että ensimmäiset laskentavälineet (304) on sovitettu kullakin ajan hetkellä k kirjoittamaan toisen muistin (306) osan (k div L) modulo 4 muistipaikkaan k modulo L, missä L on liukuvan ikkunan neljäsosan pituus.
15. Patenttivaatimuksen 11 mukainen järjestely, tunnettu siitä, että toiset ja kolmannet laskentavälineet (308, 310) on kytketty synteesiyksi-kön (314) sisäänmenoon multiplekserin (312) välityksellä.
16. Patenttivaatimuksen 15 mukainen järjestely, tunnettu siitä, että multiplekseri (312) on sovitettu yhdistämään vuoronperään jommankum-20 man toisista ja kolmansista laskentavälineistä (308, 310) synteesiyksikön (314) sisäänmenoon.
:·: 17. Patenttivaatimuksen 12 ja 13 mukainen järjestely, tunnettu | siitä, että lämmittelyjaksoa suorittavan laskentayksikön sisäänmenoon on kyt- ; ketty kullakin ajan hetkellä k toisen muistin (306) osa ( k div L + 3) modulo 4, 25 missä L on liukuvan ikkunan neljäsosan pituus.
, · · ·. 18. Patenttivaatimuksen 12 ja 13 mukainen järjestely, tunnettu • 1 siitä, että varsinaista dataa laskevan laskentayksikön sisäänmenoon on kyt-·’ ketty kullakin ajan hetkellä k toisen muistin osa ( k div L + 1) modulo 4, missä L on liukuvan ikkunan neljäsosan pituus.
19. Patenttivaatimuksen 11 mukainen menetelmä, tunnettu siitä, että yhteen synteesiyksikön sisäänmenoon on kytketty muistin osa (k div .·. : L +1) modulo 4, missä L on liukuvan ikkunan neljäsosan pituus. » > • · I · · · 109162
FI20001571A 2000-06-30 2000-06-30 Menetelmä ja järjestely konvoluutiokoodatun koodisanan dekoodaamiseksi FI109162B (fi)

Priority Applications (7)

Application Number Priority Date Filing Date Title
FI20001571A FI109162B (fi) 2000-06-30 2000-06-30 Menetelmä ja järjestely konvoluutiokoodatun koodisanan dekoodaamiseksi
CN01812152.7A CN1241329C (zh) 2000-06-30 2001-06-28 对卷积编码的代码字进行解码的方法和设备
PCT/FI2001/000619 WO2002003554A1 (en) 2000-06-30 2001-06-28 Method and arrangement for decoding a convolutionally encoded codeword
AU2001272603A AU2001272603A1 (en) 2000-06-30 2001-06-28 Method and arrangement for decoding a convolutionally encoded codeword
EP01951747A EP1325560A1 (en) 2000-06-30 2001-06-28 Method and arrangement for decoding a convolutionally encoded codeword
US09/896,637 US7213194B2 (en) 2000-06-30 2001-06-29 Method and arrangement for decoding a convolutionally encoded codeword
US11/683,047 US20070162837A1 (en) 2000-06-30 2007-03-07 Method and arrangement for decoding a convolutionally encoded codeword

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FI20001571 2000-06-30
FI20001571A FI109162B (fi) 2000-06-30 2000-06-30 Menetelmä ja järjestely konvoluutiokoodatun koodisanan dekoodaamiseksi

Publications (3)

Publication Number Publication Date
FI20001571A0 FI20001571A0 (fi) 2000-06-30
FI20001571A FI20001571A (fi) 2001-12-31
FI109162B true FI109162B (fi) 2002-05-31

Family

ID=8558697

Family Applications (1)

Application Number Title Priority Date Filing Date
FI20001571A FI109162B (fi) 2000-06-30 2000-06-30 Menetelmä ja järjestely konvoluutiokoodatun koodisanan dekoodaamiseksi

Country Status (6)

Country Link
US (2) US7213194B2 (fi)
EP (1) EP1325560A1 (fi)
CN (1) CN1241329C (fi)
AU (1) AU2001272603A1 (fi)
FI (1) FI109162B (fi)
WO (1) WO2002003554A1 (fi)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI246524B (en) * 2001-01-19 2006-01-01 Shearwater Corp Multi-arm block copolymers as drug delivery vehicles
EP1461869A1 (en) 2001-12-28 2004-09-29 Koninklijke Philips Electronics N.V. Method for decoding data using windows of data
JP3867597B2 (ja) * 2002-03-19 2007-01-10 セイコーエプソン株式会社 電気光学装置並びに電子機器及び投射型表示装置
WO2003081786A1 (de) * 2002-03-27 2003-10-02 Siemens Aktiengesellschaft Verfahren zur decodierung einer mit hilfe eines binären faltungscodes verschlüsselten datenfolge
JP4227481B2 (ja) * 2003-07-11 2009-02-18 パナソニック株式会社 復号装置および復号方法
KR100744367B1 (ko) * 2004-05-24 2007-07-30 삼성전자주식회사 가변 윈도우가 적용된 터보 복호화 장치 및 방법
KR100606023B1 (ko) * 2004-05-24 2006-07-26 삼성전자주식회사 고속 터보 복호화 장치
US7965710B1 (en) * 2006-11-27 2011-06-21 Marvell International Ltd. Decoding operations in normal transmission mode
US8411709B1 (en) 2006-11-27 2013-04-02 Marvell International Ltd. Use of previously buffered state information to decode in an hybrid automatic repeat request (H-ARQ) transmission mode
US8149715B1 (en) 2007-07-17 2012-04-03 Marvell International Ltd. Mesh network operations
US8542725B1 (en) 2007-11-14 2013-09-24 Marvell International Ltd. Decision feedback equalization for signals having unequally distributed patterns
US8565325B1 (en) 2008-03-18 2013-10-22 Marvell International Ltd. Wireless device communication in the 60GHz band
US8171384B2 (en) * 2008-06-27 2012-05-01 Freescale Semiconductor, Inc. Device having turbo decoding capabilities and a method for turbo decoding
US8498342B1 (en) 2008-07-29 2013-07-30 Marvell International Ltd. Deblocking filtering
US8345533B1 (en) 2008-08-18 2013-01-01 Marvell International Ltd. Frame synchronization techniques
US9288764B1 (en) 2008-12-31 2016-03-15 Marvell International Ltd. Discovery-phase power conservation
US8520771B1 (en) 2009-04-29 2013-08-27 Marvell International Ltd. WCDMA modulation
US8767771B1 (en) 2010-05-11 2014-07-01 Marvell International Ltd. Wakeup beacons for mesh networks
US8817771B1 (en) 2010-07-16 2014-08-26 Marvell International Ltd. Method and apparatus for detecting a boundary of a data frame in a communication network
US8650468B2 (en) * 2010-07-27 2014-02-11 MediaTek Pte. Ltd. Initializing decoding metrics
WO2012054210A1 (en) 2010-10-20 2012-04-26 Marvell World Trade Ltd. Pre-association discovery
US9112763B1 (en) * 2014-07-02 2015-08-18 O2Micro Inc. Device, system and method for bi-phase modulation decoding
TWI565246B (zh) * 2015-01-12 2017-01-01 晨星半導體股份有限公司 迴旋編碼的解碼方法

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4872168A (en) * 1986-10-02 1989-10-03 American Telephone And Telegraph Company, At&T Bell Laboratories Integrated circuit with memory self-test
US4807230A (en) * 1987-05-29 1989-02-21 Racal Data Communications Inc. Frame synchronization
US5432803A (en) * 1992-04-30 1995-07-11 Novatel Communications, Ltd. Maximum likelihood convolutional decoder
US5721745A (en) * 1996-04-19 1998-02-24 General Electric Company Parallel concatenated tail-biting convolutional code and decoder therefor
US5933462A (en) * 1996-11-06 1999-08-03 Qualcomm Incorporated Soft decision output decoder for decoding convolutionally encoded codewords
US6477208B1 (en) * 1997-10-30 2002-11-05 Comtier Composite trellis system and method
US6115436A (en) 1997-12-31 2000-09-05 Ericsson Inc. Non-binary viterbi decoder using butterfly operations
US6510536B1 (en) 1998-06-01 2003-01-21 Her Majesty The Queen In Right Of Canada, As Represented By The Minister Of Industry Through The Communications Research Centre Reduced-complexity max-log-APP decoders and related turbo decoders
JPH11355150A (ja) 1998-06-09 1999-12-24 Sony Corp パンクチャドビタビ復号方法
US6477680B2 (en) 1998-06-26 2002-11-05 Agere Systems Inc. Area-efficient convolutional decoder
ID28538A (id) * 1998-08-14 2001-05-31 Qualcomm Inc Tata letak (arsitektur) memori untuk memetakan dekoder
US6434203B1 (en) * 1999-02-26 2002-08-13 Qualcomm, Incorporated Memory architecture for map decoder
US6484283B2 (en) * 1998-12-30 2002-11-19 International Business Machines Corporation Method and apparatus for encoding and decoding a turbo code in an integrated modem system
GB9906588D0 (en) * 1999-03-22 1999-05-19 Lucent Technologies Inc Method of interative maximum-a-posteriori decoding of concatenated convolutional codes with corresponding decoding devicesa
US6856657B1 (en) * 2000-02-10 2005-02-15 Motorola, Inc. Soft output decoder for convolutional codes
US6452979B1 (en) * 2000-09-06 2002-09-17 Motorola, Inc. Soft output decoder for convolutional codes

Also Published As

Publication number Publication date
WO2002003554A1 (en) 2002-01-10
FI20001571A (fi) 2001-12-31
CN1440592A (zh) 2003-09-03
US7213194B2 (en) 2007-05-01
FI20001571A0 (fi) 2000-06-30
US20070162837A1 (en) 2007-07-12
CN1241329C (zh) 2006-02-08
EP1325560A1 (en) 2003-07-09
US20020012408A1 (en) 2002-01-31
AU2001272603A1 (en) 2002-01-14

Similar Documents

Publication Publication Date Title
FI109162B (fi) Menetelmä ja järjestely konvoluutiokoodatun koodisanan dekoodaamiseksi
EP1166451B1 (en) Highly parallel map decoder
US7584409B2 (en) Method and device for alternately decoding data in forward and reverse directions
US6854077B2 (en) Apparatus and method for providing turbo code interleaving in a communications system
TWI406509B (zh) 渦輪解碼器及解碼渦輪編碼信號的方法
KR20010072501A (ko) 맵 디코더용 메모리 구조
MXPA01003814A (es) Sistema de codificacion que tiene una maquina de estado basada en un intercalador.
US8370713B2 (en) Error correction code decoding device
US7246298B2 (en) Unified viterbi/turbo decoder for mobile communication systems
US20020007474A1 (en) Turbo-code decoding unit and turbo-code encoding/decoding unit
US6563890B2 (en) Maximum a posteriori probability decoding method and apparatus
US20060265635A1 (en) Method of maximum a posterior probability decoding and decoding apparatus
JP3670520B2 (ja) ターボ復号器およびターボ復号装置
US6304985B1 (en) Coding system having state machine based interleaver
US7278088B2 (en) Configurable architecture and its implementation of viterbi decorder
KR100628201B1 (ko) 터보 디코딩 방법
CA2340366C (en) Memory architecture for map decoder
US6889353B2 (en) Method and arrangement for decoding convolutionally encoded code word
US7480846B2 (en) Iterative turbo decoder with single memory
US7096410B2 (en) Turbo-code decoding using variably set learning interval and sliding window
KR100355452B1 (ko) 엠에이피 방식을 사용한 터보 복호기
JP2001326577A (ja) 直接連接畳込み符号器、及び、直接連接畳込み符号化方法