Fast Fourier Transform (FFT ) est une technique fréquemment utilisée en traitement du signal . Une transformée de Fourier correspond approximativement à une fonction continue comme la somme de fonctions périodiques ( sinus et cosinus ) . FFT fait la même chose pour les signaux discrets - série de points de données plutôt que d'une fonction définie en continu . FFT vous permet d'identifier les composants périodiques dans votre signal discret . Vous pourriez avoir besoin d'identifier un signal périodique enterré sous le bruit aléatoire , ou d'analyser un signal avec plusieurs sources sous-jacentes périodiques. MATLAB comprend une mise en œuvre intégrée de la FFT pour vous aider à le faire. Choses que vous devez
MATLAB vecteur contenant les données signal discret
Afficher plus Instructions
Effectuez la FFT
1
calculer la longueur (nombre d'éléments ) du vecteur contenant vos données. Par exemple, si vos données sont stockées dans un vecteur appelé " D ", tapez " L = longueur ( d); » à la ligne de commande MATLAB sans guillemets . L va maintenant contenir le nombre d'éléments dans d
2
calculer la puissance de 2 qui est supérieure ou égale à L, en tapant ". P = nextpow2 (L ),« à la commande MATLAB ligne sans guillemets. Si L = 1000 , par exemple , p aura 10, parce que 2 ^ 10 = 1024
3
Effectuez la FFT en tapant " Y = fft (d, 2 ^ p) . ; »à la ligne de commande MATLAB sans guillemets . Cette commande ajoute des zéros à d pour obtenir un vecteur de longueur 2 ^ p , puis effectue FFT sur la 2 ^ vecteur p- élément. Les zéros annexés n'affectent pas le résultat de la FFT , mais FFT est plus rapide avec un vecteur dont la longueur est une puissance de 2
Le vecteur Y résultant donne les coefficients des fonctions sinus et cosinus à des fréquences allant de - . ( 2 ^ p /2)) à 1 + (2 ^ p /2 ) (en supposant que d a été échantillonné à 1 échantillon par seconde , ou 1 Hz ) . Ce sont les fonctions sinus et cosinus qui s'ajoutent au signal d 'origine. Y est complexe ; ses parties réelles sont les coefficients des fonctions sinus et ses parties imaginaires sont les coefficients des fonctions cosinus
4
ne conserver que les pièces uniques de Y en tapant " Y = Y . (1: ( (2 ^ p +1 ) /2) ) ; "sans les guillemets à la ligne de commande MATLAB. Cela est nécessaire parce que la sortie de la FFT est symétrique - c'est la seconde moitié du Y est simplement le complexe conjugué de la première moitié . Maintenant , Y donne les coefficients des fonctions sinus et cosinus à des fréquences de 0 à 1 + (2 ^ p /2 ) ) .
5
Divide Y par L /2 en tapant " Y = Y. /(L /2); »à la ligne de commande MATLAB sans guillemets . Cela est nécessaire parce que par défaut la sortie FFT de MATLAB est multiplié par un facteur de L /2 , de sorte qu'il sera plus grande si d est plus longue. En divisant par L /2 normalise la sortie FFT afin qu'il ne dépend pas de la longueur de d.
Terrain FFT résulte
6
Si D n'a pas été échantillonné à 1 Hz mais à une certaine fréquence " f ", les fréquences réelles représentées dans Y seront de 0 à f * (1 + (2 ^ p /2 ))) . Calculer un vecteur MATLAB contenant ces fréquences. Tout d'abord, définir la fréquence d'échantillonnage réelle dans une variable f . Si votre fréquence d'échantillonnage réelle est 0,5 Hz (1 échantillon toutes les 2 secondes ), vous tapez " f = 0.5; " à la ligne de commande MATLAB sans guillemets . Ensuite, tapez "Freq = f * (0: (1 + (2 ^ p /2 ))) . ) " À la ligne de commande MATLAB sans guillemets . Maintenant fréq contient les fréquences réelles représentées dans Y.
7
Obtenez l'amplitude de la composante de signal à chaque fréquence en tapant " Ya = abs ( Y) " . à la ligne de commande MATLAB sans guillemets .
8
Terrain le spectre d'amplitude du signal en tapant "complot (Freq , Ya ) " à la ligne de commande MATLAB sans guillemets .
< br > 9
obtenir la puissance de la composante de signal à chaque fréquence en tapant " Yp = Y. ^ 2 " à la ligne de commande MATLAB sans guillemets .
10
Terrain du spectre de puissance du signal en tapant " complot (Freq , Yp ) " à la ligne de commande MATLAB sans guillemets .