Prejsť na obsah
Domov

Reed‑Solomonova korekcia chýb

Popis princípu, vlastností, histórie a praktických použití Reed‑Solomonových kódov na opravu chýb v dátových prenosoch a úložiskách.

Prehľad

Reed‑Solomonova korekcia chýb je typ blokového kódovania navrhnutého na detekciu a opravu chýb pri prenose alebo uložení dát. Základnou myšlienkou je interpretovať sekvenciu dát ako koeficienty polynómu nad konečným poľom a následne prenášať hodnoty tohto polynómu v rôznych bodoch. Keď prijímač dostane dostatočný počet správnych hodnôt, dokáže pôvodný polynóm rekonštruovať aj v prítomnosti niekoľkých nesprávnych alebo chýbajúcich symbolov. Pre viac technických detailov pozrite technický prehľad.

Galéria obrázkov

3 Obrázky

Princíp a vlastnosti

Reed‑Solomonov kód je parametrový kód často označovaný ako RS(n,k), kde k je počet dátových symbolov a n je celkový počet symbolov po zakódovaní. Kód pracuje na symboloch z konečného poľa (najčastejšie GF(2^m)), nie na jednotlivých bitoch. Základné vlastnosti zahŕňajú:

  • Silná symbolová odolnosť: dokáže opraviť niekoľko symbolových chýb, nie len jednotlivé bity.
  • Nadbytočnosť a korekčná schopnosť: rozdiel n−k určuje množstvo nadbytočných symbolov; počet opráviteľných chýb je približne (n−k)/2.
  • Flexibilita parametrov: rôzne voľby n a k umožňujú prispôsobiť kód požiadavkám na redundanciu a výkon.

Podrobnejšie algoritmy dekódovania zahŕňajú metódy založené na Berlekamp‑Masseyovom algoritme, Euklidovom algoritme a výpočte polynomiálnych chybových polomov; existujú aj rozšírené prístupy pre listové dekódovanie. Pozrite si všeobecný prehľad algoritmov na algoritmické zdroje.

Historický kontext

Reed‑Solomonove kódy vyvinuli Irving S. Reed a Gustave Solomon v roku 1960. Od svojho vzniku sa stali jedným z najpoužívanejších kódov pre praktické aplikácie, pretože poskytujú efektívnu ochranu proti sústredeným chybám a erózii dát. Postupne sa objavili optimalizované implementácie aj hardvérové akcelerátory, ktoré umožnili nasadenie v reálnych zariadeniach a systémoch. Viac historických informácií a pôvodný článok je možné nájsť na archívnych zdrojoch.

Použitie a príklady

Vďaka svojim vlastnostiam sa Reed‑Solomonove kódy používajú v mnohých oblastiach. Medzi typické príklady patria:

  • Optické média: ochrana dát na kompaktných diskoch a diskovom nosiči, ako sú CD, DVD a Blu‑ray.
  • Digitálne vysielanie a prenos: ochrana pri satelitnom a pozemnom vysielaní, štandardy ako DVB alebo ATSC a v bezdrôtových sieťach.
  • Sieťové a širokopásmové technológie: použitie v DSL a mobilných systémoch, napríklad DSL alebo WiMAX.
  • Kódy v identifikačných a 2D symboloch: napríklad QR kódy a niektoré barcode systémy využívajú RS kódy pre obnovu poškodených častí.
  • Úložiská a redundancia: pokročilé erasure kódovanie v systémoch zálohovania a distribuovaných úložiskách často vychádza z princípov Reed‑Solomonových kódov.

Pre ukážky implementácií a štandardy pozrite ďalšie zdroje: optické médiá, DVD štandardy a Blu‑ray špecifikácie.

Dôležité rozdiely a poznámky

Reed‑Solomonove kódy sa odlišujú od bitových kódov (ako napr. BCH alebo konvolučné kódy) predovšetkým tým, že pracujú na symboloch väčších ako 1 bit, čo ich robí vhodnými pri burst‑type chybách. Ich silná stránka je v opravovaní sústredených porúch a v kombinácii s ďalšími technikami (medziľahlé vrstvy ochrany, interleaving) dosahujú ešte väčšiu odolnosť. Existujú aj rozšírenia a variácie, ktoré riešia špecifické potreby pri vysokorýchlostnom prenose alebo pri paralelnom uložení dát. Pre praktické porovnania a implementačné rady je užitočné konzultovať technické manuály a štandardy, napríklad DVB a DSL dokumenty.

Reed‑Solomonova korekcia chýb zostáva kľúčovou technikou v oblasti spoľahlivého prenosu a ukladania dát, pričom sa jej použitie neustále prispôsobuje novým požiadavkám moderných systémov.

