Bạn có thể tạo phổ tần số dương khá đơn giản (trong đó fs
tỷ lệ lấy mẫu và NFFT
là số thùng fft). Trong triển khai Matlab của thuật toán FFT, phần tử đầu tiên luôn là thành phần DC, do đó tại sao mảng bắt đầu từ 0. Điều này đúng với các giá trị lẻ và chẵn của NFFT.
%//Calculate frequency axis
df = fs/NFFT;
fAxis = 0:df:(fs-df);
Nếu bạn cần bọc phổ tần số, bạn cần tính đến việc bạn có một NFFT được đánh số lẻ hay không. Luôn luôn cần phải có một thành phần DC , vì vậy. .
df = fs/NFFT;
fAxis = (0:df:(fs-df)) - (fs-mod(NFFT,2)*df)/2;
Lưu ý cách tính toán trục tần số dương giống hệt như trên, nhưng thuật ngữ thay đổi FFT thay đổi thành độ dài FFT chẵn hoặc lẻ.
Các đoạn mã này được lấy từ một câu trả lời dài được đăng trên SO (mà bạn có thể thấy thú vị) được tìm thấy ở đây:
/programming/9694297/matlab-fft-xaxis-limits-messing-up-and-fftshift/ 9699983 # 9699983