BE1004814A3 - Decodeerinrichting. - Google Patents

Decodeerinrichting. Download PDF

Info

Publication number
BE1004814A3
BE1004814A3 BE9100432A BE9100432A BE1004814A3 BE 1004814 A3 BE1004814 A3 BE 1004814A3 BE 9100432 A BE9100432 A BE 9100432A BE 9100432 A BE9100432 A BE 9100432A BE 1004814 A3 BE1004814 A3 BE 1004814A3
Authority
BE
Belgium
Prior art keywords
module
path
vitalfa
bits
transition
Prior art date
Application number
BE9100432A
Other languages
English (en)
Inventor
Hans Johan Jozef Busschaert
Peter Paul Frans Reusens
Camp Ronny Maria Alfons Van
Original Assignee
Bell Telephone Mfg
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 Bell Telephone Mfg filed Critical Bell Telephone Mfg
Priority to BE9100432A priority Critical patent/BE1004814A3/nl
Priority to NZ242456A priority patent/NZ242456A/en
Priority to AU15261/92A priority patent/AU644523C/en
Priority to DE69212695T priority patent/DE69212695T2/de
Priority to ES92201260T priority patent/ES2093178T3/es
Priority to US07/878,731 priority patent/US5331665A/en
Priority to EP92201260A priority patent/EP0512641B1/en
Priority to CA002068117A priority patent/CA2068117C/en
Priority to FI922067A priority patent/FI922067A/fi
Priority to JP4116397A priority patent/JPH05175855A/ja
Application granted granted Critical
Publication of BE1004814A3 publication Critical patent/BE1004814A3/nl

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/41Sequence 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)
  • Dc Digital Transmission (AREA)

Abstract

Een decodeerinrichting (VD) om numerieke berichten volgens het convolutionele Viterbi decorderingsalorgoritme te decoderen. VD is ge?integreerd als een deel van een elektronische chip, welke deel uitmaakt van een ontvanger van een numeriek cellulair radiosysteem. VD omvat een eerste module (VITALFA ) om overgangswaarschijnlijkheden voor de toestandsovergangen tussen twee opeenvolgende toestanden te berekenen en een tweede (VIPROB) om in functie van deze waarschijnlijkheden, padwaarschijnlijkheden te berekenen voor de paden bestaande uit opeenvolgende toestandsovergangen, en om voor elke eindtoestand, enkel het pad met de hoogste waarschijnlijkheid uit te kiezen. VITALFA en VIPROB berekenen verder respektievelijkeen toestands- en padovergangbitfoutwaarden die funktie zijn van het verschil tussen de bits (softbits) ontvangen in VITALFA en de gecodeerde bits verwacht voor een zelfde toestandsovergang.

Description


   <Desc/Clms Page number 1> 
 



   DECODEERINRICHTING
De huidige uitvinding heeft betrekking op een decodeerinrichting waarin het Viterbi algoritme gebruikt wordt om gecodeerde berichten convolutioneel te decoderen. 



   Het Viterbi decodeeralgoritme is een optimale en wijd verbreide voorwaartse-fout correctietechniek om ruis uit numerieke radiosignalen te verwijderen. Zijn uitvoering in hardware is echter complex en duur zodat het gebruik van een microprocessor met meervoudig doel over het algemeen boven een toegewijde inrichting verkozen wordt. 



  Dit is bijvoorbeeld het geval voor de decodeerinrichting beschreven in het   artikel "Real time implementation   of the Viterbi decoding algorithm on a high-performance   microprocessor" door S. M.   Said en anderen, gepubliceerd in het   tijdschrift "Microprocessors   and   microsystems" Vol. 10,   No   1,     januari/februari   1986, blz. 11 tot 16. Daarin is het Viterbi algoritme uitgevoerd in de schakeling (firmware) van een standaard microprocessor MC68000 vervaardigd door Motorola. 



   Een nadeel van een dergelijke decodeerinrichting is dat hij niet optimaal is voor de uitvoering van het Viterbi decodeeralgoritme. Dit is in het bijzonder zo wanneer een hoog debiet, een kleine plaatsoppervlakte en een laag vermogenverbruik vereist zijn. Inderdaad is de hardware daarvan ontworpen om standaardwoorden, van bijvoorbeeld 16 bits, te behandelen en deze overschrijden over het algemeen de noden voor het specifieke Viterbi algoritme en vergroten 

 <Desc/Clms Page number 2> 

 daarbij zekere vertragingen. Bovendien bevatten de microprocessor en zijn bijbehorende geheugens en periferie-inrichtingen meer schakelingen dan nodig voor deze toepassing, zodat zowel de vereiste plaatsoppervlakte als het vermogenverbruik onnodig hoog zijn. 



   Een doelstelling van de huidige uitvinding bestaat erin een decodeerinrichting van het hierboven bekende type te verschaffen, maar die in staat is een hoger debiet te verwerken en een verminderd vermogenverbruik en oppervlakte vereist. 



   Volgens de uitvinding wordt deze doelstelling bereikt doordat de decodeerinrichting een eerste module omvat om overgangswaarschijnlijkheden voor de mogelijke toestandsovergangen tussen twee opeenvolgende toestanden van de decodeerinrichting te berekenen en een tweede module omvat om in functie van deze overgangswaarschijnlijkheden, padwaarschijnlijkheden te berekenen voor de mogelijke paden bestaande uit opeenvolgende toestandsovergangen en eindigend in elk van deze toestanden, en om voor elk van deze toestanden, enkel het pad met de hoogste padwaarschijnlijkheidswaarde uit te kiezen. 



   Deze toepassingsgerichte architektuur maakt het mogelijk de hardware uitvoering en de lengte van de in het Viterbi algoritme gebruikte woorden optimaal te maken. 



  Zowel de vereiste oppervlakte als het vermogenverbruik worden daarbij verminderd. 



   Een ander probleem met de bekende decodeerinrichting is dat de prestatie en meer in het bijzonder de uitvoeringstijd van de berekening bezwaard worden door het feit dat alle berekeningen sekwentieel worden uitgevoerd. 



   Een andere doelstelling van de huidige uitvinding bestaat erin deze uitvoeringstijd te verminderen. 



   Volgens de uitvinding wordt deze andere doelstelilng verwezenlijkt doordat deze eerste module een eerste besturingsketen omvat die de werking van deze eerste module 

 <Desc/Clms Page number 3> 

 bestuurt, dat deze tweede module een tweede besturingsketen omvat die de werking van deze tweede module bestuurt en dat deze eerste module en deze tweede module onafhankelijk van elkaar werken, waarbij hun werking door een gemeenschappelijke besturingsmodule gesuperviseerd wordt. 



   Op deze wijze kan de eerste module de overgangswaarschijnlijkheid berekenen, terwijl de tweede module een padwaarschijnlijkheid berekent. Deze gelijktijdigheid van berekeningen vermindert drastisch de uitvoeringstijd van de berekeningen van de decodeerinrichting. 



   Een andere kenmerkende eigenschap van de onderhavige uitvinding is dat de decodeerinrichting een derde module omvat om uit deze door deze tweede module gekozen paden enkel een pad dat met het te decoderen geraamde bericht overeenkomt te kiezen, dat deze derde module een derde besturingsketen omvat die de werking van deze derde module bestuurt en dat deze derde module onafhankelijk van deze eerste en tweede modules werkt, waarbij de werking van al deze modulen door deze gemeenschappelijke besturingsmodule gesuperviseerd wordt. 



   De uitvinding is ook gekenmerk door het feit dat deze eerste module verder voor elk van deze toestandsovergangen een overgangs bitfoutwaarde berekent die functie is van het verschil tussen de bits (softbits) ontvangen in deze eerste module en de bits (gecodeerde bits) verwacht voor een zelfde toestandsovergang en dat deze tweede module verder voor elk van de gekozen paden een padbitfoutwaarde berekent die de som is van de overgangsbitfoutwaarden van de toestandsovergangen die dit pad vormen. 



   Nog een ander kenmerk van de uitvinding is dat deze eerste module gelijktijdig voor elke toestandsovergang deze overgangswaarschijnlijkheid en deze overgangsbitfoutwaarde berekent en dat deze tweede module tegelijkertijd en in 

 <Desc/Clms Page number 4> 

 parallel deze padwaarschijnlijkheid en deze padbitfoutwaarde berekent. 



   Op deze wijze heeft de decodeerinrichting een verhoogd debiet. 



   De hierboven vermelde en andere doeleinden en kenmerken van de uitvinding zullen duidelijker worden en de uitvinding zelf zal het best begrepen worden aan de hand van de hiernavolgende beschrijving van een uitvoeringsvoorbeeld en van de bijbehorende tekeningen waarin :
