Kodowanie i kompresja Streszczenie Studia dzienne Wykład 6

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

Matematyka dyskretna

Laboratorium ochrony danych

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

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

W11 Kody nadmiarowe, zastosowania w transmisji danych

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

Kody blokowe Wykład 2, 10 III 2011

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

1. Wielomiany Podstawowe definicje i twierdzenia

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

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

0.1 Pierścienie wielomianów

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);

Pierścień wielomianów jednej zmiennej

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

Matematyka dyskretna

Funkcja kwadratowa. f(x) = ax 2 + bx + c,

Matematyka dyskretna

Projekt Era inżyniera pewna lokata na przyszłość jest współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego

Funkcja kwadratowa. f(x) = ax 2 + bx + c = a

Podstawowe struktury algebraiczne

Kodowanie i kompresja Streszczenie Studia dzienne Wykład 9,

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

Treść wykładu. Pierścienie wielomianów. Dzielenie wielomianów i algorytm Euklidesa Pierścienie ilorazowe wielomianów

Analiza kongruencji. Kongruencje Wykład 3. Analiza kongruencji

Twierdzenie Eulera. Kongruencje wykład 6. Twierdzenie Eulera

DB Algebra liniowa semestr zimowy 2018

Wielomiany podstawowe wiadomości

a 11 a a 1n a 21 a a 2n... a m1 a m2... a mn x 1 x 2... x m ...

Teoria liczb. Magdalena Lemańska. Magdalena Lemańska,

Wielomiany. dr Tadeusz Werbiński. Teoria

Przykładowe zadania z teorii liczb

Kody blokowe Wykład 1, 3 III 2011

1 Elementy logiki i teorii mnogości

1. Liczby zespolone i

1 Określenie pierścienia

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

Elementy metod numerycznych

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

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

Funkcje wymierne. Jerzy Rutkowski. Działania dodawania i mnożenia funkcji wymiernych określa się wzorami: g h + k l g h k.

Przestrzenie wektorowe

Kodowanie i kompresja Streszczenie Studia Licencjackie Wykład 11,

ciałem F i oznaczamy [L : F ].

Wykład VIII. Systemy kryptograficzne Kierunek Matematyka - semestr IV. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej

1. Określenie pierścienia

Działania Definicja: Działaniem wewnętrznym w niepustym zbiorze G nazywamy funkcję działającą ze zbioru GxG w zbiór G.

Algebra Abstrakcyjna i Kodowanie Lista zadań

Maciej Grzesiak. Wielomiany

020 Liczby rzeczywiste

Dr inż. Robert Wójcik, p. 313, C-3, tel Katedra Informatyki Technicznej (K-9) Wydział Elektroniki (W-4) Politechnika Wrocławska

4. Systemy algebraiczne i wielomiany nad ciałami zastosowania Rodzaje systemów algebraicznych ciała, grupy, pierścienie

Skończone rozszerzenia ciał

= b i M i [x], gdy charf = p, to a i jest pierwiastkiem wielomianu x n i

Projekt Era inżyniera pewna lokata na przyszłość jest współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego

Wykład 14 i 15. Równania różniczkowe. Równanie o zmiennych rozdzielonych. Definicja 1. Równaniem różniczkowym zwyczajnym rzędu n nazywamy równanie

Macierze. Rozdział Działania na macierzach

Krzywe Freya i Wielkie Twierdzenie Fermata

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.

Rozdział 1. Zadania. 1.1 Liczby pierwsze. 1. Wykorzystując sito Eratostenesa wyznaczyć wszystkie liczby pierwsze mniejsze niż 200.

Kryptografia - zastosowanie krzywych eliptycznych

Wstęp do Informatyki

Wykład 3 Równania rózniczkowe cd

Algorytmy i struktury danych. Wykład 4

12. Wykład 12: Algebraiczne domkniecie ciała. Wielokrotne pierwiastki wielomianów. Rózniczkowanie wielomianów. Elementy rozdzielcze.

ALGEBRA Z GEOMETRIĄ PIERŚCIENIE, CIAŁA I HOMOMORFIZMY

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

KONSPEKT FUNKCJE cz. 1.

Funkcje elementarne. Matematyka 1

3. Wykład 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:

Zadania z algebry liniowej - sem. I Struktury algebraiczne

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

Zadania do samodzielnego rozwiązania

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

5. Algebra działania, grupy, grupy permutacji, pierścienie, ciała, pierścień wielomianów.

