TI/Cyfrowy świat: Różnice pomiędzy wersjami

Z Brain-wiki
Linia 1: Linia 1:
 
==[[%22Technologia_informacyjna%22|TI/]] Analogowy a cyfrowy: sumy kontrolne==
 
==[[%22Technologia_informacyjna%22|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.
+
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, 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.
+
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.
  
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'''.
+
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 z zapisem cyfrowym, przyjrzyjmy się bliżej analogowym i cyfrowym zapisom dźwięku.
+
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.
  
 
[[Plik:analogowy_gramofon_schemat.png|300px|thumb|left|schemat odtwarzania dźwięku z płyty gramofonowej]]
 
[[Plik:analogowy_gramofon_schemat.png|300px|thumb|left|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.
+
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.
 
[[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.]]
  
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 &mdash; 44100 razy na sekundę (ideę zapisu cyfrowego pokazano na  <xr id="fig:CD">rys. %i</xr>). 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.
+
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ę (ideę zapisu cyfrowego pokazano na  <xr id="fig:CD">rys. %i</xr>). 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 &mdash; 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:
 
* 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.
 
* 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.
 
* 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==
 
==Problemy na granicy światów, czyli próbkowanie i aliasing==

Wersja z 12:43, 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.

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

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.

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ę (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ę) — 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.
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.

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ę.