WST P DO TEORII INFORMACJI I KODOWANIA. Grzegorz Szkibiel. Wiosna 2013/14

Podobne dokumenty
WST P DO TEORII INFORMACJI I KODOWANIA. Grzegorz Szkibiel. Wiosna 2013/14

WST P DO TEORII INFORMACJI I KODOWANIA. Grzegorz Szkibiel. Wiosna 2013/14

WST P DO TEORII INFORMACJI I KODOWANIA. Grzegorz Szkibiel. Wiosna 2013/14

WST P DO TEORII INFORMACJI I KODOWANIA. Grzegorz Szkibiel. Wiosna 2013/14

1 Kodowanie i dekodowanie

Semestr letni 2014/15

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

XVII Warmi«sko-Mazurskie Zawody Matematyczne

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

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

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

Metody dowodzenia twierdze«

O pewnym zadaniu olimpijskim

Ciaªa i wielomiany. 1 Denicja ciaªa. Ciaªa i wielomiany 1

Relacj binarn okre±lon w zbiorze X nazywamy podzbiór ϱ X X.

JAO - J zyki, Automaty i Obliczenia - Wykªad 1. JAO - J zyki, Automaty i Obliczenia - Wykªad 1

1 Metody iteracyjne rozwi zywania równania f(x)=0

A = n. 2. Ka»dy podzbiór zbioru sko«czonego jest zbiorem sko«czonym. Dowody tych twierdze«(elementarne, lecz nieco nu» ce) pominiemy.

Metodydowodzenia twierdzeń

PRZYPOMNIENIE Ka»d przestrze«wektorow V, o wymiarze dim V = n < nad ciaªem F mo»na jednoznacznie odwzorowa na przestrze«f n n-ek uporz dkowanych:

Przekroje Dedekinda 1

ANALIZA NUMERYCZNA. Grzegorz Szkibiel. Wiosna 2014/15

1 Bª dy i arytmetyka zmiennopozycyjna

Macierze i Wyznaczniki

Wybrane poj cia i twierdzenia z wykªadu z teorii liczb

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

Elementy geometrii w przestrzeni R 3

Macierze i Wyznaczniki

Materiaªy do Repetytorium z matematyki

Wykªad 4. Funkcje wielu zmiennych.

Macierze. 1 Podstawowe denicje. 2 Rodzaje macierzy. Denicja

2 Liczby rzeczywiste - cz. 2

X WARMI SKO-MAZURSKIE ZAWODY MATEMATYCZNE 18 maja 2012 (szkoªy ponadgimnazjalne)

Podstawy matematyki dla informatyków

istnienie elementu neutralnego dodawania (zera): 0 K a K a + 0 = a, istnienie elementu neutralnego mno»enia (jedynki): 1 K a K a 1 = a,

Teoria grafów i jej zastosowania. 1 / 126

Wektory w przestrzeni

Zbiory i odwzorowania

Elementy geometrii analitycznej w przestrzeni

Ukªady równa«liniowych

Maszyny Turinga i problemy nierozstrzygalne. Maszyny Turinga i problemy nierozstrzygalne

Zad. 1 Zad. 2 Zad. 3 Zad. 4 Zad. 5 SUMA. W obu podpunktach zakªadamy,»e kolejno± ta«ców jest wa»na.

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

Wst p teoretyczny do wiczenia nr 3 - Elementy kombinatoryki

Funkcje, wielomiany. Informacje pomocnicze

x y x y x y x + y x y

Matematyka wykªad 1. Macierze (1) Andrzej Torój. 17 wrze±nia Wy»sza Szkoªa Zarz dzania i Prawa im. H. Chodkowskiej

Lekcja 9 - LICZBY LOSOWE, ZMIENNE

Czy funkcja zadana wzorem f(x) = ex e x. 1 + e. = lim. e x + e x lim. lim. 2 dla x = 1 f(x) dla x (0, 1) e e 1 dla x = 1

Wykªad 7. Ekstrema lokalne funkcji dwóch zmiennych.

WST P DO KRYPTOGRAFII. Grzegorz Szkibiel. Jesie«2012/13

ZADANIA. Maciej Zakarczemny

Zdzisªaw Dzedzej, Katedra Analizy Nieliniowej pok. 611 Kontakt:

Uczenie Wielowarstwowych Sieci Neuronów o

Logika dla matematyków i informatyków Wykªad 1

WST P DO TEORII INFORMACJI I KODOWANIA. Grzegorz Szkibiel. Wiosna 2014/15

Zadania z kolokwiów ze Wst pu do Informatyki. Semestr II.

Matematyka dyskretna dla informatyków

c Marcin Sydow Spójno± Grafy i Zastosowania Grafy Eulerowskie 2: Drogi i Cykle Grafy Hamiltonowskie Podsumowanie

Wst p do informatyki. Systemy liczbowe. Piotr Fulma«ski. 21 pa¹dziernika Wydziaª Matematyki i Informatyki, Uniwersytet Šódzki, Polska

Arkusz maturalny. Šukasz Dawidowski. 25 kwietnia 2016r. Powtórki maturalne

c Marcin Sydow Przepªywy Grafy i Zastosowania Podsumowanie 12: Przepªywy w sieciach

Matematyka dyskretna dla informatyków

ELEMENTARNA TEORIA LICZB. 1. Podzielno±

KLASYCZNE ZDANIA KATEGORYCZNE. ogólne - orzekaj co± o wszystkich desygnatach podmiotu szczegóªowe - orzekaj co± o niektórych desygnatach podmiotu

Rzut oka na zagadnienia zwi zane z projektowaniem list rozkazów

Liczby zmiennoprzecinkowe

Vincent Van GOGH: M»czyzna pij cy li»ank kawy. Radosªaw Klimek. J zyk programowania Java

3. (8 punktów) EGZAMIN MAGISTERSKI, Biomatematyka

Ekstremalnie fajne równania

Lekcja 8 - ANIMACJA. 1 Polecenia. 2 Typy animacji. 3 Pierwsza animacja - Mrugaj ca twarz

Twierdzenie Wainera. Marek Czarnecki. Warszawa, 3 lipca Wydziaª Filozoi i Socjologii Uniwersytet Warszawski

Semestr letni 2014/15

Liczby zmiennopozycyjne. Kody Hamminga.

Wojewódzki Konkurs Matematyczny

2. L(a u) = al( u) dla dowolnych u U i a R. Uwaga 1. Warunki 1., 2. mo»na zast pi jednym warunkiem: L(a u + b v) = al( u) + bl( v)

Opis matematyczny ukªadów liniowych

ANALIZA MATEMATYCZNA Z ALGEBR

Interpolacja funkcjami sklejanymi

Twierdzenie Wedderburna Witold Tomaszewski

Równania ró»niczkowe I rz du (RRIR) Twierdzenie Picarda. Anna D browska. WFTiMS. 23 marca 2010

Dokªadny jak komputer?

Lekcja 12 - POMOCNICY

Oba zbiory s uporz dkowane liniowo. Badamy funkcj w pobli»u kresów dziedziny. Pewne punkty szczególne (np. zmiana denicji funkcji).

Wielomiany o wspóªczynnikach rzeczywistych

Bash i algorytmy. Elwira Wachowicz. 20 lutego

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

1 a + b 1 = 1 a + 1 b 1. (a + b 1)(a + b ab) = ab, (a + b)(a + b ab 1) = 0, (a + b)[a(1 b) + (b 1)] = 0,

Zastosowania matematyki

Lab. 02: Algorytm Schrage

i, lub, nie Cegieªki buduj ce wspóªczesne procesory. Piotr Fulma«ski 5 kwietnia 2017

Elementarna statystyka

Algebra Liniowa 2. Zadania do samodzielnych wicze«wydziaª Elektroniki, I rok Karina Olszak i Zbigniew Olszak

Podzbiory Symbol Newtona Zasada szuadkowa Dirichleta Zasada wª czania i wyª czania. Ilo± najkrótszych dróg. Kombinatoryka. Magdalena Lema«ska

Liczenie podziaªów liczby: algorytm Eulera

Ÿ1 Oznaczenia, poj cia wst pne

Transkrypt:

WST P DO TEORII INFORMACJI I KODOWANIA Grzegorz Szkibiel Wiosna 2013/14

Spis tre±ci 1 Kodowanie i dekodowanie 4 1.1 Kodowanie a szyfrowanie..................... 4 1.2 Podstawowe poj cia........................ 5 1.3 Dekodowanie jednoznaczne.................... 7 1.4 Kody blokowe i natychmiastowe................. 7 1.5 Przykªady znanych kodów blokowych.............. 8 2 Twierdzenia Krafta i McMillana 10 2.1 Konstruowanie kodów natychmiastowych............ 10 2.2 Twierdzenia............................ 11 3 Kody Humana 13 3.1 ródªo informacji......................... 13 3.2 Denicja kodu Humana..................... 14 3.3 Konstrukcja kodu Humana................... 15 4 Kompresowanie kodów i entropia 19 4.1 Przykªad kompresowania danych................. 19 4.2 Idea entropii............................ 20 4.3 Denicja entropii......................... 21 4.4 Maximum i minimum entropii.................. 22 4.5 Rozszerzenie ¹ródªa........................ 24 4.6 Entropia a przeci tna dªugo± sªowa kodowego......... 25 4.7 Twierdzenie Shannona o kodowaniu bezszumowym....... 26 5 Pewna komunikacja poprzez niepewne ª cza 28 5.1 Symetryczne ª cze binarne.................... 28 5.2 Pr dko± przepªywu informacji.................. 30 2

