当前位置:首页 > 工业控制 > 电子设计自动化

介绍了利用MATLAB信号处理工具箱进行FIR滤波器设计的三种方法:程序设计法、FDATool设计法和SPTool设计法,给出了详细的设计步骤,并将设计的滤波器应用到一个混和正弦波信号,以验证滤波器的性能。

1 前言

数字滤波器是一种用来过滤时间离散信号的数字系统,通过对抽样数据进行数学处理来达到频域滤波的目的。根据其单位冲激响应函数的时域特性可分为两类:无限冲激响应(IIR)滤波器和有限冲激响应(FIR)滤波器。与IIR滤波器相比,FIR的实现是非递归的,总是稳定的;更重要的是,FIR滤波器在满足幅频响应要求的同时,可以获得严格的线性相位特性。因此,它在高保真的信号处理,如数字音频、图像处理、数据传输、生物医学等领域得到广泛应用。

2 FIR滤波器的窗函数设计法

FIR滤波器的设计方法有许多种,如窗函数设计法、频率采样设计法和最优化设计法等。窗函数设计法的基本原理是用一定宽度窗函数截取无限脉冲响应序列获得有限长的脉冲响应序列,主要设计步骤为:

(1) 通过傅里叶逆变换获得理想滤波器的单位脉冲响应hd(n)。

(2) 由性能指标确定窗函数W(n)和窗口长度N。

(3) 求得实际滤波器的单位脉冲响应h(n), h(n)即为所设计FIR滤波器系数向量b(n)。

(4) 检验滤波器性能。

本文将针对一个含有5Hz、15Hz和30Hz的混和正弦波信号,设计一个FIR带通滤波器,给出利用MATLAB实现的三种方法:程序设计法、 FDATool设计法和SPTool设计法。参数要求:采样频率fs=100Hz,通带下限截止频率fc1=10 Hz,通带上限截止频率fc2=20 Hz,过渡带宽6 Hz,通阻带波动0.01,采用凯塞窗设计。

3 程序设计法

MATLAB信号处理工具箱提供了各种窗函数、滤波器设计函数和滤波器实现函数。本文的带通滤波器设计及滤波程序如下:

[n,Wn,beta,ftype]=kaiserord([7 13 17 23],[0 1 0],[0.01 0.01 0.01],100);

%得出滤波器的阶数n=38,beta=3.4

w1=2*fc1/fs; w2=2*fc2/fs;%将模拟滤波器的技术指标转换为数字滤波器的技术指标

window=kaiser(n+1,beta);%使用kaiser窗函数

b=fir1(n,[w1 w2],window);使用标准频率响应的加窗设计函数fir1

freqz(b,1,512);%数字滤波器频率响应

t = (0:100)/Fs;

s = sin(2*pi*t*5)+sin(2*pi*t*15)+sin(2*pi*t*30);%混和正弦波信号

sf = filter(b,1,s);%对信号s进行滤波

程序执行的结果如图1所示:


图1 滤波器特性和滤波效果图

(1)滤波器幅频特性和相频特性 (2)滤波前后的波形

4 FDATool设计法

FDATool(Filter Design & Analysis Tool)是MATLAB信号处理工具箱专用的滤波器设计分析工具,操作简单、灵活,可以采用多种方法设计FIR和IIR滤波器。在MATLAB命令窗口输入FDATool后回车就会弹出FDATool界面。

4.1 带通滤波器设计

已知滤波器的阶数n=38,beta=3.4。本例中,首先在Filter Type中选择Bandpass;在Design Method选项中选择FIR Window,接着在Window选项中选取Kaiser,Beta值为3.4;指定Filter Order项中的Specify order为38;采样频率Fs=100Hz,截止频率Fc1=10Hz,Fc2=20Hz。设置完以后点击窗口下方的Design Filter,在窗口上方就会看到所设计滤波器的幅频响应,通过菜单选项Analysis还可以看到滤波器的相频响应、组延迟、脉冲响应、阶跃响应、零极点配置等。设计完成后将结果保存为kaiser15.fda文件。

4.2 Simulink仿真

在Simulink环境下,将滤波器文件kaiser15.fda导入Digital Filter Design模块,输入信号为s(t)=sin(10πt)+sin(30πt)+sin(60πt),生成的仿真图和滤波效果如图2所示。


图2 Simulink仿真图和滤波效果图

(1)Simulink仿真图 (2)滤波前后的离散波形

5 SPTool设计法

