Kody blokowe Wykład 1, 3 III 2011

Podobne dokumenty
Kody blokowe Wykład 2, 10 III 2011

0 + 0 = 0, = 1, = 1, = 0.

Teoria informacji i kodowania Ćwiczenia Sem. zimowy 2016/2017

W11 Kody nadmiarowe, zastosowania w transmisji danych

Kodowanie i kompresja Tomasz Jurdziński Studia Wieczorowe Wykład Kody liniowe - kodowanie w oparciu o macierz parzystości

Matematyka dyskretna

Wykład 4 Udowodnimy teraz, że jeśli U, W są podprzetrzeniami skończenie wymiarowej przestrzeni V to zachodzi wzór: dim(u + W ) = dim U + dim W dim(u

Baza w jądrze i baza obrazu ( )

14. Przestrzenie liniowe

Ciała i wielomiany 1. przez 1, i nazywamy jedynką, zaś element odwrotny do a 0 względem działania oznaczamy przez a 1, i nazywamy odwrotnością a);

Laboratorium ochrony danych

Algebra liniowa z geometrią

Kodowanie i kompresja Streszczenie Studia dzienne Wykład 6

1.1 Definicja. 1.2 Przykład. 1.3 Definicja. Niech G oznacza dowolny, niepusty zbiór.

Układy równań liniowych

. : a 1,..., a n F. . a n Wówczas (F n, F, +, ) jest przestrzenią liniową, gdzie + oraz są działaniami zdefiniowanymi wzorami:

Wykład 5. Ker(f) = {v V ; f(v) = 0}

Algebra Liniowa 2 (INF, TIN), MAP1152 Lista zadań

Podstawy Informatyki: Kody. Korekcja błędów.

Ciała skończone. 1. Ciała: podstawy

Przestrzenie liniowe

Macierze. Rozdział Działania na macierzach

teoria informacji Kanały komunikacyjne, kody korygujące Mariusz Różycki 25 sierpnia 2015

1 WPROWADZENIE 1. Agata Pilitowska. parzysta. 3. Znaleźć odległość kodu kontroli parzystości nad ciałem GF (q).

Zadania z algebry liniowej - sem. I Przestrzenie liniowe, bazy, rząd macierzy

R n = {(x 1, x 2,..., x n ): x i R, i {1,2,...,n} },

cx cx 1,cx 2,cx 3,...,cx n. Przykład 4, 5

Przestrzenie wektorowe

Zajmijmy się najpierw pierwszym równaniem. Zapiszmy je w postaci trygonometrycznej, podstawiając z = r(cos ϕ + i sin ϕ).

Matematyka dyskretna

SIMR 2016/2017, Analiza 2, wykład 1, Przestrzeń wektorowa

Kody blokowe Wykład 5a;

Grupy, pierścienie i ciała

Przestrzeń unitarna. Jacek Kłopotowski. 23 października Katedra Matematyki i Ekonomii Matematycznej SGH

macierze jednostkowe (identyczności) macierze diagonalne, które na przekątnej mają same

Podstawowe struktury algebraiczne

Zadania z Algebry liniowej 4 Semestr letni 2009

Iloczyn skalarny. Mirosław Sobolewski. Wydział Matematyki, Informatyki i Mechaniki UW. 10. wykład z algebry liniowej Warszawa, grudzień 2013

Rozdział 5. Macierze. a 11 a a 1m a 21 a a 2m... a n1 a n2... a nm

Podstawowe struktury algebraiczne

ALGEBRA LINIOWA Z ELEMENTAMI GEOMETRII ANALITYCZNEJ. 1. Ciała

Relacje. opracował Maciej Grzesiak. 17 października 2011

1 Działania na zbiorach

9 Przekształcenia liniowe

3 Przestrzenie liniowe

Algebra liniowa. 1. Macierze.

Matematyka dyskretna

B jest liniowo niezależny V = lin (B) 1. Układ pusty jest bazą przestrzeni trywialnej {θ}. a i v i = i I. b i v i, (a i b i ) v i = θ.