5.3 Bariera pojemno±ci........................ 31 5.4 Odlegªo± Hamminga....................... 32 5.5 Wykrywanie i poprawianie bª dów................ 34 6 Kody liniowe 36 6.1 Denicja.............................. 36 6.2 Macierz generuj ca........................ 37 6.3 Równania opisuj ce kody..................... 40 6.4 Macierz sprawdzaj ca parzysto±................ 41 6.5 Waga Hamminga......................... 42 6.6 Syndrom.............................. 44 6.7 Wykrywanie i poprawianie bª dów................ 45 7 Kody Hamminga 47 7.1 Optymalne kody poprawiaj ce pojedyncze bª dy........ 47 7.2 Przykªady kodów Hamminga................... 49 7.3 Dekodowanie kodów Hamminga................. 50 7.4 Uwagi ko«cowe.......................... 51 8 Kody ReedaMüllera 52 8.1 Funkcje Boole'a.......................... 52 8.2 Wielomiany Boole'a........................ 55 8.3 Kody ReedaMüllera....................... 57 8.4 Geometria aniczna nad ciaªem Z 2............... 61 8.5 Dekodowanie kodu Reeda-Müllera................ 64 3

Rozdziaª 1 Kodowanie i dekodowanie Teoria informacji zajmuje si sposobami gromadzenia, przechowywania oraz przesyªania informacji. Przesyªanie odbywa si za pomoc ª czy kablowych, czy te» za po±rednictwem przeka¹ników fal. Zatem, by przesªa wiadomo± musimy j zakodowa. Informacje kodujemy te» dla ochrony przed intruzami. Teoria kodowania zajmuje si sposobami zakodowania lub zaszyfrowania informacji. 1.1 Kodowanie a szyfrowanie Te dwa wyrazy cz sto s stosowane zamiennie, co jest bª dem. Na przykªad, znaki drogowe s przykªadem pewnego kodu: zamiast pisa informacje na tabliczce, narysowany jest pewien symbol w gurze okre±lonego ksztaªtu. Jest tak, by ka»dy ªatwo rozpoznaª i odczytaª informacj. Celem nie jest tu ukrycie informacji tak, by tylko nieliczni mogli j odczyta. Podobnie, podczas rozmowy telefonicznej, wypowiedziane sªowa s kodowane, by mo»na je byªo przesªa do aparatu odbiorcy. Dzwoni cy cz sto nie wie, jakiego typu telefon ma odbieraj cy. Dlatego kod rozmowy powinien by odczytany przez ka»dy telefon. Tak zwana czerwona linia Waszyngton - Moskwa posiada urz dzenia szyfruj ce, pozwalaj ce zrozumie tylko tre±ci przesyªane przez okre±lony aparat telefoniczny. Ka»dy j zyk mówiony te» jest przykªadem pewnego kodu sªu» cemu przesyªowi informacji, dzi ki którym porozumiewamy si. 4

Rysunek 1.1: Znaki drogowe 1.2 Podstawowe poj cia Aby zakodowa dan wiadomo± stosujemy pewnego rodzaju alfabet kodowy. Najcz ±ciej jest to zbiór dwuelementowy {0, 1}, czyli danej literze alfabetu przypisujemy pewien ci g zer i jedynek. Sªowa tworzymy poprzez poª czenie kodów liter wyst puj cych w tym sªowie. Chcemy generalnie dwóch rzeczy: 1) Aby zakodowana wiadomo± byªa jak najkrótsza, wi c aby transmisja informacji trwaªa mo»liwie nakrócej. 2) Aby zakodowana wiadomo± byªa zabezpieczona przed znieksztaªceniami jakie mog powsta przy jej przesyªaniu. Zauwa»my,»e punkty 1) oraz 2) przecz sobie im krótszy jest kod tym ªatwiej jest uczyni go nierozszyfrowywalnym poprzez znieksztaªcenie paru znaków. Powstaje zatem problem pogodzenia powy»szych dwóch»ycze«. Na pocz tek zaªo»ymy,»e kody nie ulegaj znieksztaªceniu, wi c ª cze, po którym przesyªamy wiadomo± nie jest podatne na szumy. Przy tym zaªo»eniu spróbujemy maksymalnie skompresowa informacje. Nast pnie otrzymany skompresowany kod uczynimy odpornym na szumy poprzez dodanie do niego pewnych znaków sprawdzaj cych. Dowolny sko«czony zbiór nazywamy alfabetem, jego elementy literami lub symbolami, a sko«czone lub niesko«czone ci gi zªo»one z liter nazywamy wyrazami, sªowami lub wiadomo±ciami. Niech A oraz B oznaczaj dwa sko«czone zbiory. Oznaczmy przez w(b) zbiór wszystkich sko«czonych sªów zapisanych za pomoc alfabetu B. Dowolna 5

A 0 1 2 3 4 w(b) 00011 11000 10100 01100 10010 A 5 6 7 8 9 w(b) 01010 00110 10001 01001 00101 Rysunek 1.2: Kod 2z5 funkcja f : A w(b) nazywa si kodowaniem. Jej obraz nazywamy kodem. Alfabet A nazywamy alfabetem ¹ródªowym, natomiast alfabet B nazywamy alfabetem kodowym. Je±li alfabet kodowy ma dokªadnie dwa elementy, to kodowanie nazywamy binarnym, dwójkowym lub zerojedynkowym. 1.1 Przykªad. Niech A = {0, 1,..., 9} i B = {0, 1}. Przykªadem kodu jest funkcja z rysunku 1.2. Zauwa»my,»e w ka»dym sªowie kodu 2z5 wyst puj dokªadnie dwie jedynki. Policzmy ile jest mo»liwo±ci zakodowania symbolu sªowem zapisanym alfabetem ( B, w którym wyst puj dwie jedynki. Liczba tych mo»liwo±ci to 5 ) 2 = 10. Zatem nasze kodowanie jest suriekcj. Wyraz 173 kodujemy jako 110001000101100. Nie u»ywamy spacji, poniewa» mo»e ona by traktowana jako litera. Zakodowan w powy»ej wiadomo± 110001000101100 mo»emy rozkodowa bior c zawsze blok pi ciu znaków i odczytuj c z tabelki co on oznacza. Innym sposobem rozkodowania jest u»ycie klucza 01247 jako wag odpowiedniego symbolu w kodzie. Dokªadnie, 110001000101100 rozszyfrowujemy nast puj co 1 0 + 1 1 + 0 2 + 0 4 + 0 7 = 1 1 0 + 0 1 + 0 2 + 0 4 + 1 7 = 7 0 0 + 1 1 + 1 2 + 0 4 + 0 7 = 3. Wyj tkiem jest tu liczba 0, która rozkodowuje si w ten sposób jako 11 (zamiast 0). Zauwa»my,»e ka»dy kod rozkodowujemy natychmiastowo (tj. do rozkodowania potrzebny nam jest blok pi ciu bitów) oraz jednoznacznie. 6

a b c d e 00 10 101 110 1001 Rysunek 1.3: Kod niejednoznacznie dekodowalny 1.3 Dekodowanie jednoznaczne Dla alfabetów ¹ródªowego A oraz kodowego B, niech K : A w(b) b dzie kodowaniem. Kodowaniem wiadomo±ci ¹ródªowej nazywamy funkcj K : w(a) w(b) okre±lon wzorem K (a 1 a 2... a n ) = K(a 1 )K(a 2 )... K(a n ). Kodowanie K nazywamy jednoznacznie dekodowalnym, je±li K jest ró»nowarto±ciowa. Studiuj c procedur dekodowania, ªatwo jest zauwa»y,»e kod 2z5 z przykªadu 1.1 jest jednoznacznie dekodowalny. 1.2 Przykªad. Kod z rysunku 1.3 nie jest jednoznacznie dekodowalny. Ci g 10110 mo»e tu by rozkodowany jako cb lub te» jako bd. Zauwa»my,»e funkcja K jest ró»nowarto±ciowa, natomiast generowana przez ni funkcja K nie jest. 1.4 Kody blokowe i natychmiastowe Kodowanie, którego kod skªada si z parami ró»nych wyrazów o jednakowej dªugo±ci n nazywamy kodem blokowym dªugo±ci n. Kodowanie nazywamy natychmiastowym, je»eli»adne sªowo kodowe nie jest pocz tkiem innego sªowa kodowego, tj. je±li element alfabetu ¹ródªowego ma kod b 1 b 2... b n, to»aden inny element tego alfabetu nie ma kodu b 1 b 2... b n b n+1... b m. Kod 2z5 jest przykªadem kodu blokowego dªugo±ci 5. Kody blokowe s ªatwo dekodowalne, ale staj si za dªugie je±li pewne symbole ¹ródªowe pojawiaj si w wiadomo±ci zbyt cz sto. Warto wówczas zastosowa kod natychmiastowy, w którym sªowa s ró»nej dªugo±ci. 7

0 000 4 100 1 001 5 101 2 010 6 110 3 011 7 111. Rysunek 1.4: Kod ósemkowy 1.3 Przykªad. Kod Morse'a jest tak pomy±lany,»e najcz ±ciej (w j zyku angielskim) u»ywane sªowa maj najkrótsze kody. Alfabetem ¹ródªowym jest tu alfabet ªaci«ski, a alfabetem kodowym B = {,, } (trzecim elementem zbioru B jest spacja). Liter A kodujemy jako, a T jako itp. Sªowo,,spacja ma kod Spacja zawsze jest na ko«cu kodu litery. Dlatego kod Morse'a jest natychmiastowy. 1.4 Przykªad. Kod ósemkowy podany na rysunku 1.4 jest przykªadem kodu blokowego. Dokªadnie, ka»de sªowo kodowe, to zapis dwójkowy cyfry od 0 do 7. 1.5 Przykªad. Rozwa»my kod 0 0 2 011 1 01 3 111 Nigdy nie uda nam si rozkodowa zakodowanej wiadomo±ci je±li nie znamy caªego kodu. Dokªadnie, strumie«011111... mo»e by 033... lub 133... lub te» 233... Zatem kod ten nie jest natychmiastowy. 1.5 Przykªady znanych kodów blokowych 128 symboli ¹ródªowych klawiatury komputera jest zakodowanych kodem ASCII (American Standard Code for Information Interchange). Jest to binarny kod blokowy dªugo±ci 8. Siedem pierwszych cyfr tego kodu nazywamy 8

