1 - Introdução
Para um sinal [latex]x[n][/latex] discreto e aperiódico no tempo a Transformada Discreta de Fourier (TDF) será um sinal contínuo e periódico na frequência. Caso [latex]x[n][/latex] seja periódico, a TDF será um sinal discreto e periódico na frequência.
A TDF é dada por:
[latex] X(\omega )=\sum _{n=-\infty }^{\infty }x[n]\,e^{-i\omega n} [/latex]
Uma maneira eficiente de obter computacionalmente amostras da função [latex] X(\omega )[/latex] é utilizar o algoritmo chamado de Fast Fourier Transform (FFT).
2 - Octave
No Octave, para visualizar corretamente os dados retornados pela função fft() deve ser levado em consideração:
- o número de pontos utilizados (quanto maior, melhor será a fidelidade das amostras da fft com a TDF);
- a frequência na qual os pontos foram amostrados (para corresponder a frequência em Hz é necessário conhecer a frequência na qual os dados do sinal discreto foram obtidos);
Para facilitar, pode-se utilizar a seguinte função:
3 - Resultados
3.1 - Sinal periódico
Considere o seguinte sinal
[latex] x[n] = 0.8cos(2\pi \cdot 100n) + 2sin(2\pi \cdot 100n) [/latex]
3.2 - Sinal aperiódico
Considere o seguinte sinal
[latex] x[n] = 10 \cdot sinc(2 \cdot 10n) [/latex]
fs = 500;
n = -100:1/fs:100;
x = 10*sinc(2*10*n);
figure
[X,f] = plot_fft(x,fs);
axis([0 15 0 max(abs(X))])
3.3 - Tempo de execução
Para medir o tempo de execução de uma determinada função basta usar os comandos tic e toc
tic
X = fftn(x)/N;
tempo_decorrido = toc
Dicas
Assista aos vídeos:
https://www.youtube.com/watch?v=uRnT6AGfgfU&list=PLYnNpzT-Y7kW8YCCOrsAl6qVfAKoL0YtC&index=22