Kod Hamminga Podstawy Telekomunikacji Autor: Paweł Zajdel

Slides:



Advertisements
Podobne prezentacje
Jednostki informacji i kodowanie znaków
Advertisements

PRZEDSTAWIANIE INFORMACJI W KOMPUTERZE
ZAGADKI i TAUTOLOGIE.
Minimalizacja formuł Boolowskich
Układy sekwencyjne - pojęcie automatu
Modelem układu sekwencyjnego jest AUTOMAT
DYSKRETYZACJA SYGNAŁU
Operacje zmiennoprzecinkowe
Wprowadzenie System rozproszony jest kolekcją niezależnych, autonomicznych komputerów, które dla użytkownika prezentują się jak jeden komputer. Można wyróżnic.
Liczby w Komputerze Zajęcia 3.
Wykład 2: Liczby rzeczywiste (stało i zmiennoprzecinkowe) Koprocesor
Przetwarzanie informacji
B. znaki alfabetu D. obrazy
Systemy liczbowe w architekturze komputerów materiał do wykładu 1/3
Budowa komputera Wstęp do informatyki Wykład 15
Od algebry Boole’a do komputera
Programowalne Układy Cyfrowe Ernest Jamro, Paweł Russek C3 p
SYSTEMY LICZBOWE.
Algorytmy genetyczne - plan wykładu
Algorytmy genetyczne - plan wykładu
Minimalizacja funkcji boolowskich
Architektura komputerów
dr Anna Kwiatkowska Instytut Informatyki
Zapis informacji Dr Anna Kwiatkowska.
SYSTEMY LICZBOWE Rodzaje informacji (analogowe i cyfrowe)
Systemy liczbowe.
Kod Graya.
Technika Mikroprocesorowa 1
Układy kombinacyjne.
Systemy wspomagania decyzji
opracowanie: Agata Idczak
Układy sekwencyjne - pojęcie automatu
Synteza układów sekwencyjnych z (wbudowanymi) pamięciami ROM
Zmodyfikowana metoda ekspansji Komputerowe narzędzia syntezy logicznej
Licznik dwójkowy i dziesiętny Licznik dwójkowy i dziesiętny
Problem kodowania stanów w układach sekwencyjnych (automatach)
Problem kodowania stanów w układach sekwencyjnych (automatach)
Cyfrowe układy logiczne
A. Sumionka. Starodawna gra marynarska; Gra dwu i wieloosobowa; Gracze wykonują ruchy naprzemian; Złożona ze stosów, w których znajduje się pewna ilość
Architektura komputerów
Podsieci ZS3 Jasło Klasa 4e.
Architektura systemów komputerowych (zima 2013)
ZASADY PODZIAŁU SIECI NA PODSIECI, OBLICZANIA ADRESÓW PODSIECI,
Układy cyfrowe.
Jednostki w informatyce i system binarny (dwójkowy)
Minimalizacja funkcji boolowskich
Jak to jest zrobione? Kalkulator.
Przykład syntezy strukturalnej
Minimalizacja funkcji boolowskich
Problematyka wykładu Podział rejestrów i liczników
Metoda klasyczna ... to metoda tablicowa, graficzna, której podstawowe
Liczby całkowite dodatnie BCN
Systemy Liczbowe (technika cyfrowa)
Struktury układów logicznych
Posługiwanie się systemami liczenia
Podstawy informatyki 2013/2014
Stało- i zmiennopozycyjna reprezentacja liczb binarnych
Matematyka i system dwójkowy
Reprezentacja liczb w systemie binarnym ułamki i liczby ujemne
Stało- i zmiennopozycyjna reprezentacja liczb binarnych
Złożone układy kombinacyjne
Podstawy arytmetyki komputerowej Paweł Perekietka
Bramki logiczne i układy kombinatoryczne
WYKŁAD 3 Temat: Arytmetyka binarna 1. Arytmetyka binarna 1.1. Nadmiar
Dwójkowy system liczbowy
Działania w systemie binarnym
Układy asynchroniczne
Systemy liczenia IV Kodowanie i kody Danuta Stanek.
Detekcja i korekcja błędów w transmisji cyfrowej.
Podstawy Informatyki.
Zapis prezentacji:

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

