Adattovábbító csatorna

Slides:



Advertisements
Hasonló előadás
Készítette: Kosztyán Zsolt Tibor
Advertisements

Természetes számok 0, 1, 2, 3, ..., 24, 25, ..., 1231, 1232, ..., n, ...  = {0, 1, 2, 3, ..., n,...} a természetes számok halmaza Műveletek: összeadás.
Info alapfogalmak és kódolás
Kódelmélet.
Függvények Egyenlőre csak valós-valós függvényekkel foglalkozunk.
Készítette: Mester Tamás METRABI.ELTE.  Egy bemeneten kapott szöveg(karakter sorozat) méretét csökkenteni, minél kisebb méretűre minél hatékonyabb algoritmussal.
Kötelező alapkérdések
Elemi bázistranszformáció
Illeszkedési mátrix Villamosságtani szempontból legfontosabb mátrixreprezentáció. Legyen G egy irányított gráf, n ponton e éllel. Az n x e –es B(G) mátrixot.
Illés Tibor – Hálózati folyamok
I. Adott egy lineáris bináris kód a következő generátormátrixszal
Euklidészi gyűrűk Definíció.
Egy f  R[x] polinom cS -beli helyettesítési értéke
1.
Csoport részcsoport invariáns faktorcsoport részcsoport
Gyűrűk Definíció. Az (R, +, ·) algebrai struktúra gyűrű, ha + és · R-en binér műveletek, valamint I. (R, +) Abel-csoport, II. (R, ·) félcsoport, és III.
4. VÉGES HALMAZOK 4.1 Alaptulajdonságok
Kommunikációs Rendszerek
Papp Róbert, Blaskovics Viktor, Hantos Norbert
Optimalizálási módszerek 2. Konvex halmazok
A digitális számítás elmélete
Lineáris algebra Mátrixok, determinánsok, lineáris egyenletrendszerek
Valós számok Def. Egy algebrai struktúra rendezett test, ha test és rendezett integritási tartomány. Def. Egy (T; +,  ;  ) rendezett test felső határ.
6. SZÁMELMÉLET 6.1. Oszthatóság
PTE PMMK Matematika Tanszék dr. Klincsik Mihály Matematika III. előadások MINB083, MILB083 Gépész és Villamosmérnök szak BSc képzés 2007/2008. őszi félév.
INFORMATIKA Számítógéppel segített minőségbiztosítás (CAQ)
Adattovábbító csatorna
Véges értékű függvények
MATEMATIKA ÉS INFORMATIKA I.
Halmazok Összefoglalás.
Lineáris algebra.
16. Modul Egybevágóságok.
Lineáris programozás.
Lineáris programozás Elemi példa Alapfogalmak Általános vizsg.
Gazdaságstatisztika 11. előadás.
Lineáris egyenletrendszerek, leképezések, mátrixok
Vektorterek Definíció. Legyen V Abel-csoport, F test, továbbá
1. MATEMATIKA ELŐADÁS Halmazok, Függvények.
Lineáris algebra.
Információ- és hírközléselmélet '991 Információ- és Hírközléselmélet Vassányi István, Információelmélet –forráskódolás –csatornakódolás.

Műveletek, függvények és tulajdonságaik Mátrix struktúrák:
Dodekaéder Hamilton köre
előadások, konzultációk
Kommunikációs Rendszerek
Többdimenziós valószínűségi eloszlások
Nagy Szilvia 7. Lineáris blokk-kódok
2005. Információelmélet Nagy Szilvia 2. A forráskódolás elmélete.
Nagy Szilvia 6. Forráskódolás alapjai
2005. Információelmélet Nagy Szilvia 12. A hibacsomók elleni védekezés.
Hibajavító kódok.
2005. Információelmélet Nagy Szilvia 14. Viterbi-algoritmus.
T.5. tétel (minimálpolinom egyértelmű létezése)
Nagy Szilvia 6. Csatornakódolás
Nagy Szilvia 2. Lineáris blokk-kódok II.
Algoritmusok és adatszerkezetek
2005. Információelmélet Nagy Szilvia 1. Az információelmélet alapfogalmai 2. A forráskódolás elmélete 3. Forráskódolási módszerek.
Huffman tömörítés.
HÁLÓZAT Maximális folyam, minimális vágás
TÁMOP /1-2F Informatikai gyakorlatok 11. évfolyam Alapvető programozási tételek megvalósítása Czigléczky Gábor 2009.
Lineáris programozás Elemi példa Alapfogalmak Általános vizsg.
Nevezetes algoritmusok
HÁLÓZAT Maximális folyam, minimális vágás
Mediánok és rendezett minták
Amortizációs elemzés Alapelv: nem egy-egy művelet lefutási idejét vizsgáljuk, hanem több műveletét együtt, sokszor Eredmény: átlagolt időszükséglet időátlagban.
ELEMI GEOMETRIAI ISMERETEK
Informatikai gyakorlatok 11. évfolyam
Csoport, félcsoport, test
Gráfok - 1 Definíció: Irányított gráf (digráf) G=(V,E) rendezett pár.
Algoritmusok és Adatszerkezetek I.
Előadás másolata:

