Kod Hamminga Podstawy Telekomunikacji Autor Pawe Zajdel Damian

  • Slides: 20
Download presentation
Kod Hamminga Podstawy Telekomunikacji Autor: Paweł Zajdel Damian Sitarek Kamil Cisek

Kod Hamminga Podstawy Telekomunikacji Autor: Paweł Zajdel Damian Sitarek Kamil Cisek

Zadanie 1 Proszę zakodować następujące ciągi 5 -cio bitowe: a) 11010 b) 01011 c)

Zadanie 1 Proszę zakodować następujące ciągi 5 -cio bitowe: a) 11010 b) 01011 c) 10001 d) 11110 e) 10101 a) Bity nadmiarowe występują na pozycjach będących potęgami liczby 2 tj. 1, 2, 4, 8, 16 … Pozycje numerujemy od lewej do prawej. Dany ciąg uzupełniamy o miejsca na których wystąpią bity nadmiarowe __1_101_0 Przykładowe numerowanie pozycji: Algorytm sprawdzania bitów: pozycja 1 pozycja 7 Obliczając bit na i-tej pozycji sprawdzamy i-1 bitów (następujących po bicie na i-tej pozycji), następnie opuszczamy i bitów, sprawdzamy i bitów, opuszczamy i bitów itd.

Zadanie 1 c. d. a) Obliczamy kod nadmiarowy dla wiadomości x=11010. Zapisujemy najpierw to

Zadanie 1 c. d. a) Obliczamy kod nadmiarowy dla wiadomości x=11010. Zapisujemy najpierw to słowo zostawiając miejsce na bity nadmiarowe: __1_101_0. Obliczamy x 1: __1_101_0 x 1=1 Obliczamy x 2: 1_1_101_0 x 2=0 Obliczamy x 4: 101_0 x 4=0 Obliczamy x 8: 1010101_0 x 8=0 Odpowiedź: 10100 b) x=01011. Zapisujemy najpierw to słowo zostawiając miejsce na bity nadmiarowe: __0_101_1. Obliczamy x 1: __0_101_1 x 1=1 Obliczamy x 2: 1_0_101_1 x 2=1 Obliczamy x 4: 110_101_1 x 4=0 Obliczamy x 8: 1100101_1 x 8=1 Odpowiedź: 110010111

Zadanie 1 c. d. c) x=10001. Zapisujemy to słowo zostawiając miejsce na bity nadmiarowe:

Zadanie 1 c. d. c) x=10001. Zapisujemy to słowo zostawiając miejsce na bity nadmiarowe: __1_000_1. Obliczamy x 1: __1_000_1 x 1=0 Obliczamy x 2: 0_1_000_1 x 2=1 Obliczamy x 4: 011_000_1 x 4=0 Obliczamy x 8: 0110000_1 x 8=1 Odpowiedź: 011000011 d) x=11110. Zapisujemy to słowo zostawiając miejsce na bity nadmiarowe: __1_111_0. Obliczamy x 1: __1_111_0 x 1=1 Obliczamy x 2: 1_1_111_0 x 2=1 Obliczamy x 4: 111_0 x 4=1 Obliczamy x 8: 1111111_0 x 8=0 Odpowiedź: 111111100 e) x=10101. Zapisujemy to słowo zostawiając miejsce na bity nadmiarowe: __1_010_1. Obliczamy x 1: __1_010_1 x 1=0 Obliczamy x 2: 0_1_010_1 x 2=0 Obliczamy x 4: 001_010_1 x 4=1 Obliczamy x 8: 0011010_1 x 8=1 Odpowiedź: 001101011

Zadanie 2 Proszę zakodować następujące ciągi 8 -bitowe: a) 10110100 b) 11010001 c) 11101011

Zadanie 2 Proszę zakodować następujące ciągi 8 -bitowe: a) 10110100 b) 11010001 c) 11101011 d) 00110111 e) 01101100 a) x=10110100. Zapisujemy słowo zostawiając miejsce na bity nadmiarowe: __1_0100 Obliczamy x 1: __1_0100 x 1=0 Obliczamy x 2: 0_1_0100 x 2=0 Obliczamy x 4: 001_0100 x 4=0 Obliczamy x 8: 0010011_0100 x 8=1 Odpowiedź: 001001110100 b) x=11010001. Zapisujemy słowo zostawiając miejsce na bity nadmiarowe: __1_101_0001 Obliczamy x 1: __1_101_0001 x 1=1 Obliczamy x 2: 1_1_101_0001 x 2=0 Obliczamy x 4: 101_0001 x 4=1 Obliczamy x 8: 1011101_0001 x 8=1 Odpowiedź: 10110001

