Cyfrowe przetwarzanie sygnałów mgr inż. Adam Łutkowski adam.lutkowski@gmail.com p.211
Plan wykładu Wprowadzenie Sygnał Próbkowanie i kwantyzacja Dyskretna transformata Fourier’a Filtry cyfrowe Implementacja sprzętowa – procesory sygnałowe
Wprowadzenie – zalety i wady DSP Łatwość modyfikacji Ograniczona dokładność Łatwość powielenia Zniekształcenia wprowadzane przez przetworniki Mała powierzchnia zajmowana na płytce PCB Wyższa cena i niska opłacalność przy prostych systemach Duża odporność na czynniki zewnętrzne Większy pobór mocy w niektórych przypadkach
Wprowadzenie – pełny tor przetwarzania DSP opcjonalne sygnały sterujące dB f dB f DSP LP ADC DAC LP Analogowy sygnał wejściowy Analogowy filtr anty-aliasingowy Przetwornik analogowo-cyfrowy Cyfrowe przetwarzanie sygnału Przetwornik cyfrowo-analogowy Analogowy filtr rekonstrukcyjny
Próbkowanie i kwantyzacja sygnału Sygnał ciągły Sygnał dyskretny Sygnał cyfrowy xc(nT) 3 2 kwantyzacja 1 1 2 3 n T próbkowanie (sampling)
Twierdzenie o próbkowaniu Whittakera-Nyquista-Kotielnikova-Shannona: Jeśli sygnał ciągły nie posiada składowych widma o częstotliwości równej i większej niż B, to może on zostać wiernie odtworzony z ciągu jego próbek tworzących sygnał dyskretny, o ile próbki te zostały pobrane w odstępach czasowych nie większych niż 1/(2B). Częstotliwość Nyquista: Maksymalna częstotliwość składowa sygnału która może zostać odtworzona bez zniekształceń po próbkowaniu fN=fs/2
Przykład: próbkowanie dźwięku Zakres słyszalny przez człowieka: 20Hz – 20kHz Typowe częstotliwości próbkowania 44.1 kHz (Audio CD) – daje fN= 22.05 kHz Dlaczego stosuje się też 88.2 kHz lub 192kHz? (zniekształcenia harmoniczne po użyciu filtrów) 7
Aliasing Błędna rejestracja sygnałów o wysokiej częstotliwości jako sygnały o niskiej częstotliwości. Spowodowane jest to zbyt niską częstotliwością próbkowania. Przykłady aliasingu: * sinus 1kHz – 7kHz * próbkowanie 8kHz * Piersi – Bałkanica * próbkowanie 4410kHz * j.w. * Porównanie z oryginałem i filtrem LP 2205 kHz
Kwantyzacja 2Q Q Q Q/2 -Q/2 -Q -2Q 100 200 300 400 500 600 700
Kwantyzacja - głębia bitowa Ilość liczb do zapisania na n bitach = 2n: 1 bit = 2 liczby (maks 1) 2 bity = 4 liczby (maks 11=3) 3 bity = 8 liczb (maks 111 = 7) 4 bity = 16 liczb (maks 111 = 15) itd. Każdy dodatkowy bit to 6dB zakresu sygnału. Przejście między głębią 8-bitową a 4-bitową Przykład dla głębi 16,8,4 i 2 bitowej (2s na każdą głębię)
Głębia bitowa Zakres słyszalnych dźwięków 0dB do 120dB 120/6 20 bitów Główne standardy kwantyzacji to: 16 bitów (96dB) i 24 bity (144dB) 16 bitów wystarcza bo wykorzystujemy Dithering 11
Dithering Randomizacja błędu kwantyzacyjnego. Eliminuje harmoniczne zakłócenia w zamian wprowadzając równomierny szum. Np. 2.7 – możemy: przyciąć (zawsze 2), zaokrąglić (zawsze 3), ditherować (losowo 30% przyciąć i 70% zaokrąglić w górę)
Pytania z kwantyzacji i aliasingu Czemu służy filtr dolnoprzepustowy na wejściu przetwornika ADC? Standard audio CD dlaczego 16bitów i 44100Hz, Dlaczego w telefonii używa się próbkowania 8000Hz? Kiedy zjawisko aliasingu najbardziej słychać w dźwięku?
Dyskretna transformata Fourier’a Joseph Fourier (1768-1830) Genialny fizyk i matematyk. Twórca Szeregu Fouriera i Analizy Fourierowskiej.
Sin i cos jako wektory bazowe Sygnały okresowe (lub wycinki dowolnego sygnału) spełniające odpowiednie warunki (np.. ciągłości i ograniczoności) możemy przedstawić jako kombinację sinusów i cosinusów.
Szereg Fouriera gdzie: tzw. pulsacja podstawowa Sposób wyliczenia współczynników zaproponowany przez Fouriera (iloczyny skalarne funkcji bazowych i funkcji rozwijanej w szereg) 16
Dyskretne Przekształcenie Fouriera (DFT) Sygnał okresowy x(t) jest próbkowany N razy w czasie jego okresu T , tj. T=Nt . Otrzymywany jest sygnał dyskretny x(n) o okresie N: x(n) x(t) t T t 1 2 N-1 Nt
Dyskretne Przekształcenie Fouriera (DFT) Najmniejsza częstotliwość szeregu Fouriera (tzw. częstotliwość podstawowa) wynosi: Częstotliwości kolejnych k-tych harmonicznych analizy: x(t) fo=1/T=1/(Nt) T t N-1 1 2 2fo Nt 18
Dyskretne Przekształcenie Fouriera (DFT) DFT proste: indeks próbki w czasie k = 0, 1, 2, …, N-1 DFT odwrotne: numer harmonicznej n = 0, 1, 2, …, N-1
DFT przykład N=4 ? Wynik DFT należy dodatkowo podzielić przez liczbę próbek aby otrzymać znormalizowaną amplitudę danej harmonicznej.
DFT przykład N=4 Wynik DFT należy dodatkowo podzielić przez liczbę próbek aby otrzymać znormalizowaną amplitudę danej harmonicznej.
Filtry cyfrowe – SOI i NOI Filtry dzielimy na: filtry o skończonej odpowiedzi impulsowej (SOI/FIR) tzw. filtry nierekursywne filtry o nieskończonej odpowiedzi impulsowej (NOI/IIR) tzw. filtry rekursywne 22
Dlaczego projektować filtr? Nie wystarczy zrobić DFT sygnału, przemnożyć widmo i zrobić odwrotne DFT?
Dlaczego projektować filtr? Nie wystarczy zrobić DFT sygnału, przemnożyć widmo i zrobić odwrotne DFT? * Sygnał dźwięku próbkowany 44kHz ; * 1s sygnału to 44000 próbek ; * Pełne widmo (1Hz do 44kHz) to 44000 prążków do przemnożenia i policzenia odwrotnego DFT (dodatkowo 1s opóźnienia)
Równanie różnicowe filtru Jeżeli wszystkie współczynniki a(n) są zerowe to równanie różnicowe opisuje filtr cyfrowy SOI, w przeciwnym przypadku filtr NOI 25
Projektowanie filtru SOI h(n) – odpowiedź impulsowa x(n) y(n) y(n) = x(n) h(n) Dla filtru SOI współczynniki filtru = jego odpowiedź impulsowa!
Metody projektowania filtrów SOI metoda okien czasowych – skracamy nieskończoną odpowiedź impulsową filtru poprzez splot ze skończonym oknem metody aproksymacji – próbkowanie widma z niższą rozdzielczością, nadając różne wagi prążkom, w celu przybliżenia kształtu widma (często iteracyjnie)
Projektowanie filtrów SOI metodą okien czasowych Chcemy zaprojektować idealny filtr dolnoprzepustowy. Otrzymujemy nierealizowalną, nieskończoną w czasie charakterystykę odpowiedzi impulsowej: A() 0 Należy ograniczyć czas trwania tej odpowiedzi. 28
Projektowanie filtrów SOI metodą okien czasowych Zastosowanie okna czasowego ograniczającego czas trwania tej odpowiedzi pozwala uzyskać filtr realizowalny fizycznie. Przykład: dla filtru LP o f0 = 0.4*fmax i odpowiedzi impulsowej ograniczonej do 51 próbek: b=0.4*sinc(0.4*(-25:25)); uzyskuje się charakterystykę: [H,f] = freqz(b,1,512,2); plot(f,abs(H)),grid; 29
Projektowanie filtrów SOI metodą okien czasowych 0.2 0.4 0.6 0.8 1 1.2 1.4 tzw. efekt Gibbsa ~9% amplitudy impulsu f Efekt Gibbsa – charakterystyczny wygląd aproksymacji funkcji szeregiem Fouriera w punktach nieciągłości. Można go zredukować stosując zamiast okna prostokątnego wycinającego odpowiedź impulsową, okno o kształcie podobnym do funkcji Gaussa, np. okno Hamminga 30
Projektowanie filtrów SOI metodą okien czasowych Okno Hamminga %MATLAB b=b.*hamming(51)’; [H,f]=freqz(b,1,512,2); plot(f,abs(H)),grid f rząd filtru 31
Projektowanie filtrów SOI metodą okien czasowych Minimalizacja efektu Gibbsa dzięki zastosowaniu okna Hamminga f W programie Matlab opisaną procedurę projektowania filtrów implementuje instrukcja syntezy filtru FIR ‘fir1’ 32
Projektowanie filtrów NOI 33
Projektowanie filtrów NOI Metoda bezpośrednia - aproksymacyjna: % MATLAB % [b,a]=yulewalk(n,f,m) % n – rząd filtru % f – próbki char. częstotl. z zakresu <0,1> % m – dyskretne częstotl. z zakresu <0,1> f = [0 0.6 0.6 1]; m = [1 1 0 0]; [b,a] = yulewalk(8,f,m); [h,w] = freqz(b,a,128); plot(f,m,w/pi,abs(h),'--') Nieliniowa faza! Zobacz też ‘zplane(b,a)’ 34
Projektowanie filtrów NOI Metoda niezmienności odpowiedzi impulsowej: Wyznacz odpowiedzi impulsowe tych filtrów % MATLAB %dolnoprzepustowy Butterwotha [b,a]=butter(5,0.4) %pasmowoprzepustowy Czebyszewa typu I [b,a]=cheby1(4,1,[.4 .7]) %górnoprzepustowy Czebyszewa typu II [b,a]=cheby2(6,60,.8,’high’) %pasmowozaporowy eliptyczny [b,a] = ellip(3,1,60,[.4 .7],’stop’); 35
Porównanie filtrów SOI i NOI z definicji stabilne łatwe projektowanie łatwo zapewnić liniową fazę uzyskanie stromej charakterystyki wymaga dużego rzędu filtru skończoną dokładność reprezentacji współczynników filtru nie jest dokuczliwa mogą być niestabilne bardziej złożone projektowanie nieliniowa faza możliwość uzyskiwania bardzo stromej charakterystyki przy niskim rzędzie filtru problemy implementacyjne z uwagi na skończoną dokładność reprezentacji współczynników filtru 36
Trzy główne typy korelacji: Splot Korelacja wzajemna Autokorelacja wikipedia.org
Korelacja wzajemna określanie stopnia podobieństwa sygnałów wyszukanie znanej sekwencji w sygnale rozpoznawanie wzorców określanie kierunku źródła dźwięku miara jakości akustyki sal koncertowych
Autokorelacja wykrycie okresowości w sygnale odszumianie sygnału pomiar wysokości tonu podstawowego detekcja tempa/rytmu piosenki
Układy cyfrowe do DSP Mikrokontroler Procesor sygnałowy Procesor graficzny Zalety Tani Energooszczędny Mnogość peryferiów wewnętrznych, Autonomiczność Wydajny rdzeń potokowa obsługa, instrukcji Rozbudowany moduł MAC Wiele mniej rozbudowanych rdzeni Najwyższa wydajność przy obliczeniach na macierzach Wady Mało wydajny rdzeń (jedna operacja naraz, liczby int) Na ogół brak wsparcia dla operacji DSP Stosunkowo drogi Wymaga dodatkowych elementów (RAM, Flash) Słabo rozbudowana część analogowa Wysoka cena Duży pobór mocy Trudne do implementacji w systemach wbudowanych Zastosowanie Kontrola i nadzór nad innymi urządzeniami Potokowe przetwarzanie sygnałów w czasie rzeczywistym Przetwarzanie obrazów i wielowymiarowych macierzy
Implementacja sprzętowa - procesory sygnałowe Jak implementować sprzętowo DSP? -używając procesorów sygnałowych Czemu procesory sygnałowe? -specyficzna architektura rdzenia Po co implementować? -mniejsze zużycie energii, niższa cena
Procesor sygnałowy Przystosowany do potokowego przetwarzania danych: mnogość szeregowych interfejsów komunikacyjnych, zwielokrotnione bloki ALU rdzenia dla zrównoleglenia, przetwarzania rozbudowany blok MAC (Multiply And Accumulate) blok do operacji na liczbach zmiennoprzecinkowych wysoka częstotliwość taktowania
Procesor sygnałowy - rdzeń Rdzeń procesora TMS320C6713: 2 bloki mogące wykonywać te same operacje, Każdy blok posiada 4 różne jednostki: D – operacje transferu i adresowania danych; M – układ MAC S – operacje arytmetyczno-logiczne L – operacje logiczne w tym przesunięcia bitowe. możliwość wykonania do 8 równoległych mnożeń z akumulacją. Maksymalna częstotliwość - 225MHz
Procesor sygnałowy – pozostałe peryferia EMIF – kontroler obsługi zewnętrznych pamięci McASP – wielokanałowy nadajnik/odbiornik do przesyłu danych w standardzie audio. McBSP – buforowany wielokanałowy nadajnik/odbionik. Może obsługiwać wiele różnych magistrali szeregowych. I2C – kontroler magistrali zgodnej z I2C. Timer – 2 licznik 32-bitowe GPIO – 16 wyprowadzeń wejścia/wyjścia ogólnego użytku HPI – obsługa równoległego interfejsu Host - Port
Pytania? ?
Dziękuję za uwagę