Transcript Audio DSP
Cyfrowe przetwarzanie sygnałów
mgr inż. Adam Łutkowski
p.211
Plan wykładu
• Wprowadzenie • Sygnał • Próbkowanie i kwantyzacja • Dyskretna transformata Fourier’a • Filtry cyfrowe • Implementacja sprzętowa – procesory sygnałowe 2
Wprowadzenie – zalety i wady DSP
Zalety
•
Łatwość modyfikacji
•
Łatwość powielenia
•
Mała powierzchnia zajmowana na płytce PCB
•Duża odporność na czynniki zewnętrzne
Wady
•Ograniczona dokładność •Zniekształcenia wprowadzane przez przetworniki •Wyższa cena i niska opłacalność przy prostych systemach •Większy pobór mocy w niektórych przypadkach 3
Wprowadzenie – pełny tor przetwarzania DSP
dB LP f Analogowy sygnał wejściowy Analogowy filtr anty aliasingowy ADC DSP opcjonalne sygnały sterujące DAC dB LP f Przetwornik analogowo cyfrowy Cyfrowe przetwarzanie sygnału Przetwornik cyfrowo analogowy Analogowy filtr rekonstrukcyjny 4
Próbkowanie i kwantyzacja sygnału
Sygnał ciągły próbkowanie Sygnał dyskretny kwantyzacja Sygnał cyfrowy
x c
(
nT
) 3 2 1 0 0 1 2 3
próbkowanie (sampling)
T n
5
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
f N =f s /2
6
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
f N = 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 8
Kwantyzacja
2Q Q
0 -
Q
-
2Q
0
Q
100 200 300 400 500 600 700
Q/2
-
Q/2
9
Kwantyzacja głębia bitowa
Ilość liczb do zapisania na n bitach = 2 n : 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.
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ę) Każdy dodatkowy bit to 6dB zakresu sygnału. 10
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ę) 12
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?
13
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.
e j
0
t
cos 0
t
j
sin 0
t
Szereg Fouriera
x
a
0
k
1
a k cos k
0
t
b k sin k
0
t
2
T a k b k a
0 1
T t T
0
x
dt
T
2
T
2
t T
0
x
cos
k
0
t dt
,
t T
0
x
sin
k
0
t dt
,
k
1 , 2 ,
k
1 , 2 , 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
czasie jego okresu
T
, tj.
T=N
t
razy w . Otrzymywany jest sygnał dyskretny
x
(
n
) o okresie
N
:
x
n
N
x
(
t
) 0 1 2
t N
t x
(
n
)
T t N-
1
Dyskretne Przekształcenie Fouriera (DFT)
Najmniejsza częstotliwość szeregu Fouriera (tzw. częstotliwość podstawowa) wynosi:
f
0 1
T
N
1
t
Częstotliwości kolejnych
k
-tych harmonicznych analizy:
x
(
t
) 0 1
kf
0
k T
k N
t
kf s N f o
=1/
T
=1/(
N
t
) 2
T N-
1
t N
t 2f o
18
Dyskretne Przekształcenie Fouriera (DFT)
DFT proste: indeks próbki w czasie
X
N n
1 0
x e
jk
2
N n k
= 0, 1, 2, …,
N
-1 DFT odwrotne:
x
1
N N k
1 0
X
numer harmonicznej
e jk
2
N n n
= 0, 1, 2, …,
N
-1
DFT przykład
X x
1 3 4 4
N n
1 0 3
x e
jk
2
N n N=
4
e j
cos
j
sin
X
k X X X
k k
k
0
N
1
3
x
1 2 3 ?
?
?
n
0 .....
.....
.....
3 2 3
e
?
j j j
2 0
n
4
x
1 3 4 4 12 Wynik DFT należy dodatkowo podzielić przez liczbę próbek aby otrzymać znormalizowaną amplitudę danej harmonicznej.
DFT przykład
X x
1 3 4 4
N n
1 0 3
x e
jk
2
N n N=
4
e j
cos
j
sin
X
k X X X
k k
k
0
N
1
3
x
1 2 3 ?
?
?
n
0 .....
.....
.....
3 2 3
e
j j j
2 0
n
4
x
1 3 4 4 12 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
s
kończonej
o
dpowiedzi
i
mpulsowej (
SOI/FIR
)
tzw. filtry nierekursywne
filtry o
n
ieskończonej
o
dpowiedzi
i
mpulsowej (
NOI/IIR
)
tzw. filtry rekursywne
1 0.8
0.6
0.4
0.2
0 0 1 0.8
0.6
0.4
0.2
0 0 5 5 10 10 15 15 20 20 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 do przemnożenia i policzenia odwrotnego DFT (dodatkowo 1s opóźnienia)
44000
prążków
Równanie różnicowe filtru
y
n M
1
b
k
n
1
n N
2
a
k
n
1
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
)
y k b
1
x k b
2
x k
1
b
3
x k
2 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 (często iteracyjnie) – próbkowanie widma z niższą rozdzielczością, nadając różne wagi prążkom, w celu przybliżenia kształtu widma
Projektowanie filtrów SOI metodą okien czasowych
Chcemy zaprojektować idealny filtr dolnoprzepustowy.
A
( ) Otrzymujemy nierealizowalną, nieskończoną w czasie charakterystykę odpowiedzi impulsowej:
h
1 2
0 0
e
j
n d
?
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
tzw. efekt Gibbsa ~9% amplitudy impulsu 1.4
1.2
1 0.8
0.6
0.4
0.2
0 0 0.2
0.4
0.6
0.8
1
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 1 0.8
0.6
%MATLAB b=b.*hamming(51)’; [H,f]=freqz(b,1,512,2); plot(f,abs(H)),grid
0.4
0.2
0 10 20 30 rząd filtru 40
f
50 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
10 5 0 -5 0 0.2
0.4
0.6
0.8
Normalized frequency (Nyquist == 1) 0 1 -10 -20 -30 0 0.2
0.4
0.6
0.8
Normalized frequency (Nyquist == 1) 33 1
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:
% MATLAB
Wyznacz odpowiedzi impulsowe tych filtrów
%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
SOI NOI
z definicji stabilne łatwe projektowanie mogą być niestabilne bardziej złożone projektowanie łatwo zapewnić liniową fazę nieliniowa faza uzyskanie stromej charakterystyki wymaga dużego rzędu filtru możliwość uzyskiwania bardzo stromej charakterystyki przy niskim rzędzie filtru skończoną dokładność reprezentacji współczynników filtru nie jest dokuczliwa 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
Zalety
Mikrokontroler
•Tani •Energooszczędny •Mnogość peryferiów wewnętrznych, •Autonomiczność
Procesor sygnałowy
•Wydajny rdzeń potokowa obsługa, instrukcji •Rozbudowany moduł MAC
Procesor graficzny
•Wiele mniej rozbudowanych rdzeni •Najwyższa wydajność przy obliczeniach na macierzach Wady Zastosowanie •Mało wydajny rdzeń (jedna operacja naraz, liczby int) •Na ogół brak wsparcia dla operacji DSP •Kontrola i nadzór nad innymi urządzeniami •Stosunkowo drogi •Wymaga dodatkowych elementów (RAM, Flash) •Słabo rozbudowana część analogowa •Potokowe przetwarzanie sygnałów w czasie rzeczywistym •Wysoka cena •Duży pobór mocy •Trudne do implementacji w systemach wbudowanych •Przetwarzanie obrazów i wielowymiarowych macierzy 40
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 41
Procesor sygnałowy
Przystosowany do potokowego przetwarzania danych: •mnogość szeregowych interfejsów komunikacyjnych, •zwielokrotnione bloki ALU rdzenia dla zrównoleglenia, przetwarzania •rozbudowany blok MAC (
M
ultiply •wysoka częstotliwość taktowania
A
nd
A
ccumulate) •blok do operacji na liczbach zmiennoprzecinkowych 42
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 43
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 I 2 C.
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 44
Pytania?
?
45
Dziękuję za uwagę
46