symbolami informacyjnymi, gdy» to one nios informacj jaki sygnaª z klawiatury zostaª nadany. Ostatni, ósmy bit jest bitem sprawdzaj cym parzysto±. Jest on ustalony tak, aby ilo± jedynek w kodzie byªa parzysta. Ka»da ksi»ka ma swój kod ISBN (International Standard Book Number). Do ko«ca 2006 roku byª to kod blokowy dªugo±ci 10. Na przykªad ISBN-83-01-06891-4 oznacza,»e ksi»ka zostaªa wydana w kraju o kodzie 83 (Polska), wydawnictwie 01 (PWN) i jej numer w tym wydawnictwie to 06891. Ostatni symbol jest symbolem sprawdzaj cym wyznaczonym tak,»e 11 jest dzielnikiem 10 i=1 ia i, gdzie a i jest itym znakiem kodu. Alfabet kodowy ma tu 11 symboli i oprócz cyfr jest tam jeszcze symbol X. Dla podanego kodu powy»sza suma wynosi 209, co jest podzielne przez 11. Od 1 stycznia 2007 roku zmieniª si standard nadawania numerów ISBN. Ró»nica polega na tym,»e na pocz tku dodano numer 978 oraz jest inna zasada obliczania cyfry kontrolnej: cyfry z pozycji nieparzystych maj wag 1, a z pozycji parzystych wag 3. Cyfr kontroln (znajduje si ona na ko«cu, czyli na pozycji nieparzystej) dobieramy tak, by wa»ona suma byªa podzielna przez 10. Numer 83-01-06891-4 to obecnie 978-83-01-06891-2. Numer konta w banku (IBAN) jest te» kodem: PL21 1140 2004 0000 3702 3209 3385 PL oznacza tu polsk 1140 2004 jest numerem banku i oddziaªu. Pozostaªe cyfry oznaczaj numer klienta i s wyznaczane przez bank. Liczba 21 jest liczb kontroln. Oblicza si j w nast puj cy sposób: 1. Literom PL przypisujemy symbol liczbowy wedªug zasady miejsce w alfabecie+9. A ma symbol 10, B 11, itd. PL ma wi c numer 2521. 2. liczb 2521 umieszczamy na ko«cu numeru. 3. Odrzucamy dwie pierwsze cyfry numeru, na ko«cu dodajemy dwa zera i obliczamy reszt z dzielenia otrzymanej liczby przez 97. W naszym wypadku mamy 114020040000370232093385252100 mod 97 = 77. 4. Poprzedni wynik odejmujemy od 98. W przypadku, gdy jest to liczba jednocyfrowa, dodajemy z przodu zero. U nas jest to 21. Nie ma dwóch numerów kont, które ró»niªyby si tylko jedn lub dwiema cyframi. Je±li przez omyªk przy wykonywaniu przelewu pomylimy si o jedn lub dwie cyfry w numerze konta, to przelew zostanie odrzucony. 9

Rozdziaª 2 Twierdzenia Krafta i McMillana 2.1 Konstruowanie kodów natychmiastowych Zajmiemy si teraz konstrukcjami dwójkowych kodów natychmiastowych. W tym celu ustalmy alfabet A = {a 1, a 2,..., a n }. Chcieliby±my,»eby kod miaª jak najkrótsze sªowa kodowe. B dziemy szukali te» zale»no±ci mi dzy dªugo±ciami sªów kodowych. Dla litery a i, dªugo± jej kodu oznaczmy przez d i. Mo»emy zaªo»y,»e d 1 d 2 d n. Nasza konstrukcja przebiega nast puj co: 1) Za K(a 1 ) wybieramy jakiekolwiek sªowo dwójkowe dªugo±ci d 1. Jest to mo»liwe je±li d 1 1. Mamy wówczas mo»liwo± wyboru spo±ród 2 d 1 sªów. Dodatkowo zachodzi nierówno± 2 d 1 1. 2) W±ród wszystkich sªów, które nie zaczynaj si od K(a 1 ), wybieramy sªowo K(a 2 ) dªugo±ci d 2. Zauwa»my,»e wybór jest mo»liwy poniewa» mamy 2 d 2 wszystkich sªów dªugo±ci d 2 i 2 d 2 d 1 sªów dªugo±ci d 2, których pocz tkiem jest K(a 1 ). Je±li wi c 2 d 2 > 2 d 2 d 1, to mamy przynajmniej jeden wybór K(a 2 ). Nierówno± ta zachodzi, poniewa» d 1 > 0. Dodatkowo mamy jeszcze 2 d 1 + 2 d 2 1. 3) Podobnie jak w 2) spo±ród wszystkich sªów, które si nie zaczynaj od K(a 1 ) ani od K(a 2 ) wybieramy sªowo K(a 3 ) dªugo±ci d 3. Aby wybór byª mo»liwy musi by speªniona nierówno± 2 d 3 > 2 d 3 d 1 +2 d 3 d 2, która jest równowa»na nierówno±ci 2 d 1 + 2 d 2 + 2 d 3 1. 10

4) Post pujemy jak w 3) wybieraj c kolejno K(a 4 ), K(a 5 ),..., K(a n ). Aby wybór sªowa K(a i ) byª mo»liwy musi zachodzi nierówno± 2 d 1 + 2 d 2 + + 2 d i 1. Zatem aby mo»na byªo wybra sªowa K(a 1 ), K(a 2 ),..., K(a n ), ich dªugo±ci musz speªnia warunek 2 d 1 + 2 d 2 + + 2 dn 1. Otrzyman nierówno± nazywamy nierówno±ci Krafta dla kodu dwójkowego. W nast pnym podrozdziale przedstawimy twierdzenia uogólniaj ce powy»sz konstrukcj. 2.2 Twierdzenia 2.1 Twierdzenie. (Krafta) Zaªó»my,»e alfabet ¹ródªowy ma n symboli, a alfabet kodowy k symboli. Kod natychmiastowy o sªowach kodowych dªugo±ci d 1, d 2,..., d n istnieje je±li zachodzi nierówno± k d 1 + k d 2 + + k dn 1. Twierdzenie odwrotne do powy»szego jest prawdziwe. Poka»emy nawet wi cej, a mianowicie 2.2 Twierdzenie. (McMillana) Nierówno± Krafta jest speªniona dla ka»dego kodu jednoznacznie dekodowalnego. Zatem ka»dy kod jednoznacznie dekodowalny mo»na zast pi kodem natychmiastowym, który ma sªowa kodowe takiej samej dªugo±ci co kod wyj±ciowy. Dowód. Dla dowodu oznaczmy przez A = {a 1, a 2,..., a n } alfabet ¹ródªowy, przez B alfabet kodowy, który ma k elementów, przez K kodowanie, a przez d 1, d 2,..., d n dªugo±ci odpowiednich sªów kodowych. Dla dowolnego j, liczba wszystkich j-literowych sªów zapisanych za pomoc alfabetu B wynosi k j. Zatem liczba wszystkich wiadomo±ci a j1 a j2... a jr, których kod ma dªugo± j, nie mo»e by wi ksza od k j. Dokªadnie, zachodzi tu równo± d j1 + d j2 + + d jr = j. (2.1) 11

Zatem ilo± wszystkich mo»liwych sum postaci (2.1) jest mniejsza lub równa k j. Rozwa»my teraz n c = k d i. i=1 c r Mamy lim r r = wtedy i tylko wtedy, gdy c > 1. Poka»emy,»e ci g ( c r r jest ograniczony, co uzasadni fakt,»e c 1. W tym celu obliczmy c r. ( n ) r c r = i=1 = = k d i i 1,i 2,...,i r k (di1 +di2 + +dir ) dr j=1 d i1 +d i2 + +d ir =j dr j=1 d i1 +d i2 + +d ir =j dr k j k j = dr. j=1 k (d i 1 +d i2 + +d ir ) k j Tutaj d = max(d 1, d 2,..., d n ). Zatem cr r d i c 1. Rozwa»my przykªad nast puj cego kodu: A B C D F G H I 11 12 13 21 22 23 31 32 rednia dªugo± sªowa kodowego to 2. Jednak, jedno ze sªów dwuznakowych (33) nie jest wykorzystane. Czy mo»na wi c nasz kod zoptymalizowa, tj. tak go poprawi, by ±rednia dªugo± sªowa kodowego byªa mniejsza? Zauwa»my,»e je±li kod jednej z liter b dzie miaª dªugo± 1, to nie b dzie speªniona nierówno± Krafta, czyli kod nie b dzie ju» jednoznacznie dekodowalny. Kod byªby optymalny, gdyby w nierówno±ci Krafta byªaby równo±, ale w przypadku gdy mamy sum o±miu skªadników o równych licznikach, a w mianownikach których s pot gi trójki, otrzymanie takiej równo±ci nie jest mo»liwe. 12 ) r

Rozdziaª 3 Kody Humana Kod Humana stanowi rozwi zanie minimalizacji dªugo±ci kodu dla danego tekstu. Dla przykªadu, rozwa»my problem znalezienia takiego kodu binarnego dla alfabetu {A, B, D, K, R}, aby sªowo abrakadabra miaªo mo»liwie najkrótszy kod. Interesuj nas przy tym, oczywi±cie, tylko kody jednoznacznie dekodowalne. Je±li zastosujemy tu kod blokowy, to b dzie on miaª dªugo± nie mniejsz ni» 3. Wówczas nasze sªowo b dzie miaªo kod przynajmniej trzydziesto-trzy znakowy. Kod Humana daje mo»liwo± zakodowania sªowa abrakadabra kodem natychmiastowym dªugo±ci 23, co daje prawie trzydziesto procentow oszcz dno±. 3.1 ródªo informacji ródªem informacji nazywamy alfabet ¹ródªowy wraz z dystrybucj prawdopodobie«stw wyst powania poszczególnych liter tego alfabetu, tj. zbiór A = {a 1, a 2,..., a n }, przy czym n > 1 wraz z funkcj P : A (0, 1) speªniaj c warunek n P (a i ) = 1. i=1 Zaªó»my jeszcze,»e prawdopodobie«stwa wyst powania poszczególnych liter w tek±cie s niezale»ne, tj. P (a i1 a i2... a ik ) = 13 n P (a ij ), j=1