SPTool是MATLAB信号处理工具箱中自带的交互式图形用户界面工具,它包含了信号处理工具箱中的大部分函数,可以方便快捷地完成对信号、滤波器及频谱的分析、设计和浏览。在本例中按以下步骤完成滤波器的设计和滤波:

创建并导入信号源。

在MATLAB命令窗口输入命令:

Fs=100;t = (0:100)/Fs;

s = sin(2*pi*t*5)+sin(2*pi*t*15)+sin(2*pi*t*30);

此时,变量Fs、t、s将显示在workspace列表中。在命令窗口键入Sptool,将弹出Sptool主界面,如图3所示;点击菜单File/Import将信号s导入并取名为s。

(2)单击Filters列表下的New,按照参数要求设计出滤波器filt1,具体步骤类似于3.2.1。

(3)将滤波器filt1应用到s信号序列。分别在Signals、Filters、Spectra列表中选择s、filt1、mtlbse,单击Filters列表下的Apply按钮,在弹出的Apply Filter对话框中将输出信号命名为sin15hz。

(4)进行频谱分析。在Signals中选择s,单击Spectra下的Create按钮,在弹出的Spectra Viewer界面中选择Method为FFT,Nfft=512,单击Apply按钮生成s的频谱spect1。同样的步骤可以生成信号sin15hz的频谱spect2。

分别选中信号s、sin15hz、spect1、spect2,单击各自列表下方的View按钮,即可观察他们的波形,如图4所示。


SPTool主界面

图3 SPTool主界面 图4 滤波前后的时域波形和频域特性

由图4可以看出,带通滤波器filt1使输入信号s中频率为15hz的正弦波信号通过,而将频率为5hz和30hz的正弦波信号大大衰减。

6 结束语

本文通过一个设计实例,介绍了利用MATLAB实现 FIR滤波器设计与滤波的三种方法,从仿真结果可以看出它们均可以达到技术指标要求,而且方法简单、快捷,大大减轻了工作量。滤波器的设计工作完成后,可以借助于MATLAB的export操作导出所设计滤波器的系统函数H(z)。由于MATLAB具有强大的接口功能,仿真后的结果可以很方便的移植到 DSP、CPLD或FPGA等器件中。在实际应用中,只需按要求修改滤波器参数,并对程序作较少的改动,即可实现不同截止频率的FIR滤波器,实用性较强。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

在下述的内容中,小编将会对滤波器的相关消息予以报道,如果滤波器是您想要了解的焦点之一,不妨和小编共同阅读这篇文章哦。

关键字: 滤波器 低通滤波器 高通滤波器

e络盟现货供应超过230000种产品,客户可以一站式购买电容器、EMC/RFI抑制产品、滤波器、电感器、电位器、微调器和电阻

关键字: 滤波器 电感器 电位器

TDK株式会社(东京证券交易所代码:6762)新近推出B84742A*R725系列滤波器,扩展了其单相EMC滤波器产品组合。新系列滤波器适用于电压高达250V、额定电流从6A到30A的交流和直流应用,是工业和建筑领域日益...

关键字: 滤波器 DIN 导轨 电源

在下述的内容中,小编将会对滤波器的相关消息予以报道,如果滤波器是您想要了解的焦点之一,不妨和小编共同阅读这篇文章哦。

关键字: 滤波器 无源滤波器 有源滤波器

为增进大家对匹配滤波器的认识,本文将对匹配滤波器、匹配滤波器的详细理解予以介绍。

关键字: 滤波器 指数 匹配滤波器

为增进大家对模拟滤波器的认识,本文将对模拟滤波器、模拟滤波器的频率特性予以介绍。

关键字: 滤波器 指数 模拟滤波器

为增进大家对有源滤波器的认识,本文将对有源滤波器、有源滤波器的配置以及有源滤波器的应用予以介绍。

关键字: 滤波器 指数 有源滤波器

2023年12月28日,鼎阳科技正式发布SVA-TB01射频实验教学板。SVA-TB01采用模块化设计,使用者可以自由组合电路,适用于射频工程师入门学习和高校射频通信课程实验。

关键字: 射频 电路 滤波器

在现代社会中,电子设备的广泛应用给人们的生活带来了便利和舒适。然而,随着电子设备数量的增加,电磁干扰(Electromagnetic Interference,EMI)问题也日益突出。EMI滤波器作为一种重要的电磁干扰抑...

关键字: emi 滤波器

一直以来,单相电源滤波都是大家的关注焦点之一。因此针对大家的兴趣点所在,小编将为大家带来单相电源滤波的相关介绍,详细内容请看下文。

关键字: 滤波器 电源滤波器
关闭
关闭