Como usar FFT no MATLAB

Escrito por margaret woodlawn | Traduzido por paula mangia garcia terra
  • Compartilhar
  • Tweetar
  • Compartilhar
  • Pin
  • E-mail
Como usar FFT no MATLAB
FFT permite separar as diferentes frequências que formam um único sinal. (Hemera Technologies/AbleStock.com/Getty Images)

A Fast Fourier Transform (FFT) é uma técnica frequentemente utilizada no processamento de sinais. A transformada de Fourier aproxima qualquer função contínua, como a soma de funções periódicas (senos e cossenos). A FFT faz a mesma coisa com sinais discretos - uma série de pontos de dados, em vez de uma função contínua definida - e permite identificar componentes periódicas em seu sinal discreto. Talvez seja necessário identificar um sinal periódico enterrado sob ruído aleatório ou analisar um sinal com várias e diferentes fontes periódicas subjacentes. O MATLAB inclui uma implementação embutida da FFT para ajudá-lo a fazer isso.

Nível de dificuldade:
Moderadamente desafiante

Outras pessoas estão lendo

O que você precisa?

  • Vetor MATLAB contendo dados de sinais discretos

Lista completaMinimizar

Instruções

    Execute a FFT

  1. 1

    Calcule o comprimento (número de elementos) do vetor contendo seus dados. Por exemplo, se seus dados estão armazenados em um vetor chamado "d", digite "L = length(d);", na linha de comando do MATLAB, sem aspas. O L irá conter agora o número de elementos em d.

  2. 2

    Calcule a potência de 2, que é maior ou igual a L, digitando "p = nextpow2 (L);", na linha de comando do MATLAB, sem aspas. Se L = 1000, por exemplo, p será 10, porque 2^10 = 1024.

  3. 3

    Execute a FFT digitando "Y = fft(d,2^p);", na linha de comando do MATLAB, sem aspas. Este comando acrescenta zeros ao d para obter um vetor de comprimento 2^p. Em seguida, execute FFT no vetor de elemento 2^p . Os zeros acrescentados não afetam o resultado da FFT, mas ela é executada mais rápidamente com um vetor cujo comprimento é uma potência de 2.

    O vetor resultante Y dá os coeficientes das funções seno e cosseno em frequências que variam de -(2^p/2)) a 1 + (2^p/2) (assumindo que d foi incluído a uma amostra por segundo ou 1 Hz). Estas são as funções seno e cosseno que se somam ao sinal original d. O Y é complexo e suas partes reais são os coeficientes das funções de seno e suas partes imaginárias são os coeficientes das funções de cosseno.

  4. 4

    Mantenha, apenas, as partes específicas de Y, digitando "Y = Y (1:((2^p+1)/2));", sem 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 complexo conjugado da primeira metade. Agora, Y dá os coeficientes das funções seno e cosseno em frequências de 0 a 1 + (2^p/2)).

  5. 5

    Divida Y por L/2 digitando "Y = Y./(L/2);" na linha de comando do MATLAB, sem aspas. Isto é necessário porque a saída FFT padrão do MATLAB é multiplicada por um fator de L/2, então, ele será maior se d for maior. Dividir por L/2 normaliza a saída de FFT, para que não dependa do comprimento de d.

    Delinear resultados FFT

  1. 1

    Se d não foi incluída em 1 Hz, mas em alguma frequência "f", as frequências reais representadas em Y serão de 0 a f(1 + (2^p/2))). Calcule um vetor MATLAB contendo estas frequências. Primeiro, defina sua frequência de amostragem real de uma variável f. Se esta frequência for de 0,5 Hz (1 amostra a cada 2 segundos), você deve digitar "f = 0.5;" na linha de comando do MATLAB, sem aspas. Em seguida, digite "freq = f. (0:(1 + (2^ p/2))))" na linha de comando do MATLAB, também sem aspas. Agora, freq contém as frequências reais representadas em Y.

  2. 2

    Obtenha a amplitude do componente de sinal em cada frequência, digitando "Ya = abs(Y)", na linha de comando do MATLAB, sem aspas.

  3. 3

    Delineie o espectro de amplitude do sinal, digitando "plot(freq, Ya)" na linha de comando do MATLAB, sem aspas.

  4. 4

    Obtenha a potência do componente de sinal em cada frequência, digitando "Yp = Y.^2" na linha de comando do MATLAB, sem aspas.

  5. 5

    Delineie o espectro de potência do sinal, digitando "plot(freq, Yp)", também na linha de comando do MATLAB e sem aspas.

Dicas & Advertências

  • Quanto maior a entrada de dados do vetor d, melhor será a resolução de frequência.

Não perca

Filtro:
  • Geral
  • Artigos
  • Slides
  • Vídeos
Mostrar:
  • Mais relevantes
  • Mais lidos
  • Mais recentes

Nenhum artigo disponível

Nenhum slide disponível

Nenhum vídeo disponível