Fig. 1 een blokdiagram is van een Viterbi decodeerinrichting volgens de uitvinding ;
Fig. 2 een schematisch zicht is van een convolutionele codeerinrichting CE voor de codering van berichten, die door de Viterbi decodeerinrichting VD volgens Fig. 1 dienen te worden gedecodeerd ;
Fig. 3 toestandsovergangen toont in een gedeelte van een Trellis-diagram dat in de Viterbi decodeerinrichting van Fig. 1 wordt gebruikt ;
Fig. 4   de"softbit"interfacemodule   VISOFT van Fig.   l   in meer detail toont;
Fig. 5 de takmetriekberekeningsmodule VITALFA van Fig. 1 in meer detail voorstelt ;

  
Fig. 6 de waarschijnlijkheidsmodule VIPROB van Fig. 



  1 in meer detail toont, en
Fig. 7 de datamodule VIDATA van Fig. 1 in meer detail voorstelt. 



   De in Fig. 1 getoonde decodeerinrichting VD is een Viterbi decodeerinrichting, die   gelntegreerd   is in   een   gedeelte, ongeveer een   kwart,   van een enkele elektronische chip welke deel uitmaakt van een ontvanger van een in de hand draagbaar mobiel station van een numeriek cellulair radiosysteem. VD wordt gebruikt om numerieke berichten te decoderen volgens het Viterbi convolutioneel decodeeralgoritme, dat bijvoorbeeld in detail is uitgelegd 

 <Desc/Clms Page number 5> 

 in het boek"Digital Communication-Fundamentals and   Applications"door   B.   Sklar,   gepubliceerd in 1988 door "Prentice-Hall International,   Inc. ",   en meer in het bijzonder in Hoofdstuk 6 daarvan met als titel :"Channel Coding-Part 2" (blz. 314 tot   380).   



   De berichten werden voordien convolutioneel gecodeerd in een zender van het numeriek cellulair radiosysteem. In deze zender worden de naar de ontvanger over te dragen databits eerst gerangschikt in bepaalde ingangsberichten of   ingangssekwenties,   die elk een lengte van m ingangsdatabits hebben, waarbij m bijvoorbeeld gelijk is aan 248. 



   Deze ingangsberichten worden dan gecodeerd in een convolutionele codeerinrichting, die deel uitmaakt van de zender, waarbij een voorbeeld van een dergelijke codeerinrichting CE schematisch in Fig. 2 is voorgesteld. 



  Laatstgenoemde codeerinrichting CE is een lineaire eindige-toestandmachine gevormd door een K-trapsschuifregister SR met ingang IN en met uitgangen waarmee n modulo-2 optellers Al,   A2,...,   An verbonden zijn. De n uitgangen   01, 02,...,   On van deze opletters zijn gekoppeld met een   codeerinrichtingsuitgang   OUT van CE via een schematisch voorgestelde bemonsteringsschakelaar. 



  K is de zogenaamde"dwanglengte" (constraint length), die bijvoorbeeld gelijk is aan 5 en stelt het aantal bitverschuivingen voor over dewelke een ingangsdatabit van een ingangsbericht de codeerinrichtingsuitgang OUT kan   beïnvloeden.   Op ieder tijdsogenblik wordt een nieuwe ingangsdatabit in het register SR geschoven, alle bits in dit register worden naar rechts verschoven over   een     bitpositie,   en de uitgangen van de n optellers Al to An worden sekwentieel bemonsterd om een codewoord van n gecodeerde bits aan de uitgang OUT van de codeerinrichting te verschaffen. De sekwentie van   m*n   gecodeerde bits, die op een ingangsbericht betrekking hebben, wordt dan gebruikt 

 <Desc/Clms Page number 6> 

 om een over te dragen golfvorm te moduleren, waarbij"x" het vermenigvuldigingsteken is.

   Gezien er n gecodeerde bits zijn voor elke ingangsdatabit, is het codegetal (code rate), die de verhouding is van het aantal gecodeerde bits tot het aantal ingangsdatabits, gelijk aan n, bijvoorbeeld 2,3 of 6. 



   Een toestand van de codeerinrichting CE wordt bepaald als zijnde de   K-1   meest rechtse toestanden of bitposities van het schuifregister SR, zodat CE 2X(K-1) mogelijke toestanden heeft,   waarbij"xx"het exponentteken   is. De kennis van een huidige toestand, samen met deze van de volgende ingangsdatabit van het ingangsbericht is nodig en voldoende om een volgende toestand te bepalen. Een overgang van een huidige toestand naar een volgende toestand, dit wil zeggen de toestand op een volgend tijdsogenblik,   wordt"toestandsovergang"genoemd.   Alleen twee welbepaalde toestandsovergangen, die overeenkomen met de twee mogelijke ingangsdatabits 0 en 1, kunnen uit elke toestand voortkomen en daarom kunnen enkel twee welbepaalde overgangen in een bijzondere toestand eindigen.

   Elke toestandsovergang kan voorgesteld worden, ofwel door de volgende ingangsdatabit ofwel door de gecodeerde bits verkregen met deze volgende ingangsdatabit. Er kan worden aangetoond dat de gecodeerde bits toegevoegd aan een van de twee mogelijke toestandsovergangen, die starten vanaf een toestand, het binair complement zijn van deze toegevoegd aan de andere toestandsovergang. Hetzelfde is waar voor de gecodeerde bits van de twee toestandsovergangen die eindigen in een toestand. De repetitiviteit van deze struktuur werd uitgebaat om alle mogelijke toestandsovergangen van een codeerinrichting voor te stellen in een diagram, dat "Trellisdiagram" genoemd wordt. 



   Een vereenvoudige versie van een Trellisdiagram, dit wil zeggen voor een codegetal n=2 en voor een dwanglengte K=3 (en niet 5 zoals in het hierboven gegeven voorbeeld), 

 <Desc/Clms Page number 7> 

 is gedeeltelijk in Fig. 3 voorgesteld. In deze figuur zijn de   [2**eK-1) ]=4   mogelijke toestanden A, B, C en D voorgesteld door verschillende stippen, zowel op een tijdsogenblik   t (i)   als op een volgend tijdsogenblik   t (i+l),   en de 8 mogelijke toestandsovergangen zijn voorgesteld door lijnen die de 4 toestanden op t (i) met deze op   t (i+l)   verbinden. Elke toestand wordt bepaald door een binaire waarde, bijvoorbeeld   A=00t   B=10, C=01 en D=ll.

   Volle lijnen stellen een toestandsovergang voor opgewekt door een databit 0, terwijl   streepjeslijnen   een toestandsovergang voortgebracht door een ingangsdatabit 1 voorstellen. 



  Bijvoorbeeld, beginnend in de toestand x of B=10 op het tijdsogenblik   t (i) zai   een ingangsdatabit 0 leiden naar een toestandsovergang die eindigt in de toestand y of C=01 op het tijdsogenblik   tri+1), waarbij   deze toestandsovergang door het paar gecodeerde bits 1 en 0 is voorgesteld. 



  Anderzijds zal een ingangsdatabit 1 dan leiden naar een toestandsovergang die eindigt in de toestand w of D=ll op het   tijdsogenblik   waarbij deze toestand door het paar gecodeerde bits 0 en 1 voorgesteld wordt. 



   Uit hetgeen voorafgaat volgt dat te beginnen met een voorbepaalde begintoestand, bijvoorbeeld   x,   elke ingangsdatabit van een ingangsbericht die in de codeerinrichting CE geschreven wordt met een welbepaalde toestandovergang overeenkomt, zodat het gehele bericht van m ingangsdatabits in het Trellisdiagram door   een "pad"   gevormd door m opeenvolgende toestandsovergangen voorgesteld kan worden. 



   Zoals later in detail zal worden uiteengezet, tracht de Viterbi decodeerinrichting VD van Fig. 1 het ingangsbericht. welke dan het "geraamd bericht" genoemd zal worden, terug te vinden door dit enkele codeerpad uit alle mogelijke paden in het Trellisdiagram te extraheren. 



  Dit is enkel mogelijk als in de decodeerinrichting VD het Trellisdiagram van de codeerinrichting is opgeslagen in een 

 <Desc/Clms Page number 8> 

   geheugen"takmatrix" (SCNTn   Fig. 5) genoemd, bijvoorbeeld onder de vorm van al de mogelijke of verwachte toestandsovergangen en/of hun toegevoegde verwachte (ingangs) databit of verwachte gecodeerde bits, en indien elk bericht in een welbepaalde toestand eindigt, bijvoorbeeld in de toestand A=00. Om laatstgenoemde voorwaarde te verwezenlijken worden aan de   codeerziide,   K-l ingangsbits met binaire waarde 0 en"doorspoelbits"genoemd aan de beduidende ingangsdatabits van elk ingangsbericht toegevoegd, waarbij de totale lengte van het bericht m is.

   Deze doorspoelbits bewerkstelligen dat het pad gevolgd door een ingangsbericht in het Trellisdiagram van de codeerinrichting eindigt in de voorafbepaalde eindtoestand, bijvoorbeeld A=00, door de inhoud van het K-trapschuifregister SR van CE na elk van deze ingangsberichten leeg te maken. 



   Ingeval de beschikbare transmissie-bandbreedte door de vereiste men gecodeerde bits van een bericht overschreden zou worden, kan de redondantie verschaft door het codeeralgoritme lichtjes verminderd worden zodat het overgedragen bericht nauwkeurig deze beschikbare bandbreedte gebruikt. Deze redondantie wordt verminderd door sommige gecodeerde bits weg te laten. Een uit een bericht verwijderde bit wordt punctiebit genoemd en de om op selektieve wijze   informatie,   dit wil zeggen gecodeerde bits weg te laten volgens een welbepaald algoritme wordt punctie genoemd, waarbij elk mogelijk algoritme met een punctieschema overeenkomt. Door een gepaste keus van het punctieschema en daarom van de punctiebit kan de overdrachtkwaliteit, niettegenstaande de verminderde redondantie, aanvaardbaar blijven.

   Het gebruik van een punctieschema wordt dus over het algemeen verkozen boven het gebruik van een lager codegetal n, omdat een dergelijk codegetal op drastische wijze de redondantie en daarmee ook de overdrachtskwaliteit vermindert. De punctietechniek is 

 <Desc/Clms Page number 9> 

 reeds bekend in de techniek en wordt daarom hier niet in meer detail uiteengezet. 



   De (niet getoonde) ontvanger van een mobiel station omvat een demodulator, en de in Fig. 1 getoonde Viterbi decodeerinrichting VD. 



   Na een demodulatie volgens een bekend   demodulatieproces   te hebben uitgevoerd, extraheert de demodulator de 4 meest beduidende bits uit de 12-bit woorden die uit dit proces voorspruiten. Elk stel van 4 dergelijke bits wordt"softbit"genoemd en is dus een gekwantiseerde voorstelling van   een   van de hierboven vermelde gecodeerde bits van de codeerinrichting. 



   Door het hierboven vermeld punctieschema in acht te nemen verschaft de Viterbi decodeerinrichting VD eerst correcte stellen van n softbits. 



   Door middel van deze softbits en de inhoud van de takmatrix berekent de Viterbi decodeerinrichting VD dan een meest waarschijnlijk pad doorheen het Trellisdiagram. Deze berekening wordt in drie stappen gedaan, namelijk een voorwaartse pas, een achterwaardse pas en een uitgangsfaze. 



   Tijdens de voorwaartse pas berekent VD voor elk ontvangen stel van n softbits, een waarschijnlijkheidswaarde en wijst deze toe aan al de mogelijke toestandsovergangen tussen twee opeenvolgende   tijdsogenblikken,   bijvoorbeeld tussen   t (i)   en   t (i+l).   Deze waarschijnlijkheidswaarde wordt   "overgangswaarschijnlijkheidswaarde"genoemd   en   hij   is maximum als de softbits nauwkeurig overeenkomen met de verwachte gecodeerde bits van de takmatrix voor een bijzondere toestandsovergang, terwijl deze waarde minimum is als geen enkele van de softbits overeenkomen met deze verwachte gecodeerde bits, beide ingeval al de bits door een softbit met dezelfde absolute waarde voorgesteld worden, bijvoorbeeld de decimale waarde (+7)

   voor een logische   l   en de decimale waarde (-7) voor een logische 0. 

 <Desc/Clms Page number 10> 

 



  Ingeval de absolute waarden van de softbits verschillend zijn wordt de volgende aanpak gebruikt : indien voor een verwachte sekwentie, bijvoorbeeld 1/0/1, de softbits met amplitude (+5)/ (-1)/ (+7) worden ontvangen, wordt de overgangswaarschijnlijkheidswaarde berekend als (+5) * (+1) + (-1) * (-1) +   (+7) * (+1)   =   13,   waarin de amplitude van elke softbit met een faktor (+1) vermenigvuldigd wordt voor een binaire data bit 1 of met (-1) voor een binaire data bit 0, 
 EMI10.1 
 terwijl als softbits met amplitude worden ontvangen de overgangswaarschijnlijkheidswaarde berekend wordt als (+3) + (+5) + (-1) 
