Kompresja

Transkrypt

Kompresja
Wieczorowe Studia Licencjackie
Wrocław, 22.05.2007
Kodowanie informacji
Kody korygujące błędy
Wykład 11
(nieoficjalna notatka)
Literatura
- J. Adamek, Foundations of Coding, John Wiley & Sons, 1991.
- D.G.Hoffman, D.A.Leonard, i in., Coding Theory, Dekker Inc. 1992.
Cel:
-
ochrona przed błędami transmisji i zapisu – kody wykrywające i korygujące błędy
Definicja (jak kodujemy)
Dla alfabetu źródłowego A={0,1} kod K to odwzorowanie:
K : Am → An
co oznacza, że:
- dane dzielimy na bloki o długości m;
- każdy blok jest zamieniany na słowo kodowe o długości n.
Podstawowe pojęcia (przypomnienie):
- Słowo kodowe: K(ai) dla każdego ai∈Am
- Kod blokowy: długość K(a) jest równa długości K(b) dla każdych a,b∈A (czyli teraz
zajmiemy się tylko kodami blokowymi).
Definicja (binarny kanał symetryczny)
Przez binarny kanał symetryczny rozumiemy kanał komunikacyjny spełniający następujące
warunki:
− dane w postaci oryginalnej oraz dane w postaci zakodowanej to ciągi binarne,
− prawdopodobieństwo błędu p pojawienia się 1 na wyjściu dla wartości wejściowej 0 jest
równe prawdopodobieństwu pojawienia się 0 na wyjściu dla wartości wejściowej 1,
− rozkład prawdopodobieństwa wartości wyjściowej jest niezależny od wcześniej
przesyłanych wartości.
UWAGA:
- zakładamy, że 0 ≤ p < ½ (DLACZEGO?)
Ogólny schemat kodowania korygującego błędy:
− Cel: dane wejściowe zakodować do postaci, w której błędy kanału mogą być wykryte
i/lub skorygowane
− Model: Przed przesłaniem używamy algorytmu kodowania, który wyznacza nową
reprezentację danych. Przesyłane są dane w postaci zakodowanej, po przesłaniu
odtwarzamy postać oryginalną za pomocą algorytmu dekodowania, którego celem jest
wykrycie (ewentualnych) błędów i/lub ich skorygowanie (o ile nie było ich za dużo).
− Jakość kodowania:
o rozmiar danych „nadmiarowych” (rozmiar danych zakodowanych, w porównaniu
z rozmiarem danych oryginalnych);
o Perr: prawdopodobieństwo powstania błędu przy odtwarzaniu danych (przy
ustalonym prawdopodobieństwie błędu binarnego kanału symetrycznego).
Definicja (zawartość informacyjna kodu)
Przez zawartość informacyjną kodu blokowego K rozumiemy wartość
R(K)=m / n,
gdzie m to logarytm z liczby słów kodowych, a n długość słów kodowych.
Intuicja: R(K) określa „odsetek danych oryginalnych” w ich zakodowanej postaci.
Przykład – kod powtórzeniowy!
Definicja
Odległość Hamminga słów o równej długości a i b, d(a,b) jest równa liczbie bitów na których
a i b są różne.
Własności:
− d(a,a)=0
− d(a,b)=d(b,a)
− d(a,b)+d(b,c)≥d(a,c)
Interpretacja odległości Hamminga na kostce k-wymiarowej (dla słów długości k).
Przykład: kod powtórzeniowy i kod parzystości.
WYKRYWANIE BLEDOW:
- Kiedy wykryjemy błąd: gdy ODEBRANA WARTOSC NIE JEST SLOWEM
KODOWYM!
NIEPOPRAWNE DEKODOWANIE:
- GDY ODKODUJEMY INNĄ WARTOŚĆ NIŻ PRZESLANA. PBB niepoprawnego
kodowania: prawdopodobieństwo, że dotarła wartość, która jest bliższa innego niż
przesłane słowa kodowego.
- Perr(K) - prawdopodobieństwo, że słowo kodowe nie zostanie odkodowane w
oryginalnej postaci.
NIEWYKRYTY BŁĄD: w wyniku zostało uzyskane inne słowo kodowe niż przesłane. Czyli
przesłane w, a otrzymane w’≠w oraz w’ też jest słowem kodowym.
Schemat dekodowania kodów metodą maksymalnego prawdopodobieństwa (MMP):
− niech y to blok danych na wyjściu kanału, równy długości słowa kodowego,
− y dekodujemy poprzez wybór słowa kodowego x o najmniejszej odległości Hamminga
od y.
Twierdzenie 0
Jeśli w binarnym kanale symetrycznym odebrane zostało słowo w, to najbardziej
prawdopodobne jest, że przesłane zostało słowo kodowe o najmniejszej odległości Hamminga
od w.
Dowód:
-
długość słowa kodowego to n
Niech v to słowo kodowe o minimalnej odległości Hamminga od w (wśród słów
kodowych).
Niech d(w,v)=d.
Wtedy P(out(w) | in(v)) = (1-p)n-dpd
Dla każdego innego słowa kodowego v’ P(out(v’) | in(w)) < P(out(v) | in(w))
Definicja
Kod K wykrywa t błędów, jeśli dla każdego słowa kodowego i każdego wyboru t’ ≤ t błędów
w tym słowie, nowe słowo nie jest słowem kodowym.
INTUICJA:
- błąd NIE będzie wykryty, gdy błędy spowodują przekształcenie słowa KODOWEGO
w na inne słowo kodowe v;
- jeśli więc nie jest możliwe przekształcenie ŻADNEGO słowa kodowego na inne
słowo kodowego przez zanegowanie (co najwyżej) t bitów, kod wykryje każdy układ
(co najwyżej) t błędów.
Definicja
Kod K poprawia (koryguje) t błędów, jeśli dla każdego słowa kodowego i każdego wyboru
t’≤t błędów w tym słowie wartość odtworzona za pomocą metody maksymalnego
prawdopodobieństwa równa jest temu słowu kodowemu.
Przykład:
Dla kodu powtórzeniowego.
Dla kodu parzystości.
Df.
(Minimalna) odległość kodu K oznaczana przez d(K): minimum po wszystkich słowach
kodowych a, b z odległości Hamminga d(a,b).
Przykład:
Dla kodu powtórzeniowego.
Dla kodu parzystości.
Twierdzenie 1.
Kod K wykrywa t błędów ⇔ d(K) > t.
Dowód:
⇐
Jeśli d(K)>t, to dla
- każdego wysłanego słowa kodowego w
- i każdego układu t’≤t błędów
- uzyskamy słowo v takie, że d(w,v) ≤ d(K) < t
- a zatem v nie jest słowem kodowym!
⇒
Jeśli d(K) ≤ t, to
- istnieją słowa kodowe w, v takie, że d(w,v) ≤ t;
- czyli po przesłaniu w
- i przy błędach na pozycjach, na których w i v się różnią (jest ich co najwyżej t)
- uzyskamy słowo v.
Twierdzenie 2.
Kod K koryguje t błędów ⇔ d(K) > 2t.
Dowód:
⇒
Jeśli d(K) > 2t, to dla
- każdego wysłanego słowa kodowego w
- i każdego układu t’≤t błędów
- uzyskamy słowo v takie, że d(w, v) ≤ t (A)
- niech x będzie innym słowem kodowym,
- wtedy d(x,w) > 2t (z założenia)
- d(w,v)+d(v,x) ≥ d(w,x)>2t [z nierówności trójkąta]
- ... czyli d(v,x) > 2t – t = t [ p. (A) ]
- ... czyli d(v,w)< d(v,x) dla każdego słowa kodowego x różnego od w
- czyli MMP odkoduje słowo w.
⇐
Jeśli d(K) ≤ 2t, to
- istnieją słowa kodowe w, v takie, że d(w,v)=d ≤ 2t;
- Niech i1,i2,…id to pozycje na których różnią się w i v;
- załóżmy, że wysłane zostało słowo kodowe w,
- ... a następnie błędy wystąpiły na pozycjach i1,i3, i5… (wszystkie NIEPARZYSTE
pozycje wśród i1,i2,…id) i uzyskaliśmy x;
- wtedy d(w, x)≥ d/2 oraz d(v, x) ≤d/2
- czyli MMP(w) nie odkoduje słowa w (słowo v ma nie większą odległość od x niż w)

Podobne dokumenty