Systemy bezpieczne i FTC (Niezawodne Systemy Cyfrowe)

1 + x 1 x 1 + x + 1 x. dla x 0.. Korzystając z otrzymanego wykresu wyznaczyć funkcję g(m) wyrażającą liczbę pierwiastków równania.

3. Macierze i Układy Równań Liniowych

Podstawowe struktury algebraiczne

Układy równań liniowych

ALGEBRA Z GEOMETRIĄ BAZY PRZESTRZENI WEKTOROWYCH

Kodowanie informacji

Równania różniczkowe liniowe wyższych rzędów o stałych współcz

Wyk lad 9 Podpierścienie, elementy odwracalne, dzielniki zera

14. Wykład 14: Grupa Galois wielomianu. Zasadnicze twierdzenia teorii Galois. Rozszerzenia rozwiązalne, cykliczne i abelowe

Podstawy Automatyki. Wykład 9 - Podstawy matematyczne automatyki procesów dyskretnych. dr inż. Jakub Możaryn. Instytut Automatyki i Robotyki

Matematyka dyskretna

O MACIERZACH I UKŁADACH RÓWNAŃ

1 Wyrażenia potęgowe i logarytmiczne.

Teoria Informacji - wykład. Kodowanie wiadomości

Kody blokowe Wykład 5a;

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

1. R jest grupą abelową względem działania + (tzn. działanie jest łączne, przemienne, istnieje element neutralny oraz element odwrotny)

Kompresja bezstratna. Entropia. Kod Huffmana

III. Funkcje rzeczywiste

MATeMAtyka 1. Przedmiotowy system oceniania wraz z określeniem wymagań edukacyjnych. Zakres podstawowy i rozszerzony Klasa pierwsza

WIELOMIANY. ZADANIE 1 (5 PKT) Reszta z dzielenia wielomianu x 3 + px 2 x + q przez trójmian (x + 2) 2 wynosi 1 x. Wyznacz pierwiastki tego wielomianu.

Wykład 5. Informatyka Stosowana. 7 listopada Informatyka Stosowana Wykład 5 7 listopada / 28

Transkrypt:

Kodowanie i kompresja Streszczenie Studia dzienne Wykład 6 1 Kody cykliczne: dekodowanie Definicja 1 (Syndrom) Niech K będzie kodem cyklicznym z wielomianem generuja- cym g(x). Resztę z dzielenia słowa w przez g(x) nazywamy syndromem s(w). Metoda 1 (dla cyklicznego (n, k)-kodu): Preprocessing: tworzymy tablicę T, która każdej możliwej wartości syndromu s przyporządkowuje słowo e(s) o najmniejszej wadze takie, że s(e(s)) = s (możliwe wartości syndromu to wielomiany stopnia mniejszego od n k). LUB dla kodu korygującego t błędów tworzymy listę L, która każdemu słowu e o wadze t przyporządkowuje wartość syndromu s(e). Dekodujemy słowo w o długości n: wyznaczamy s = s(w) z tablicy T (lub listy L) odczytujemy e(s) jako wynik przyjmujemy w e(s). Fakt 1 Syndrom cyklicznego przesunięcia w prawo słowa w jest równy reszcie z dzielenia xs(w) przez wielomian generujacy g(x). Metoda Meggita (dla cyklicznego (n, k)-kodu) z wielomianem generujacym g(x) 1. dla kodu korygującego t błędów tworzymy listę L, która każdemu słowu e o wadze t i mającemu jedynkę na skrajnie prawej pozycji przyporządkowuje wartość syndromu s(e). 2. Dekodujemy słowo w: wyznaczamy syndrom s(w), następnie wykonaj n 1 razy: jeśli s(w) znajduje się na liście L, zmień wartość skrajnie prawego bitu w przesuń w prawo (cyklicznie w) za s(w) podstaw resztę z dzielenie xs(w) przez g(x). 1