Van nu af aan zal een overgangswaarschijnlijkheidswaarde aangeduid worden met ALFA (xy) waarin x en y de twee toestanden zijn, zoals   A,   B, C en D getoond in Fig.

   3, waarbij x de begintoestand en y de eindtoestand van een toestandsovergang zijn. 
 EMI10.2 
 



  VD berekent ook"padwaarschijnlijkheidswaarden"voor elk van de 2xx toestanden. Een (K-1)padwaarschijnlijkheidswaarde is een waarschijnlijkheidswaarde gelijk aan de som van de toestandsovergangswaarschijnlijkheidswaarden toegewezen aan de toestandsovergangen, die een mogelijk pad doorheen het Trellis diagram vormen en in een bijzondere toestand eindigen. Op elk tijdsogenblik en voor elke toestand wordt enkel de padwaarschijnlijkheidswaarde met de hoogste waarde gekozen en opgeslagen in een eerste geheugen (MEMP, Fig. 6) van VD. In dit eerste geheugen worden dus   2** (K-1)   meest waarschijnlijke padwaarschijnlijkheidswaarden opgeslagen. 



  Van nu af aan zal een padwaarschijnlijkheidswaarde   PROB (y)   genoemd worden, waarin y een eindtoestand van een pad is. 



   Als een meest waarschijnlijk pad voor een toestand wordt gekozen, wordt de meest waarschijnlijke databit die met de laatste toestandsovergang van dat pad overeenkomt opgeslagen in een tweede geheugen (DMEM, Fig. 7) van VD. 



  Dit wordt op elk tijdsogenblik gedaan en voor elke 

 <Desc/Clms Page number 11> 

 toestand, zodat het tweede geheugen in staat is om   mxt2xx (K-D] meest waarschijnlijke databits op te   slaan, dit wil zeggen m data bits voor elk van de   2** (K-l)   meest waarschijnlijke berichten, die elk in een onderscheiden toestand eindigen. 



   De voorwaartse pas voor een bericht is afgehandeld als dit tweede geheugen vol is. 



   Zoals reeds vermeld eindigt elk ingangsbericht met een vast aantal nulbits, dit wil zeggen de   (K-l)   doorspoelbits met binaire waarde 0, als gevolg waarvan de   2xx (K-l)   meest waarschijnlijke paden alle in het Trellisdiagram naar de voorafbepaalde eindtoestand y=A=00 convergeren. 



   Dit kenmerk wordt uitgebaat gedurende de achterwaartse pas, waarin een geraamd bericht gekozen wordt uit   2** (K-l)   meest waarschijnlijke berichten opgeslagen in het tweede geheugen. Dit geraamd bericht komt in the Trellisdiagram overeen met het pad dat de hoogste padwaarschijnlijkheidwaarde heeft en het wordt gereconstrueerd door dit pad in omgekeerde volgorde te volgend, dit wil zeggen beginnend met de voorafbepaalde eindtoestand   A=OO.   De geraamde databits van dit geraamde bericht worden dus tijdens de achterwaartse pas in omgekeerde volgorde verzameld. 



   Tenslotte, gedurende de uitgangsfaze worden deze geraamde databits opnieuw in de normale volgorde gezet en seri el naar een uitgang SOUT van de Viterbi decodeerinrichting VD overgedragen. 



   Benevens het voortbrengen van het geraamd bericht verschaft de huidige Viterbi decodeerinrichting VD ook, in de   vlucht,   een   zogenaamd"padbitfoutwaarde"BER (y),   die het aantal softbits is dat verschilt van de verwachte gecodeerde bits van een bericht dat eindigt in de toestand y. In meer detail, voor elk gekozen meest waarschijnlijke toestandovergang die xy genoemd wordt voor een overgang van 

 <Desc/Clms Page number 12> 

 de begintoestand x naar de eindtoestand y, worden de overeenkomstige softbits vergeleken met de verwachte gecodeerde bits die in takmatrix van VD is opgeslagen. Het resultaat van deze vergelijking wordt   "overgangsbitfoutwaarde"TBER (xy)   genoemd en is gelijk aan het aantal softbits dat verschillend (in teken) is van de gecodeerde bits.

   Voor elk gekozen meest waarschijnlijk pad dat eindigt in een toestand y is BER (Y) gelijk aan de som van de overgangsbitfoutwaarden van alle toestandsovergangen van dat pad. Voor elk van de   2** (K-IJ   toestanden wordt een padbitfoutwaarde opgeslagen in een derde geheugen (MEMB, Fig. 6) van VD. Dit derde geheugen wordt toegevoegd aan het bovengenoemde eerste geheugen (MEMP, Fig. 6) waarin de meest waarschijnlijke padwaarschijnlijkheidswaarden voor dezelfde toestand zijn opgeslagen. De padbitfoutwaarde van dit bericht wordt aan een uitgang BOUT van de Viterbi decodeerinrichting VD verschaft. 



   De in Fig. I getoonde Viterbi decodeerinrichting VD zal hierna beschreven worden, eerst algemeen en vervolgens in meer detail met verwijzing naar Fig. 4 tot Fig. 7. 



   VD heeft een 4-segment domino architectuur bestaande uit de blokken VISOFT, VITALFA, VIPROB, die alle gemeenschappelijk door een besturingsmodule VICONT bestuurd worden. De eerste vier blokken, dit wil zeggen de softbit interface module VISOFT, de takmatrixberekeningsmodule VITALFA, de waarschijnlijkheidsmodule VIPROB en de datamodule VIDATA worden alle gebruikt voor de voorwaartse pas, terwijl VIDATA ook voor de achterwaartse pas en de uitgangsfaze gebruikt wordt. 



   Vanuit de hierboven vermelde demodulator van de ontvanger en via een ingangsbus SBIN ontvangt VISOFT softbits en draagt ze over naar VITALFA na te hebben rekening gehouden met een mogelijk punctieschema, zoals hierboven beschreven. De overdracht tussen VISOFT en VITALFA wordt verwezenlijkt via een interne bus BIT. 

 <Desc/Clms Page number 13> 

 



  VISOFT is ook met de voorafgaande demodulator verbonden door twee besturingslijnen REQ en RDY. Via REQ vraagt VISOFT nieuwe softbits aan de demodulator en via RDY geeft deze omzetter aan dat de gevraagde softbits op de ingangsbus SBIN beschikbaar zijn. Gelijkaardige besturingslijnen RNEXT en SOKN zijn anwezig tussen VISOFT en VITALFA. Via RNEXT vraagt VITALFA een nieuw stel van n softbits aan VISOFT en via SOKN deelt VISOFT aan VITALFA mee dat deze softbits op de bus BIT beschikbaar zijn. 



  Tenslotte worden algemene stuursignalen en configuratieinformatie, bijvoorbeeld de berichtlengte m, het codegetal n en het punctieschema, door de gemeenschappelijke besturingsmodule VICONT zowel aan VISOFT als aan VITALFA, VIPROB en VIDATA toegevoerd via een interne besturingsbus CTB, die al deze blokken verbindt. 



   VITALFA berekent dan, voor elke mogelijke toestandovergang in het Trellisdiagram, de overgangswaarschijnlijkheidswaarden ALFA (xy) van deze toestandsovergangen in functie van de n ontvangen softbits. 



  Zoals reeds vermeld worden de overgangswaarschijnlijkheidswaarden ALFA (xy) berekend door de n ontvangen softbits te vergelijken met de n verwachte gecodeerde bits voor een zelfde toestandsovergang, waarbij deze verwachte gecodeerde bits worden opgeslagen in de takmatrix (SCNT, Fig. 5) die deel uitmaakt van VITALFA. De aldus berekende overgangswaarschijnlijkheidswaarden ALFA (xy) worden dan naar VIPROB via een interne bus ALFAB overgedragen. 



   Tegelijkertijd met de berekening van de meest waarschijnlijke overgangswaarschijnlijkheidswaarden 
 EMI13.1 
 ALFA berekent VITALFA ook een overeenkomstige overgangbitfoutwaarde TBER die aan VIPROB via een interne bus BERI wordt toegevoerd. 



   VIPROB berekent dan een nieuw stel van meest waarschijnlijke padwaarschijnlijkheidswaarden   PROB (y),   

 <Desc/Clms Page number 14> 

 namelijk een voor elke (eind) toestand y, uitgaande van een voorig stel padwaarschijnlijkheidswaarden opgeslagen in het hierboven vermeld eerste geheugen (MEMP, Fig. 6) dat van VIPROB deel uitmaakt en uitgaande van de overgangswaarschijnlijkheidswaarden   ALFA (xy) verschaft   door VITALFA. Voor elke eindtoestand y is de gekozen of nieuwe meest waarschijnlijke padwaarschijnlijkheidswaarde   PROB (y)   gelijk aan de hoogste waarde onder de sommen van de vorige meest waarschijnlijke padwaarschijnlijkheidswaarden PROBE) opgeslagen in het eerste geheugen en de overgangswaarschijnlijkheidswaarde ALFA (xy) voor elke begintoestand x.

   Als aldus door VIPROB voor een eindtoestand y een meest waarschijnlijk pad doorheen het Trellisdiagram vastgesteld wordt, wordt een meest waarschijnlijke databit afgeleid vanuit de laatste meest waarschijnlijke toestandsovergang van dit pad. Deze meest waarschijnlijke databit wordt dan via een klem DOUT naar VIDATA overgedragen. 



   Gelijktijdig met de berekening van een meest waarschijnlijke padwaarschijnlijkheidswaarde   PROB (y),   en daarom met de keuze van een pad en meer in het bijzonder van de laatste meest waarschijnlijke toestandsovergang ALFA (xy) van dat pad, berekent VIPROB een overeenkomstig padbitfoutwaarde   BER (y)    die de som is van de overgangsbitfoutwaarden TBER (xy) van al de toestandsovergangen xy die het gekozen pad vormen. Met dit doel omvat VIPROB het hierboven vermelde derde geheugen   (MEMB,   Fig. 6) waarin voor elke eindtoestand y een meest waarschijnlijke padbitfoutwaarde BER (y) is opgeslagen. 



  Zoals bij de berekening van een nieuwe   PROB (y),   is een nieuwe BER (Y) gelijk aan de som van een vorige   BER (x)   opgeslagen in het derde geheugen en TBER (xy), die door VITALFA via de bus BERI wordt toegevoerd. Bij de berekening van BER (y) wordt er echter geen keuze gemaakt tussen   2XXCK-I)   waarden omdat   BER (x)   en TBER (xy) opgelegd 

 <Desc/Clms Page number 15> 

 zijn en overeenstemmen met de laatste toestandsovergang van het meest waarschijnlijke pad, reeds gekozen door VIPROB. 



   VITALFA en VIPROB zijn verder onderling verbonden door twee besturingslijnen, ACK en SOKA. Via ACK vraagt VIPROB aan VITALFA om een nieuwe overgangswaarschijnlijkheidswaarde ALFA (xy) en een nieuwe overgangsbitfoutwaarde   TBER (y)   en via SOKA bericht VITALFA aan VIPROB dat deze waarden op de bussen ALFAB en BERI beschikbaar zijn. 



   VIDATA, die meest waarschijnlijke databits van VIPROB via de klem DOUT ontvangt, omvat het hierboven vermelde tweede geheugen (DMEM, Fig. 7), dat in staat is   m*2** (k-l)   meest waarschijnlijke databits op te slaan, dit wil zeggen de   2x (k-l) meest waarschijnlijke berichten   met een bericht voor elke eindtoestand. Door de bovengenoemde doorspoelbits weet men dat het geraamd bericht, dit wil zeggen het enige overblijvende meest waarschijnlijke bericht dat aan de uitgang SOUT van de Viterbi decodeerinrichting VD verschaft zal worden, in de toestand   y=A=00   eindigt. De inhoud van het tweede geheugen is zo ingericht dat VIDATA in staat is om uitgaande van deze bekende eindtoestand A=00 de (geraamde) databits uit het geraamd bericht te halen.

   Deze aldus in omgekeerde volgorde verzamelde databits worden tijdelijk opnieuw in het tweede geheugen opgeslagen, maar nu in voorafbepaalde andere locaties daarvan. Als al de geraamde databits van het geraamd bericht door VIDATA gekozen worden, brengt deze de geraamde databits op seriële wijze en in de goede volgorde op de uitgang SOUT. 



   De werking van de vier hoofdblokken van VD zal hierna in meer detail beschreven worden aan de hand van de Fig. 4 tot Fig. 7. 



   Fig. 4 toont de softbit interface module VISOFT in meer detail. VISOFT omvat een besturingsketen of eindige-toestandsmachine SFSM waarmee de besturingslijnen 

 <Desc/Clms Page number 16> 

 REQ, RDY, RNEXT en SOKN alsook de besturingsbus CTB verbonden zijn. SFSM is de zogenaamde "lokale intelligentie" van VISOFT en bestuurt, via een klem PUNCT, een punctiemultiplexeerketen PMUX die ook van VISOFT deel uitmaakt. ingang van PMUX is de ingangsbus SBIN en zijn uitgang is de interne bus BIT. 



   Het doel van PMUX bestaat erin om punctiebits in de stroom van softbits, ontvangen via SBIN, in te lassen. SFSM bestuurt, via de klem PUNCT, de werking van PMUX volgens een punctieschema, dat via de besturingsbus CTB van VICONT wordt ontvangen. PMUX rangschikt dan de stroom van bits in stellen van elk n softbits. Op aanvraag van VITALFA via de besturingslijn RNEXT laadt PMUX een stel van n softbits op de bus BIT en activeert het signaal op de besturingsverbinding SOKN. 



   De module VITALFA, getoond in Fig. 5, ontvangt dan in zijn rekenkundige eenheid ALUA het stel van n softbits vanuit VISOFT. ALUA bevat zes vergrendelketens, die in staat zijn tot zes softbits op te slaan. Dit komt overeen met het hierboven vermelde maximum codegetal n. VITALFA omvat ook een besturingsketen of eindige-toestandsmachine AFSM waarmee de besturingsbus CTB van VICONT verbonden is, alsook de besturingslijnen RNEXT, SOKN, ACK en SOKN. Deze lokale intelligentie AFSM van VITALFA bestuurt ALUA via een interne bus LADR, en bestuurt de genoemde takmatrix SCNT via een klem CNT, waarbij deze matrix SCNT via een bus CMP met ALUA verbonden is. De uitgangen van de rekenkundige eenheid ALUA zijn met VIPROB via de bussen ALFAB en BERI verbonden. 



   De takmatrix SCNT is een ROM geheugen waarin, zoals reeds vermeld, alle mogelijke toestandsovergangen van het Trellis diagram van de codeerinrichting zijn opgeslagen onder de vorm van verwachte gecodeerde bits en/of verwachte databits. Onder de besturing van AFSM vergelijkt ALUA, voor al de toestandsovergangen die in de toestand y 

 <Desc/Clms Page number 17> 

 eindigen, de verwachte gecodeerde bits ontvangen van SCNT via de bus CMP met de softbits ontvangen van VISOFT via de bus BIT. De resultaten van deze vergelijkingen zijn de bovengenoemde overgangswaarschijnlijkheidswaarde   ALFA (xy)   en de overgangsbitfoutwaarde TBER (xy), die berekend worden door de rekenkundige eenheid ALUA, zoals hierboven beschreven aan de hand van een voorbeeld en die gelijktijdig respektievelijk op de bussen ALFAB en BERI geladen worden. 



   In een voorkeursuitvoering en gezien de overgangswaarschijnlijkheidswaarden van toestandsovergangen, die eindigen in een bijzondere toestand y, beide gelijk zijn in absolute waarde en enkel van teken   verschillen,   zal enkel deze absolute waarde, "ALFA (y)" genoemd, van VITALFA naar VIPROB via de bus ALFAB overgedragen worden. Op gelijkaardige wijze zijn de overgangsbitfoutwaarden binair complementair, zodat het voldoende is slechts een van hen naar VIPROB als BER (Y) over te dragen via de bus BERI. 



   In   VPROB,   getoond in Fig. 6, worden nieuwe meest waarschijnlijke padwaarschijnlijkheidswaarden berekend voor elke eindtoestand. Bijvoorbeeld, een nieuwe meest waarschijnlijke padwaarschijnlijkheidswaarde PROB (y) om te eindigen in de toestand y te beginnen vanaf de toestand x of z, is de hoogste waarde onder   PROB (x) +ALFA (y)   en   PROBCz)-ALFACv) waarbij PROB (x)   en   PROB (z)   uit het eerste geheugen MEMP gelezen worden en ALFA (y) via de bus ALFAB wordt ontvangen. 



   Er dient opgemerkt dat de Trellisdiagram waarvan een gedeelte in Fig. 3   getaont   wordt, kan verdeeld worden in een aantal gesloten   systemen "vlinders" (butterflies)   genoemd. Een van deze vlinders is bijvoorbeeld het systeem bestaande uit de toestanden B en D op het tijdsogenblik t (i) en de toestanden C en D op het tijdsogenblik   t (i+l)    deze toestanden worden hierna respectievelijk als   x,   z, y 

 <Desc/Clms Page number 18> 

 en w aangewezen.

   Men kan zien dat de berekening van een volledige vlinder, met resultaat een nieuwe padwaarschijnlijkheidswaarde (PROB) voor de toestanden y en w, gesteunt is op dezelfde ingangswaarden, dat wil zeggen   PROB (x) PROB (z)   en   ALFA (y) [of ALFA (w)].   De volgende vergelijkingen zijn geldig voor de berekening van beide   PROB (y)   en   PROB (w)   :

  