Viac referencií a praktických príkladov implementácií nájdete tu: Zdroj 1, Zdroj 2, Zdroj 3.

Prehľad

Reed-Solomonove kódy sú blokové kódy. To znamená, že pevný blok vstupných údajov sa spracuje na pevný blok výstupných údajov. V prípade najčastejšie používaného kódu R-S (255, 223) je 223 vstupných symbolov Reed-Solomona (každý dlhý osem bitov) zakódovaných do 255 výstupných symbolov.

  • Väčšina schém R-S ECC je systematická. To znamená, že určitá časť výstupného kódového slova obsahuje vstupné údaje v pôvodnej podobe.
  • Bola zvolená veľkosť Reed-Solomonovho symbolu osem bitov, pretože dekodéry pre väčšie veľkosti symbolov by bolo ťažké implementovať pomocou súčasnej technológie. Táto konštrukčná voľba núti najdlhšie kódové slovo k dĺžke 255 symbolov.
  • Štandardný Reed-Solomonov kód (255, 223) je schopný opraviť až 16 Reed-Solomonových symbolových chýb v každom kódovom slove. Keďže každý symbol je v skutočnosti osem bitov, znamená to, že kód dokáže opraviť až 16 krátkych sérií chýb spôsobených vnútorným konvolučným dekodérom.

Reedov-Solomonov kód, podobne ako konvolučný kód, je transparentný kód. To znamená, že ak boli symboly kanála niekde na trase invertované, dekodéry budú stále fungovať. Výsledkom bude doplnok pôvodných údajov. Reed-Solomonov kód však stráca svoju transparentnosť, ak sa použije virtuálna nulová výplň. Z tohto dôvodu je povinné, aby sa pred Reed-Solomonovým dekódovaním vyriešil zmysel údajov (t. j. pravý alebo doplnený).

V prípade programu Voyager dosahujú kódy R-S takmer optimálny výkon, keď sú spojené s (7, 1/2) konvolučným (Viterbiho) vnútorným kódom. Keďže na každú chybu, ktorá sa má opraviť, sú potrebné dva kontrolné symboly, výsledkom je celkovo 32 kontrolných symbolov a 223 informačných symbolov na jedno kódové slovo.

Okrem toho sa Reed-Solomonove kódové slová môžu pred konvolučným kódovaním prekladať na základe symbolov. Keďže sa tým oddeľujú symboly v kódovom slove, znižuje sa pravdepodobnosť, že výbuch z Viterbiho dekodéra naruší viac ako jeden Reed-Solomonov symbol v ktoromkoľvek kódovom slove.

Základná myšlienka

Hlavnou myšlienkou Reed-Solomonovho kódu je, že kódované údaje sa najprv zobrazia ako polynóm. Kód sa opiera o vetu z algebry, ktorá hovorí, že ľubovoľných k rôznych bodov jednoznačne určuje polynóm stupňa najviac k-1.

Odosielateľ určí polynóm stupňa k - 1 {\displaystyle k-1}{\displaystyle k-1} nad konečným poľom, ktorý reprezentuje k {\displaystyle k}k dátových bodov. Polynóm je potom "zakódovaný" jeho vyhodnotením v rôznych bodoch a tieto hodnoty sa skutočne posielajú. Počas prenosu sa niektoré z týchto hodnôt môžu poškodiť. Preto sa v skutočnosti posiela viac ako k bodov. Pokiaľ sa prijme dostatočný počet hodnôt správne, prijímač môže odvodiť, aký bol pôvodný polynóm, a dekódovať pôvodné údaje.

V rovnakom zmysle, v akom je možné opraviť krivku interpoláciou cez medzeru, môže Reed-Solomonov kód preklenúť sériu chýb v bloku údajov a obnoviť koeficienty polynómu, ktorý vykreslil pôvodnú krivku.

História

Kód vynašli v roku 1960 Irving S. Reed a Gustave Solomon, ktorí boli v tom čase členmi Lincolnovho laboratória MIT. Ich zásadný článok mal názov "Polynomiálne kódy nad určitými konečnými poľami". V čase jeho napísania nebola digitálna technológia dostatočne pokročilá na implementáciu tohto konceptu. Prvou aplikáciou RS kódov v hromadne vyrábaných produktoch bol v roku 1982 kompaktný disk, kde sa používajú dva preložené RS kódy. Účinný dekódovací algoritmus pre kódy RS na veľké vzdialenosti vyvinuli Elwyn Berlekamp a James Massey v roku 1969. Dnes sa RS kódy používajú v pevných diskoch, DVD, telekomunikáciách a protokoloch digitálneho vysielania.

Súvisiace články

Autor

AlegsaOnline.com Reed‑Solomonova korekcia chýb

URL: https://sk.alegsaonline.com/art/81778

Zdieľať