TI/Cyfrowy świat: Różnice pomiędzy wersjami
Linia 13: | Linia 13: | ||
[[Grafika:CD_digital.png|thumb|553px|<figure id="fig:CD"></figure>Od góry: ciągły (analogowy) zapis fali dźwiękowej, poniżej próbkowanie, czyli wybór chwil, w których ją mierzymy, dalej zamiana zmierzonych wartości na liczby i liczb na bity. Pasek na dole rysunku może symbolizować na przykład fragment ścieżki na płycie CD: białe pola (zera) odbijają światło lasera, a czarne (jedynki) nie.]] | [[Grafika:CD_digital.png|thumb|553px|<figure id="fig:CD"></figure>Od góry: ciągły (analogowy) zapis fali dźwiękowej, poniżej próbkowanie, czyli wybór chwil, w których ją mierzymy, dalej zamiana zmierzonych wartości na liczby i liczb na bity. Pasek na dole rysunku może symbolizować na przykład fragment ścieżki na płycie CD: białe pola (zera) odbijają światło lasera, a czarne (jedynki) nie.]] | ||
− | W przypadku zapisu cyfrowego możemy w stosunkowo prosty sposób wykryć wystąpienie zakłóceń, jeśli do zapisu dodamy dodatkową informację. Na płycie CD muzykę zapisujemy jako szereg liczb, oznaczających w uproszczeniu wychylenie membrany głośnika, mierzone w ustalonych odstępach czasu — konkretnie 44100 razy na sekundę | + | W przypadku zapisu cyfrowego możemy w stosunkowo prosty sposób wykryć wystąpienie zakłóceń, jeśli do zapisu dodamy dodatkową informację. Na płycie CD muzykę zapisujemy jako szereg liczb, oznaczających w uproszczeniu wychylenie membrany głośnika, mierzone w ustalonych odstępach czasu — konkretnie 44100 razy na sekundę. Umówmy się dla przykładu(!), że z każdych dziesięciu kolejnych liczb do zapisu muzyki będziemy wykorzystywać tylko dziewięć, a ostatnią wykorzystamy do zapisania ich sumy. Taki sposób zapisu wprowadza redundancję, czyli nadmiar informacji w zapisie, ponieważ przy prawidłowym odczycie wystarczyłoby znać dziewięć kolejnych liczb, aby szybko obliczyć dziesiątą (ich sumę) — której tak naprawdę przy odtwarzaniu w ogóle nie wykorzystujemy. Jednak jeśli wczytywać będziemy z takiego zapisu wszystkie liczby razem z sumami, po czym niezależnie obliczymy sumę pierwszych dziewięciu licz, i w którejś dziesiątce ostatnia liczba będzie różna od sumy poprzedzających dziewięciu, to mamy pewność, że w tym miejscu wystąpił błąd. |
Ta dziesiąta liczba to '''suma kontrolna'''; sumy kontrolne (w trochę bardziej wyrafinowanej postaci) stosowane są na przykład w numerach kart kredytowych, numerach kont bankowych, numerach PESEL — pozwala to łatwo i szybko wykryć błąd przy ich wpisywaniu czy przesyłaniu. Informacja o wystąpieniu błędu jest bardzo cenna, również przy odtwarzaniu muzyki: | Ta dziesiąta liczba to '''suma kontrolna'''; sumy kontrolne (w trochę bardziej wyrafinowanej postaci) stosowane są na przykład w numerach kart kredytowych, numerach kont bankowych, numerach PESEL — pozwala to łatwo i szybko wykryć błąd przy ich wpisywaniu czy przesyłaniu. Informacja o wystąpieniu błędu jest bardzo cenna, również przy odtwarzaniu muzyki: |
Wersja z 12:45, 14 lip 2024
TI/ Analogowy a cyfrowy: sumy kontrolne
Rewolucja cyfrowa rozpoczęła się w drugiej połowie ubiegłego wieku. Dzisiaj zapisywanie i przetwarzanie wszelkiego rodzaju informacji — tekstów, obrazów, wideo i ogólnie danych — w postaci liczb jest dla nas oczywiste, ale nie zawsze tak było. Przejście z tradycyjnego zapisu analogowego na cyfrowy nie jest proste ani oczywiste, ale oferuje zasadniczą korzyść: możliwość wykrywania błędów. Pozwala to na ich korekcję, a w konsekwencji całkowicie bezbłędne przesyłanie i powielanie informacji.
Aby dokładniej zrozumieć ten podstawowy fakt, porównajmy analogowy zapis dźwięku na płycie winylowej z zapisem cyfrowym — na przykład na płycie CD.
CD zapewnia lepszą jakość — to wydaje się oczywiste. Ale, jeśli porównywać CD np. z nową płytą z dobrej tłoczni, odtwarzaną na wysokiej klasy gramofonie, może to już tak oczywiste nie być. No właśnie, nową... Zastanówmy się: płyty CD nie trzeszczą, nawet stare! Czasami nie dadzą się w ogóle odtwarzać, czasami 'gubią' fragmenty na mocno porysowanych płytkach, ale nie trzeszczą! Jak to się dzieje? Kluczem do tajemnicy jest korekcja błędów.
Aby zrozumieć, dlaczego korekcja błędów związana jest ściśle z zapisem cyfrowym, a praktycznie niemożliwa w zapisie analogowym, przyjrzyjmy się bliżej analogowym i cyfrowym zapisom dźwięku.
Na płycie winylowej (analogowej) dźwięk kodowany jest w ciągłych zmianach głębokości rowka, po którym przemieszcza się igła gramofonu. W przybliżeniu możemy wyobrazić sobie, że 'podskok' igły w większym wgłębieniu rowka powoduje większe wychylenie membrany głośnika (po zamianie w impuls elektryczny i przejściu przez wzmacniacz). Wyżłobienie rowka nowej płyty odwzorowuje więc dokładnie zapisany dźwięk. Zarysowanie lub zabrudzenie wprowadzi przy odtwarzaniu zakłócenia (zwykle trzaski). Jednoznaczne rozróżnienie, które z wyżłobień rowka winylowej płyty odzwierciedlają oryginalny zapis muzyki, a które powstały skutkiem uszkodzeń, jest właściwie niemożliwe, dlatego też muzyka ze starych płyt kojarzy nam się z obecnością trzasków i szumu.
W przypadku zapisu cyfrowego możemy w stosunkowo prosty sposób wykryć wystąpienie zakłóceń, jeśli do zapisu dodamy dodatkową informację. Na płycie CD muzykę zapisujemy jako szereg liczb, oznaczających w uproszczeniu wychylenie membrany głośnika, mierzone w ustalonych odstępach czasu — konkretnie 44100 razy na sekundę. Umówmy się dla przykładu(!), że z każdych dziesięciu kolejnych liczb do zapisu muzyki będziemy wykorzystywać tylko dziewięć, a ostatnią wykorzystamy do zapisania ich sumy. Taki sposób zapisu wprowadza redundancję, czyli nadmiar informacji w zapisie, ponieważ przy prawidłowym odczycie wystarczyłoby znać dziewięć kolejnych liczb, aby szybko obliczyć dziesiątą (ich sumę) — której tak naprawdę przy odtwarzaniu w ogóle nie wykorzystujemy. Jednak jeśli wczytywać będziemy z takiego zapisu wszystkie liczby razem z sumami, po czym niezależnie obliczymy sumę pierwszych dziewięciu licz, i w którejś dziesiątce ostatnia liczba będzie różna od sumy poprzedzających dziewięciu, to mamy pewność, że w tym miejscu wystąpił błąd.
Ta dziesiąta liczba to suma kontrolna; sumy kontrolne (w trochę bardziej wyrafinowanej postaci) stosowane są na przykład w numerach kart kredytowych, numerach kont bankowych, numerach PESEL — pozwala to łatwo i szybko wykryć błąd przy ich wpisywaniu czy przesyłaniu. Informacja o wystąpieniu błędu jest bardzo cenna, również przy odtwarzaniu muzyki:
- Jeśli jesteśmy pewni, że nagły skok natężenia w kilku kolejnych próbkach jest wynikiem błędu zapisu, a nie efektem zamierzonym przez muzyka, to możemy ten skok 'przemilczeć', czyli np. zastąpić 'popsute' próbki średnią wartością poprzednich.
- Po drugie, możemy zwiększyć redundancję jeszcze bardziej i zapisać np. dwie jednakowe kopie. Jeśli uszkodzeniu ulegnie fragment pierwszej kopii, program odtwarzający muzykę może automatycznie sięgnąć do odpowiedniego fragmentu drugiej kopii.
Problemy na granicy światów, czyli próbkowanie i aliasing
Powyżej opisaliśmy podstawową korzyść z zapisu cyfrowego informacji — możemy wykryć wystąpienie błędów. Implikacje tego faktu zmieniły świat:
- w dużej mierze przestało istnieć pojęcie kopii i oryginału: dzięki sumom kontrolnym możemy mieć pewność, że (jeśli program kopiujący nie zgłosił błędów) kopia jest dokładnie jednakowa z oryginałem: te same bity mogą być utrwalone na innym nośniku, ale ich znaczenie — obraz, dźwięk, wideo czy tekst — są dokładnie takie same, jak w oryginale
- transmisja i przechowywanie informacji mogą opierać się na nieporównywalnie tańszych realizacjach niż w przypadku analogowym: nawet jeśli dane operacj bankowej obciążającej kartę kredytową przesyłamy zaszumioną linią telefoniczną, błędy w transmisji nie spowodują na przykład obciążenia cudzego konta. Po wykryciu błędu transmisja będzie powtarzana tak długo, aż zgodzą się sumy kontrolne.
Jednak musimy też być świadomi ograniczeń zapisu cyfrowego, a szczególnie błędów, które możemy popełnić przy przejściu ze świata analogowego co cyfrowego. Przejście to zwiemy konwersją analogowo-cyfrową. Prześledzimy ten proces na przykładzie próbkowania sygnału jednowymiarowego:
- wartość amplitudy mierzymy tylko "co jakiś czas" — zwykle w równych odstępach. Długość tych odstępów zależy od częstości próbkowania, mierzonej zwykle w Hercach, czyli ilości próbek na sekundę. Częstość próbkowania 100 Hz oznacza, że amplituda jest mierzona co 10 milisekund.
- każda zmierzona wartość musi być następnie zamieniona na liczbę. Dokładność tej liczby zależy od tego, ile bitów przeznaczymy na jej zapis — stąd przetwoniki 12-bitowe, 24-bitowe itd. Zależność zakresu liczb od ilości bitów, czyli zapis dwójkowy, wyjaśniona jest w następnym rozdziale.
Jak widać, przy przejściu z zapisu analogowego na cyfrowy możemy utracić część informacji — wartości amplitudy 'spomiędzy' próbek oraz dokładność wartości samych amplitud. Ale to jeszcze nie jest najgorsze, co może się przytrafić. Jeśli nie będziemy sygnału próbkować z odpowiednią częstością, może pojawić się aliasing: wyższe częstości nie tylko nie będą widocze w sygnale cyfrowym, ale zafałszują też niższe częstości. Aby uniknąć takiego zniszczenia informacji zawartej w sygnale, musimy stosować twierdzenie Nyquista, które mówi w skrócie, że w próbkowanym sygnale nie może być częstości większych niż połowa częstości próbkowania. Czyli jeśli próbkujemy sygnał z częstością 100 Hz, to musimy upewnić się, że nie ma w nim częstości wyższych niż 50 Hz. Realizowane jest to zwykle przez dolnoprzepustowe filtry antyaliasingowe, usuwające z sygnału wyższe częstości przed próbkowaniem.
Film dostępny w serwisie youtube — pokazuje efekt aliasingu; ten sam efekt obserwujemy na filmach gdy koła dyliżansu kręcę się w "niewłaściwą" stronę. Obraz filmowy próbkowany jest 25 (PAL) lub 30 (NTSC) razy na sekundę.