Als   PROB (x)   + ALFA (xy) > PROB (z) + ALFA   (zy)   dan PROB (y) =   PROB (x)   + ALFA (xy) anders   PROB (y)   = PROB (z) + ALFA (zy) en als   PROB (x)   +   ALFA (xw)   > PROB (z) +   ALFA (zw)   dan   PROB (w)   =   PROB (x)   + ALFA (xw) anders   PROB (w)   = PROB (z) + ALFA (zw)
Omdat ALFA (xy) =-ALFA (zy) en ALFA (xy) =-ALFA (xw) en ALFA (xw) =-ALFA (zw) kan men daarvan afleiden dat ALFA (xy) =   ALFA (zw) of,   volgens de bovenvermelde notatie, dat ALFA (y) =   ALFA (w) p   
 EMI18.1 
 wat men ook als ALFA kan aanduiden. 



  Door dat er 2** die toelaten de padwaarschijnlijkheidswaarden te berekenen voor al de eindtoestanden, berekent VIPROB 2**(k-2) stellen van padwaarschijnlijkheidswaarden (PROB) voor twee eind toestanden elk. 



   Tegelijkertijd worden nieuwe meest waarschijnlijke padbitfoutwaarden BER (y), BER (w) berekend, als BER (x) +TBER (y) of BER (z)- [n-TBER (y)] en BER (x) +   TBER (w)   of BER (z)- [n-TBER (w)] waar n het bovenvermelde codegetal is, afhankelijk van de gekozen nieuwe meest waarschijnlijke padwaarschijnlijkheidswaarden   PROB (y)   en PROB(w), gekozen zoals hierboven beschreven.   BER (x)   en   BER (z)   worden uit het derde geheugen MEMB gelezen en   TBER (y)   en TBER (w) worden via de bus BERI in VIPROB ontvangen. 

 <Desc/Clms Page number 19> 

 



   In meer detail, VIPROB bestaat uit twee gelijkaardige blokken (boven en onder in Fig.   6),   namelijk een voor de behandeling van de padwaarschijnlijkheidswaarden en de andere voor de verwerking van de padbitfoutwaarden. Het (bovenste) waarschijnlijkheidsblok van VIPROB omvat : - een vergrendelketen ALFAL voor de ontvangst van de overgangswaarschijnlijkheidswaarden ALFA (y) via de bus