czyli prawdopodobienstwo wyst pienia sªowa a i1 a i2... a ik jest równe iloczynowi prawdopodobie«stw wyst pienia poszczególnych liter. 3.2 Denicja kodu Humana Niech K b dzie kodowaniem ¹ródªa informacji, tj. alfabetu A = {a 1, a 2,..., a n } wraz z przyporz dkowan mu dystrybucj prawdopodobie«stw. Przez d i (gdzie 1 i n) oznaczmy dªugo± sªowa kodowego K(a i ). redni dªugo±ci sªowa kodowego nazywamy wielko± n L = d i P (a i ), i=1 czyli warto± oczekiwan zmiennej losowej {(d i, P (a i )) : i {1, 2,..., n}} lub ±redni wa»on prawdopodobie«stw. Najbardziej efektywnym kodem jest kod, dla którego wielko± L jest najmniejsza. Zajmiemy si teraz szukaniem takiego kodu przy czym ograniczymy si tylko do kodów natychmiastowych. Taki kod nazywamy kodem Humana. Dla danego ¹ródªa informacji S oznaczmy przez L min (S) najmniejsz dªugo± ±redni sªowa kodowego (tutaj L min (S) jest funkcj o warto±ciach rzeczywistych okre±lon w klasie wszystkich mo»liwych kodów dla ¹ródªa S). 3.1 Przykªad. Rozwa»my nast puj ce ¹ródªo informacji x A B D K R P (x) 5 11 2 11 Dla powy»szego ¹ródªa informacji przypiszmy sªowa kodowe w trzech ró»nych kodach K 1, K 2 i K 3 nast puj co 1 11 1 11 2 11 x A B D K R K 1 (x) 000 001 010 011 100 K 2 (x) 0 10 110 1110 1111 K 3 (x) 0 100 101 110 111 Je±li przez L(K) oznaczymy ±redni dªugo± sªowa kodowego w kodzie K, to otrzymamy L(K 1 ) = 3 L(K 2 ) = 24 11 14 L(K 3 ) = 23 11.

Zatem L min (S) 23. Czy jest to nierówno± ostra? Odpowied¹ na to pytanie 11 otrzymamy po przestudiowaniu nast pnego podrozdziaªu. 3.3 Konstrukcja kodu Humana Zaªó»my,»e nasze ¹ródªo informacji ma alfabet dwuelementowy. Wówczas przyporz dkowanie jednemu elementowi zera, a drugiemu jedynki jest tu optymalnym kodem i w tym przypadku L min = 1. Je±li ¹ródªo ma n symboli, to sprowadzimy je do przypadku dwuelementowego. W tym celu zaªó»my,»e A = {a 1, a 2,..., a n } jest alfabetem ¹ródªowym oraz»e zachodzi P (a 1 ) P (a 2 ) P (a n ). Powy»sze ¹ródªo informacji oznaczmy przez S. ródªem zredukowanym S nazywamy ¹ródªo, w którym alfabetem jest A = {a 1, a 2,..., a n 2, a n 1 a n } (ostatnia litera alfabetu A jest sªowem w alfabecie A), natomiast dystrubucja prawdopodobie«stw wygl da nast puj co: P (a i ) = P (a i ) dla 1 i n 2 P (a n 1 a n ) = P (a n 1 ) + P (a n ). Šatwo jest sprawdzi,»e S jest faktycznie ¹ródªem informacji. 3.2 Twierdzenie. Stosuj c powy»sze oznaczenia, zaªó»my,»e K jest kodem Humana dla zredukowanego ¹ródªa informacji. Wówczas kod K(a i ) = K (a i ) dla 1 i n 2 K(a n 1 ) = K (a n 1 a n )0 K(a n ) = K (a n 1 a n )1 jest kodem Humana dla ¹ródªa S. Dowód. Zaªó»my,»e elementy a 1, a 2,..., a n s uporz dkowane wedªug malej cych prawdopodbie«stw. Dowód konstrukcyjny przeprowadzimy w trzech krokach. Krok 1. Poka»emy,»e dla ¹ródªa S istnieje kod Humana K 0, dla którego d 1 d 2 d n, gdzie d i oznacza dªugo± K 0 (a i ) oraz 1 i n. Zauwa»my,»e L min (S) jest równy minimum z L(K), gdzie K przebiega wszystkie mo»liwe kody natychmiastowe okre±lone na A. Poniewa» minimum 15

to jest osi galne, wi c kod Humana zawsze istnieje. Niech K b dzie pewnym kodem Humana dla ¹ródªa informacji S. Je»eli istnieje litera a i, dla której d i > d i+1, zamieniamy sªowa kodowe liter a i oraz a i+1. Zatem a i ma teraz kod dªugo±ci d i+1, a a i+1 kod dªugo±ci d i. Otrzymany kod K 1 w dalszym ci gu jest natychmiastowy. Poka»emy,»e jest on te» kodem Humana. Istotnie, L(K) L(K 1 ) = n d i P (a i ) i=1 n d ip (a i ) i=1 = d i P (a i ) + d i+1 P (a i+1 ) (d i+1 P (a i ) + d i P (a i+1 )) = (d i d i+1 )(P (a i ) P (a i+1 ). Poniewa» elementy alfabetu A s uporz dkowane wedªug malej cych prawdopodbie«stw, wi c P (a i ) P (a i+1 ). Z drugiej strony, zaªo»yli±my,»e d i > d i+1. Zatem L(K) L(K 1 ) 0, czyli L(K) L(K 1 ). Ale K jest kodem Humana, wi c L(K) = L min (S). St d L(K) = L(K 1 ) = L min (S) i K 1 jest kodem Humana. Post pujemy podobnie a» dªugo±ci sªów kodowych zostan uporz dkowane rosn co. Odpowiadaj cy kod Human'a jest poszukiwanym kodem K 0. Krok 2. Poprawimy kod K 0 otrzymuj c kod Humana K 1 taki,»e sªowa kodowe K(a n ) oraz K(a n 1 ) ró»ni si tylko ostatnim bitem. Niech K 0 b dzie kodem otrzymanym z K 0 poprzez odrzucenie ostatniego bitu z K 0 (a n ). Poniewa» P (a n ) > 0, wi c L( K 0 ) < L(K 0 ) = L min (S) i K 0 nie mo»e by kodem natychmiastowym (inaczej K 0 nie byªby kodem Humana). Zatem K 0 (a n ) musi by pocz tkiem pewnego sªowa kodowego K 0 (a i ) = K 0 (a i ) dla 1 i n 1. Oznaczmy przez d n dªugo± sªowa K 0 (a n ). Mamy d n 1 = d n. Skoro K 0 (a n ) jest pocz tkiem sªowa K 0 (a i ), wi c d n d i d n. Je±li jednak d n = d i, to K 0 (a i ) = K 0 (a n ) jest pocz tkiem sªowa kodowego K 0 (a n ) co przeczy natychmiastowo±ci kodu K 0. Zatem musi by d i = d n. Oznacza to, po pierwsze,»e d i = d i+1 = = d n oraz, po drugie,»e sªowa K 0 (a i ) oraz K 0 (a n ) ró»ni si tylko ostatnim bitem. Mo»emy zatem zamieni sªowa kodowe liter a n 1 oraz a i (o ile jest to konieczne) i otrzymamy» dany kod K 1. Krok 3. Zako«czymy dowód twierdzenia. Zauwa»my,»e dla zdeniowanego w tezie twierdzenia kodu K zachodzi równo± L(K) = L(K ) + P (a n 1 ) + P (a n ). 16

Niech K 1 b dzie kodem dla ¹ródªa S otrzymanym w kroku 2. Oznaczmy przez K 1 kod dla zredukowanego»ródªa informacji, gdzie sªowo kodowe K 1(a n 1 a n ) jest równe K(a n 1 ) lub K(a n ) z odrzuconym ostatnim bitem. Wówczas K 1 jest natychmiastowy. Mamy te» L(K 1 ) L(K 1) = P (a n 1 ) + P (a n ) = L(K) L(K ). St d L(K) = L(K 1 ) L(K 1) + L(K ). Ale K jest z zaªo»enia kodem Humana, zatem L(K ) = L min (S ) i st d mamy L(K 1) + L(K ) 0. Tak wi c L(K) L(K 1 ). Ale skoro K 1 jest kodem Humana, wi c takowym musi te» by K. Konstrukcja kodu Humana dla ¹ródªa informacji S polega na tworzeniu kolejnych ¹ródeª zredukowanych S, S,... S (h) a» otrzymamy»ródªo z alfabetem dwuelementowym. Nast pnie deniujemy tak jak w poprzednim twierdzeniu kody Humana dla ¹ródeª S (h 1), S (h 2),... S. 3.3 Przykªad. Dla ¹ródªa informacji z przykªadu 3.1 tworzymy kolejne zredukowane ¹ródªa x A B DK R S : 5 2 2 2 P (x) 11 11 11 11 S : x A BDK R P (x) 5 11 4 11 x BDKR A S (3) : 6 P (x) 11 którym odpowiadaj kody 5 11 2 11 K (3) (BDKR) = 0, K (3) (A) = 1; K (A) = 1, K (BDK) = 00, K (R) = 01; K (A) = 1, K (B) = 000, K (DK) = 001, K (R) = 01. Ostatecznie, otrzymamy dla naszego ¹ródªa informacji nast puj cy kod Humana x A B D K R K(x) 1 000 0010 0011 01 17

Zatem L min (S) = 23 i najkrótszy jednoznacznie dekodowalny kod sªowa 11 abrakadabra ma 23 znaki. Kody Humana mo»emy te» tworzy dla alfabetów kodowych o wi kszej ni» dwa liczbie znaków. Caªe rozumowanie tego podrozdziaªu mo»na przenie± na ten przypadek. 18

Rozdziaª 4 Kompresowanie kodów i entropia 4.1 Przykªad kompresowania danych W poprzednim rozdziale zauwa»yli±my,»e kody Humana s najkrótszymi mo»liwymi kodowaniami danego alfabetu ¹ródªowego. Zatem, aby dany kod byª krótszy, musimy kompresowa ju» sam kod, czyli,,kodowa kod. Przypu± my,»e zakodowali±my pewn wiadomo± w kodzie dwójkowym. W nast pstwie tej czynno±ci okazaªo si,»e 90% kodu to zera, a tylko 10% to jedynki. Nasz zakodowan wiadomo± mo»emy skompresowa koduj c bloki bitów. Dokªadnie, zauwa»my,»e zakªadaj c niezale»no± wyst powania poszczególnych bitów w zakodowanej wiadomo±ci, prawdopodobie«stwa wyst pienia bloków 00, 01, 10, 11 s równe, odpowiednio 81, 9, 9 oraz 1 procent. Otrzymujemy wi c nast puj ce ¹ródªo informacji 00 01 10 11 0,81 0,09 0,09 0,01 Dla powy»szego ¹ródªa informacji konstruujemy kod Humana otrzymuj c 00 01 10 11 0 10 110 111 19

Otrzymany kod ma przeci tn dªugo± równ 1 0, 81 + 2 0, 09 + 3 0, 09 + 3 0, 01 = 1, 29. Poniewa» kodujemy bloki dwubitowe, wi c na ka»de dwa bity,,starego kodu potrzebujemy 1, 29 bitów,,nowego kodu. Zyskali±my zatem ponad siedem dziesi tych bita, co kompresuje nasz kod do okoªo 64% ( 1, 29/2) jego pierwotnej dªugo±ci. Próbuj c kodowa wi ksze bloki otrzymujemy kompresj 53% przy blokach trzybitowych oraz 49% przy blokach czterobitowych. Pojawia si zatem pytanie, czy dany kod mo»na skompresowa do dowolnie maªej obj to±ci. Odpowied¹ na to pytanie daje teoria entropii, któr opiszemy poni»ej. 4.2 Idea entropii Zaªó»my,»e mamy dane ¹ródªo informacji S. Chcemy wprowadzi wielko± H(S), która wyra»a ilo± informacji zawart w jednym symbolu ¹ródªowym. Liczb H(S) nazwiemy entropi. Chcemy, aby speªnione byªy nast puj ce warunki: H(S) zale»y jedynie od statystyki ¹ródªa S, nie od nazw poszczególnych symboli ¹ródªowych; H(S) mo»e by rozwa»ana jako funkcja prawdopodobie«stw symboli ¹ródªa S. Oznaczmy przez p 1, p 2,..., p n prawdopodobie«stwa odpowiadaj ce poszczególnym symbolom alfabetu ¹ródªowego. Zatem Funkcja ta powinna by 1) Dodatnia; H : (p 1, p 2,..., p n ) H(p 1, p 2,..., p n ). 2) Ci gªa, co oznacza,»e maªym zmianom prawdopodobie«stw odpowiada niewielka zmiana entropii; 3) Symetryczna, co oznacza,»e zmiana porz dku symboli ¹ródªowych nie powoduje zmiany entropii ¹rodªa; 4) Koherentna, co w tym przypadku oznacza,»e entropia ¹ródªa n elementowego mo»e by obliczona je±li znamy entropi mniejszych ¹ródeª. 20

