NL8302214A - Dekodeerinrichting voor het dekoderen van kodewoorden die bloksgewijs middels een reed-solomon-code tegen meerdere symboolfouten per blok beschermd zijn, en uitleesinrichting voor optisch uitleesbare opslaglichamen welke uitleesinrichting voorzien is van zo een dekodeerinrichting. - Google Patents

Dekodeerinrichting voor het dekoderen van kodewoorden die bloksgewijs middels een reed-solomon-code tegen meerdere symboolfouten per blok beschermd zijn, en uitleesinrichting voor optisch uitleesbare opslaglichamen welke uitleesinrichting voorzien is van zo een dekodeerinrichting. Download PDF

Info

Publication number
NL8302214A
NL8302214A NL8302214A NL8302214A NL8302214A NL 8302214 A NL8302214 A NL 8302214A NL 8302214 A NL8302214 A NL 8302214A NL 8302214 A NL8302214 A NL 8302214A NL 8302214 A NL8302214 A NL 8302214A
Authority
NL
Netherlands
Prior art keywords
block
symbols
error
codeword
symbol
Prior art date
Application number
NL8302214A
Other languages
English (en)
Original Assignee
Philips Nv
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 Philips Nv filed Critical Philips Nv
Priority to NL8302214A priority Critical patent/NL8302214A/nl
Priority to DE19843422461 priority patent/DE3422461A1/de
Priority to SE8403269A priority patent/SE460243B/sv
Priority to SE8403269D priority patent/SE8403269L/xx
Priority to FR8409563A priority patent/FR2549319B1/fr
Priority to GB08415675A priority patent/GB2142752B/en
Priority to CA000457106A priority patent/CA1220865A/en
Priority to JP59127723A priority patent/JPS6037833A/ja
Publication of NL8302214A publication Critical patent/NL8302214A/nl
Priority to US06/824,299 priority patent/US4642808A/en

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/1575Direct decoding, e.g. by a direct determination of the error locator polynomial from syndromes and subsequent analysis or by matrix operations involving syndromes, e.g. for codes with a small minimum Hamming distance
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1833Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information
    • 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • 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/3707Adaptive decoding and hybrid decoding, e.g. decoding methods or techniques providing more than one decoding algorithm for one code

Description

