Wstep: Różnice pomiędzy wersjami

Z Brain-wiki
(Nie pokazano 17 pośrednich wersji utworzonych przez tego samego użytkownika)
Linia 1: Linia 1:
 +
Sygnały zapisujemy, przetwarzamy i analizujemy w postaci ciągów liczb. Przejście od sygnału ciągłego do cyfrowego odbywa się przez proces próbkowania, czyli zapisywania kolejnych amplitud sygnału w ustalonych, stałych odstępach czasu,  [[TI/Cyfrowy_świat|omawiany wcześniej na TIiK]].
  
 +
[[Plik:AD.png|150px|bezramki]]
  
 +
Ciągły sygnał z górnego rysunku, po próbkowaniu w punktach symbolizowanych czarnymi kropkami na rysunku dolnym, na dysku zostaje zapisany jako ciąg liczb:
  
[[Plik:wstep_rys_3.jpg|thumb|center|600px|alt=próbkowanie zmienia ciągłys sygnał| <figure id="fig:8"></figure> Próbkowane z częstością 1 oscylacje o częstościach ''f'', od góry: 1,3, 1, 0,5 i 0,3.
+
102, 195, 80, 16, 147, 178
Sinusa o częstości 0,3 można odtworzyć dokładnie z samych wartości dyskretnych (kropki),
 
podobnie dla granicznej częstości 0,5. Natomiast próbkowane z tą samą częstością szybsze
 
oscylacje wprowadzają przekłamania &mdash; widoczna na samej górze oscylacja o częstości 1,3
 
daje w chwilach próbkowania wartości ''dokładnie takie same''  jak sygnał na dole.
 
Zjawisko to nosi nazwę ''aliasingu''  ([[STAT:Klasyczna#Przekszta.C5.82cenie_Fouriera_sygna.C5.82.C3.B3w_dyskretnych.2C_aliasing | porównaj)]].]]
 
  
 +
Żeby odtworzyć fizyczne własności sygnału, czyli narysować zapisane wartości próbek (czarne kropki) w odpowiedniej skali, musimy znać ''częstość próbkowania'' i ''stałą kalibracji''.
  
 +
Wyrażana w hercach (Hz) częstość próbkowania (ang. ''sampling frequency'', <math>f_s</math>) to liczba próbek na sekundę. Jest ona odwrotnością odstępu w czasie między kolejnymi próbkami (<math>\Delta t</math>):
 +
<div align = "center>
 +
<math>f_s = \dfrac{1}{\Delta t}</math>
 +
</div>
  
 +
Stała kalibracji to współczynnik, przez który mnożymy zapisane liczby, żeby otrzymać wartości w jednostkach fizycznych, na przykład mikrowoltach.
  
===Zapis cyfrowy i korekcja błędów===
+
Oczywiście musimy też wiedzieć, w jakim formacie zapisano na dysku liczby (omawiany rok temu na wykładzie o [[TI/Zera_i_jedynki|binarnych reprezentacjach liczb]]), oraz, w przypadku sygnałów wielozmiennych o jednolitym próbkowaniu, znać liczbę kanałów. Taka dodatkowa informacja (metainformacja) jest konieczna do poprawnego wyświetlenia danych z pliku.
Aby zrozumieć, dlaczego łatwość korekcji błędów związana jest z
 
zapisem cyfrowym, przyjrzyjmy się bliżej analogowym i cyfrowym zapisom
 
dźwięku.  Na płycie analogowej dźwięk kodowany jest w zmiennym
 
wyżłobieniu rowka, w którym przemieszcza się igła gramofonu. W
 
przybliżeniu możemy wyobrazić sobie, że "podskok" igły w większym
 
wgłębieniu rowka odwzorowywany jest jako większe wychylenie membrany
 
głośnika (po zamianie w impuls elektryczny i przejściu przez
 
wzmacniacz). Tak więc wyżłobienie rowka płyty oryginalnie odwzorowuje
 
dokładnie zapisany dźwięk. Jego 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.<ref>Tak naprawdę sprawa nie
 
jest beznadziejna:
 
* część zakłócen pochodzi z zanieczyszczeń; w tym przypadku zwykle  pomaga delikatne czyszczenie płyty.
 
* Do pozostałych zakłóceń, których nie da się usunąć mechanicznie, stosuje  się potężną metodologię analizy sygnałów (będącą przedmiotem następnych  rozdziałów), która pomaga zgadnąć, które dźwięki w zapisie mogą pochodzić z zakłóceń. Zwykle jednak nie da się usunąć dokładnie wszystkich zakłóceń bez  naruszenia brzmienia oryginału.</ref>
 
  
W przypadku zapisu cyfrowego możemy w prosty sposób ''wykryć''  fakt wystąpienie zakłóceń. Wyobraźmy sobie, że zapisujemy muzykę jako szereg liczb, opisujących amplitudę fali dźwiękowej mierzoną w ustalonych odstępach czasu (rys. <xr id="fig:9"></xr>; dla płyty kompaktowej <math>\Delta t = 1/44 100</math> sekundy).  Ponieważ urządzenie, które będzie zamieniać ten zapis z powrotem na muzykę, i tak musi być swego rodzaju specjalizowanym komputerem (odtwarzaczem
+
===Aliasing===
CD), to do programu odtwarzającego możemy wprowadzić pewną modyfikację. Umówmy się dla przykładu, że z każdych dziesięciu kolejnych liczb, do zapisu muzyki będziemy wykorzystywać tylko
+
Poza znajomością zależności między zapisanymi liczbami a jednostkami fizycznymi w procesie próbkowania kluczową rolę odgrywa twierdzenie o próbkowaniu (inaczej twierdzenie Nyquista-Shannona, czasem w skrócie twierdzenie Nyquista). Mówi ono, że sygnał ciągły możemy odtworzyć za zapisanych próbek, jeśli częstość próbkowania <math>f_p</math> była wyższa niż dwukrotność najwyższej z występujących w sygnale częstości <math>f_{max}</math>, nazywana częstością Nyquista <math>f_N</math>:
dziewięć, a ostatnią będziemy dobierać tak, żeby suma kolejnych dziesięciu liczb zawsze wynosiła np. milion.
+
<div align = "center>
 +
<math> f_s = \dfrac{1}{\Delta t} > 2* f_{max} = f_N</math>
 +
</div>  
 +
Jeśli częstość próbkowania nie była wystarczająco wysoka, nie tylko stracimy informację o zmianach amplitudy sygnału "pomiędzy próbkami", ale dojdzie też do zafałszowania sygnału w niższych częstościach, które z pozoru nie powinny być zaburzone. Efekt ten jest bliżej omówiony w rozdziale [[Aliasing]].
  
[[Plik:wstep_rys_4.jpg|thumb|center|600px|alt=digitalizacja sygnału analogowego|<figure id="fig:9"></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 może być np. fragmentem ścieżki na płycie CD: białe pola (zera) odbijają światło lasera, a czarne (jedynki) nie.]]
+
[[Plik:Nyquist1.png|600px|bezramki]]
  
Taki sposób zapisu wprowadza redundancję, czyli
+
===Sygnał dyskretny jako wektor===
nadmiar informacji w zapisie, ponieważ przy prawidłowym odczycie
 
wystarczyłoby znać dziewięć kolejnych liczb, aby wyznaczyć dziesiątą
 
(jako milion minus suma pozostałych dziewięciu).  Jednak jeśli
 
wczytamy z takiego zapisu wszystkie liczby, i suma którejś dziesiątki
 
okaże się inna niz milion, to mamy pewność, że w tym miejscu wystąpił
 
błąd.<ref>Ale poprawna suma nie daje gwarancji, że błędu nie ma.
 
W jednej dziesiątce mogą wystąpić np. dwa jednakowe błędy o
 
przeciwnych znakach i suma pozostanie niezmieniona. Dlatego sumy
 
kontrolne liczy się w bardziej wyrafinowany sposób (np. CRC --
 
''Cyclic Redundancy Check'' ) </ref> Taka informacja jest bardzo cenna:
 
* Jeśli ''jesteśmy pewni'' , że nagły skok amplitudy 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.
 
* Możemy zwiększyć redundancję i zapisać dwie jednakowe kopie;  jeśli uszkodzeniu ulegnie fragment pierwszej kopii, program może  automatycznie sięgnąć do odpowiedniego fragmentu drugiej  kopii<ref>Prawdopodobieństwo wystąpienia uszkodzeń w tych samych  fragmentach dwóch zapisów jest już bez porównania mniejsze niż  pojedynczego uszkodzenia. Sposobem wprowadzania nadmiarowości, który  minimalizuje prawdopodobieństwo wystąpienia takich pechowych  przypadków, rządzi dość złożona matematyka z pogranicza statystyki,  której nie będziemy tu omawiać. W każdym razie, dwie jednakowe kopie  umieszczone jedna za drugą zwykle nie okazują się rozwiązaniem  otymalnym.</ref>. 
 
* W przypadku transmisji przez modem, program może zażądać powtórnego  przesłania uszkodzonego fragmentu.
 
  
Niezależnie od tych korzyści, jeśli chcemy analizować sygnały z pomocą
+
[https://en.wikipedia.org/wiki/Energy_(signal_processing) Energia sygnału]
komputera ''(maszyny cyfrowej)'', i tak jesteśmy "skazani" na
 
pracę z ich dyskretną formą.
 
  
Mimo tego, większość ogólnych twierdzeń będziemy rozważać w
 
przestrzeni funkcji ciągłych &mdash; o ile nie tyczą się ''explicite''
 
efektów próbkowania. Teoria funkcji ciągłych jest asymptotycznie
 
zgodna z wynikami dla sekwencji dyskretnych &mdash; dla odstępu próbkowania
 
dążącego do zera. Jej rezultaty, prostsze pojęciowo i łatwiejsze do
 
wyprowadzenia, są wystarczająco dokładne by wyjaśnić ogólne własności
 
dyskretnych obliczeń.
 
  
W uzasadnionych przypadkach będziemy oczywiście dyskutować efekty
+
[[Plik:Product1.png|bezramki]]
próbkowania; w takich sytuacjach będziemy rozróżniać sygnał ciągły
 
<math>s(t)</math> od dyskretnej sekwencji <math>s[n]</math>.
 
  
[[TI:Technologia_Informacyjna/Cyfrowy_świat| Podobne tematy opisuje rozdział "Cyfrowy Świat"]] z podręcznika Technologii Informacyjnej.
+
[[Plik:Product2.png|bezramki]]
 +
 
 +
[[Plik:Product3.png|bezramki]]
 +
 
 +
[[Plik:Product4.png|bezramki]]
 +
 
 +
[[Plik:Product5.png|bezramki]]
 +
 
 +
[[Plik:Product6.png|bezramki]]
 +
 
 +
===Liczby zespolone===
 +
 
 +
===[[Szereg Fouriera]]===
 +
 
 +
 
 +
 
 +
===[[Przekształcenie Fouriera]]===
 +
 
 +
 
 +
 
 +
 
 +
<div align="right">
 +
[[Analiza_sygnałów_-_wykład|⬆]] [[...|⮕]]
 +
</div>
 +
__NOTOC__

Wersja z 09:29, 26 lip 2024

Sygnały zapisujemy, przetwarzamy i analizujemy w postaci ciągów liczb. Przejście od sygnału ciągłego do cyfrowego odbywa się przez proces próbkowania, czyli zapisywania kolejnych amplitud sygnału w ustalonych, stałych odstępach czasu, omawiany wcześniej na TIiK.

AD.png

Ciągły sygnał z górnego rysunku, po próbkowaniu w punktach symbolizowanych czarnymi kropkami na rysunku dolnym, na dysku zostaje zapisany jako ciąg liczb:

102, 195, 80, 16, 147, 178

Żeby odtworzyć fizyczne własności sygnału, czyli narysować zapisane wartości próbek (czarne kropki) w odpowiedniej skali, musimy znać częstość próbkowania i stałą kalibracji.

Wyrażana w hercach (Hz) częstość próbkowania (ang. sampling frequency, [math]f_s[/math]) to liczba próbek na sekundę. Jest ona odwrotnością odstępu w czasie między kolejnymi próbkami ([math]\Delta t[/math]):

[math]f_s = \dfrac{1}{\Delta t}[/math]

Stała kalibracji to współczynnik, przez który mnożymy zapisane liczby, żeby otrzymać wartości w jednostkach fizycznych, na przykład mikrowoltach.

Oczywiście musimy też wiedzieć, w jakim formacie zapisano na dysku liczby (omawiany rok temu na wykładzie o binarnych reprezentacjach liczb), oraz, w przypadku sygnałów wielozmiennych o jednolitym próbkowaniu, znać liczbę kanałów. Taka dodatkowa informacja (metainformacja) jest konieczna do poprawnego wyświetlenia danych z pliku.

Aliasing

Poza znajomością zależności między zapisanymi liczbami a jednostkami fizycznymi w procesie próbkowania kluczową rolę odgrywa twierdzenie o próbkowaniu (inaczej twierdzenie Nyquista-Shannona, czasem w skrócie twierdzenie Nyquista). Mówi ono, że sygnał ciągły możemy odtworzyć za zapisanych próbek, jeśli częstość próbkowania [math]f_p[/math] była wyższa niż dwukrotność najwyższej z występujących w sygnale częstości [math]f_{max}[/math], nazywana częstością Nyquista [math]f_N[/math]:

[math] f_s = \dfrac{1}{\Delta t} \gt 2* f_{max} = f_N[/math]

Jeśli częstość próbkowania nie była wystarczająco wysoka, nie tylko stracimy informację o zmianach amplitudy sygnału "pomiędzy próbkami", ale dojdzie też do zafałszowania sygnału w niższych częstościach, które z pozoru nie powinny być zaburzone. Efekt ten jest bliżej omówiony w rozdziale Aliasing.

Nyquist1.png

Sygnał dyskretny jako wektor

Energia sygnału


Product1.png

Product2.png

Product3.png

Product4.png

Product5.png

Product6.png

Liczby zespolone

Szereg Fouriera

Przekształcenie Fouriera