Bowes-Chowdhury-Hockwingham kód

Az oldal jelenlegi verzióját még nem ellenőrizték tapasztalt közreműködők, és jelentősen eltérhet a 2021. február 25-én felülvizsgált verziótól ; az ellenőrzések 3 szerkesztést igényelnek .

Bowes-Chowdhury-Hokvingham kódok (BCH kódok)  - a kódoláselméletben ez a ciklikus kódok széles osztálya, amelyet az információk hibák elleni védelmére használnak (lásd: Hibaészlelés és -javítás ). Ez abban különbözik, hogy előre meghatározott korrekciós tulajdonságokkal rendelkező kódot lehet létrehozni, nevezetesen a minimális kódtávolságot. A BCH kódok speciális esete a Reed-Solomon kód .

Formai leírás

A BCH kód egy ciklikus kód , amelyet generátorpolinom adhat meg . BCH kód esetén annak megtalálásához előre meg kell határozni a kód hosszát (nem lehet tetszőleges) és a szükséges minimális távolságot . A generáló polinomot a következő módon találhatja meg.

Legyen  a mező primitív eleme (azaz ), legyen , a , sorrendi mező eleme . Ekkor egy olyan mező feletti minimális fokú normalizált polinom , amelynek gyökei egy elem egymást követő hatványai valamilyen egész számra (beleértve a 0-t és az 1-et is), egy BCH-kód generáló polinomja egy hosszú és minimális távolságú mező felett .

Magyarázzuk meg, miért lesz az így kapott kód pontosan ilyen jellemzőkkel (kódhossz , minimális távolság ). Valójában, amint azt Sagalovich [1] mutatja , a BCH kód hossza megegyezik az elemsorrenddel , ha , és egyenlő az elemsorrenddel , ha . Mivel minket az eset nem érdekel (egy ilyen kód a hibákat nem tudja kijavítani, csak észlelni), a kód hossza megegyezik az elem sorrendjével , azaz egyenlő -val . A minimális távolság nagyobb is lehet, mint amikor az elemek minimális függvényeinek [2] gyökerei a sorozatot bővítő elemek, vagyis az elemek .

Az ellenőrző szimbólumok száma megegyezik a mértékével , az információs szimbólumok számával , az értéket a BCH kód konstruktív távolságának nevezzük . Ha , akkor a kódot primitívnek , egyébként - nem primitívnek nevezzük .

Csakúgy, mint a ciklikus kód esetében, a kódpolinomot legfeljebb a fokszámú információs polinomból kaphatjuk meg , és szorozzuk meg :

Épület

A generáló polinom megtalálásához több lépést kell végrehajtani [3] :

Kódpéldák

Primitív bináris (15, 7, 5) kód

Legyen , a szükséges kódhossz és a minimális távolság . Vegyünk  — a mező egy primitív elemét , és  — az elem négy egymást követő hatványát . Két ciklotómikus osztályba tartoznak azon a területen , amelyeknek az irreducibilis polinomok és megfelelnek . Aztán a polinom

elemei gyökként vannak , és a BCH kód generáló polinomja paraméterekkel .

Hexadecimális (15, 11, 5) kód (Reed-Solomon kód)

Legyen , és  a primitív eleme . Akkor

A mező minden eleme leképezhető 4 bitesre , tehát egy kódszó 60 = 15 × 4 bitnek felel meg, tehát egy 44 bites halmaz egy 60 bites halmazra van leképezve. Azt mondhatjuk, hogy egy ilyen kód információcsomókkal működik .

Kódolás

A BCH kódokkal történő kódolásnál ugyanazokat a módszereket alkalmazzuk, mint a ciklikus kódokkal történő kódolásnál.

Dekódolási módszerek

A BCH kódok ciklikus kódok, így a ciklikus kódok dekódolására használt összes módszer vonatkozik rájuk. Vannak azonban sokkal jobb , kifejezetten BCH kódokhoz kifejlesztett algoritmusok [4] .

A BCH kódok dekódolásának fő gondolata az, hogy a végső mező elemeit használjuk a kódszó pozícióinak számozására (vagy ezzel egyenértékűen a kapcsolódó polinom együtthatóinak sorrendjében). Az alábbiakban egy ilyen felsorolás látható a polinomnak megfelelő vektorhoz .

értékeket
helyzetmeghatározók

A kapott szó legyen társítva a polinomhoz , ahol a hibapolinom a következőképpen definiálható: , ahol  a kapott szóban lévő hibák száma. A és halmazokat hibaértékeknek és hibakeresőknek nevezzük , ahol , és .

A szindrómákat úgy definiáljuk, mint a kapott polinom értékeit a generáló kódpolinom nulláin:

ahol .

A hibakeresők halmazának megtalálásához bevezetjük a hibakereső polinomot

amelynek gyöke megegyezik a hibalokátorok reciprokaival. Ekkor a következő összefüggés érvényes a hibalokátor polinom és a szindrómák együtthatói között [5] :

