Z Brain-wiki
Skocz do: nawigacja, szukaj

TI/ Analogowy a cyfrowy

Dlaczego właściwie mówimy o rewolucji cyfrowej?

Najważniejszą korzyścią, wynikającą z przyjęcia zapisu cyfrowego, jest 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, zobaczmy dla przykładu, dlaczego cyfrowy zapis dźwięku (płyty CD) zastąpił całkowicie analogowe 'czarne krążki' z winylu i kasety.

Słyszymy często, że CD zapewnia lepszą jakość. Ale to niekoniecznie prawda, jeśli porównywać np. z nową płytą z dobrej tłoczni, odtwarzaną na wysokiej klasy gramofonie. 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 z zapisem cyfrowym, przyjrzyjmy się bliżej analogowym i cyfrowym zapisom dźwięku.

schemat odtwarzania dźwięku z płyty gramofonowej

Na płycie analogowej dźwięk kodowany jest w zmiennym wyżłobieniu (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.

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.

Natomiast w przypadku zapisu cyfrowego możemy w prosty sposób wykryć wystąpienie zakłóceń. Na płycie CD muzykę zapisujemy jako szereg liczb, oznaczających, powiedzmy, wychylenie membrany głośnika, mierzone w ustalonych odstępach czasu — 44100 razy na sekundę (ideę zapisu cyfrowego pokazano na rys. 1). 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ę). Jednak jeśli wczytamy z takiego zapisu wszystkie liczby, 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 — 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.

Teraz już łatwo sobie wyobrazić, że jeśli nie zgodzi się suma kontrolna przy transmisji danych przez modem, program zażąda po prostu powtórnego przesłania uszkodzonego fragmentu.

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 którym żyjemy:

  • 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.
Próbkowanie przetwornikiem 4-bitowym (16 poziomów); rysunek z artykułu w Wikipedii

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.
Ilustracja twierdzenia Nyquista: jeśli częstości zawarte w sygnale są większe niż połowa częstości próbkowania, występuje aliasing czyli błędny odczyt sygnału cyfrowego.

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.

Filmy z youtube: