ps curs 3 - andrei.clubcisco.roandrei.clubcisco.ro/cursuri/f/f-sym/4ps/3 transformata fourier... ·...
TRANSCRIPT
Procesarea Semnalelor
Cursul 3Cursul 3
Sumar
• Introducere
• Transformata Fourier Discreta
• Aplicatii
• Rezultate demonstrative
Cursul 3Cursul 3
Intuitie
• Sa se reprezinte un esantion finit de semnal intr-un spatiu cu
suficient de multe dimensiuni, spatiu din care sa se poata
reveni inapoi in dimensiunea timp.reveni inapoi in dimensiunea timp.
• Fiecare dimensiune sa corespunda unei frecvente.
Cursul 3Cursul 3
Intuitie
• Oricare 2 dimensiuni sa fie ortogonale:
� daca in semnal exista frecventa x, acest lucru sa nu implice automat
∀ x≠y,existenta altei frecvente y, ∀ x≠y,
� “daca exista x atunci exista y” sa fie relatie data doar de sursa de
semnal, nu si de geometria spatiului.
• Spatiul astfel construit se numeste DOMENIUL DE FRECVENTA
AL SEMNALELOR.
Cursul 3Cursul 3
De ce domeniu cu axe ortogonale? Motive
in plus• Ca sa se poata manipula spectrul de frecventa al semnalelor la
un nivel cat mai fin, fara alterarea altor componente ale
acestuia. Exemple:acestuia. Exemple:
� Filtrarea semnalului inseamna reducerea coordonatelor semnalului la
0 pe axele frecventelor pe care vrem sa le filtram
� Amplificarea inseamna marirea coordonatelor pe anumite axe din
domeniul de frecventa
Cursul 3Cursul 3
Domeniul Frecventa
• Cate dimensiuni are ?
– Teoretic are un numar infinit de dimensiuni.– Teoretic are un numar infinit de dimensiuni.
Exemplu:
axa 1: 1 Hz
axa 2: 2 Hz
…. axa n: n Hz, n∈ N
SAU
axa 1: 0.5 Hz, axa 2: 1 Hz, axa 3: 1.5 Hz, ...
Cursul 3Cursul 3
In realitate...
• Alegem subspatii ale domeniului de frecventa
• Alegem cate o axa pentru fiecare frecventa care ne
intereseaza. De obicei alegem axele frecventelor intregi
exprimate in Hz
• Frecventele (axele) le alegem in functie de:
• rezolutia la care vrem sa procesam semnalul
• frecventa maxima din semnal fNCursul 3Cursul 3
Exemplu
• Avem un semnal cu fN = 1000 Hz.Putem alege:
� 1000 de axe de coordonate pentru frecvente de la 1 Hz la 1000 Hz din
Hz in HzHz in Hz
� un domeniu de frecvente de 2 ori mai fin: 2000 de dimensiuni,
rezolutie: 0.5 Hz
De obicei se foloseste rezolutia de 1 Hz indiferent de fN.
Spectru = coordonatele semnalului in domeniul de frecventa
ales.
Cursul 3Cursul 3
Coordonate in domeniul frecventa
• Am ales domeniul de frecventa unde vrem sa reprezentam
semnalul:
� Suficiente axe (Ex: din Hz in Hz)
� Axe alese corespunzator frecventelor de interes (in banda de frecventa
a semnalului)
• Cum calculam fiecare coordonata in spatiul ales ? Cautam
vectorul .
Spectrul de frecventa ({x[n]}) in domeniul de frecventa ales.
Cursul 3Cursul 3
Masurarea unei coordonate in
domeniul frecventa• = Calculul gradului de potrivire cu o functie cosinusoidala de o
anumita frecventa f.
Prin potrivire intelegem:• Prin potrivire intelegem:
• Proportionalitate:
�Daca xc(t) = 3*cos(2π*f*t), proportionalitatea fata de
cos(2π *f*t) este 3
�Factorul de proportionalitate se mai numeste
amplitudinea componentei de frecventa f Hz
• Defazaj:
�Daca xc(t) = 3*cos(2π*f*t + π/3), trebuie identificat π/3 –
defazajul componentei de frecventa fCursul 3Cursul 3
Coordonate in domeniul frecventa
• Proportionalitatea si defazajul lui xc(t) fata de cos(2πft) sunt 2
variabile independente.
• Idee (Fourier): sunt 2, deci sa le reprezentam ca un numar
complex X(f).
• Gasim X(f) pentru fiecare axa.
• Spectrul de frecventa = { X(f1), X(f2)…..X(fm)}Cursul 3Cursul 3
Transformata Fourier Discreta
• Principii
�Se trece din timp discret in domeniu discret de frecvente�Se trece din timp discret in domeniu discret de frecvente
�Pentru N esantioane ale unui semnal, TFD fixeaza domeniul
de frecvente: {0, 1/N, 2/N …. N-1/N}
�Usor de interpretat si utilizat in practica
�N dimensiuni => transformare inversabila
�Noi putem alege N astfel incat sa avem rezolutia dorita
�TFD diferita de DTFD, unde frecventele sunt un domeniu
continuu in [-π, π]
�TFD cel mai des folosita in practica in varianta FFT Cursul 3Cursul 3
Transformata Fourier Discreta
• Transformata Fourier Discreta:
�Masoara Re(X(f)) = potrivirea medie dintre x[n] si�Masoara Re(X(f)) = potrivirea medie dintre x[n] si
cos(2πfn). (medie inseamna intuitiv o suma peste x[k])
�Masoara Im(X(f)) = potrivirea medie dintre x[n] si
sin(2πfn)
�Din cele 2 rezulta amplitudinea si defazajul pentru
componenta X(f):
Amplitudine(f) = |X(f)|
Defazaj(f) = ϕ(f)Cursul 3Cursul 3
Transformata Fourier Discreta
Cu conventia:
Xk = X(fk) pentru frecventa fkXk = X(fk) pentru frecventa fk
Avem (Transformata Fourier Discreta):
unde N = numarul de esantioane
TFD rezolva si problema bijectiei: se aleg atatea coordonate cate
esantioane avem in semnalul discret x[k] , k=0… N-1, ca sa
putem reveni in domeniul timp.Cursul 3Cursul 3
21
0
0,....., 1iN kn
Nk n
n
X x e k Nπ− −
=
= = −∑
Transformata Fourier Discreta
• Inversabila
Cursul 3Cursul 3
Spectrul de frecventa al semnalelor
discrete
• Fie x[n] = x[0]….. x[N-1] un semnal finit esantionat la frecventa• Fie x[n] = x[0]….. x[N-1] un semnal finit esantionat la frecventa
fS esantioane/s.
• Fie {Xk} k=1…N-1 spectrul de frecventa calculat de DFT pentru
semnalul x[n].
Cursul 3Cursul 3
Spectrul de frecventa al semnalelor
discrete• Fourier: Transformam semnalul discret din timp in domeniul
frecventa.
• Pentru esantioane x[0]….x[N-1] numere reale, avem
proprietatea de simetrie a TFD:
=> Toata informatia de frecventa este redundanta dincolo de N/2
=> ca sa filtram frecventa k, anulam Xk si X(N-k)
Cursul 3Cursul 3
* , 0... 1K N kX X k N−= = −
Simetria TFD pentru semnale reale
Cursul 3Cursul 3
TFD si frecventele semnalului continuu
• Prin Xk intelegem coordonata semnalului in domeniul
frecventelor pentru axa k
• Axei k ii corespunde frecventa k/N esantioane/fereastra de
lungime N
• De ce ? X(k) = X(N+k);
� TFD periodica de perioada N pentru un N fixat
� e bine sa alegem N astfel incat sa corespunda unei secunde. N=
int(1/fs).
(La FFT se alege cea mai apropiata putere a lui 2 fata de int(1/fs))
Cursul 3Cursul 3
TFD si frecventele semnalului continuu
• Daca axei k ii corespunde frecventa k/N esantioane/fereastra
de lungime N, unde este corespondenta cu frecventele reale in
Hz din semnalul continuu ?Hz din semnalul continuu ?
• Sa nu uitam:
x[k] = xc(k/fs), unde fs = frecventa de esantionare
Cursul 3Cursul 3
TFD si frecventele semnalului continuu
• Componentei Xk a spectrului ii corespund k esantioane/
fereastra
• Daca o fereastra acopera N/fs secunde atunci Xk corespunde
frecventei
Cursul 3Cursul 3
Principii de calcul pentru TFD
• Deoarece DFT este simetrica fata de N/2 si
• Trebuie ca pana la indexul N/2 sa existe Xk astfel incat fk > fN
(cea mai mare frecventa din semnal)
• Principiul 1: Alegem N astfel incat sa aiba loc aceasta relatie
• Din spectrul {X[k]} – alegem k pentru frecventa care ne
intereseaza.
• “Precizia de localizare” depinde de N.Cursul 3Cursul 3
Precizia de reprezentare a DFT
• Pentru frecventa de esantionare fs si fereastra de N esantioane
rezolutia spectrului calculat cu DFT este:
• Principiul 2: Alegem N si fs astfel incat
∆f ≤ 1 Hz
Cursul 3Cursul 3
TFD si Teorema Nyquist
• Th. Nyquist stabileste cum esantionam ca sa nu pierdem
informatie spectrala.
• Dupa esantionare aplicam Transformata Fourier Discreta.
• Obtinem N/2 componente de frecventa datorita simetriei TFD,
de la 0 la fs/2 Hz. Respectand Th. Nyquist, TFD contine
informatia spectrala la o rezolutie dictata doar de N si fs.
Cursul 3Cursul 3
TFD Inversa
• TFD a asigurat maparea a N esantioane in N componente de
frecventa.
• Operatia de transformare din timp in domeniul frecventa este
inversabila doar daca domeniul frecventa are cel putin N axe.
• Astfel se revine din domeniul frecventa in domeniul finit de
timp – se refac x[0]…. x[N-1].
Cursul 3Cursul 3
TFD Inversa
• Dezavantaje: TFD si TFD Inversa au complexitate O(n^2)
• Pentru performanta se foloseste FFT
Cursul 3Cursul 3
Proprietati ale TFD
Periodicitatea
• Daca xn si Xk sunt perechi DFT in N puncte, atunci:• Daca xn si Xk sunt perechi DFT in N puncte, atunci:
• Xk+N =Xk , ∀ k ∈ Z
• xn + N = xn , ∀ n ∈ Z
Cursul 3Cursul 3
Proprietati ale TFD
LiniaritateaLiniaritatea
• Daca xn si Xk sunt perechi DFT in N puncte, atunci:
• Aceasta proprietate decurge direct din definitia transformatei
Fourier discrete directe.
Cursul 3Cursul 3
Proprietati ale TFD
Deplasarea si simetria circulara in timp
• Datorita proprietatii de periodicitate, transformata Fourier• Datorita proprietatii de periodicitate, transformata Fourier
discreta in N puncte a unei secvente x[n], de durata finita
este echivalenta cu transformata Fourier discreta in N puncte a
unei secvente periodice , de perioada N, obtinuta prin
repetarea periodica a lui x[n]
Cursul 3Cursul 3
[ ]px n
L N≤
Proprietati ale TFD
• Prin deplasarea lui cu k unitati spre dreapta (k>0), se
obtine secventa periodica
[ ]px n
• Secventa aperiodica de lungime finita
se obtine din secventa originala x[n] prin deplasare circulara.Cursul 3Cursul 3
Proprietati ale TFD
Cursul 3Cursul 3
Proprietati ale TFD
• Se observa ca este chiar x[n] deplasat circular cu doua unitati de timp,
unde sensul trigonometric a fost ales arbitrar drept directia pozitiva de
deplasare. Deplasarea circulara a unei secvente de lungime N este
'[ ]x n
deplasare. Deplasarea circulara a unei secvente de lungime N este
echivalenta cu deplasarea liniara a extensiei sale periodice, obtinute prin
repetarea periodica, cu perioada N, a secventei x[n], si invers.
• O secventa de lungime N este circular para daca este simetrica fata de
punctul 0 de pe cerc, adica
x[N − n] = x[n], 0 ≤ n ≤ N −1.
• O secventa de lungime N este circular impara daca este antisimetrica fata
de punctul 0 de pe cerc, adica
x[N − n] = −x[n], 0 ≤ n ≤ N −1.
Cursul 3Cursul 3
Aplicatii
• Pentru fiecare fereastra de N esantioane
– Aplica TFD– Aplica TFD
– Prelucrarea spectrului de frecventa
– TFD inversa
– Stocarea datelor la iesire
– Gliseaza fereastra
– Repeta pana cand se proceseaza intreg semnalul
Cursul 3Cursul 3
Aplicatii
• In etapa de procesare a spectrului:
• Filtrare in banda (trece-banda, stop-banda,trece-• Filtrare in banda (trece-banda, stop-banda,trece-
jos,trece-sus)
• Amplificare selectiva a frecventelor
• Aplicarea de bancuri de filtre
• Translatarea componentelor de frecventa pe axa
frecventelor
Cursul 3Cursul 3
Filtrarea vocii din muzica
Pentru fiecare secunda de melodie:
• Se aplica TFD
Se identifica benzile de frecventa ale vocii• Se identifica benzile de frecventa ale vocii
• Se anuleaza componentele Xk din aceste benzi sau se salveaza separat
(stop-banda)
• Se aplica TFD inversa
⇒ Filtrarea vocii din muzica necesita bancuri de filtre indexate temporal
⇒ Cod pentru voi: proiect SharpDevelop la
http://neuron.ro/PS/Proiecte/FiltrareDFT.zip
⇒ Merge pt .wavs la 12kHz (fs e hard-coded) Cursul 3Cursul 3
Rezultate demonstrative
• Semnal original:
http://neuron.ro/PS/wavs/wav4_12kHzMono.wavhttp://neuron.ro/PS/wavs/wav4_12kHzMono.wav
• Instrumentatia:
http://neuron.ro/PS/wavs/waveVoiceFilterOut.wav
• Componenta de voce filtrata:
http://neuron.ro/PS/wavs/semnalFiltrat.wav
Cursul 3Cursul 3
Rezultate demonstrative
• Abordarea 2:
• In secundele fara voce se identifica benzile de frecventa• In secundele fara voce se identifica benzile de frecventa
ale semnalului
• Se aplica filtre trece-banda calculate pentru toate
portiunile de melodie asemanatoare in care exista si
voce
• Procesul se repeta pentru fiecare portiune in care
instrumentatia este diferita
• Indiferent de abordare, este nevoie de o metoda mai
rapida decat DFT si IDFT, in speta FFT si IFFT Cursul 3Cursul 3