Zadanie 2 c. d. c) x=11101011. Zapisujemy słowo zostawiając miejsce na bity nadmiarowe: __1_110_1011

Zadanie 2 c. d. c) x=11101011. Zapisujemy słowo zostawiając miejsce na bity nadmiarowe: __1_110_1011 Obliczamy x 1: __1_110_1011 x 1=0 Obliczamy x 2: 0_1_110_1011 x 2=1 Obliczamy x 4: 011_110_1011 x 4=1 Obliczamy x 8: 0111110_1011 x 8=1 Odpowiedź: 011111011011 e) x=00110111. Zapisujemy słowo zostawiając miejsce na bity nadmiarowe: __0_0111 Obliczamy x 1: __0_0111 x 1=0 Obliczamy x 2: 0_0_0111 x 2=0 Obliczamy x 4: 000_0111 x 4=1 Obliczamy x 8: 0001011_0111 x 8=1 Odpowiedź: 00010111 f) x=01101100. Zapisujemy słowo zostawiając miejsce na bity nadmiarowe: __0_1100 Obliczamy x 1: __0_1100 x 1=0 Obliczamy x 2: 0_0_1100 x 2=0 Obliczamy x 4: 000_1100 x 4=0 Obliczamy x 8: 0000110_1100 x 8=0 Odpowiedź: 00001100

Zadanie 3 Proszę zakodować następujące ciągi informacyjne w optymalnym kodzie Hamminga: a) 01101011 b)

Zadanie 3 Proszę zakodować następujące ciągi informacyjne w optymalnym kodzie Hamminga: a) 01101011 b) 1110110110010111 c) 000101110101 d) 11111111 e) 000000001 f) 0110110110 a) x=01101011. Zapisujemy słowo zostawiając miejsce na bity nadmiarowe: __0_110_1011011_01011 Obliczamy x 1: __0_110_1011011_01011 x 1=1 Obliczamy x 2: 1_0_110_1011011_01011 x 2=1 Obliczamy x 4: 110_1011011_01011 x 4=1 Obliczamy x 8: 1101110_1011011_01011 x 8=1 Obliczamy x 16: 11011011011_01011 x 16=1 Odpowiedź: 1101101101011 b) x=1110110110010111. Zapisujemy słowo zostawiając miejsce na bity nadmiarowe: __1_1101100_10111 Obliczamy x 1: __1_1101100_10111 x 1=1 Obliczamy x 2: 1_1_1101100_10111 x 2= 0 Obliczamy x 4: 101_1101100_10111 x 4=0 Obliczamy x 8: 1010110_1101100_10111 x 8=0 Obliczamy x 16: 10101101100_10111 x 16=0

Zadanie 3 c. d. Odpowiedź: 10101101100010111 c) x=000101110101. Zapisujemy słowo zostawiając miejsce na bity

Zadanie 3 c. d. Odpowiedź: 10101101100010111 c) x=000101110101. Zapisujemy słowo zostawiając miejsce na bity nadmiarowe: __0_001_0001011_10101 Obliczamy x 1: __0_001_0001011_10101 x 1=1 Obliczamy x 2: 1_0_001_0001011_10101 x 2=0 Obliczamy x 4: 100_001_0001011_10101 x 4=1 Obliczamy x 8: 1001001_0001011_10101 x 8=1 Obliczamy x 16: 100100110001011_10101 x 16=1 Odpowiedź: 100100110001011110101 d) x=11111111. Zapisujemy słowo zostawiając miejsce na bity nadmiarowe: __1_1111111_11111 Obliczamy x 1: __1_1111111_11111 x 1=0 Obliczamy x 2: 0_1_1111111_11111 x 2=1 Obliczamy x 4: 011_1111111_11111 x 4=1 Obliczamy x 8: 0111111_11111 x 8=1 Obliczamy x 16: 01111111_11111 x 16=1 Odpowiedź: 01111111111

Zadanie 3 c. d. e) x=000000001. Zapisujemy słowo zostawiając miejsce na bity nadmiarowe: __0_0000000_00001

