Fast Fourier Transform (FFT ) é uma técnica freqüentemente usada em processamento de sinais. Uma transformada de Fourier aproxima qualquer função contínua como a soma de funções periódicas ( senos e co-senos ) . FFT faz a mesma coisa para os sinais discretos - série de pontos de dados em vez de uma função contínua definida. FFT permite identificar componentes periódicas em seu sinal discreto . Pode ser necessário identificar um sinal periódico enterrado sob o ruído aleatório , ou analisar um sinal com várias fontes subjacentes periódicos diferentes. MATLAB inclui uma implementação interna de FFT para ajudá-lo a fazer isso . Coisas que você precisa
vetor MATLAB contendo dados discreto sinal
Show Mais instruções
Realize a FFT
1
Calcule o comprimento ( número de elementos) do vetor contendo seus dados. Por exemplo, se seus dados são armazenados em um vetor chamado "d ", digite " L = comprimento ( d )," na linha de comando MATLAB sem aspas . L agora irá conter o número de elementos em d
2
Calcule a potência de 2 que é maior ou igual a L, digitando . " P = nextpow2 (L); " no comando MATLAB linha sem aspas. . Se L = 1000, por exemplo , p será de 10 , porque 2 ^ 10 = 1024
3
Realize a FFT , digitando " Y = fft ( d, 2 ^ p ); " na linha de comando MATLAB sem aspas . Este comando adiciona zeros a d para obter um vetor de comprimento 2 ^ p e , em seguida, executa FFT na 2 ^ p- elemento do vetor. Os zeros acrescentados não afetam o resultado da FFT , mas FFT corre mais rápido , com um vetor cujo comprimento é uma potência de 2
O vetor resultante Y dá os coeficientes das funções seno e cosseno em freqüências que variam de - . ( 2 ^ p /2 ) ) para 1 + ( 2 ^ p /2 ) ( assumindo d foi amostrado a uma amostra por segundo , ou 1 Hz ) . Estas são as funções seno e cosseno que se somam ao sinal original d. Y é complexo , suas partes reais são os coeficientes das funções seno , e suas partes imaginárias são os coeficientes das funções cosseno
4
Mantenha apenas as partes únicas de Y , digitando " Y = Y . (1: ((2 ^ p +1) /2) ), " sem as aspas na linha de comando do MATLAB. Isto é necessário porque a saída de FFT é simétrica - isto é , a segunda metade de Y é simplesmente o conjugado complexo da primeira metade . Agora, Y dá os coeficientes das funções seno e cosseno em freqüências de 0 a 1 + (2 ^ p /2) ) .
5
Divida Y por L /2 , digitando " Y = Y. /( L /2 ), " na linha de comando MATLAB sem aspas . Isto é necessário porque a saída FFT padrão do MATLAB é multiplicado por um fator de L /2 , por isso vai ser maior, se d for maior. Dividindo por L /2 normaliza a saída FFT para que ele não depende do comprimento de d.
Resultados Lote FFT
6
Se d não foi amostrado a 1 Hz mas em alguma freqüência " f ", as freqüências atuais representados em Y será 0 para f * (1 + (2 ^ p /2 ))) . Calcule um vetor MATLAB contendo estas freqüências . Primeiro, defina a frequência de amostragem real de uma variável f . Se a sua frequência de amostragem real foi de 0,5 Hz (1 amostra a cada 2 segundos ), você deve digitar " f = 0,5; " na linha de comando MATLAB sem aspas . Em seguida , digite " freq = f * (0: (1 + (2 ^ p /2 ))) ). " Na linha de comando MATLAB sem aspas . Agora freq contém as freqüências atuais representados em Y.
7
Obter a amplitude da componente de sinal em cada freqüência , digitando " Ya = abs ( Y) " . na linha de comando MATLAB sem aspas .
8
Trace o espectro de amplitude do sinal , digitando " plot ( freq , Ya ) " na linha de comando MATLAB sem aspas .
< br > 9
Receba a força do componente de sinal em cada freqüência , digitando " Yp = Y. ^ 2" na linha de comando MATLAB sem aspas .
10
Trace o espectro do poder sinal , digitando " plot ( freq , Yp ) " na linha de comando MATLAB sem aspas .