matlab对函数进行快速傅里叶(FFT)变换

 

关于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'); 

运行结果:

  • 3
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值