Se você faz um gráfico FFT de um sinal simples, como:
t = 0:0.01:1 ;
N = max(size(t));
x = 1 + sin( 2*pi*t ) ;
y = abs( fft( x ) ) ;
stem( N*t, y )
Sinusóide 1Hz + DC
FFT acima
Eu entendo que o número no primeiro compartimento é "quanto DC" existe no sinal.
y(1) %DC
> 101.0000
O número no segundo compartimento deve ser "quanto 1 ciclo em todo o sinal" existe:
y(2) %1 cycle in the N samples
> 50.6665
Mas não é 101! É cerca de 50,5.
Há outra entrada no final do sinal fft, igual em magnitude:
y(101)
> 50.2971
Então, 50,5 novamente.
Minha pergunta é: por que a FFT é espelhada assim? Por que não é apenas um 101 emy(2)
(o que naturalmente significaria que todos os 101 compartimentos do seu sinal possuem um senoide de 1 Hz?)
Seria preciso fazer:
mid = round( N/2 ) ;
% Prepend y(1), then add y(2:middle) with the mirror FLIPPED vector
% from y(middle+1:end)
z = [ y(1), y( 2:mid ) + fliplr( y(mid+1:end) ) ];
stem( z )
Virar e adicionar na segunda metade do vetor FFT
Pensei agora que a parte espelhada no lado direito foi adicionada corretamente, dando-me o desejado "todos os 101 compartimentos da FFT contêm um senoide de 1Hz"
>> z(2)
ans =
100.5943