é E - „ ' PHN 10.710 1 N.V. Philips* Gloeilampenfabrieken. te Eindhoven
Dekodeerinricbting voor het dekoderen van kodewoorden die bloksgewijs middels een Reed-Solomon-code tegen meerdere symboolfouten per blok beschermd zijn, en uitleesinrichting voor optisch uitleesbare opslaglichamen welke uitleesinrichting voorzien is van zo een dekodeerinrichting
De uitvinding betreft een dekodeersysteem voor het dekoderen van kodewoorden die middels een Reed-Solomon- code tegen meerdere symboolfouten per kodewoord beschermd zijn, welk dekodeersysteem bevat opnemermiddelen voor het sekwentieel ontvangen van de kodesymbolen om 5 daaruit een kodewoord te vormen, eerste berekeningsmiddelen (102) om uit het kodewoord middels de pariteitskontrolematrix [H] van de kode een reeks te bepalen van syndroomsymbolen, door de eerste berekeningsmiddelen gevoede tweede berekeningsmiddelen (104·) voor het oplossen van de sleutelvergelijking om de foutlokator sigma(z) en de 10 foutevaluator omega(z) te bekomen, door de tweede berekeningsmiddelen gevoede derde berekeningsmiddelen om middels de nulpunten van de foutlokator de posities van eventueel gestoorde kodesymbolen te bekomen, en door de derde berekeningsmiddelen gevoede vierde berekeningsmiddelen om middels genoemde nulpunten de bij gestoorde kodesymbolen behorende 15 symboolfouten te bepalen, ter presentering van de middels foutwaarde(n) en positiegegeven(s) van symboolfouten korrigeerbare kodesymbolen op een gebruikersuitgang.
Zo'n dekodeersysteem is bekend uit het Amerikaanse octrooischrift 4,124,174, dat een snelle decodering beschrijft om tot korrektie van ten 20 hoogste drie symbolen in een kodewoord te komen. In bepaalde gevallen is dit vermogen onvoldoende. Het is een doelstelling van de uitvinding om een dekodeersysteem te verschaffen dat met hoge snelheid kan werken en waarin met name de verwerkingssnelheid zich aanpast aan het aantal in werkelijkheid gevonden fouten, zodat niet telkens rekening hoeft te 25 worden gehouden met het ongunstigste geval, waarin de korrektiemogelijkheden van de kode volledig worden benut, een en ander door met name de oplossing van de sleutelvergelijking te vereenvoudigen, terwijl deze vereenvoudiging zodanig is gestruktureerd dat de resultaten van voorgaande berekeningsstappen gebruikt worden voor volgende 8302214 ΡΗΝ 10.710 2 ι - v η berekeningsstappen, zodat een schilsgewijze struktuur ontstaat, terwijl voor een bepaald aantal voorlopig gekonstateerde symboolfouten slechts een beperkt aantal extra syndroomsymbolen, veelal kleiner dan het aantal in het kodewoord aanwezige, voorzien wordt voor het realiseren van een 5 test op het op de juiste wijze van oplossen van de sleutelvergelijking. De doelstelling wordt gerealiseerd doordat de uitvinding het kenmerk heeft, dat dat de tweede berekeningsmiddelen vermenigvuldigingsmiddelen bevatten om telkens, voor een voorondersteld aantal (L) symboolfouten per kodewoord, gaande vanaf een foutloos (L*0) kodewoord, middels in 10 acht name van 2L syndroomsymbolen en oplossen van de daartoe beperkte gereduceerde sleutelvergelijking volgens de regel van Cramer, doch bij van nul verschillende diskrepantie delta 1 middels invoering van twee verdere syndroomsymbolen in de aktuele gereduceerde sleutelvergelijking en matrix-inkrementerende bewerkingen een verdere, minder gereduceerde 15 sleutelvergelijking op te lossen (140), om bij aan nul gelijke diskrepantie deltal (138) een door de waarde van het alsdan vooronderstelde aantal symboolfouten bepaalde aantal (Nmax) diskrepanties deltal met achtereenvolgens opgehoogde aantallen vooronderstelde pseudo-symboolfouten te bepalen (142) doch bij een dan 20 alsnog van nul verschillende diskrepantie deltal voor alle onbehandelde aantallen tot het aktuele opgehoogde aantal symboolfouten de aanvullingen van de sleutelvergelijking aan te brengen(148,154-162), en deze aangevulde sleutelvergelijking als voorvermeld op te lossen.
In de praktijk zal in een opeenvolging van kodewoorden het ongunstigste 25 geval slechts zelden voorkomen omdat bijna steeds een groter aantal fouten in een kodewoord minder waarschijnlijk is dan een kleiner aantal fouten.
Het is gunstig als de tweede berekeningsmiddelen voorzien zijn van 30 eerste detektiemiddelen om een gebleken aantal symboolfouten van ten hoogste twee te detekteren (106,108) en daarmee middels direkt oplossen van een foutlokatorvergelijking van ten hoogste de tweede graad direkt de fouten te lokaliseren en te waarderen (124,126), en daarentegen pas bij een hoger aantal gedetekteerde symboolfouten de foutevaluator te 35 berekenen (110). In veel gevallen zullen slechts weinig symboolfouten optreden en blijkt deze procedure een versnelling op te leveren. Op zichzelf is de procedure volgens de stand der techniek in geval van een klein aantal symboolfouten ook kort, maar deze techniek bezit geen 8302214 PHN 10.710 3
* * -I
mogelijkheid om hij konstatering van een groter aantal fouten alsnog tot een korrektie te komen. Volgens de hier beschreven methode wordt bij elke hoeveelheid storingen een aangepaste hoeveelheid berwerkingsstappen uitgevoerd.
5
Het is gunstig als de derde berekeningsmiddelen voorzien zijn van tweede detektiemiddelen om een aktueel aantal van drie symboolfouten te detekteren en alsdan middels oplossen van een kubische foutlokatorvergelijking te fouten te lokaliseren en te waarderen, doch 10 bij een groter gedekteerd aantal symboolfouten een zoekcyclus volgens Chien langsheen de rij kodesymbolen te implementeren totdat een symboolfout wordt gelokaliseerd en alsdan de door die symboolfout gerepresenteerde faktor uit de foutlokator uit te delen (114), waardoor het aktueel aantal resterende symboolfouten met een eenheid wordt 15 gereduceerd, en dat bij het bereiken van een voorafbepaald aantal aktuele symboolfouten de foutlokatorvergelijking direkt wordt opgelost (118). Op zich is de zoekmethode volgens Chien, zeker bij een groot aantal korrigeerdbare fouten per kodewoord - 10 volgens de voorkeursuitvoering - zeer geschikt, maar ook zeer tijdrovend, en de 20 hier gevolgde methode levert in het leeuwedeel van de gevallen een aanzienlijke versnelling.
Het is gunstig als genoemde eerste berekeningsmiddelen voorzien zijn van een lus met daarin in serie geschakeld een EXCLUSIEF-QF-schakeling 25 (306,308) voor het ontvangen van de kodesymbolen, een buffer (312,314) voor het opslaan van de bij een kodewoord gevormde (voorlopige) syndroomsymbolen, en een alleen-lees-geheugen (320,322,324) voor het opslaan van de vermenigvuldigingstabellen voor de pariteitskontrolematrix, waarvan een uitgang is teruggekoppeld naar een 30 verdere ingang van de EXCLUSIEF-OF-schakeling, terwijl een verdere uitgang (316) van de buffer met de tweede berekeningsmiddelen zijn is verbonden om daaraan bij volledige behandeling van het betreffende kodewoord de rij definitieve syndroomsymbolen toe te voeren. Dit levert een goedkope oplossing die de vereiste hoge doorstroomsnelheid aankan.
Het is gunstig als voor het detekteren van het laatste kodesymbool van een kodewoord middels een daaraan aangehangen signaalbit een signaaldetektor aanwezig is, waarvan een uitgang de verdere uitgang 35 8302214 PHN 10.710 4 » % ,· - ’ aktiveert ter bereidstelling van de schakeling voor de ontvangst van een eerstvolgend kodewoord. Zo'n signalering geeft een eenvoudige realisering voor het detekteren van het eind van een kodewoord. Met name is het daardoor mogelijk om een opeenvolging van kodewoorden met 5 onderling verschillende lengtes te behandelen zonder dat deze lengtes van tevoren bekend behoeven te zijn.
Met is gunstig als tweede, derde en vierde berekeningsmiddelen gerealiseerd zijn door een schakeling, die bevat: een ingangsbuffer 10 (338,340) voor het opslaan van tenminste de volledige rij syndroomsymbolen die bij een kodewoord werd gegenereerd, een microcomputer (352) , een uitgangsbuffer (348,350) voor het opslaan van een reeks foutlokaliserings- en foutwaarderingssymbolen die bij een volledige rij bij een kodewoord behorende reeks syndroomsymbolen werd 15 gegenereerd, en een tussen deze onderdelen geschakelde verbindingsbus (344) , waarop tevens een log/antilog-tahelinrichting (364,368) is aangesloten voor het uitvoeren van vermenigvuldigingsoperaties op de symbolen in het betreffende Galois-lichaam, alsmede een datageheugen (370) , waarvoor adressen leverbaar zijn door de microcomputer middels 20 de bus, alsmede door een door een externe tijdgever inkrementeerbare teller (380,382). Het blijkt dat middels tussenbuffering een gemiddelde foutfrequentie met zulke eenvoudige middelen goed hanteerbaar is, terwijl alleen bij relatief lange reeksen sterk gestoorde kodewoorden een vollopen van de buffer(s) optreedt. In het uitvoeringsvoorbeeld 25 wordt de tabelinrichting ook gebruit voor de opslag van verdere grootheden, de later te bespreken C,D, en H tabellen. Door de ruime toevoeging van buffers is verder een pijplijn-operatie gunstig realiseerbaar.
30 Het is gunstig als mede op de bus is aangesloten een detektor (362) om middels detektie van een bij een kodewoord behorende en uitsluitend ,fnulrrsymbolen bevattende rij syndroomsymbolen buiten de microcomputer om een foutloos kodewoord te detekteren en alsdan een eerstvolgende rij • syndroomsymbolen op te roepen. Dit levert een zeer snelle detektie van 35 foutloze kodewoorden. In principe verwacht men een relatief talrijk voorkomen van zulke foutloze kodewoorden, zodat een kleine toevoeging aan de schakeling een relatief groot effekt heeft. In het uitvoeringsvoorbeeld wordt deze signalering ook gebruikt voor het voor 8302214 m * PHN 10.710 5 het snel besturen van het uitvoeren van de overdracht van de foutindicerende reeksen symbolen naar een gebruikersinrichting.
De uitvinding betreft mede een uitleesinrichting voor optisch 5 uitleesbare opslaglichamen welke voorzien is van een dekodeersysteem volgens het voorgaande, bevattende positioneermiddelen om zo een opslaglichaam op te nemen, aandrijfmiddelen om het opslaglichaam met substantieel eenparige rotatiesnelheid om deszelfs rotatie-as aan te drijven, uitleesmiddelen om vanlangs een spoor op het opslaglichaam een 10 bitreeks uit te lezen met serie-parallel-omzetting ter presentatie aan genoemde eerste berekeningsmiddelen. Dit levert een voordelige toepassing van de uitvinding, temeer waar de opslag van data op zo een opslaglichaam enerzijds een grote opslagdichtheid biedt, maar anderzijds aan fouten onderhevig is; de betrouwbaarheid wordt aldus sterk vergroot.
15
KORTE BESCHRIJVING VAN DF FIGUREN
De uitvinding wordt nader uitgelegd aan de hand van enkele figuren. Eerst wordt globaal de kode uitgelegd, daarna de gebruikte inrichting en 20 tenslotte wordt de berekening en daarmee de korrektie der fouten uitgelegd.
Fig.1 geeft een voorbeeld van een pariteitskontrolematrix [Hl van de kode; 25 Fig.2 geeft een afspeelinrichting voor een opslaglichaam voor digitale optische vastlegging;
Fig.3 geeft een blokschema van een te gebruiken microcomputer;
Fig.4 geeft een voorbeeld van de elementen van een Galois lichaam GF(2~4); 30 Fig.5 geeft een inrichting voor het berekenen van de syndroomsymbolen;
Fig.6 geeft een inrichting voor het uitvoeren van berekeningen in een Galois lichaam;
Fig.7 geeft een globaal stroomdiagram van de foutkorrektiebewerkingen;
Fig.8a geeft de sleutelvergelijking en de ervoor te gebruiken 35 oplossingsmethode;
Fig.Bb geeft een stroomdiagram van een eerste deel van de oplossing van die sleutelvergelijking;
Fig.D geeft een stroomdiagram van het tweede deel daarvan; 8302214 V % PHN 10.710 6 t '
Fig.10 geeft een stroomdiagram van het oplossen van een tweedegraadsvergelijking
Fig.11 geeft een stroomdiagram van het bepalen van de foutevaluator; Fig.12 geeft een stroomdiagram van het oplossen van een 5 derdegraadsvergelijking;
Fig.13 geeft een stroomdiagram van het uitvoeren van een chienzoekoperatie, en voor het bepalen van de foutwaarden.
KORTE BESCHRIJVING VAN EEN TE GEBRUIKEN KODE
10
Fig.1 geeft een voorbeeld van een pariteitskontrolematrix [H] van een zogenoemde Reed-Solomon bloksgewijze lcode. Een generatormatrix [G] voor deze kode wordt gegeven door [G]*[ïï] = 0, waarbij het aantal rijen k van de matrix [O] gelijk is aan het aantal k datasymbolen in een kodewoord 15 of blok, en aantal n kolommen gelijk is aan het totale aantal symbolen in een kodewoord, inclusief de redundante symbolen. Eenvoudshalve worden hier slechts op symboolniveau systematische kodes beschouwd. De generatormatrix kan zonder verandering in de kode-eigenschappen worden vermenigvuldigd met een transpositiematrix waardoor de rijen van plaats 20 veranderen. De matrixelementen zijn elementen van een Galois-lichaam en bestaan uit een aantal m bits, zodanig dat 2exp(m)>(n). Het Galois-lichaam wordt gegenereerd door een bijbehorend primitief en irreduceerbaar polynoom. Voor de elementen van dit Galois-lichaam zijn de vier arithmetische bewerkingen gedefinieerd. Als het aantal te 25 korrigeren symbolen per kodewoord gelijk is aan t, dan geldt (n-k)>(2t-l), waarbij voorts geldt n>k>0. Veelal geldt ook dat het aantal redundante symbolen tweemaal het maximum aantal te korrigeren symboolfouten is. De grootheid "d" is de zogenoemde kode-afstand, er geldt d-l=»n-k, waarbij 2t<d; er kan dan nog gekozen worden in hoeverre 30 de kodeafstand gebruikt wordt voor de korrektie.
BESCHRIJVING VAN DE AFSPEELINFIGHTING
Fig.2 geeft een afspeelinrichting voor een opslaglichaam voor digitale 35 optische vastlegging. Het opslaglichaam, dat in sommige uitvoeringen tweezijdig uitleesbaar is, bevat een dekplaat 24, een holte 26 eventueel gevuld met een inert gas, bijvoorbeeld argon, een laag 28 die tellurium bevat, en een basislaag 30. De holte wordt gedefinieerd door een 8302214 PHN 10.710 7 * ·* i sluitring 32 die luchtdichte afsluiting verzorgt'. De informatie is bevat in gaatjes in de tellurium-houdende laag die hij het schrijven door laserstraling worden ingebrand. Ter plaatse van een gat is dan de terugkaatsing van opvallend licht sterk verminderd. Op het opslaglichaam 5 kan een polymeerlaag aangebracbt zijn waarop middels een aangebrachte groef een uitleesbaan is gedefinieerd. Het opslaglichaam is schijfvormig, gelagerd op lager 22(schematisch aangegeven), en door motor 34 op as 20 aangedreven. In het volgende wordt alleen het lezen beschouwd. Oe lees-laser 36 straalt kontinu en belicht tijdens het 10 draaien van de plaat een rondlopend of spiraalvormig spoor, via het halfspiegelend prisma 38 en lensstelsel 40 met microscoop-objektief. Teruggekaatst licht gaat via het lenzenstelsel 40 en halfspiegelend prisma 38 naar de detektor 42. Uit het gedetekteerde signaal wordt door klokextraktiemechanisme 44 het kloksignaal teruggewonnen, waarmee via 15 besturingselement 46 het toerental van de motor wordt bijgeregeld. De preciese aard van deze bijregeling wordt kortheidshalve niet verder uiteengezet, evenmin als de de mechanismes voor het volgen van het spoor in radiale richting en in axiale richting, gedefinieerd ten opzichte van de plaat, en voor het doorlopend behouden van een juiste fokussering.
20
Het uitgangssignaal van detektor 42 wordt in de diskriminator 48 omgezet in een binair hoog/laag- signaal met ontstoorde overgangen. Dit signaal bestaat uit kanaalbits. De stroom kanaalbits voldoet aan voorafbepaalde conventies die gerelateerd zijn aan de kanaaleigenschappen, en voor de 25 verdere beschrijving niet relevant zijn. De stroom kanaalbits wordt in element 50 gedemoduleerd, waarbij een hoeveelheid redundantie wordt verwijderd en slechts de kodebits overblijven. De stroom kodebits wordt in serie/parallel-omzetter 52 omgezet in 8-hits kodesymbolen die tenslotte naar dekodeer-inrichting 54 worden gevoerd ter 30 korrektie/detektie van fouten. In de inrichting 54 wordt verdere, symboolsgewijs georganiseerde, redundantie verwijderd, zodat op de uitgang 56 de data-symbolen voor een gebruiker verschijnen. Eventueel kan de korrektie ook elders plaats vinden. De onderlinge synchronisatie van de werking der elementen 48-54 is eenvoudshalve niet getoond. In een 35 uitgebreidere versie worden meerdere bitelementen van de plaat tesamen in kodebits omgezet, maar dat wordt eenvoudshalve hier niet beschreven.
BESCHRIJVING van df berekeningsmiddelen 8302214 EHN 10.710 8 * 1 I ** 1
Fig.3 geeft een blokschema van een in dekodeerinrichting 54 te gebruiken microcomputer met randapparatuur. In bet uitvoeringsvoorbeeld worden de \ berekeningen uitgevoerd in een microcontroller, type 8X300, of 8X305, fabrikaat Signetics Corporation, 811 Fast Arques Av., Sunnyvale, Cal., 5 USA, en beschreven in de documentatie van de fabrikant. Met name is deze bouwsteen geschikt voor het uitvoeren van zestien-bits instrukties welke op de bus 58 verkeren. Fr is voorts een. dertien-bits bus 60 voor instruktie-adressen en een bidirektionele acht-bits bus 62 voor toevoer/afvoer van data. Voorts bevat de microcontroller een 10 instruktie-register 64, enkele algemene registers 66, schuiflogika 68, samenvoegings(merge)logica 70, een in/uitvoerbuffer 72, roteerlogica 74, afdek(mask)logica 76, een arithmetische en logische eenheid 78, een adres-multiplexer 80, een adresregister 82, een programmateller 84, een adresincrementeerlogica 86, algemene decodeer- en besturingslogica 88, 15 en moet van een externe oscillator/timer 90 worden voorzien, kortheidshalve wordt op de werking van deze controller niet verder ingegaan. Voor de opslag van data wordt een lees/schrijf-geheugen gebruikt met een maximum capaciteit van 256 woorden van 8 bits, waarvoor data en adressen via de data-bus in een tijdmultiplex-organisatie worden 20 getransporteerd. De instruktietijd is 250 nsek en de programmeerbaarheid gemakkelijk.
Fig.4 geeft een tabel ter elucidatie van de bewerkingen op de symbolen die hier als voorbeeld slechts uit vier kodebits bestaan (in 25 werkelijkheid bestaan de symbolen uit 8 bits en zijn er dus 256 verschillende data-inhouden). Het Galois-lichaam GF(2~4) bestaat hier dus uit zestien symbolen en wordt gegenereerd door het primitief en irreduceerbaar polynoom dat hier de vorm heeft x(exp4) + x + 1. Er is hier, en ook in GF(2~8) meer dan een enkele mogelijkheid voor dit 30 polynoom. De elementen van het Galois-lichaam zijn tweemaal gegeven, eenmaal als een machtreeks van het primitieve element a, en eenmaal als een velctorrepresentatie, namelijk als een bij elke respelctieveli jke macht van a behorende bitreeks. Binnen een Galois-lichaam zijn de vier arithmetische bewerkingen gedefinieerd. Optellen en aftrekken kunnen in 35 de microcomputer bitsgewijze worden uitgevoerd, bijvoorbeeld: (0110) + (1011) = (1101), waarbij de optelling bitsgewijze modulo-2 wordt uitgevoerd. Vermenigvuldigen en delen gaat gemakkelijker met gebruikmaking van logarithmen met het grondtal a. In een 8302214 PHN 10.710 9 logarithmentafel werkt het kodesymbool als adres en de exponenten van het grondtal als data. In een antilogarithmentafel werkt die exponent als adres en het kodesymbool als data. Voorbeeld: 5 (0110) * (1011) geeft a(exp5) * a(exp7) » a(expl2) geeft (1111).
Oelen gebeurt op overeenkomstige manier, waarbij steeds gerekend wordt modulo 2exp(m)-l, in dit voorbeeld is dus ra =’ 4.
i0
Fig.5 geeft een inrichting voor het berekenen van de 20 syndroorasymbolen per kodewoord. T)eze inrichting heeft twea werkmodes: in de eerste werkmode worden de symbolen van een frame of koidewoord ontvangen, en in de direkt opvolgende tweede werkmode worden de twintig syndroorasymbolen 15 op een uitgang gepresenteerd voor verdere verwerking. De informatie arriveert byteserieel op ingang 300 en wordt voorbijgaand opgeslagen in de twee FIFO-geheugens 302,304 van het fabrikaat M.M.I., in dit gedeelte is de breedte van de symbolen 8 bits, terwijl een negende bit wordt toegevoegd die normaliter de waarde nul, maar voor het laatste symbool 20 van een frame de waarde 1 heeft. De uitgangen van de FIFO-geheugens zijn verbonden met twee bouwstenen 306, 308; dit zijn bouwstenen van de bekende TTL-reeks van Texas Instruments Corporation, type SN74S135 met de funktie viervoudige EXCLIJSIEF-OF/NIET-OF-funktie en de gebruikte aanduiding "SHS" is dus een afkorting. De extra bit die het laatste 25 symbool aangeeft wordt toegevoerd aan de later te bespreken tijdsvolgordebesturing. De elementen 313,315 van het type S163 besturen de tabelkeuze tussen de tabelinrichtingen 320,322,324; bij de presentatie van een nieuw kodesymbool op uitgang 302 worden ze telkens op nul teruggesteld. Element 310 van het type S273 werkt op een 30 databreedte van 8 bits en is een achtvoudige dataflipflop met terugstelmogelijkheid. De elementen 312,314 werken elk op vier bits parallel en vormen ,een FIFO-geheugen van het type FAIRCHILD 9403 met een datadiepte van 2 * 12 = 24 symbolen. De uitgang daarvan is verbonden met een bouwsteen 318, van hetzelfde type als bouwsteen 310; anderzijds is 35 de uitgang van de elementen 312,314 ook als 316 voor de aansluiting van verdere bouwstenen beschikbaar(in Fig.6), om de syndroomsymbolen af te geven.
De bouwstenen 320,322,324 zijn programmeerbare alleen-lees 8302214 * « FHN 10.710 10 (PROM)-geheugens van het type INTEL3636B, elk met een capaciteit van 2k*8 bits. Deze bevatten de elementen van de pariteitskontrole-matrix. Bij de ontvangst van het eerste kodesymbool hebben alle syndroomsymbolen de waarde nul. Deze voorlopige syndroomsymbolen worden elk 5 vermenigvuldigd met de bijbehorende rij van de pariteitskontrolematrix, terwijl elk zo gevormd produkt wordt opgeteld bij het nieuw ontvangen kodesymbool om een nader syndroomsymbool te vormen. Bij elk ontvangen kodesymbool worden aldus twintig syndroomsymbolen hervormd. Na de ontvangst van het laatste kodesymbool zijn de twintig definitieve 10 syndroomsymbolen gereed voor verdere verwerking. De buffer 312/314 heeft voldoende kapaciteit voor de twintig syndroomsymbolen; de overtollige kapaciteit wordt niet gebruikt. De tijdsbesturing geeft, onder besturing van het negende symboolbit die het laatste symbool van het kodewoord identificeert, en dus na het vormen van de definitieve syndroomsymbolen 15 een overnamebesturingssignaal aan de schakeling van Fig.6 om de syndroomsymbolen over te nemen op de ingangen 334,336 die op uitgang 316 zijn aangesloten.
Fig.6 geeft een inrichting voor het uitvoeren van berekeningen in een 20 Galois lichaam, dat op de tesamen 8 bits brede ingangen 334,336, gevoed wordt door uitgang 316 van Fig.5. Flementen 338,340, vormen weer een FIFO-buffer met een datadiepte van 2 * 64 = 128 symbolen. Dit is dus voldoende voor meer dan zes frames, zodat een veiligheidsmarge aanwezig is. Als een frame weinig foute symbolen bevat is de verwerking in de 25 schakeling van Fig.6 zeer snel, maar de behandeling duurt langer naar gelang het aantal foute symbolen toeneemt. Door de buffering behoeft slechts de gemiddelde framebehandelingstijd in de schakeling van Fig.6 over een volgorde van zes opvolgende frames overeen te komen met de toeleveringssnelheid op ingang 300. Als dit gemiddelde te hoog wordt zou 30 de buffer overlopen; in dat geval wordt alsnog ingang 300 geblokkeerd en dit betekent dat het opslaglichaam een omwenteling extra moet maken, tijdens welke geen verdere informatie kan worden afgegeven. Bouwsteen 342 is een 8 bits brede inverterende buffer met drie-toestands-uitgang (resp.laag,hoog, en door een hoge impedantie afgesloten), waarvan de 35 uitgang is aangesloten op de achtbits bus 344. Op deze bus verkeren geïnverteerde datasignalen. Op overeenkomstige manier is de data-uitgang ook gevormd middels een achtbits buffer 346 en een FIFO-buffer 348,350 met een datadiepte van 64 symbolen. Hierop verschijnt de informatie die 8302214 #- ΕΉΝ 10.710 11 de eventueel gestoorde symbolen identificeert, namelijk achtereenvolgens de positie van het gestoorde kodesymbool en de waarde van de fout. T)e waarde moet bitsgewijze modulo-2 bij bet gestoorde symbool worden opgeteld om de korrekte waarde te krijgen. Volgens de hier gebruikte 5 konventie wordt de informatie voor elk frame of kodewoord als volgt geformatteerd: 00, foutenindikatiereeks (xi,yi), 00.
10 Voor nul fouten betekent dit dus de reeks 00,00. Voor elk gestoord symbool omen er twee extra symbolen in deze reeks, eerst de foutplaats en dan de foutwaarde. Voor een onkorrigeerbaar kodewoord is de reeks FF,00. Voor het uitvoeren van de eigenlijke berekeningen is de microcomputer 352 van Fig.3 voorzien. In de eerste plaats is de 15 data-aansluiting daarvan verbonden met de bus. Voorts is de adres-ultgang (slechts de elf minst signifikant bits van het adres worden gebruikt) aangesloten op de PPOM-geheugens 354,356,358 van het type 8101 of 3636. De eerste twee daarvan worden gebruikt om parallelgescbakeld 16-bits brede instrukties te leveren op de 20 instruktie-ingang van de micro-computer 352. Het derde PROM-geheugen 358 wordt gebruikt om verdere besturingssignalen te genereren. Op deze manier kunnen deze laatste zeer snel worden gegenereerd, waarvoor dan geen transport via de bus 344 noodzakelijk is: dit laatste zou namelijk relatief langzaam zijn. Op de uitgang van het PROtf-geheugen 358 is 25 aangesloten een terugstelbare 8-bits brede flipflopschakeling 360 van het type S273 voor het voorbijgaand bufferen van de besturingsinformatie voor overige onderdelen van de schakeling; daardoor wordt de beschikbaarheid van deze besturingsinformatie verbeterd en kan de schakeling sneller werken dan zonder deze voorziening: deze informatie 30 kan immers van te voren beschikbaar worden gesteld, zodat niet op het laatste ogenblik alsnog een machinecyclus behoeft te worden uitgevoerd.
De bus is voorts aangesloten op bouwsteen 362 die een acht-ingangs NIET-EM poort vormt, zodat gedetekteerd kan worden of er een 35 informatiebyte met waarde nul op de bus verkeert. Deze bouwsteen vormt een detektor voor het nul zijn van syndroomsymholen en foutlokaties ten behoeve van de tijdsvolgordebesturing. In vele gevallen zal een ontvangen frame foutloos zijn; dan zijn alle syndroomsymbolen gelijk aan 8302214 PHN 10.710 12 nul een kan aanstonds de verzameling syndromen van het eerstvolgende frame worden aangepakt zonder dat zelfs de microcomputer een veelheid van berekeningen behoeft uit te voeren. Element 364 is een achtvoudige transparante trekkerschalceling (latch) die dient als adresregister voor 5 het promgeheugen 368 van het eerder besproken type. Dit bevat voor het betreffende Galois-lichaam geldende logarithmen- en antilogarithmentabellen zoals eerder besproken, en tabellen voor de nader te bespreken "C-","D-" en"K-"grootheden. Middels de zo gevormde lus kan zeer snel een data-conversie worden uitgevoerd, waarbij een ^ extra stuursignaal afkomstig van element 360 de categorie van de conversie (5 verschillende) aangeeft.
Element 370 is een RAM-geheugen van het type 8X350 met een capaciteit van 256 * 8 bits en aanstuurbaar op een klokfrekwentie tot 10MHz; deze 15 klok wordt extern gegenereerd en bestuurt tevens de tijdsbesturing en het vormen van de syndroomsymbolen.
De achtbits adressen kunnen in de eerste plaats worden toegevoerd via de bus 344 middels de twee parallel geschakelde multiplexers 372,374 van het type S157, die worden bestuurd door uitgangssignalen van element 20 360. Deze kunnen verdere adresinformatie ontvangen van element 376 van het type S04, een zesvoudige inverteur.Laatstgenoemde wordt aangestuurd door de twee parallelgeschakelde vierbits-tellers 380,382 van eerder gereleveerd type, waarvan slechts vijf uitgangsbits in parallel worden gebruikt. De zesde adresbit wordt gevormd door de tijdsbesturing. Op 25 deze manier kunnen ook zeer snel achtereen reeksen adressen van het geheugen 370 worden uitgelezen en ingeschreven zonder dat anders dan dataverkeer over de bus 344 nodig is. Element 378 is een multiplexer van eerder besproken type die gevoed wordt door besturingsuitgangssignalen van microcomputer 352, respektievelijk cloor signalen van de externe tijdbesturing. Deze werkt mede voor de besturing van het geheugen 370, waar dit tussengegevens van verschillende aard kan opslaan, in respektievelijke ondergedeelten van dit geheugen. De verschillende modebesturingsbits kunnen door dit mechanisme worden aangevoerd. De elementen 380,382 zijn tellers (zie Fig.5); de uitgangen worden toegevoerd aan de trekkerschakeling 378, en vandaar aan de multiplexers 372,374, zodat zeer snel een opeenvolging van verschillende modes bestuurd kan worden. Met name kan door de beschreven organisatie zeer snel in verschillende delen van het geheugen 370 door elkaar 8302214 EHN 10.710 13 adresvolgordes worden afgetast.
HET BEREKENEN VAN DE FOUTEN
5 Het uitvoeringsvoorbeeld werkt met een kodewoord van n kodesymbolen, dat volgens een systematische kode tegen ten hoogste tien op willekeurige manier gestoorde kodewoorden is beschermd, middels een aantal van twintig redundante kodesymbolen. De inrichting kan zonder toevoegingen een aantal van 24 redundante kodesymbolen behandelen, als bepaald door 10 onder meer de capaciteiten van de elementen 320-324, 312,314 in Fig.5. Op theoretische gronden kan de lengte van het kodewoord worden uitgebreid tot ten hoogste 255 kodesymbolen, maar de kleinste zinvolle lengte van een kodewoord is 21 symbolen, namelijk 1 datasymbool en 20 redundantiesymbolen. Alle symbolen bestaan uit 8 bits. Het gebruikte 15 generator-polynoom van de kode heeft de vorm: g(x) = (x - a*0)(x - ηΛ1)....(χ-ηΛ19) waarbij het produkt weer berekend wordt in GF(2A8). Alle korrekte 20 kodewoorden zijn een veelvoud van dit generatorpolynoom en hebben dezelfde nulpunten als het generatorpolynoom.
Fig.7 geeft een globaal stroomdiagram van de foutkorrektiebewerking. In blok 100 wordt de operatie gestart, en aan het eind daarvan is het 25 gehele kodewoord, bijvoorbeeld in een voldoende groot RAM-geheugen, beschikbaar ter bewerking in de schakeling van Fig.5. In blok 102 wordt middels vermenigvuldiging met de pariteitskontrolematrix [JJ] het syndroom bepaald, dit zijn dus in de voorkeursuitvoering (n-k)*20 symbolen. Deze bewerking gebeurt in de schakeling van Fig.5 en in het 30 betreffende Galois-lichaam.
De verdere bewerkingen worden uitgevoerd in de schakeling van Fig.6. Allereerst wordt in blok 104 de sleutelvergelijking opgelost; deze heeft de vorm: 35 [1+S(z)] * sigma(z) # omega(z) mod z~(2t+l), vergelijk het boek "Algebraic Coding Theory" door Erwin P.Berlekamp, 8302214 FHN 10.710 14
McOrawHill, p. 178 ff. Het is bewezen dat voor elk korrigeerbaar foutenpatroon de polynomen sigma(z) en omega(z) te vinden zijn, de grootheid S(z) is daarbij het door de syndroomsymbolen gevormde polynoom.
5
De grootheid sigma(z) is het foutlokatorpolynoom. De grootheid omega(z) is het foutevaluatorpolynoom; beide polynomen moeten voor het bepalen van de korrektie berekend worden. In de notatie van Berlekamp betekent het verbindend symbool # "is congruent met", dat wil zeggen: er bestaat 10 een polynoom C(z), zodat het linkerlid van de expressie gelijk is aan C(z) * zA(2t+l) + omega(z). Er wordt nog op gewezen dat de term "1 + S(z)" in de sleutelvergelijking vervangen mag worden door "S(z)M: als voor z een waarde wordt ingevuld, waarvoor een fout is opgetreden heeft het lokatorpolynoom ook de waarde gelijk nul.
•15
Vervolgens wordt een foutenumerator L gepostuleerd: deze geeft een lopende schatting van de graad van het foutlokatorpolynoom. Als deze graad gelijk is aan nul, 'zijn ook alle syndroomsymbolen zelf gelijk aan nul en wordt het kodewoord als foutloos beschouwd, dit is in het 20 stroomdiagram niet apart aangegeven: het systeem kan dan direkt naar blok 122 gaan: stop.
De strategie van het oplossen van de fouten is nu als volgt: er wordt gezocht naar het eenvoudigste foutpatroon (kleinste aantal gestoorde 25 symbolen), dat niet strijdig is met het gevonden syndroompatroon; de idee hierachter is dat een kleiner aantal fouten vrijwel steeds waarschijnlijker is dan een groter aantal fouten. Het syndroompolynoom wordt dan gerepresenteerd als het quotient van twee andere polynomen van zo eenvoudig mogelijke vorm, met name: van zo laag mogelijke graad. Als 30 er nu een oplossing wordt gevonden met een bepaald aantal symboolfouten, wordt niet uitputtend, doch slechts met inachtname van een beperkt aantal verdere syndroomsymbolen geprobeerd, of er een verdere oplossing te vinden is. Op zichzelf is het in principe veelal mogelijk om een kodewoord met een gecompliceerder foutpatroon te vinden dat aan de 35 zelfde syndroomconfiguratie voldoet, maar de kans op zo'n fout is op zichzelf erg klein, en bovendien is de kans klein dat het dan gepostuleerde aantal fouten dan nog ligt in het korrigeerbare waardebereik. Tenslotte wordt in blok 104 de fouthulpenumerator LH
3302214 PHN 10.710 15 gelijk aan de foutenumerator L. Na afloop van blok 104 is dan het aantal symboolfouten bekend.
In blok 106 wordt gedetekteerd of het aantal fouten gelijk is aan "1" 5 is. Als dit zo is, worden in blok 124 de foutlokator en de foutwaarde van het ene gestoorde symbool direkt bepaald. Als de uitkomst in blok 106 negatief is (N), dan wordt in blok 108 gedetekteerd of er twee symboolfouten waren opgetreden. Als het resultaat van deze detektie positief is (Y), dan kunnen in blok 126 door middel van het oplossen van 10 een kwadratische vergelijking (zie Fig.10) de plaatsen, en middels de waarden der syndroonsymbolen, de waarden van de twee stoorsynbolen worden gevonden (blok 126). Als de foutenumerator groter is dan twee, kan dit volgens de getoonde methode niet direkt plaatsvinden en moet eerst in blok 110 de foutevaluator bepaald worden, hetgeen uitgebreider 15 beschreven is aan de hand van Fig.11. Als blok 110 is doorlopen wordt in blok 112 gedetekteerd, of de foutenumerator L de waarde "drie” heeft. Als deze detektie een positief resultaat levert(Y), gaat het systeem naar blok 118. Als de verifikatie een negatief resultaat levert(N), wordt in blok 114 een zoekcyclus volgens Chien uitgevoerd. Als daarbij 20 een gestoord symbool wordt gevonden, wordt het betreffende nulpunt uitgedeeld, waardoor de graad van de foutlokator met een eenheid wordt verlaagd. Ook de hulpfoutenumerator wordt dan gedecrementeerd. Deze zoekcyclus wordt nader beschreven aan de hand van Fig. 12. De hulpfoutenumerator geeft het aantal nog in de foutlokator meewerkende de 25 fouten. In blok 116 wordt gedetekteerd of de fouthulpenumerator nu de waarde "drie" heeft. Zolang het resultaat negatief blijft, gaat het systeem (telkens) terug naar blok 114 om een verdere zoekcyclus volgens Chien uit te voeren. Als er bijvoorbeeld tien gestoorde symbolen zijn, moet het blok 114 zeven maal worden doorlopen. Als in blok 116 de 30 verifikatie een positief resultaat levert, wordt in blok 118 de resterende kubische vergelijking opgelost. Tenslotte worden, gaande vanuit blok 118, In blok 120 de eigenlijke stoorsymboolwaarden gevonden. Voor de gevallen met 1 of 2 fouten was dit al in blokken 124,126 geeffektueerd. In blok 122 is het gehele kodewoord gekorrigeerd, en kan 35 onder omstandigheden een nieuwe reeks syndroomsymbolen uit de buffer opgehaald, wanneer het zojuist behandelde kodewoord niet het laatste te behandelen kodewoord was.
In de schakeling van Fig.6 wordt niet de eigenlijke korrektie uitgevoerd 8302214 FHN 10.710 16 maar worden alleen de foutlokaties XI en foutwaardes Yi aan het systeem afgegeven voor verder gebruik. Het vereenvoudigde stroomdiagram van Fig.7 bevat niet de blokken die detekteren of een foutkorrektie onmogelijk is geworden. Het blijkt dat door het goeddeels vermijden van 5 de bewerkingen in blok 114 een snelwerkend proces is gecreeerd. Er wordt namelijk steeds de waarde LH * 3 gekontroleerd en in de meeste gevallen zal dit in een van de eerste doorgangen door dit blok al positief beantwoord worden. Het is mogelijk om het getoonde stroomdiagram te wijzigen. Daarbij moet steeds in aanmerking genomen worden dat de 10 zoekcycli volgens Chien relatief lang duren en dus een groot beslag op de verwerkingstijd zouden kunnen hebben. Maar op zichzelf zou men in blok 116 kunnen testen of de fouthulpenumerator gelijk aan 2 of aan 1 is, zodat daarna slechts een tweedegraads, respektievelijk eerstegraads vergelijking op te lossen staat. Ook is het in principe mogelijk om een 15 vierde of hogeregraads foutlokator "direkt" op te lossen, zonder de zoekcycli volgens Chien, maar ook die procedure is gecompliceerd. Spins zal het van de beschikbare microcomputer afhangen, respektievelijk de eigenschappen van het kanaal dat de fouten veroorzaakt, welk waardebereik gekozen wordt.
20
DE OPLOSSING VAN DE SLEtJTELVFRG FLUKING
Figs.8b,9 geven een gedetailleerd stroomdiagram van het oplossen van de de sleutelvergelijking (blok 104 in Fig.7). Daarbij geeft Fig.Sa het 25 principe van het oplossen van een matrixvergelijking volgens de zogenoemde regel van Cramer. Als gegeven is dat het produkt van een vierkante matrix met η * n elementen met een onbekende vektor gelijk is aan een bekende vektor, beide van n elementen, dan kunnen de elementen xl...xn van de onbekende vektor gevonden worden door telkens de bekende 30 vektor te substitueren in de kolom van de matrix met hetzelfde rangnummer als de onbekende vektorkomponent en van die gewijzigde matrix de determinant te delen door de determinant van de ongemodificeerde matrix. Een mogelijke oplossingsprocedure is dat dit dan eerst voor de waarde n“lQ uitgevoerd zou moeten worden, hetgeen een zeer uitgebreide 35 berekening is. Bovendien zou deze dan herhaald moeten worden voor n=9, voor n=8, net zolang tot de oplossing gevonden wordt. Daarbij levert het starten met n=Q en de berekening steeds voor hogere waarden van n te herhalen, geen tijdsbesparing omdat dan ook steeds tot de waarde n=10 8302214 FHN 10.710 17 doorgegaan zou moeten worden, zodat de procedure nog langduriger zou worden. Immers, alleen de hoogste waarde van n die een oplossing geeft, is de juiste. Derhalve is deze geschetste oplossingsprocedure, te betitelen als de "brute force" methode, niet gekozen. De oplossing 5 volgens de beschrijving gaat weliswaar uit van de waarde n=0, maar bevat eert inherente kontrole op de juistheid, zodat met zeer grote waarschijnlijheid het aantal bepaalde fouten oo het juiste -aantal is. Bovendien worden steeds eerder bereende deelresultaten meegebruikt in later uit te voeren berekeningen, zodat een extra tijdsbesparing plaats 10 vindt.
Daarbij vertegenwoordigt het oplossen van de sleutelvergelijking in het stroomdiagram van Fig.7 slechts een enkel bewerkingsblok en zijn dus veelal nog verdere bewerkingen nodig. Bij het oplossing van de sleutelvergelijking zal in de te beschrijven methode telkens een slechts 15 klein aantal fouten voorondersteld worden en dan de resultaten van die veronderstelling getest worden aan de werkelijke syndroomkonfiguratie. Het name wanneer het aantal werkelijk gestoorde symbolen in het kodewoord klein is biedt de getoonde methode een snelle oplossing doordat slechts weinig bewerkingen mogelijk zijn. Daardoor kan de 20 dekodering gebeuren met de eerder getoonde microcomputer, terwijl de bewerking op het niveau van de kodewoorden toch vrijwel steeds in echtetijdsbedrijf ten opzichte van de ontvangst van de kodewoorden geefektueerd kan worden.
25 Fig.8a geeft eerst nogmaals de geformaliseerde sleutelvergelijking S(z) * signa(z) * omega(z). Daaronder is de sleutelvergelijking in elementen uitgeschreven voor het geval van tien symboolfouten; de linkse matrix bestaat uit 10*10 elementen, waarin alle syndroomsymbolen gerepresenteerd zijn. De verdere kolommen zijn twee vektoren van elk 30 tien elementen, waarbij de rechtse vektor weer uit syndroomsymbolen is opgebouwd. Voor een kleiner aantal opgetreden symboolfouten is de determinant van de matrix echter gelijk aan nul, zodat geen oplossing gevonden wordt. Dan moet een kleinere matrix worden genomen.
Daaronder is het geval voor drie fouten gegeven. In feite moet de 35 grootste matrix gevonden worden, waarvan de determinant nog juist niet gelijk is aan nul. Onderin de figuur staat de in elementen uitgeschreven vergelijking om de tweede coefficient van sigma(z) te bepalen, in het geval er inderdaad tien symboolfouten zijn. Volgens de beschreven 8302214 EHN 10.710 18 berekeningsmethode wordt echter uitgegaan van een zo klein mogelijke matrix voor het berekenen van sigma(z), terwijl daarboven een aantal kontrolestappen worden uitgevoerd. Daarbij wordt ervan uitgegaan dat de sleutelvergelijking ook een deel van de verdere test beschrijft. Om van 5 een kleinere matrix naar een grotere te gaan, worden de reeds gevonden resultaten gebruikt, zodat alleen matrix-inkrementerende stappen nodig zijn, om op de grotere afmeting weer het oplossen van de matrixvergelijking te proberen. Zo wordt telkens slechts een inkrement van de regel van Cramer uitgevoerd.
10
Terugkerend naar Fig.8b, begint De procedure in blok 130, aan het eind daarvan zijn alle syndroomsymbolen beschikbaar, en kan dus ook de sleutelvergelijking worden geformuleerd. Eerst wordt nu in blok 132 het aktuele syndroomnumraer N gelijk aan nul gemaakt, dit is het aantal voor 15 het realiseren van de regel van Cramer tot dusver gebruikte syndroomsymbolen. Dit aantal is (dus) gelijk aan tweemaal het tot dusver veronderstelde aantal symboolfouten. Dit laatste aantal heet "L", en dat is ook de graad van sigma(z). Drie grootheden worden gelijk aan 1 gemaakt, namelijk de nulde coefficient sigraaO van sigma(z), een daarbij 20 behorende hulpgrootheid olsigmaO en een hulpgrootheid oldeltal bij 'de diskrepantiegrootheid deltal; de hulpgrootheden dienen om de bijbehorende "echte" grootheden te redden. Vervolgens wordt in blok 134 getest of de hele rij syndroomsymbolen in rekening is gebracht. Als dat zo is, is de procedure volgens de Figs.Rb,9 in elk geval beëindigd en 25 gaat het systeem naar blok 106 in Fig.7 (eigenlijk naar blok 110). Als in blok 134 de test negatief uitvalt, gaat het systeem naar blok 136. Daarin wordt de eerste diskrepantie deltal berekend, als een in-produkt van een deel van de aktuele syndroomvektor en de getransponeerde aktuele foutlokator: deze diskrepantie is dus een scalaire grootheid. Bij eerste 30 passage is de diskrepantie dus gelijk aan het eerste syndroomsymbool. De aktuele syndroomvektor is dus de eerstvolgende rij van de matrix in Fig.Ra bij de eerstvolgende inkrementatiestap. De aktuele foutlokator is daarbij de tot dusverre geldende foutlokatorvektor, inclusief de coefficient sigmaO. Bij de tweede passage bevatten de faktoren twee 35 termen, en zo stijgend tot een maximumwaarde van negen.
In blok 138 wordt getest of de diskrepantie deltal gelijk is aan nul. Als dat niet zo is(N), gaat het systeem naar blok 140. In blok 140 wordt 8302214 PHN 10.710 19 het nieuwe polynoom sigma(z) bepaald, dat bij elke doorgang een extra term krijgt, nok de oude koefficienten ondergaan daarbij een verandering. Dit gebeurt middels de bij Fig.fia besproken regel van Cramer en wel met een matrix/vektor-afmeting die dan telkens een eenheid 5 groter wordt. Zo wordt daarin eerst de tweede diskrepantie delta2 op dezelfde manier berekend als de eerste diskrepantie, maar over een reeks syndroomsymbolen die over 1 symbool verschoven is. Voorts wordt de foutenumerator L geinkrementeerd, en een hulpvektor capdelta(l. .L) wordt bepaald, waarvan het aantal componenten gelijk is aan de waarde van de 10 foutenumerator. De eerste component wordt uit de eerste coefficient van de aktuele foutlokator bepaald, onder medeinachtname van de diskrepanties. Voor rangnummers i groter dan 1 wordt de component capdelta(i) bepaald uit de aktuele component van sigma(z) met naastlagere rang en de in een eerdere berekeningsslag geredde component 15 van sigma(z) met tweedslagere rang. Tenslotte worden de aktuele componenten van sigma(z) gered, en dan bijgewerkt met de berekende componenten van capdelta van bijbehorende rang en wordt het aantal in aanmerking genomen syndroomsymbolen bijgewerkt. Tenslotte wordt de waarde van deltal gered. Op deze manier worden de determinanten van de 20 regel van Cramer telkens met een rij+kolom aangevuld, zonder dat ze in hun geheel opnieuw berekend zouden moeten worden. Daarna gaat het systeem terug naar blok 134.
Als de test in blok 138 positief is(Y), gaat het systeem naar blok 142. 25 Daarin wordt het lopend syndroomnummer (= het aantal in aanmerking genomen syndroomsymbolen) geinkrementeerd. Dit komt erop neer dat een "te groot" aantal symboolfouten wordt verondersteld, die alleen als de positieve uitkomst in blok 138 voorbarig was korresponderen met echte symboolfouten. Als de uitkomst in blok 138 gerechtvaardigd was zijn de 30 extra symboolfouten slechts pseudo-symboolfouten. Voorts wordt nu de eerste diskrepantie deltal weer berekend: in feite is dit nu dezelfde grootheid als de tweede diskrepantie in blok 140. In blok 144 wordt getest of deze eerste diskrepantie nul is. Als het resultaat positief is gaat het systeem naar blok 146, waar getest wordt of het lopend 35 syndroomnummer groter is dan of gelijk aan een bovengrens Nmax. Deze grootheid is in het systeem voor elke waarde van L, de schatting van het aantal symboolfouten, gegeven; hij is steeds groter dan het aantal alsdan in blok 136 in rekening gebrachte syndroomsymbolen. Voor vele 8302214 PHN 10.710 20 waarden van L is dit aantal Nmax kleiner dan 20, het is bijvoorbeeld een vast aantal hoger dan het aktuele aantal N in blok 136, bijvoorbeeld gelijk aan 2L+4; de keuze wordt bepaald door het soort verwachte fouten, en de toegelaten kans op een onjuiste detektie. De waarde van Nmax kan 5 zowel even als oneven zijn. Hoe groter de waarde van Nmax gekozen wordt, des te kleiner de kans dat een veronderstelde waarde van de foutenumerator niet juist is; anderzijds wordt door het slechts enkele malen doorlopen van deze laatste lus op rekentijd uitgespaard. Zolang de test in blok 146 negatief uitvalt gaat het systeem telkens terug naar 10 blok 142; daarbij wordt dan steeds de eerstvolgende diskrepantie bepaald, waarbij dus het rangnummer van de in aanmerking genomen syndroomsymbolen mut een eenheid wordt opgehoogd; hun aantal blijft steeds gelijk aan (L+l).
Als de bovengrens voor Nmax bereikt is, gaat het systeem van blok 146 15 direkt naar blok 106 in Fig.7. Als het resultaat in blok 144 negatief is, gaat het systeem naar de ingang van Fig.9. Daarmee is Fig.Sb beschreven.
Het stroomdiagram van Fig.9 geeft het tweede deel van het oplossen van 20 de sleutelvergelijking en wordt bereikt van uit blok 144 in Fig.Rb; de figuur heeft een enkele ingang in blok 148. Men kan het binnengaan van dit stroomdiagram interpreteren als een mislukking van werkwijze in Fig.8b; in de praktijk zal deze mislukking slechts bij bijzondere combinaties van symboolfouten optreden. Op zichzelf zijn de in Fig.9 25 getoonde maatregelen bekend uit het boek van Erwin R.Berlekamp, op cit., paragraaf 7.4, blz.184. De maatregelen volgens Fig.8b leveren daarbij veelal een versnelde bewerking. Verscheidene behandelingsblokken vertonen overeenkomstige operaties met die in blok 140 in Fig.8b. In blok 148 wordt de waarde van de foutenumerator L gered in een 30 hulpvariabele LO, en vervolgens wordt de waarde van L herberekend. Bij het verlaten van blok 140 in Fig.8b gold N = 2L, maar in blok 142 was de waarde van N 1 of meermaals geinkrementeerd. De nieuwe waarde van de foutenumerator wordt daarmee groter dan de oude. In blok 150 wordt gedetekteerd of de waarde van L groter is dan 10. Als dat zo is gaat het 35 systeem naar blok 152 en wordt gesignaleerd dat het kodewoord niet dekodeerbaar is. Eventueel kan nog een poging gedaan worden om de informatie op andere manier te rekonstrueren, (bijvoorbeeld door het hele kodewoord nogmaals op te vragen bij de gegevensbron), maar dit 8302214 EHN 10.710 21 soort technieken zijn elders genoegzaam beschreven.
Als het aantal gepostuleerde fouten L nog binnen de gestelde grenzen ligt, worden in blok 154 een reeks capdelta grootheden bepaald, namelijk voor alle toelaatbare waarden van de lopende grootheid i. Daarbuiten 5 worden alle capdelta grootheden op nul gesteld. Voorts worden alle bekende coëfficiënten van de foutlokator sigma(z) gered in corresponderende hulpvariabelen. De eerste diskrepantie wordt gered in de grootheid oldeltal en alle coëfficiënten van de foutlokator worden bijgewerkt met de bijbehorende grootheden capdelta, zoals in blok 140.
10
In blok 156 wordt een hulpgrootheid J ingevoerd, die het aantal incrementeringen van de regel van Cramer aangeeft, en daarmee het aantal extra in rekening te brengen syndroomsymbolen. De de blokken 158,160 vormen een lus. Daarin worden eerst de grootheden J,N geincreraenteerd, 15 de diskrepanties worden herberekend, de relevante capdelta's worden bijgewerkt, respektievelijk op nul gesteld, en de coëfficiënten van de foutlokator worden bijgewerkt. Tenslotte wordt gedetekteerd of de grootheid J nog binnen de gestelde grenzen ligt. Zolang dat zo is, gaat het systeem de lus weer door. Als J * L - LO, is de lus een voldoende 20 aantal malen doorlopen. Dan gaat het systeem naar blok 162, waarin de reeks in blok 154 geredde coëfficiënten van de foutlokator sigma(z) over 1 of meer indexplaatsen wordt verschoven ten opzichte van de, geredde waarde van L, terwijl de overige coëfficiënten op nul gesteld worden. Tenslotte wordt het aantal in aanmerking genomen syndroomsymbolen 25 geinkrementeerd en gaat het systeem terug naar blok 134 in Fig.8b. Daarmee is Fig.9 beschreven, en ook het oplossen van de sleutelvergelijking als geheel. De enige uitgang naast blok 152 leidt naar blok 106 in Fig.7. De blokken 106,108 en 124 in Fig.7 worden niet uitgedetailleerd.
30
Fig.10 geeft een detaillering van blok 126 in Fig.7, om twee foutsymbolen te bepalen. De enige ingang is naar blok 164. Daarin wordt getest of de coefficient sigmal van de foutlokator sigma de waarde nul heeft. Dat zou betekenen dat de fouten samenvallen, en dat is wegens de 35 gekozen definitie van "fout” niet mogelijk. Als het antwoord in blok 164 positief is, wordt het kodewoord in blok 166 als ondekodeerbaar beschouwd. Blok 166 komt dus overeen met blok 152 in Fig.9.
Fen andere, en steeds realiseerbare aanpak zou zijn om te springen en 8302214 PHN 10.710 22 terug te gaan naar blok 146 in Fig.Sb, zodat een aantal additionele diskrepanties kan worden getest. Als in blok 164 het resultaat negatief is wordt in blok 168 een eerste protofoutpositie Chil bepaald, hetgeen met een tabel gebeurt; deze tabel is als gemeld opgeslagen in element 5 368 in Fig.6. De protofoutpositie heeft een relatie tot de echte foutpositie, maar de foutpositie kan op dit punt in de procedure nog niet worden bepaald. In blok 170 wordt de spoor(trace)-grootheid van de betreffende coefficient bepaald; dit is een op zichzelf conventionele operatie. Als deze trace ongelijk aan nul is, gaat het systeem naar blok 10 172 en wordt het kodewoord als ondekodeerbaar beschouwd. Ook in dit geval mag de sprong naar blok 146 in Fig.8b worden ondernomen; er moet dan nog een maatregel genomen worden opdat het systeem niet oneindig lang in een zo te vormen lus kan verwijlen. Als de test in blok 170 positief is, kan de fout worden bepaald.
15 Eerst worden in blok 174 de definitieve foutposities bepaald door incrementeren in QF(2~8) van de eerste protofoutpositie Chil en vermenlngvuldigen met de coefficient sigmal van de foutlokator, sigmal,2. Als nu bijvoorbeeld Chil « a*i, dan is het kodesymbool met rangnummer (i) fout. In blok 176 wordt eerst de voorlopige foutwaarde I 20 bepaald en daaruit de eigenlijke foutwaarden middels coefficient sigmal en het syndroomsymbool S0. Blok 122 is in Fig.7 besproken. In feite vertegenwoordigt het blok 176 de blokken 110 en 120 voor dit aantal symboolfouten.
25 Voor een groter aantal symboolfouten wordt eerst de foutevaluator omega(z) bepaald, hetgeen in Fig.11 is getoond, vergelijk blok 110 in Fig.7. De foutevaluator wordt bepaald als het produkt van het syndroompolynoom S(z) en het foutlokatorpolynoom sigma(z), zodat omegal = Sl*sigroaO + S0*sigmal; 30 omega2 = S2*sigma0 + Sl*sigmal + S0*sigma2, enzovoorts. Het proces bezit een enkele ingang in blok 178; daarin wordt de hulpgrootheid I op nul gesteld. In blok 180 wordt een tweede hulpgrootheid J op nul gesteld, evenals 1 voorlopige coefficient van de foutevaluator. De grootheden I en J zijn rangnummers en hebben geen fysische betekenins. De blokken 35 182,184 vormen een lus, waarin telkens 1 coefficient van het foutevaluatorpolynoom wordt bijgewerkt en de hulpgrootheid J wordt opgehoogd. Als J groter wordt dan I is de betreffende coefficient geheel bepaald en wordt in blok 186 de waarde van I geincrementeerd om de 8302214 ms 10.710 23 volgende coefficient van het fout-evaluatorpolynoom ter hand te nemen. Als de waardes van I en L gelijk zijn is het gehele polynoon bepaald en gaat het systeem naar blok 112 in Fig.7.
5 Fig.12 geeft een stroomdiagram van het oplossen van de kubische vergelijking, vergelijk blok 118 in Fig.7. Op zichzelf is het oplossen van tweede en derde graads-vergelijkingen in een Galois-lichaam beschreven in een artikel door H.T.Chien, IEEE Transactions on Information Theory, mrt. I960, p.329ff. Dit artikel geeft ook de 10 oplossingen voor vergelijkingen van vierde en vijfde graad, maar in de beschreven voorkeursuitvoering worden deze oplossingen niet gebruikt.
De figuur heeft een enkele ingang in blok 190, dewelke bereikt wordt vanuit 1 der blokken 112,116 in Fig.7; deze laatste blokken zijn wegens hun interne eenvoud niet nader beschreven. Eerst wordt in blok 190 15 getest op de tweede en derde coefficient sigma(l,2) van het foutlokatorpolynoom. Als deze test positief is gaat het systeem naar blok 192. Daar worden achtereenvolgens een hulpgrootheid I en een hulpgrootheid J1 bepaald, dit zijn elementen van een Galois veld. Deze laatste bepaling gebeurt weer met een tabel (element 368). In blok 194 20 wordt getest of de grootheid I gelijk is aan een macht (3n) van het primitieve element a van het Galois-lichaam. Als dit niet zo is gaat het systeem naar blok 198 en wordt het kodewoord als ondekodeerbaar beschouwd. Als de test in blok 194 positief is gaat het systeem naar blok 196 en worden de drie verschillende voorlopige foutlokaties 25 Chil,2,3 voorlopig vastgesteld. Daarna gaat het systeem verder naar blok 206.
Als de test in blok 190 negatief uitvalt gaat het systeem naar blok 200. Daar wordt als aangegeven een waarde voor de huplgrootheid J berekend, 30 en daaruit middels een door "D" aangegeven funktievertaaltabel een waarde voor de hulpgrootheid I berekend. Deze vertaaltabel is weer opgeslagen in element 368 in Fig.6. In blok 202 wordt daarop getest of dit een zogenoemde kringrepresentant (orbital representative) betreft. Deze representatie wordt in het geciteerde artikel nader geexpliceerd. 35 Als dat niet zo is, gaat het systeem naar blok 198 en wordt het kodewoord als onkorrigerbaar beschouwd. Als de test in blok 202 positief uitvalt, gaat het systeem naar blok 204. Eerst wordt met de eerder besproken C-tabel een eerste hulpgrootheis nul bepaald en daaruit een 8302214 PEN 10.710 24 tweede hulpgrootheid nu2. Vervolgens wordt de eerder besproken (blok 200) hulpgrootheid I bijgewerkt.
Tenslotte worden in dit blok de voorlopige posities van de drie fouten bepaald. Daarna gaat het systeem naar blok 206, dat ook bereikt werd 5 vanuit blok 196. In blok 206 worden de voorlopige posities van de drie fouten bijgewerkt middels de tweede coefficient van de foutlokator sigma(z) om de definitieve posities te krijgen en gaat het systeem naar blok 208. In blok 208 wordt getest of de waarde van de foutenumerator de waarde drie heeft, waarmee getest wordt of voor het bereiken van dit 10 punt van de behandeling een zoek-cyclus volgens Chien had plaatsgevonden. De fouten zijn nu alle bekend en dan gaat het systeem naar blok 210. Daarin wordt^ eerst de hulpgrootheid F bepaald. Daarna worden de foutwaarden Y(l,2,3) bepaald met behulp van de koefficienten omega(l,2,3) van de eerder bepaalde foutevaluator en de aktuele 15 foutposities x( 1,2,3). Daarna is het betreffende kodewoord geheel behandeld. In feite vormt het blok 210 een snellere versie van de behandeling in blok 120 voor drie fouten.
Een eerste deel van Fig,13 geeft de eigenlijke zoekoperatie volgens 20 Chien. Het ingangsblok van dit gedeelte is blok 218 en wordt vanuit blok 188 in Fig.11, onder voorwaarde dat de graad van de foutlokator sigma(z) groter is dan 3. Als dat niet zo is gaat daar het systeem naar blok 190 in Fig.12. Eerst wordt nu de hulpfoutenumerator gelijk aan L gemaakt en wordt het aantal geteste kodesymbolen N op nul gesteld. Daarna wordt de 25 grootheid sum bepaald. Er geldt namelijk dat de inversen van de wortels van de foutlokator sigma(z) de lokaties van de fouten geven; op dezelfde manier geven echter de wortels van de foutlokator met achterstevorengeschikte coefficientenreeks (inverse polynomial) ook de foutlokaties. Na deze bepaling in blok 220 wordt in blok 224 de waarde 30 van de grootheid sum getest. Zolang als de waarde van deze grootheid sum blijft verschillen van nul wordt een lus doorlopen die bestaat uit de blokken 224,226,228,220. Daarin wordt telkens het aantal geteste kodesymbolen geinkrementeerd en de grootheid sum herberekend. Alleen als de waarde van N de- toegestane lengte van de kodewoorden te boven gaat, 35 wordt het betreffende kodewoord in blok 216 als ondekodeerbaar beschouwd. Als bij het doorlopen van de lus,(hetgeen onder omstandigheden wel ongeveer 100 maal kan gebeuren, namelijk gelijk aan de lengte van het kodewoord in symbolen, verminderd met 3) de grootheid 8302214 PHN 10.710 25 sura de waarde nul krijgt is daarmee in zo een zoekcyclus volgens Chien een foutsymbool gevonden en kan de betreffende wortel van de foutlokator worden uitgedeeld.
Eerst wordt in blok 232 de foutlokator van het betreffende stoorsymbool 5 vastgelegd, daarna wordt de fouthulpenumerator met een eenheid verlaagd, en tenslotte wordt de graad van de foutlokator door uitdelen verlaagd. In blok 234 wordt gedetekteerd of de fouthulpenunerator de waarde 3 heeft. Zolang deze test negatief uitvalt gaat het systeem (telkens) terug naar blok 226; het blijkt dat de stoorsymbolen volgens oplopende 10 rangnummering worden gevonden. Op zich is een anders geprogrammeerde volgorde evengoed. Als de test in blok' 234 positief uitvalt gaat het systeem naar blok 190 in Fig.12. Als alle foutlokaties zijn gevonden worden in blok 236 de stoorsymbolen bepaald. Daarna is bet kodewoord geheel behandeld. In feite realiseert het blok 236 de handelingen in 15 blok 120 voor een foutenaantal van vier of meer.
Als anderzijds in blok 208 in Fig.12 de test negatief uitvalt zijn er nog meer dan drie fouten in het spel geweest en gaat het systeem naar blok 212 in Fig.13. Dit betekent dat op dat moment alle fouten zijn 20 gevonden, de laatste drie in het juist daarvoor doorlopen gedeelte van Fig.12, maar dat blok 210 niet van toepassing is. Alle fouten moeten nu uitgewerkt worden. ïïet ingangsblok 212 is een andere ingang van Fig.13 dan die welke vanuit de blokken 134, respektievelijk 146 in Fig.8 werd gebruikt. In blok 212 wordt getest of de eerste drie foutlokaties elk 25 groter zijn dan de vierde. Als de test positief is wordt in blok 214 getest of alle drie foutlokaties binnen de beschouwde maximumlengte van een kodewoord van n kodesymbolen (bijvoorbeeld in een uitvoeringsvoorbeeld 108 symbolen) liggen. Als een van beide tests in de blokken 212,214 negatief uitvalt, gaat het systeem naar blok 216 en 30 wordt het betreffende kodewoord als ondekodeerbaar beschouwd. Als beide tests positief uitvallen, gaat het systeem naar blok 236 om de foutwaarden voor alle gevonden symboolfouten (minstens vier en hoogstens tien in het uitvoeringsvoorbeeld) te berekenen. Daar na gaat het systeem naar het blok 122. en is de behandeling van het betreffende kodewoord 35 voltooid.
8302214