2 Dekodowanie: error-trapping decoding Jeśli po przesłaniu słowa v do odbiorcy dociera słowo w, to e = w v nazywamy wzorcem błędów. Definicja 2 Cyklicznym wzorcem błędów o długości l nazywamy niezerowe słowo binarne binarne e = e 0... e n 1 takie, że wszystkie wartości niezerowe w e zawieraja się w bloku o długości l, w cyklicznym sensie. To znaczy, istnieje i takie, że jedynki sa zawarte w e i, e (i+1) mod n..., e (i+1) mod n... Fakt 2 Niech K będzie (n, k)-kodem cyklicznym korygujacym t błędów. Niech w będzie słowem otrzymanym ze słowa kodowego wskutek co najwyżej t błędów. Wówczas: 1. Jeśli waga Hamminga syndromu s(w) nie jest większa od t, to wzorzec błędów e(w) jest równy wielomianowi s(w). 2. Jeśli wzorzec błędów e(w) jest cyklicznym wzorcem o długości n k to pewne cykliczne przesunięcie słowa w ma syndrom o wadze nie większej od t. Algorytm error-trapping : Niech K będzie cyklicznym (n, k)-kodem korygującym t błędów. Wówczas następujący algorytm koryguje kaźdy cykliczny wzorzec co najwyżej t błędów o długości n k. Dla słowa w, powtarzaj co najwyżej n 1 razy 1. Wyznacz syndrom s(w) 2. Jeśli waga Hamminga słowa s(w) jest mniejsza lub równa t, odkoduj w jako w s(w) i zakończ. 3. Za w podstaw cykliczne przesunięcie w w prawo. Twierdzenie 1 Każdy cykliczny (n, k)-kod wykrywa każdy cykliczny wzorzec błędów o długości n k. 3 Kody BCH 3.1 Podstawy algebraiczne Definicja 3 (Algebraiczne rozszerzenie ciała) Algebraicznym rozszerzeniem ciała F nazywamy pierścień F [x]/mod p(x) gdzie p(x) jest wielomianem stopnia m 1. Elementami tego rozszerzenia sa wielomiany f(α) stopnia mniejszego niż m, zmiennej α nad F. Operacje algebraiczne sa zdefiniowane następujaco: 2

dodawanie to standardowe dodawanie wielomianów; mnożenie: f(α)g(α) jest równe h(α), gdzie h(x) to reszta z dzielenia f(x)g(x) przez p(x). Twierdzenie 2 Algebraiczne rozszerzenie F [x]/mod p(x) dla nierozkładalnego p(x) jest ciałem. Definicja 4 Algebraiczne rozszerzenie ciała Z p za pomoca nieredukowalnego wielomianu stopnia m nazywamy ciałem Galois i oznaczamy GF (p m ). Definicja 5 Rzędem elementu a ciała F nazywamy minimalne n takie, że a n = 1. Element a nazywamy generatorem ciała F, jeśli każdy element F można przedstawić jako a k dla pewnego naturalnego k. Fakt 3 Każdy niezerowy element ciała skończonego ma rzad będacy dzielnikiem r 1, gdzie r jest liczba elementów ciała. Twierdzenie 3 Każde ciało skończone ma generator. Definicja 6 Charakterystyka ciała nazywamy minimalna liczbę n taka, że 1 + 1 +... + 1 = 0, gdzie liczba jedynek jest równa n. Fakt 4 Każde ciało skończone ma charakterystykę, która jest liczba pierwsza. Twierdzenie 4 Każde ciało F o charakterystyce p spełnia następujace warunki: 1. a p = a wtedy i tylko wtedy gdy a Z p 2. dla każdych a, b zachodzi (a + b) p = a p + b p. 3. jeśli wielomian nad Z p ma miejsce zerowe w punkcie a F, to wszystkie elementy ciagu a p, a p2, a p3,... sa miejscami zerowymi funkcji f(x). Definicja 7 Niech F będzie ciałem i niech β będzie elementem rozszerzenia F. Wielomianem minimalnym elementu β jest moniczny wielomian (nad F ) o najmniejszym stopniu majacy zero w β. Fakt 5 Każdy element β ciała skończonego F ma jeden wielomian minimalny M(x). Ponadto, M(x) jest dzielnikiem każdego wielomianu nad F, który ma miejsce zerowe w β. Fakt 6 Każdy wielomian minimalny jest nieredukowalny. Twierdzenie 5 Wielomian minimalny (nad Z p ) elementu β należacego do ciała GF (p m ) jest równy M(x) = (x β)(x β p )(x β p2 ) (x β pi ), gdzie i to najmniejsza wartość taka, że β pi+1 = β. Fakt 7 W ciele złożonym z r elementów, rzad każdego elementu jest dzielnikiem r 1. Ponadto, każdy dzielnik r 1 jest rzędem pewnego elementu. 3

