Podstawy Informatyki: Kody. Korekcja błędów. Adam Kolany Instytut Techniczny adamkolany@pm.katowice.pl Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 1 / 1
Alfabet Morse a Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 2 / 1
Alfabet Morse a Litera Wyraz Kod Litera Wyraz Kod A A-ZOT N NO-GA B BO-TA-NI-KA O O-PO-CZNO C CO-RAZ-MOC-NIEJ P PE-LO-PO-NEZ D DO-LI-NA Q GO-SPO-DAR-STWO E ELK R RE-FOR-MA F FI-LAN-TRO-PIA S SA-HA-RA G GO-SPO-DA T TOM H HA-LA-BAR-DA U UR-SY-NÓW I I-GLA V VIN-CENT-VAN-GOGH J JE-DNO-KON-NO W WI-NO-ROŚL K KO-LA-NO X XO-XY-MIL-KO L LE-O-NI-DAS Y YORK-HULL-OX-FORD M MO-TOR Z ZLO-TO-LI-STNA Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 3 / 1
Kod Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 4 / 1
Kod W zbiór wiadomości, Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 4 / 1
Kod W zbiór wiadomości, X dowolny alfabetem Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 4 / 1
Kod W zbiór wiadomości, X dowolny alfabetem (na ogół #W > #X ). Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 4 / 1
Kod W zbiór wiadomości, X dowolny alfabetem (na ogół #W > #X ). Kodem nazywamy odwzorowanie κ : W X Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 4 / 1
Przykład W - słowa języka polskiego, X = { 0,..., 9 }, Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 5 / 1
Przykład W - słowa języka polskiego, X = { 0,..., 9 }, κ(ω) = suma numerów UTF8 liter wchodzących w skład ω Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 5 / 1
Przykład W - słowa języka polskiego, X = { 0,..., 9 }, κ(ω) = suma numerów UTF8 liter wchodzących w skład ω κ(źrebię) = 1149, κ(ynalok64@wp.pl) = 1321 Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 5 / 1
Kody blokowe κ jest kodem blokowym, jeśli jest homomorfizmem. Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 6 / 1
Kody blokowe κ jest kodem blokowym, jeśli jest homomorfizmem. Tzn. κ(w 1... w n) = κ(w 1)... κ(w n), w 1,..., w n W Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 6 / 1
Kody blokowe κ jest kodem blokowym, jeśli jest homomorfizmem. Tzn. κ(w 1... w n) = κ(w 1)... κ(w n), w 1,..., w n W κ(w) słowo kodowe, w W. Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 6 / 1
Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 7 / 1
Kod nieosobliwy: Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 7 / 1
Kod nieosobliwy: κ(w) κ(w ), w w, w, w W. Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 7 / 1
Przykład W i X jak poprzednio, κ(l) = kod UTF8 znaku l κ(ynalok64@wp.pl) = 121 110 97 108 111 107 54 52 64 119 112 46 112 108 Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 8 / 1
Kod jednoznacznie dekodowalny: κ(w 1... w n) = κ(v 1... v n) = w 1 = v 1,... w n = v n. Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 9 / 1
Przykład Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 10 / 1
Przykład a 10 b 001 c 1 d 1011 Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 10 / 1
Przykład a 10 b 001 c 1 d 1011 acc = d Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 10 / 1
Kod jednoznacznie dekodowalny bez opóźnienia: κ(w 1... w n) = κ(v 1... v m) = n = m & w 1 = v 1,... w n = v n. Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 11 / 1
Przykład Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 12 / 1
Przykład Kody Shannona Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 12 / 1
Przykład Kody Shannona, Shannona-Fano Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 12 / 1
Przykład Kody Shannona, Shannona-Fano i Huffmana. Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 12 / 1
Wykrywanie i korygowanie błędów Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 13 / 1
zakłócenia sygnał wejściowy kanał komunikacyjny sygnał wyjściowy Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 14 / 1
Kody korekcyjne Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 15 / 1
Kody korekcyjne Blokowe Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 15 / 1
Kody korekcyjne Blokowe Splotowe Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 15 / 1
Kody blokowe Korekcyjne kody blokowe wymagają rozbicia ciągu informacyjnego na bloki k-elementowe i wykonania operacji kodowania na każdym bloku niezależnie od pozostałych. Podczas kodowania do bloku informacji dołączana jest tzw. sekwencja kontrolna umożliwiająca wykrycie lub korekcję błędów. Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 16 / 1
Kody splotowe Kody splotowe nie wymagają podziału informacji na bloki, a kodowanie odbywa się na bieżąco, w takt napływającej informacji. Elementy kodu uzależnione są od bieżącego elementu informacji oraz pewnej liczby elementów poprzednich. Koder kodu splotowego przyjmuje ciąg informacyjny i przetwarza go na ciąg kodowy o większej liczbie znaków. Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 17 / 1
Kody blokowe Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 18 / 1
Kody blokowe Kody liniowe Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 18 / 1
Kody blokowe Kody liniowe Kody cykliczne Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 18 / 1
Kody blokowe Kod blokowy: dowolny podzbiór K przestrzeni F n p, gdzie p P, n N. Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 19 / 1
Odległość Hamminga Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 20 / 1
Odległość Hamminga Odległością Hamminga ciągów α i β jest liczba: Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 20 / 1
Odległość Hamminga Odległością Hamminga ciągów α i β jest liczba: h(α, β) = # { j : α j β j } Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 20 / 1
Rozstęp Hamminga Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 21 / 1
Rozstęp Hamminga Rozstęp Hamminga kodu K: Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 21 / 1
Rozstęp Hamminga Rozstęp Hamminga kodu K: d(k) = min { h(u, v) : u, v K, u v } Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 21 / 1
Zdolność detekcyjna kodu Uwaga: Kod blokowy o rozstępie Hamminga d wykrywa: n w = d 1 błędów. Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 22 / 1
Tzn. u K & h(u, v) d 1 v K Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 23 / 1
Tzn. u K & h(u, v) d 1 v K Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 23 / 1
Zdolność korekcyjna kodu Uwaga: Kod blokowy o rozstępie Hamminga d koryguje: d 1 n k = 2 błędów. Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 24 / 1
Tzn. u, w K & h(u, v), h(w, v) d 1 2 w = u Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 25 / 1
Tzn. u, w K & h(u, v), h(w, v) d 1 2 w = u Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 25 / 1
Stwierdzenie Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 26 / 1
Stwierdzenie Aby kod korygował n w błędów, jego rozstęp Hamminga d musi spełniać nierówność: d 2t + 1 Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 26 / 1
Stwierdzenie Aby kod korygował n w błędów, jego rozstęp Hamminga d musi spełniać nierówność: d 2t + 1 Aby kod korygował n w, a wykrywał n k błędów (n k n w ), jego rozstęp Hamminga d musi spełniać nierówność: d n w + n k + 1 Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 26 / 1
Kody liniowe Kod liniowy: dowolna podprzestrzeń K przestrzeni F n p. Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 27 / 1
Kody liniowe Kod liniowy K F n p jest (n, k)-kodem jeśli jego wymiar wynosi k. Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 28 / 1
Kody liniowe Kod liniowy K F n p jest (n, k)-kodem systematycznym, jeśli { (x1,..., x k ) : xk+1,...,x n (x 1,..., x k, x k+1,..., x n) K } = F k p Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 29 / 1
Twierdzenie Każdy kod liniowy jest równoważny z kodem systematycznym. Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 30 / 1
Twierdzenie W (n, k)-kodzie liniowym rozstęp Hamminga d spełnia nierówność: d n k + 1 Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 31 / 1
Kodowanie Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 32 / 1
Kodowanie G = [ g1... g k ] - macierz bazowa (n, k)-kodu K Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 32 / 1
Kodowanie G = [ g1... g k ] - macierz bazowa (n, k)-kodu K (macierz generująca) Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 32 / 1
Kodowanie G = [ g1... g k ] - macierz bazowa (n, k)-kodu K (macierz generująca) v = v 1,..., v k F k p Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 32 / 1
Kodowanie G = [ g1... g k ] - macierz bazowa (n, k)-kodu K (macierz generująca) v = v 1,..., v k F k p Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 32 / 1
Kodowanie G = [ g1... g k ] - macierz bazowa (n, k)-kodu K (macierz generująca) v = v 1,..., v k F k p v G = v 1g 1 +... + v k g k F n p Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 32 / 1
Dekodowanie Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 33 / 1
Dekodowanie Macierz parzystości H kodu: w K H w T = 0. 0 Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 33 / 1
Dekodowanie Macierz parzystości H kodu: w K H w T = H G T = Θ 0. 0 Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 33 / 1
Dekodowanie Macierz parzystości H kodu: w K H w T = H G T = Θ 0. 0 ( wiersze G i H są wzajemnie prostopadłe ) Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 33 / 1
Dekodowanie Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 34 / 1
Dekodowanie Jeśli G = [I A], to macierzą parzystości jest H = [ A T I ] Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 34 / 1
Dekodowanie Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 35 / 1
Dekodowanie Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 35 / 1
Dekodowanie Dane w F n p Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 35 / 1
Dekodowanie Dane w F n p Liczymy syndrom s = Hw T. Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 35 / 1
Dekodowanie Dane w F n p Liczymy syndrom s = Hw T. Znajdujemy reprezentanta e warstwy o syndromie s Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 35 / 1
Dekodowanie Dane w F n p Liczymy syndrom s = Hw T. Znajdujemy reprezentanta e warstwy o syndromie s (przygotowane zawczasu); Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 35 / 1
Dekodowanie Dane w F n p Liczymy syndrom s = Hw T. Znajdujemy reprezentanta e warstwy o syndromie s (przygotowane zawczasu); Zakładamy, że wysłanym słowem jest v = w e. Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 35 / 1
Przykład G = [ 1 0 0 0 1 1 0 1 0 1 0 1 0 0 1 1 1 0 ], Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 36 / 1
Przykład G = [ 1 0 0 0 1 1 0 1 0 1 0 1 0 0 1 1 1 0 ], H = [ 0 1 1 1 0 0 1 0 1 0 1 0 1 1 0 0 0 1 ] Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 36 / 1
Przykład reprezentant syndrom 000000 000 000001 001 000010 010 100000 011 000100 100 010000 101 001000 110 010010 111 Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 37 / 1
Przykład reprezentant syndrom 000000 000 000001 001 000010 010 100000 011 000100 100 010000 101 001000 110 010010 111 (reprezentanty o najmniejszej wadze Hamminga) Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 37 / 1
Przykład reprezentant syndrom 000000 000 000001 001 000010 010 100000 011 000100 100 010000 101 001000 110 010010 111 (reprezentanty o najmniejszej wadze Hamminga) w = 1, 1, 1, 1, 1, 1 Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 37 / 1
Przykład reprezentant syndrom 000000 000 000001 001 000010 010 100000 011 000100 100 010000 101 001000 110 010010 111 (reprezentanty o najmniejszej wadze Hamminga) w = 1, 1, 1, 1, 1, 1 s(w) = 111 Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 37 / 1
Przykład reprezentant syndrom 000000 000 000001 001 000010 010 100000 011 000100 100 010000 101 001000 110 010010 111 (reprezentanty o najmniejszej wadze Hamminga) w = 1, 1, 1, 1, 1, 1 s(w) = 111 e = 010010 Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 37 / 1
Przykład reprezentant syndrom 000000 000 000001 001 000010 010 100000 011 000100 100 010000 101 001000 110 010010 111 (reprezentanty o najmniejszej wadze Hamminga) w = 1, 1, 1, 1, 1, 1 s(w) = 111 e = 010010 w = 1, 0, 1, 1, 0, 1 Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 37 / 1
Kody Hamminga Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 38 / 1
Kody Hamminga Kod Hamminga KH m Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 38 / 1
Kody Hamminga Kod Hamminga KH m binarny kod liniowy Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 38 / 1
Kody Hamminga Kod Hamminga KH m binarny kod liniowy z macierzą parzystości 0 0 0 0 1 0 1....................... H = 0 1 1 0 0 1 1 1 0 1 1 1 1 1 Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 38 / 1
Kody Hamminga Kod Hamminga KH m binarny kod liniowy z macierzą parzystości 0 0 0 0 1 0 1....................... H = 0 1 1 0 0 1 1 (1, 2,..., 2 m 1 dwójkowo) 1 0 1 1 1 1 1 Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 38 / 1
Kody Hamminga Kod Hamminga KH m binarny kod liniowy z macierzą parzystości 0 0 0 0 1 0 1....................... H = 0 1 1 0 0 1 1 (1, 2,..., 2 m 1 dwójkowo) 1 0 1 1 1 1 1 syndrom = numer błędnego bitu! Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 38 / 1
Przykład Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 39 / 1
Przykład m = 3 Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 39 / 1
Przykład m = 3 H = [ 0 0 0 0 1 0 1 0 1 1 0 0 1 1 1 0 1 1 1 1 1 ] Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 39 / 1
Przykład m = 3 H = [ 0 0 0 0 1 0 1 0 1 1 0 0 1 1 1 0 1 1 1 1 1 ] G - baza przestrzeni rozwiązań równania HX = [ 0 0 0 ] Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 39 / 1
Przykład, c.d. H x 1 x 2 x 3 x 4 x 5 x 6 x 0 = [ 0 0 0 ] Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 40 / 1
Przykład, c.d. H x 1 x 2 x 3 x 4 x 5 x 6 x 0 = [ 0 0 0 ] [ 0 0 0 0 1 0 1 0 1 1 0 0 1 1 1 0 1 1 1 1 1 ] x 1 x 2 x 3 x 4 x 5 x 6 x 7 = [ 0 0 0 ] Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 40 / 1
Przykład, c.d. 0 + 0 + 0 + x 4 + x 5 + x 6 + x 7 = 0 0 + x 2 + x 3 + 0 + 0 + x 6 + x 7 = 0 x 1 + 0 + x 3 + 0 + x 5 + 0 + x 7 = 0 Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 41 / 1
Przykład, c.d. x 5 + x 6 + x 7 = x 4 0 + x 6 + x 7 = x 2 + x 3 x 5 + 0 + x 7 = x 1 + x 3 Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 42 / 1
Przykład, c.d. x 5 + x 6 + x 7 = x 4 0 + x 6 + x 7 = x 2 + x 3 x 5 + 0 + x 7 = x 1 + x 3 [ 1 1 1 0 1 1 1 0 1 ] [ x5 x 6 x 7 ] = [ x4 x 2 + x 3 x 1 + x 3 ] Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 42 / 1
Przykład, c.d. [ x5 x 6 x 7 ] = [ 1 1 1 0 1 1 1 0 1 ] 1 [ x4 x 2 + x 3 x 1 + x 3 ] = [ 1 1 0 1 0 1 1 1 1 ] [ x4 x 2 + x 3 x 1 + x 3 ] Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 43 / 1
Przykład, c.d. [ x5 x 6 x 7 ] = [ x2 + x 3 + x 4 x 1 + x 3 + x 4 x 1 + x 2 + x 4 ] X = x 1 x 2 x 3 x 4 x 5 x 6 x 0 = x 1 1 0 0 0 0 1 1 + x 2 0 1 0 0 1 0 1 + x 3 0 0 1 0 1 1 0 + x 4 0 0 0 1 1 1 1 Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 44 / 1
Przykład, c.d. G = 1 0 0 0 0 1 1 0 1 0 0 1 0 1 0 0 1 0 1 1 0 0 0 0 1 1 1 1 Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 45 / 1
Przykład, c.d. Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 46 / 1
Przykład, c.d. Kodujemy: 0, 1, 0, 1 [0, 1, 0, 1] 1 0 0 0 0 1 1 0 1 0 0 1 0 1 0 0 1 0 1 1 0 0 0 0 1 1 1 1 = [0, 1, 0, 1, 0, 1, 0] Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 46 / 1
Przykład, c.d. Kodujemy: 0, 1, 0, 1 [0, 1, 0, 1] Odebrany jest 0, 1, 0, 1, 0, 0, 0. 1 0 0 0 0 1 1 0 1 0 0 1 0 1 0 0 1 0 1 1 0 0 0 0 1 1 1 1 = [0, 1, 0, 1, 0, 1, 0] Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 46 / 1
Przykład, c.d. Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 47 / 1
Przykład, c.d. Wyznaczamy syndrom: Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 47 / 1
Przykład, c.d. Wyznaczamy syndrom: [0, 1, 0, 1, 0, 0, 0] [ 0 0 0 1 1 1 1 0 1 1 0 0 1 1 1 0 1 0 1 0 1 ]T = = [0, 1, 0, 1, 0, 0, 0] 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 = [1, 1, 0] Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 47 / 1
Przykład, c.d. Wyznaczamy syndrom: [0, 1, 0, 1, 0, 0, 0] Wadliwy jest 6. bit! [ 0 0 0 1 1 1 1 0 1 1 0 0 1 1 1 0 1 0 1 0 1 ]T = = [0, 1, 0, 1, 0, 0, 0] 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 = [1, 1, 0] Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 47 / 1
Kod Hamminga kilka własności Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 48 / 1
Kod Hamminga kilka własności Minimalna odległość Hamminga dla KH m wynosi 3. Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 48 / 1
Kod Hamminga kilka własności Minimalna odległość Hamminga dla KH m wynosi 3. Każdy ciąg niekodowy jest w odległości 1 od jakiegoś ciągu kodowego. Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 48 / 1
Kod Hamminga kilka własności Minimalna odległość Hamminga dla KH m wynosi 3. Każdy ciąg niekodowy jest w odległości 1 od jakiegoś ciągu kodowego. Przekłamanie dwu bitów jest niewykrywalna. Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 48 / 1
Inne rozwiązania Kody Reeda-Müllera Kody cykliczne (BCH)... Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 49 / 1
Dziękuję za uwagę... Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 50 / 1