2. Układy równań liniowych

Treść wykładu. Układy równań i ich macierze. Rząd macierzy. Twierdzenie Kroneckera-Capellego.

Detekcja i korekcja błędów w transmisji cyfrowej

Analiza funkcjonalna 1.

O pewnych związkach teorii modeli z teorią reprezentacji

Wprowadzenie do metod numerycznych Wykład 3 Metody algebry liniowej I Wektory i macierze

φ(x 1,..., x n ) = a i x 2 i +

Kombinacje liniowe wektorów.

4 Przekształcenia liniowe

PODSTAWY AUTOMATYKI. MATLAB - komputerowe środowisko obliczeń naukowoinżynierskich - podstawowe operacje na liczbach i macierzach.

MATEMATYKA I SEMESTR ALK (PwZ) 1. Sumy i sumy podwójne : Σ i ΣΣ

Macierze - obliczanie wyznacznika macierzy z użyciem permutacji

Układy równań i nierówności liniowych

Zestaw zadań 5: Sumy i sumy proste podprzestrzeni. Baza i wymiar. Rzędy macierzy. Struktura zbioru rozwiązań układu równań.

1.1. Pozycyjne systemy liczbowe

teoria informacji Entropia, informacja, kodowanie Mariusz Różycki 24 sierpnia 2015

Informacja o przestrzeniach Hilberta

Dla człowieka naturalnym sposobem liczenia jest korzystanie z systemu dziesiętnego, dla komputera natomiast korzystanie z zapisu dwójkowego

1. Wykład NWD, NWW i algorytm Euklidesa.

1 WPROWADZENIE 1. Agata Pilitowska. parzysta. 3. Znaleźć odległość kodu kontroli parzystości nad ciałem GF (q).

Wykład 4. Określimy teraz pewną ważną klasę pierścieni.

Luty 2001 Algorytmy (7) 2000/2001

15. Macierze. Definicja Macierzy. Definicja Delty Kroneckera. Definicja Macierzy Kwadratowej. Definicja Macierzy Jednostkowej

z = x + i y := e i ϕ z. cos ϕ sin ϕ = sin ϕ cos ϕ

Zadania egzaminacyjne

Chcąc wyróżnić jedno z działań, piszemy np. (, ) i mówimy, że działanie wprowadza w STRUKTURĘ ALGEBRAICZNĄ lub, że (, ) jest SYSTEMEM ALGEBRAICZNYM.

Pokazać, że wyżej zdefiniowana struktura algebraiczna jest przestrzenią wektorową nad ciałem

Systemy liczbowe. 1. Przedstawić w postaci sumy wag poszczególnych cyfr liczbę rzeczywistą R = (10).

1 Określenie pierścienia

1. Liczby zespolone. Jacek Jędrzejewski 2011/2012

dr Mariusz Grządziel 15,29 kwietnia 2014 Przestrzeń R k R k = R R... R k razy Elementy R k wektory;

DB Algebra liniowa semestr zimowy 2018

Iloczyn skalarny, wektorowy, mieszany. Ortogonalność wektorów. Metoda ortogonalizacji Grama-Schmidta. Małgorzata Kowaluk semestr X

Lista 6. Kamil Matuszewski 13 kwietnia D n =

1 Rząd macierzy. 2 Liniowa niezależność. Algebra liniowa. V. Rząd macierzy. Baza podprzestrzeni wektorowej

13 Układy równań liniowych

Zbiory, relacje i funkcje

Wektory i wartości własne

Wykład 9. Matematyka 3, semestr zimowy 2011/ listopada 2011

Przekształcenia liniowe

Matematyka dyskretna. Andrzej Łachwa, UJ, /10

Przepustowość kanału, odczytywanie wiadomości z kanału, poprawa wydajności kanału.

Rozwiązania, seria 5.

wszystkich kombinacji liniowych wektorów układu, nazywa się powłoką liniową uk ładu wektorów

Liczby zespolone. x + 2 = 0.