Zadanie 1 Proszę zakodować następujące ciągi 5-cio bitowe: 11010 01011 10001 11110 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: pozycja 1 pozycja 7 Algorytm sprawdzania bitów: 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. Obliczamy kod nadmiarowy dla wiadomości x=11010. Zapisujemy najpierw to słowo zostawiając miejsce na bity nadmiarowe: __1_101_0. Obliczamy x1: __1_101_0  x1=1 Obliczamy x2: 1_1_101_0  x2=0 Obliczamy x4: 101_101_0  x4=0 Obliczamy x8: 1010101_0  x8=0 Odpowiedź: 101010100 b) x=01011. Zapisujemy najpierw to słowo zostawiając miejsce na bity nadmiarowe: __0_101_1. Obliczamy x1: __0_101_1  x1=1 Obliczamy x2: 1_0_101_1  x2=1 Obliczamy x4: 110_101_1  x4=0 Obliczamy x8: 1100101_1  x8=1 Odpowiedź: 110010111

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

Zadanie 2 Proszę zakodować następujące ciągi 8-bitowe: 10110100 11010001 11101011 00110111 01101100 x=10110100. Zapisujemy słowo zostawiając miejsce na bity nadmiarowe: __1_011_0100 Obliczamy x1: __1_011_0100  x1=0 Obliczamy x2: 0_1_011_0100  x2=0 Obliczamy x4: 001_011_0100  x4=0 Obliczamy x8: 0010011_0100 x8=1 Odpowiedź: 001001110100 b) x=11010001. Zapisujemy słowo zostawiając miejsce na bity nadmiarowe: __1_101_0001 Obliczamy x1: __1_101_0001  x1=1 Obliczamy x2: 1_1_101_0001  x2=0 Obliczamy x4: 101_101_0001  x4=1 Obliczamy x8: 1011101_0001 x8=1 Odpowiedź: 101110110001

Zadanie 2 c.d. c) x=11101011. Zapisujemy słowo zostawiając miejsce na bity nadmiarowe: __1_110_1011 Obliczamy x1: __1_110_1011  x1=0 Obliczamy x2: 0_1_110_1011  x2=1 Obliczamy x4: 011_110_1011  x4=1 Obliczamy x8: 0111110_1011 x8=1 Odpowiedź: 011111011011 e) x=00110111. Zapisujemy słowo zostawiając miejsce na bity nadmiarowe: __0_011_0111 Obliczamy x1: __0_011_0111  x1=0 Obliczamy x2: 0_0_011_0111  x2=0 Obliczamy x4: 000_011_0111  x4=1 Obliczamy x8: 0001011_0111 x8=1 Odpowiedź: 000101110111 f) x=01101100. Zapisujemy słowo zostawiając miejsce na bity nadmiarowe: __0_110_1100 Obliczamy x1: __0_110_1100  x1=0 Obliczamy x2: 0_0_110_1100  x2=0 Obliczamy x4: 000_110_1100  x4=0 Obliczamy x8: 0000110_1100 x8=0 Odpowiedź: 000011001100

Zadanie 3 Proszę zakodować następujące ciągi informacyjne w optymalnym kodzie Hamminga: 0110101101101011 1110110110010111 0001000101110101 1111111111111111 0000000000000001 0110110110110110 a) x=0110101101101011. Zapisujemy słowo zostawiając miejsce na bity nadmiarowe: __0_110_1011011_01011 Obliczamy x1: __0_110_1011011_01011  x1=1 Obliczamy x2: 1_0_110_1011011_01011  x2=1 Obliczamy x4: 110_110_1011011_01011  x4=1 Obliczamy x8: 1101110_1011011_01011  x8=1 Obliczamy x16: 110111011011011_01011  x16=1 Odpowiedź: 110111011011011101011 x=1110110110010111. Zapisujemy słowo zostawiając miejsce na bity nadmiarowe: __1_110_1101100_10111 Obliczamy x1: __1_110_1101100_10111  x1=1 Obliczamy x2: 1_1_110_1101100_10111  x2= 0 Obliczamy x4: 101_110_1101100_10111  x4=0 Obliczamy x8: 1010110_1101100_10111  x8=0 Obliczamy x16: 101011001101100_10111  x16=0