Claims (8)

1. Dekodeersysteem voor het dekoderen van kodewoorden die middels een Reed-Solomoncode tegen meerdere symboolfouten per kodewoord beschermd zijn, welk dekodeersysteem bevat opnemermiddelen voor het sekwentieel ontvangen van de kodesymholen om daaruit een kodewoord te vormen, eerste 5 berekeningsmiddelen (102) om uit het kodewoord middels de pariteitskontrolematrix [H] van de kode een reeks te bepalen van syndroomsymbolen, door de eerste berekeningsmiddelen gevoede tweede berekeningsmiddelen (104) voor het oplossen van de sleutelvergelijking om de foutlokator sigroa(z) en de foutevaluator omega(z) te bekomen, door 10 de tweede berekeningsmiddelen gevoede derde berekeningsmiddelen om middels de nulpunten van de foutlokator de posities van eventueel gestoorde kodesymbolen ce bekomen, en door de derde berekeningsmiddelen gevoede vierde berekeningsmiddelen om middels genoemde nulpunten de bij gestoorde kodesymbolen behorende symboolfouten te bepalen, ter 15 presentering van de middels foutwaarde(n) en positiegegeven(s) van symboolfouten korrigeerbare kodesymbolen op een gebruikersuitgang, met het kenmerk dat de tweede berekeningsmiddelen vermenigvuldlgingsmiddelen bevatten om telkens, voor een voorondersteld aantal (L) symboolfouten per kodewoord, gaande vanaf een foutloos (L=0) kodewoord, middels in 20 acht name van 2L syndroomsymbolen en oplossen van de daartoe beperkte gereduceerde sleutelvergelijking volgens de regel van Cramer, doch bij van nul verschillende diskrepantie deltal middels invoering van twee verdere syndroomsymbolen in de aktuele gereduceerde sleutelvergelijking en matrix-inkrementerende bewerkingen een verdere, minder gereduceerde 25 sleutelvergelijking op te lossen (140), om bij aan nul gelijke diskrepantie deltal (138) een door de waarde van het alsdan vooronderstelde aantal symboolfouten bepaalde aantal (Nmax) dislcrepanties deltal met achtereenvolgens opgehoogde aantallen vooronderstelde pseudo-symboolfouten te bepalen (142) doch bij een dan 30 alsnog van nul verschillende diskrepantie deltal voor.alle onbehandelde aantallen tot het aktuele opgehoogde aantal symboolfouten de aanvullingen van de sleutelvergelijking aan te brengen(148,154-162), en deze aangevulde sleutelvergelijking als voorvermeld op te lossen.
2. Dekodeersysteem volgens conclusie 1, met het kenmerk, dat de tweede berekeningsmiddelen voorzien zijn van eerste detektiemiddelen om een 8302214 4 PHN 10.710 27 gebleken aantal symboolfouten van ten hoogste twee te detekteren (106,108) en daarmee middels direkt oplossen van een foutlokatorvergelijking van ten hoogste de tweede graad direkt de fouten te lokaliseren en te waarderen (124,126), en daarentegen pas bij een 5 hoger aantal gedetekteerde symboolfouten de foutevaluator te berekenen (110).
3 .Delcodeersysteem volgens conclusie 2, met het kenmerk dat de derde berekeningsmiddelen voorzien zijn van tweede detektiemiddelen om een 10 aktueel aantal van drie symboolfouten te detekteren en alsdan middels oplossen van een kubische foutlokatorvergelijking te fouten te lokaliseren en deze vervolgens te waarderen, doch bij een groter gedekteerd aantal symboolfouten een zoekcyclus volgens Chien langsheen de rij kodesymbolen te implementeren totdat een symboolfout wordt 15 gelokaliseerd en alsdan de door die symboolfout gerepresenteerde faktor uit de foutlokator uit te delen (114), waardoor het aktueel aantal resterende symboolfouten met een eenheid wordt gereduceerd, en dat bij het bereiken van een voorafbepaald aantal aktuele resterende symboolfouten de foutlokatorvergelijking direkt wordt opgelost (118). 20
4. Dekodeersysteem volgens conclusie 1,2 of 3, met het kenmerk, dat genoemde eerste berekeningsmiddelen voorzien zijn van een lus met daarin in serie geschakeld een EXCLUSIEF-OF-schakeling (306,308) voor het ontvangen van de kodesymbolen, een buffer (312,314) voor het opslaan van 25 de bij een kodewoord gevormde (voorlopige) syndroomsymbolen, en een alleen-lees-geheugen (320,322,324) voor het opslaan van de vermenigvuldigingstabellen voor de pariteitskontrolematrix, waarvan een uitgang is teruggekoppeld naar een verdere ingang van de EXCLUSIEF-OF-schakeling, terwijl een verdere uitgang (316) van de buffer 30 met de tweede berekeningsmiddelen zijn verbonden om daaraan bij volledige behandeling van het betreffende kodewoord de rij definitieve syndroomsymbolen toe te voeren.
5. Dekodeersysteem volgens conclusie 4, met het kenmerk dat voor het 35 detekteren van het laatste kodesymhool van een kodewoord middels een daaraan aangehangen signaalbit een signaaldetektor aanwezig is, waarvan een uitgang de verdere uitgang aktiveert ter bereidstelling van de schakeling voor de ontvangst van een eerstvolgend kodewoord. 8302214 V % PEN 10.710 28
6. Dekodeersysteem volgens een der conclusies 1 tot en met .5, met het kenmerk, dat tweede, derde en vierde berekeningsmiddelen gerealiseerd zijn door een schakeling, die bevat: een ingangsbuffer (338,340) voor het opslaan van tenminste de volledige rij syndroomsymbolen die bij een 5 kodewoord werd gegenereerd, een microcomputer (352) , een uitgangsbuffer (348,350) voor het opslaan van een reeks foutlokaliserings- en foutwaarderingssymbolen die bij een volledige rij bij een kodewoord behorende reeks syndroomsymbolen werd gegenereerd, en een tussen deze onderdelen geschakelde verbindingsbus (344) , waarop tevens een 10 log/antilog-tabelinrichting (364,368) is aangesloten voor het uitvoeren van vermenigvuldigingsoperaties op de symbolen in het betreffende Galois-lichaam, alsmede een datageheugen (370) , waarvoor adressen leverbaar zijn door de microcomputer middels de bus, alsmede door een door een externe tijdgever inkrementeerbare teller (380,382). 15
7. Dekodeersysteem volgens conclusie 6, met het kenmerk dat mede op de bus is aangesloten een detektor (362) om middels detektie van een bij een kodewoord behorende en uitsluitend "nul"symbolen bevattende rij syndroomsymbolen buiten de microcomputer om een foutloos kodewoord te 20 detekteren en alsdan een eerstvolgende rij syndroomsymbolen op te roepen.
8. Uitleesinrichting voor optisch uitleesbare opslaglichamen welke voorzien is van een dekodeersysteem volgens een der conclusies 1 tot en 25 met 7, bevattende positioneermiddelen om zo een opslaglichaam op te nemen, aandrijfmiddelen om het opslaglichaam. met substantieel eenparige rotatiesnelheid om deszelfs rotatie-as aan te drijven, uitleesmiddelen om vanlangs een spoor op het opslaglichaam een bitreeks uit te lezen met serie-parallel-omzetting ter presentatie aan genoemde eerste 30 berekeningsmiddelen. 35 8302214
NL8302214A 1983-06-22 1983-06-22 Dekodeerinrichting voor het dekoderen van kodewoorden die bloksgewijs middels een reed-solomon-code tegen meerdere symboolfouten per blok beschermd zijn, en uitleesinrichting voor optisch uitleesbare opslaglichamen welke uitleesinrichting voorzien is van zo een dekodeerinrichting. NL8302214A (nl)

