关于stem用法:https://blog.csdn.net/We_are_family678/article/details/80023294
关于subplot:https://blog.csdn.net/LucyLiHHU/article/details/78443855
关于ceil:https://blog.csdn.net/u013925378/article/details/53769428
关于FFT:https://blog.csdn.net/me4weizhen/article/details/53688848
http://blog.163.com/fei_lai_feng/blog/static/9289962200971751114547/
参考例程:
%% 对 周期函数 使用快速傅里叶变换(FFT)
clear all
close all
%% 构建原始信号
N = 200; %原始信号长度
Fs = 80; %采样频率HZ 采样频率要至少大于原始信号频率二倍
dt = 1/Fs; %采样间隔S
t = [0:N-1]*dt; %时间序列
f1 = 40; %原始信号频率Hz
f2 = 2;
y = cos(2*pi*f1*t)+cos(2*pi*f2*t);
figure(1);title('mk');
subplot(2,3,1),plot(t,y);
xlabel('时间/s'),ylabel('幅值/mv'),title('原始信号(长度200点\采样频率80Hz)');
text(0.5,-3,'y = cos(2*pi*f1*t)+cos(2*pi*f2*t)');% 前面两个位置坐标
%% FFT分析
FN = N; % 执行100点FFT
FY = fft(y, FN)/FN; % 共轭复数,具有对称性
f0 = 1/(dt*FN); %基频
f = [0:ceil((FN-1)/2)]*f0; %频率序列
A = abs(FY); %幅值序列
subplot(2,3,2),stem(f, 2*A(1:ceil((FN-1)/2)+1)); %绘制频谱
xlabel('频率/Hz');title('FFT');
% axis([0 0.5 0 1.2]); %调整坐标范围
%% FFT分析
fy = fft(y,FN);
mag = abs(fy); %幅值序列
n=0:N-1;
Ff = n*f0; %频率序列
subplot(2,3,3),plot(Ff,mag);
xlabel('频率/Hz');title('FFT');
运行结果: