TP de filtrage numérique
Étude de cas : TP de filtrage numérique. Recherche parmi 300 000+ dissertationsPar celialola • 5 Septembre 2017 • Étude de cas • 1 015 Mots (5 Pages) • 1 417 Vues
- But de TP :
- Utilisation des différentes fenêtres rectangulaire, hanning, Hamming et Blackman.
- Voir la différence entre les différentes fenêtres.
- Exemple d’utilisation de la FFT sous Matlab :
Clc ; clear all; close all; N=100; f0=1000;Fe=8000;Te=1/Fe; n=0:1:N-1; x=sin(2*pi*f0*Te); t=Te*[0:1:N-1]; subplot(2,2,1);plot(t,x,'gx:');grid; y=fft(x); axe_FF=Fe*(0:1:N-1-(1/N)); subplot(2,2,2);plot(axe_FF,abs(y/N),'b.:');grid; title('transformée de fourier discrète par FFT du signal entre 0 et fe') xlabel('fréquence');ylabel('Module du spectre'); y_dec=fftshift(y); axe_freq=Fe*(-1/2:1/N:1/2-(1/N)); subplot(2,2,3);plot(axe_freq,abs(y_dec:N),'b.:');grid; title('transformée de fourier discrète par FFT du signal entre -fe/2 et fe/2') xlabel('fréquence');ylabel('Module du spectre'); %FFT inverse% FFT_INV=ifft(y); subplot(2,2,4);plot(t,FFT_INV,'bx:');grid; title('transformée de fourier discrète inverse du signal N=100') xlabel('temps');ylabel('amplitude'); |
[pic 1]
- Programmes à réaliser:
- Calcul, affichage et visualisation de la TFD pour NF=4 puis NF=32 pour x(n) :
x(n)= [1 0 0 1]
1-Pour NF=4 :
Calcul de la TFD :
[pic 2]
[pic 3]
[pic 4]
[pic 5]
[pic 6]
[pic 7]
[pic 8]
[pic 9]
[pic 10]
[pic 11]
[pic 12][pic 13][pic 14]
Programme pour afficher et visualiser la TFD de x(n) pour NF=4 et NF=32 :
N=4;Fe=1;Te=1/Fe; n=Te*(0:1:N-1); x=[ones(1,1) zeros(1,2) ones(1,1)]; subplot(2,1,1);stem(n,abs(x),'b.');grid; title('signal x(n)=[1 0 0 1] à generer') NF=4;y=fft(x,NF);y_center=fftshift(y); subplot(2,1,2);axe_freq=Fe*(-1/2:1/NF:1/2-(1/NF)); plot(axe_freq,abs(y_center/N),'b.:');grid; hold on NF=32;y=fft(x,NF);y_center=fftshift(y); subplot(2,1,2);axe_freq=Fe*(-1/2:1/NF:1/2-(1/NF)); plot(axe_freq,abs(y_center/N),'r.:');grid; title('TFD du signal x(n)=[1 0 0 1] pour NF=4 et NF=32') |
[pic 15]
Fig.1 : signal x(n)= [1 0 0 1] à générer.
[pic 16]
Fig.2 : TFD du signal x(n)= [1 0 0 1] pour NF=4 et NF=32.
Commentaire : Plus on augmente le nombre d’échantillons NF plus on aura un signal plus précis.
- TFD d’une porte :
Programme :
clc;clear all; close all; N=6;Fe=1;Te=1/Fe;f0=0,2; n=Te*(1:N); x=ones(1,N); subplot(2,1,1); stem(n,abs(x),'bx:');grid; NF=6;y=fft(x,NF);y_dec=fftshift(y); subplot(2,1,2); axe_freq=Fe*(-1/2:1/NF:1/2-(1/NF)); plot(axe_freq,abs(y_dec/N),'r.:');grid; title('La TFD par FFT du signal x'); |
Visualisation de la TFD :
[pic 17]
Fig.3 : signal x(n) d’une porte pour NF=6. [pic 18]
Fig.4 : TFD du signal x(n) d’une porte pour NF=6.
-Explication par un dessin le rôle de fftshift :
. Le rôle de la ‘fftshift’ par un dessin :
[pic 19][pic 20][pic 21][pic 22]
[pic 23][pic 24][pic 25][pic 26]
fftshift[pic 27][pic 28][pic 29][pic 30][pic 31]
[pic 32][pic 33][pic 34][pic 35][pic 36]
Fig.5: Dessin montrant le rôle de la fonction ‘fftshift’.
-Calculer de la TFD théorique :
N=6
[pic 37]
[pic 38]
[pic 39]
[pic 40]
[pic 41]
[pic 42]
[pic 43]
[pic 44]
[pic 45]
Comparaison :
La TFD théorique est la même que celle-ci qu’on a obtenue par ce programme sauf qu’elle est diviser sur N=6.
EXP : X(0) théorique=6= X(0) pratique[pic 46] |
-Pour NF=12 :
[pic 47]
Fig.6: TFD du signal x(n) d’une porte pour NF=12.
-NF=24 :
[pic 48]
Fig.7 : TFD du signal x(n) d’une porte pour NF=24.
-NF=128
[pic 49]
Fig.8 : TFD du signal x(n) d’une porte pour NF=128.
Commentaire :
Quand on augmente le NF on aura une très bonne précision de notre signal TFD.
-Vérification de la conservation d’énergie :
[pic 50]
Programme :
energie1=sum(x.^2); energie2=(1/NF)*sum(abs(y).^2); |
[pic 51]
Fig.7 :verification de la conservation d’énergie .
...