Pracownia Komputerowa wykład V

Jak łatwo zauważyć, zbiór form symetrycznych (podobnie antysymetrycznych) stanowi podprzestrzeń przestrzeni L(V, V, K). Oznaczamy ją Sym(V ).

Wyk lad 9 Baza i wymiar przestrzeni liniowej

Stan wysoki (H) i stan niski (L)

Skończone rozszerzenia ciał

Wektory i wartości własne

Detekcja i korekcja błędów w transmisji cyfrowej

Transkrypt:

Kody blokowe Wykład 1, 3 III 2011 Literatura 1. R.M. Roth, Introduction to Coding Theory, 2006 2. W.C. Huffman, V. Pless, Fundamentals of Error-Correcting Codes, 2003 3. D.R. Hankerson et al., Coding Theory and Cryptography. Essentials, 2000 1

Konstrukcja ciała Galois Ciało Galois rzędu q oznaczane jest symbolami F q = GF (q) i istnieje dokładnie dla q = p m, gdzie p {2, 3, 5, 7, 11,...} to liczba pierwsza oraz m N = {1, 2, 3,...}. Ciało F q jest jedyne z dokładnością do izomorfizmu. Może mieć wiele reprezentacji, ale wszystkie reprezentacje ciała ustalonego rzędu q są nawzajem izomorficzne. Z punktu widzenia reprezentacji ciał najprostszymi ciałami Galois są ciała F p, w których liczba elementów jest liczbą pierwszą p. Nadto właśnie ciało F p jest ciałem prostym w każdym ciele rzędu q = p m, tzn. F p jest najmniejszym w sensie inkluzji podciałem ciała GF(p m ). Przykład 3. F p = GF (p) = Z p, gdzie p jest liczbą pierwszą. Wtedy ciało Galois, a raczej zbiór jego elementów, ma postać F p = {0, 1,..., p 1}, gdzie elementy 0, 1,... oznaczają klasy reszt modulo p: 0 klasę [0], 1 klasę [1], i ogólnie [i] oznacza klasę wszystkich liczb całkowitych (ze zbioru Z), dla których reszta z dzielenia przez p jest i, i = 0, 1,..., p 1. Zatem F p = {[0], [1],..., [p 1]}. Działania w F p, czyli dodawanie i mnożenie modulo p, oznaczamy symbolami p i p. 2

Kanał transmisyjny binarny powinien być BSC (binary symmetric channel), tzn. dwójkowy (binarny) rozpoczęcie i zakończenie transmisji jest wykrywane, a kanał ma być bezpamięciowy symetryczny, tzn. prawdopodobieństwo poprawności jest takie samo dla obu symboli addytywny nie ma wymazywania ani wprowadzania nowych symboli; błąd może polegać na zmianie 0 w 1 lub 1 w 0. Tę ostatnią własność można wyrazić addytywnie w następujący sposób. Jeśli wysłano v C i otrzymano słowo w, w v (np. w C), to istnieje wektor e błędów w słowie w, taki że w = v 2 e lub równoważnie: w 2 e = v. Symbol 1 na dowolnej pozycji w słowie błędów e oznacza, że na tej pozycji nastąpiło przeinaczenie w kanale przesyłowym. Niech p oznacza prawdopodobieństwo przekłamania, 0 p 1, (albo niezawodności zgodnie z umową). Kanał jest bezużyteczny, gdy p 1 2, ponieważ wtedy nie da się określić interpretacji symboli wyjściowych. Wnioskiem jest, że kanał transmisyjny nazywamy dobrym, jeżeli spełnia warunek 0 p 1 (p 1 2 ). 3

Kodowanie informacji Niech u będzie słowem informacyjnym (u A k ), zaś C zbiorem słów kodujących oraz v słowem przesyłanym (v C A n ). Kodowaniem nazywamy bijekcję K postaci K : A k u v = K(u) C A n. Kody liniowe Jeżeli alfabet A ma strukturę ciała skończonego, wówczas zbiór A n wszystkich n-literowych słów dających się zapisać za pomocą alfabetu A, ma strukturę n- wymiarowej przestrzeni wektorowej nad ciałem A. Wtedy kodem liniowym długości n nazywamy podprzestrzeń wektorową C przestrzeni A n. 4

