基于MATLAB的filter的使用,低通、带通和高通滤波器设计

1、目的

学习MATLAB的filter函数的使用,通过设计低通、带通和高通滤波器对其进行仿真

2、用到的主要函数和工具

MATLAB、FDATOOL、filter、fft

3、设计

  1. 信号的产生
%% Parameter Interface
Frequence0          = 60;        %单位:Hz    
Frequence1          = 130;       %单位:Hz
Frequence2          = 1e3;       %单位:Hz
SampleFre           = 4e3;       %单位:Hz
SampleLen           = SampleFre; %采样点数
%% Main
%-------------------产生三路信号
t = 0:1/SampleLen:1/SampleFre*(SampleLen-1);
SignalData0 = sin(2*pi*Frequence0*t);
SignalData1 = sin(2*pi*Frequence1*t);
SignalData2 = sin(2*pi*Frequence2*t);
SignalData3 = SignalData0+SignalData1+SignalData2;
figure;hold on
plot(t(1:150),SignalData0(1:150),'b')
plot(t(1:150),SignalData1(1:150),'r')
plot(t(1:150),SignalData2(1:150),'k')
hold off
figure;plot(t(1:150),SignalData3(1:150))
title('三路信号求和')
  •  三路信号的时域波形

                                       三路信号时域波形                                                                      三路信号求和时域波形       

  • 三路求和信号频谱分析
FFT_Data = fft(SignalData3);

        2.低通滤波器设计

  • 基于fdatool的低通滤波器的设计

          在MATLAB命令行执行fdatool命令,弹出滤波器设计交互窗口,根据自己的需求设计符合自己要求的滤波器,这是我设计的低通滤波器见下图

           需要注意的是通过设计Fpass和Fstop确定了滤波器的带宽,同时参数设计的越接近理论滤波器的性能,滤波器的阶数越多,计算量越大,所以需要优化滤波器这两个参数,在保证性能的同时确保阶数越小(计算量越小)

  • 滤波
LPF_Data = filter(LPF_Coe.LPF_60M,1,SignalData3);

滤波后的时域和频谱波形

          3.带通和高通操作步骤大体一致就不详细说明

4、M代码

      代码见https://download.csdn.net/download/flypassion/10627808

5、备注

       1、滤波器出数有一定延迟,这在具体调制解调过程中需要注意

  • 46
    点赞
  • 460
    收藏
    觉得还不错? 一键收藏
  • 19
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值