If you're seeing this message, it means we're having trouble loading external resources on our website.

Jeżeli jesteś za filtrem sieci web, prosimy, upewnij się, że domeny *.kastatic.org i *.kasandbox.org są odblokowane.

Główna zawartość

Konwersja danych analogowych na binarne

Świat rzeczywisty jest analogowy, ciągły strumień zmieniających się danych.
Rozejrzyj się wokół siebie, za komputerem lub telefonem. Tam jest nieskończona ilość informacji wizualnych. Jeśli zbliżysz się do wybranego fragmentu swojego pola widzenia, zauważysz coraz więcej szczegółów.
Teraz zaśpiewaj sobie kawałek piosenki. To nieskończony strumień informacji audio. Twój głos ciągle się zmienia w dużym i małym stopniu, mikrosekunda po mikrosekundzie.
Dane analogowe są nieskończenie szczegółowe. Komputery mogą przechowywać tylko dane cyfrowe, dane skończone w reprezentacji binarnej.
Jak więc możemy przechwycić ten cudowny, analogowy świat naszych zmysłów i przekształcić go w dane cyfrowe? Możemy wykorzystać proces próbkowania, kwantyzacji i kodowania binarnego.

Sygnał analogowy

Zacznijmy od prostego sygnału analogowego, fali reprezentującej dźwięk:
Wykres z osią x oznaczoną literą "t" w zakresie od 0 do 330 i osią y oznaczoną literą "v" w zakresie od -100 do 100. Linia krzywej przebiega w poprzek wykresu w górę i w dół.
Wszystkie sygnały analogowe są ciągłe zarówno w dziedzinie czasu (oś x) jak i w dziedzinie amplitudy (oś y). Oznacza to, że istnieje precyzyjna wartość dla każdej możliwej wartości czasu, nawet tak specyficzna jak "1,2345 sekundy", a wartość ta może być tak precyzyjna jak "47,8291824806423964 wolt".

Próbkowanie

Pierwszym krokiem jest próbkowanie, w którym pobieramy próbkę w regularnych odstępach czasu. Ten krok redukuje ciągłą dziedzinę czasową do serii dyskretnych interwałów.
W tym sygnale, gdzie czas waha się od 0 do 330 milisekund, moglibyśmy pobierać próbkę co 30 milisekund:
Wykres z osią x oznaczoną literą "t" w zakresie od 0 do 330 i osią y oznaczoną literą "v" w zakresie od -100 do 100. Linia krzywej przebiega w poprzek wykresu w górę i w dół. Seria linii prostych przecina linię krzywizny co 30 jednostek na osi x.
To daje nam 12 próbek sygnału o długości od 0 do 330 milisekund.
Teraz możemy wyrazić sygnał jako serię punktów próbkowania:
(0, 7)
(30, 95.98676803710936)
(60, -71.43289186523432)
(90, -106.55949554687498)
(120, -97.21617085937501)
(150, -70)
(180, -29.045472375000003)
(210, 6.171340345703143)
(240, 24.439022283203116)
(270, -74.45763529492186)
(300, -31.31245312500002)
(330, 24)
Wartości y są tylko tak dokładne, jak nasz komputer może przechowywać; liczby przechowywane w komputerach nie są nieskończenie dokładne i mogą być zaokrąglone.
🔎 Czy 12 próbek wystarczy? Pobaw się interwałem próbkowania w interaktywnej części poniżej i obserwuj efekt wybierania różnych interwałów:
Odwrotność interwału próbkowania to częstotliwość próbkowania: liczba próbek w ciągu sekundy (lub innej jednostki czasu). Na przykład okres pobierania próbek wynoszący 30 milisekund odpowiada częstotliwości pobierania próbek wynoszącej 33,33 próbek na sekundę.
Zgodnie z twierdzeniem Nyquista-Shannona, wystarczająca częstotliwość próbkowania to cokolwiek większego niż dwukrotnie większa częstotliwość w sygnale. Częstotliwość jest liczbą cykli na sekundę i jest mierzona w Hz (hercach). Jeśli sygnał ma maksymalną częstotliwość 500 Hz, wystarczająca częstotliwość próbkowania jest większa niż 1000 Hz.
Typowa częstotliwość próbkowania dla nagrań muzycznych wynosi 48 kHz (48 000 próbek na sekundę). Jest to nieco ponad dwukrotnie więcej niż najwyższa częstotliwość, jaką ludzie mogą usłyszeć, 20 kHz. Jeśli dźwięk zawiera tylko ludzką mowę, jak to często ma miejsce w przypadku rozmów telefonicznych, można zastosować znacznie mniejszą częstotliwość próbkowania 8 kHz, ponieważ 4 kHz jest najwyższą częstotliwością w większości rozmów. 1