Wytªumaczmy dokªadniej, co oznacza termin w podpunkcie 4). Zaªó»my w tym celu,»e czytamy pewien tekst nie rozró»niaj c liter a 1 i a 2. Aby w peªni zrozumie tekst nie musimy go ju» czyta po raz drugi w caªo±ci, tylko koncentrujemy si na symbolach a 1 i a 2. Zatem znaj c entropi ¹ródeª zredukowanego (ze zredukowanymi symbolami a 1 oraz a 2 ) oraz entropi ¹ródªa dwuelementowego {a 1, a 2 }, mo»emy obliczy entropi caªego ¹ródªa. Dokªadnie, H(p 1, p 2,..., p n ) = H(p 1 + p 2, p 3..., p n ) + (p 1 + p 2 )H ( p1 p 1 + p 2, p 2 p 1 + p 2 4.1 Twierdzenie. Istnieje dokªadnie jedna, z dokªadno±ci do staªej k, dodatnia, symetryczna i koherentna funkcja H nzmiennych. Jest ona okre±lona wzorem H(p 1, p 2,..., p n ) = k ). n p i log 1. (4.1) p i Skomplikowany i nie bardzo zwi zany z tematem dowód tego twierdzenia pomijamy. 4.3 Denicja entropii Opieraj c si na twierdzeniu 4.1, wprowadzimy nast puj c denicj. Przedtem jednak ustalmy pewne oznaczenia. Staªa k, która pojawia si w (4.1) stanowi wybór jednostki entropii. Zapiszmy k = 1. Je»eli r = 2, jednostk nazywamy bitem. log r Zatem H(p 1, p 2,..., p n ) = i=1 n p i log 2 p i. Je±li ¹ródªo S ma dokªadnie dwie jednakowo prawdopodobne litery, to i=1 H(S) = 1 2 log 2 2 + 1 2 log 2 2 = 1bit. Entropi ¹ródªa informacji S, którego symbole a 1, a 2,..., a n wyst puj z prawdopodobie«stwami p 1, p 2,..., p n nazywamy liczb okre±lon przez równanie (4.3). 21

Przykªady W naszym pocz tkowym przykªadzie kompresowania danych mamy p 1 = 0, 9 oraz p 2 = 0, 1. Zatem entropia tego ¹ródªa jest równa H(S) = 0, 1 log 2 0, 1 0, 9 log 2 0, 9 0, 469bita. Oznacza to,»e po przeczytaniu jednego symbolu tekstu ¹ródªowego otrzymujemy okoªo 0,469 bitów informacji lub,»e ka»de tysi c liter tekstu mo»na zast pi przez 469 cyfr dwójkowych. U»ywaj c kodu blokowego, 26 liter alfabetu angielskiego mo»na zakodowa w bloki dwójkowe dªugo±ci 5. Z drugiej strony, je±li policzymy entropi ¹ródªa informacji, którym jest alfabet angielski, otrzymamy liczb 1,5. Oznacza to, i» ka»dy tekst angielski zakodowany kodem blokowym dªugo±ci 5 mo»na skompresowa nawet do 30% jego pierwotnej dªugo±ci! Obliczmy entropi ¹ródªa informacji M jakim jest rzut monet. Mamy tu dwa symbole ¹ródªowe orªa i reszk, którym odpowiadaj równe prawdopodobie«stwa. Zatem H(M) = 1. Tak wi c tekstu pochodz cego z tego ¹ródªa nie mo»na skompresowa, poniewa» ka»dy symbol ¹ródªowy to dokªadnie 1 bit informacji. Ogólniej, je±li ¹ródªo informacji ma dokªadnie dwa symbole, to ich prawdopodobie«stwa mo»na wyrazi jako p oraz 1 p, a jego entropi przez H(p, 1 p) = p log 2 p + (p 1) log 2 (1 p). Funkcja p H(p, 1 p) osi ga maximum w punkcie 1. Natomiast jej inmum wynosi 0 i jest osi gane granicznie, gdy p 1 lub p 2 0. 4.4 Maximum i minimum entropii Gdyby jeden symbol ¹ródªowy miaª prawdopodobie«stwo bliskie 1, pozostaªe musiaªyby mie prawdopodobie«stwa bliskie 0. Dla tego rodzaju ¹ródeª entropia byªaby najbli»sza swojego inmum. Fakt ten udowodnimy poni»ej. 4.2 Twierdzenie. Je±li jeden z symboli ¹ródªowych ma prawdopodobie«stwo bliskie 1, to entropia tego ¹ródªa jest bliska 0. 22

Dowód. Zaªó»my,»e p 1 1. Zatem p i 0 dla 2 i n. St d p i log 2 p i 0 poniewa» (log 2 p i ) 1 = o(p i ) dla 2 i n oraz p 1 log 2 p 1 0 gdy» log 2 p 1 0, a p 1 jest wielko±ci ograniczon. Zatem H(S) 0. Przykªad entropii rzutu monet oraz rozwa»ania poprzedzaj ce niniejszy rozdziaª sugeruj,»e najwi ksz entropi maj ¹ródªa, w których prawdopodobie«stwa poszczególnych symboli s równe. Nast puj ce twierdzenie uzasadni to rozumowanie. 4.3 Twierdzenie. Maximum entropii jest osi gane dla takich ¹ródeª informacji, gdzie p 1 = p 2 = = p n = 1 n. Jest ono równe log 2 n. Dowód. Zauwa»my najpierw,»e faktycznie, je±li p 1 = p 2 = = p n = 1, n to H(p 1, p 2,..., p n ) = log 2 n. Aby pokaza,»e jest to maximum u»yjemy nierówno±ci log x x 1, w której równo± zachodzi wtedy i tylko wtedy, gdy x = 1. Mamy H(S) log 2 n = i = i = 1 log 2 = 1 log 2 1 log 2 = 1 log 2 = 1 log 2 1 p i log 2 p i log p 2 n i i ( ) 1 p i log 2 log p 2 n i p i (log 1 ) log n p i i i i p i log 1 np i ( ) 1 p i 1 np i i ( ) 1 n p i ( i 1 n i p i ) = 0. Zatem H(S) log 2 n, przy czym równo± zachodzi wtedy i tylko wtedy, gdy 1 np i = 1, czyli gdy p i = 1 n. 23