Adattovábbító csatorna Kódelmélet Adattovábbító csatorna Adókészülék Vevőkészülék Adó-Információs csatorna-Vevő A={a1,…,an} ábécé (véges szimbólumkészlet) Elsődleges közlés: ai1,…,ain jelsorozat

Adatátviteli csatorna Kapacitása (Jelkészlete): K={k1, k2,…kn}, általában |K|<|A| A jelkészlet átvitelének fizikai megvalósítása Adó-készülék Kódoló Modulátor Demodulátor Dekódoló Vevő-készülék Fizikai jelek Kódolt jelek Elsődleges közlés

Kétirányú adattovábbítás Adókészülék +kódoló +modulátor Vevőkészülék +dekódoló +demodulátor Vevőkészülék +dekódoló +demodulátor Adókészülék +kódoló +modulátor Adó+vevő=adóvevő Kódoló+dekódoló=kodek Modulátor+demodulátor=modem Def: ha a kódoló "aÎA elsődleges betűhöz a K halmazból vett Ka=<ka1, ka2,…, kan,> sorozatot rendel, akkor azt betű szerinti kódolásnak nevezzük. Bináris modell: K={0,1}

Def: Ka=<ka1, ka2,…, kan> sorozat: kódszó, {Ka} halmaz: kód, a az elsődleges közlésnek megfelelő kódszavak konkatenáltja pedig kódolt közlés Példa: A={a,b,c,d}, kód={00, 01, 100, 101} dac  10100100 a betű szerinti kódolása Def: H:A*{0,1}* kódolás, az A sorozataiból a K sorozataiba vivő függvény Def: H-1: {0,1}* A* dekódolás, a K sorozataiból az A sorozataiba vivő függvény Feltétele: ne legyen két olyan közlés, amit H ugyanabba a kódolt közlésbe visz át, vagyis H egy-egyértelmű Példa: A={a,b,c,d}, kód={00, 01, 11, 0001} nem egy-egyértelmű, mert ab0001, és d0001 Def: Ha H-1 létezik, azt mondjuk: a kód felbontható

Mikor felbontható egy kód: Ha a kódszavak hossza egyforma  a kód felbontható Def: Egy kódot prefix kódnak nevezünk akkor, ha egyik kódszó sem valódi kezdőszelete a másiknak Tétel: a prefix kód felbontható Biz: Tfh. a K= {k1, k2,…, kn} kód nem felbontható. Ekkor létezik egy olyan S=<s1,s2,…,sn> sorozat, ami kétféleképpen <ak1,ak2,…,akn> és <al1,al2,…,alm> módon felbontható (dekódolható). Tfh. a két sorozat első különböző tagja az aki ill. az alj elemek, amelyekhez tehát ugyanaz a kód tartozik. A |H(aki)|<|H(alj)|, akkor aki alj valódi kezdőszelete, egyébként fordítva  ellentmondás…

McMillan-féle egyenlőtlenség Tétel: Ha a K={k1,k2,…,kn} kód felbontható  i=1Σn2-li<=1, ahol li a ki kódszó hossza. Biz: Emeljük fel az összeget a t-ik hatványra. (i=1Σn2-li)t=(i1=1Σn2-li1)*(i2=1Σn2-li2)*…*(it=1Σn2-lit)= (i1,i2,…,itΣ 2 –(li1+li2+…+lit))…, ahol 1<=ij<=n és 1<=j<=t Az li1+li2+…+lit hossz-sorozat nem más, mint az {ai1,ai2,…,ait} t hosszú elsődleges közlés kódolásának hossza. Jelöljük ezt L(ai1,ai2,…,ait)-vel. …=(ai1,ai2,…,aitΣ 2 –L(ai1,ai2,…,ait)), vagyis az összes t hosszú elsődleges közlésre összegzünk. Jelölje N(t,r) azoknak a t hosszúságú elsődleges közléseknek a számát, amelyre L(ai1,ai2,…,ait)=r, és legyen M a K beli kódszavak hosszának a maximuma. Ekkor t<=L(ai1,ai2,…,ait)<=M*t