Kwantyzacja

Po próbkowaniu pozostaje nam jeszcze szeroki zakres w dziedzinie amplitudy, wartości y. Kolejny krok kwantyzacji redukuje tę ciągłą domenę amplitudową do poziomów dyskretnych.
Dla naszego prostego sygnału, gdzie amplituda waha się od -100 do 100 woltów, możemy zastosować przedział kwantyzacji 25 woltów:
Wykres z osią x oznaczoną literą "t" od 0 do 330 i osią y oznaczoną literą "v" od -100 do 100. Punkty próbkowania są przedstawione w postaci pomarańczowych kółek. Linie biegną od osi x do blisko każdego z badanych punktów, na przecięciu z poziomymi liniami siatki.
Teraz wszystkie 12 punktów ma wartości y, które są wielokrotnością 25:
(0, 0)
(30, 100)
(60, -75)
(90, -100)
(120, -100)
(150, -75)
(180, -25)
(210, 0)
(240, 25)
(270, -75)
(300, -25)
(330, 25)
🔎 Jaki jest najlepszy przedział kwantyzacji? Pobaw się różnymi interwałami kwantyzacji poniżej i obserwuj, jak daleko znajdują się punkty kwantyzacji od punktów próbkowania:
Idealny interwał kwantyzacji zależy od naszego przypadku użycia i fizycznych ograniczeń. Jeśli jest wystarczająco dużo miejsca, aby reprezentować tysiące różnych wartości y, to możemy użyć bardzo małego przedziału kwantyzacji. Jeśli jest ograniczona przestrzeń, to możemy użyć dużego interwału.
Etap kwantowania zawsze wprowadza pewną ilość błędu kwantowania, który jest mierzony poprzez porównanie rzeczywistej wartości sygnału z wartością kwantowaną w każdym z punktów próbkowania. Jednak pewien stopień kwantyzacji jest zawsze konieczny do przechowywania danych analogowych w postaci cyfrowej, ze względu na skończoną naturę pamięci komputera i jego dokładność w przechowywaniu liczb.

Kodowanie binarne

To prowadzi nas do ostatniego etapu: kodowania binarnego. Jeśli istnieje ograniczony zestaw kwantowanych wartości y, komputer nie musi przechowywać rzeczywistej wartości. Zamiast tego, może zapisać znacznie mniejszą wartość, która reprezentuje kwantową wartość y.
Dla tego sygnału, interwał kwantowania wynoszący 25 spowodował uzyskanie 9 możliwych wartości y. Możemy mapować te 9 wartości na liczby binarne 0000 - 1001:
Wykres z osią x oznaczoną literą "t" od 0 do 330 milisekund i osią y oznaczoną literą "v" od -100 do 100. Seria linii jest umieszczona co 30 milisekund, przy czym każda linia kończy się okręgiem przecinającym poziomą linię siatki.
Następnie możemy zakodować sygnał do tego ciągu bitów:
0100 1000 0001 0000 0000 0001 0011 0100 0101 0001 0011 0101
Aby komputer mógł zrozumieć ten ciąg, nasza wersja cyfrowa musiałaby również zawierać opis sposobu próbkowania i kodowania tego ciągu.
W tym kodowaniu wykorzystuje się 4 bity na próbkę. Liczba bitów na próbce jest również znana jako głębia bitów. Najniższa głębokość bitów to 1, która może opisać tylko 2 wartości (0 lub 1). Standardowa głębokość bitów dla rozmów telefonicznych wynosi 8 bitów (256 wartości), a zalecana głębokość bitów dla teledysków YouTube wynosi 24 bity (ponad 16 milionów wartości).
🔎 Pobaw się ponownie z odstępem kwantyzacji i obserwuj, jak zmienia się głębia bitów. Jakie interwały potrzebne są dla tylko 2 bitów? 4 bitów? 6 bitów?