Priority Applications (9)

Application Number Priority Date Filing Date Title
NL8302214A NL8302214A (nl) 1983-06-22 1983-06-22 Dekodeerinrichting voor het dekoderen van kodewoorden die bloksgewijs middels een reed-solomon-code tegen meerdere symboolfouten per blok beschermd zijn, en uitleesinrichting voor optisch uitleesbare opslaglichamen welke uitleesinrichting voorzien is van zo een dekodeerinrichting.
DE19843422461 DE3422461A1 (de) 1983-06-22 1984-06-16 Decoder zum decodieren von codewoertern, die blockweise mittels eines reed-solomon-codes gegen mehrere symbolfehler je block geschuetzt sind, und leseanordnung mit einem derartigen decoder fuer optisch lesbare speicherkoerper
SE8403269A SE460243B (sv) 1983-06-22 1984-06-19 Foerfarande och apparat foer avkodning av kodord som aer blockvis skyddade mot upptraedande av ett flertal symbolfel inom ett block medelst en reed-solomon-kod
SE8403269D SE8403269L (sv) 1983-06-22 1984-06-19 Avkodare for avkodning av kodord som er blockvis skyddade mot upptredandet av ett flertal symbolfel inom ett block medelst en reed-solomon-kod samt avlesningsanordning for optiskt lesbara uppteckningsberare som innefatt
FR8409563A FR2549319B1 (fr) 1983-06-22 1984-06-19 Dispositif decodeur pour le decodage de mots de code qui sont proteges par blocs au moyen d'un code de reed-solomon contre plusieurs erreurs de symbole par bloc et dispositif de lecture pour des corps de stockage pouvant etre lus par voie optique, ce dispositif de lecture etant pourvu d'un tel dispositif decodeur
GB08415675A GB2142752B (en) 1983-06-22 1984-06-20 Decoder reading device for optically readable record carriers
CA000457106A CA1220865A (en) 1983-06-22 1984-06-21 Decoder and reading device for optically readable record carrier
JP59127723A JPS6037833A (ja) 1983-06-22 1984-06-22 符号語の複号装置及び読み取り装置
US06/824,299 US4642808A (en) 1983-06-22 1986-01-30 Decoder for the decoding of code words which are blockwise protected against the occurrence of a plurality of symbol errors within a block by means of a reed-solomon code, and reading device for optically readable record carriers

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
NL8302214A NL8302214A (nl) 1983-06-22 1983-06-22 Dekodeerinrichting voor het dekoderen van kodewoorden die bloksgewijs middels een reed-solomon-code tegen meerdere symboolfouten per blok beschermd zijn, en uitleesinrichting voor optisch uitleesbare opslaglichamen welke uitleesinrichting voorzien is van zo een dekodeerinrichting.
NL8302214 1983-06-22

