MI-AAK(Aritmetika a kódy) Opravyshlukůchyb c doc. Ing. Alois Pluháček, CSc., 2011 Katedra číslicového návrhu Fakulta informačních technologií České vysoké učení technické v Praze Evropský sociální fond Praha& EU: Investujeme do vaší budoucnosti
K4. Opravy shluků chyb prokládané kódy Fireův kód prodloužený Fireův kód Meggittův dekodér zkracování cyklických kódů oprava shluku chyb podle Chiena MI-AAK c A. Pluháček 2011
prokládané kódy [interleaved codes] kód K(n, k) m Û kód K (n, k )=(m n, m k) vzor: n=7, k=4, m=3, n =21, k =12 a 1 a 4 a 7 a 10 b 1 b 4 b 7 b 10 b 13 b 16 b 19 a 2 a 5 a 8 a 11 b 2 b 5 b 8 b 11 b 14 b 17 b 20 a 3 a 6 a 9 a 12 b 3 b 6 b 9 b 12 b 15 b 18 b 21 Podlevzorusea =(a 1,...,a k )rozdělína k m-tic. Každá m-tice vytvoří jeden sloupec první matice. Každý řádek druhé matice je kódovým slovem kódu K, který přísluší odpovídajícímu řádku první matice. Seřazením m-tic bitů, které tvoří sloupce druhé matice, sezískákódovéslovob =(b 1,...,b n )kódu K,které příslušívektorua. MI-AAK K4 1 c A. Pluháček 2011
prokládané kódy [interleaved codes] ii kód K kódsed detekceshlukuchybdodélky m kód K kódsec opravashlukuchybdodélky m kód K kódproopravushlukuchybdodélky l opravashlukuchybdodélky m l atd. př.: kód K G= 1000 101 0100 111 0010 110 0001 011... kód(7,4) m=3 kód(21,12) opravashlukudodélky3 a =111 001 000 100 1001 1000 G= 1001110 1000101 1100 1100010 b =111 001 000 100 110 101 010 MI-AAK K4 2 c A. Pluháček 2011
prokládané kódy iii kód K... cyklickýkód(n, k) G(x) generovací mnohočlen B(x)=A(x) G(x)= a i x i g j x j i j a i x i g j x j = a i g j x j+i kód K G (x)=g(x m ) B (x)=a (x) G (x)=a(x m ) G(x m ) a i x im g j x jm = a i g j x (j+i)m př.: G(x)=x 3 +x+1 m=3 G (x)=x 9 +x 3 +1 A(x)=x 3 +x 2 A (x)=x 9 +x 6 a=1100 a =001001000000 B(x)=A(x) G(x)= B (x)=a (x) G (x)= = x 6 +x 5 +x 4 +x 2 = x 18 +x 15 +x 12 +x 6 b=1110100 b =001001001000001000000 MI-AAK K4 3 c A. Pluháček 2011
prokládané kódy iv B i (x)=a i (x m ) G(x m ) x i pro i-týřádek (číslováno zdola od 0) B(x)= i B i (x) = B(x)=A(x) G(x m ) G(x) (x n +1) = G(x m ) (x n m +1) Z toho plyne: Je-li kód K cyklický a G(x) je jeho generovacím mnohočlenem, jekód K zase cyklický a jehogenerovacímmnohočlenemje G (x)=g(x m ). př.: G(x)=x 3 +x+1... kódsec(7,4) m=3 G (x)=x 9 +x 3 +1... kód(21,12)proopravu shlukůchybdodélky3 a =111 001 000 100 B (x)=a (x) x 9 + A (x) x 9 % G (x) b =111 001 000 100 110 101 010 MI-AAK K4 4 c A. Pluháček 2011
Fireův kód G(x)=P(x) (x q +1),kde P(x) je nerozložitelný mnohočlen, p=deg P(x) >1 a qaord P(x)jsounesoudělné, je generovacím mnohočlenem Fireova kódu(n, k), kde n=ord P(x) q, k=n r a r=p+q, který umožňuje detekcishlukuchybdodélky L d a opravu,nemá-lishlukdélkuvětšínež L o L d, pokud L d + L o q+1 a L o p. L d a L o konstantní(prozvolenouaplikaci) MI-AAK K4 5 c A. Pluháček 2011
Fireův kód ii př.: G(x)=(x 3 +x+1) (x 5 +1), p=3 ord(x 3 +x+1)=7 (5a7jsounesoudělnáčísla) n=35, r=8, k=27 L d = L o =3 (nebo L d =4aL o =2 anebo L d =5aL o =1) pouze detekce (nebude-li se kód používat pro opravy): 2 shluky chyb, jestliže součetdéleknepřesáhne q+1, aspoňjedennemádélkuvětšínež p. 1shlukchybdodélky r= p+q Není třeba předem volit, zda se kód použije pro detekci 1nebo2shluků(ajakých). MI-AAK K4 6 c A. Pluháček 2011
Fireův kód iii další příklady: 1. G(x)=(x 4 +x 3 +x 2 +x+1) (x 3 +1) ord(x 4 +x 3 +x 2 +x+1)=5 n=15, r=7, k=8 L d = L o =2 2. G(x)=(x 5 +x 2 +1) (x 9 +1) ord(x 5 +x 2 +1)=31 n=279, r=14, k=265 L d = L o =5 3. G(x)=(x 7 +x 3 +1) (x 16 +1) ord(x 7 +x 3 +1)=127 n=2032, r=23, k=2009 L d =9, L o =8 MI-AAK K4 7 c A. Pluháček 2011
prodloužený Fireův kód G(x)=P 1 (x) P 2 (x) P ν (x) (x q +1) P 1 (x), P 2 (x),..., P ν (x) nerozložitelnémnohočleny stupně mnohočlenů > 1 řády vzájemně nesoudělné a nesoudělné s q n=ord P 1 (x) ord P 2 (x) ord P ν (x) q k=n r r=deg P 1 (x)+deg P 2 (x)+ +deg P ν (x)+q příklad: P 1 (x)=x 11 +x 7 +x 6 +x+1 P 2 (x)=x 12 +x 11 + +x+1 P 3 (x)=x 11 +x 9 +x 7 +x 6 +x 5 +x+1 Q(x)=x 22 +1 G(x)=P 1 (x) P 2 (x) P 3 (x) Q(x) kód(558442,558386),tzn. r=56 L d = L o =11 MI-AAK K4 8 c A. Pluháček 2011
Meggittův dekodér cyklickýkód: H(x) G(x) H(x)=x n +1 x n = G(x) H(x)+1 syndrom: S(x)=C(x)%G(x)= = E(x)%G(x) shlukchyb: E(x)=E (x) x j x E (x) E(x) x n j = E (x) x n E(x) x n j = E (x) G(x) H(x)+E (x) E(x) x n j E (x) mod G(x) S(x) x n j E (x) mod G(x) deg E (x) deg G(x) E (x)=(s(x) x n j )%G(x) MI-AAK K4 9 c A. Pluháček 2011
Meggittův dekodér ii kódproopravushlukůchybdodélky L oprava: S(x)=C(x)%G(x) S(x)=0 bezchybyakonec Pro i=0,1,..., n 1nebo pro i=1,2,..., nsepostupněurčuje Y i (x)=s(x) x i % G(x), dokuddeg Y i (x) L. Je-lideg Y i (x) < L, j=(n i)%n, D(x)=C(x)+Y i (x) x j, jinak je shluk neopravitelný. pozn.: Y i (x)=s(x) x i % G(x)= = Y i 1 (x) x%g(x) D(x) opravené slovo MI-AAK K4 10 c A. Pluháček 2011
Meggittův dekodér iii př.: G(x)=1011 zkrácenýzápismnohočlenu x 3 +x+1 cyklický Hammingův kód(7,4) opravuje shluky chybdodélky1 C(x)=0110110 S(x)=0110110%1011=111=Y 0 (x) deg Y 0 (x)=2 1 Y 1 (x)=111 10%1011=101 deg Y 1 (x)=2 1 Y 2 (x)=101 10%1011=001 deg Y 2 (x)=0<1 i=2 j=7 2=5 D(x)=0110110+001 10 5 = =0110110+0100000= =0010110 MI-AAK K4 11 c A. Pluháček 2011
Meggittův dekodér iv j=(n i)%n = i=0 j=0 i=1 j= n 1 i=2 j= n 2. i=n 1 j=1 i=n j=0 př.: G(x)=1011 pozn.: Vyrovnávací paměť(dole ve schématu) lzezkrátito1místo. (Uvažtejak!) MI-AAK K4 12 c A. Pluháček 2011
Meggittův dekodér v kódproopravushlukůchybdodélky L test: deg Y i (x) < L nulyvhorníchpozicích př.: Fireův kod G(x)=(x 2 +x+1) (x 4 +1)=x 6 +x 5 +x 4 +x 2 +x+1 ord(x 2 } { +x+1)=3 n=12, r=6, k=6 q=4 L o =2, L d =3 G(x)=1110111 x 6 +x 5 +x 4 +x 2 +x+1 } C(x) =110000000000 C S(x)=S (x)=110001110111 (x)=011101 Y 0 (x)=011101 deg Y 0 (x)=4 2 Y 1 (x)=111010 deg Y 1 (x)=5 2 Y 2 (x)=000011 deg Y 2 (x)=1<2 i=2, j=(n i)%n=(12 2)%12=10 E(x)=11 10 10 (x+1) x 10 MI-AAK K4 13 c A. Pluháček 2011
Meggittův dekodér vi C(x)lzepředemvynásobitnapř. x r : možnost testovat nuly v dolních pozicích; první zbytek přísluší nejhořejším pozicím; korekcilzezřejmýmzpůsobem synchronizovat. př.: Fireův kod G(x)=1110111 x 6 +x 5 +x 4 +x 2 +x+1 1. C(x) =110000000000 S (x)=c(x) x 6 % G(x)=110000 E(x) =11 10 10 (x+1) x 10 2. C(x) =000100000000 S (x)=c(x) x 6 % G(x)=000100 S (x) x%g(x) =001000 S (x) x 2 % G(x) =010000 E(x) =01 10 10-2 1 x 8 MI-AAK K4 14 c A. Pluháček 2011
Meggittův dekodér vii př.:obvodprovýpočet C(x) x 6 %(x 6 +x 5 +x 4 +x 2 +x+1) alternativa(v tomto případě zbytečně komplikovaná): x 6 x 5 +x 4 +x 2 +x+1 mod x 6 +x 5 +x 4 +x 2 +x+1 2dekodéry: 1. dekodér 2. dekodér výpočet syndromu oprava výpočet syndromu výpočet syndromu... oprava... MI-AAK K4 15 c A. Pluháček 2011
zkracování cyklických kódů } K kód(n, k) K generovány mnohočlenem G(x) kód(ν, κ) κ < k ν < n (ν= κ+ r, n=k+r) Kódová slova kódu K se získají z kódových slov kódu K vypuštěním prvních n ν = k κ nul. G(x) (x n +1) = kód Kjecyklický G(x) (x ν +1) = kód K nenícyklický kódování proobakódystejné(ažnadobukódování) opravashlukůchyb vycházíztoho,žekódjecyklický Lze doplnit n ν nul. Oprava trvá zbytečně dlouho. Doplnění n ν nul se pouze předstírá C(x) se předem vynásobí x n ν modulo G(x). MI-AAK K4 16 c A. Pluháček 2011
oprava shluku chyb podle Chiena Čínská věta o zbytcích: Jsou-li m 1,...,mη různá navzájem nesoudělná přirozená čísla, má soustava kongruencí x w i (mod m i ), i=1,..., η právějednořešenímodulo m 1... m η. η=2 x (w 1 w 0 ) m 0 1 m0 + w 0 (mod m 1 m 0 ), kde m 0 1 jetakovéčíslo,že m 0 1 m0 1 (mod m 1 ) př.: m 1 =5, m 0 =3 m 0 1 =2 m0 1 m0 =6 x 3 (mod 5) x 2 (mod 3) x (3 2) 6+2=8 (mod 15) MI-AAK K4 17 c A. Pluháček 2011
oprava shluku chyb podle Chiena ii modifikace Čínské věty o zbytcích pro mnohočleny: Jsou-li M 1 (x),..., M η (x) různé navzájem nesoudělné mnohočleny, má soustava kongruencí X(x) A i (x)mod M i (x), i=1,..., η právějednořešenímodulo M 1 (x)... M η (x). G(x)=G 1 (x) G 2 (x), dřívebylouvedeno: E (x) C(x) x n j E (x) C(x) x n j E (x) C(x) x n j deg G 1 (x) deg G 2 (x) E (x)=(s(x) x n j )%G(x) S(x)=C(x)%G(x) mod G(x) mod G 1 (x) mod G 2 (x) MI-AAK K4 18 c A. Pluháček 2011
oprava shluku chyb podle Chiena iii E (x) C(x) x n j mod G(x) E (x) C(x) x n j mod G 1 (x) E (x) C(x) x n j mod G 2 (x) současnédělenímnohočleny G 1 (x)ag 2 (x),dokud není zbytek stejný a nemá odpovídající stupeň ρ=ord G 1 (x) C(x) x i % G 1 (x)=c(x) x i ± ρ % G 1 (x) σ=ord G 2 (x) C(x) x i % G 2 (x)=c(x) x i ± σ % G 2 (x) MI-AAK K4 19 c A. Pluháček 2011
oprava shluku chyb podle Chiena iv G(x)=G 1 (x) G 2 (x), deg G 1 (x) deg G 2 (x) postuppřiopravěshlukuchybdodélky L: 1. Určíse utak,abydeg(c(x) x u % G 1 (x)) < L, 2. přiřadíse E (x)=c(x) x u % G 1 (x), 3. určíse vtak,abydeg(c(x) x v % G 2 (x)) < L 4. najde se řešení soustavy kongruencí ξ u (modord G 1 (x)) a ξ v (modord G 2 (x)), 5. přiřadíse n j= ξ. Zobecnění na případ G(x)=G 1 (x) G 2 (x)... je zřejmé. MI-AAK K4 20 c A. Pluháček 2011