Вы можете сделать положительный частотный спектр довольно просто (где fs
частота дискретизации и NFFT
количество бин FFT). В реализации алгоритма FFT в Matlab первый элемент всегда является компонентом DC, поэтому массив начинается с нуля. Это верно для нечетных и четных значений NFFT.
%//Calculate frequency axis
df = fs/NFFT;
fAxis = 0:df:(fs-df);
Если вам нужно обернуть частотный спектр, вы должны принять во внимание, есть ли у вас нечетный NFFT. Всегда должен быть компонент постоянного тока , поэтому. ,
df = fs/NFFT;
fAxis = (0:df:(fs-df)) - (fs-mod(NFFT,2)*df)/2;
Обратите внимание, что вычисление положительной оси частоты идентично приведенному выше, но член со смещением FFT изменяется, чтобы соответствовать четным или нечетным длинам FFT.
Эти фрагменты кода были взяты из длинного ответа, размещенного на SO (который может показаться вам интересным), найденного здесь:
/programming/9694297/matlab-fft-xaxis-limits-messing-up-and-fftshift/ 9699983 # 9699983