(ai1,ai2,…,aitΣ 2 –L(ai1,ai2,…,ait))=(r=tΣM*t N(t,r)*2 –r)… Másrészt: N(t,r)<=2r, hiszen 2r-nél több szimbólum felbontható módon nem kódolható le r bittel. Ezért: …<=(r=tΣM*t 2r*2–r)=(r=tΣM*t 1)=(r=tΣM*t 1)=(M-1)*t+1 Vagyis tetszőleges t-re: (i=1Σn2-li)t<=(M-1)*t+1 Ha (i=1Σn2-li)>1 lenne igaz, akkor eléggé nagy t-re a fenti egyenlőtlenség nem állhatna fenn. Tehát (i=1Σn2-li)<=1 áll fenn.

Kódfa Olyan bináris fa, amely csomópontjaihoz vezető út megfelel a kódszavaknak. (pl. jobbra=0, balra=1) Prefix kód: csak a falevelekhez van kódszó rendelve Pl: A={a,b,c,d,e,f},H(A)={10,11,01,0011,0010,000} Dekódolás: a bejövő bitektől függően gyalogolunk a fán. Minden prefix kódhoz lehet kódfát létrehozni. a b c d e f 1

Optimális kódok Legyen A egy adatforrás ábécéje, amely az egyes jeleket egymástól függetlenül adja ki. Legyen a P={p1,p2,…pn} a kibocsátott jelek valószínűségeinek halmaza. Világos, hogy pi<1, és i=1Σn pi=1. Pl: magyar szövegre: pe<pq.Az e-t elég lenne kevesebb bittel kódolni, mint a q-t. Legyen L={l1,l2,…ln} a K kódkészlet kódhosszainak a vektora. (Csökkenthető-e) egy m hosszú közlés átlagos hossza: Lm=m*p1l1+m*p2l2+…+m*pnln=m*i=1Σm pi li Def: a L(K)=i=1Σm pi li összeget a K kód F forrás melletti költségének nevezzük. Rögzített F forrás mellett többféle K kód is létrehozható. Def: optimálisnak nevezzük a Ko kódot a F forrásra nézve, ha L(Ko)<=L(K)

Shannon-féle entrópia Tétel: Tetszőleges F forráshoz létezik optimális prefix kód L(Ko). ???De melyik az??? Def: Az F forráshoz tartozó H(F)=i=1Σn log(pi)/pi összeget a F forrás (Shannon-féle) entrópiájának nevezzük. Tétel: Az F forráshoz tartozó bármely felbontható K kódra L(K)>=H(F). Megjegyzés: Ha az eloszlás egyenletes (pi=1/n), akkor H(F)= i=1Σm 1/m*log(1/m)=log(1/m) ilyenkor az optimális kódfa egyenletes, magassága a kód költsége=log(1/m) a b c d 1

Egy kis filozófia Barkochba: kód: egy fogalom kitalálásához vezető kérdések száma. Mikor jók a kérdések? egy halmaz elemeinek a kiválasztásához szükséges információmennyiség szürke halmazokra (ha nincs előzetes információnk) költséges egyéniséggel rendelkező halmazelemek esetén (ha van előzetes információnk) olcsóbb ha nem készülünk fel (nem gyűjtünk előzetes infót), akkor többe kerül a kiválasztási művelet… kódfageneráláskor az igen/nem vlszségnek közel 50-50% kell lennie.

Optimális kód konstrukciója (Shannon-Fanno szuboptimális) Állítsuk sorba az elemeket és a vlszségeket. A Shannon-Fanno kódfa „oldalra nyomott” lesz (rövidebb kódokat kapnak a nagyobb vlszségű elemek, hosszabbakat a kisebbek) Shannon-Fanno: A fát a gyökerénél kezdjük építeni, osszuk fel a vlszségi listát kb. 50-50% arányban (stb. rekurzíve). 0.09 0.11 0.12 0.19 0.2 1

