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

Podobne dokumenty
Kodowanie i kompresja Streszczenie Studia dzienne Wykład 6

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

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

Matematyka dyskretna

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

Kodowanie i kompresja Streszczenie Studia dzienne Wykład 9,

W11 Kody nadmiarowe, zastosowania w transmisji danych

Kody blokowe Wykład 2, 10 III 2011

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

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

Laboratorium ochrony danych

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

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

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

Kody Tunstalla. Kodowanie arytmetyczne

Wykład 12 i 13 Macierz w postaci kanonicznej Jordana , 0 A 2

Systemy bezpieczne i FTC (Niezawodne Systemy Cyfrowe)

Kodowanie informacji

2 Kryptografia: algorytmy symetryczne

Układy równań liniowych

Macierze. Rozdział Działania na macierzach

Kody blokowe Wykład 1, 3 III 2011

Krzysztof Leszczyński Adam Sosnowski Michał Winiarski. Projekt UCYF

Polska-Brazylia 5:0, czyli o poprawianiu błędów w przekazywanych informacjach

Modulacja i Kodowanie. Labolatorium. Kodowanie Kanałowe Kody Hamminga

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

Kodowanie i kompresja Streszczenie Studia Licencjackie Wykład 11,

Zastosowania wyznaczników

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

Lokalna odwracalność odwzorowań, odwzorowania uwikłane

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

Tranzystor JFET i MOSFET zas. działania

Wektory i wartości własne

Kodowanie informacji. Kody liczbowe

Zadania egzaminacyjne

Przekształcenia liniowe

Macierze - obliczanie wyznacznika macierzy z użyciem permutacji

Algorytmy i struktury danych. wykład 8

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

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

Kompresja bezstratna. Entropia. Kod Huffmana

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

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.

Wektory i wartości własne

Wstęp do metod numerycznych Uwarunkowanie Eliminacja Gaussa. P. F. Góra

Kompresja danych Streszczenie Studia Dzienne Wykład 10,

13 Układy równań liniowych

Zaawansowane metody numeryczne

O MACIERZACH I UKŁADACH RÓWNAŃ

Zaawansowane metody numeryczne

xx + x = 1, to y = Jeśli x = 0, to y = 0 Przykładowy układ Funkcja przykładowego układu Metody poszukiwania testów Porównanie tabel prawdy

Przestrzenie wektorowe

jest rozwiązaniem równania jednorodnego oraz dla pewnego to jest toŝsamościowo równe zeru.

2. Układy równań liniowych

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

Elementy teorii informacji i kodowania

Zaawansowane metody numeryczne

Kody blokowe Wykład 5a;

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

Temat: Algorytm kompresji plików metodą Huffmana

Baza w jądrze i baza obrazu ( )

Metody numeryczne. Sformułowanie zagadnienia interpolacji

Teoretyczne podstawy programowania liniowego

Formy kwadratowe. Mirosław Sobolewski. Wydział Matematyki, Informatyki i Mechaniki UW. 14. wykład z algebry liniowej Warszawa, styczeń 2017

Wykład 4. Informatyka Stosowana. Magdalena Alama-Bućko. 25 marca Magdalena Alama-Bućko Wykład 4 25 marca / 25

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

Kod znak-moduł. Wartość liczby wynosi. Reprezentacja liczb w kodzie ZM w 8-bitowym formacie:

Kody splotowe. Zastosowanie

1 Macierz odwrotna metoda operacji elementarnych

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

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

Układy liniowo niezależne

= Zapiszemy poniższy układ w postaci macierzy. 8+$+ 2&=4 " 5 3$ 7&=0 5$+7&=4

Podstawowe pojęcia. Teoria informacji

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

Rozwiązywanie układów równań liniowych

Wykład I: Kodowanie liczb w systemach binarnych. Studia Podyplomowe INFORMATYKA Podstawy Informatyki

Programowanie liniowe

Teoria Informacji - wykład. Kodowanie wiadomości

0-0000, , , itd

UKŁADY RÓWNAŃ LINIOWYCH

Wykład 14. Elementy algebry macierzy

Arytmetyka komputera

E: Rekonstrukcja ewolucji. Algorytmy filogenetyczne

Układy równań liniowych

Zadania z algebry liniowej Iloczyn skalarny, przestrzenie euklidesowe

Według raportu ISO z 1988 roku algorytm JPEG składa się z następujących kroków: 0.5, = V i, j. /Q i, j

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

Nierówność Krafta-McMillana, Kodowanie Huffmana

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

1 Zbiory i działania na zbiorach.

Kwantyzacja wektorowa. Kodowanie różnicowe.

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

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

12. Wprowadzenie Sygnały techniki cyfrowej Systemy liczbowe. Matematyka: Elektronika:

Założenia i obszar zastosowań. JPEG - algorytm kodowania obrazu. Geneza algorytmu KOMPRESJA OBRAZÓW STATYCZNYCH - ALGORYTM JPEG

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

Endomorfizmy liniowe

Transformaty. Kodowanie transformujace

Transkrypt:

Kodowanie i kompresja Tomasz Jurdziński Studia Wieczorowe Wykład 13 1 Kody liniowe - kodowanie w oparciu o macierz parzystości Przykład Różne macierze parzystości dla kodu powtórzeniowego. Co wiemy z algebry układ k równań liniowym n zmiennych (k n) odpowiada macierzy H rozmiaru k n; zbiór rozwiązań układu równań tworzy podprzestrzeń liniową Z n 2 ; ale rozmiar tej podprzestrzeni zależy od rzędu macierzy H maksymalnej liczby liniowo niezależnych wierszy/kolumn (p. przykład powyżej); dlatego ograniczymy się do macierzy, w których wszystkie wiersze są liniowo niezależne, więc rząd macierzy to k (pozostałe wiersze nie są w ogóle potrzebne). wówczas rząd podprzestrzeni to n k, liczba słów kodowych to 2 n k (ponieważ rozważamy ciało Z 2 );... a zawartość informacyjna kodu to (n k)/n. Wniosek. Niech H będzie macierzą parzystości kodu liniowego, rozmiaru k n, rzędu k (k < n). Wówczas, słowa kodowe mają długość n, każde słowo kodowe koduje n k bitów danych. Przypomnienie Macierz rzędu k zawiera k liniowo niezależnych wierszy i k liniowo niezależnych kolumn. Nasze zadanie, to jednoznacznie przyporządkować słowo kodowe do każdego binarnego ciągu danych v 1... v n k. Robimy to w następujący sposób: W układzie równań Hx = 0 ustalamy n k zmiennych x i1,..., x in k, którym przyporządkowane są wartości v 1,..., v n k. W efekcie uzyskujemy układ k równań liniowych z k niewiadomymi H x = b, który rozwiązujemy standardowymi metodami algebry liniowej. Macierz H składa się z kolumn macierzy H o numerach spoza zbioru i 1,..., i n k. 1

UWAGA: Powyżej zdefiniowany układ k równań liniowych z k niewiadomymi powinien mieć jednoznaczne rozwiązanie. A zatem, macierz H powinna mieć rząd k. Oznacza to, że kolumny odpowiadające bitom korygującym powinny być liniowo niezależne! Przykład: Kody Hamminga (2 m 1 m, 2 m ). Jeśli bitom danych przyporządkujemy wartości wszystkich zmiennych, które nie są potęgami dwójki, wówczas macierz H w układzie równań H x = b będzie macierzą jednostkową. Lecz przyporządkowanie bitom danych zmiennych x m+1,..., x 2 m 1 spowoduje, że układ równań H x = b nie będzie miał jednoznacznego rozwiązania!!! Jak uprościć obliczenia? najlepiej, gdy macierz parzystości k n zawiera kolumny d i (z jedną jedynką na pozycji i) dla i = 1,..., k; te kolumny umieścimy na końcu; wtedy układ równań przyjmuje postać (po wstawieniu bitów danych): Ix = b dla macierzy jesnostkowej I i wyliczonego wektora b (na podstawie bitów danych); a rozwiązanie takiego układu jest trywialne; gdy spełnione są powyższe warunki mówimy, że kod jest systematyczny; w takim kodzie bity danych występują na początku słowa kodowego. 2 Kody liniowe ogólna metoda dekodowania Definicja 1 Załóżmy, że po przejściu przez kanał komunikacyjny otrzymaliśmy słowo binarne w, gdy wysłane było słowo kodowe v. Wówczas wektor e(w, v) = w + v nazywamy wektorem błędów. Zauważmy, że wektor błędów ma jedynki na tych pozycjach, na których wystąpiły przekłamania. Ponadto, zgodnie z arytmetyką w Z n 2, zachodzi v = w + e, czyli do odkodowania słowa kodowego wystarczy wyznaczyć wektor błędów. Definicja 2 Niech H będzie macierza parzystości (o rozmiarze m n) kodu liniowego K. Wówczas syndromem słowa w {0, 1} n nazywamy słowo s(w) = Hw T (w T oznacza transpozycję). Zauważmy, że syndrom każdego słowa kodowego kodu K jest równy wektorowi zerowemu. Ponadto, zachodzi następująca własność: 2

