matlab低通滤波器(【滤波器】MATLAB模拟设计FIR低通数字滤波器)

matlab低通滤波器

滤波器(Filter)可以对特定信号频率以外的频率进行有效滤除。按照所处理信号的不同分为:模拟滤波器和数字滤波器。按照所通过信号频率的不同分为:
低通滤波器-允许信号中的低频或直流分量通过,抑制高频分量或干扰和噪声;
高通滤波器-允许信号中的高频分量通过,抑制低频或直流分量;
带通滤波器-允许一定频段的信号通过,抑制低于或高于该频段的信号、干扰和噪声;
带阻滤波器-抑制一定频段内的信号,允许该频段以外的信号通过。
下图是小派曾经遇到的一款非常迷你的滤波器。

数字滤波器在电子通信、图像处理、军事航天等领域有着十分广泛的应用,今天着重介绍数字滤波器。其中FIR滤波器为有限脉冲响应(Finite Impulse Response)数字滤波器。在信号进入FIR滤波器之前,要将信号通过A/D器件进行模数转换,使模拟信号(Analog Signal)变为数字信号(Digital Signal)。为使信号处理不失真,一般还要把采样频率设置为信号频率上限的4-5倍。
下面使用MATLAB模拟设计FIR低通数字滤波器。例如:某信号频率为20kHz,噪声频率为35kHz,采样频率为100kHz(采样频率是信号频率的4-5倍)。然后设计一个带通衰减1dB,带阻衰减100dB,带通频率20kHz,带阻频率35kHz的FIR低通数字滤波器。
首先,启动MATLAB,新建脚本,输入如下代码,使信号频率20kHz,噪声频率35kHz,采样频率100kHz的数字信号图形化显示。

其中黑线为含有噪声的原始信号,红线为想要通过的有用低频信号。

第二,在MATLAB命令行窗口中输入fdatool,启动滤波器设计和分析工具。进入滤波器设计和分析工具(Filter Design & Analysis Tool)界面后:1.在Respone Type中选择低通滤波器(Lowpass);2.在Design Method中选择FIR Equiripple等波纹FIR滤波器;3.在Filter Order中选择最小滤波器阶次Minimum Order;4.在Options中设置Desity Factor为20(默认值);5.在Frequency Specification中设置Units为kHz,采样频率Fs=100kHz,带通频率Fpass=20kHz, 带阻频率Fstop=35kHz;6.在Magnitude Specification中指定带通衰减Apass=1dB,带阻衰减Astop=100dB。

第三,点击Design Filter,即完成了FIR低通数字滤波器的设计,可以看到该低通数字滤波器允许频率20kHz信号通过,阻止频率35kHz以上的信号通过。

第四,点击File–>Generate MATLAB Code–>Filter Design Function,将该FIR低通数字滤波器保存为函数代码,可以命名为FIR_Lowpass.m。

第五,在第一步脚本文件中接着输入以下代码,调用该FIR低通数字滤波器函数,并图形化显示低通滤波后的信号图形。

可以看到,经过FIR低通数字滤波器后,35kHz的噪声信号被滤除,得到了20kHz的有用信号。

以上就完成了MATLAB模拟设计FIR低通数字滤波器的工作。高通滤波器、带通滤波器、带阻滤波器可以参照此方法进行模拟设计。

matlab低通滤波器相关文章

赞 (0)