ALFAB ;

   - twee rekenkundige eenheden ALUP1 en ALUP2 om gelijktijdig de nieuwe padwaarschijnlijkheidswaarden   PROB (x) +ALFA (y)   en   PROB (z)-ALFA (y)   te berekenen uitgaande van vorige padwaarschijnlijkheidswaarden   PROB (x)   en   PROB (z),   die in het geheugen MEMP zijn opgeslagen en daarin via een bus PBUS worden ontvangen en uitgaande van de waarde ALFA (y) die in deze rekenkundige eenheden vanuit de vergrendelketen ALFAL en via een bus ALFAC werden ontvangen en - een   vergelijkings-en   de multiplexeerketen PRMUX waarmee zowel ALUP1 en ALUP2 via respectieve bussen PB1 en PB2 verbonden zijn en waarvan de uitgang verbonden is met het geheugen MEMP via de bus PBUS, waarbij PRMUX de nieuwe meest waarschijnlijke padwaarschijnlijkheid   PROB (y)

     kiest onder de twee vanuit ALUP1 en ALUP2 ontvangen waarden, zoals hierboven uiteengezet. 



   Er dient opgemerkt dat het eerste geheugen MEMP en het derde geheugen MEMB aan elkaar toegevoegd zijn en samen een groot RAM geheugen MEM vormen met een capaciteit van 2xx (K-l) woorden van elk 20 bits. In het   padwaarschijnlijkheidsgedeelte   MEMP van MEM zijn woorden van 12 bits opgeslagen, terwijl in het padbitfoutwaarde-gedeelte MEMB van MEM woorden van 8 bits zijn opgeslagen, waarbij dit gedeelte verbonden is met het hierna beschreven (onderste) bitfoutwaardeblok van VIPROB. 



   Evenals het (bovenste) waarschijnlijkheidsblok omvat 

 <Desc/Clms Page number 20> 

 het (onderste) bitfoutwaarde-blok : - een vergrendelketen BERIL am de overgangsbitfoutwaarden
TBER (y) van de bus BERI te ontvangen ; - twee rekenkundige eenheden ALUB1 en ALUB2 am gelijktijdig de nieuwe bitfoutwarden   BER (x) +TBER (y)   en   BER (z) + [n-TBER (y)]   te berekenen uitgaande van voorgaande bitfoutwaarden BER (x) en BER (z) opgeslagen in het geheugen MEMB en daarin ontvangen via een bus BBUS en uitgaande van de overgangsbitfoutwaarden TBER (y) ontvangen vanuit de vergrendelketen BERIL via een bus
BERIB ;

   en - een multiplexeerketen BRMUX waarmee zowel ALUB1 als
