Technologie cyfrowe semestr letni 2018/2019 Tomasz Kazimierczuk
Organizacja zajęć Wykład 2h/tydzień Ćwiczenia 3h/tydzień Obecność obowiązkowa 2 sprawdziany praktyczne (kolokwia) w trakcie zajęć Ocena: Zaliczenie ćwiczeń wymaga 50% punktów z kolokwiów Test z materiału wykładowego Końcowa ocena na podstawie sumy punktów z kolokwiów i testu z wagą 1:1
O czym będzie ten wykład Informacja (dane) przetwarzanie danych Obliczenia kodowanie zapis, przechowywanie przesyłanie bezpieczeństwo danych algorytmy struktury danych programy komputerowe urządzenia ( sprzęt ), systemy
Informacja - od tego co jest do bitu Rzeczywistość Przekaz słowny: mowa rzędu 10000 słów (trudna w kopiowaniu, wymaga złożonego nośnika, bardzo podatna na przekłamania) Przekaz pisemny: alfabet Kodowanie dźwięków mowy przez skończony, niewielki, zbiór znaków: Egipt, około 2700 p.n.e 24 hieroglify Czasy współczesne alfabet łaciński, 26 znaków (kopiowanie: od żmudnego przepisywania, przez maszynę drukarską po xero, podatny na przekłamania przy ręcznym kopiowaniu, nośnik mało złożony technicznie) Przekaz cyfrowy: liczby litery alfabetu ponumerowane, dowolna (przeliczalna) liczba znaków możliwa do zapisu. Liczby zapisywane w Wykład formacie 1 (25.02.2019) binarnym.
Informacja - od tego co jest do bitu Przekaz cyfrowy: liczby litery alfabetu ponumerowane, dowolna (przeliczalna) liczba znaków możliwa do zapisu. Liczby zapisywane w formacie binarnym. (wymaga zaawansowanej technologii do zapisu i odczytu, prawie zerowy koszt i czas zapisu i odczytu. Daje możliwość kontroli poprawności zapisu i odczytu) Zapis cyfrowy: każda informacja jest kodowana przy użyciu liczb. Odczyt i zapis informacji wymagają w szczególności znajomości kodowania - czyli przepisu zamiany złożonej informacji (np. obraz, tekst) na liczby. Proces zamiany postaci zwykłej ( analogowej ) na cyfrową nazywa się digitalizacją (z ang. digit cyfra) lub ucyfrowieniem.
Informacja - od tego co jest do bitu Przekaz cyfrowy: liczby litery alfabetu ponumerowane, dowolna (przeliczalna) liczba znaków możliwa do zapisu. Liczby zapisywane w formacie binarnym. (wymaga zaawansowanej technologii do zapisu i odczytu, prawie zerowy koszt i czas zapisu i odczytu. Daje możliwość kontroli poprawności zapisu i odczytu) Zapis cyfrowy: każda informacja jest kodowana przy użyciu liczb. Odczyt i zapis informacji wymagają w szczególności znajomości kodowania - czyli przepisu zamiany złożonej informacji (np. obraz, tekst) na liczby. Proces zamiany postaci zwykłej ( analogowej ) na cyfrową nazywa się digitalizacją (z ang. digit cyfra) lub ucyfrowieniem.
Reprezentacja liczb naturalnych cyfry podstawa: 2, 10, 16, Ta sama liczba zapisana w różnych systemach:
Reprezentacja liczb naturalnych Liczba miesięcy w roku kalendarzowym: Dziesiętnie: Binarnie: Szesnastkowo:
Reprezentacja liczb naturalnych Liczba miesięcy w roku kalendarzowym: Dziesiętnie: Binarnie: Szesnastkowo:
Reprezentacja liczb naturalnych Binarnie: Pojedyncza cyfra w zapisie binarnym Najmniejsza jednostka informacji: bit
Zawartość informacyjna Ile (bitów) informacji jest w liczbie 53 10? Czy następujące liczby mają taką samą ilość informacji? (1101) 2 (001101) 2 (00001101) 2 Ile (bitów) informacji przekazuje zdanie: Urodziłem się po roku 1920?
Współczesna teoria informacji Harry Nyquist (1889-1976) Ralph Hartley (1888-1870) Claude Shannon (1916-2001) "A Mathematical Theory of Communication" (1948)
Szybkości transmisji Prawo Shannona-Hartleya C przepustowość kanału komunikacyjnego B pasmo przenoszenia w Hz S siła sygnału w W N siła szumu w W Prawo Nyquista f p maksymalna liczba impulsów na sekundę B pasmo przenoszenia w Hz
Entropia układu Entropia Shannona H entropia (przeciętna informacyjność zbioru) p i prawdopodobieństwa poszczególnych zdarzeń Informacja I zawartość informacyjna komunikatu o prawdopodobieństwie p
Entropia a informacja Dlaczego właściwie Shannon użył pojęcia entropii, zamiast informacji, niepewności itp.? Moje najgłębsze zatroskanie budziła nazwa. Myślałem o nazwie informacja, ale to słowo jest nadużywane, więc zdecydowałem się na nazwę niepewność. Gdy omawiałem tą sprawę z Johnem von Neumannem, wpadł on na lepszy pomysł. Von Neumann powiedział mi: powinieneś to nazwać entropią z dwóch powodów. Po pierwsze, twoja funkcja niepewności jest używana w statystycznej mechanice pod tą nazwą, więc ona ma już nazwę. Po drugie zaś, co zresztą jest ważniejsze, nikt właściwie nie wie, czym tak naprawdę jest entropia, więc zawsze będziesz miał przewagę w dyskusji. (wypowiedź Shannona, cyt. za Francois Bavaud, Information Theory, Relative Entropy and Statistics, w: Formal Theories of Information Giovanni Sommaruga (Editor), s. 54.)
Konwencje zapisu liczba bez przedrostka: zwykle oznacza zapis w systemie dziesiętnym: 12 liczba z przedrostkiem 0b oznacza zapis w systemie dwójkowym: 0b1100 liczba z przedrostkiem 0x oznacza zapis w systemie szesnastkowym: 0xC
Większe jednostki 8 bitów = bajt 2 10 = 1 024 kilo, np. Kb, KB 2 20 = 1 048 576 mega, np. MB 2 30 = 1 073 741 824 giga Uwaga na niekonsekwentne oznaczenia KB, KiB vs kb Kbit, Kb Skalowanie różne w zależności od dziedziny
Pojemności dysków twardych https://www.euro.com.pl/slownik.bhtml?definitionid=1367222068
Przerywnik humorystyczny https://xkcd.com/394/
Sygnał analogowy a cyfrowy sygnał zmienny w czasie przebieg pewnej wartości, np. głośności dźwięku analogowy dowolna wartość między minimum i maksimum jest możliwa. Wielkość minimum i maksimum mogą być nieskończone. Zmienność w czasie jest ciągła i dowolna.
Sygnał analogowy a cyfrowy sygnał zmienny w czasie przebieg pewnej wartości, np. głośności dźwięku cyfrowy skończona liczba wartości między minimum i maksimum. Wielkość minimum i maksimum muszą być skończone. Liczba próbek w jednostce czasu musi być skończona
Interpolacja Wartości pomiędzy kolejnymi próbkami w czasie możemy wyznaczyć analitycznie (ze wzoru). Najprostszy sposób to interpolacja liniowa. Zapisane dane w dwóch kolejnych chwilach: Prosta przechodząca przez 2 punkty Zwykle wynik będzie bliski rzeczywistemu tylko dla przedziału [t 1,t 2 ]
Interpolacja Wartości pomiędzy kolejnymi próbkami w czasie możemy wyznaczyć analitycznie (ze wzoru). Interpolacja wykonywana jest również przez odpowiedni układ w mózgu.
Twierdzenie Nyquista Załóżmy prosty sygnał sinusoidalny: f(t) = sin(ωt), Próbkujemy raz na okres, czyli z częstością 1/T ω = 2π/T. W tej sytuacji interpolacja liniowa da nam prostą o wartości stałej w czasie! Straciliśmy całą informację o zależności od czasu.
Efekt stroboskopowy https://www.youtube.com/watch?v=4xkywlza-9e
Twierdzenie Nyquista Załóżmy prosty sygnał sinusoidalny: f(t) = sin(ωt), Próbkujemy raz na okres, czyli z częstością 1/T ω = 2π/T. Co się stanie jeśli będziemy próbkowali z częstością ω p =1.5ω 0, czyli 3 razy na 2 okresy?
Twierdzenie Nyquista Załóżmy prosty sygnał sinusoidalny: f(t) = sin(ωt), Próbkujemy raz na okres, czyli z częstością 1/T ω = 2π/T. Co się stanie jeśli będziemy próbkowali z częstością ω p =1.5ω 0, czyli 3 razy na 2 okresy? Sygnał cyfrowy będzie wyglądał identycznie jak byśmy obserwowali na wejściu sygnał o częstości 0.5ω 0 Aliasing pojawienie się w sygnale składowych o błędnych częstotliwościach (aliasów)
Twierdzenie Nyquista Tw. Nyquista: aby móc dokładnie odtworzyć ciągły sygnał o ograniczonym paśmie z jego próbek, należy zastosować częstość próbkowania równą co najmniej podwojonej najwyższej częstości sygnału
Twierdzenie Nyquista Tw. Nyquista: aby móc dokładnie odtworzyć ciągły sygnał o ograniczonym paśmie z jego próbek, należy zastosować częstość próbkowania równą co najmniej podwojonej najwyższej częstości sygnału
Twierdzenie Nyquista Tw. Nyquista: aby móc dokładnie odtworzyć ciągły sygnał o ograniczonym paśmie z jego próbek, należy zastosować częstość próbkowania równą co najmniej podwojonej najwyższej częstości sygnału https://www.youtube.com/watch?v=hrhvb6irarg
Sumy kontrolne Sumy kontrolne (ang. checksum): do informacji, którą chcemy zapisać dołączamy liczby uzyskane w wyniku operacji matematycznych wykonanych na zapisywanych danych. Numer PESEL: przykładowy numer 44051401459 abcdefghijk cyfry [1-6] data urodzenia (RRMMDD) cyfry [7-10] numer serii z oznaczeniem płci cyfra [10] płeć (K parzysta, M nieparzysta) cyfra [11] cyfra kontrolna k = 1a + 3b + 7c + 9d + 1e + 3f + 7g + 9h + 1i + 3j
Zapis audio CD Standardowa płyta CD: 333 000 sektorów Sektor: 2352 bajty danych audio Cała płyta CD: 333 000 2352 = 783 216 000 bajtów Zapis dźwięku na płycie CD: Częstotliwość próbkowania: 44.1 khz Liczba bitów używana do kodowania natężenia dźwięku: 16 Sekunda dźwięku stereo z płyty CD: 2 16 44100 = 1411200 bitów Minuta dźwięku: 1411200 60/8/1024/1024 = 10MiB Dodatkowo: na każde 24B muzyki przypada 8B ECC
Korekcja błędów Korekcja błędów (ang. ECC - Error Checking and Correction): korzystając z sum kontrolnych możemy nie tylko wykrywać błędy ale także próbować je korygować Na płytach audio CD algorytmy korekcji błędów pozwalają na wykrywanie błędów w odczycie. Błędnie odczytane bloki danych mogą być opuszczone przy odtwarzaniu muzyki. Brakujące dane mogą być odtworzone przy pomocy interpolacji liniowej sąsiednich próbek. Metoda ECC używana w audio CD pozwala na wykrycie 99,9985% błędów
Liczby ujemne: znak-moduł Znak kodowany jest stanem najstarszego bitu: bit znaku = 0 - liczba dodatnia bit znaku = 1 - liczba ujemna Wartość liczby obliczamy wg następującego wzoru: W Z-M = (1-2 x bit znaku) x W M W Z-M = (-1) bit znaku x W M
liczba w kodzie Z-M (0 101) (ZM) = (1-2 x 0) x (1 x 2 2 + 0 x 2 1 + 1 x 2 0 ) (0 101) (ZM) = 1 x (1 x 4 + 1 x 1) (0 101) (ZM) = 1 x (4 + 1) (0 101) (ZM) = 1 x 5 (0 101) (ZM) = 5 (1101) (ZM) = (1-2 x 1) x (1 x 2 2 + 0 x 2 1 + 1 x 2 0 ) (1101) (ZM) = -1 x (1 x 4 + 1 x 1) (1101) (ZM) = -1 x (4 + 1) (1101) (ZM) = -1 x 5 (1101) (ZM) = -5
Two's Complement Numbering System U2 W U2 = c n-1 x (- p n-1 ) + c n-2 x p n-2 +... + c 1 x p 1 + c 0 x p 0 0101 (U2) = 0 x (- 2 3 ) + 1 x 2 2 + 0 x 2 1 + 1 x 2 0 0101 (U2) = 0 x (- 8) + 1 x 4 + 0 x 2 + 1 x 1 0101 (U2) = 0 + 4 + 1 0101 (U2) = 5 1101 (U2) = 1 x (- 2 3 ) + 1 x 2 2 + 0 x 2 1 + 1 x 2 0 1101 (U2) = 1 x (- 8) + 1 x 4 + 0 x 2 + 1 x 1 1101 (U2) = (- 8) + 4 + 1 1101 (U2) = - 8 + 5 1101 (U2) = - 3
Kod U2 Oblicz wartość przeciwną do liczby 0011 (U2) = 3: NOT 0011 1100 + 0001 Sprawdzenie 1101 (U2) = 1 x (-2 3 ) + 1 x 2 2 + 0 x 2 1 + 1 x 2 0 1101 (U2) = 1 x (-8) + 1 x 4 + 0 x 2 + 1 x 1 1101 (U2) = -8 + 4 + 1 1101 (U2) = -3 1101
Kod U2 - działania 5 + (-3) 2-(-3) 0101 0010 + 1101-1101 1 0010 1 0101 Wynik 2 Wynik 5 (-2) x 3 11111110 x 00000011 11111110 + 11111110 1011111010 Wynik = -6-011 10 0110 : 0011 0000 0011 NOT 0010 1101 + 0001 6 = 0110 (U2) -3= 1101 (U2) - zmieniamy na 3 = 0011 (U2) 1110
kod BCD - Binary Coded Decimal 2 3 7 9 0010 0011 0111 1001 2379 (10) = 0010001101111001 (BCD 01101000100100110110 (BCD) = 0110 1000 1001 0011 0110 01101000100100110110 (BCD) = 6 x 10 4 + 8 x 10 3 + 9 x 10 2 + 3 x 10 1 + 6 x 10 0 01101000100100110110 (BCD) = 6 x 10000 + 8 x 1000 + 9 x 100 + 3 x 10 + 6 x 1 01101000100100110110 (BCD) = 60000 + 8000 + 900 + 30 + 6 01101000100100110110 (BCD) = 68936 1672 (16) = 0001011001110010 (2) = 0001 0110 0111 0010 (BCD) = 1672 (10
Kod BCD korekcja 29 + 19 31-18 0010 1001 0011 0001 + 0001 1001-0001 1000 0100 0010 0001 1001 + 0000 0110-0000 0110 0100 1000 0001 0011 Wynik = 48 Wynik = 13
Kod Gray a Kod Gray a 000 001 011 010 110 111 101 100
Zapis zmiennoprzecinkowy W FP = m x p w m - mantysa zapisana w systemie o podstawie p p - podstawa danego systemu pozycyjnego w - wykładnik zapisany w systemie o podstawie p. 9,45 x 10 15 = 94,5 x 10 14 = 0,945 x 10 16
Liczby zmiennoprzecinkowe (3,21 x 10 12 ) (4) m = 3,21 (4) = 3 x 4 0 + 2 x 4-1 + 1 x 4-2 = 3 x 1 + 2 x 1 / 4 + 1 x 1 / 16 m = 3 + 2 / 4 + 1 / 16 = 3 9 / 16 p = 10 (4) = 1 x 4 1 + 0 x 4 0 = 1 x 4 + 0 x 1 p = 4 w = 12 (4) = 1 x 4 1 + 2 x 4 0 = 1 x 4 + 2 x 1 = 4 + 2 w = 6 (3,21 x 10 12 ) (4) = 3 9 / 16 x 4 6 = 14592 (10)