Przemysłowe Sieci Informatyczne (PSI) Wykład #3 kodowanie i wstęp do teorii informacji WYDZIAŁ ELEKTROTECHNIKI I AUTOMATYKI KATEDRA INŻYNIERII SYSTEMÓW STEROWANIA Jarosław Tarnawski, dr inż. Gdańsk, marzec 2017
Schemat ogólny systemu komunikacyjnego [1] Prowadzący zajęcia i informacje kontaktowe Literatura do przedmiotu SHANNON, C. E., A Mathematical Theory of Communication, The Bell System Technical Journal, Vol. 27, pp. 379 423, 623 656, July, October, 1948 2
Definicja informacji, komunikacji, wiadomość, dane Transmisja danych przekazywanie informacji pomiędzy punktami (węzłami) umożliwiające przetworzenie, odczytanie, wykorzystanie tej informacji Kodowanie zapisanie informacji za pomocą kodu np. w celu uporządkowania, oznaczenia ale również przesłania (dostosowanie do możliwości kanału komunikacyjnego). Zamienia informację na sygnał możliwy do przesłania: myśl na mowę, wezwanie pomocy na sygnał świetlny, znak alfabetu na określony ciąg bitów Kody porządkujące Oznaczenia krajów Polska PL telefoniczne +48 waluty - PLN Oznaczenia lotnisk IATA Gdańsk GDN, Wa-wa WAW, NYC-JFK Oznaczenia rejonów pocztowe 80-233 Oznaczenia tel. międzymiastowych 0-58 pomorskie 3
Przykłady kodów Morse a litera na sygnały dźwiękowe kropki i kreski ASCII numery przyporządkowane do znaków Kod flagowy na statkach i żaglówkach Znaki drogowe Kod pocztowy Kod oznaczenia lotnisk Kod telefonicznych numerów kierunkowych Kod kreskowy Kod poleceń np. w protokole Modbus Kod kulturowy 4
Kodowanie a szyfrowanie Potocznie kodowanie i szyfrowanie mogą być uważane za synonimy http://sjp.pwn.pl/szukaj/kodowanie.html 5
Kodowanie a szyfrowanie Jednak w zastosowaniach technicznych jest istotna różnica pomiędzy kodowaniem a szyfrowaniem. Szyfrowanie następuje w celu ukrycia zawartości, uniemożliwienia (utrudnienia) odczytania przekazywanej informacji przed niepowołanymi do zapoznania się z treścią osobami. Natomiast kodowanie ma uformować, przygotować, przekształcić informację umożliwiając jej przekazanie, przesłanie informacji przez kanał komunikacyjny, tak aby mogła być zdekodowana i odtworzona Encryption <> Encoding 6
Kodowanie przykłady kodów International Martime Signal Flags http://www.alamy.com/stock-photorigging-and-flags-of-the-dar-mlodziezy-infalmouth-harbour-during-112409532.html 7
Kodowanie przykłady kodów Kod Morse a 8
Kodowanie przykłady kodów NATO Alfabet fonetyczny 9
Kodowanie przykłady kodów Alfabet Braille a http://www.braille.pl/index.php?body=system 10
Kodowanie przykłady kodów Polskie latarnie morskie każda ma własny kod świetlny http://www.latarnica.pl/index.php/tag/stilo/page/2/ 11
Przykłady kodów http://eia.pg.edu.pl/kiss/dydaktyka/psi Kody wygenerowano z użyciem http://www.barcode-generator.org/ 12
Alfabet jedno z największych osiągnięć ludzkości Piktogram rysunek przedstawiający dokładnie to co ma znaczyć Ideogramy konceptualny rysunkowy wyraz abstrakcyjnej myśli Alfabet fonetyczny oderwanie znaków od ich znaczeń Zamiast piktogramów czyli obrazowego przekazywania myśli, znaków itd. Posłużono się stosunkowo małą liczbą znaków do reprezentowania wszystkich treści. 13
Kamień z Rosetty klucz do odczytania hieroglifów 196 BC Hieroglify, pismo demotyczne, greka https://learnodo-newtonic.com/the-rosetta-stone-facts 14
Rodzaje sygnałów w komunikacji Przekazywanie myśli za pomocą mowy oznacza zakodowanie myśli w postaci fali akustycznej. Ciśnienie akustyczne może przyjmować dowolne wartości z pewnego zakresu zatem mamy do czynienia z sygnałem analogowym ciągłym. 15
Rodzaje sygnałów w komunikacji Określenie pewnych dopuszczalnych poziomów dopuszczalnych sygnałów (kwantów) i ich określonej liczby to cyfryzacja sygnału. Przekształcanie sygnału analogowego w cyfrowy: Próbkowanie Kwantyzacja Kodowanie Coś tracimy, coś zyskujemy 16
Rodzaje sygnałów w komunikacji Szczególnym rodzajem sygnału cyfrowego jest sygnał binarny mogący przyjmować dwa poziomy umowne 0 i 1. Do ZAKODOWANIA informacji potrzeba jest pewna umowa jak traktować te 0 i 1. Jaki poziom sygnału to 0 a jaki to 1? Jaka jest kolejność bitów? Jaka liczba bitów stanowi informację. Jakie jest znaczenie tych bitów? 17
Przykłady kodów NRZ - Non-Return to Zero RZ - Return to Zero https://en.wikibooks.org/wiki/communication_systems/line_codes 18
Przykłady kodów https://en.wikibooks.org/wiki/communication_systems/line_codes 19
Kodowanie przykłady kodów Kod ASCII http://worldpowersystems.com/archives/codes/x3.4-1963/index.html 20
Zabezpieczanie informacji Oprócz samego przesłania informacji, niezmiernie istotne jest to, aby nie była ona zniekształcona czyli, aby dało się ją bez żadnej straty odczytać Zabawa w głuchy telefon ilustruje jak bardzo przekazywana informacja może zostać zniekształcona. 21
Przykład degradacji sygnału https://pl.khanacademy.org/computing/computerscience/informationtheory#info-theory 22
Zabezpieczanie informacji sumy kontrolne Suma kontrolna to liczba (w szczególnym przypadku cyfra), która powstaje w wyniku sumowania wysyłanej porcji danych i zostaje wysłana razem z danymi. Odbiornik po otrzymaniu danych również sumuje otrzymane dane i porównuje sumę z tą otrzymaną od nadajnika. Szczególne przypadki ze względu na niewielkie porcje danych nie suma, a cyfra zabezpieczająca kod parzystości/nieparzystości w transmisji szeregowej RS232/422/485 Zabezpieczenie PESEL/NIP, numerach kont bankowych itd. Sumy kontrolne stosowane są przy transmisji danych w Ethernecie, zapisywaniu danych na twardych dyskach, płytach CD,DVD,BR, zapisywaniu danych w pamięci RAM itd. 23
Zabezpieczanie informacji - częste źródła błędów http://zylla.wipos.p.lodz.pl/ut/kody.html 24
Zabezpieczanie informacji - częste źródła błędów http://zylla.wipos.p.lodz.pl/ut/kody.html 25
Zabezpieczanie informacji - kontrola parzystości Przy kontroli parzystości (even) uzupełniamy bit kontrolny tak, aby liczba 1 w słowie była parzysta. Przy kontroli nieparzystości (odd) uzupełniamy bit kontrolny tak, aby liczba 1 w słowie była nieparzysta. 01001000 dane 010010000 dane z bitem parzystości 010010001 dane z bitem nieparzystości Pojawia się nadmiarowość! 26
Zabezpieczanie informacji sumy kontrolne Kod Hamminga (7,4) 7 bitów słowo, 4 bity danych 3 bity kontrolne Kod umożliwiający automatyczną naprawę jednej usterki przy transmisji Na bitach o pozycji 1,2,4 (i ewentualnie kolejnych potęgach 2) w słowie znajdują się bity kontrolne bity parzystości k1 = b3 * b5 * b7 k2 = b3 * b6 * b7 k4 = b5 * b6 * b7 27
Zabezpieczanie informacji sumy kontrolne CRC (Cyclic Redundancy Check) suma kontrolna służąca do wykrywania błędów związanych z komunikacją lub magazynowaniem danych binarnych. https://eewiki.net/display/microcontroller/crc+basics 28
Efektywność w przekazywaniu informacji Efektywność w przekazywaniu informacji biorąc pod uwagę częstość występowania poszczególnych znaków (analiza zecerska najczęściej psujących się znaków na maszynach do pisania) przypisano do częściej występujących znaków prostsze (krótsze) sygnały. Średnio znak w tabeli wymaga 11,2 kropki, jednak przyporządkowanie częściej występujących znaków do prostszych symboli Morse a pozwala uzyskać 9,04 kroki na emitowany znak. Simmonds A., Wprowadzenie do transmisji danych, WKŁ1999 29
Miara informacji ile jest informacji w informacji Rzut kostką 3 rzuty monetą Karty do pokera Wynik ruletki Litera alfabetu Ilość informacji zależy od zróżnicowania! Czym więcej różnic tym więcej trzeba zasobów do zapisania i przesłania informacji Użyteczne jest podejście ile muszę zadać pytań TAK/NIE aby otrzymać odpowiedź 30
Miara informacji ile jest informacji w informacji Zawartość informacyjna wiadomości I jest liczbą nieujemną i>=0 Każdej wiadomości możemy przypisać prawdopodobieństwo odbioru- wiadomości oczekiwanej duże, wiadomości zaskakującej małe. 1>= P >= 0 Gdzie P=0 zdarzenie nieprawdopodobne. P=1 zdarzenie pewne P=1/2 zdarzenie zachodzące w 50% przypadków Zdarzenie pewne nie niesia żadnej istotnej informacji więc gdy P = 1 to I = 0 Zdarzenie niemożliwe niesie nieskończoną ilość informacji 31
Miara informacji ile jest informacji w informacji Zawartość informacyjna mierzona jest w bitach wg zależności I = log 2 (1/P) Średnia zawartość informacyjna H (ENTROPIA). Rozważmy dwa zdarzenia A i B o nie jednakowych prawdopodobieństwach. Wtedy H = P A log 2 (1/P A ) + P B log 2 (1/P B ) Simmonds A., Wprowadzenie do transmisji danych, WKŁ1999 32
Kodowanie Huffmana 33 Simmonds A., Wprowadzenie do transmisji danych, WKŁ1999
Kodowanie Huffmana Zawartość Simmonds A., Wprowadzenie do transmisji danych, WKŁ1999 34
Literatura i użyteczne źródła Simmonds A., Wprowadzenie do transmisji danych, WKŁ1999 SHANNON, C. E., A Mathematical Theory of Communication, The Bell System Technical Journal, Vol. 27, pp. 379 423, 623 656, July, October, 1948 https://pl.khanacademy.org/computing/computerscience/informationtheory#info-theory https://pl.khanacademy.org/computing/computerscience/informationtheory#moderninfotheory http://zylla.wipos.p.lodz.pl/ut/kody.html Tanenbaum, A.S., Computer Networks, Prentice Hall, 1981 https://eewiki.net/display/microcontroller/crc+basics 35
36