filtic函数 matlab_使用 matlab 进行傅里叶分析和滤波

作者:盛夏的猫宁

来源:SegmentFault 思否社区


傅里叶分析

公式法

下例 是将振幅为1的5Hz正弦波和振幅为0.5的10Hz正弦波相加之后进行傅里叶分析。

clear allN=512;dt=0.02;n=0:N-1;t=n*dt;x=sin(2*pi*5*t)+0.5*sin(2*pi*10*t);%生成和信号%傅里叶变换m = floor(N/2)+1;a=zeros(1,m);b=zeros(1,m);for k=0:m-1    for ii=0:N-1        a(k+1) = a(k+1)+2/N*x(ii+1)*cos(2*pi*k*ii/N);        b(k+1) = b(k+1)+2/N*x(ii+1)*sin(2*pi*k*ii/N);    end    c(k+1)=sqrt(a(k+1).^2+b(k+1).^2);end%傅里叶逆变换if(mod(N,2) ~=1)    a(m)=a(m)/2;endfor ii=0:N-1    xx(ii+1)=a(1)/2;    for k=1:m-1        xx(ii+1)=xx(ii+1)+a(k+1)*cos(2*pi*k*ii/N)+b(k+1)*sin(2*pi*k*ii/N);    endend%绘图subplot(3,1,1),plot(t,x,'LineWidth',2);title('原始信号'),xlabel('时间/s');subplot(3,1,2),plot((0:m-1)/(N*dt),c,'LineWidth',2);title('傅里叶变换'),xlabel('频率/Hz');subplot(3,1,3),plot((0:N-1)*dt,xx,'LineWidth',2);ti
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值