Você pode criar um espectro de frequência positivo de maneira bastante simples (onde fs
está a taxa de amostragem e NFFT
o número de caixas de fft). Na implementação Matlab do algoritmo FFT, o primeiro elemento é sempre o componente DC, portanto, o motivo pelo qual a matriz começa do zero. Isso é verdadeiro para valores ímpares e pares de NFFT.
%//Calculate frequency axis
df = fs/NFFT;
fAxis = 0:df:(fs-df);
Se você precisar envolver o espectro de frequências, precisará levar em consideração se possui um NFFT de número ímpar. Sempre precisa haver um componente DC , então. .
df = fs/NFFT;
fAxis = (0:df:(fs-df)) - (fs-mod(NFFT,2)*df)/2;
Observe como o cálculo do eixo de frequência positivo é idêntico ao acima, mas o termo deslocado da FFT muda para acomodar comprimentos pares ou ímpares da FFT.
Esses trechos de código foram extraídos de uma resposta longa publicada no SO (que você pode achar interessante) encontrada aqui:
/programming/9694297/matlab-fft-xaxis-limits-messing-up-and-fftshift/ 9699983 # 9699983