3.2 Kody Hamminga jako kody cykliczne Niech β będzie elementem pewnego rozszerzenia ciała Z 2, rząd β wynosi n. Zdefiniujmy kod K jako zbiór tych słów (wielomianów) w 0 w 1... w n 1, dla których w(β) = 0. Jest to kod cykliczny, ponieważ: wielomian minimalny M(x) elementu β jest dzielnikiem x n 1 (Fakt 5), a każdy inny wielomian v taki, że v(β) = 0 dzieli się przez M(x). Fakt 8 Niech β będzie generatorem GF (2 m ). Wówczas binarny kod cykliczny o długości 2 m 1 opisany równaniem w(β) = 0 jest (cyklicznym) kodem Hamminga. 3.3 Kody BCH Niech F będzie ciałem skończonym, n liczbą względnie pierwszą z liczbą elementów F. Kodem BCH korygującym t błędów nad alfabetem F jest kod cykliczny złożony ze wszystkich słów w F n spełniających równanie w(β) = w(β 2 ) = w(β 3 ) =... = w(b 2t ) = 0, gdzie β jest elementem rzędu n pewnego algebraicznego rozszerzenia F. Inaczej mówiąc, słowa kodowe to wielomiany nad F, stopnia mniejszego od n, mające zera w β, β 2,..., β 2t. Twierdzenie 6 Kod BCH o długości n, korygujacy t błędów jest kodem cyklicznym, którego wielomian generujacy jest równy g(x) = LCM(M 1 (x), M 2 (x),..., M 2t (x)), gdzie M i (x) to minimalny wielomian dla β i, a LCM oznacza najmniejsza wspólna wielokrotność argumentów. Macierz parzystości kodu BCH o długości n, korygującego t błędów: 1 β β 2 β 3... β n 1 1 β 2 (β 2 ) 2 (β 2 ) 3... (β 2 ) n 1 1 β 3 (β 3 ) 2 (β 3 ) 3... (β 3 ) n 1...... 1 β 2t (β 2t ) 2 (β 2t ) 3... (β 2t ) n 1 Twierdzenie 7 Minimalna odległość korygujacego t błędów kodu BCH wynosi co najmniej 2t + 1. Oznacza to, że kod ten rzeczywiście koryguje t błędów. Fakt 9 Niech K będzie kodem BCH utworzonym w oparciu o generator ciała GF (2 n ), korygujacym t błędów. Słowo kodowe kodu K ma długość 2 n 1 i zawiera co najmniej 2 n 1 2tn bitów danych. 4

3.4 Kody BCH - dekodowanie 1. Zastosowanie standardowych metod dekodowania dla kodów liniowych bądź kodów cyklicznych: dekodowanie jednego słowa kodowego wymaga listy syndromów o rozmiarze rzędu ( ) n t (czyli wykładniczym ze względu na t), gdzie n to długość słowa kodowego a t liczba korygowanych błędów. 2. Istnieją efektywne algorytmy dekodowania dla kodów BCH, których czas działania jest wielomianowy ze względu na n i t. 3. Przykład zastosowania algorytmu error-trapping : Niech K będzie kodem BCH zdefiniowanym przez generator dla ciała GF (2 4 ), korygujący 2 błędy. Jest to kod o długości 15, słowo kodowe zawiera 7 bitów danych, czyli jest to (15, 7)-kd. A zatem algorytm error trapping pozwala na skorygowanie cyklicznych wzorców co najwyżej 2 błędów o długości co najwyżej 8. Lecz w słowie o długości 15 każdy układ dwóch błędów jest cyklicznych wzorcem o długości 8. Algorytm dekodowania dla kodów BCH poprawiajacych 2 błędy 1. Niech K to kod BCH o długości n, zdefiniowany poprzez generator β ciała GF (2 m ) (czyli słowa kodowe spełniają w(β) = w(β 3 ) = 0). 2. Odtwarzanie słowa kodowego, gdy do odbiorcy dotarło słowo w: (a) Wyznacz s 1 = w(β), s 3 = w(β 3 ). (b) Jeśli s 1 = s 3 = 0, to w jest słowem kodowym. (c) Jeśli s 1 = 0 s 3, to liczba błędów jest większa od 2. (d) Jeśli s 1 0: rozwiązujemy metodą brute force układ równań: x 2 + s 1 x + (s 2 1 + s 3 s 1 1 ) = 0 (1) Niech pierwiastki tego równania będą równe β i i β j. Wówczas poprawiamy wartości bitów na pozycjach i oraz j. 5