Académique Documents
Professionnel Documents
Culture Documents
Exercices
I. Usage de la FFT
1
x1(t) = 10 cos[2π(500)t] ;
x2(t) = 10 cos[2π(1200)t + 0.25 π] ;
x3(t) = 10 cos[2π(1800)t+ 0.5 π] ;
Afficher les trois signaux pour une durée d’environ 0.01 seconde. Chaque signal doit être
échantillonné à une fréquence de 8000 Hz ; vérifier que la phase et l’amplitude de chacun
des trois signaux est correcte (correspond à la formule mathématique). Indication: utiliser
x(0) et max(x) dans Matlab. À quelles notes de musique la plus proche correspondent
ces trois fréquences?
b. Créer un programme qui génère la somme de trois cosinusoïdes en additionnant les trois
cosinusoïdes générées
x(t) + x1(t) + x2 (t) + x3 (t)
Afficher x(t) sur la même période de temps utilisée en a), en utilisant la commande:
subplot(2,1,1);plot(t,x);
Quel est la fréquence d’échantillonnage de x(t)?
c. Utiliser fft pour calculer les coefficients de la transformée de Fourier discrète du signal
précédent; afficher et examiner le spectre du signal x(n) (composantes fréquentielles) en
incluant les légendes. Quelles fréquences apparaissent sur le spectre fréquentiel ? Est-ce que
toutes ces fréquences existent dans le signal temporel non échantillonné? D’où viennent les
nouvelles fréquences? De façon rigoureuse, la bande de fréquence comprise entre fs/2 et fs
devrait se retrouver où dans le spectre fréquentiel?
d. Écouter et comparer les signaux générés en exécutant le code suivant:
sound(x1/max(abs(x1)), 8000);pause
sound(x2/max(abs(x2)), 8000);pause
sound(x3/max(abs(x3)), 8000);pause
sound(x/max(abs(x)), 8000);
3
II. Filtrage avec la FFT
Un signal biomédical est corrompu avec un signal sinusoïdal de bruit de fréquence 60 Hz. On veut
éliminer le bruit du signal capté avant l’enregistrement de ce dernier. La procédure suivie est
On sait que :
- Le signal de départ ne possède pas de composantes de fréquence supérieure à 125Hz
- On veut obtenir un spectre de fréquences avec une résolution minimale de 1 Hz
4
Exemple d’utilisation de la TFR avec Matlab :
% On commence par générer un axe des temps de 1024 points et un axe des
% fréquence de 512 points (1024/2). Par la suite, on va générer 4 cycles d'un
% signal de période 1 ms, ce qui implique une période d'échantillonnage
% de .001/256 ou encore une fréquence d'échantillonnage de 256 kHz. L'axe
% des fréquence consiste alors en 512 points qui vont de 0 à 128 kHz (w0=2pi/Te).
S1=fft(s1);
SS1=abs(S1);
subplot(211), plot(t,s1), axis([0 4 -0.5 1]), title('signal');
subplot(212), plot(f(1:20),SS1(1:20)), title('Spectre d''amplitude');
pause
phi=s1.*cos(40*pi*t);
PHI=fft(phi);
SPHI=abs(PHI);
subplot(211), plot(t,phi), axis([0 4 -1 1]), title('signal modulé par une porteuse a 20 kHz');
subplot(212), plot(f,SPHI(1:512)), axis([0 128 0 max(SPHI)]), title('Spectre d''amplitude');
pause
phi1=phi.*cos(40*pi*t);
PHI1=fft(phi1);
SPHI1=abs(PHI1);
subplot(211), plot(t,phi1), axis([0 4 -1 1]), title('signal demodulé avant filtrage');
subplot(212), plot(f,SPHI1(1:512)), axis([0 128 0 max(SPHI1)]), title('Spectre d''amplitude');
pause