Az optimális kód Huffman féle konstrukciója Tétel: Az F jelforráshoz (A={a1,a2,…,an} ábécéhez és P={p1>=p2 >= … >= pn} eloszláshoz) létezik legalább egy K= {k1, k2,…, kn} optimális prefix kód, hogy l1<=l2<=…<=ln-1=ln, és az utolsó két kódszó a0, ill. a1, alakú. Biz: legyen Ko egy olyan optimális kód, amelyre az állítás nem igaz, vagyis létezik i<j pár, hogy pi>=pj, de li>lj. - Ha éppen pi=pj lenne, akkor a két elemet kicserélve egy másik olyan optimális kódot kapunk, amelyre eggyel kevesebb li>lj pár létezik. - Ha viszont pi>pj lenne, akkor ez és li-lj>0 összeszorzásával pi*(li-lj)>pj*(li-lj)  pi*li+pj*lj> pj*li+ pi*lj vagyis a helycserével alacsonyabb költségű kódot kapnánk, ami viszont ellentmond a feltételnek ÁLLÍTÁS első fele

Tfh. (indirekt) ln-1<ln, vagyis a 2 leghosszabb kód nem egyforma hosszú. Legyen b az an ln-1 hosszú kezdőszelete. b nem lehet a kezdőszelete egyetlen más kódszónak, mert nem rövidebb. Ezek sem lehetnek b kezdőszeletei, mert akkor an kezdőszeletei is lennének. Ha ekkor kicserélnénk an-t b-ra, akkor egy olcsóbb kódot kapnánk, ami ellentmond a feltételnek  a két leghosszabb kód egyforma hosszú, és csak az utolsó bitben tér el. Tétel: Legyen F jelforrás (A={a1,a2,…,an} ábécével és P={p1>=p2 >= … >= pn} eloszlással), és K={k1, k2,…,kn} optimális prefix kód. Tfh. pi= q1+q2. Ekkor a K’={k1, k2,…,ki-1,ki+1,…,kn,ki0 ,ki1} szintén optimális prefix kód lesz A={a1,a2,…,an,an+1} ábécével és P={p1>=p2>=pi-1 >=pi+1…>=pn>=q1>=q2} eloszlással. Biz: HF

Huffmann algoritmusa vlszlista sorbaállítása DO WHILE kételeműnél hosszabb a lista két legkisebb vlsz. összevonása összevont vlsz. Beillesztése LOOP a két elem a kódfa gyökere DO WHILE van összevont elem az összevont elemnél a kódfát felhasítjuk LOOP

1 0.2 0.2 0.6, 0.4 0.19 0.12 0.11 0.4, 0.37, 0.23 0.09 0.09 0.37, 0.23, 0.2, 0.2 HF: kiszámolni, hogy tényleg olcsóbb-e a Huffmann fa, mint a Shannon-Fanno. 0.2, 0.2, 0.23, 0.19, 0.18 0.2, 0.2, 0.19, 0.18, 0.12, 0.11 0.2, 0.2, 0.19, 0.12, 0.11, 0.09, 0.09

Zajos csatorna. Hibajavító kódolás Fix méretű kódszavakat (blokkokat), felbontható (prefix) kódokat vizsgálunk.  a közlés mérete többszöröse a kódméretnek. Def: A csatorna legfeljebb t egyedi hibát okoz, ha a egy blokkban max ennyi hibás bit fordulhat elő. Pl: ha a legfeljebb 1 hiba fordulhat elő, akkor a kódolásban megduplázhatjuk a bitekethibafelismerő kódolás. Ha megtriplázzukhibajavító kódolás… Def: Legyen K={k1, k2,…,km} n blokkméretű kód. A log(m)/n arányt a kód sűrűségének nevezzük. Def: Az a és b n szélességű bitvektorok Hamming-távolságán a és b egymástól eltérő bitjeinek a számát értjük. Jelölése r(a, b). Példa: r(001, 111)=2

A Hamming távolság tulajdonságai 1. r(a,b)>=0 2. r(a,b)=0  a=b 3. r(a,b)=r(b,a) 4. r(a,b)<=r(a,g)+r(g,b) Biz: Jelölje P(a,b) azoknak a pozícióknak a halmazát, amelyekben a és b egymástól eltérnek. Ekkor P(a,b)=P(a,g) U P(g,b)ÁLLÍTÁS Az 1-4. Tulajdonságokat metrikának nevezzük. A Hamming távolság tehát metrika a bináris számok felett. Háromszög egyenlőtlenség

