FI112570B - Menetelmä ja järjestely trelliksen läpikäymisen tehostamiseksi - Google Patents

Menetelmä ja järjestely trelliksen läpikäymisen tehostamiseksi Download PDF

Info

Publication number
FI112570B
FI112570B FI20021046A FI20021046A FI112570B FI 112570 B FI112570 B FI 112570B FI 20021046 A FI20021046 A FI 20021046A FI 20021046 A FI20021046 A FI 20021046A FI 112570 B FI112570 B FI 112570B
Authority
FI
Finland
Prior art keywords
state
indices
group
memory
index
Prior art date
Application number
FI20021046A
Other languages
English (en)
Swedish (sv)
Other versions
FI20021046A0 (fi
Inventor
Jari A Parviainen
Teemu Sipilae
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 FI20021046A priority Critical patent/FI112570B/fi
Publication of FI20021046A0 publication Critical patent/FI20021046A0/fi
Priority to US10/516,120 priority patent/US7159167B2/en
Priority to EP03755989A priority patent/EP1510010A1/en
Priority to CN038121891A priority patent/CN1656695B/zh
Priority to PCT/FI2003/000404 priority patent/WO2003103153A1/en
Priority to KR10-2004-7019165A priority patent/KR20050006276A/ko
Priority to AU2003232259A priority patent/AU2003232259A1/en
Application granted granted Critical
Publication of FI112570B publication Critical patent/FI112570B/fi

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/65Purpose and implementation aspects
    • H03M13/6502Reduction of hardware complexity or efficient processing
    • 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/3955Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using a trellis with a reduced state space complexity, e.g. M-algorithm or T-algorithm
    • 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/41Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
    • 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/65Purpose and implementation aspects
    • H03M13/6502Reduction of hardware complexity or efficient processing
    • H03M13/6505Memory efficient implementations

Landscapes

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

Description

112570
Menetelmä ja järjestely trelliksen läpikäymisen tehostamiseksi
Keksinnön ala
Keksinnön kohteena on menetelmä ja järjestely trelliksen läpikäymisen tehostamiseksi, jossa trelliksen kussakin vaiheessa valitaan tietty joukko 5 vaiheen tilaindekseistä jatkoon.
Tausta
Tietoliikennejärjestelmissä käytetty kanava aiheuttaa usein häiriöitä tiedonsiirrolle. Häiriöitä esiintyy kaikenlaisissa järjestelmissä, mutta erityisesti langattomissa tietoliikennejärjestelmissä siirtotie vaimentaa ja vääristää siirret-10 tävää signaalia monin eri tavoin. Siirtotiellä häiriöitä aiheuttavat tyypillisesti signaalin monitie-eteneminen, erilaiset häipymät ja heijastukset, sekä myös 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 paljon käytetty koodausmenetelmä on konvoluutiokoodaus. Konvoluutiokoo-dauksessa lähetettävä symboleista koostuva signaali koodataan koodisanoiksi, jotka perustuvat lähetettävien symboleiden konvoluutioon joko itsensä tai jonkin toisen signaalin kanssa. Konvoluutiokoodin määrittävät koodaussuhde se-20 kä koodauspolynomit. Koodaussuhde (k/n) tarkoittaa tuotettujen koodattujen symbolien lukumäärää (n) suhteessa koodattavien symboleiden lukumäärään (k). Kooderi toteutetaan usein siirtorekisterien avulla. Koodin vaikutussyvyydel-lä (constraint length K) tarkoitetaan usein siirtorekisterin pituutta. Kooderia voi-. . daan pitää tilakoneena, jossa on 2K'1 tilaa.
25 Vastaanottimessa dekoodataan kanavassa edennyt koodattu sig naali. Konvoluutiokoodi dekoodataan yleensä käyttäen apuna trellistä, jonka solmut kuvaavat signaalin koodauksessa käytetyn enkooderin tiloja, ja trellik-• ',: sen eri vaiheisiin kuuluvien solmujen väliset polut kuvaavat sallitut tilasiirtymät.
' : Dekooderissa on pyrkimyksenä selvittää kooderin peräkkäiset tilat eli siirtymät , 30 tiloista toiseen. Siirtymien selvittämiseksi dekooderissa lasketaan metriikoita, !, joita on kahdenlaisia: polkumetriikat (path metrics, myös state metrics) ja siir- ' , tymämetriikat (branch metrics). Polkumetriikka edustaa todennäköisyyttä sille, : : j että vastaanotetun signaalin sisältämien symbolien joukko johtaa kyseisen : ' · : solmun kuvaamaan tilaan. Siirtymämetriikka edustaa eri siirtymien todennäköi- 35 syyksiä.
2 112570
Konvoluutiokoodin dekoodauksessa käytetään yleisesti Viterbi-algoritmia. Viterbi-algoritmi on laskennallisesti vaativa tehtävä. Yleinen ongelma viterbi-algoritmissa on se, että kun konvoluutiokoodin koodaussyvyys on suuri (esimerkiksi 9, kuten UTMS-järjestelmän WCDMA:ssa), täytyy viterbi-5 algoritmissa käydä yhden bitin dekoodaamiseksi lävitse 2(9'1) eli 256 tilaa. Etenkin langattomissa tiedonsiirtojärjestelmissä, missä tilaajapäätelaitteiden koko ja virrankulutus pyritään minimoimaan, on yritetty etsiä tehokkaita signaalinkäsittelyalgoritmeja. Puheen tai datan dekoodauksessa eräs laskennallisesti tehokas algoritmi on ns. M-algoritmi, joka on viterbi-algoritmista yksinkertaistet-10 tu etsintäalgoritmi. M-algoritmin käyttö mahdollistaa etsittävien tilojen määrän vähentämisen, koska trelliksen vaiheissa valitaan vain M parasta polkua jatkoon kaikkien polkujen asemasta. Valittaessa Mille sopiva arvo ei dekooderin suorituskyky kuitenkaan huonone merkittävästi. Esimerkiksi yllä mainitussa järjestelmässä Mille voidaan valita arvo 128, eli kussakin vaiheessa otetaan 15 jatkoon puolet mahdollisista poluista.
Eräs M-algoritmin käyttöön liittyvistä ongelmista on jatkoon otettavien polkujen valinta kaikkien polkujen joukosta. Tyypillisesti n:n alkion järjestely vaatii n2/2 vertailuoperaatiota, ja tämä on laskennallisesti vaativa tehtävä. Oletetaan, että yhden bitin dekoodaus WCDMAissa vaatii DSP(digital signal pro-20 cessing)-toteutuksena noin 500 kellojaksoa käyttäen täyttä etsintäalgoritmia. Jos käytetään M-algoritmia, tutkittavien tilojen määrä pienenee, mutta vastaavasti lajittelun toteuttaminen lisää kompleksisuutta. Laitettaessa 16 alkiota järjestykseen tarvitaan 128 vertailuoperaatiota. Täten M-algoritmin toteutus 16:lla parhaalla polulla johtaa lähes samaan monimutkaisuuteen kuin täydellinen et-: 25 sintäalgoritmi. Jos käytetään 256-tilaista koodia, niin täydellinen lajittelu vaatii n2/2 eli 32768 vertailua. Täydellisen lajittelun toteuttaminen on liian kompleksinen operaatio toteutettavaksi perinteisin menetelmin.
Eräs tunnettu ratkaisu M-algoritmin toteuttamiseksi on esitetty julkaisussa S. J. Simmons: A Nonsorting VLSI structure for implementing the 30 (M,L) algorithm, IEEE Journal on Selected Areas in Communications, Voi. 6,
No: 3, April 1988, p.538-546. Esitetyssä ratkaisussa ei suoriteta varsinaista järjestelyä, vaan tarkastellaan useita eri polkumetriikoita samanaikaisesti, alkaen eniten merkitsevästä bitistä. Eri polkuja tarkastellaan, ja samalla tehdään päätöksiä pidetäänkö vai hylätäänkö reitit. Jos tarkasteltava reitti on vastakkai-35 nen jo valitun reitin kanssa, se hylätään. Julkaisussa esitetty ratkaisu toimii 3 112570 kuitenkin huonosti tilanteissa, joissa trelliksen koko on suuri, kuten on laita esimerkiksi UTMS-järjestelmän WCDMA:ssa.
Trellis-rakennetta käytetään konvoluutiokoodauksen dekoodauksen lisäksi lukuisissa muissakin sovelluksissa, kuten esimerkiksi kanavakorjauk-5 sessa. Samat yllä mainitut ongelmat pätevät näissäkin sovelluksissa trelliksen koon kasvaessa.
Laitteiden koon ja virrankulutuksen minimoimiseksi tarvitaan siis aiempaa tehokkaampia menetelmiä trelliksen läpikäymiseksi, jotka menetelmät ovat nopeita ja joiden toteutus ASIC-rakenteena vaatii vähän tilaa.
10 Keksinnön lyhyt selostus
Keksinnön tavoitteena on toteuttaa menetelmä ja menetelmän toteuttava laite siten, että rajoitettu trellis-haku on mahdollista toteuttaa aiempaa edullisemmin. Tämä saavutetaan menetelmällä trelliksen läpikäymisen tehostamiseksi, jossa trelliksen kussakin vaiheessa valitaan tietty joukko vaiheen 15 tilaindekseistä jatkoon. Keksinnön mukaisessa menetelmässä kussakin trelliksen vaiheessa määritetään useampi kuin yksi eri suurta kynnysarvoa tilaindek-sien arvoille, joka kukin kynnysarvo määrittää yhden tilaindeksiryhmän, lasketaan kullekin tilaindeksille polkumetriikka, sijoitetaan lasketut tilaindeksit eri tilaindeksiryhmiin vertaamalla tilaindeksin polkumetriikan arvoa kynnysarvoihin, 20 valitaan jatkoon tilaindeksejä ryhmistä siten, että suurimmat tilaindeksit käsittävästä ryhmästä lähtien tilaindeksejä otetaan ryhmän sisältä satunnaisessa järjestyksessä, kunnes ryhmän kaikki indeksit on valittu, jolloin siirrytään ottamaan tilaindeksejä seuraavasta ryhmästä, ja tätä toistetaan kunnes tietty mää-; rä tilaindeksejä on saatu valittua.
25 Keksinnön kohteena on myös järjestely trelliksen läpikäymisen te hostamiseksi detektorissa, joka on sovitettu valitsemaan trelliksen kussakin vaiheessa tietty joukko vaiheen tilaindekseistä jatkoon. Järjestelyssä detektori on sovitettu kutakin trelliksen vaihetta laskettaessa määrittämään useampi kuin yksi eri suurta kynnysarvoa tilaindeksien arvoille, joka kukin kynnysarvo mää-: 30 rittää yhden tilaindeksiryhmän, laskemaan kullekin tilaindeksille polkumetriikka, ; sijoittamaan lasketut tilaindeksit eri ryhmiin vertaamalla tilaindeksin polkumet- riikan arvoa kynnysarvoihin, valitsemaan jatkoon tietty määrä tilaindeksejä ·' ryhmistä siten, että suurimmat tilaindeksit pitävästä ryhmästä lähtien jatkoon : i otetaan kokonaisia ryhmiä, kunnes seuraava kokonainen ryhmä ei mahdu mu- : 35 kaan, ja tästä ryhmästä otetaan mukaan satunnaisesti valittuja tilaindeksejä kunnes tietty määrä on koossa.
4 112570
Keksinnön edullisia suoritusmuotoja on kuvattu epäitsenäisissä patenttivaatimuksissa.
Keksinnön mukaisella menetelmällä ja järjestelmällä saavutetaan täten useita etuja. Keksinnön edullisten ratkaisujen toteuttaminen vastaanotti-5 messa on yksinkertaista. M-algoritmia ei käytännössä ole juurikaan hyödynnetty sen vaatiman laskennan takia. Esitetyn ratkaisun avulla M-algoritmia voidaan tehokkaasti hyödyntää. Koska ratkaisussa tutkitaan vähemmän tiloja verrattuna viterbi-algoritmiin, ei tarvita yhtä paljon muistia polkujen laskemisessa. Tästä seuraa säästöjä laitteistokustannuksissa. Edelleen vastaanottimen vir-10 rankulutus pienenee ratkaisun ansiosta, koska laskentaa on vähemmän ja tarvittavan muistitilan määrä pienempi. Ratkaisuilla saavutetaan kuitenkin riittävä suorituskyky, käytännössä yhdenvertainen aiempien menetelmien kanssa.
Keksinnön vaatiman laskennan toteutuksessa käytetään eräässä toteutusvaihtoehdossa moduloaritmetiikkaa. Tästä syystä lasketuille metriikoille 15 ei tarvitse suorittaa minkäänlaista skaalausta. Tämä yksinkertaistaa laskentaa ja ratkaisun toteutusta.
Erityisesti suurten datanopeuksien yhteydessä saavutetaan esitetyllä ratkaisulla merkittävää hyötyä, koska tällöin trelliksen koko on tyypillisesti suuri. Suuria trelliksiä joudutaan käyttämään esimerkiksi myös silloin, kun lähe-20 tyksessä ja vastaanotossa käytetään useita antenneja, monimutkaisia modulaatiomenetelmiä ja vahvoja koodeja. Suuren trelliksen dekoodaus kasvattaa . ,; tarvittavan laskennan määrää, ja tässä tilanteessa nyt esitetyllä ratkaisulla voi- :' daan laskennan määrää pitää kurissa.
Edullisten toteutusmuotojen mukaisia ratkaisuja voidaan hyödyntää : 25 kaikissa sovelluksissa, joissa käytetään trellistä. Tällaisia sovelluksia ovat pait si yllä mainittu konvoluutiokoodin dekoodaus myös muunlaisten koodien dekoodaus, ekvalisointi, monen käyttäjän ilmaisumenetelmät (multiuser decoding), ja puheentunnistus
Kuvioluettelo 30 Keksintöä selostetaan nyt lähemmin edullisten suoritusmuotojen yh teydessä, viitaten oheisiin piirroksiin, joissa kuvio 1 esittää esimerkkiä tiedonsiirtojärjestelmästä, jossa edullisia toteutusmuotoja voidaan soveltaa, ;.: : kuvio 2 esittää esimerkkiä lähettimestä ja vastaanottimesta, 35 kuvio 3 havainnollistaa trellistä, . 112570 5 kuviot 4A ja 4B esittävät vuokaavion avulla esimerkkiä edullisesta menetelmästä, kuviot 5A ja 5B havainnollistavat moduloaritmetiikalla suoritettavaa laskentaa, 5 kuviot 6A ja 6B esittävät esimerkkejä järjestelystä ja kuvio 7 esittää esimerkkiä muistin edullisesta toteutuksesta.
Edullisten suoritusmuotojen kuvaus
Solukkoradiojärjestelmän rakenne keksinnön kannalta olennaisin osin on kuvion 1 mukainen. Järjestelmä käsittää tukiaseman 100, sekä joukon 10 yleensä liikkuvia tilaajapäätelaitteita 102 - 106, jotka ovat kaksisuuntaisessa yhteydessä 108-112 tukiasemaan. Tukiasema välittää päätelaitteiden yhteydet tukiasemaohjaimelle 114, joka välittää ne edelleen järjestelmän muihin osiin ja kiinteään verkkoon. Tukiasemaohjain 114 ohjaa yhden tai useamman tukiaseman toimintaa.
15 Viitaten kuvioon 2 tarkastellaan esimerkkiä lähettimestä 100 ja vas taanottimesta 102, joiden yhteydessä keksinnön edullisten toteutusmuotojen mukaista ratkaisua voidaan soveltaa. Kuvion esimerkissä lähetin on siis tukiasema ja vastaanotin tilaajapäätelaite, mutta edullisia toteutusmuotoja voidaan soveltaa myös silloin, kun vastaanotin on tukiasemavastaanotin. Lähetin 20 1 00 ja vastaanotin 102 kommunikoivat siis kuvion 2 esimerkissä radiokanavan 108 välityksellä. Lähetin 100 käsittää datalähteen 200, joka voi olla puhekoo-deri tai jokin muu datalähde. Datalähteen ulostulosta saadaan lähetettävä signaali 202, joka viedään kanavaenkooderille 204, joka tässä esimerkissä on konvoluutioenkooderi. Koodatut symbolit 206 viedään modulaattorille 208, jos-25 sa signaali moduloidaan jollain tunnetulla tavalla. Moduloitu signaali viedään radiotaajuusosille 210, joissa se vahvistetaan ja antennin 212 avulla lähetetään radiotielle 108.
Radiotiellä 108 signaaliin tulee häiriöitä ja tyypillisesti myös kohinaa. Vastaanotin 102 käsittää antennin 214, jolla se vastaanottaa signaalin, joka 30 viedään radiotaajuusosien 216 kautta demodulaattorille 218. Demoduloitu signaali viedään detektorille 220, jossa signaalille suoritetaan keksinnön edullisten toteutusmuotojen mukainen dekoodaus, kanavakorjaus (ekvalisointi) ja ilmaisu. Detektorilta signaali 222 viedään edelleen vastaanottimen muihin : osiin.
35 Seuraavaksi kuvataan tarkemmin esimerkkiä trelliksen käytöstä vi- terbi-dekooderin yhteydessä kuvion 3 avulla. Kuviossa on esimerkinomaisesti 6 112570 esitettynä kahdeksantilainen trellis-kaavio. Trelliskaavio määräytyy käytetyn koodin perusteella, kuviossa kuhunkin pisteeseen tulee ja siitä lähtee kaksi reittiä, eli kyseessä on jokin 1/n-koodaussuhteen koodi. Kutakin saraketta voidaan kutsua trelliksen vaiheeksi. Ratkaistaessa viterbialgoritmia trellis-5 kaaviossa edetään vaiheittain vasemmalta oikealle tai oikealta vasemmalle. Kuhunkin pisteeseen voidaan tulla kahta eri reittiä pitkin, ja kussakin pisteessä valitaan parempi siihen tulevista reiteistä ja talletetaan tieto muistiin. Valinta perustuu jo mainittuihin metriikoihin. Polkumetriikka edustaa todennäköisyyttä sille, että vastaanotetun signaalin sisältämien symbolien joukko johtaa kysei-10 sen solmun kuvaamaan tilaan. Siirtymämetriikka puolestaan edustaa eri siirtymien todennäköisyyksiä. Kussakin pisteessä lasketaan siis siihen tulevien reittien metriikka siten, että reitin edeltävän solmun polkumetriikkaan lisätään edeltävän solun ja käsiteltävän solmun siirtymämetriikka. Menetelmästä riippuen näistä valitaan joko suurempi tai pienempi jatkoon.
15 Tavanomaisessa viterbi-algoritmissa tarkastetaan kaikki polut ja solmut. Käytettäessä M-algoritmia valitaan kussakin vaiheessa siis vain M reittiä jatkoon. Jos M on yhtä suuri kuin kaikkien tilojen lukumäärä, niin tällöin kyseessä on puhdas viterbi-algoritmi. M-algoritmi sinänsä on alan ammattimiehelle tuttu, ja sitä ei tarkemmin selosteta. Tässä yhteydessä viitataan julkai-20 suun Schlegel: ’’Trellis coding”, IEEE Press, ISBN: 0-7803-1052-7, sivut 153-189.
Tarkastellaan esimerkkiä eräästä suoritusmuodosta trelliksen laskemiseksi kuvioiden 4A ja 4B vuokaavioiden avulla. Kaikki laskenta suoritetaan moduloaritmetiikkaa käyttäen. Alustusvaiheessa initialisoidaan 400 polkumet-25 riikat kuten viterbi-algoritmissa, eli siten, että tilaindeksille numero 0 annetaan suuri polkumetriikka (merkitään sitä PMmax) ja muille tilaindekseille pieni polkumetriikka. Seuraavaksi alustetaan 402 kynnysarvot TH^ TH2, ..., THN siten, että suurin kynnysarvo THi on yhtä suuri kuin PMmax + Ci MOD 2D, missä D on suurin mahdollinen ero minkä tahansa kahden polkumetriikan välillä. Modu-30 loaritmetiikkaa selostetaan tarkemmin tuonnempana. Seuraava kynnysarvo TH2 on yhtä suuri kuin PMmax + C2 MOD 2D ja niin edelleen. Vakiot O voivat olla negatiivisia ja Ci > C2 > C3... > Cn- Seuraavaksi alustetaan 404 selviytyvien tilaindeksien joukko siten, että ainakin tilaindeksi 0 kuuluu mukaan. Selviytyjillä tarkoitetaan niitä tilaindeksejä, jotka pääsevät mukaan seuraavaan 35 vaiheeseen.
7 112570
Kutakin trelliksen vaihetta laskettaessa lasketaan 406 ensin uudet polkumetriikat, kuten M-algoritmissa ja viterbi-algoritmissa edellisestä vaiheesta jatkoon päässeiden tilaindeksien uusille siirtymille. Kullekin uudelle polku-metriikalle määritetään 408 sen arvon mukaisesti sopiva ryhmä vertaamalla 5 laskettua arvoa kynnysarvoihin. Tämä voi tapahtua esimerkiksi etsimällä suurin kynnysarvo joka on pienempi kuin laskettu polkumetriikka. Kynnysarvon indeksi määrittää sopivan ryhmän. Täten siis ne tilaindeksit, joiden polkumetriikka on suurempi kuin THi sijoitetaan ryhmään 1, ne tilaindeksit, joiden polkumetriikal-la on arvo, joka on välillä THi - TH2 sijoitetaan ryhmään 2 jne. Etsitään 410 10 suurin polkumetriikan arvo, merkitään sitä PMmax. Lasketaan uuden ΡΜμαχ:π ja edellisen ΡΜμαχ:π erotus ja merkitään tätä arvoa d.llä.
Seuraavaksi päivitetään 412 kynnysarvoja TH, esimerkiksi seuraavasti: THi = (THi + d ) mod 2D, missä D on suurin mahdollinen ero minkä tahansa kahden polkumetriikan välillä.
15 Seuraavaksi valitaan 414 seuraavaan vaiheeseen jatkoon pääsevät M tilaindeksiä. Aloitetaan suurimmat polkumetriikat käsittävästä ryhmästä 1, eli siis siitä ryhmästä, johon sijoitettiin ne tilaindeksit, jotka olivat kynnysarvoa THi suuremmat. Jatkoon otetaan tilaindeksit tästä ryhmästä satunnaisessa järjestyksessä. Seuraavaksi otetaan satunnaisessa järjestyksessä tilaindeksit ryh-20 mästä 2. Näin jatketaan ryhmä kerrallaan kunnes M kappaletta tilaindeksejä on valittu.
: : : Otetaan numeerinen esimerkki jatkoon valinnan selventämiseksi.
:· Numeeriset arvot ovat tässä esimerkin havainnollistamiseksi satunnaisesti va- liituja. Oletetaan, että ryhmässä 1 on 10 tilaindeksiä, ryhmässä 2 25 tilaindek-25 siä, ryhmässä 3 23 tilaindeksiä, ryhmässä 4 58 tilaindeksiä ja ryhmässä 5 13 : tilaindeksiä. Ryhmiä voi olla tätäkin enemmän. Oletetaan edelleen, että M= / 128, eli jatkoon valitaan 128 tilaindeksiä seuraavan vaiheen laskentaa varten.
Tällöin ryhmistä 1, 2, 3 ja 4 valitaan kustakin kaikki tilaindeksit jatkoon, kunkin ryhmän sisältä satunnaisessa järjestyksessä. Tällöin on valittu 116 indeksiä.
·* 30 Ryhmästä 5 valitaan satunnaisessa järjestyksessä 12 tilaindeksiä jatkoon, jol- ,,: loin kokonaismäärä on haluttu 128.
. Tarkastellaan seuraavaksi kuviota 5A, jossa havainnollistetaan mo- duloaritmetiikalla suoritettavaa laskentaa. Kuviossa on esitetty moduloympyrä, jolla ylhäältä 500 oikealle lähdettäessä on arvo 0, alhaalla 502 saavutetaan ; : 35 arvo D, ja vasemmalta ylhäälle 500 saavuttaessa arvo 2D. Täten suurin etäi- syys ympyrän kehän kahden pisteen välillä voi olla D. Moduloaritmetiikan ansi- 8 112570 osta tälle ympyräkehälle voidaan sijoittaa kaikki tilaindekseille lasketut polku-metriikat. Kuviossa 5A havainnollistetaan esimerkkiä polkumetriikoiden sijoittumisesta kehälle hetkellä n sekä myöskin kynnysarvojen käyttöä. Kuvioon on merkitty kuusi kynnysarvoa THi, TH2, ..., TH6. Kuvioon on edelleen merkitty 5 mustilla pisteillä joukko laskettuja polkumetriikoita, joista metriikat 508 ovat suurempia kuin suurin kynnysarvo THi, ja täten kuuluvat ensimmäiseen ryhmään. Seuraavaan ryhmään kuuluvat polkumetriikat 510. Jatkoon pääsevät tilaindeksit valitaan siis ensimmäisestä ryhmästä 508 lähtien, kunkin ryhmän sisällä satunnaisessa järjestyksessä valiten. Edullisessa toteutusmuodossa 10 määritetään suurimman polkumetriikan 504 ja toiseksi suurimman polkumetrii-kan 506 välinen ero d, ja seuraavaa vaihetta varten kynnysarvoja THi, TH2,.... TH6 siirretään ympyräkehällä myötäpäivään eteenpäin mainitun etäisyyden verran. Tätä havainnollistaa kuvio 5B, joka kuvaa kynnysarvojen ja polkumetriikoiden sijoittumista ympyräkehälle hetkellä n+1. Tämä toistuu niin kauan 15 kunnes trellis on käyty läpi.
Kuviossa 6A esitetään erään suoritusvaihtoehdon mahdollista järjestelyä. Järjestely käsittää välineet 600 laskea tilaindeksien polkumetriikat. Sisäänmenona ovat aiemmat polkumetriikat 602 ja siirtymämetriikat 604 edellisen trelliksen vaiheista laskettavan vaiheen pisteisiin. Tilaindeksien lasketut 20 polkumetriikat 606 viedään välineisiin 608, joissa määritetään polkumetriikoille ryhmät vertaamalla niitä kynnysarvoihin. Tieto 610 kunkin tilaindeksin ryhmästä viedään muistivälineille 612, jonne viedään myös tieto 606 lasketuista pol-kumetriikoista. Suurin laskettu polkumetriikka viedään muistiin 614. Ohjausvälineet 616 ohjaavat järjestelyn toimintaa, ja määrittävät jatkoon menevät tilain-: 25 deksit aiemmin selostetulla tavalla. Ohjausvälineet myös päivittävät kynnysar- ; vot kuten aiemmin on selostettu. Suoritusmuodon edellyttämät välineet voi- ' daan edullisesti toteuttaa ohjelmallisesti sopivassa prosessorissa, tai myös erillisillä komponenteilla tai ASIC-piirinä.
Eräässä toisessa toteutusmuodossa käytetään kiinteitä kynnysarvo-30 ja, jotka on tallennettuna esimerkiksi ROM (read only memory)-muistiin. Tällöin eri vaiheita laskettaessa ei varsinaisia kynnysarvoja lasketa uudelleen, vaan ': valitaan olemassa olevien kynnysarvojen joukosta sopivat rajat uusille ryhmille.
·. Tämä toteutusmuoto on aiemmin kuvattua nopeampi, koska kynnysarvojen laskentaan ei kulu aikaa. Useiden kynnysarvojen tallennus ROM-muistiin on | 35 helppoa, koska ROM-muistien tallennustiheys on varsin suuri.
9 112570
Havainnollistetaan tätä toteutusmuotoa kuvion 5A avulla. Oletetaan, että tiettyä trelliksen vaihetta laskettaessa kynnysarvot on määritelty siten, että parhaimman ryhmän muodostaa väli TH2-TH3, toiseksi parhaan TH3-TH4 ja kolmanneksi parhaan TH4-TH5. Seuraavaa vaihetta laskettaessa voidaan 5 ryhmiä ’’siirtää” ympyrällä eteenpäin siten, että parhaimman ryhmän muodostaa väli TH1-TH2, toiseksi parhaan TH2-TH3 jne. Itse kynnysarvot TH1, TH2 .., TH5 ovat kiinteästi talletettu muistiin.
Kuviossa 6B esitetään erään toisen suoritusvaihtoehdon mahdollista järjestelyä. Järjestely käsittää välineet 600 laskea tilaindeksien polkumetriikat. 10 Sisäänmenona ovat aiemmat polkumetriikat 602 ja siirtymämetriikat 604 edellisen trelliksen vaiheista laskettavan vaiheen pisteisiin. Tieto lasketuista metriikoista viedään komparaattorille 620, jossa laskettua metriikkaa verrataan muistista 614 saatavaan tietoon 622 siihen asti suurimmasta lasketusta metriikasta. Mikäli uusi metriikka on suurempi kuin aiempi, annetaan muistille 614 tallen-15 nuskäsky 624 viedä kyseinen metriikka 626 muistiin 614.
Laskettu metriikka viedään edelleen ohjausyksikölle 616. Ohjausyksikkö 616 tarkistaa kynnysarvojen rajat kynnysarvomuistista 628. Kynnysar-vomuistissa on tallennettuna käytettävien ryhmien rajat. Ohjausyksikkö voi esimerkiksi lähettää tiedon lasketun metriikan arvosta muistille 628, joka pa-20 lauttaa tiedon 632 ryhmästä, johon laskettu metriikka kuuluu. Tämän jälkeen ohjausyksikkö tarkistaa 634 ylläpitomuistista 636, mihin muistielementtiin met-riikka voidaan tallentaa. Ohjausyksikkö 616 tallentaa 638 seuraavaksi metriikan kyseiseen paikkaan metriikkamuistiin 640. Ylläpitomuistia 636 päivitetään : kyseisen paikan osalta.
25 Ylläpitomuisti 636 on muistielementti, joka pitää kirjaa siitä, mitä mi hinkin metriikkamuistin 640 muistipaikkaan on tallennettu. Ylläpitomuistiin on siis merkitty eri ryhmien sijainti metriikkamuistissa. Metriikkamuistin 640 käsittely on dynaamista siinä mielessä, että muistipaikkaan, jossa on huonon ryhmän metriikka talletettuna, voidaan tallentaa parempaan ryhmään kuuluva 30 metriikka.
Kun siirrytään laskemaan seuraavaa trelliksen vaihetta, ohjausyksikkö 616 valitsee olemassa olevien kynnysarvojen joukosta sopivat rajat uusil-". le ryhmille kynnysarvomuistissa 628.
Trelliksen vaihetta laskettaessa M ensimmäistä laskettua arvoa kir-35 joitetaan suoraan metriikkamuistiin 640, ja metriikkamuistin muistipaikkojen tiedot päivittyvät ylläpitomuistiin 636. Kun seuraavia metriikoita lasketaan kor- 10 1 12570 vataan huonompaan ryhmään kuuluvia arvoja parempiin ryhmiin kuuluvilla arvoilla metriikkamuistissa. Tällä vaihtoehdolla on se etu, että metriikkamuistin koko voidaan rajoittaa M:n muistipaikan kokoiseksi, ja lisänä tarvitaan pieni ylläpitomuisti.
5 Tässä toteutusmuodossa saadaan vaiheen metriikoita laskettaessa selville metriikoiden maksimi- ja minimiarvot. Näiden arvojen väli vaihtelee kanavan olosuhteista riippuen, ja tähän väliin suhteutettuna suoritetaan jatkoon pääsevien metriikoiden valinta.
Eräässä toteutusvaihtoehdossa pidetään kirjaa sekä metriikan mak-10 simi- että minimiarvosta. Tällöin voidaan havainnoida näiden arvojen väliä. Jos kaikki arvot ovat lähellä toisiaan, voidaan kynnysarvoja muuttaa tämän tiedon perusteella. Täten voidaan välttää tilanne, jossa kaikki metriikat kerääntyvät samaan ryhmään.
Erästä suoritusmuotoa muistin 612 toteuttamiseksi havainnolliste-15 taan kuviossa 7. Kuviossa 7 on esitetty muisti 612, jossa kukin vaakarivi tarkoittaa yhtä muistipaikkaa, johon yhden tilaindeksin tiedot voidaan tallettaa. Vasen sarake 700 kuvaa muistipaikkojen osoitetta. Muistipaikkojen osoitekenttä on jaettu kahteen osaan, ensimmäiseen 702 ja toiseen 704 osaan. Osoitteen ensimmäinen osa 702 ilmaisee suoraan tilaindeksiryhmän. Täten kuvion 7 20 esimerkissä, jos osoite alkaa biteillä "111...", viittaa osoite ensimmäiseen ryhmään 706, johon voidaan tallettaa suurimman polkumetriikan tilaindeksit. Vastaavasti, jos osoite alkaa biteillä "000...", viittaa osoite viimeiseen ryhmään 708. Muistipaikan toinen osa 704 viittaa muistipaikan sijaintiin ryhmän sisällä. Laskettaessa tilaindeksien polkumetriikoita voidaan tilaindeksit suoraan tallet-; 25 taa muistissa samalle alueelle kuin saman ryhmän tilaindeksit. Tilaindeksien järjestyksellä ryhmän sisällä ei ole merkitystä. Tällä muistin osoitejärjestelyllä , / voidaan M:n tilaindeksin jatkoon valinta suorittaa edullisesti. Valittaessa tilain- deksejä jatkoon luetaan muistia aloittaen ensimmäisen ryhmän käytetyistä muistipaikoista alhaalta päin kohti ryhmän ensimmäistä alkiota (1110000 kuvi-’ 30 on esimerkissä), ja siirtyen sitten seuraavaan ryhmään, hypäten tyhjät muisti- .: paikat ylitse. Kun haluttu määrä tilaindeksejä on luettu, lopetetaan.
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 35 keksinnöllisen ajatuksen puitteissa.

Claims (16)

1. Menetelmä trelliksen läpikäymisen tehostamiseksi, jossa trellik-sen kussakin vaiheessa valitaan tietty joukko vaiheen tilaindekseistä jatkoon, tunnettu siitä, että kussakin trelliksen vaiheessa 5 määritetään useampi kuin yksi eri suurta kynnysarvoa tilaindeksien arvoille, joka kukin kynnysarvo määrittää yhden tilaindeksiryhmän, lasketaan kullekin tilaindeksille polkumetriikka, sijoitetaan lasketut tilaindeksit eri tilaindeksiryhmiin vertaamalla ti-laindeksin polkumetriikan arvoa kynnysarvoihin, 10 valitaan jatkoon tilaindeksejä ryhmistä siten, että suurimmat tilain deksit käsittävästä ryhmästä lähtien tilaindeksejä otetaan ryhmän sisältä satunnaisessa järjestyksessä, kunnes ryhmän kaikki indeksit on valittu, jolloin siirrytään ottamaan tilaindeksejä seuraavasta ryhmästä, ja tätä toistetaan kunnes tietty määrä tilaindeksejä on saatu valittua.
2. Patenttivaatimuksen 1 mukainen menetelmä, tunnettu siitä, että ainakin osa laskennasta suoritetaan moduloaritmetiikkaa käyttäen.
3. Patenttivaatimuksen 1 mukainen menetelmä, tunnettu siitä, että sijoitetaan lasketut tilaindeksit eri tilaindeksiryhmiin etsimällä suurin kynnysarvo, joka on pienempi kuin laskettu polkumetriikka.
4. Patenttivaatimuksen 1 mukainen menetelmä, tunnettu siitä, että kutakin vaihetta laskettaessa käytettävät kynnysarvot valitaan tiettyjen ennalta asetettujen kynnysarvojen joukosta.
; - 5. Patenttivaatimuksen 1 mukainen menetelmä, tunnettu siitä, että kynnysarvot määritetään lisäämällä edellisen vaiheen laskennassa käytet-25 tyyn vastaavaan kynnysarvoon kahden edellisen vaiheen suurimpien laskettu-jen polkumetriikoiden erotus.
6. Patenttivaatimuksen 1 mukainen menetelmä, tunnettu siitä, että kynnysarvojen valinta tapahtuu tilaindeksien arvojen perusteella.
7. Patenttivaatimuksen 1 mukainen menetelmä, tunnettu siitä, 30 että sijoitetaan lasketut tilaindeksit tilaindeksiryhmään vertaamalla tilaindeksin polkumetriikan arvoa kynnysarvoihin, tarkistetaan onko talletettujen tilaindeksien joukossa huonompaan ryhmään kuuluvia tilaindeksejä, ja jos on, talletetaan laskettu tila-indeksin polkumetriikka huonompaan ryh-35 mään kuuluneen tilaindeksin arvon päälle ja talletetaan muistipaikan osoite. is 1 12570
8. Patenttivaatimuksen 1 mukainen menetelmä, tunnettu siitä, että määritetään metriikan maksimi- ja minimiarvot.
9. Patenttivaatimuksen 8 mukainen menetelmä, tunnettu siitä, että käytetään metriikan maksimiarvoa kynnysarvojen määrittelyssä. 5
10. Järjestely trelliksen läpikäymisen tehostamiseksi detektorissa (220), joka on sovitettu valitsemaan trelliksen kussakin vaiheessa tietty joukko vaiheen tilaindekseistä jatkoon, tunnettu siitä, että: detektori (220) on sovitettu kutakin trelliksen vaihetta laskettaessa määrittämään useampi kuin yksi eri suurta kynnysarvoa tilaindeksi-10 en arvoille, joka kukin kynnysarvo määrittää yhden tilaindeksiryhmän, laskemaan kullekin tilaindeksille polkumetriikka, sijoittamaan lasketut tilaindeksit eri ryhmiin vertaamalla tilaindeksin polkumetriikan arvoa kynnysarvoihin, valitsemaan jatkoon tietty määrä tilaindeksejä ryhmistä siten, että 15 suurimmat tilaindeksit sisällään pitävästä ryhmästä lähtien jatkoon otetaan kokonaisia ryhmiä, kunnes seuraava kokonainen ryhmä ei mahdu mukaan, ja tästä ryhmästä otetaan mukaan satunnaisesti valittuja tilaindeksejä kunnes tietty määrä on koossa.
11. Patenttivaatimuksen 10 mukainen järjestely, tunnettu siitä, 20 että detektori on sovitettu suorittamaan ainakin osan laskennasta käyttäen modu loaritmetiikkaa.
: 12. Patenttivaatimuksen 10 mukainen järjestely, tunnettu siitä, että detektori käsittää välineet (600) laskea polkumetriikat eri tilaindekseille, • 25 muistin (612) tilaindeksien polkumetriikoiden tallentamiseksi, - : muistin (608) kynnysarvojen tallentamiseksi.
13. Patenttivaatimuksen 10 mukainen järjestely, tunnettu siitä, että detektori käsittää muistin (614) suurimman polkumetriikka-arvon tallentamiseksi, 30 välineet (616) määrittää kynnysarvo lisäämällä edellisen vaiheen laskennassa käytettyyn vastaavaan kynnysarvoon kahden edellisen vaiheen suurimpien laskettujen polkumetriikoiden erotus.
14. Patenttivaatimuksen 10 mukainen järjestely, tunnettu siitä, että detektori käsittää muistin (628), johon on ennalta tallennettu joukko kyn- 35 nysarvoja ja välineet (616), jotka on sovitettu valitsemaan kutakin vaihetta las- 13 1 12570 kettaessa käytettävät kynnysarvot tiettyjen ennalta asetettujen kynnysarvojen joukosta.
15. Patenttivaatimuksen 10 mukainen järjestely, tunnettu siitä, että detektori on sovitettu valitsemaan kynnysarvot tilaindeksien arvojen perus- 5 teella.
16. Patenttivaatimuksen 10 mukainen järjestely, tunnettu siitä, että detektori käsittää välineet (600) laskea polkumetriikat eri tilaindekseille, muistin (640) tilaindeksien polkumetriikoiden tallentamiseksi, muistin (636) tilaindeksien muistipaikkojen osoitteiden tallentami- 10 seksi, muistin (628) kynnysarvojen tallentamiseksi. „ 112570
FI20021046A 2002-05-31 2002-05-31 Menetelmä ja järjestely trelliksen läpikäymisen tehostamiseksi FI112570B (fi)

Priority Applications (7)

Application Number Priority Date Filing Date Title
FI20021046A FI112570B (fi) 2002-05-31 2002-05-31 Menetelmä ja järjestely trelliksen läpikäymisen tehostamiseksi
US10/516,120 US7159167B2 (en) 2002-05-31 2003-05-26 Method and arrangement for enhancing search through trellis
EP03755989A EP1510010A1 (en) 2002-05-31 2003-05-26 Method and arrangement for enhancing search through trellis
CN038121891A CN1656695B (zh) 2002-05-31 2003-05-26 用于增强对网格的搜索的方法和装置
PCT/FI2003/000404 WO2003103153A1 (en) 2002-05-31 2003-05-26 Method and arrangement for enhancing search through trellis
KR10-2004-7019165A KR20050006276A (ko) 2002-05-31 2003-05-26 트렐리스를 통한 검색 강화 방법 및 장치
AU2003232259A AU2003232259A1 (en) 2002-05-31 2003-05-26 Method and arrangement for enhancing search through trellis

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FI20021046 2002-05-31
FI20021046A FI112570B (fi) 2002-05-31 2002-05-31 Menetelmä ja järjestely trelliksen läpikäymisen tehostamiseksi

Publications (2)

Publication Number Publication Date
FI20021046A0 FI20021046A0 (fi) 2002-05-31
FI112570B true FI112570B (fi) 2003-12-15

Family

ID=8564056

Family Applications (1)

Application Number Title Priority Date Filing Date
FI20021046A FI112570B (fi) 2002-05-31 2002-05-31 Menetelmä ja järjestely trelliksen läpikäymisen tehostamiseksi

Country Status (7)

Country Link
US (1) US7159167B2 (fi)
EP (1) EP1510010A1 (fi)
KR (1) KR20050006276A (fi)
CN (1) CN1656695B (fi)
AU (1) AU2003232259A1 (fi)
FI (1) FI112570B (fi)
WO (1) WO2003103153A1 (fi)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102651653B (zh) * 2011-02-28 2015-07-15 中国科学院大学 基于空间网格图的低复杂度联合信源信道编解码方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5509020A (en) * 1993-05-27 1996-04-16 Sony Corporation Viterbi decoding apparatus and methods
US5905742A (en) * 1995-12-27 1999-05-18 Ericsson Inc. Method and apparauts for symbol decoding
US5901182A (en) * 1997-03-26 1999-05-04 Sharp Laboratories Of America, Inc. Metric sifting in breadth-first decoding of convolutional coded data
US6490327B1 (en) * 1998-12-30 2002-12-03 Ericsson Inc. System and method for self-adaptive maximum likelihood sequence detection using a T-algorithm
US6618451B1 (en) 1999-02-13 2003-09-09 Altocom Inc Efficient reduced state maximum likelihood sequence estimator
US6553541B1 (en) * 1999-04-14 2003-04-22 Texas Instruments Incorporated Reduced-complexity sequence detection
US6446236B1 (en) * 1999-10-13 2002-09-03 Maxtor Corporation Reading encoded information subject to random and transient errors
US6597743B1 (en) * 1999-12-07 2003-07-22 Ericsson Inc. Reduced search symbol estimation algorithm
US6788750B1 (en) * 2000-09-22 2004-09-07 Tioga Technologies Inc. Trellis-based decoder with state and path purging

Also Published As

Publication number Publication date
WO2003103153A1 (en) 2003-12-11
KR20050006276A (ko) 2005-01-15
FI20021046A0 (fi) 2002-05-31
EP1510010A1 (en) 2005-03-02
AU2003232259A1 (en) 2003-12-19
US20050177782A1 (en) 2005-08-11
CN1656695A (zh) 2005-08-17
US7159167B2 (en) 2007-01-02
CN1656695B (zh) 2010-06-09

Similar Documents

Publication Publication Date Title
CA2110244C (en) Extended list output and soft symbol output viterbi algorithms
US5901182A (en) Metric sifting in breadth-first decoding of convolutional coded data
US6199190B1 (en) Convolution decoding terminated by an error detection block code with distributed parity bits
JP3255884B2 (ja) たたみ込み符号のためのソフト決定シンドロームベースのデコーダ
JP5438150B2 (ja) 通信システムでの復号化のための装置及び方法
AU1942799A (en) Non-binary viterbi decoder using butterfly operations
US20170041041A1 (en) System and Apparatus for Decoding Tree-Based Messages
Fazeli et al. List decoding of polar codes: How large should the list be to achieve ML decoding?
FI112570B (fi) Menetelmä ja järjestely trelliksen läpikäymisen tehostamiseksi
US7434148B2 (en) Track buffer in a parallel decoder
US6542559B1 (en) Decoding method and apparatus
US20200403644A1 (en) Information Decoder for Polar Codes
EP1564894B1 (en) Method and device for sequence estimation
US6968495B2 (en) Super high speed viterbi decoder using circularly connected 2-dimensional analog processing cell array
FI111887B (fi) Menetelmä ja järjestely trelliksen läpikäymisen tehostamiseksi
JPH06284018A (ja) ビタビ復号方法および誤り訂正復号化装置
FI82871C (fi) Kretsanordning foer foerverkligande av en viterbi-algoritm.
KR20130081279A (ko) 채널 복호화 방법과 테일 바이팅 길쌈부호 복호기
WO2006073731A2 (en) Decision voting in a parallel decoder
US7797618B2 (en) Parallel decoder for ultrawide bandwidth receiver
WO1997019518A1 (en) Method and apparatus for conditionally combining bit metrics in a viterbi decoder for decoding a received information signal
KR100267370B1 (ko) 길쌈 부호를 위한 낮은 복잡도를 가지는 오증 검색 에러 추정 복호기