ALUB2 verbonden zijn via respektive bussen OBI en OB2 en waarvan de uitgang met het geheugen MEMB via de bus
BBUS verbonden is, waarbij BRMUX de nieuwe meest waarschijnlijke bitfoutwaarde (BER (y) kiest uit de twee waarden ontvangen van ALUB1 en ALUP2, zoals hierboven uiteengezet, dit wil zeggen, volgens de keuze gemaakt door PRMUX. 



   De vergelijkings-en multiplexeerketen PRMUX heeft verder een uitgang die met de klem DOUT verbonden is en via dewelke de meest waarschijnlijke databit die overeenkomt met de laatste meest waarschijnlijke overgangswaarschijnlijkheidswaarde gekozen door PRMUX, dit wil zeggen het pad met de hoogste padwaarschijnlijkheidswaarde, naar de module VIDATA wordt overgedragen. Op gelijkaardige wijze heeft de multiplexer BRMUX ook een uitgang die verbonden is met de uitgangsklem BOUT van de Viterbi decodeerinrichting VD en waarop de meest waarschijnlijke bitfoutwaarde BER (y) van dit gekozen meest waarschijnlijke pad beschikbaar is. 



   Tenslotte omvat VIPROB een besturingsketen of eindige- toestandsmachine PFSM, die de lokale intelligentie van VIPROB is en waarmee de besturingsbus CTB en de hierboven vermelde besturingslijnen ACK en SOKA verbonden 

 <Desc/Clms Page number 21> 

 zijn. PFSM bestuurt zowel de rekenkundige eenheden   ALP1,     ALUP2,   ALUB1 en ALUB2 als het RAM geheugen MEM van een gemeenschappelike interne besturingslus ICB. 



   Als een meest waarschijnlijke padwaarschijnlijkheidswaarde PROB (y) door PRMUX gekozen wordt, bijvoorbeeld de uitgang van   ALP1,   dan wordt deze nieuwe waarde PROB (y) in MEMP geschreven, de overeenkomstige laatste meest waarschijnlijke databit of 1 wordt naar DOUT overgedragen, en BRMUX kiest de rekenkundige eenheid ALUB1 die aan ALUP1 is toegevoegd. De bitfoutwaarde BER (y) aan de uitgang van ALUB1 wordt dan in het geheugen MEMB geschreven via de bus BBUS en naar de klem DOUT overgedragen. 



   Als deze bewerkingen worden achtereenvolgens uitgevoerd voor de   2** (K-l) toestanden,   voor elk waarvan er aldus slechts een meest waarschijnlijk pad doorheen het Trellisdiagram gekozen wordt, waarbij het (de) andere mogelijke pad (en) systematisch door VIPROB   ge limineerd   wordt (worden). 



   Zoals reeds vermeld, telkens een pad door VIPROB gekozen wordt, wordt de meest waarschijnlijke databit die met de laatste toestandsovergang van dat pad overeenkomt naar VIDATA (getoond in Fig. 7) overgedragen via DOUT. Dit 
 EMI21.1 
 betekent dat VIDATA voor elk te decoderen bericht m*2** databits ontvangt, waarbij m de hierboven vermelde berichtlengte is en K de dwanglengte is. 



   Opdat   hij   slechts   een   genaamd bericht uit al deze databits zou halen omvat VIDATA : - het hierboven vermelde tweede geheugen DMEM dat in staat is   2** (K-l)   meest waarschijnlijke berichten van elk m databits op te slaan ; - een   2** (K-l) schuifregister- en   vergrendelketen SLS om een stel van meest waarschijnlijke data bits te vergrendelen ; - een   2** (K-l) -naar-l   bit multiplexer DMUX ; 

 <Desc/Clms Page number 22> 

 - een   K-l   bit schuifregister SLA om DMUX te   adresseren   - een selectieketen PSEL om naar SLS de databit op klem
DOUT of op de uitgang van DMUX over te dragen ; en - een besturingsketen of eindige-toestandsmachine DFSM om de bewerkingen van VIDATA onder de supervisie van
VICONT te synchronizeren. 



   In het volgende gedeelte van de tekst wordt verondersteld dat de dwanglengte K gelijk is aan 5 en dat de lengte m van het genaamde bericht gelijk is aan 248. 



   De eindige-toestandsmachine of lokale intelligentie DFSM ontvangt van VICONT besturingsinformatie via de bus CTB en bestuurt zowel de werking van DMEM via een interne adresbus ADB als de werking van PSEL via twee besturingsklemmen FP en BP. DFSM geeft via FP of BP aan dat respektievelijk de voorwaartse pas of de achterwaartse pas bezig is. 



   Gedurende de voorwaartse pas worden de meest waarschijnlijke databits van de laatste toestandsovergang van de paden, door VIPROB gekozen voor de   2**CK-1) =16   toestanden, aan VIDATA achtereenvolgens via de klem DOUT toegevoerd. Gezien dan een besturingssignaal FP op de gelijknamige besturingsklem van DFSM geactiveerd wordt, draagt PSEL deze databits seri el over naar SLS via een klem SIN. Als een   16-bitwoord,   gevormd door 16 meest waarschijnlijke databits-een voor elke eindtoestand-in de schuifregister-en vergrendelketen SLS is verzameld, dan bestuurt DFSM de overdracht van dit woord in een voorafbepaalde rij van het geheugen DMEM.

   Deze overdracht wordt verwezenlijkt via een bidirectionele 16-bit bus DB en elk 16-bit woord komende van SLS wordt in een welbepaalde rij van de m=248 rijen of woordlokaties van DMEM opgeslagen, te beginnen met de bovenste rij RO. 



   Als 248 woorden van ieder 16 meest waarschijnlijke bits in de rijen R to R247 van DMEM worden opgeslagen, is de voorste pas afgehandeld. 

 <Desc/Clms Page number 23> 

 



   De volgende werkwijze verwerkt de data opgeslagen in DMEM in omgekeerde volgorde, dit wil zeggen van het laatste woord ontvangen in SLS en dus opgeslagen in rij R247 naar het eerste woord opgeslagen in rij RO, en wordt daarom "achterwaartse pas" genoemd, zoals hierboven vermeld. 



  Gedurende deze achterwaartse pas wordt een besturingssignaal BP op de gelijknamige besturingsuitgang van DFSM geactiveerd. Dit signaal BP belet de overdracht, via PSEL, van databits van DOUT naar SLS, maar maakt de overdracht van databits mogelijk van DMUX naar SLS via een klem SSEL, PSEL en SIN waarbij de klem SSEL, DMUX en PSEL verbindt. 



   De extractie van een geraamd bericht uit het geheugen DMEM is gesteund op een eigenschap van het Trellisdiagram, volgens dewelke de binaire waarde van een eindtoestand y gegeven wordt door de binaire waarde van de starttoestand x, verschoven over 1-bitpositie naar rechts en waaraan de databit van de toestandsovergang xy wordt (links) gehangen. 



   In meer detail, om de laatste geraamde databit van het geraamd bericht te extraheren wordt de adresaanwijsinrichting (pointer) van het geheugen DMEM door DFSM eerst, op de laatste rij R247 daarvan ingesteld, dit wil zeggen op de rij waarin het laatste woord ontvangen gedurende de voorwaartse pas is opgeslagen, terwijl het 
 EMI23.1 
 4-bitschuifregister SLA wordt geYntialiseerd op 0, 0, 0, 0, dit wil zeggen om de eerste linkse bit in de multiplexer DMUX te kiezen. Als resultaat, en omdat de multiplexer DMUX zijn 16-bitwoord ingangsdata vanuit het geheugen DMEM via een bus LB ontvangt, wordt de databit met positie R247/CO, waarin CO de eerste linkse kolom van DMEM aanduidt, gekozen en aan de uitgang van DMUX verschaft. 



  Van daaruit wordt deze laatste geraamde databit naar de schuifregister-en vergrendelketen SLS overgedragen via de klem SSEL, de selector PSEL en de klem SIN. Deze laatste 

 <Desc/Clms Page number 24> 

 geraamde databit, die dan de meest linkse positie van de schuifregister-en vergrendelketen SLS inneemt, wordt dan in het 4-bitsschuifregister SLA geschoven via een klem LB, die deze meest linkse positie van SLS met een seri le ingang van SLA verbindt. Deze databit wordt ook via de bus DB gekopieerd in de lokatie van R247/CO van het geheugen DMEM. De reden van deze kopie is dat gedurende deze achterwaartse pas het geraamd bericht bit per bit in de eerste kolom CO van het geheugen DMEM zal geconstrueerd worden, waarbij de laatste geraamde databit zich in de rij R247 en de eerste zich in de rij   RO   bevindt. 



   Er dient opgemerkt dat de lokatie R247/CO gekozen wordt om de laatste geraamde databit te extraheren, dit wil zeggen om de achterwaartste pas   te   starten, omdat de hierboven vermelde doorspoelbits die aan elk bericht toegevoegd worden en die er voor zorgen dat het meest waarschijnlijke pad doorheen het Trellisdiagram naar een voorafbepaalde eindtoestand convergeert. In het onderhavige geval is dit de toestand die met de kolom CO van het geheugen DMEM overeenkomt, dit wil zeggen toestand A met binaire waarde 00. 



   Om de voorlaatste geraamde databit uit het geraamd bericht te extraheren, wordt de rij R246 (niet getoond) van DMEM door DFSM gekozen en wordt het kolomadres van deze bit door de huidige inhoud van SLA gegeven. Als resultaat wordt de rij R246 van DMEM aan de ingang van DMUX gelegd en wordt er een door SLA gekozen databit daarvan in de meest linkse positie van SLS gekopieerd via SSEL, PSEL en SIN. 



  Van daaruit wordt deze voorlaatste geraamde databit in SLA geschreven via LB en in de lokatie R246/CO van het geheugen DMEM gekopieerd. 



   Elke geraamde databit wordt aldus uit DMEM geextraheerd en in de eerste kolom CO daarvan gekopieerd. 



  Als de m=248 kolommen van DMEM werden behandeld, waarbij de laatste behandelde rij   RO   is, is de achterwaartse pas 

 <Desc/Clms Page number 25> 

 afgehandeld. 



   Gedurende de volgende uitgangsfaze worden de m geraamde databits uit het geheugen DMEM gelezen en seri el aan de uitgang DOUT van de Viterbi decodeerinrichting VD gelegd. Met dit doel wordt de kolom CO van DMEM uitgelezen van rij RO tot rij R247 en het geraamde bericht wordt naar DOUT overgedragen in de juiste volgorde via de bus DB en de schuifregister-en vergrendelketen SLS. 



   Gezien elke taak van het Viterbialgoritme door onderscheiden blokken of modulen VISOFT, VITALFA, VIPROB en VIDATA van VD uitgevoerd wordt, waarbij elk een lokale intelligentie respektievelijk SFSM, AFSM, PFSM en DFSM heeft en gezien deze blokken een   zelfde nsubroutine"   herhalen voor elk stel daarin ontvangen bits, kunnen deze verschillende taken in een pijplijn gestoken worden onder de besturing van de gemeenschappelijke besturingsmodule VICONT en doorheen de lokalen intelligentie van elk blok. 



    Deze"pijplijning"betekent bijvoorbeeld dat   eens dat de takmetriekmodule VITALFA de overgangswaarschijnlijkheidswaarden ALFA (y) en de overgangsbitfoutwaarden   TBER (Y)   voor al de   2** (K-l)   toestanden berekend heeft en deze waarden naar VIPROB heeft overgedragen, er een nieuw stel van n softbits door VISOFT kan verschaft worden, waarbij VITALFA zijn berekeningen opnieuw start. Verder, terwijl deze volgende berekening van ALFA (y) en van   TBER (y)   door VITALFA uitgevoerd wordt, past VIPROB zowel het   padwaarschijnlijkheidsgedeelte   MEMP als het padbitfoutwaardegedeelte MEMB van zijn RAM geheugen MEM aan met de berekende waarden   PROB (y)   en BER (y) en draagt hij 2** (K-l) meest waarschijnlijke data bits naar VIDATA over.

   VIDATA past dan zijn geheugen DMEM aan tot dit vol is en start dan de achterwaartse pas, die door de uitgangsfaze zal gevolg worden. 



   Zoals reeds vermeld wordt de timering van al deze aktiviteiten door VICONT gesuperviseerd via de 

 <Desc/Clms Page number 26> 

 gemeenschappelijke besturingsbus CTB, via welke VICONT tot de verscheidene lokale intelligenties van VD toegang heeft. Elk van deze lokale intelligenties SFSM, AFSM, PFSM en DFSM bestuurt dan de lokale werking van het blok of de module waartoe   hij   behoort en zendt besturingsinformatie terug naar de gemeenschappelijke besturingsmodule VICONT, bijvoorbeeld als een taak afgehandeld is. 



   Er dient tenslotte opgemerkt dat gezien in het codeerprincipe gebruik gemaakt wordt van de historiek, geschouwd over de dwanglengte K, van het codeerbericht welke door een stroom van ingangsdatabits gevormd wordt, de Viterbi decodeerinrichting VD in staat is om salvo's van overdrachtfouten te corrigeren gesteund op het hierboven vermeld decodeeralgoritme met maximum   waarschijnlijkheid,   zolang de salvo's van fouten korter dan deze dwanglengte zijn. 



   Hoewel de principes van de uitvinding hierboven zijn beschreven aan de hand van bepaalde uitvoeringsvormen en wijzigingen daarvan, is het duidelijk dat de beschrijving slechts bij wijze van voorbeeld is gegeven en de uitvinding niet daartoe is beperkt.

