Kody blokowe
Transkrypt
Kody blokowe
Podstawowy sposób kodowania kanałowego: kod nadmiarowy – polega na dodaniu dodatkowych bitów nadmiarowych, których zadanie jest umożliwienie wykrycia i korekcji błędów transmisji Przykład: a0 – 00, a1 – 01 a2 – 10 a3 – 11 Wniosek: Nie jesteśmy w stanie wykryć błędu transmisji Dodajemy bity nadmiarowe: a0 – 0000, a1 – 0101, a2 – 1010, a3 – 1111 Odbieramy sygnał: 0111 Dodajemy kolejne bity nadmiarowe: a0 – 000000, a1 – 010101, a2 – 101010, a3 – 111111 Odbieramy sygnał: 011101 Minimalna odległość Hamminga – najmniejsza liczba symboli, o jaką różnią się 2 słowa kodowe dmin = 1 a0 – 00, a1 – 01 a2 – 10 a3 – 11 dmin = 2 a0 – 0000, a1 – 0101 a2 – 1010 a3 – 1111 dmin = 3 a0 – 000000, a1 – 010101 a2 – 101010 a3 – 111111 Liczba błędów, które można wykryć: w =dmin −1 Liczba błędów, które można skorygować: dmin −1 t= 2 Liniowe kody blokowe (n,k) n – długość słowa kodowego k – liczba bitów informacyjnych Słowo kodowe: c=[b1,b2, … ,bn-k ,m1,m2, … ,mk] bity parzystości bity informacyjne b =[b1, … ,bn-k] m =[m1, … ,mk] b = m ⋅P 1× (n − k ) 1× k (n − k )× k c = [b , m ] = m ⋅ [ P , I k ] = m ⋅ G G – macierz generująca kod Ik – macierz jednostkowa k x k ⎡1 ⎢0 Ik = ⎢ ⎢... ⎢ ⎣0 0 ... 0 ⎤ ⎥ 1 ... 0 ⎥ ... ... ...⎥ ⎥ 0 ... 1 ⎦ Macierz kontroli parzystości H [ H = I n −k P T ] ⎡In−k ⎤ G ⋅ H = [P Ik ]⋅ ⎢ T ⎥ = P + P = 0 ⎣P ⎦ T m ⋅G ⋅H = 0 T Dekodowanie z syndromem r – sygnał odebrany r = c + e e – sygnał błędu r ⋅ H = (c + e) ⋅ H = c ⋅ H + e ⋅ H = s T T T T s - syndrom – w przypadku transmisji bezbłędnej jest równy 0 Przykład: kod Hamminga (7,4) ⎡1 ⎢0 P=⎢ ⎢1 ⎢ ⎣1 1 1 1 0 0⎤ ⎥ 1⎥ 1⎥ ⎥ 1⎦ ⎡1 ⎢0 G=⎢ ⎢1 ⎢ ⎣1 1 1 1 0 0 1 1 1 1 0 0 0 0 1 0 0 0 0 1 0 0⎤ ⎥ 0⎥ 0⎥ ⎥ 1⎦ m c Waga kodu m c Waga kodu 0000 0000000 0 1000 1101000 3 0001 1010001 3 1001 0111001 4 0010 1110010 4 1010 0011010 3 0011 0100011 3 1011 1001011 4 0100 0110100 3 1100 1011100 4 0101 1100101 4 1101 0001101 3 0110 1000110 3 1110 0101110 4 0111 0010111 4 1111 1111111 7 dMIN = 3, w = 2, t=1 Macierz kontroli parzystości H ⎡1 0 0 1 0 1 1⎤ ⎥ ⎢ H = ⎢0 1 0 1 1 1 0⎥ ⎢⎣0 0 1 0 1 1 1⎥⎦ Rozkład błędów syndrom 0000000 000 1000000 100 0100000 010 0010000 001 kolumny 0001000 110 0000100 011 macierzy H 0000010 111 0000001 101 kolejne