Metryka Niech X będzie dowolnym zbiorem niepustym. Metryką na zbiorze X nazywamy funkcję d : X X [0, ), która dla dowolnych elementów x, y, z należących do zbioru X, spełnia następujące warunki: 1. nieujemność, d(x, y) 0, i nieosobliwość, d(x, y) = 0 x = y, 2. symetrię, d(x, y) = d(y, x), 3. nierówność trójkąta, d(x, y) d(x, z) + d(z, y). Metryka Hamminga Metryką Hamminga nazywamy funkcję d H, która parom słów ustalonej długości przypisuje odległość równą liczbie pozycji, na których te dwa słowa się różnią. Formalnie, jeżeli x, y A n, to d H (x, y) = l, gdy x i y i dla dokładnie l wskaźników i spośród i = 1, 2,..., n. Dość łatwo można udowodnić, że metryka Hamminga jest metryką, tzn. ma trzy powyższe własności. 5

Minimalną wartość d funkcji d H na wszystkich parach różnych słów kodu C zapisujemy w postaci d = min x,y C, x y d H (x, y) i nazywamy (minimalnym) dystansem kodu C. Wtedy też d = min x,y C, x y wt(x y), gdzie wt(v) (wt od weight) jest liczbą niezerowych współrzędnych w słowie v. Zatem d znajdujemy po obliczeniu ( ) C 2 odległości. Jeśli jednak kod C jest liniowy, to dla x, y C mamy z := x y C oraz z 0 dla x y, a zatem d = min z C\{0} wt(z), tzn. d znajdujemy po obliczeniu tylko C 1 wag. 6

Wymagania stawiane kodom blokowym Jak już wcześniej wspominaliśmy, nie każdy ciąg znaków alfabetu jest zapisem słowa istniejącego w języku kodu. Problemem jest taki wybór słów kodowych, aby złożony z nich kod miał moc M dostatecznie dużą, ale by umożliwiał szybkie przesyłanie, czyli długość n ma być raczej mała, zaś kodowanie i dekodowanie dość proste, mało czasochłonne, oraz by kod miał wysoką odporność na zakłócenia, a to oznacza, że dystans d nie może być zbyt mały. Wymagania są więc kontradykcyjne, wysoce niezgodne. Można zauważyć, że wybranie kodu, w którym minimalna odległość słów wynosi 2, umożliwia wykrycie słów przychodzących z pojedynczymi błędami, bo słowa te nie należą do kodu. Natomiast, jeśli minimalna odległość słów wynosi 3, to kod nie tylko rozpoznaje słowa przychodzące z dwoma lub mniej błędami, ale i z dużym prawdopodobieństwem wskazuje dokładnie, w którym miejscu znalazł się błąd, tzn. kod umożliwia korygowanie pojedynczych błędów w słowach przychodzących. Wtedy bowiem słowo przychodzące z jednym błędem nie należy do kodu, ale jest w odległości 1 od jednego tylko słowa kodowego, a to właśnie słowo było wysłane, jeśli pojawił się błąd pojedynczy. 7

