Hogyan kell megoldani az alábbi képen látható kódolási feladatokat? CRC kódolás. Szindróma dekódolás.

Figyelt kérdés
2014. máj. 14. 17:09
 1/7 anonim ***** válasza:
Nehezen kivehető, mi is van a képen. :-)
2014. máj. 14. 21:44
Hasznos számodra ez a válasz?
 2/7 A kérdező kommentje:
2014. máj. 15. 11:27
 3/7 anonim ***** válasza:

Jó, az első feladatot megcsináltam:


A kódszó: 101, polinomalakja: M(x) = x^2 + 1

A generátorpolinom bináris képe: 1 1 1


Eltolás: M(x)*x^n = 1 0 1 0 0 0


Ezt le kell osztani P(x)-szel.

Az eredmény felírható Q(x) + R(x) /P(x) alakban:

111 + 001/(111)


Tehát az üzenet: T(x) = x^n*M(x) + R(x) = 101000 + 001 = 101001.


----


110111 : 111 = 1111

A maradék nem 0, hanem 101, tehát ez nem lehet kódszó.

2014. máj. 17. 13:18
Hasznos számodra ez a válasz?
 4/7 anonim ***** válasza:
Egyébként nem tudom, honnan jött, hogy ha arra a függvény analízises kérdésre válaszoltam, akkor egy ilyen lineáris algebrásat is megoldok?
2014. máj. 17. 14:00
Hasznos számodra ez a válasz?
 5/7 bongolo ***** válasza:

6)

CRC kódolás. A generátor-polinom:

g(x) = x² + x + 1

Hmm, azt írja, n=6 hosszú. Ez másodfokú, szóval csak 2 hosszú. Szokatlan így megadni a generátor polinomot, jó lenne látni a jegyzeteteket. Arra tudok csak gondolni, hogy hozzá kell még adni x⁶-t, de egyáltalán nem vagyok benne biztos. (A generátor polinom legnagyobb helyiértékű tagjának együtthatója 1 kell legyen.)

G(x) = x⁶ + x² + x + 1


Amit az elején írok, az nem kell a feladat megoldásához, mondjuk magamnak írom magyarázatként...


A fenti G(x) azt jelenti, hogy 6 bit hosszú a shift regiszter. Bemeneteinek jele 1, x, x², x³ ... x⁵, kimenetének elnevezése x⁶. Az alsó helyiértéken (1) megy be az adat, a túlsó vége pedig (x⁶) vissza van csatolva egy-egy XOR kapuval az 1, x és x² bemenetein is.

Vagyis ilyesmi:

  1       x        x²     x³  x⁴  x⁵  x⁶

−⊕−⊲−⊕−⊲−⊕−⊲−⊲−⊲−⊲−

  |         |        |                       |

  ^−−−−^−−−^−−−−−−−−−−−

(A ⊲ jelöli a shift regisztereket, a ⊕ az xor kaput.)


Az üzenetet bitenként bevezetjük balról, aztán amikor belement az utolsó bit is, akkor még 6 darab nullás bitet is belevezetünk, és ami 6 bit a shift regiszter végén ekkor kijön, (a polinomosztás maradéka), az lesz a CRC kód. Azt a 6 bitet is az üzenet mögött elküldjük.


Vételkor ugyanúgy bemegy a vett bitsorozat a regiszterekbe, majd a végen bemegy a 6 CRC bit is. Ha ezek után a shift regiszterekben nem csupa 0 marad, akkor hibás volt az átvitel. (Hisz ha M(x)-et osztva G(x)-szel a maradék R(x), akkor M(x)+R(x) osztható G(x)-szel modulo 2.)


- - - - - - - - -

Most már a feladat megoldása jön:


Az üzenet most 101. Nem értem, hogy miért írja a feladat, hogy a bal oldalon van a legkisebb helyiértékű bit, én több helyen is úgy látom, hogy fordítva kezelik. (Most nem számít, mert szimmetrikus az üzenet, de a ZH-n lehet más is.) Jó lenne látni, hogy a ti jegyzetetek hogyan csinálja a polinomokat... Nem biztos, hogy úgy, ahogy én fogom.


- A generátor polinom x⁶+x²+x+1, számértékben 1000111. Ez 7 bites, nem 6, nem írtam el!


- Az üzenet 101. (Ha komolyan vesszük, hogy bal oldalon van a kis helyiérték, akkor meg kell fordítani...)

Ennek polinomja 1·x²+0·x+1·1, vagyis x²+1. (Nem muszáj felírni polinomként...)


- A generátor hatodfokú, tehát 6-tal kell el-shiftelni az üzenetet. Ez x⁶-nal való szorzást jelent: M(x)=x⁸+x⁶

Számértékben ez 101000000 lesz (hozzáírtam 6 darab nullát)


- Elvileg el kell osztani M(x)-et G(x)-szel modulo 2. Valójában egyszerűbb az 101000000-t elosztani 1000111-gyel:

101000000 : 1000111

Modulo 2 osztáskor azonos hosszú sorozatokat osztunk és csak az első bit számít. Vagyis ha 1xx..-et osztunk 1yy..-nal, akkor megvan 1-szer. Ha 0xx..-et osztunk 1yy..-nal, akkor 0-szor, akármi is xx.. és yy...

- 1010000-ben megvan 1-szer, a maradék kijön, ha kivonjuk belőle az 1000111-et. Modulo 2-ben ez xor-olást jelent, vagyis ott lesz 1, ahol a bitek különböznek. Írd alá, akkor gyorsan látszik a különbség:

  1000111

A maradék:

  0010111

A maradék felső bitje tuti, hogy mindig 0 lesz. Azt el is kell hagyni, tehát most a maradék 010111 lett. (A második bitet már nem kellene elhagyni, hiába 0!)

A következő bitet a kibővített üzenetből (0) hozzárakjuk:

- 0101110-ban megvan 0-szor.

A maradék ugyanaz, az első nullát elhagyva 101110

A következő bitet (0) hozzárakjuk:

- 1011100-ban az

  1000111 megvan 1-szer

A maradék:

  0011011, vagyis 011011

Nincs több bit, kész vagyunk. Ez a CRC kód.


(polinom alakban x⁴+x³+x+1, de ez sem kell igazán most.)


Kódszó-e az 110111?

- Ez 6 hosszú. A kódszó az eredeti üzenet plusz mögötte a CRC kód, ami önmaga 6 bites. Ez tehát csak akkor lehetne kódszó, ha üres lenne az üzenet. Üres üzenet CRC-je (000000 osztva 1000111 maradéka) viszont 000000, nem ez.

2014. máj. 17. 15:03
Hasznos számodra ez a válasz?
 6/7 bongolo ***** válasza:

Brr, a szépen összerakott shift regiszteremet elrontotta a honlap...

Megpróbálom kicsit máshogy:


  1         x         x²                     x⁶

--⊕--⊲--⊕--⊲--⊕--⊲--⊲--⊲--⊲-

   |          |          |                       |

  ^- - - - ^ - - - - ^ - - - - - - - - - -


Ha most se sikeül, nem próbálkozom tovább :)

2014. máj. 17. 15:10
Hasznos számodra ez a válasz?
 7/7 anonim válasza:

Igy első blikkre az üzenetpolinom kisebb mint a generátorpolinom, vagyis osztó nagyobb mint az osztandó. Ez szívás, mert ilyenkor az osztási maradék maga az osztandó.

Például kettőben a három megvan nullaszor és még marad kettő, vagyis a crc is kettő lesz.

2016. szept. 7. 18:14
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!