Rekonstrukcja

Często przechowujemy sygnały analogowe w pamięci cyfrowej, aby móc je później odtworzyć, na przykład odtwarzając plik audio lub wyświetlając obraz. Gdy urządzenie chce przekształcić sygnał cyfrowy z powrotem w sygnał analogowy, próbuje odtworzyć oryginalny sygnał ciągły.
Dla tego sygnału prosta strategia rekonstrukcji mogłaby interpolować gładką krzywą przez skwantowane punkty:
Wykres z osią x oznaczoną literą "t" od 0 do 330 milisekund i osią y oznaczoną literą "v" od -100 do 100. Seria linii jest wyświetlana co 30 milisekund, przy czym każda linia kończy się okręgiem przecinającym poziomą linię siatki. Na górę nakładana jest krzywa, która łączy te okręgi.
Jak dobrze to pasuje do oryginału? Możemy nałożyć krzywe, aby wizualnie zobaczyć różnicę:
Wykres z osią x oznaczoną literą "t" od 0 do 330 milisekund i osią y oznaczoną literą "v" od -100 do 100. Linia krzywizny przechodzi przez wykres i jest nakładana na inną podobną linię krzywizny.
Zrekonstruowany sygnał jest bardzo zbliżony do oryginału, ale brakuje w nim kilku szczegółów. Jeśli uda nam się zmniejszyć odstęp próbkowania i zmniejszyć błąd kwantyzacji, możemy przybliżyć zrekonstruowaną krzywą do oryginalnego sygnału. Możemy również użyć różnych strategii do rekonstrukcji sygnału.
🔎 Odtwórz poniżej z różnymi częstotliwościami próbkowania i interwałami kwantyzacji. Jak blisko możesz zbliżyć się do pierwotnej krzywej?

Podsumowanie

Pierwszy etap próbkowania przekształcił nieskończony strumień w skończoną sekwencję. W kwantyzacji wartości w tej sekwencji zostały zaokrąglone. Na koniec wartości te zostały zakodowane w bitach do zapisania na urządzeniu. W pewnym momencie urządzenie mogło zinterpretować te bity, aby spróbować odtworzyć oryginalny nieskończony strumień wartości ciągłych.
Za każdym razem, gdy przekształcamy dane analogowe w dane cyfrowe, zarówno dźwiękowe, jak i wizualne, naszym celem jest próbkowanie danych z odpowiednią precyzją, tak abyśmy mogli je później odtworzyć na pożądanym poziomie jakości, ale nie przekraczając możliwości przechowywania danych.
Telefony stacjonarne używają stosunkowo niskich częstotliwości próbkowania i głębi bitów, ponieważ dane muszą być przesyłane przez linie telefoniczne, podczas gdy reżyserzy filmowi nagrywają film z bardzo wysoką częstotliwością próbkowania i głębią bitów, tak aby mogli później odtworzyć go na gigantycznych ekranach.
🤔 Znajdź w pobliżu urządzenie, które konwertuje dane analogowe na dane cyfrowe. Jakie ma ograniczenia przestrzenne do przechowywania lub przesyłania danych? Jakiego rodzaju szczegóły są tracone w wersji zdigitalizowanej?

🙋🏽🙋🏻‍♀️🙋🏿‍♂️Masz pytania związane z tym zagadnieniem? Możesz zadać swoje pytanie poniżej!

Chcesz dołączyć do dyskusji?

  • Awatar blobby green style dla użytkownika Konrad Kalbarczyk
    Kodowanie binarne - kodowanie 12 próbek sygnału(po skwantowaniu) na liczbę binarną. Skoro po skwantowaniu amplitudy mamy 9 wartości- od 0000 do 1001 i mamy 12 próbek sygnału, to dlaczego w odpowiedzi ciąg "0 i 1" składa się z 25, a nie z 4*12=36 bitów?
    (1 głos)
    Awatar Default Khan Academy avatar dla użytkownika
Rozumiesz angielski? Kliknij tutaj, aby zobaczyć więcej dyskusji na angielskiej wersji strony Khan Academy.