Kod powtarzający Przyjmujemy, że pojedyncze symbole y to słowa informacyjne, y A. Kodowanie w kodzie n-krotnie powtarzającym daje K(y) := y y... y (n razy), n 2. Przykład Dla n = 3 zamiast informacyjnego y mamy słowo kodowe yyy. Zatem kod binarny 3-krotnie powtarzający ma dwa słowa: 111, 000. Widać więc, że jest to liniowy kod [3, 1, 3], jego bazą bowiem jest jedno słowo 111. Jeśli więc otrzymano z kanału słowo 001, to dekodowanie prowadzi do słowa 000, które jest kodowe i najbliższe słowu otrzymanemu. Przykład Binarny kod parzystości (z parzystą liczbą jedynek w słowach) Dla n = 3 parametry kodu można zapisać w postaci: (3, M, d). Kodem tym jest zbiór C := {000, 110, 101, 011} i, jak widać, M = 4 oraz d = 2. Wtedy ogólna postać parametrów kodu wygląda następująco (3, 4, 2). Można stwierdzić, że jest to kod liniowy, ponieważ zbiór C jest zamknięty względem binarnego dodawania wektorów. Zatem C jest podprzestrzenią liniową przestrzeni F 3 2 nad ciałem F 2. Żeby wyznaczyć wszystkie parametry dla kodu liniowego C wystarczy znaleźć moc k bazy w C. Wiemy już, że k = log 2 M = 2. Ale możemy też łatwo znaleźć bazę. Zapisujemy (niezerowe) elementy zbioru C jako kolejne wiersze macierzy, powiedzmy A, i wyznaczamy jej WPS(A) (wierszową postać schodkową), w której wiersze przewodnikowe są niezerowe i stanowią szukaną bazę. Dla dowolnej macierzy A procedura taka produkuje bazę przestrzeni lin A generowanej przez wiersze macierzy A. Jednakże przypadek, gdy C jest binarnym kodem parzystości, jest szczególnie prosty. Wystarczy bowiem zauważyć, że k < 3, bo jedyny zbiór trzech niezerowych wektorów w C ma jako sumę słowo zerowe, a zatem każde dwa z tych słów stanowią bazę, skąd k = 2, zaś liczbą baz (nieuporządkowanych) jest 3. 8

Przypomnijmy elementarne przekształcenia wierszowe macierzy. Są to następujące działania na wierszach: zamiana miejscami dwóch wierszy (stąd permutowanie wierszy), pomnożenie dowolnego wiersza przez dowolny skalar różny od zera, dodanie do dowolnego wiersza dowolnego innego wiersza tej macierzy, pomnożonego przez dowolny skalar (w konsekwencji dodanie do wiersza kombinacji liniowej pozostałych wierszy). 9

Information rate Definiujemy wielkość R, którą nazwiemy wskaźnikiem (współczynnikiem) informacji (information rate) kodu (n, M) nad alfabetem F q o q symbolach. R = log q M, n gdzie M jest mocą kodu. Jeśli ten kod jest liniowy, to ma M = q k, gdzie k jest wymiarem kodu. Wtedy więc R = k n. Przykładowo dla binarnego kodu trzykrotnie powtarzającego długości n = 3 mamy R = 1 3. Natomiast dla binarnego kodu parzystości długości n = 3, R = 2 3. 10

Przykład Danymi są binarny kod C długości n = 11 = k (tzn. nie ma nadmiarowych symboli w słowach), a zatem C = 2 11 = 2048, oraz kanał o niezawodności p = 1 10 8 i z prędkością przesyłu 10 7 cyfr na sekundę. Zatem liczbą słów przesyłanych w ciągu 1 sekundy jest 107 11. To czy dany symbol dotrze do nas jako poprawny lub nie, można utożsamiać z sukcesem i porażką w rozkładzie Bernoullego. Dlatego też błędne słowo pojawia się z prawdopodobieństwem 11p 10 (1 p) + ( ) 11 2 p 9 (1 p) 2 +... + ( ) 11 11 (1 p) 11 11 10, 8 bo dla k 2, (1 p) k 0. Otrzymamy więc średnio 11 10 107 8 11 = 0, 1 błędnego słowa na sekundę, co daje odpowiednio 1 błąd na 10 sekund, 6 błędów na minutę, 360 błędów na godzinę, 8640 błędów na dobę i są to błędne słowa niezauważone. Sytuację tę łatwo poprawiamy. Mianowicie do słów informacyjnych dodajemy cyfrę kontrolną zwaną symbolem parzystości. Jeśli w słowie długości n = 11 liczba jedynek jest parzysta, dopisujemy 0, jeśli liczba jedynek jest nieparzysta, dopisujemy 1. Mamy więc k = 11 oraz n = 12. Teraz słowa z pojedynczymi błędami są wykrywane wśród słów otrzymanych. Prawdopodobieństwo zaś pojawienia się dwóch błędów w słowie wynosi 1 p 12 12p 11 (1 p) = ( ) 12 2 p 10 (1 p) 2 + 12 11 2 (1 p) 2 = 66 10, 16 bo dla k 3 jest (1 p) k (1 p) 2 i dlatego pomijamy składniki z czynnikami (1 p) k, gdzie k 3, zaś p 10 1. Obliczamy liczbę słów błędnych ale akceptowanych. Jest ich 66 10 107 16 12 = 11 2 10 9 na sekundę. Odwrotność tej liczby to średnia liczba sekund, w których pojawi się jedno błędne i niezauważone słowo. Jest to więc 2 10 9 11 sekund, a po przeliczeniu na dni jest to 2 10 9 11 /(602 24) > 2100, tzn. jedno błędne słowo jest akceptowane średnio co 2100 dni (!) 11