Zadanie 3 c. d. e) x=000000001. Zapisujemy słowo zostawiając miejsce na bity nadmiarowe: __0_0000000_00001 Obliczamy x 1: __0_0000000_00001 x 1=1 Obliczamy x 2: 1_0_0000000_00001 x 2=0 Obliczamy x 4: 100_0000000_00001 x 4=1 Obliczamy x 8: 1001000_00001 x 8=0 Obliczamy x 16: 1001000000_00001 x 16=1 Odpowiedź: 1001000000100001 f) x=0110110110. Zapisujemy słowo zostawiając miejsce na bity nadmiarowe: __0_1101101_10110 Obliczamy x 1: __0_1101101_10110 x 1=0 Obliczamy x 2: 0_0_1101101_10110 x 2=0 Obliczamy x 4: 000_1101101_10110 x 4= 0 Obliczamy x 8: 0000110_1101101_10110 x 8=1 Obliczamy x 16: 00001101101_10110 x 16=1 Odpowiedź: 00001101110110

Zadanie 4 Odebrano następujące ciągi kodowe. Proszę obliczyć syndrom dekodera, określić czy powstał błąd

Zadanie 4 Odebrano następujące ciągi kodowe. Proszę obliczyć syndrom dekodera, określić czy powstał błąd i określić na której pozycji. c. x. =1010101 c. x. =0010101 c. x. =1010111 c. x. =0011010 c. x. =1101101 Syndrom równy 0 oznaczą że błąd nie wystąpił. Syndrom różny od 0 oznacza powstanie błędu. Jeżeli wystąpił błąd to kod nadmiarowy błędnej wiadomości który sami obliczymy będzie inny niż ten który odebraliśmy. c. x. = 1010101 Kod namiarowy (odebrany) y=100 Obliczamy dla bitów informacyjnych bity nadmiarowe. Obliczamy x 1: __1_101 x 1=1 Obliczamy x 2: 1_1_101 x 2=0 Obliczamy x 4: 101_101 x 4=0 Kod nadmiarowy (obliczony) y’=100 Syndrom y+y’ (dodajemy poszczególne bity i odwracamy kolejność) =(0+0)(1+1)=000 Błąd nie wystąpił

Zadanie 4. c. d. c. x. =0010101 Kod namiarowy (odebrany) y=000 Obliczamy dla bitów

Zadanie 4. c. d. c. x. =0010101 Kod namiarowy (odebrany) y=000 Obliczamy dla bitów informacyjnych bity nadmiarowe. Obliczamy x 1: __1_101 x 1=1 Obliczamy x 2: 1_1_101 x 2=0 Obliczamy x 4: 101_101 x 4=0 Kod nadmiarowy (obliczony) y’=100 Syndrom y+y’=(0+0)(0+1)=001 Błąd wystąpił Otrzymujemy numer pozycji na której wystąpił błąd tj. : p=001 błąd na 1 pozycji c. x. = 1010111 Kod namiarowy (odebrany) y=100 Obliczamy dla bitów informacyjnych bity nadmiarowe. Obliczamy x 1: __1_111 x 1=1 Obliczamy x 2: 1_1_111 x 2=1 Obliczamy x 4: 111_111 x 4=1 Kod nadmiarowy (obliczony) y’=111 Syndrom y+y’=(0+1)(1+1)=110 Błąd wystąpił p=110 błąd na 6 pozycji

Zadanie 4 c. d. c. x. = 0011010 Kod namiarowy (odebrany) y=001 Obliczamy dla

Zadanie 4 c. d. c. x. = 0011010 Kod namiarowy (odebrany) y=001 Obliczamy dla bitów informacyjnych bity nadmiarowe. Obliczamy x 1: __1_010 x 1=1 Obliczamy x 2: 1_1_010 x 2=0 Obliczamy x 4: 101_010 x 4=1 Kod nadmiarowy (obliczony) y’=101 Syndrom y+y’=(1+1)(0+0)(0+1)=001 Błąd wystąpił p=001 błąd na 1 pozycji c. x. = 1101101 Kod namiarowy (odebrany) y=111 Obliczamy dla bitów informacyjnych bity nadmiarowe. Obliczamy x 1: __0_101 x 1=0 Obliczamy x 2: 0_0_101 x 2=1 Obliczamy x 4: 010_101 x 4=0 Kod nadmiarowy (obliczony) y’=010 Syndrom y+y’=(1+0)(1+1)(1+0)=101 Błąd wystąpił p=101 błąd na 5 pozycji

