FI82871C - KRETSANORDNING FOER FOERVERKLIGANDE AV EN VITERBI-ALGORITM. - Google Patents
KRETSANORDNING FOER FOERVERKLIGANDE AV EN VITERBI-ALGORITM. Download PDFInfo
- Publication number
- FI82871C FI82871C FI892370A FI892370A FI82871C FI 82871 C FI82871 C FI 82871C FI 892370 A FI892370 A FI 892370A FI 892370 A FI892370 A FI 892370A FI 82871 C FI82871 C FI 82871C
- Authority
- FI
- Finland
- Prior art keywords
- bit
- state
- values
- bits
- circuit arrangement
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/39—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
- H03M13/41—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
Landscapes
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Error Detection And Correction (AREA)
- Lubricants (AREA)
- Complex Calculations (AREA)
- Developing Agents For Electrophotography (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
Description
1 828711 82871
Viterbi-algoritmin toteuttava piiri järjestelyCircuit arrangement implementing the Viterbi algorithm
Keksintö koskee Viterbi-algoritmin toteuttavaa piirijärjes-5 telyä patenttivaatimuksen 1 johdannon mukaisesti.The invention relates to a circuit arrangement implementing the Viterbi algorithm according to the preamble of claim 1.
Viterbi-algoritmi on algoritmi, jota käytetään yleisesti konvoluutiokoodien purkuun. Viterbi-algoritmia käytetään digitaalisten siirtojärjestelmien vastaanottimissa, esimer-10 kiksi yleiseurooppalaisessa digitaalisessa matkapuhelinjärjestelmässä (GSM, Groupe Special Mobile), jossa radiotielle lähetettävä digitaalinen tieto koodataan toisaalta kanavakohtaisesti (konvoluutiokoodaus) ja toisaalta siirtoketjussa (lähetin, radiokanava, vastaanotin) syntyy keskinäisvaiku-15 tusta, jota voidaan käsitellä tahattomana analogisena konvo-luutiokoodauksena. Vastaanottopuolella koodattu datasignaali on ilmaistava siten, että siitä löydetään todennäköisin lähetetty bittijono. Viterbi-algoritmia voidaan käyttää tähän koodauksen purkamiseen sekä vastaanottimen bittien 20 ilmaisuun, jossa puretaan siirtoketjun keskinäisvaikutuksen synnyttämä tahaton analoginen konvoluutiokoodi, että kanava-koodauksen purkamiseen (konvoluutiokoodaus).The Viterbi algorithm is an algorithm commonly used to decode convolutional codes. The Viterbi algorithm is used in receivers of digital transmission systems, for example in the pan-European digital mobile telephone system (GSM, Groupe Special Mobile), where digital information transmitted on a radio path is coded on a channel-by-channel basis (convolutional coding) and on the transmission chain (transmitter, radio channel which can be treated as inadvertent analog convolutional coding. The data signal encoded on the receiving side must be expressed so that the most probable transmitted bit string is found. The Viterbi algorithm can be used for this decoding, both for the detection of the receiver bits 20, in which the unintentional analog convolutional code generated by the transmission chain interaction is decoded, and for the decoding of the channel (convolutional coding).
Kuviossa 1 on esitetty tämän keksinnön pohjana oleva sinänsä 25 tunnettu Viterbi-Trellis-koodaus ja sen toiminta. Jokaiseen vastaanotettuun bittiin (BIT*, BITjc+i) liittyy 16 mahdollista tilaa STATES. Jokaiseen tilaan liittyy kumulatiivinen arvo CUM, joka kuvaa sitä, miten todennäköinen eli "hyvä" reitti on bittikuvion eli määrätyn aikavälin alusta kysei-30 seen tilaan saakka. Kuviossa 1 on myös esitetty (tässä käytetyn trelliksen puitteissa) sallitut siirtymiset tilasta toiseen. Jokaiseen siirtymään liittyy transitioarvo TRANS, joka määrittelee kunkin siirtymän "hyvyyden". Jokaiseen tilaan voidaan tässä trelliksessä tulla kahta vaihtoehtoista 35 reittiä pitkin. Kun lasketaan yhteen edellisen bitin, BIT*, lähtötilan kumulatiiviset arvot CUM* ja transitioarvot TRANS*, saadaan seuraavan bitin, BIT*+i jokaiselle mahdolliselle tilalle "hyvyysarvo" CUM*+i, josta voidaan johtaa 2 82871 bittireitin "hyvyys" aikavälin alusta alkaen. Koska tiloja voi olla 16/ ja jokaiseen tilaan johtaa kaksi reittiä, niin transitioarvoja j voi olla 32.Figure 1 shows the Viterbi-Trellis coding known per se on the basis of the present invention and its operation. Each received bit (BIT *, BITjc + i) is associated with 16 possible states STATES. Each state is associated with a cumulative value, CUM, which describes how likely or "good" the path is from the beginning of the bit pattern, i.e., the specified time interval, to that state. Figure 1 also shows (within the trellis used herein) the allowable transitions from one state to another. Each transition is associated with a transition value TRANS that defines the "goodness" of each transition. Each space in this trellis can be accessed along two alternative 35 routes. Adding the cumulative values CUM * of the output state of the previous bit, BIT *, and the transition values TRANS *, we obtain the "goodness value" CUM * + i for each possible state of the next bit, BIT * + i, from which the "goodness" of the 2 82871 bit path can be derived from the beginning . Since there can be 16 states and two paths lead to each state, there can be 32 transition values j.
5 Kuviossa 2 on havainnollistettu jokaiseen bittiin DET.BIT liittyvät tilat: edellinen tila OLD STATE ja uusi tila NEW STATE, joihin edellä mainitut CUM-arvot liittyvät, ja joiden välisiä bittikohtaisia mahdollisia siirtymiä TRANS-arvot kuvaavat.Figure 2 illustrates the states associated with each bit DET.BIT: the previous state OLD STATE and the new state NEW STATE, to which the above-mentioned CUM values are associated, and between which bit-specific possible transitions are described by the TRANS values.
1010
Vertaamalla jokaiseen tilaan tulevan kahden reitin "hyvyyttä", voidaan näistä valita parempi. Valitun reitin lähtötilan kumulatiivisen arvon CUM* ja transitioarvon TRANS* summa talletetaan seuraavan, uudemman bitin BIT*+i tilan kumula-15 tiiviseksi arvoksi. Jokaista bittiä kohti on laskettava 16 tilaa i, joiden tilojen kumulatiiviset arvot CUM*(i) talletetaan paluureittitaulukkoon (Trace Back, TB).By comparing the "goodness" of the two routes coming to each state, the better of these can be chosen. The sum of the cumulative value CUM * of the output state of the selected route and the transition value TRANS * is stored as the cum-15 value of the state of the next, newer bit BIT * + i. For each bit, 16 states i must be computed, the cumulative values of which states CUM * (i) are stored in the Trace Back (TB) table.
Tavanomaisesti edellä selitetty Viterbi-algoritmi toteute-20 taan rinnakkaisesti järjestetyillä piireillä (esim. yksi piiri kutakin bittitilaa kohti, tässä tapauksessa 16 rinnakkaista piiriä). Suuri piirien määrä nostaa laitekustannuksia. Lisäksi esim, GSM-matkapuhelimessa suuri komponenttien määrä nostaa virran kulutusta.Conventionally, the Viterbi algorithm described above is implemented with parallel arranged circuits (e.g., one circuit for each bit state, in this case 16 parallel circuits). A large number of circuits raises equipment costs. In addition, for example, in a GSM mobile phone, a large number of components increase power consumption.
2525
Keksinnön tehtävänä on poistaa tai pienentää edellä mainittuja haittatekijöitä.The object of the invention is to eliminate or reduce the above-mentioned disadvantages.
Tehtävä ratkaistaan patenttivaatimuksen 1 tunnusmerkkiosan 30 mukaisella piirijärjestelyllä.The task is solved by a circuit arrangement according to the characterizing part 30 of claim 1.
Käsittelemällä tarkasteltavan bitin jokaiseen mahdolliseen tilaan liittyviä tietoja sarjamuotoisesti, eli peräkkäin, voidaan piirijärjestely saada erittäin yksinkertaiseksi.By processing the information related to each possible state of the bit under consideration in a serial form, i.e. in succession, the circuit arrangement can be made very simple.
35 Edellä selitetyn Viterbi-algoritmin käsittely tapahtuu kunkin tilan kohdalla samalla tavalla. Jokaista bittiä kohti lasketaan peräkkäin 16 tilaa, joihin liittyvät arvot talletetaan paluureittitaulukkoon. Kun kaikki kyseessä olevan 3 82871 aikavälin bitit on käsitelty, suoritetaan paluureitin etsiminen talletettujen arvojen perusteella, jolloin seurataan todennäköisesti parasta reittiä lopusta alkuun. Näin ilmaistaan aikavälin jokainen bitti ja/tai bitteihin liittyvät 5 symbolit.35 The processing of the Viterbi algorithm described above is performed in the same way for each state. For each bit, 16 states are counted in succession, and the associated values are stored in the return path table. Once all the bits in the 3,82871 time slots in question have been processed, a return route search is performed based on the stored values, thereby probably following the best route from end to beginning. This indicates each bit of the time slot and / or the 5 symbols associated with the bits.
Samaa piirijärjestelyä voidaan käyttää esim. GSM-matkapuhe-limessa ilmaisemaan vastaanottimen bittijono, ja lisäksi sillä voidaan suorittaa kanavakohtaisen koodauksen purkami-10 nen (kanavadekoodaus). Yksinkertaisen toteutuksen etuna on vähentynyt virrankulutus, joka esim. akun varassa toimivassa GSM-matkapuhelimessa on merkittävä etu. Keksinnön mukainen piirijärjestely voidaan toteuttaa integroituna piirinä, esim. VLSI-piirinä.The same circuit arrangement can be used, for example, in a GSM mobile phone to detect the bit string of the receiver, and in addition it can perform decoding (channel decoding) of the channel-specific coding. The advantage of a simple implementation is reduced power consumption, which is a significant advantage, for example, in a battery-powered GSM mobile phone. The circuit arrangement according to the invention can be implemented as an integrated circuit, e.g. a VLSI circuit.
1515
Keksinnön periaatteiden mukaisesti on mahdollista toteuttaa myös mikä tahansa muu Viterbi-algoritmi, jossa käytetään kuvion 1 mukaista trellistä.According to the principles of the invention, it is also possible to implement any other Viterbi algorithm using the trellis of Figure 1.
20 Seuraavassa keksintöä selitetään piirustuksen kuvioiden avulla, joissa: kuvio 1 esittää tunnetun Viterbi-Trellis-algoritmin toimintaa taulukon muodossa; 25 kuvio 2 esittää yksinkertaistaen tutkittavan bitin tunnettua ilmaisuperiaatetta kahteen tilaan liittyvien arvojen avulla; kuvio 3 esittää Viterbi-algoritmin sarjamuotoisesti toteut-30 tavan, keksinnön mukaisen piirijärjestelyn lohkokaavion; ja kuvio 4 esittää paluureitin hakemisen periaatteellisen lohkokaavion.The invention will now be described with reference to the figures of the drawing, in which: Figure 1 shows the operation of a known Viterbi-Trellis algorithm in tabular form; Fig. 2 shows, in a simplified manner, the known detection principle of the bit to be examined by means of values associated with two states; Fig. 3 shows a block diagram of a circuit arrangement according to the invention implemented in series with a Viterbi algorithm; and Fig. 4 shows a basic block diagram of retrieving the return route.
35 Kuviossa 3 on esitetty keksinnön mukainen piirijärjestely, jota voidaan soveltaa esim. GSM-matkapuhelimessa vastaanotettujen bittien ilmaisussa ja/tai kanavadekoodauksessa. Tulotietona piirijärjestelylle on yhteen bittiin BIT(k+l) 4 82871 liittyvät 32 transitioarvoa TRANS(j), TRANS(j+1), jotka siirretään transitioarvotaulukkoon TT. Edellisen bitin kumulatiiviset arvot CUM(i) on talletettu taulukkoon CT (CUM Table), josta ne johdetaan summaimiin ADD; toiseen 5 summaimeen ADD viivepiirin L (Latch) kautta. Summaimessa suoritetaan jokaiseen tilaan liittyvien transitioarvojen TRANS ja kumulatiivisten arvojen CUM yhteenlasku. Näin saatuja summia verrataan vähennyslaskuelimessä SUB. Vähennyslaskun eniten merkitsevän bitin MSB avulla valintaelin 10 SEL valitsee suuremman summan uudeksi kumulatiiviseksi arvoksi NEW, joka talletetaan kumulatiivisten arvojen taulukkoon CT. Vähennyslaskun tulos DF (Difference), skaalattuna haluttuun määrään bittejä, talletetaan paluureittitauluk-koon TB (Trace Back Table).Figure 3 shows a circuit arrangement according to the invention, which can be applied, for example, in the detection and / or channel decoding of bits received in a GSM mobile telephone. The input data for the circuit arrangement is 32 transition values TRANS (j), TRANS (j + 1) associated with one bit BIT (k + 1) 4 82871, which are transferred to the transition value table TT. The cumulative values CUM (i) of the previous bit are stored in a table CT (CUM Table) from which they are derived into the summers ADD; to the second 5 adder ADD via the delay circuit L (Latch). In the adder, the sum of the transition values TRANS and the cumulative values CUM associated with each state is performed. The amounts thus obtained are compared in the subtractor SUB. By means of the most significant bit MSB of the subtraction, the selection member 10 SEL selects the larger amount as the new cumulative value NEW, which is stored in the table of cumulative values CT. The result of the subtraction DF (Difference), scaled to the desired number of bits, is stored in the trace back table TB (Trace Back Table).
1515
Kaikki määrättyyn bittiin liittyvät tilat lasketaan samalla tavalla peräkkäin eli sarjamuotoisesti, ja tulokset talletetaan taulukoihin CT, TB. Kun yhden bitin laskenta on saatu valmiiksi, luetaan seuraavaan bittiin liittyvät transitioar-20 vot, ja sama sekvenssi aloitetaan uudelleen. Laskenta toistetaan kaikille määrätyn aikavälin biteille. ("Aikaväli" voi tässä merkitä esim. GSM-järjestelmän kehystä, jossa on 148 bittiä).All states associated with a given bit are calculated in the same way sequentially, i.e. in series, and the results are stored in tables CT, TB. When the calculation of one bit is completed, the transition values associated with the next bit are read, and the same sequence is restarted. The calculation is repeated for all bits of the specified time interval. ("Time interval" here can mean e.g. a GSM system frame with 148 bits).
25 Kun aikavälin kaikki bitit on käsitelty, suoritetaan paluu-reitin hakeminen. Kuviossa 4 on esitetty periaatteellinen lohkokaavio tämän vaiheen toteuttavasta piirijärjestelystä. "Paras" reitti, eli reitin kuvaus, luetaan taulukosta TB (kuvio 3). Taulukkoon TB talletetun erotuksen DF ylin bitti 30 MSB(T) (eniten merkitsevä bitti) vastaa ilmaistua bittiä, ja se kertoo kumpaa reittiä trelliksen mukaisesti päästään edellisen bitin tilaan. Kun tämä ylin bitti MSB(T) summataan vasemmalle siirretyn tilan arvoon, saadaan taaksepäin mentä-* essä seuraavan tilan arvo LSB, eli neljä vähiten merkitsevää 35 bittiä. LSB-arvolla osoitetaan paluureittimuistin osoitepai-kasta (taaksepäin mentäessä) seuraavan tilan arvo. Kuviossa 4 piiri L on viivepiiri, ja piiri SL1 (Shift Left One) siirtää kulloisenkin arvon yhden bitin verran vasemmalle.25 When all the bits of the interval have been processed, a return route search is performed. Figure 4 shows a schematic block diagram of a circuit arrangement implementing this step. The "best" route, i.e. the route description, is read from Table TB (Figure 3). The top bit 30 MSB (T) (most significant bit) of the difference DF stored in the table TB corresponds to the detected bit, and it indicates which path according to the trellis reaches the state of the previous bit. When this highest bit MSB (T) is summed to the value of the state shifted to the left, the value of the next state LSB, i.e. the four least significant 35 bits, is obtained by going back. The LSB value indicates the value of the state following the address location (backwards) of the return route memory. In Fig. 4, the circuit L is a delay circuit, and the circuit SL1 (Shift Left One) shifts the current value by one bit to the left.
Il 5 82871 Näin menetellään aikavälin jokaisen bitin osalta, kunnes aikavälin koko bittijono on ilmaistu. Sen jälkeen aloitetaan seuraavan aikavälin bittien käsittely.Il 5 82871 This is done for each bit of the time slot until the entire bit string of the time slot is indicated. After that, the processing of the bits of the next time slot is started.
Claims (3)
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FI892370A FI82871C (en) | 1989-05-17 | 1989-05-17 | KRETSANORDNING FOER FOERVERKLIGANDE AV EN VITERBI-ALGORITM. |
AT90305301T ATE143542T1 (en) | 1989-05-17 | 1990-05-16 | CIRCUIT FOR EXECUTING THE VITERBI ALGORITHM |
DE69028656T DE69028656T2 (en) | 1989-05-17 | 1990-05-16 | Circuit for the implementation of the Viterbi algorithm |
EP90305301A EP0398690B1 (en) | 1989-05-17 | 1990-05-16 | Circuitry implementing the Viterbi algorithm |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FI892370 | 1989-05-17 | ||
FI892370A FI82871C (en) | 1989-05-17 | 1989-05-17 | KRETSANORDNING FOER FOERVERKLIGANDE AV EN VITERBI-ALGORITM. |
Publications (4)
Publication Number | Publication Date |
---|---|
FI892370A0 FI892370A0 (en) | 1989-05-17 |
FI892370A FI892370A (en) | 1990-11-18 |
FI82871B FI82871B (en) | 1991-01-15 |
FI82871C true FI82871C (en) | 1991-04-25 |
Family
ID=8528443
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FI892370A FI82871C (en) | 1989-05-17 | 1989-05-17 | KRETSANORDNING FOER FOERVERKLIGANDE AV EN VITERBI-ALGORITM. |
Country Status (4)
Country | Link |
---|---|
EP (1) | EP0398690B1 (en) |
AT (1) | ATE143542T1 (en) |
DE (1) | DE69028656T2 (en) |
FI (1) | FI82871C (en) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5375129A (en) * | 1990-07-19 | 1994-12-20 | Technophone Limited | Maximum likelihood sequence detector |
GB2246272B (en) | 1990-07-19 | 1994-09-14 | Technophone Ltd | Maximum likelihood sequence detector |
US5502735A (en) * | 1991-07-16 | 1996-03-26 | Nokia Mobile Phones (U.K.) Limited | Maximum likelihood sequence detector |
EP0851591B1 (en) * | 1996-12-24 | 2001-09-12 | Matsushita Electric Industrial Co., Ltd. | Data processor and data processing method |
US6938172B2 (en) * | 2001-03-21 | 2005-08-30 | Tektronix, Inc. | Data transformation for the reduction of power and noise in CMOS structures |
-
1989
- 1989-05-17 FI FI892370A patent/FI82871C/en not_active IP Right Cessation
-
1990
- 1990-05-16 DE DE69028656T patent/DE69028656T2/en not_active Expired - Lifetime
- 1990-05-16 EP EP90305301A patent/EP0398690B1/en not_active Expired - Lifetime
- 1990-05-16 AT AT90305301T patent/ATE143542T1/en not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
EP0398690B1 (en) | 1996-09-25 |
EP0398690A3 (en) | 1992-01-02 |
DE69028656D1 (en) | 1996-10-31 |
FI82871B (en) | 1991-01-15 |
ATE143542T1 (en) | 1996-10-15 |
EP0398690A2 (en) | 1990-11-22 |
FI892370A0 (en) | 1989-05-17 |
DE69028656T2 (en) | 1997-02-27 |
FI892370A (en) | 1990-11-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5406570A (en) | Method for a maximum likelihood decoding of a convolutional code with decision weighting, and corresponding decoder | |
EP0967730B1 (en) | Convolutional decoder with modified metrics | |
KR100580160B1 (en) | Two-step soft output viterbi algorithm decoder using modified trace-back | |
KR100306544B1 (en) | Method and apparatus for rate determination in a communication system | |
US5802116A (en) | Soft decision Viterbi decoding with large constraint lengths | |
JPH0555932A (en) | Error correction coding and decoding device | |
US5398254A (en) | Error correction encoding/decoding method and apparatus therefor | |
JP3153425B2 (en) | Digital signal processor | |
JPS60180222A (en) | Code error correcting device | |
EP1044507A1 (en) | Non-binary viterbi decoder using butterfly operations | |
FI82871C (en) | KRETSANORDNING FOER FOERVERKLIGANDE AV EN VITERBI-ALGORITM. | |
US5982822A (en) | Viterbi decoder | |
US8055986B2 (en) | Viterbi decoder and method thereof | |
EP0233788A2 (en) | Viterbi decoder and method | |
CN101145790B (en) | Decoder, addition-comparison-selection unit and its method | |
EP1370006A2 (en) | Blind transport format detection system and method | |
US6542559B1 (en) | Decoding method and apparatus | |
US6310887B1 (en) | Transmission speed predicting apparatus and transmission speed predicting method | |
JPH05183448A (en) | Error correction encoding and decoding device | |
FI100564B (en) | A method for generating transition metrics and a receiver for a cellular radio system | |
US7020223B2 (en) | Viterbi decoder and method using sequential two-way add-compare-select operations | |
US6195401B1 (en) | Data receiving apparatus and method | |
US7231586B2 (en) | Multi-rate viterbi decoder | |
KR100275605B1 (en) | Decoding method and decoding apparatus | |
US6411663B1 (en) | Convolutional coder and viterbi decoder |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FG | Patent granted |
Owner name: NOKIA-MOBIRA OY |
|
MA | Patent expired |