Kody Hamminga liniowe, binarne mają parametry [n = 2 r 1, k = n r, d = 3], r = 2, 3,..., gdzie r jest liczbą symboli nadmiarowych (ang. redundant). Jeśli r = 2, mamy do czynienia z kodem H 2 : [3, k = 3 2, 3] = [3, 1, 3]. Wtedy H 2 := {111, 000}, czyli jest to znany nam kod, kod 3-krotnie powtarzający. Macierz generująca Macierzą generującą kod liniowy C o parametrach [n, k, d] nazywamy macierz G = G C F k n 2, której wiersze stanowią bazę kodu C. Np. G = G H2 = [ 1 1 1 ]. Macierz generująca G ma postać systematyczną (lub standardową), gdy G = [I k A], gdzie A F k (n k) 2. Powyższa macierz G H2 = [I 1 A], gdzie A = [1 1], ma postać systematyczną. 12

Ortogonalność Ortogonalność w F n 2 określona jest za pomocą iloczynu skalarnego (ale zdegenerowanego). Jest to standardowy iloczyn skalarny, tzw. kropkowy (ang. dot product). Dla x, y F n 2 x y := n i=1 x iy i F 2. x y x y = 0 ( F 2 ). Przykład zdegenerowania iloczynu skalarnego Niech x = (101) = 101. Wtedy x 2 = 101 101 = 1 1 + 0 0 + 1 1 = 1 + 0 + 1 = 0 w F 2, tzn. kwadrat skalarny słowa niezerowego jest zerem (i nie jest kwadratem długości słowa). Zatem binarne słowo niezerowe, jeśli tylko ma parzystą wagę, to jest do siebie ortogonalne. Dla dowolnego zbioru S zawartego w F n 2, możemy rozważać powłokę liniową lin(s) =: S, tzn. S określamy jako zbiór wszystkich możliwych sum elementów zbioru S. Zatem S jest kodem liniowym generowanym przez podzbiór S. Symbol S oznacza zbiór wszystkich wektorów ortogonalnych do zbioru S, tzn. S := {x F n 2 x v = 0 v S}. Można sprawdzić, że zbiór S jest zamknięty względem dodawania, czyli jest kodem liniowym. Nadto S jest kodem ortogonalnym nie tylko do zbioru S, ale też do kodu S. Wynika to z rozdzielności iloczynu kropkowego względem dodawania wektorów. Kod S zawiera wszystkie wektory ortogonalne do kodu S, czyli jest dopełnieniem ortogonalnym kodu S w przestrzeni F n 2. Zachodzi więc równość S = S. Kod S nazywamy kodem dualnym do kodu generowanego przez S. Od dowolnego kodu liniowego możemy przejść do kodu dualnego, C C. Wtedy zachodzi twierdzenie (którego nie popsuło zdegenerowanie iloczynu skalarnego) dim C + dim C = n. 13