fft
Transformada discreta de Fourier calculada com um algoritmo rápido.
Categoria: Mathematics > Fourier Analysis and Filtering
Sintaxe
Y = fft(X)
Transforma ao longo da primeira dimensão não singleton.
Y = fft(X, n)
Preenche com zeros ou trunca os dados para o comprimento n antes.
Y = fft(X, n, dim)
Transforma ao longo da dimensão dim.
Descrição
Para um vetor x de comprimento n, Y(k) é a soma em j de x(j)*exp(-2*pi*1i*(j-1)*(k-1)/n). O elemento k mede quanto da frequência (k-1)/n ciclos por amostra está presente. Para entrada real, a segunda metade do resultado espelha a primeira como conjugados complexos.
A transformada não é normalizada: ifft divide por n para desfazê-la. Uma matriz é tratada coluna a coluna. Preencher com zeros, como em fft(x, 1024), interpola o espectro, mas não acrescenta informação nova.
Argumentos de entrada
X- Vetor, matriz ou array N-D numérico. Real ou complexo.
n- Comprimento da transformada. Use
[]para manter o padrão. dim- Dimensão em que operar.
Argumentos de saída
Y- Dados no domínio da frequência, em geral complexos.
Y(1)é a soma das amostras (o termo de frequência zero).
Exemplos
Espectro de uma sequência curta
fft([1 2 3 4])
fft([1 0 0 0], 6)
ans = 1×4 complex
10.0000 + 0.0000i -2.0000 + 2.0000i -2.0000 + 0.0000i -2.0000 - 2.0000i
ans = 1×6
1 1 1 1 1 1
Encontrando um tom
fs = 64;
t = (0:fs-1)/fs;
x = sin(2*pi*5*t);
P = abs(fft(x));
[~, k] = max(P(1:fs/2));
fprintf('peak at %d Hz\n', k-1)
peak at 5 Hz