【MATLAB】画信号频谱的子函数

输入信号序列和采样率,该子函数可以画出该信号的频谱图。

function [f,spec,NFFT]=spec_fft_plot(sample,L,Fs)
% 输入数据说明:
% sample:信号序列;
% L:信号序列的长度;
% Fs:该信号的采样频率。
% 输出数据说明:
% f:频率;
% spec:频谱图纵坐标;
NFFT = 2^nextpow2(L); 
% NFFT = L;
spec=abs(fft(sample,NFFT)./L);
flag = 1;
if flag ==1
    f = Fs/2*linspace(0,1,NFFT/2+1);
    spec=spec(1:length(f));
else
    f = Fs/2*linspace(-1,1,NFFT);
    spec = fftshift(spec);
end