基于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、滤波器出数有一定延迟,这在具体调制解调过程中需要注意

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM