TP de filtrage numérique
Par Raze • 22 Octobre 2018 • 983 Mots (4 Pages) • 584 Vues
...
-Illustration de décalage fréquentiel de la TF en calculant (théoriquement) et en représentant le module de la TFD x(n)* avec f0=0,2Hz :[pic 52]
1-calcul théorique :
[pic 53]
[pic 54]
[pic 55]
2-Programme de la représentation du module de la TFD x(n)* avec f0=0,2Hz :[pic 56]
clc;clear all; close all;
N=6;Fe=1;Te=1/Fe;f0=0.2;
n=Te*(1:N);
x=ones(1,N);
NF=128;y=fft(x,NF);y_dec=fftshift(y);
subplot(2,1,1);
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');
z=x.*exp(2*pi*j*f0*n);
k=fft(z,NF);w=fftshift(k);subplot(2,1,2);plot(axe_freq,abs(w),'b.:');grid;
title('La TFD par FFT du signal décalé');
[pic 57]
Fig.9 : TFD du signal x(n) et la TFD du signal décalé pour NF=128.
-Mesure de la largeur ∆f du lobe principal à partir de sa TF (signal original) :
On prend NF=128 :
[pic 58]
Fig.10 : Figure qui montre comment calculer ∆f .
∆f=0 .1641-(-0.1641)=0.3282.
La taille est en fonction de N pas en fonction de NF.
Prenons NF=10 au lieu de NF=6 et on remarque que la taille de ∆f change.
[pic 59]
Fig.11 : Figure qui montre changement de ∆f pour N=10.
-Affichage de la transformée de Fourier en décibels N=6 :
[pic 60]
Fig.12: La TFD de x(n) en décibel.
Vérification qu’on obtient environ 13db entre le max du lobe principal et le max du lobe secondaire pour tout N (on prend N=10 et N=40) :
-N=10 :
[pic 61]
Fig.13: obtention de 13db entre le max du lobe principal et le max du lobe secondaire pour N=10.
[pic 62]
Fig.14 : obtention de 13.97 dB entre le max du lobe principal et le max du lobe secondaire pour N=40.
- TFD d’un signal illimité et Effet du fenêtrage :
-On détermine la TFTD de s (n) =A0:[pic 63]
[pic 64]
[pic 65]
[pic 66]
[pic 67]
-On détermine la TFTD sur N :
On a: s (n) =A0.[pic 68]
[pic 69]
[pic 70]
[pic 71]
[pic 72]
[pic 73]
[pic 74]
[pic 75]
Quand on détermine la TFTD sur N on obtient un sinus cardinal.
-On calcul la TFD comme illustré par le programme suivant :
clc;clear all;close all;
N=50;NF=1024;Fe=8000;Te=1/Fe;f0=1680;
n=(0:N-1)*Te;x1=exp(2*pi*j*f0*n);
y=fft(x,NF);yy=fftshift(y/N);axe_f=Fe*(-1/2:1/NF:1/2-(1/NF));
plot(y);
plot(axe_f,abs(yy));title('tfd fenetre rectangulaire');grid;hold on;
[pic 76]
Fig.15:TFD de la fenetre rectangulaire pour f0=1680.
-On tronque le signal s(n) sur un nombre de points N, cela veut dire qu’on multiplier notre signal par une impulsion rectangulaire de largeur N et d’amplitude 1 on appelle ça le fenêtrage.
-On remplace f0 par 1600 :
[pic 77]
Fig.16:TFD de la fenetre rectangulaire pour f0=1600.
Quand on change f0 pour une valeur de 1600 on obtiendra un lobe principale qui sera max à f0=1600 et ce lobe sera centré à cette valeur et pas de lobes secondaires .
-On remet f0 à 1680 on rajoute au programme les lignes suivantes :
fen=hanning(N);
xx=x.*fen';
y=fft(xx,NF);
yy=fftshift(y/N);
%subplot(2,1,2);
plot(axe_f,(abs(yy)),'r');title('fenetre hanning');grid;
[pic 78]
Fig.17:TFD de la fenetre Hanning.
D’après la figure on constate une diminution importante des lobes secondaires.
-Calcul de la largeur du lobe principale pour chaque fénetre en fonction de fe et N :
[pic 79]
Fig.18:Calcul de ∆f de la fenetre rectangle.
∆f=1758-1438=320
[pic 80]
Fig.19:Calcul de ∆f de la fenetre Hanning.
∆f=2000-1367=633
...