基于MATLAB的FIR数字滤波器设计
2017-08-08江楠,李伟
江 楠,李 伟
(91550部队 辽宁 大连 116023)
基于MATLAB的FIR数字滤波器设计
江 楠,李 伟
(91550部队 辽宁 大连 116023)
文中针对传统FIR滤波器设计方法繁琐,设计步骤和过程繁杂,且设计好滤波器之后,不能直观快速修改滤波器参数来观察滤波器变化,设计了基于MATLAB的FIR数字滤波器。MATLAB功能强大,在进行有限脉冲响应滤波器(FIR)设计时,利用FDATool工具,根据不同需求,设计出不同的滤波功能。其能够快速处理目标函数,并将实时处理的结果曲线和目标函数进行理论对比,可以做到实时修改,使滤波器的设计更加方便、快捷、直观、节省时间。文中以FIR滤波器设计为例,对信号中噪声做出了处理,并用MATLAB进行了仿真,验证了理论的实现。
MATLAB;FIR数字滤波器;仿真
随着数字技术的发展,数字信号处理被广泛研究,数字信号处理的应用也涉及到各个方面,通信中的编码解码、自动控制、语音识别和图像处理等[1]。在数字信号处理中通常会涉及到频率变换、信号滤波、谱分析及调制和编码等处理。其中,滤波器的设计是众多应用中最重要的一个环节,因此被人们广泛研究。
目前,数字滤波器的设计可通过软件和硬件实现,硬件的实现通常是用DSP系统[2],该系统的不足在于一旦设计好后,无法方便地修改滤波器参数,因此本文提出用Matlab软件来实现的方法。
Matlab是一套可视化软件,其可在用户操作界面进行实时修改设计参数,并可以进行高效率的数值计算。Matrix(矩阵)和Laboratory(实验室)的前3个字母组成了该软件享誉全球的名字,在Matlab友好方便的界面内,清晰可见有信号处理,图像显示数值分析,矩阵运算等功能[3]。
还有涉及到自动控制和计算机等相关专业的仿真功能在Matlab内部的工具箱中,在使用时随时可被调出,Matlab中还含有诸多控制矩阵运算的命令,此外其能容许用户自身建立所需功能的M文件,这就使得Matlab的使用范围更宽阔。
1 FIR数字滤波器的设计
1.1 FIR数字滤波器的简介
如图1所示为一个完整的信号处理过程图,通常要进行数字信号处理就需要先将接收到的模拟信号经过A/D(数模转换器)进行转换[4],将模拟信号经过采样转换为数字信号,下一步需要保留有用的数字信号,滤除掉无关紧要的信号,则需要滤波器的处理,得到一系列数字序列,最终再经过(D/A)转换[5],将数字序列转换为人们所接收的模拟信号。(当然这一步可有可无,大多情况下是以数字的形式进行输出显示)。
图1 FIR滤波器工作原理图
1.2 FIR数字滤波器的相位特性
对FIR数字滤波器的单位脉冲响应做Z变换得[6]
明显可看出,该响应在Z域内有N-1个零点和N-1个零点。即
只有当FIR滤波器满足上述关系式时,该滤波器才是严格线性的,下面将作出推导
首先对式(1)进行Z变换得
令 Z=ejw,于是
由此可以得振幅和相位函数
由相位函数可知,相位特性是严格线性的,相位特性图如图2所示。
图2 滤波器偶然对称相位图
将公式 h(n)=-h(N-1-n)做 Z 变化,同理可奇对称函数的振幅和相位函数
图3 滤波器奇对称相位图
2 FDATool的设计原理
2.1 FDAtool界面介绍
FDAtool(Filter Design Analysis Tool)是 Matlab中的一个工具,该工具是专门用来滤波器设计和仿真的。该界面分为两部分,一部分为滤波器各种直观特性,另外一部分为滤波器参数设定。其中包括滤波器类型设置、设计方法设置、滤波器阶数设置、滤波器频率值设置和滤波器幅值设置[8-10],在对滤波器设置时,根据需要设计的滤波器参数,在FDAtool界面中直接点击各种设置即可,无需进行编程操作。
2.2 在FDAtool中设计FIR数字滤波器
若要设计一个采样频率fs=2 000 Hz,通带截止频率为500 Hz,阻带的截至频率为600 Hz,阻带内最小衰减为40 dB,通带内最大衰减为3 dB。首先是在matlable命令窗口输入 FDAtool指令[11],出现FDAtool界面之后,选择低通滤波器(Low-pass),然后再选FIR滤波器中的等波纹法及最小阶数,最后确定滤波器的幅值大小和各种限制频率值。在Frenquency Specification中,将上述频率值依次填到相应的频率设定值中,在MagnitudeSpecification(幅度设定)中,令 Apass(通带波纹)=3 dB;Astop(阻带衰减)=40 dB,执行Design Filter即可。点击菜单中的Analysis,其中包括滤波器幅度和相位特性。
3 基于信号处理的Simulink仿真
Simulink是Matlab中的仿真软件,在Simulink中包含了丰富的数字信号处理功能模块,用Simulink对滤波器进行仿真时,可先搭建好仿真模块图[12],然后可对滤波器性能进行实时观测。
图4 Simulink滤波仿真图
如若采用最小二乘法设计一个采样频率为1 000 Hz的信号源,sin(30Pt) +0.5*sin (180Pt) +0.2*sin(600Pt),通带为[0.2 0.4],对该信号进行滤波,图4的3个正弦模块将产生sin(30Pt)+0.5*sin(180Pt) +0.2*sin(600Pt)3 个基本波形,经 Add 混合后产生波源信号,然后导入FDAtool中,点击Simulink中的start按钮进行仿真,可在Scope中观测信号源波形及滤波后波形[13]。
图5 源信号波形
图6 输出信号波形
4 结 论
文中是在Matlab软件下对FIR滤波器进行的设计,通过在过程中逐步比对滤波器的特性参数以及滤波器输出曲线[14],设计者可方便的更改滤波器的参数,使得滤波器的设计与以往的硬件设计相比较更加简单、直观,且大幅减少了设计成本。因此,在以后的滤波器设计中,设计者可先经过滤波器仿真,然后再进行具体的硬件设计,由于Matlab中强大的数字信号处理功能[15],故该方面的应用将会更胜一筹。
[1]李腾飞,张辉.基于LabWindows/CVI和Matlab的滤波器设计[J].电子科技,2007(3):29-31.
[2]黄建亮,傅丰林.基于FPGA的自适应FIR复数滤波器设计[J].电子科技,2006(1):1-4.
[3]彭红平,杨福宝.基于Matlab的FIR数字滤波器设计 [J].武汉理工大学学报:信息与管理工程版,2005(5):275-278.
[4]常巍,陈玮.基于Matlab Guide的低通滤波器设计[J].电子科技,2014,27(6):29-31.
[5]HAN K H,KIM J H.Quantum-inspired evolutionaryalgorithm for a class of combinational optimization[J].IEEE Trans,On Evolntionary Computation,2002,6(6):580-893.
[6]HEY T.Quantum computing:an introduction[J].Computing&Control Engineering Journal,2012,10(3):105-112.
[7]Fan W X,Li Z P,Gong S X.Tri-band filter using combined E-type resonators [J].Electronics Letters,2013,49(3):193-194.
[8]Sun S J,Su T,Deng K,Wu B and Liang C H.Shorted-ended stepped-impedance dual-resonance resonator and its application tobandpass filters[J].IEEE Trans on Microwave Theory Tech,2013,61(9):3209-3215.
[9]Lee C H,Hsu C I G,Jhuang H K.Design of a new tri-band microstrip BPF using combined quarter-wavelength SIRs [J].IEEE Microw Wirel Compon Lett,2006,16(11):594-596.
[10]Mokhtaari M,Bornemann J,Rambabu K,and Amari S.Coupling-matrix design of dual and triple passband filters [J].IEEE Trans onMicrowave Theory Tech,2006,54(11):3940-3946.
[11]Luo S,Zhu L,Sun S.Compact Dual-Mode Triple-Band Bandpass Filters Using Three Pairs of Degenerate Modes in ARing Resonator[J].IEEE Trans on Microwave Theory Tech,2011,59 (5):1222-1229.
[12]Chen W Y,Weng M H,Chang S J.A new triband bandpass filter based on stub-loaded stepimpedance resonator[J].IEEE Microw Wirel Compon Lett,2012,22(4):179-181.
[13]Xu K D,Zhang Y H,Li D T,et al.Novel design of a compact triple-band bandpass filter usingshort stub-loaded SIRs and embedded SIRs structure[J].Progress in Electromagnetics Research,2013,14(2):309-320.
[14]赖鑫,梁昌洪,李良,等.一种新型的微带三通带滤波器设计法 [J].西安电子科技大学学报,2010,37(5):884-887.
[15]Zhang S B,Zhu L.Compact and high-selectivity microstripbandpass filters using triple-/quad-mode stub-loaded resonators[J].IEEEMicrow Wirel Compon Lett,2011,21(10):522-524.
Design of FIR digital filter based on MATLAB
JIANG Nan,LI Wei
(91550 Troops,Dalian 116023,China)
The for traditional FIR filter design method is tedious,complicated design steps and processes,and well designed filter cannot directly modify filter parameters to observe change filter,the design of the FIR digital filter based on MATLAB.MATLAB function is very powerful,in the finite impulse response filter(FIR) design,the use of FDATool tools,according to different needs,the design of different filtering functions.It can quickly deal with the objective function and theoretical comparison of the real-time processing of the curve and the objective function,can achieve real-time modification and enable the design of the filter is more convenient,fast and intuitive,save time.This paper takes the design of FIR filter as an example,and makes the processing of noise in the signal.The simulation is carried out with MATLAB,and the realization of the theory is verified.
MATLAB; FIR digital filter; simulation
TN713.7
:A
:1674-6236(2017)14-0187-03
2016-05-31稿件编号:201605311
江 楠(1982—),女,黑龙江哈尔滨人,硕士,工程师。研究方向:数字信号处理。