4.5 Rozszerzenie ¹ródªa 4.4 Przykªad. Je»eli ¹ródªem informacji M 2 jest rzut dwiema symetrycznymi monetami, to H(M 2 ) = 2. Czyli ka»dy rzut niesie dwa bity informacji. Jest to zgodne z naszym wcze±niejszym rozwa»aniem rzutu jedn monet, kiedy to entropia wynosiªa 1. Powró my do naszego pierwotnego przykªadu ¹ródªa informacji, w którym 0 wyst powaªo z prawdopodobie«stwem 0, 9, a 1 z prawdopodobie«stwem 0, 1. Aby skompresowa wiadomo± dzielili±my j na bloki po dwie litery. Czynno± t b dziemy nazywali rozszerzaniem ¹ródªa. Dokªadnie, ktym rozszerzeniem ¹ródªa S w którym symbolom a 1, a 2,..., a n odpowiadaj, odpowiednio, prawdopodobie«stwa p 1, p 2,..., p n nazywamy ¹ródªo informacji S k, którego alfabet skªada si z bloków kliterowych a i1 a i2... a ik liter alfabetu ¹ródªa S, którym to blokom odpowiadaj prawdopodobie«stwa P (a i1 a i2... a ik ) = P (a i1 )P (a i2 )... P (a ik ). ródªo rzutu dwiema monetami M 2 jest rozszerzeniem ¹ródªa rzutu jedn monet. Jak ju» zauwa»yli±my, H(M 2 ) = 2H(M). Istotnie, jest to reguªa, o czym mówi nast puj ce twierdzenie. 4.5 Twierdzenie. Dla dowolnego ¹ródªa informacji, H(S k ) = kh(s). Dowód. Wynika z nast puj cych oblicze«: H(S k ) = p i1 p i2... p ik log 2 (p i1 p i2... p ik ) i 1,i 2,...,i k = p i1 p i2... p ik (log 2 p i1 + log 2 p i2 + + log 2 p ik ) i 1 i 2 i k = p i1 log 2 p i1 p i2 p ik i 1 i 2 i k p i2 log 2 p i2 p i1 p i3 p ik i 2 i 1 i 3 i k p ik log 2 p ik p i1 i 1 i k 1 p ik 1 i k 24

= i 1 p i1 log 2 p i1 i 2 p i2 log 2 p i2 i k p ik log 2 p ik = kh(s). 4.6 Entropia a przeci tna dªugo± sªowa kodowego Skoro entropia, to liczba bitów zawartych w jednym symbolu tekstu ¹ródªowego, wi c nie powinna ona by wi ksza ni» przeci tna dªugo± sªowa kodowego. To intuicyjne spostrze»enie potwierdza nast puj ce twierdzenie. 4.6 Twierdzenie. Ka»dy dwójkowy kod natychmiastowy dla ¹ródªa S ma dªugo± przeci tn wi ksz lub równ entropii tego ¹ródªa. Dowód. Oznaczaj c przez d i dªugo± itego sªowa kodowego, a przez L przeci tn dªugo± sªowa kodowego, otrzymujemy H(S) L = i = i 1 p i log 2 p i d i p i i ( ) 1 p i log 2 log p 2 2 d i i = 1 p i log 2 p i i 2 d i = 1 1 p i log log 2 p i i 2 d i 1 ( ) 1 p i log 2 p i i 2 1 d i = 1 ( ) 1 log 2 2 p d i i = 1 log 2 i ( i 1 2 d i i 1 (1 1) = 0, log 2 gdzie ostatnia nierówno± jest konsekwencj nierówno±ci Krafta, a pierwsza wynika ze wzoru log x x 1. Zatem H(S) L. 25 p i )

4.7 Twierdzenie Shannona o kodowaniu bezszumowym W naszym pocz tkowym przykªadzie mieli±my H(S) = 0, 469, 1 2 L min(s 2 ) = 0, 645, qquad 1 3 L min(s 3 ) = 0, 533. Zwi kszaj c bloki, a nast pnie koduj c je, nigdy nie zejdziemy poni»ej poziomu entropii dla danego ¹ródªa. Nast puj ce twierdzenie mówi o tym,»e entropia stanowi graniczny poziom kompresowania tekstów zapisanych za pomoc alfabetu danego ¹ródªa informacji. Granicy tej nie mo»na przekroczy, ale mo»na si do niej zbli»y na dowoln odlegªo±. 4.7 Twierdzenie. (Shannona o kodowaniu bezszumowym) Dla dowolnego ¹ródªa informacji S zachodzi nast puj cy zwi zek mi dzy entropi tego ¹ródªa a przeci tn dªugo±ci kodu Humana dla tego ¹ródªa H(S) L min (S) H(S) + 1. (4.2) W szczególno±ci, dla ktego rozszerzenia»ródªa S mamy 1 lim k k L min(s k ) = H(S). (4.3) Dowód. Udowodnimy najpierw wzór (4.3) zakªadaj c (4.2). Mamy kh(s) = H(S k ) L min (S k ) H(S k ) + 1 = kh(s) + 1. St d bezpo±rednio wynika H(S) 1 k L min(s k ) H(S) + 1 k i stosuj c twierdzenie o trzech granicach otrzymujemy (4.3). Aby udowodni (4.2), zauwa»my, ze wobec twierdzenia 4.6, wystarczy pokaza,»e L min (S) H(S) + 1. W tym celu elementom»ródªowym a 1, a 2,..., a n, których prawdopodobie«stwa wynosz, odpowiednio, p 1, p 2,..., p n przyporz dkujmy sªowa kodowe dªugo±ci d 1, d 2,..., d n, gdzie d i = log 2 p i 1. Poniewa» nierówno± Krafta dla 26

tych dªugo±ci zachodzi (dokªadnie, n 2 d i i=1 n 2 log 2 1 p i = i=1 n p i = 1), i=1 wi c odpowiedni kod natychmiastowy istnieje. Kod ten ma przeci tn dlugo± L równ n p i d i i=1 n i=1 Zatem L min (S) L H(S) + 1, sk d (4.2). ( ) 1 p i 1 + log 2 = 1 + H(S). p i Nasze rozwa»ania na temat entropii zako«czymy uwag,»e caªe powy»sze rozumowanie bez trudu przenosi si na przypadek dowolnego r. Wówczas entropi ¹ródªa S oznaczamy H r (S) i wielko± ta jest równa i p i log r p i. 27

Rozdziaª 5 Pewna komunikacja poprzez niepewne ª cza Jak dot d, starali±my si jak najbardziej skróci kod przesyªanej wiadomo±ci. W poprzednim rozdziale pokazali±my,»e granic kompresji stanowi entropia danego ¹ródªa. Maksymalnie skompresowany tekst nie jest jednak dobry do przesªania poprzez ª cze, w którym mog pojawi si zakªócenia niewielkie zakªócenie kodu powoduje niemo»no± rozkodowania. Aby nasz kod staª si odpornym na zakªócenia, musimy go wydªu»y uzupeªniaj c go pewn liczb dodatkowych bitów. Zanim jednak przejdziemy do modykacji kodów, zdeniujmy ª cza, po których ów zmodykowany kod zostanie przesªany. 5.1 Symetryczne ª cze binarne Gdyby±my mieli do dyspozycji ª cze, w którym nigdy nie pojawiaj si szumy, nie musieliby±my modykowa kodu. Jednak»e tego rodzaju ª cza s w praktyce nie spotykane. Dlatego zaªó»my,»e w ª czu powstaj szumy, które powoduj,»e odebrana wiadomo± mo»e si ró»ni od wysªanej. Zakªadamy jednak,»e podczas transmisji nie powstaje bª d synchronizacji, tj.»aden nowy symbol nie pojawi si w kodzie, ani te»»aden nie zniknie. Symetrycznym ª czem binarnym (BSC) nazywamy ª cze, które speªnia nast puj ce warunki: 1. Komunikacja zachodzi za pomoc kodu dwójkowego, tj. zarówno na wej±ciu, jak i na wyj±ciu mog pojawia si tylko 0 lub 1; 28

2. Prawdopodobie«stwo otrzymania 1 pod warunkiem wysªania 0 jest równe prawdopodobie«stwie otrzymania 0 pod warunkiem wysªania 1; 3. Š cze nie ma pami ci, tj. prawdopodobie«stwo znieksztaªcenia danego symbolu nie zale»y od wcze±niej wysªanych bitów. Oznaczmy przez p prawdopodobie«stwo znieksztaªcenia wysªanego przez BSC symbolu, a przez q = 1 p prawdopodobie«stwo poprawnej transmisji danego bitu. Mo»emy zaªo»y,»e 0 p 0, 5 jako,»e je±li prawdopodobie«stwo to jest wi ksze od 1, to przed przeczytaniem kodu mo»emy 2 zamieni rolami zera i jedynki. 5.1 Przykªad. Zaªó»my,»e pewne ª cze znieksztaªca 1 symbol na tysi c. Zatem p = 0, 001 oraz q = 0, 999. Zaªó»my jednak»e,»e nie mo»emy sobie pozwoli na wi cej ni» jeden bª d na dziesi tysi cy symboli. Aby podnie± pewno± kodu mo»emy ka»dy symbol kodowy powtórzy kilka razy. Nazywa si to kodem powtórze«1. Na przykªad, 011001 000111111000000111. Dla danego kodu K, odpowiadaj cy mu kod powtórze«oznaczymy przez K s, gdzie s oznacza liczb powtórze«danego bitu. Tak wi c otrzymuj c wiadomo± w kodzie K 3 oczekujemy,»e bity wyst puj w jednorodnych blokach dªugo±ci 3. Zatem, gdy otrzymujemy taki blok a 1 a 2 a 3, wiemy,»e zanim zostaª on wysªany wszystkie jego bity byªy równe. Je±li jednak otrzymany blok nie ma takich samych bitów, rozkodowujemy go wedªug,,prawa wi kszo±ci. Bª d w odczycie popeªniamy, je±li wszystkie trzy bity zostaªy znieksztaªcone (prawdopodobie«stwo p 3 ), lub gdy dwa bity zostaªy znieksztaªcone (prawdopodobie«stwo 3p 2 q). Zatem prawdopodobie«stwo niewªa±ciwego odczytu wynosi P err (K 3 ) = p 3 + 3p 2 q < 10 5. Kod K 3 speªnia wi c postawione wcze±niej wymagania. Uzupeªnimy przykªad uwag,»e P err (K 5 ) 10 8 oraz,»e P err (K n ) 0 je±li n. 1 ang. repetition code 29