Def: Kódtávolságnak nevezzük és d(K)-val jelöljük egy K kód-beli szavak távolságának a minimumát. Példa: hibafelfedés nélkül: 1, hibafelfedéssel (dupla): 2, hibajavítással (tripla): 3. Tétel: Egy K kód pontosan akkor alkalmas t db. hiba felismerésére, ha d(K)>=t+1 Biz: tfh. az aÎK kódszóban legfeljebb t db hiba keletkezik, és így a b szót kapjuk. r(a,b)<=t, viszont a d(K)>t  bÏK. Vagyis a hiba úgy ismerhető fel, hogy a beolvasott szó nem eleme a K kódnak. Indirekt: Ha d(K)<=t, akkor létezhet r(a,b)<=t. Ilyenkor viszont, ha a csatorna legfeljebb t hibát okoz, nem dönthető el, hogy b vételekor tényleg b-t adtak le, vagy a-ból változott azzá.

Példa: Álljon a B kód az n hosszú, páros számú 1-t tartalmazó kódokból Példa: Álljon a B kód az n hosszú, páros számú 1-t tartalmazó kódokból. d(B)=2 1 hiba felfedésére alkalmas. Elnevezés: paritásellenőrző kód. Def: Jelölje St(a) azon b szavak halmazát, amelyekre r(a,b)<=t. Ezt nevezzük a középpontú, t sugarú gömbnek. Ha St(a)ÇSt(b)<>Æ  r(a,b)<=2t. Tétel: a K kóddal pontosan akkor lehet t hibát javítani, ha d(K)>=2t+1. Biz: Rajzoljunk a kódszavak köré t sugarú gömböt. Ezek nem metszhetik egymást. Legyen g egy olyan kódszó, amely a-ból legfeljebb t változtatással keletkezett. G mindenképpen beleesik egy St(a) gömbbe, és a diszjunktság miatt csak egybe eshet. A feladat tehát meghatározni a gömb középpontját. Indirekt: tfh. d(K)<=2t. Ekkor van olyan St(a) és St(b), amelyek nem diszjunktak, legyen a közös pont g. Ennek vétele esetén nem dönthető el, hogy a küldött szó a vagy b volt, vagyis nem tudjuk kijavítani a hibát.

Lineáris kódok Legyenek a={a1,a2,…,an} és b={b1,b2,…,bn} bináris n-esek. Def: Az a és b vektorok összege alatt a a+b={a1+b1, a2+b2,…,an+bn} vektort értjük. Def: Az a és b vektorok skaláris szorzata alatt a a1Çb1+a2Çb2+…+anÇbn szorzatösszeget értjük. (az összeg mod 2 értendő) Def: Ha q bináris konstans (0 vagy 1), akkor az a vektor q-val vett szorzata alatt a qa={qa1,qa2,…,qan} vektort értjük. (1*a=a, 0*a=0). Def: az a vektor w(a) súlya alatt az a vektorban levő nem nulla elemek számát értjük. Példa: w({1,0,0,1,1})=3, w({0,0,1,0,1})=2

Látható, hogy a Hamming távolságra: r(a,b)= w(a+b) Def: Egy K kódot akkor nevezünk lineárisnak, ha a,bÎK esetén a+bÎK is teljesül. Köv: A 0 kódszó minden lineáris kódnak eleme. Biz: az a+a 0-t ad ki. Def: Egy K kód w(K) súlya alatt a nem nulla kódszavainak a minimumát értjük. Tétel: Lineáris kódokra d(K)=w(K). Biz: Legyen a és b olyan kódszavak, amelyekre d(K)=r(a,b)=w(a+b)>=w(K) Másrészt, legyen gÎK olyan kódszó, amelyre w(K)=w(g). Ekkor: w(K)=w(g)=w(g+0)=r(g,0)>=d(K)

Egy kis lineáris algebra A lineáris kódok nem mások, mint a Bn n dimenziós vektortér alterei a kételemű (0,1 Boolean) test felett, ahol az összeadás mod 2 érvényes, és a skalárszorzás a konjunkciónak felel meg. Ha K n hosszúságú lineáris kód, akkor létezik k<=n szám, és léteznek a1,a2,…,an vektorok, hogy tetszőleges K-beli a kódszó felírható, mint az ai vektorok lineáris kombinációja, vagyis a=g1a1+ g2a2+… +gnan . ai-k helyett másik bi vektorrendszert választva a k szám nem változik. Biz: nélkül

