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)
Saída
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)
Saída
peak at 5 Hz

Veja também

ifft fft2 fftshift abs filter