Zadanie 5 Odebrano następujące ciągi kodowe. Proszę obliczyć syndrom dekodera, ustalić czy powstał błąd

Zadanie 5 Odebrano następujące ciągi kodowe. Proszę obliczyć syndrom dekodera, ustalić czy powstał błąd i określić na której pozycji. Proszę podać prawidłowy ciąg informacyjny. c. x. =000001110100 c. x. =001011110100 c. x. =00100100 c. x. =1010011 c. x. =11001011 c. x. = 000001110100 Kod namiarowy (odebrany) y=0001 Kod nadmiarowy (obliczony) y’=1101 Syndrom y+y’=(1+1)(0+0)(0+1)=0011 Błąd wystąpił p=0011 błąd na 3 pozycji Poprawny ciąg informacyjny: c. i. =10110100 c. x. = 001011110100 Kod namiarowy (odebrany) y=0001 Kod nadmiarowy (obliczony) y’=1011 Syndrom y+y’=(1+1)(0+0)(0+1)=0101 Błąd wystąpił p=0101 błąd na 5 pozycji Poprawny ciąg informacyjny: c. i. =10110100

Zadanie 5 c. d. c. x. = 00100100 Kod namiarowy (odebrany) y=0000 Kod nadmiarowy

Zadanie 5 c. d. c. x. = 00100100 Kod namiarowy (odebrany) y=0000 Kod nadmiarowy (obliczony) y’=0001 Syndrom y+y’=(0+1)(0+0)(0+0)=1000 Błąd wystąpił (w kodzie nadmiarowym) p=1000 błąd na 8 pozycji Poprawny ciąg informacyjny: c. i. =10110100 c. x. = 1010011 Kod namiarowy (odebrany) y=1001 Kod nadmiarowy (obliczony) y’=0100 Syndrom y+y’=(1+0)(0+1)(1+0)=1011 Błąd wystąpił p=1011 błąd na 11 pozycji Poprawny ciąg informacyjny: c. i. =10100001 c. x. = 11001011 Kod namiarowy (odebrany) y=1101 Kod nadmiarowy (obliczony) y’=0011 Syndrom y+y’=(1+1)(0+1)(1+0)=0111 Błąd wystąpił p=0111 błąd na 7 pozycji Poprawny ciąg informacyjny: c. i. =01001011

Zadanie 6 Oblicz czy ciąg odbiorczy jest poprawnym ciągiem kodowym kodu Hamminga (optymalnego), czy

Zadanie 6 Oblicz czy ciąg odbiorczy jest poprawnym ciągiem kodowym kodu Hamminga (optymalnego), czy też jest błędny; na jakiej pozycji jest błąd; jaki jest ciąg informacyjny. 1010110111 = 0011100111 = 11001101011100 = 11100101111100 = 0101011111 = c. x. = 1010110111 Kod namiarowy (odebrany) y=1001 Kod nadmiarowy (obliczony) y’=1100 Syndrom y+y’=(1+0)(0+1)(1+1)=1010 Błąd wystąpił p=1010 błąd na 10 pozycji Poprawny ciąg informacyjny: c. i. =111010 c. x. = 0011100111 Kod namiarowy (odebrany) y=0011 Kod nadmiarowy (obliczony) y’=0000 Syndrom y+y’=(1+0)(0+0)=1100 Błąd wystąpił p=1100 błąd na 12 pozycji Poprawny ciąg informacyjny: c. i. =1100100011

Zadanie 6 c. d. c. x. = 11001101011100 Kod namiarowy (odebrany) y=1101 Kod nadmiarowy

Zadanie 6 c. d. c. x. = 11001101011100 Kod namiarowy (odebrany) y=1101 Kod nadmiarowy (obliczony) y’=0111 Syndrom y+y’=(1+1)(0+1)(1+0)=0101 Błąd wystąpił p=0101 błąd na 5 pozycji Poprawny ciąg informacyjny: c. i. = 0010011100 c. x. = 11100101111100 Kod namiarowy (odebrany) y=1101 Kod nadmiarowy (obliczony) y’=1000 Syndrom y+y’=(1+0)(0+0)(1+1)=1010 Błąd wystąpił p=1010 błąd na 10 pozycji Poprawny ciąg informacyjny: c. i. =1010101100 c. x. = 0101011111 Kod namiarowy (odebrany) y=0111 Kod nadmiarowy (obliczony) y’=0001 Syndrom y+y’=(1+1)(1+0)(0+0)=0110 Błąd wystąpił p=0110 błąd na 6 pozycji Poprawny ciąg informacyjny: c. i. =0000011111