Claims (11)

  1. CONCLUSIES 1. Decodeerinrichting waarin het Viterbi algoritme gebruikt wordt om gecodeerde berichten convolutioneel te decoderen, met het kenmerk dat hij een eerste module (VITALFA) omvat om overgangswaarschijnlijkheden voor de mogelijke toestandsovergangen tussen twee opeenvolgende toestanden van de decodeerinrichting te berekenen en een tweede module (VIPROB) omvat om in functie van deze overgangswaarschijnlijkheden, padwaarschijnlijkheden te berekenen voor de mogelijke paden bestaande uit opeenvolgende toestandsovergangen en eindigend in elk van deze toestanden, en om voor elk van deze toestanden, enkel het pad met de hoogste padwaarschijnlijkheidswaarde uit te kiezen.
  2. 2. Decodeerinrichting volgens conclusie 1, met het kenmerk dat deze eerste module (VITALFA) een eerste besturingsketen (AFSM) omvat die de werking van deze eerste module bestuurt en dat deze tweede module (VIPRUB) een tweede besturingsketen (PFSM) omvat die de werking van deze tweede module bestuurt.
  3. 3. Decodeerinrichting volgens conclusie 2, met het kenmerk, dat deze eerste module (VITALFA) en deze tweede module (VIPROB) onafhankelijk van elkaar werken, waarbij hun werking door een gemeenschappelijke besturingsmodule (VICONT) gesuperviseerd wordt.
  4. 4. Decodeerinrichting volgens conclusie 1, met het kenmerk dat hij een derde module (VIDATA) omvat om uit deze <Desc/Clms Page number 28> door deze tweede module (VIPROB) gekozen paden enkel een pad dat met het te decoderen geraamde bericht overeenkomt te kiezen.
  5. 5. Decodeerinrichting volgens conclusies 3 en 4, met het kenmerk, dat deze derde module (VIDATA) een derde besturingsketen (DFSM) omvat die de werking van deze derde module bestuurt, en dat deze derde module (VIDATA) onafhankelijk van deze eerste (VITALFA) en tweede (VIPROB) modules werkt, waarbij de werking van al deze modulen door deze gemeenschappelijke besturingsmodule (VICONT) gesuperviseerd wordt.
  6. 6. Decodeerinrichting volgens conclusie 1, met het kenmerk, dat deze eerste module (VITALFA) verder voor elk van deze toestandsovergangen een overgangs bitfoutwaarde berekent die functie is van het verschil tussen de bits (softbits) ontvangen in deze eerste module (VITALFA) en de bits (gecodeerde bits) verwacht voor een zelfde toestandsovergang.
  7. 7. Decodeerinrichting volgens conclusie 6, met het kenmerk, dat deze eerste module (VITALFA) gelijktijdig voor elke toestandsovergang deze overgangswaarschijnlijkheid en deze overgangsbitfoutwaarde berekent.
  8. 8. Decodeerinrichting volgens conclusie 6, met het kenmerk, dat deze tweede module (VIPROB) verder voor elk van de gekozen paden een padbitfoutwaarde berekent die de som is van de overgangsbitfoutwaarden van de toestandsovergangen die dit pad vormen.
  9. 9. Decodeerinrichting volgens conclusie 8, met het kenmerk dat deze tweede module (VIPROB) tegelijkertijd en in parallel deze padwaarschijnlijkheid en deze padbitfoutwaarde berekent.
  10. 10. Decodeerinrichting volgens conclusie 4 of 5, met het kenmerk dat deze eerste (VITALFA), tweede (VIPROB) en derde (VIDATA) modulen in serie verbonden zijn.
  11. 11. Decodeerinrichting volgens een van de vorige <Desc/Clms Page number 29> conclusies, met het kenmerk dat hij uitgevoerd is als een funktie blok van geïntegreerde keten.
BE9100432A 1991-05-08 1991-05-08 Decodeerinrichting. BE1004814A3 (nl)

Priority Applications (10)

