La transformation de Fourier discrète (finie en fait)
peut s'effectuer via l'algorithme de FFT. L'instruction
MATLAB fft permet d'effectuer une transformation
de Fourier directe, et l'instruction ifft
effectue des transformations de Fourier inverses.
L'instruction fftshift permet de transformer
la sortie de fft de sorte à replacer les fréquences
négatives avant les fréquences positives. Elle est surtout utile
pour visualiser une transformée de Fourier, mais d'un usage plus
complexe à l'intérieur de calculs. On pourra par exemple essayer la suite
d'instructions suivante
x = randn(256,1);
xchap = fft(x);
plot(abs(xchap));
axis tight; grid;
plot(fftshift(abs(xchap)));
axis tight; grid;
qui produit un résultat du type de celui représenté en figure 1.
Figure 1:
Transformée de Fourier d'un signal pseudo-aléatoire, sans et avec
fftshift.
|
- Ecrire une fonction prenant en entrée un signal numérique, calculant sa
transformée de Fourier et son spectre (le module carré de la transformée
de Fourier) et représentant celui-ci graphiquement.
- Ecrire une fonction passebas.m effectuant un filtrage passe-bas
idéal (par multiplication point par point par l'indicatrice du domaine
fréquentiel considéré). La fonction prendra en entrée le signal, et la fréquence
de coupure, et retournera en sortie le signal filtré.
- Utiliser la fonction précédente pour écrire une fonction passehaut.m
qui effectue un filtrage passe-haut idéal.
Attention: si le signal d'entrée est à valeurs réelles, le signal filtré
doit être à valeurs réelles lui aussi. Vérifier.
Bruno Torresani
2009-02-18