Publications (1)

Publication Number Publication Date
NL8302214A true NL8302214A (nl) 1985-01-16

Family

ID=19842050

Family Applications (1)

Application Number Title Priority Date Filing Date
NL8302214A NL8302214A (nl) 1983-06-22 1983-06-22 Dekodeerinrichting voor het dekoderen van kodewoorden die bloksgewijs middels een reed-solomon-code tegen meerdere symboolfouten per blok beschermd zijn, en uitleesinrichting voor optisch uitleesbare opslaglichamen welke uitleesinrichting voorzien is van zo een dekodeerinrichting.

Country Status (8)

Country Link
US (1) US4642808A (nl)
JP (1) JPS6037833A (nl)
CA (1) CA1220865A (nl)
DE (1) DE3422461A1 (nl)
FR (1) FR2549319B1 (nl)
GB (1) GB2142752B (nl)
NL (1) NL8302214A (nl)
SE (2) SE460243B (nl)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0728227B2 (ja) * 1985-06-07 1995-03-29 ソニー株式会社 Bch符号の復号装置
US5003539A (en) * 1986-04-11 1991-03-26 Ampex Corporation Apparatus and method for encoding and decoding attribute data into error checking symbols of main data
JPS63503016A (ja) * 1986-04-11 1988-11-02 アムペツクス コーポレーシヨン 主データの誤差チエツク記号に属性データを符号化及び復号化するための装置及び方法
US4763330A (en) * 1986-05-06 1988-08-09 Mita Industrial Co., Ltd. Syndrome calculating apparatus
US4730321A (en) * 1986-05-30 1988-03-08 Quantum Corporation Disk drive with improved error correction code
DE3866902D1 (de) * 1987-03-10 1992-01-30 Siemens Ag Verfahren und einrichtung zur steuerung der fehlerkorrektur innerhalb einer datenuebertragungssteuerung bei von bewegten peripheren speichern, insbesondere plattenspeichern, eines datenverarbeitungssystems gelesenen daten.
US4845713A (en) * 1987-06-08 1989-07-04 Exabyte Corporation Method and apparatus for determining the coefficients of a locator polynomial
US5001715A (en) * 1988-05-12 1991-03-19 Digital Equipment Corporation Error location system
DE68920142T2 (de) * 1989-08-24 1995-07-13 Philips Electronics Nv Verfahren und Einrichtung zur Decodierung von wortgeschützten Codewörtern durch einen nichtbinären BCH-Code gegen mindestens einen Symbolfehler.
JP3154607B2 (ja) * 1993-12-28 2001-04-09 三菱電機株式会社 誤り訂正復号装置及び誤り訂正復号方法
US6023782A (en) * 1996-12-13 2000-02-08 International Business Machines Corporation RAM based key equation solver apparatus
US6173429B1 (en) * 1997-03-14 2001-01-09 Harris Corporation Apparatus for providing error correction data in a digital data transfer system
US6704902B1 (en) * 1998-09-07 2004-03-09 Sony Corporation Decoding system for error correction code
US6175941B1 (en) * 1998-12-08 2001-01-16 Lsi Logic Corporation Error correction apparatus and associated method utilizing parellel processing
US6279137B1 (en) 1998-12-08 2001-08-21 Lsi Logic Corporation System and method for a storage-efficient parallel Chien Search
US6961879B1 (en) * 2000-05-23 2005-11-01 Zoran Corporation Apparatus and method for counting error rates in an optical compact disc storage system
US20140055290A1 (en) 2003-09-09 2014-02-27 Peter Lablans Methods and Apparatus in Alternate Finite Field Based Coders and Decoders
US7865806B2 (en) * 2006-03-03 2011-01-04 Peter Lablans Methods and apparatus in finite field polynomial implementations
KR101437396B1 (ko) * 2008-02-27 2014-09-05 삼성전자주식회사 레이턴시를 줄일 수 있는 에러 정정 블록을 포함하는메모리 시스템 및 그것의 에러 정정 방법
JP5525498B2 (ja) * 2011-09-13 2014-06-18 株式会社東芝 誤り検出装置
RU2613760C2 (ru) * 2015-06-04 2017-03-21 Федеральное государственное образовательное бюджетное учреждение высшего профессионального образования "Санкт-Петербургский государственный университет телекоммуникации им. проф. М.А. Бонч-Бруевича" Устройство мажоритарного декодирования кода Рида-Соломона по k-элементным участкам кодовой комбинации
CN111726124B (zh) * 2019-03-21 2023-09-29 博通集成电路(上海)股份有限公司 用于纠错的电路及其方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3648236A (en) * 1970-04-20 1972-03-07 Bell Telephone Labor Inc Decoding method and apparatus for bose-chaudhuri-hocquenghem codes
US3781791A (en) * 1971-12-13 1973-12-25 Bell Telephone Labor Inc Method and apparatus for decoding bch codes
US3771126A (en) * 1972-04-10 1973-11-06 Bell Telephone Labor Inc Error correction for self-synchronized scramblers
US4142174A (en) * 1977-08-15 1979-02-27 International Business Machines Corporation High speed decoding of Reed-Solomon codes
GB2093238B (en) * 1981-02-18 1985-04-17 Kokusai Denshin Denwa Co Ltd Error correcting system for simultaneous errors in a code