Zadanie 3 c.d. Odpowiedź: 101011001101100010111 c) x=0001000101110101. Zapisujemy słowo zostawiając miejsce na bity nadmiarowe: __0_001_0001011_10101 Obliczamy x1: __0_001_0001011_10101  x1=1 Obliczamy x2: 1_0_001_0001011_10101  x2=0 Obliczamy x4: 100_001_0001011_10101  x4=1 Obliczamy x8: 1001001_0001011_10101  x8=1 Obliczamy x16: 100100110001011_10101  x16=1 Odpowiedź: 100100110001011110101 d) x=1111111111111111. Zapisujemy słowo zostawiając miejsce na bity nadmiarowe: __1_111_1111111_11111 Obliczamy x1: __1_111_1111111_11111  x1=0 Obliczamy x2: 0_1_111_1111111_11111  x2=1 Obliczamy x4: 011_111_1111111_11111  x4=1 Obliczamy x8: 0111111_1111111_11111  x8=1 Obliczamy x16: 011111111111111_11111  x16=1 Odpowiedź: 011111111111111111111

Zadanie 3 c.d. e) x=0000000000000001. Zapisujemy słowo zostawiając miejsce na bity nadmiarowe: __0_000_0000000_00001 Obliczamy x1: __0_000_0000000_00001  x1=1 Obliczamy x2: 1_0_000_0000000_00001  x2=0 Obliczamy x4: 100_000_0000000_00001  x4=1 Obliczamy x8: 1001000_0000000_00001  x8=0 Obliczamy x16: 100100000000000_00001  x16=1 Odpowiedź: 100100000000000100001 f) x=0110110110110110. Zapisujemy słowo zostawiając miejsce na bity nadmiarowe: __0_110_1101101_10110 Obliczamy x1: __0_110_1101101_10110  x1=0 Obliczamy x2: 0_0_110_1101101_10110  x2=0 Obliczamy x4: 000_110_1101101_10110  x4= 0 Obliczamy x8: 0000110_1101101_10110  x8=1 Obliczamy x16: 000011011101101_10110  x16=1 Odpowiedź: 000011011101101110110

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 x1: __1_101  x1=1 Obliczamy x2: 1_1_101  x2=0 Obliczamy x4: 101_101  x4=0 Kod nadmiarowy (obliczony) y’=100 Syndrom y+y’ (dodajemy poszczególne bity i odwracamy kolejność) =(0+0)(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 informacyjnych bity nadmiarowe. Obliczamy x1: __1_101  x1=1 Obliczamy x2: 1_1_101  x2=0 Obliczamy x4: 101_101  x4=0 Kod nadmiarowy (obliczony) y’=100 Syndrom y+y’=(0+0)(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 x1: __1_111  x1=1 Obliczamy x2: 1_1_111  x2=1 Obliczamy x4: 111_111  x4=1 Kod nadmiarowy (obliczony) y’=111 Syndrom y+y’=(0+1)(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 bitów informacyjnych bity nadmiarowe. Obliczamy x1: __1_010 x1=1 Obliczamy x2: 1_1_010  x2=0 Obliczamy x4: 101_010  x4=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 x1: __0_101 x1=0 Obliczamy x2: 0_0_101  x2=1 Obliczamy x4: 010_101  x4=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 i określić na której pozycji. Proszę podać prawidłowy ciąg informacyjny. c.x.=000001110100 c.x.=001011110100 c.x.=001001100100 c.x.=101001010011 c.x.=110010111011 c.x.= 000001110100 Kod namiarowy (odebrany) y=0001 Kod nadmiarowy (obliczony) y’=1101 Syndrom y+y’=(1+1)(0+0)(0+1)(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 nadmiarowy (obliczony) y’=1011 Syndrom y+y’=(1+1)(0+1)(0+0)(0+1)=0101 Błąd wystąpił p=0101 błąd na 5 pozycji

Zadanie 5 c.d. c.x.= 001001100100 Kod namiarowy (odebrany) y=0000 Kod nadmiarowy (obliczony) y’=0001 Syndrom y+y’=(0+1)(0+0)(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.= 101001010011 Kod namiarowy (odebrany) y=1001 Kod nadmiarowy (obliczony) y’=0100 Syndrom y+y’=(1+0)(0+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.= 110010111011 Kod namiarowy (odebrany) y=1101 Kod nadmiarowy (obliczony) y’=0011 Syndrom y+y’=(1+1)(0+1)(1+0)(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 też jest błędny; na jakiej pozycji jest błąd; jaki jest ciąg informacyjny. 1010110111 = 00111001100111 = 11001101011100 = 11100101111100 = 01010101011111 = c.x.= 1010110111 Kod namiarowy (odebrany) y=1001 Kod nadmiarowy (obliczony) y’=1100 Syndrom y+y’=(1+0)(0+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.= 00111001100111 Kod namiarowy (odebrany) y=0011 Kod nadmiarowy (obliczony) y’=0000 Syndrom y+y’=(1+0)(1+0)(0+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 (obliczony) y’=0111 Syndrom y+y’=(1+1)(0+1)(1+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 nadmiarowy (obliczony) y’=1000 Syndrom y+y’=(1+0)(0+0)(1+0)(1+1)=1010 Błąd wystąpił p=1010  błąd na 10 pozycji Poprawny ciąg informacyjny: c.i.=1010101100 c.x.= 01010101011111 Kod namiarowy (odebrany) y=0111 Kod nadmiarowy (obliczony) y’=0001 Syndrom y+y’=(1+1)(1+0)(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 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)(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: 10 101 1110 001100 110101101001010 Słowo 10 zapisujemy pozostawiając miejsce na nadmiarowe bity: __1_0 Obliczamy x1: __1_0  x1=1 Obliczamy x2: 1_1_0  x2= 1 Obliczamy x4: 111_0  x4=0 Odpowiedź: 11100 Słowo 101 zapisujemy pozostawiając miejsce na nadmiarowe bity: __1_01 Obliczamy x1: __1_01  x1=1 Obliczamy x2: 1_1_01  x2=0 Obliczamy x4: 101_01  x4 =1 Odpowiedź : 101101 c) Słowo 1110 zapisujemy pozostawiając miejsce na nadmiarowe bity: __1_110 Obliczamy x1: __1_110  x1=0 Obliczamy x2: 0_1_110  x2=0 Obliczamy x4: 001_110  x4 =0 Odpowiedź : 0010110

Zadanie 8 c.d. Słowo 001100 zapisujemy pozostawiając miejsce na nadmiarowe bity __0_011_00 Obliczamy x1: __0_011_00  x1=1 Obliczamy x2: 1_0_011_00  x2=0 Obliczamy x4: 100_011_00  x4=0 Obliczamy x8: 1000011_00  x8=0 Odpowiedź: 1000011000 Słowo 110101101001010 zapisujemy pozostawiając miejsca na nadmiarowe bity __1_101_0110100_1010 Obliczamy x1: __1_101_0110100_1010  x1=1 Obliczamy x2: 1_1_101_0110100_1010  x2= 1 Obliczamy x4: 111_101_0110100_1010  x4=1 Obliczamy x8: 1111101_0110100_1010  x8 =1 Obliczamy x16: 111110110110100_1010  x16=0 Odpowiedź: 11111011011010001010

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 x1: __1_001_011  x1=1 x2: 1_1_001_011  x2=0 x4: 101_001_011  x4=1 x8: 1011001_011  x8=0 Zakodowane K : 10110010011 Postępując podobnie jak dla litery K kodujemy kolejne litery: Zakodowane O (binarnie 1001111): 00110011111 Zakodowane N (binarnie 1001110): 11110010110 Zakodowane I (binarnie 1001001): 11110011001 Zakodowane E (binarnie 1000101): 10100000101 Zakodowane C (binarnie 1000011): 01100000011