A következő módszerek ismertek ennek az egyenletrendszernek a megoldására a hibakereső polinom ( kulcs egyenletrendszer ) együtthatói tekintetében.

Berlekamp-Massey algoritmus

Ezt az algoritmust a legjobban úgy tekinthetjük, mint egy iteratív folyamatot egy minimális visszacsatolási (eltolódási) regiszter létrehozására, amely egy ismert szindrómasorozatot generál . Valójában az a célja, hogy egy olyan legkisebb fokú polinomot hozzon létre, amely kielégíti az egyenletet

Ennek az egyenletnek a megoldása ekvivalens a feltétellel

Egy ilyen polinom létrehozásának iteratív folyamata a Berlekamp-Massey algoritmus .

Euklideszi algoritmus

Ez a módszer a jól ismert euklidészi algoritmuson alapul, amely két szám legnagyobb közös osztóját (gcd) keresi, csak ebben az esetben nem két szám, hanem két polinom gcd-jét keressük. Jelöljük a hibaértékek polinomját így , ahol a szindrómapolinom egyenlő -val . Az egyenletrendszerből az következik, hogy . A probléma lényegében annak meghatározásában rejlik, hogy melyik teljesíti az utolsó egyenletet, ugyanakkor a fok nem magasabb . Valójában egy ilyen megoldás megadja a polinomokra alkalmazott kiterjesztett Euklidész algoritmust és , ahol . Ha a th lépésben a kiterjesztett euklideszi algoritmus olyan megoldást ad , hogy , akkor , és . Ebben az esetben a talált polinom a továbbiakban nem vesz részt a dekódolásban (csak segédanyagként keresi). Ily módon a hibakereső polinom megtalálható .

Közvetlen megoldás (Petersson-Gorenstein-Zierler algoritmus, PGC)

Adja meg a BCH kódot a hosszmezőn és konstruktív távolsággal egy generáló polinom , amelynek a gyökei között van  egy egész szám (például 0 vagy 1). Ezután minden kódszó rendelkezik azzal a tulajdonsággal, hogy . A kapott szót felírhatjuk így , ahol  a hibapolinom. Hagyja , hogy hibák forduljanak elő a pozíciókban (  a javítható hibák maximális száma), tehát , és  a hibák nagysága.

Az elfogadott szó th szindrómáját összeállíthatja :

A feladat az ismert szindrómáknál előforduló hibák számának , helyzetének és jelentésének megtalálása .

Kezdésként tegyük fel, hogy pontosan egyenlő . A szindrómákat explicit formában nemlineáris egyenletrendszer formájában írjuk fel:

Jelölje a -edik hiba helymeghatározójával , és  - a hiba nagyságával , . Ebben az esetben mindegyik más, mivel az elem sorrendje , ezért ha ismert , akkor definiálható így .

Készítsünk egy polinomot hibakeresőkből :

Ennek a polinomnak a gyökerei a hibalokátorokkal inverz elemek. Szorozzuk meg ennek a polinomnak mindkét oldalát -vel . Az így kapott egyenlőség érvényes lesz :

Ha ezt behelyettesítjük , akkor egy mindenre érvényes egyenlőséget kapunk :

Így mindegyikhez beírhatja a saját egyenlőségét. Ha ezeket összeadjuk , akkor mindegyikre érvényes egyenlőséget kapunk :

Mivel (azaz ugyanazon határokon belül változik, mint korábban), a szindrómák egyenletrendszere lineáris egyenletrendszerré alakul :

vagy mátrix formában,

ahol

Ha a hibák száma valóban egyenlő -vel, akkor ez a rendszer megoldható, és meg lehet találni az együtthatók értékeit . Ha a szám , akkor a mátrix determinánsa egyenlő lesz . Ez annak a jele, hogy kevesebb a hibák száma . Ezért egy rendszert kell összeállítani, feltételezve, hogy a hibák száma egyenlő -el , ki kell számítani az új mátrix determinánsát stb., amíg meg nem állapítjuk a hibák valódi számát.

Chen keresése

A kulcsegyenletrendszer megoldása után megkapjuk a hibalokátor polinom együtthatóit. Gyökerei (a hibakeresővel inverz elemek) egyszerűen megkereshetők a mező összes elemén keresztül . Számukra keressen olyan elemeket, amelyek inverzek a szorzással – ezek a hibakeresők . Ez a folyamat könnyen megvalósítható hardverben.

Forney algoritmusa

A helymeghatározók segítségével megtalálhatja a szindrómák rendszeréből a hibapozíciókat ( ) és a hibaértékeket, elfogadva . A dekódolás befejeződött.

Lásd még

Jegyzetek

  1. Sagalovich, 2007 , p. 175-176.
  2. Sagalovich, 2007 , p. 176.
  3. Sagalovich, 2007 , p. 168.
  4. ↑ A hibajavító kódolás művészete Archiválva : 2013. április 1., a Wayback Machine -nél , p. 91.
  5. Sagalovich, 2007 , p. 200.

Irodalom