Puede hacer un espectro de frecuencia positivo de manera bastante simple (donde fs
está la frecuencia de muestreo y NFFT
el número de contenedores fft). En la implementación de Matlab del algoritmo FFT, el primer elemento es siempre el componente DC, de ahí que la matriz comience desde cero. Esto es cierto para los valores pares e impares de NFFT.
%//Calculate frequency axis
df = fs/NFFT;
fAxis = 0:df:(fs-df);
Si necesita ajustar el espectro de frecuencia, debe tener en cuenta si tiene una NFFT con un número impar. Siempre tiene que haber un componente DC , entonces. .
df = fs/NFFT;
fAxis = (0:df:(fs-df)) - (fs-mod(NFFT,2)*df)/2;
Observe cómo el cálculo del eje de frecuencia positiva es idéntico al anterior, pero el término desplazado FFT cambia para adaptarse a longitudes FFT pares o impares.
Estos fragmentos de código se tomaron de una respuesta larga publicada en SO (que puede resultarle interesante) que se encuentra aquí:
/programming/9694297/matlab-fft-xaxis-limits-messing-up-and-fftshift/ 9699983 # 9699983