Lemat 1 Załózmy, że przez kanał komunikacyjny przesłane zostało słowo kodowe v a odebrane słowo w, stosowaliśmy kod liniowy z macierza parzystości H. Wówczas syndrom słowa w jest równy syndromowi wektora błędów e(w, v). Algorytm Dekodowania Dane: Słowo w oraz macierz parzystości H. (A zatem wyznaczyć też możemy syndrom słowa w, s(w)). Szukamy: słowa kodowego v, takiego że d(w, v) jest minimalna. Algorytm: Szukamy słowa binarnego e długości n o najmniejszej liczbie jedynek, ze zbioru słów, których syndrom jest równy s(w), czyli Hw = He. Następnie przyjmujemy, że e jest wektorem błędów, czyli v = w + e. Uzasadnienie: Liczba jedynek w wektorze błędów odpowiada liczbie błęów transmisji. Ponadto, H(w + e) = H(w) + H(e) = H(w) + H(w) = 0. Przykład: Powyższa metoda stosowana jest w kodzie Hamminga. Zaletą kodu Hamminga jest, iż wartość syndromu jednoznacznie i efektywnie identyfikuje wektor błędów o najmniejszej liczbie jedynek. Twierdzenie 1 Niech K będzie binarnym kodem liniowym o macierzy parzystości H rozmiaru m n i wadze w(k) = p. Wówczas: czas zakodowania n m bitów danych jest rzędu O(m n + m 3 ); w kodzie systematycznym jest to O(m n) czas dekodowania jednego słowa kodowego (odpowiadajacego n m bitom danych) jest rzędu O ( ) ) (p 1)/2 i=1 m n. ( n i dla długich ciagów danych możliwe jest szybsze dekodowanie, ale kosztem pamięci: Preprocessing: w czasie O ( ( ) ) (p 1)/2 n i=1 i m n wyznaczamy dla każdej wartości syndromu s słowo e o minimalnej wadze wśród słów spełniajacych warunek He = s (czyli s(e) = s); wyniki umieszczamy w tablicy A o 2 m elementach długości n. Dekodowanie: dla każdego ciagu o długości n wyznaczamy jego syndrom w czasie O(mn) i ustalamy wektor błędów w oparciu o tablicę A. Definicja 3 (Kod rozszerzony) Kodem rozszerzonym liniowego (n, k) kodu K nazywamy liniowy (n + 1, k) kod K otrzymany z K poprzez dodanie do każdego słowa kodowego x = x 1... x n symbolu x n+1 równego n i=1 x i. Inaczej mówiac, do każdego słowa kodowego dodajemy bit parzystości. 3

3 Jednoczesne wykrywanie i poprawianie błędów Przykład Czy potrafimy odróżnić dwa błędy od jednego błędu w kodzie Hamminga? co się stanie gdy zastosujemy dekodowanie po wystąpieniu 2 błędów? CEL: chcemy odróżnić 2 błędy od jednego, bo jeden możemy skorygować, a gdy są dwa to możemy poprosić o retransmisję (dekodowanie będzie wówczas niepoprawne). Definicja 4 Mówimy, że kod blokowy K jednocześnie poprawia t błędów i wykrywa s błędów (t < s) jeśli dla każdego słowa kodowego v i każdego w spełniajacego warunek d(v, w) s, odległość Hamminga słowa w od każdego słowa kodowego w w wynosi więcej niż t. Powyższa własność umożliwia jednoczesne poprawianie t błędów i wykrywanie s błędów w następującym sensie: jeśli liczba błędów jest mniejsza niż t wówczas wykonywane jest dekodowanie odtwarzające oryginalne słowo kodowe; jeśli liczba błędów znajduje się w przedziale [t + 1, s], wówczas wykryty zostaje fakt wystąpienia błędów, ale bez możliwości ich poprawienia. Stosujemy w tym celu następujący algorytm. Niech w będzie słowem odebranym po przejściu przez kanał komunikacyjny, niech v będzie najbliższym w słowem kodowym w sensie miary Hamminga: jeśli d(v, w) t wówczas przyjmujemy, że przesłane słowo kodowe to v; jeśli d(v, w) > t, wówczas sygnalizowany jest fakt wystąpienia więcej niż t błędów. Fakt 1 Kod K jednocześnie poprawia t błędów i wykrywa s błędów wtedy i tylko wtedy, gdy minimalna odległość kodu d(k) spełnia warunek d(k) t + s + 1. Fakt 2 Rozszerzone kody Hamminga jednocześnie poprawiaja jeden bład i wykrywaja dwa błędy. 4

4 Co jeszcze warto wiedzieć? Kody stosowane w praktyce do korekcji błędów na nośnikach danych: dobrze sobie radzą z błędami seryjnymi (ciąg bitów z błędami) uzasadnione specyfiką uszkodzeń; Istnieją ogólne kody, które pozwalają: korygować b błędów na słowie kodowym; kosztem tylko 2 log n bitów korygujących na n bitów danych (trochę gorzej niż kody Hamminga); powyższe kody są kodami liniowymi! Dlaczego więc nie poznamy tych kodów na wykładzie: czas, algebra,... 5