Also Published As

Publication number Publication date
GB2142752B (en) 1986-12-17
US4642808A (en) 1987-02-10
SE8403269L (sv) 1984-12-23
JPH0553087B2 (nl) 1993-08-09
CA1220865A (en) 1987-04-21
SE8403269D0 (sv) 1984-06-19
DE3422461A1 (de) 1985-01-03
GB2142752A (en) 1985-01-23
SE460243B (sv) 1989-09-18
FR2549319B1 (fr) 1986-12-12
GB8415675D0 (en) 1984-07-25
FR2549319A1 (fr) 1985-01-18
JPS6037833A (ja) 1985-02-27

Similar Documents

Publication Publication Date Title
NL8302214A (nl) Dekodeerinrichting voor het dekoderen van kodewoorden die bloksgewijs middels een reed-solomon-code tegen meerdere symboolfouten per blok beschermd zijn, en uitleesinrichting voor optisch uitleesbare opslaglichamen welke uitleesinrichting voorzien is van zo een dekodeerinrichting.
US9075739B2 (en) Storage device
US4099160A (en) Error location apparatus and methods
EP0329789B1 (en) Galois field arithmetic unit
US7562283B2 (en) Systems and methods for error correction using binary coded hexidecimal or hamming decoding
US4142174A (en) High speed decoding of Reed-Solomon codes
US8635513B1 (en) Architecture and control of Reed-Solomon list decoding
US4928280A (en) Fast processor for multi-bit error correction codes
EP0155038B1 (en) Fast decoder for reed-solomon codes which can also be used as an encoder, and recording/playback apparatus comprising such an encoder/decoder
US20050138533A1 (en) Encoding/decoding device using a reed-solomon encoder/decoder
JP5259343B2 (ja) メモリ装置
US6119262A (en) Method and apparatus for solving key equation polynomials in decoding error correction codes
JPH0831803B2 (ja) 誤り訂正のための方法と装置
US10567003B2 (en) List decode circuits
US10333555B2 (en) Apparatuses and methods for interleaved BCH codes
FR2673341A1 (fr) Agencement de circuit pour detecter et corriger des defauts dans des mots de donnees.
CN1208192A (zh) 差错定位多项式高速计算电路
JP3281387B2 (ja) Crc/edcチェッカシステム
EP0660535B1 (en) Apparatus for uniformly correcting erasure and error of received word by using a common polynomial
US10367529B2 (en) List decode circuits
US20060010363A1 (en) Method and system for correcting low latency errors in read and write non volatile memories, particularly of the flash type
EP0989680A1 (en) Method of correcting lost data and circuit thereof
JP2662472B2 (ja) 誤り訂正処理用シンドローム演算回路
KR950008485B1 (ko) 단일에러정정용 리드-솔로몬 복호기
JP2553571B2 (ja) ガロア体演算装置

Legal Events

Date Code Title Description
A1B A search report has been drawn up
BV The patent application has lapsed