Zadanie 7 Oblicz czy ciąg jest kodem Hamminga; jeżeli tak to sprawdź czy jest

Zadanie 7 Oblicz czy ciąg jest kodem Hamminga; jeżeli tak to sprawdź czy jest poprawny. Jaki jest ciąg informacyjny? c. x. = 011011001011011 (15 bitów) c. x. =1111000100101111 (16 bitów) c. x. = 011011001011011 Kod namiarowy (odebrany) y=0100 Kod nadmiarowy (obliczony) y’=1111 Syndrom y+y’=(0+1)(1+1)(0+1)=1101 Błąd wystąpił p=1101 błąd na 13 pozycji Poprawny ciąg informacyjny: c. i. = 11101011111 c. x. =1111000100101111 Ciąg ten nie jest optymalnym kodem Hamminga.

Zadanie 8 Zakoduj w kodzie Hamminga następujące ciągi informacyjne: a) 10 b) 101 c)

Zadanie 8 Zakoduj w kodzie Hamminga następujące ciągi informacyjne: a) 10 b) 101 c) 1110 d) 001100 e) 1101001010 a) Słowo 10 zapisujemy pozostawiając miejsce na nadmiarowe bity: __1_0 Obliczamy x 1: __1_0 x 1=1 Obliczamy x 2: 1_1_0 x 2= 1 Obliczamy x 4: 111_0 x 4=0 Odpowiedź: 11100 b) Słowo 101 zapisujemy pozostawiając miejsce na nadmiarowe bity: __1_01 Obliczamy x 1: __1_01 x 1=1 Obliczamy x 2: 1_1_01 x 2=0 Obliczamy x 4: 101_01 x 4 =1 Odpowiedź : 101101 c) Słowo 1110 zapisujemy pozostawiając miejsce na nadmiarowe bity: __1_110 Obliczamy x 1: __1_110 x 1=0 Obliczamy x 2: 0_1_110 x 2=0 Obliczamy x 4: 001_110 x 4 =0 Odpowiedź : 0010110

Zadanie 8 c. d. d) Słowo 001100 zapisujemy pozostawiając miejsce na nadmiarowe bity __0_011_00

Zadanie 8 c. d. d) Słowo 001100 zapisujemy pozostawiając miejsce na nadmiarowe bity __0_011_00 Obliczamy x 1: __0_011_00 x 1=1 Obliczamy x 2: 1_0_011_00 x 2=0 Obliczamy x 4: 100_011_00 x 4=0 Obliczamy x 8: 1000011_00 x 8=0 Odpowiedź: 1000011000 e) Słowo 1101001010 zapisujemy pozostawiając miejsca na nadmiarowe bity __1_101_0110100_1010 Obliczamy x 1: __1_101_0110100_1010 x 1=1 Obliczamy x 2: 1_1_101_0110100_1010 x 2= 1 Obliczamy x 4: 111_101_0110100_1010 x 4=1 Obliczamy x 8: 1111101_0110100_1010 x 8 =1 Obliczamy x 16: 111110110110100_1010 x 16=0 Odpowiedź: 11111011011010001010

Zadanie 9 Zakoduj w kodzie Hamminga słowo „KONIEC” , które zostało przedstawione kodem ASCII

Zadanie 9 Zakoduj w kodzie Hamminga słowo „KONIEC” , które zostało przedstawione kodem ASCII (jako kod źródła) jako słowa 7 -bitowe, K=75, O=79, N=78, C=67, E=69, I=73. Poszczególne znaki koduj osobno. Litera K binarnie: 1001011 Zapisujemy dane słowo pozostawiając miejsce na nadmiarowe bity: __1_001_011 x 1: __1_001_011 x 1=1 x 2: 1_1_001_011 x 2=0 x 4: 101_011 x 4=1 x 8: 1011001_011 x 8=0 Zakodowane K : 10110010011 Postępując podobnie jak dla litery K kodujemy kolejne litery: Zakodowane O (binarnie 1001111): 0011111 Zakodowane N (binarnie 1001110): 11110010110 Zakodowane I (binarnie 1001001): 1111001 Zakodowane E (binarnie 1000101): 10100000101 Zakodowane C (binarnie 1000011): 01100000011