5.2 Pr dko± przepªywu informacji W przykªadzie kodu powtórze«k n tylko jeden bit na n byª no±nikiem informacji. Pozostaªe bity jedynie sprawdzaªy, czy informacja zostaªa prawidªowo przesªana przez ª cze. Zatem mieli±my tu do czynienia z kodem blokowym, w którym jeden bit jest bitem informacyjnym, a n 1 bitów s bitami sprawdzaj cymi. Uogólniaj c powy»sz sytuacj, dla dowolnego kodu blokowego K wyró»niamy w ka»dym bloku k bitów informacyjnych oraz n k bitów sprawdzaj cych. Bity informacyjne mog by dowolne, wi c mamy mo»liwych dokªadnie 2 k sªów kodowych. Bity sprawdzaj ce w tych sªowach ±ci±le zale» od bitów informacyjnych. Odwrotnie, je±li dany kod blokowy ma dokªadnie 2 k sªów, to oznacza to,»e w ka»dym bloku mamy k bitów informacyjnych. Przesyªanie informacji odbywa si wi c w nast puj cy sposób: dan wiadomo± kodujemy stosuj c kod Humana; otrzymany kod kompresujemy tak, by byª on mo»liwie najkrótszy, skompresowany kod dzielimy na bloki dªugo±ci k i ka»dy z tych bloków uzupeªniamy bitami sprawdzaj cymi tak by otrzyma kod blokowy dªugo±ci n k; ka»dy z bloków przesyªamy poprzez ª cze, odbiorca kodu, najpierw sprawdza poprawno± przesªanego kodu i poprawia bª dy transmisji wykorzystuj c bity sprawdzaj ce, odbiorca odrzuca bity sprawdzaj ce i ª czy bloki bitów informacyjnych w zakodowan i skompresowan wiadomo±, odbiorca dekompresuje kod i rozkodowuje wiadomo±. Czynno± sprawdzania otrzymanego w wyniku transmisji kodu blokowego oraz poprawiania wynikªych bª dów, tak»e nazywamy dekodowaniem lub rozkodowywaniem. Dla dwójkowego kodu blokowego K dªugo±ci n o k n bitach informacyjnych deniujemy wielko± R(K) = k, któr nazwiemy pr dko±ci przepªywu n informacji kodu K. Je»eli k = 0, kod K ma tylko jedno sªowo kodowe, R(K) = 0 i bity sprawdzaj ce sygnalizuj jedynie,»e nast piªa transmisja. 30

Taki kod nazywamy trywialnym. Drug skrajno± stanowi kod o pr dko±ci przepªywu informacji 1. Taki kod nie posiada bitów sprawdzaj cych. Generalnie, je±li R(K) jest bliskie 0, kod ma du» odporno± na szumy, ale nie jest efektywny w sensie przepªywu informacji. Je»eli natomiast R(K) jest bliskie 1, kod K ma bardzo du» efektywno±, ale nie ma istotnego zabezpieczenia na zakªócenia. Dla przykªadu zauwa»my,»e kod powtórze«k n ma pr dko± przepªywu 1 informacji.,,ortogonalnym do niego jest kod sprawdzaj cy parzysto±,1 n w którym mamy n 1 bitów informacyjnych oraz jeden bit sprawdzaj cy ustalony tak, by liczba jedynek w bloku byªa parzysta. Zatem tutaj, R = n 1, n ale tylko pojedyncze bª dy zostan wykryte bez mo»liwo±ci ich poprawienia. 5.3 Bariera pojemno±ci Wysyªaj c kod poprzez ª cze, musimy mie na uwadze nie tylko to, i» w ª czu mog wyst pi zakªócenia, ale tak»e to,»e ª cze ma pewn ograniczon pojemno±. Rozwa»my tu nast puj cy przykªad: nasze ¹ródªo wysyªa jeden bit na sekund, ale ª cze nie mo»e przesªa wi cej ni» dwa bity na sekund. Zaªó»my konkretnie,»e p = 0, 001, jednak»e nie mo»emy sobie pozwoli na wi cej bª dów ni» dwa na 10000. Ze wzgl du na pojemno± ª cza nie mo»emy doda wi cej ni» jednego bitu sprawdzaj cego na jeden bit informacyjny. Zauwa»my,»e kod K 2 nie jest w ogóle dobrym rozwi zaniem. Istotnie, bª d popeªniamy, gdy oba bity s znieksztaªcone (prawdopodobie«stwo p 2 ), lub gdy jeden bit jest znieksztaªcony, przy czym musimy zdecydowa który (prawdopodobie«stwo 2 1pq). St d P (K 2 2) = p 2 + pq = p. Zatem prawdopodobie«stwo bª du jest takie samo jak bez u»ycia bitu sprawdzaj cego. Podobnie, mo»emy zauwa»y,»e P (K 2s ) = P (K 2s 1 ). 5.2 Przykªad. Spróbujmy nast puj cego kodu, w którym do bloku informacyjnego dªugo±ci k dodajemy dwa bity sprawdzaj ce, które s równe drugiemu bitowi z bloku. Tak wi c 00 0000 01 0111 10 1000 11 1111. Powy»szy kod oznaczymy przez K 4. Przy odbiorze, zakªadamy,»e pierwszy bit jest prawidªowy, a drugi ustalamy poprzez,,prawo wi kszo±ci. Zatem 1 ang. even-parity code 31

odbiór jest prawidªowy wtedy i tylko wtedy, gdy»aden z bitów nie zostaª znieksztaªcony, lub gdy tylko drugi, trzeci lub czwarty bit zostaª przeinaczony. St d 1 P err (K 4) = q 4 + 3pq 3 0, 9997. Zatem a» 3 bity na 10000 mog by ¹le odczytane, co nas jeszcze nie satysfakcjonuje. Wypróbujemy wi c nast puj cy kod K 6. 5.3 Przykªad. Kod K6 koduje bloki informacyjne dªugo±ci 3 dodaj c 3 bity sprawdzaj ce. 000 000000 100 100011 010 010101 001 001110 011 011011 101 101101 110 110110 111 111000 Kod ten jest tak skonstruowany,»e dwa ró»ne sªowa kodowe ró»ni si mi dzy sob przynajmniej trzema bitami. Zatem przy rozkodowywaniu natraamy albo na sªowo kodowe albo na sªowo, które ró»ni si od pewnego (dokªadnie jednego) sªowa kodowego w dokªadnie jednym bitem. W pierwszym przypadku nie mamy problemów z dekodowaniem, w drugim dekodujemy otrzymany blok jako w. Zatem bª d mo»emy popeªni je±li przynajmniej dwa bity w bloku zostaªy znieksztaªcone. St d 1 P err (K 6) q 6 + 6pq 5 0, 99984, czyli P err 0, 00016, co jest lepszym wynikiem ni» pierwotnie wymagali±my. Precyzyjna denicja pojemno±ci ª cza jest nieco skomplikowana. Poniewa» w dalszym ci gu wykªadu zajmiemy si tylko sposobami kodowania bloków informacyjnych, nie b dziemy teraz dokªadnie rozpatrywa kwestii pojemno±ci. Zajmiemy si natomiast praktycznymi sposobami odczytywania kodu przesªanego przez ª cze BSC. 5.4 Odlegªo± Hamminga Naszym celem jest skonstruowanie kodu, który ma minimaln liczb bitów sprawdzaj cych, ale sªowa kodowe ró»ni si od siebie jak najwi ksz liczb bitów. Chcemy zatem, aby sªowa kodowe byªy,,jak najdalej od siebie. Sformalizujemy teraz poj cie odlegªo±ci. 32

Niech a = a 1 a 2... a n oraz b = b 1 b 2... b n b d sªowami kodu blokowego. Odlegªo±ci Hamminga d(a, b) pomi dzy sªowami a oraz b nazywamy liczb pozycji na których sªowa te maj ró»ne bity, tj. d(a, b) = # {1 i n : a i b i }. W kodzie powtórze«k n odlegªo± Hamminga pomi dzy dwoma ró»nymi sªowami wynosi n. W kodzie K6 jest ona wi ksza lub równa 3. 5.4 Twierdzenie. Dla danego alfabetu A odlegªo± Hamminga okre±la metryk na zbiorze W n (A) wszystkich sªów nliterowych. Dowód. Zauwa»my,»e wprost z denicji wynika,»e d(a, a) = 0 oraz,»e d(a, b) > 0 dla a b. Dalej mamy d(a, b) = d(b, a). Wystarczy zatem pokaza,»e zachodzi warunek trójk ta. W tym celu zapiszmy a = a 1 a 2... a n, b = b 1 b 2... b n oraz c = c 1 c 2... c n. Przyjmijmy d(a, b) = v i d(b, c) = w oraz zaªó»my,»e a i1 b i1, a i2 b i2,..., a iv b iv, b j1 c j1, b j2 c j2,..., b jw c jw. Rozwa»my teraz d(a, c). Odlegªo± ta b dzie najwi ksza, je±li»adne i s nie pokryje si z j r i b dzie wówczas równa dokªadnie v + w. Tak wi c ogólnie, d(a, c) d(a, b) + d(b, c). Opisan przestrze«metryczn mo»na zinterpretowa geometrycznie jako graf, którego wierzchoªkami s sªowa kodowe, a kraw dziami s poª czone tylko te wierzchoªki, które ró»ni si mi dzy sob o jeden bit. Odlegªo± pomi dzy dwoma wierzchoªkami, to najmniejsza ilo± kraw dzi, które trzeba pokona, by dotrze od jednego wierzchoªka do drugiego. Odlegªo± Hamminga wykorzystujemy przy wykrywaniu i poprawianiu bª dów powstaªych w wyniku transmisji przez ª cze BSC. Przesªany kod b dziemy dekodowa wedªug dekodowania maksymalnego podobie«stwa 1 (MLD). Jego dwie gªówne zasady to: je±li otrzymujemy sªowo kodowe, zakªadamy,»e nie wyst piª bª d transmisji; 1 ang. maximum likelihood decoding 33