Application Number Priority Date Filing Date Title
BE9100432A BE1004814A3 (nl) 1991-05-08 1991-05-08 Decodeerinrichting.
NZ242456A NZ242456A (en) 1991-05-08 1992-04-23 Viterbi decoder for digital radio
AU15261/92A AU644523C (en) 1991-05-08 1992-04-30 Decoder device for digital radio signals
ES92201260T ES2093178T3 (es) 1991-05-08 1992-05-05 Dispositivo decodificador.
DE69212695T DE69212695T2 (de) 1991-05-08 1992-05-05 Decodierungseinrichtung
US07/878,731 US5331665A (en) 1991-05-08 1992-05-05 Decoder device for decoding convolutionally encoded message
EP92201260A EP0512641B1 (en) 1991-05-08 1992-05-05 Decoder device
CA002068117A CA2068117C (en) 1991-05-08 1992-05-07 Viterbi decoder device
FI922067A FI922067A (fi) 1991-05-08 1992-05-07 Dekoderanordning
JP4116397A JPH05175855A (ja) 1991-05-08 1992-05-08 デコーダ装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
BE9100432A BE1004814A3 (nl) 1991-05-08 1991-05-08 Decodeerinrichting.

Publications (1)

Publication Number Publication Date
BE1004814A3 true BE1004814A3 (nl) 1993-02-02

Family

ID=3885488

Family Applications (1)

Application Number Title Priority Date Filing Date
BE9100432A BE1004814A3 (nl) 1991-05-08 1991-05-08 Decodeerinrichting.

Country Status (9)

Country Link
US (1) US5331665A (nl)
EP (1) EP0512641B1 (nl)
JP (1) JPH05175855A (nl)
BE (1) BE1004814A3 (nl)
CA (1) CA2068117C (nl)
DE (1) DE69212695T2 (nl)
ES (1) ES2093178T3 (nl)
FI (1) FI922067A (nl)
NZ (1) NZ242456A (nl)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5465275A (en) * 1993-11-16 1995-11-07 At&T Ipm Corp. Efficient utilization of present state/next state registers
TW243568B (en) * 1993-11-16 1995-03-21 At & T Corp Digital signal processor with an embedded viterbi co-processor
US5432804A (en) * 1993-11-16 1995-07-11 At&T Corp. Digital processor and viterbi decoder having shared memory
FR2737824B1 (fr) * 1995-08-08 1997-10-31 Tortelier Patrick Procede de decodage a sorties ponderees mettant en oeuvre l'algorithme de viterbi en fonctionnement par blocs
GB2305827B (en) * 1995-09-30 2000-01-19 Motorola Ltd Viterbi co-processor and method of operation therefor
US6028899A (en) * 1995-10-24 2000-02-22 U.S. Philips Corporation Soft-output decoding transmission system with reduced memory requirement
US6023492A (en) * 1995-11-24 2000-02-08 Telefonaktiebolaget Lm Ericsson Method and apparatus for conditionally combining bit metrics in a communication system
US5964825A (en) * 1996-02-09 1999-10-12 Texas Instruments Incorporated Manipulation of boolean values and conditional operation in a microprocessor
US5742622A (en) * 1996-03-12 1998-04-21 Discovision Associates Error detection and correction system for a stream of encoded data
KR100212833B1 (ko) * 1996-03-22 1999-08-02 전주범 가변레이트 비터비 복호기
US6374346B1 (en) 1997-01-24 2002-04-16 Texas Instruments Incorporated Processor with conditional execution of every instruction
GB2329557B (en) * 1997-09-19 2002-05-01 Motorola As Method and apparatus for viterbi decoding of punctured codes
US6275538B1 (en) * 1998-03-11 2001-08-14 Ericsson Inc. Technique for finding a starting state for a convolutional feedback encoder
US6272661B1 (en) * 1998-12-29 2001-08-07 Texas Instruments Incorporated Minimum memory implementation of high speed viterbi decoder
SG80035A1 (en) * 1999-05-27 2001-04-17 Inst Of Microelectronics Viterbi decoding of punctured convolutional codes without real-time branch metric computation
US6633615B1 (en) * 2000-01-31 2003-10-14 Agere Systems Inc. Trellis transition-probability calculation with threshold normalization
TW518845B (en) * 2001-03-30 2003-01-21 Ali Corp Method of erroneous data correction for full response channel system
CN1306514C (zh) * 2001-07-19 2007-03-21 松下电器产业株式会社 再现信号质量的评价方法和信息再现装置
GB2409618A (en) * 2003-12-23 2005-06-29 Picochip Designs Ltd Telecommunications decoder device
US7920612B2 (en) * 2004-08-31 2011-04-05 Finisar Corporation Light emitting semiconductor device having an electrical confinement barrier near the active region
US8140949B2 (en) * 2007-11-13 2012-03-20 Alpha Imaging Technology Corp. ACS unit of a Viterbi decoder and method for calculating a bit error rate before a Viterbi decoder
US9942005B2 (en) * 2016-08-30 2018-04-10 International Business Machines Corporation Sequence detector
US10243591B2 (en) 2016-08-30 2019-03-26 International Business Machines Corporation Sequence detectors

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0210932A1 (fr) * 1985-08-02 1987-02-04 Gérard Battail Procédé de décodage d'un code convolutif et décodeur correspondant
EP0234558A2 (en) * 1986-02-24 1987-09-02 Fujitsu Limited Path trace viterbi decoder

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4536878A (en) * 1982-09-20 1985-08-20 Sperry Corporation Bit serial convolutional decoder for VLSI implementation
US4742533A (en) * 1987-01-02 1988-05-03 Motorola, Inc. Soft decision digital communication apparatus

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0210932A1 (fr) * 1985-08-02 1987-02-04 Gérard Battail Procédé de décodage d'un code convolutif et décodeur correspondant
EP0234558A2 (en) * 1986-02-24 1987-09-02 Fujitsu Limited Path trace viterbi decoder

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
CONFERENCE PROCEEDINGS, WESCANEX 88, DIGITAL COMMUNICATIONS 12 Mei 1988, SASKATOON, SASKATCHEWAN, CANADA bladzijden 72 - 77; BREE ET AL: 'A BIT-SERIAL ARCHITECTURE FOR A VLSI VITERBI PROCESSOR' *
INTEGRATION, THE VLSI JOURNAL. deel 8, nr. 1, Oktober 1989, AMSTERDAM NL bladzijden 3 - 16; BIVER ET AL: 'Architectural design and realization of a single-chip Viterbi decoder' *
PROCEEDINGS OF THE IEEE 1987 CUSTOM INTEGRATED CIRCUITS CONF. 7 Mei 1987, PORTLAND, OREGON, US bladzijden 551 - 554; STAHL ET AL: 'A bit serial viterbi decoder chip for the mbit/s range' *

Also Published As

Publication number Publication date
NZ242456A (en) 1994-09-27
JPH05175855A (ja) 1993-07-13
DE69212695D1 (de) 1996-09-19
AU644523B2 (en) 1993-12-09
EP0512641B1 (en) 1996-08-14
FI922067A0 (fi) 1992-05-07
CA2068117A1 (en) 1992-11-09
CA2068117C (en) 1998-04-14
US5331665A (en) 1994-07-19
FI922067A (fi) 1992-11-09
DE69212695T2 (de) 1997-02-06
EP0512641A1 (en) 1992-11-11
ES2093178T3 (es) 1996-12-16
AU1526192A (en) 1992-11-12

Similar Documents

Publication Publication Date Title
BE1004814A3 (nl) Decodeerinrichting.
US4536878A (en) Bit serial convolutional decoder for VLSI implementation
US5349608A (en) Viterbi ACS unit with renormalization
US4606027A (en) Error correction apparatus using a Viterbi decoder
US6259749B1 (en) Viterbi decoder with pipelined ACS circuits
US5414738A (en) Maximum likelihood paths comparison decoder
US6901118B2 (en) Enhanced viterbi decoder for wireless applications
JP2001156651A (ja) ビタビ復号器
US5594742A (en) Bidirectional trellis coding
EP1232619A1 (en) Method for implementing shared channel decoder for onboard processing satellites
CN1175825A (zh) 用于viterbi解码器中的追溯方法及装置
CN1283331A (zh) 使用蝶形运算的非二进制维特比译码器
US5257263A (en) Circuit for decoding convolutional codes for executing the survivor path storage and reverse scanning stage of a Viterbi algorithm
US8301990B2 (en) Programmable compute unit with internal register and bit FIFO for executing Viterbi code
US20020042804A1 (en) Parallel processing syndrome calculating circuit and reed-solomon decoding circuit
US20040064781A1 (en) Viterbi decoder and Viterbi decoding method
US20020112211A1 (en) Minimum error detection in a viterbi decoder
US20040158542A1 (en) Viterbi decoder
US5329536A (en) Method and apparatus for sequentially decoding a digital stream encoded by a convolution type error-correcting code
JP2000224054A (ja) ビタビデコ―ディングの速度を増大させる方法と装置
JP2575854B2 (ja) ビタビ復号回路
US6578119B2 (en) Method and device for memory management in digital data transfer
US7852960B2 (en) Method of computing path metrics in a high-speed Viterbi detector and related apparatus thereof
Chandel et al. Viterbi decoder plain sailing design for TCM decoders
RU1775858C (ru) Выходное устройство декодера Витерби

Legal Events

Date Code Title Description
RE Patent lapsed

Owner name: ALCATEL BEL

Effective date: 20000531