MI-AAK(Aritmetika a kódy) Lineárníkódy 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
K2. Lineárníkódy lineární prostory nulový prostor lineární kódy kódy generované maticí generovací a kontrolní matice ekvivalentní a duální kódy syndrom kódová vzdálenost a kontrolní matice Hammingův kód lineární kódy a kódová vzdálenost rozšířené kódy rozšířený Hammingův kód MI-AAK c A. Pluháček 2011
lineární prostory lineární = vektorový prostor V nad tělesem S: komutativní grupa V (aditivní) + násobení vektoru skalárem (skalár je prvek tělesa S) uzavřenost: ( s S)( v V) s v V asociativní zákon: ( s S)( t S)( v V) s (t v)=(s t) v násobení jednotkovým skalárem: ( v V) 1 v=v distributivní zákony: ( s S)( u V)( v V) s (u+v)=s u+s v ( s S)( t S)( v V) (s+t) v=s v+t v násobenínulovýmskalárem: ( v V) 0 v=0 0... nulový vektor nulový prvek grupy V Prvkygrupy V senazývajívektorya prvky tělesa S se nazývají skaláry. MI-AAK K2 1 c A. Pluháček 2011
příklady lineárních prostorů: lineární prostory ii 1. S... libovolnétěleso V... množinavšechuspořádaných n-ticprvkůtělesa S (v 1,...,vn)+(u 1,...,un)=(v 1 +u 1,...,vn+un) s (v 1,...,vn)=(s v 1,...,s vn) 0 (v 1,...,vn)=(0,...,0)=0 nulovývektor 2. S... libovolnétěleso V... množinavšechmnohočlenůdostupně m nad tělesem S(koeficienty jsou prvky tělesa S) m v i x i + m u i x i = m (v i +u i ) x i i=0 s m i=0 0 m i=0 i=0 i=0 v i x i = m (s v i ) x i i=0 v i x i = m (s 0) x i =0 nulovývektor i=0 izomorfní s prostorem uspořádaných n-tic, kde n = m+1 MI-AAK K2 2 c A. Pluháček 2011
lineární prostory iii W lineární(neboli vektorový) prostor V W ( s S)( v V) s v V ( u V)( v V)u+v V Každý podprostor je sám prostorem. V je podprostorem prostoru W Všechnylineárníkombinacejistýchvektorůu,...,v tvoří vektorový(lineární) prostor. Jsou-livektoryu,...,vlineárněnezávislétvořítzv. bázi prostoru. Vektorový prostor může mít mnoho různých bází. Všechny báze však mají stejný počet vektorů; tento počet se nazývá dimenze prostoru. MI-AAK K2 3 c A. Pluháček 2011
nulový prostor W prostor uspořádaných n-tic prvků tělesa S Lze definovat další operaci skalární součin: u=(u 1,...,un) W v=(v 1,...,vn) W u v=(v 1 u 1 +...+ vn un) S ortogonálnívektory: u v u v=0 př.: S=GF(2) n=5 01011 11101 = 0 1+1 1+0 1+1 0+1 1 = 0+1+0+0+1 = 0 tzn.01011 11101 (Ze zápisů uspořádaných n-tic byly vypuštěny čárky a závorka.) V je podprostor prostoru W U W ( u U)( v V)u v ( u U)u v v V Množina U je prostorem tzv. nulový prostor prostoru V. U se též nazývá ortogonální doplněk podprostoru V. označení: U V MI-AAK K2 4 c A. Pluháček 2011
nulový prostor ii př.: S=GF(2) n=5 U 00000 01011* 10101* 11110 ( u U)( v V) u v Bázeprostorů Ua V mohoutvořit např. vektory označené hvězdičkou. V 00000 00111* 01010* 01101 10011* 10100 11001 11110 U V skalárnísoučinjeoperacíkomutativní U V V U U V v V ( u U) v u ( u U)v u ( u B)v u,kde Bjebáze U. MI-AAK K2 5 c A. Pluháček 2011
lineární kódy lineární kód kódová slova tvoří lineární prostor grupový kód dvojkový lineární kód Budeme říkat(v předmětu MI-AAK), že kód K jeklonemkódu K, jsou-li množiny kódových slov obou kódů stejné. Př.: K K 00 00000 10101 01 01011 00000 10 10101 01011 11 11110 11110 Každý kód je svým vlastním klonem, K jeklonem K = Kjeklonem K, K jeklonem K, K jeklonem K = K jeklonem K. MI-AAK K2 6 c A. Pluháček 2011
kódy generované maticí matice G generovací matice označme:g i = itýřádekg Kódováslova(provšechny k-ticea=(a 1,...,a k )) b=a G=a 1 g 1 + +a k g k jsouvšemilineárnímikombinacemiřádkůg 1,...,g k. b=a G lineárníprostor báze:g 1,...,g k Každý kód generovaný maticí je lineární. Platí(v podstatě) i naopak: Každý lineární kód je klonem kódu generovaného nějakou maticí G. řádky matice = báze prostoru Řádky matice G musí být lineárně nezávislé! (Proč?) MI-AAK K2 7 c A. Pluháček 2011
kódy generované maticí ii úvaha: řádkyg prostor G a H G b G ( u H )b u jakákolivbáze H maticeh c G c H T =0 maticeh kontrolnímatice G H T =0 syndrom s=c H T Æ charakterchyb Řádky matice H by měly být lineárně nezávislé. (Proč?)? G H? MI-AAK K2 8 c A. Pluháček 2011
generovací a kontrolní matice ➊ G= I k F Û H= F T I n k, příklad: kde I j jejednotkovámaticeorozměrech j j G G= systematickýkód ( ) 10101 01011 Û H= 10100 01010 11001! početsloupcůmaticeg=početsloupcůmaticeh= =délkakódovéhoslova=n= =početřádkůmaticeg+početřádkůmaticeh Nemá-li matice G uvedený tvar, lze použít dále uvedené postupy (neboje něcoshnilého třebalineárnězávisléřádky). MI-AAK K2 9 c A. Pluháček 2011
generovací a kontrolní matice ii ➋MaticiGpřevedemenamaticiG,kterámá ( ) tvarpožadovanýv➊,tzn.g = I k, F,atovýlučnětzv. elementárními operacemi s řádky, tj.: záměna řádků, přičtení lineární kombinace jiných řádků, násobení řádku nenulovým skalárem. PaksematiciG přiřadímaticeh,atostejnýmzpůsobem jakosevpřípadě ➊maticiGpřiřadilamaticeH.! Uvědomímesi:! Elementární operace nemění prostor, jehož bází jsou řádky matice. Elementární operace nemění ani jeho nulový prostor! = H=H jekontrolnímaticíjakprog takprog! MI-AAK K2 10 c A. Pluháček 2011
generovací a kontrolní matice iii př.: G= G = ( ) 11110 10101 ( ) 10101 01011 záměna řádků a následné přičtení prvního řádku k druhému Û 10100 H = 01010 =H 11001 prostor prostor generovaný generovaný maticígig maticíhih 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 0 0 1 1 1 1 0 1 0 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 1 0 0 1 1 1 1 1 0 MI-AAK K2 11 c A. Pluháček 2011
generovací a kontrolní matice iv ➌ Matici G převedeme permutací π sloupců na matici G ( ) = I k, F. UrčímeH ) = (F, I n k. Na matici H aplikujeme opačnou permutaci π -1 sloupců. příklad: ( ) 11100 G= 00111 H= 11000 10101 00011 π= π -1 ( ) 12345 13452 π G = ( ) 10110 01011 H = 10100 11010 01001 ( ) π -1 12345 = 15234. MI-AAK K2 12 c A. Pluháček 2011
generovací a kontrolní matice v ➍ Elementárními operacemi s řádky upravíme matici G na tzv. kanonický tvar. Elementárními operacemi s řádky upravíme novou matici tak, aby obsahovala sloupce, se kterých lze vytvořit jednotkovoumatici I k. Aplikujeme předchozí postup, tzn. postup ➌. příklad: 1111 1111 1111 1111 1001 0110 G= 0000 1111 0011 0011 0101 0101 0011 0011 0101 0101 0011 0011 0101 0101 0000 1111 0000 1111 1000 1110 1110 1000 1111 0000 G = 0100 1101 0010 1011 H = 1101 0100 1011 0010 1100 1100 1010 1010 =H 0001 0111 0111 0001 0110 1001 MI-AAK K2 13 c A. Pluháček 2011
ekvivalentní a duální kódy ekvivalentní kódy: Kódová slova jednoho kódu se získají permutací π z kódových slov druhého kódu. Generovací i kontrolní matici lze získat stejnou permutací π. příklad ekvivalentních kódů: kód generovaný maticí G a kódgenerovanýmaticíg kanály bez paměti: ekvivalentní kódy stejné zabezpečení duální kódy: Kódová slova jednoho kódu tvoří nulový prostor druhého kódu. Generovací matice jednoho kódu je kontrolní maticí druhého kódu. MI-AAK K2 14 c A. Pluháček 2011
syndrom syndrom s=c H T délka r=n k... redundance b=a G b H T =a G H T =0 (předp.: lineárně nezávislé řádky matice H) s=c H T c=b+e s=e H T = syndromzávisípouzenachybě MI-AAK K2 15 c A. Pluháček 2011
kódová vzdálenost a kontrolní matice chyba vpozicích e s T i 0...010...0 i-týsloupech iaj 0...010...010...0 i-tý+j-týsloupech.. ξ = minimální počet lineárně závislých sloupců matice H. ξ dch kvzd 2 1 2 3 2 3 4 3 4... kvzd=ξ Kódová vzdálenost lineárního kódu je rovna minimálnímu počtu lineárně závislých sloupců kontrolní matice. MI-AAK K2 16 c A. Pluháček 2011
Hammingův kód oprava 1 chyby = vzájemně různé sloupce H: 0 0 0 1 1 1 1 H= 0 1 1 0 0 1 1 1 0 1 0 1 0 1 elementární operace: 1+2 1 3+1 3 2+3 2 0 1 1 1 1 0 0 H = 1 0 1 1 0 1 0 1 1 0 1 0 0 1 1 0 0 0 0 1 1 G= 0 1 0 0 1 0 1 0 0 1 0 1 1 0 0 0 0 1 1 1 1 Hammingův kód(7,4) MI-AAK K2 17 c A. Pluháček 2011
Hammingův kód ii kodér G= 1 0 0 0 0 1 1 0 1 0 0 1 0 1 0 0 1 0 1 1 0 0 0 0 1 1 1 1 MI-AAK K2 18 c A. Pluháček 2011
dekodér Hammingův kód iii H= 0 0 0 1 1 1 1 0 1 1 0 0 1 1 1 0 1 0 1 0 1 MI-AAK K2 19 c A. Pluháček 2011
Hammingův kód iv perfektní kód SEC, tzn. Hammingův kód všechnysyndromy využity (neexistuježádnýsyndrom,který kvzd=3 nepřísluší jedné nebo žádné chybě) n=2 r 1 k=n r r 2 3 4 5... kód (3,1) (7,4) (15,11) (31,26)... odvozenékódy:menší k= n; např.kódy(12,8),(21,16),(38,32),... MI-AAK K2 20 c A. Pluháček 2011
lineární kódy a kódová vzdálenost lineárníkód K b K a b K vzd(b,b ) = váha(b +b ) b +b K lineárníkód = kvzd = minim.váha 0 Nestačí zkoumat pouze některou bázi prostoru! př.: 10011 00000 G= 01010 00111 00111 01010 01101 10011 10100 11001 11110 kvzd = 2 MI-AAK K2 21 c A. Pluháček 2011
rozšířené kódy lineární kód K a lichá kódová vzdálenost rozšířenýkód K = kód K = kód K+sudáparita slovaslichouváhou... váhaseo1zvýší slovasesudouváhou... váhasenezmění kvzd(k )=kvzd(k)+1 př.: Hammingůvkód: kvzd=3 Hammingůvkód+parita: kvzd=4 rozšířený Hammingův kód př.: příčnáapodélnáparita: kvzd=3 příčnáapodélnáparita+ paritaparit : kvzd=4 MI-AAK K2 22 c A. Pluháček 2011
rozšířený Hammingův kód kvaziperfektní kód SEC DED, tzn. všechnysyndromy využity (neexistuježádnýsyndrom,který nepřísluší žádné, jedné nebo dvěma chybám) příklad jiná konstrukce kódu: 0 0 0 0 1 1 1 1 H= 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1 1 s=0000 = žádnáchyba s=xxx1 = 1chyba s=xxx0 = 2chyby obecně: kvzd=4 n=2 r 1 k=n r r 3 4 5 6... kód (4,1) (8,4) (16,11) (32,26)... MI-AAK K2 23 c A. Pluháček 2011