Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Ciklikus, lineáris kódok megvalósítása shift-regiszterekkel

Hasonló előadás


Az előadások a következő témára: "Ciklikus, lineáris kódok megvalósítása shift-regiszterekkel"— Előadás másolata:

1 Ciklikus, lineáris kódok megvalósítása shift-regiszterekkel

2 Nem szisztematikus generálás
Adott egy C(n,k) lineáris ciklikus kód. Az u(x) üzenetpolinomból a c(x) kódpolinomot legegszerűbben úgy kapjuk, hogy az üzenetet megszorozzuk a g(x) generátorpolinommal:

3 Végezzük el a szorzást! Vegyük észre, hogy a kódpolinom együtthatók a jól ismert konvolúciós formulával számíthatóak ki. A diszkrét konvolúciót megvalósító HW a FIR-szűrő (vagy súlyozott előrecsatolt shift-regiszter)

4 Polinomszorzás FIR-szűrővel
Tekintsünk egy konkrét (bináris) példát: n=8 k=6 g(x)=1+x2 (Gyakorlásként leellenőrizhetjük, hogy g(x) tényleg lehet-e n=8 hosszú ciklikus kód generátorpolinomja: Azt kell megvizsgálni, g(x) osztja-e az x8-1 polinomot.) Legyen az üzenet például u(x)=1+x+x5

5 A FIR-szűrő kimenete az első időrésben a c0 együtthatót adja: (az induláskor a belső álapotok mindig 0-k) u0=1 D D g0=1 g1=0 g2=1 S c0=1

6 a 2. időrésben a c1 együtthatót kapjuk:
D D g0=1 g1=0 g2=1 S c1=1

7 a 3. időrésben a c2 együtthatót kapjuk:

8 néhány lépést kihyagva, az utolsó, 8
néhány lépést kihyagva, az utolsó, 8. időrésben a c7 együtthatót kapjuk: u5=1 D D g0=1 g1=0 g2=1 S c7=1

9 Szisztematikus generálás polinomosztással
Lineáris, ciklikus C(n,k) kódok szisztematikus generálásának egyik legegyszerűbb módszere a következő: Ebben az esetben az u(x) üzenet „eltoltjának” g(x)-szel való osztását kell implementálnunk, és az osztás maradékát használjuk föl paritásszegmensként. Az előbbi példában láttuk, hogy a csupa zérussal rendelkező diszkrét szűrő, a FIR-szűrő alkalmas polinomszorzás implementálására. A csak pólusokat tartalmazó diszkrét IIR szűrő pedig az osztás megvalósítására lesz alkalmas.

10 Példa Itt az utolsó sorban az euklideszi osztás eredményét adtuk meg. Ezek szerint a kód a következő: Most azt mutatjuk meg, hogyan implementálható ez a számítás visszacsatolt shift-regsizter segítségével.

11 Az általános „recept” a következő:
0,..,0, u1,…,uk-1 -g0 -g1 -gn-k-1 A szűrő bemenetére az n-k számú 0-val kiegészített üzenetet tesszük (ez megfelel az xn-k-val való szorzásnak) . A szűrő súlyait (karakterisztikus polinom) az osztó g(x) polinom együtthatóiból vesszük (mivel g(x) főpolinom, így gn-k=1). A regiszter n lépés után a maradékot fogja tartalmazni. Az inicializálás 0-kkal történik.

12 Példánk esetében ez a következő kapcsolást jelenti:
a b a b kezdőállapot x7 lépés 1 x6 2. x5 3. 4. 5. 6. x 7. 8. maradék: a+bx

13 Példa GF(3)-beli osztásra
Oldjuk meg shift-regiszterrel az alábbi polinomosztási feladatot:

14 1002 a b -2=1 -1=2 a b kezdőállapot x3 lépés 2 x2 2. x 3. 1 4.
x3 lépés 2 x2 2. x 3. 1 4. maradék: a+bx

15 Kódgenerálás paritásellenőrző polinommal
uk-1 uk-2 u0 -h0 -hk-1 -hk-2 -h1

16 Példa

17 2. lépés 1. lépés inicializálás 1 1 1 Megjegyzés: most elég két ütemig működtetni a szűrőt, hiszen két paritásbitet kell csak generálnunk. Ez a két paritásbit a 2. lépésben az első két regiszter tartalma, azaz 01, (hiszen az üzenettel inicializáltuk a regisztert, így először az üzenetbitek lépnek ki a kimeneten.


Letölteni ppt "Ciklikus, lineáris kódok megvalósítása shift-regiszterekkel"

Hasonló előadás


Google Hirdetések