Az ilyen tulajdonságú ai-k a K kód egy bázisát alkotják, k-t pedig a K kód dimenziójának nevezzük. Az ily módon kapott gi–k egyértelműek Az ai–k egymástól függetlenek, vagyis egyik sem írható fel a többi lineáris kombinációjaként. Ilyenkor |K|=2k. A K kód sűrűsége=k/n A K kód egy bázisát alkotó ai vektorokból képzett G=(a1/a2/…/ak) mátrixot a K kód generátormátrixának nevezzük. Tehát a K kód tetszőleges szava megkapható a generátormátrix alkalmas kombinációjaként.

Ha két vektor skaláris szorzata=0, akkor azt mondjuk, hogy merőlegesek (ortogonálisak) egymásra. Tétel: Legyen K egy m dimenziós, de n elemű lineáris kód. Ekkor léteznek olyan (b1,b2,…,bn-m) egymástól független vektorok, hogy egy aÎBn pontosan akkor aÎK is, ha (a, bi )=0 a fenti vektorokra. Vagyis: K az n-dimenziós Bn tér egy altere (síkja). Ilyenkor a síknak léteznek normálisvektorai, amelyek elemei a Bn térnek, de nem elemei a K kódnak (mert merőlegesek rá).

Jelöljük K^-sel (K-duálissal) a (b1,b2,…,bn-m) bázis által kifeszített kódot. K^ dimenziója n-m K^ független a (b1,b2,…,bn-m) bázis konkrét megválasztásától Ha bi=(bi1,bi2,…, bin), akkor a belőle felépíthető H=(b1/b2/…/bn-m)=((bi1,bi2,…,bin)/…/(bn-m1,bn-m2, …,bn-m n)) mátrix a K^ kód generátormátrixa. Ezt (a duális kód generátormátrixát) a K kód ellenőrző mátrixának is hívjuk. Azért ellenőrző, mert ilyenkor egy aÎK  ha H*aT=((bi1,bi2,…,bin)/…/(bn-m1,bn-m2,…,bn-m n)) *(a1/a2/…/bn)=(0/…/0)

H*aT=a1*(b11/b21/…/bn-m 1)+…+an*(b12/b22/…/bn-m 2) =(0 /…/0) Vagyis, ha az aÎK a<>0 kódszó súlya t, akkor a H mátrixban van t összefüggő oszlopvektor, és fordítva: ha van a H mátrixban t összefüggő oszlopvektor, akkor van t súlyú kódszó (ennek elemei: a kiválasztott pozíciókon 1, máshol 0). Ha ennél többet választunk ki, akkor azok már bizonyosan összefüggők lesznek. Vagyis: d(K)>t ha a K kód ellenőrző mátrixából tetszőlegesen kiválasztva t oszlopot, ezek lineárisan függetlenek.

Hamming kódok Tétel: egy K lineáris kóddal pontosan akkor lehet t hibát kijavítani, ha a K ellenőrző mátrixában tetszőlegesen kiválasztva 2t oszlopot, ezek lineárisan függetlenek lesznek. Legyen a K kód blokkmérete n=2l-1. Álljon a K kód ellenőrző mátrixa az összes l hosszú, <>0 vektorból. Ilyenkor semelyik 2 oszlop nem lineárisan összefüggő, vagyis a kódtávolság d(K)>2, vagyis legalább 1 hibát javítani tudunk. Az ilyen kódokat Hamming kódoknak nevezzük. A Hamming kód dimenziója: n-l= 2l-l-1. A Hamming kód sűrűsége: (2l-l-1)/=2l=1-(l+1)/2l» 1-log(n)/n Ez lényegesen jobb, mint a korábbi példa

Példa: Legyen l=3, a blokkméret=23-1=7 Az ellenőrző mátrix: H=(0/0/1,0/1/0,0/1/1,1/0/0,1/0/1,1/1/0,1/1/1) Tfh aÎK, vagyis H*aT=0. Változtassuk most meg az a kódszó egy bitjét. Tfh az eredmény b=a+e, ahol e egyetlen 1 bitet tartalmaz a változtatás helyén. Ellenőrizzük, hogy b benne van-e K-ban? H*bT=H*(a+e)T=H*aT+H*eT=H*eT Ez utóbbi nem más, mint a H mátrix annyiadik oszlopa, mint ahol a változás történt. Pl. legyen a=(0,0,0,1,1,1,1), e=(0,0,0,1,0,0,0). H*bT=H*(0/0/0/1/1/1/1)+H*(0/0/0/1/0/0/0)=(0/0/0)+(1/0/0)=(1/0/0) Vagyis: ha a beolvasott kódszót megszorozzuk az ellenőrző mátrixxal, az eredmény közvetlenül megadja a hibás bit sorszámát.