je±li otrzymane sªowo nie nale»y do kodu, dekodujemy je jako sªowo kodowe, które jest najbli»ej otrzymanego w sensie odlegªo±ci Hamminga. Je»eli mamy wi cej ni» jeden wybór, wybieramy losowo. Je±li otrzymane sªowo nie jest sªowem kodowym, jeste±my pewni,»e wyst piª bª d. Mamy wówczas dwa wyj±cia: zawiadomi o tym nadawc i poprosi o ponown transmisj, lub te» poprawi bª d stosuj c zasad MLD. Mówimy,»e kod wykrywa t bª dów, je±li dla dowolnego sªowa kodowego a i ka»dego sªowa a' otrzymanego z a przez zmian co najwy»ej t bitów, a' nie jest sªowem kodowym. Mówimy,»e kod poprawia t bª dów, je»eli dla dowolnego sªowa kodowego a i ka»dego sªowa a' otrzymanego z a przez zmian co najwy»ej t bitów, procedura MLD dekodowania a' wiedzie jednoznacznie do a. 5.5 Wykrywanie i poprawianie bª dów Aby powi za wykrywanie i poprawianie bª dów z odlegªo±ci Hamminga, potrzebna nam b dzie nast puj ca denicja. Minimaln odlegªo±ci d(k) dla nietrywialnego kodu K nazywamy najmniejsz niezerow odlegªo± Hamminga pomi dzy dwoma ró»nymi sªowami kodowymi. d(k) = inf {d(a, b) : K a b K}. 5.5 Twierdzenie. Kod K wykrywa t bª dów wtedy i tylko wtedy, gdy d(k) > t. Dowód. Zaªó»my najpierw,»e d(k) > t. Je»eli sªowo a' zostaªo otrzymane ze sªowa kodowego a przez zmian t bitów, to d(a, a') = t < d(k). Zatem a' nie mo»e by sªowem kodowym. Zaªó»my teraz, nie wprost,»e d(k) t. Niech a oraz a' b d takimi sªowami kodowymi,»e d(k) = d(a, a') t. Je±li sªowo a' powstaªo z wysªanego sªowa a poprzez znieksztaªcenie co najwy»ej t bitów, to poniewa» a' jest sªowem kodowym, bª d pozostaje nie wykryty. Udowodnimy teraz podobne twierdzenie na temat poprawiania bª dów. 5.6 Twierdzenie. Kod K poprawia t bª dów wtedy i tylko wtedy, gdy d(k) > 2t. 34

Dowód. Zaªó»my,»e d(k) > 2t, a jest sªowem kodowym oraz a' otrzymali±my z a przez zmian co najwy»ej t symboli. Zaªó»my,»e procedura MLD dla sªowa a' prowadzi do sªowa b K. Wówczas Z drugiej strony jednak, Zatem d(a, b) d(a, a') + d(a', b). d(a, b) d(k) > 2t. d(a', b) d(a, b) d(a, a') > 2t t = t d(a, a'). Otrzymana nierówno± daje sprzeczno±, poniewa» b jest dalej ni» a od a'. Zaªó»my teraz nie wprost,»e K poprawia t bª dów, ale d(k) 2t. Niech a oraz b b d sªowami kodowymi, dla których d(k) d(a, b)) = u 2t. Oznaczmy przez i 1, i 2,..., i u wszystkie wska¹niki, dla których a i b i. Zaªó»my,»e min(t, u) = v oraz v u v. Zdeniujmy a' nast puj co a i = b i, je»eli i / {i 1, i 2,..., i u } a i = a i, je»eli i {i 1, i 2,..., i v } b i, w przeciwnym wypadku. Wówczas a' ró»ni si od a o dokªadnie u v t bitów. Jednak»e procedura MLD dla a' prowadzi do b. Podobnie post pujemy je±li v u v, tylko w denicji a i zamieniamy a i oraz b i. W obu przypadkach otrzymujemy sprzeczno±. 35

Rozdziaª 6 Kody liniowe Jak ju» wiemy, w celu przesªania zakodowanego tekstu dzielimy go na bloki równych dªugo±ci i do ka»dego z tych bloków dodajemy tak zwane bity sprawdzaj ce. Bity te s w ±cisªej zale»no±ci z bitami informacyjnymi, czyli tymi, z których skªadaª si blok przed dodaniem do niego symboli sprawdzaj cych. Wspomniana zale»no± najcz ±ciej jest liniowa i dlatego odpowiadaj cy kod nazwiemy kodem liniowym. W dalszym ci gu rozwa»a b dziemy tylko kody dwójkowe, jednak»e podane denicje i wªasno±ci przenosz si na przypadek ogólny. 6.1 Denicja W naszych rozwa»aniach przyjmiemy,»e alfabet kodowy ma struktur ciaªa (sko«czonego). W dalszym ci gu wykªadu oznaczymy go przez F. Wówczas zbiór w n (F) wszystkich sªów nliterowych daj cych si zapisa za pomoc alfabetu F ma struktur przestrzeni wektorowej nad ciaªem F je»eli dziaªania dodawania wektorów a = a 1 a 2... a n, b = b 1 b 2... b n i mno»enia przez skalar λ okre±limy nast puj co: a + b = (a 1 + b 1 )(a 2 + b 2 )... (a n + b n ) λa = (λa 1 )(λa 2 )... (λa n ). Dodawanie wspóªrz dnych oraz mno»enie przez λ jest dodawaniem i mno»eniem zdeniowanym w ciele F. Kodem liniowym dªugo±ci n nazywamy dowoln podprzestrze«wektorow K przestrzeni w n (F). Je»eli dim K = k, kod K nazywamy liniowym (n, k) 36

kodem w alfabecie F. Nie trudno si domy±li,»e wymiar podprzestrzeni K jest liczb bitów informacyjnych. Mo»na te» zauwa»y, jak rozkodowujemy kod liniowy. Mianowicie, je±li otrzymane w wyniku transmisji sªowo w nale»y do podprzestrzeni K, uznajemy,»e bª d nie zostaª popeªniony. W przeciwnym wypadku, sªowo w nale»y do pewnej warstwy s + K o ±tandardowym»eprezentancie. Zatem w s K i w rozkodowujemy wªa±nie jako w s. 6.2 Macierz generuj ca Zajmiemy si teraz zwi zkiem bitów informacyjnych z bitami sprawdzaj - cymi. Czyli sposobem generowania kodu. W przypadku kodów liniowych wykorzystujemy odwzorowanie liniowe z w k (F) do w n (F) czyli mno»enie przez pewn macierz o wymiarach k n o wspóªczynnikach z F. Macierz t nazwiemy macierz generuj c. Aby zdeniowa precyzyjnie to poj cie, przyjmijmy,»e dim K = k oraz u 1 u 2... u k jest blokiem bitów informacyjnych, który chcemy zakodowa. Niech e 1, e 2,..., e k b dzie baz w K. Zatem v K v = k u i e i. (6.1) i=1 Tak wi c bity informacyjne u 1, u 2,..., u k jednoznacznie okre±laj sªowo kodowe v. Macierz generuj c kodu K nazywamy macierz e 1 G = e 2..., (6.2) e k gdzie e 1, e 2,..., e k jest baz w K. Aby otrzyma sªowo kodowe z bitów informacyjnych u 1, u 2,..., u k, mno»ymy [ u1 u 2... u k ] G. (6.3) 6.1 Przykªad. Kod powtórze«k n jest liniowym (n, 1)kodem o macierzy generuj cej G = [ 1 1... 1 ]. 37

6.2 Przykªad. Kod sprawdzaj cy parzysto± Kn jest liniowym (n, n 1) kodem o macierzy generuj cej 1 0... 0 1 0 1... 0 1 G =............. 0 0... 1 1 Zauwa»my,»e je±li pomno»ymy macierz generuj c kodu Kn przez transponowan macierz generuj c kodu powtórze«k n, to otrzymamy macierz zerow. Mo»emy wi c przyj,»e oba kody s w opisanym sensie ortogonalne do siebie (macierz zerow otrzymamy tak»e mno» c macierz kodu K n przez transponowan macierz generuj c kodu Kn. 6.3 Przykªad. Macierze generuj ca nie jest okre±lona jednoznacznie. Nie chodzi tu tylko o wybór wektorów bazowych ale i o ich kolejno±. Na przykªad dla kodu K4 (zobacz przykªad 5.2) ma 6 macierzy generuj cych: [ ] [ ] [ ] 1 0 0 0 1 1 1 1 1 0 0 0 0 1 1 1 [ 0 1 1 1 1 0 0 0 0 1 1 1 ] [ 0 1 1 1 1 1 1 1 1 1 1 1 ] [ 1 1 1 1 1 0 0 0 Zauwa»my,»e bloki bitów informacyjnych 00, 01, 10 i 11 pomno»one kolejno przez ka»d z powy»szych macierzy daj zbiór {0000, 1000, 0111, 1111}. Przykªadem macierzy generuj cej dla kodu K6 jest macierz 1 0 0 0 1 1 0 1 0 1 0 1 0 0 1 1 1 0 6.4 Przykªad. Podamy teraz przykªad kodu, który jeszcze si nie pojawiª. Niech r > 1 i s > 1 b d ustalonymi liczbami naturalnymi i niech n = rs. Ka»de sªowo kodowe zapisujemy w postaci macierzy w nast puj cy sposób: W ka»dym z wierszy 1, 2,..., s 1 zapisujemy r 1 bitów informacyjnych. W sumie daje to (r 1)(s 1) bitów informacyjnych. Ostatni bit w wierszu jest bitem, który sprawdza parzysto± sªowa w danym wierszu. 38. ].