网上没找到现成的程序;自己花了很多时间尝试,之后总结出来的,特此记录:
另外可以直接下载:对一段信号做FFT的程序
%以下程序是对一段采样信号进行FFT分析,得到信号的频率成分:
%XTJ 花了5小时+,以前做过,忘记了,特此记录
fs=1e6; %fs:采样频率,Upccwave(:,1)为时间;Upccwave(:,2)为信号波形
figure(1);subplot(2,1,1);plot(Upccwave(:,1),Upccwave(:,2));%画出时域波形
title('时域原始信号');
xlabel('时间t');grid on;
number=0.02*fs;%确定做多少点的FFT,这里是number点
y=fft(Upccwave(:,2),number)./(number/2);%由于FFT的特性,输出数列幅值与原始信号频率分量幅值之间存在放大了(number/2)倍的关系;
%基波是放大number倍;这里是为了还原
n=0:length(y)-1;
f=fs*n/length(y); %设置频率轴坐标
figure(1);subplot(2,1,2);bar(f,abs(y));%axis([0,300,0,10e2]);%频域内的频谱信号
title('频域频谱信号');
xlabel('频率Hz');grid on;