Transcript Audio DSP

Cyfrowe przetwarzanie sygnałów

mgr inż. Adam Łutkowski

[email protected]

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