FIR数字滤波器的设计文档格式.docx
《FIR数字滤波器的设计文档格式.docx》由会员分享,可在线阅读,更多相关《FIR数字滤波器的设计文档格式.docx(16页珍藏版)》请在冰豆网上搜索。
(3)迅速准确的进行工程计算的能力,计算机应用能力;
(4)用简洁的文字,清晰的图表来表达自己设计思想的能力。
2.FIR数字滤波器的理论基础
数字滤波是数字信号处理的基本方法。
而数字滤波器是数字信号处理中最重要的组成部分之一,几乎出现在所有的数字信号处理系统中。
数字滤波器大略可分为有限冲激响应型(FIR)和无限冲激响应型(IIR)两类,可用硬件和软件两种方式实现。
FIR滤波器是一种常用的滤波器,能实现各种各样的功能,诸如低通滤波、带通滤波、抗混叠、抽样和内插等。
在设计任意幅频特性的同时能够保证严格的线性相位特性。
因此,它在图像处理以及数据传输、无线通信等数字信号处理中有着广泛的应用。
数字信号处理是把信号用数字或符号表示的序列,通过计算机或者通用(专用)信号处理设备,用数字的数值计算方法处理(例如滤波、变换、压缩、增强、估计、识别等),以达到提取有用信息便于应用的目的。
有限长单位冲激响应(FIR)数字滤波器可以做成具有严格的线性相位,同时又可以具有任意的幅度特性。
此外,FIR滤波器的单位抽样响应是有限长的,因而滤波器一定是稳定的。
再有,只要经过一定的延时,任何非因果有限长序列都能变成因果有限长序列,因而总能用因果系统来实现。
最后,FIR滤波器由于单位冲激响应是有限长的,因而可以用快速傅里叶变换算法来实现过滤信号,从而可大大提高运算的效率。
FIR滤波器单位冲激响应h(n)的特点:
其单位冲激响应h(n)是有限长(
),系统函数为:
(2-1)
在有限Z平面有(N-1)个零点,而它的(N-1)个极点均位于原点z=0处[1]。
2.1FIR数字滤波器的基本原理和结构
设h(n)(n=0,1,2,…,N一1)为滤波器的冲激响应,输入信号为x(n),则滤波器FIR就是要实现差分方程:
(2-2)
公式(2-2)就是FIR滤波器的差分方程。
N为滤波器的阶数。
它的单位脉冲响应h(n)是一个有限长序列。
由上面的方程可见,FIR滤波算法实际上是一种乘法累加运算,它不断地输入样本x(n),经延时(z-1),做乘法累加,再输出滤波结果y(n)。
对公式(2-2)进行z变换,整理后可得FIR滤波器的传递函数为
(2-3)
从公式(2-3)可以看出,FIR滤波器的一般结如图2-1所示:
图2-1FIR滤波器的结构图
由公式(2-2)、公式(2-3)可见H(z)为z-1的N-1阶多项式,它在z平面上有N-1个零点并在原点z=0处有N-1重极点。
故H(z)永远为稳定系统。
若h(n)呈现对称特性,即此FIR滤波器具有线性相位,则可以简化加横截型结构,下面分情况讨论:
所以FIR滤波器具有如下特点:
①给h(n)附加一定条件就可以实现严格的线性相位特性;
②FIR滤波器的稳定性,在设计过程中不必考虑系统的稳定性问题;
③由于h(n)为有限长,便于采用FFT进行系统运算,运算效率高;
④FIR滤波器的阶数由h(n)的长度决定,所以一个具有良好的幅频特性的FIR滤波器的阶数往往都比较高。
图2-2N为奇数时线形相位FIR滤波器实现结构
图2-3N为偶数时线性相位FIR滤波器实现结构
2.2FIR滤波器的性能指标和性质
2.2.1FIR滤波器的性能
我们在进行滤波器设计时,需要确定其性能指标。
一般来说,滤波器的性能要求往往以频率响应的幅度特性的允许误差来表征。
以低通滤波器特性为例,频率响应有通带、过渡带及阻带三个范围。
在通带内:
1-AP≤|H(ejω)|≤1|ω|≤ωc
在阻带中:
|H(ejω)|≤Astωst≤|ω|≤ωc
其中ωc为通带截止频率,ωst为阻带截止频率,Ap为通带误差,Ast为阻带误差。
与模拟滤波器类似,数字滤波器按频率特性划分为低通、高通、带通、带阻、全通等类型,由于数字滤波器的频率响应是周期性的,周期为2π。
各种理想数字滤波器的幅度频率响应如图所示:
图2-4低通滤波器频率响应幅度特性的容限图
图2-5各种理想数字滤波器的幅度频率响应
2.2.2FIR滤波器的性质
如果FIR滤波器的单位抽样响应h(n)为实数,而且满足以下任一条件:
偶对称h(n)=h(N-1-n)
奇对称h(n)=-h(N-1-n)
其对称中心在n=(N-1)/2处,则滤波器具有准确的线性相位。
窗函数设计法:
一般是先给定所要求的理想滤波器频率响应
,由
导出
,我们知道理想滤波器的冲击响应
是无限长的非因果序列,而我们要设计的是
是有限长的FIR滤波器,所以要用有限长序列
来逼近无限长序列
,设:
(2-4)
常用的方法是用有限长度的窗函数w(n)来截取
即:
(2-5)
这里窗函数就是矩形序列RN(n),加窗以后对理想低通滤波器的频率响应将产生什么样的影响呢?
根据在时域是相乘关系,在频域则是卷积关系:
(2-6)
其中,
为矩形窗谱,
是FIR滤波器频率响应.
通过频域卷积过程看
的幅度函数H(ω)的起伏现象,可知,加窗处理后,对理想矩形的频率响应产生以下几点影响:
(1)使理想频率特性不连续点处边沿加宽,形成一个过渡带,其宽度等于窗的频率响应的主瓣宽度。
(2)在截止频率的两边的地方即过渡带的两边,出现最大的肩峰值,肩峰的两侧形成起伏振荡,其振荡幅度取决于旁瓣的相对幅度,而振荡的多少,则取决于旁瓣的多少。
(3)改变N,只能改变窗谱的主瓣宽度,改变ω的坐标比例以及改变的绝对值大小,但不能改变主瓣与旁瓣的相对比例(此比例由窗函数的形状决定)。
(4)对窗函数的要求
a、窗谱主瓣尽可能窄,以获取较陡的过渡带;
b、尽量减小窗谱的最大旁瓣的相对幅度;
即能量集中于主瓣,使肩峰和波纹减小,增大阻带的衰减。
频率采样法:
窗函数设计法是从时域出发,把理想的hd(n)用一定形状的窗函数截取成有限长的h(n),来近似理想的hd(n),这样得到的频率响应
逼近于所要求的理想的频率响应
。
频率抽样法则是从频域出发,把给定的理想频率响应
加以等间隔抽样得到
,然后以此
作为实际FIR滤波器的频率特性的抽样值H(k),即
(2-7)
知道H(k)后,由DFT定义可唯一确定有限长序列h(n),利用这N个频域抽样值H(k)同样利用频率内插公式可得FIR滤波器的系统函数H(z),及频率响应
频率抽样法内插公式:
(2-8)
频率抽样法小结:
优点:
可以在频域直接设计,并且适合于最优化设计。
缺点:
抽样频率只能等于2π/N的整数倍,或等于2π/N的整数倍加上π/N。
因而不能确保截止频率
的自由取值,要想实现自由地选择截止频率,必须增加抽样点数N,但这又使计算量增大。
为了提高逼近质量,减少通带边缘由于抽样点的陡然变化而引起的起伏振荡。
有目的地在理想频率响应的不连续点的边缘,加上一些过渡的抽样点,增加过渡带,减少起伏振荡。
线性相位的FIR滤波器有两种对称的类型,对称和反对称。
在对称和反对称的情形下,脉冲响应的特性如下表所述。
表2-1线性相位FIR滤波器的幅度特性与相位特性表
2.3FIR数字滤波器的设计方法
使用FIR滤波器可以实现严格的线性相位特性,但其幅频特性的设计方法与IIR滤波器完全不同。
FIR滤波器的设计方法有:
窗函数法、频率采样法、切比雪夫等波纹逼近法等。
FIR数字滤波器的设计思想是:
在保证线性相位条件的前提下,选择合适的h(n)长度
,使其传输函数H(ejω)满足技术指标要求。
我门常使用的窗函数有矩形窗、三角形窗、汉宁窗、哈明窗、布莱克曼窗和凯塞窗[1]。
表2-2六种窗函数的基本参数
窗函数
旁瓣峰值幅度dB
过度带宽
阻带最小衰减dB
矩型窗
-13
4
/N
-21
三角窗
-25
8
汉宁窗
-31
-44
海明窗
-41
-53
布来克曼窗
-57
12
-74
凯塞窗(a=7.865)
10
-80
(1)矩形窗(RectangleWindow)
(2-9)
其频率响应和幅度响应分别为:
,
(2-10)
(2)三角形窗(BartlettWindow)
(2-11)
其频率响应为:
(2-12)
(3)汉宁(Hanning)窗,又称升余弦窗
(2-13)
(2-14)
(4)海明(Hamming)窗,又称改进的升余弦窗
(2-15)
其幅度响应为:
(2-16)
(5)布莱克曼(Blankman)窗,又称二阶升余弦窗
(2-17)
(2-18)
(6)凯泽(Kaiser)窗
(2-19)
3.MATLAB概述
MATLAB是由美国MathWorks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。
它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。
MATLAB和Mathematica、Maple并称为三大数学软件。
它在数学类科技应用软件中在数值计算方面首屈一指。
MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。
MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。
在新的版本中也加入了对C,FORTRAN,C++,JAVA的支持。
可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用。
MATLAB产品族可以用来进行以下各种工作:
数值分析、数值和符号计算、工程与科学绘图、控制系统的设计与仿真、数字图像处理技术、数字信号处理技术、通讯系统设计与仿真。
MATLAB在通讯系统设计与仿真的应用于财务与金融工程、管理与调度优化计算(运筹学)等。
MATLAB的应用范围非常广,包括信号和图像处理、通讯、控制系统设计、测试和测量、财务建模和分析以及计算生物学等众多应用领域。
附加的工具箱(单独提供的专用MATLAB函数集)扩展了MATLAB环境,以解决这些应用领域内特定类型的问题。
MATLAB特点:
1)高效的数值计算及符号计算功能,能使用户从繁杂的数学运算分析中解脱出来;
2)具有完备的图形处理功能,实现计算结果和编程的可视化;
3)友好的用户界面及接近数学表达式的自然化语言,使学者易于学习和掌握;
4)功能丰富的应用工具箱(如信号处理工具箱、通信工具箱等),为用户提供了大量方便实用的处理工具。
4.FIE数字滤波器的设计具体内容
4.1FIR数字滤波器的设计内容
本次采用窗函数中汉宁窗进行一个通带滤波器。
指标要求如下:
低端阻带截止频率ws1=0.2π;
低端通带截止频率wp1=0.35π;
高端阻带截止频率ws2=0.8π;
高端通带截止频率wp2=0.65π;
通带最大衰减RP=1dB;
阻带最小衰减As=50dB
试绘出h(n)及其幅频特性曲线。
注:
用窗函数法设计FIR数字滤波器时,应先求出相应的理想滤波器的单位脉冲响应hd(n),再根据阻带最小衰减选择合适的窗函数w(n),最后得到FIR滤波器的单位脉冲响应h(n)=hd(n)w(n)。
4.2设计步骤
(1)根据对过渡带宽及阻带衰减要求,选择窗函数的类型并估计窗函数长度N(或阶数M=N-1),两者确定之后即可调用MATLAB中的窗函数
(2)根据待求滤波器的理想频率响应求出单位脉冲响应hd(n)(即傅立叶反变换)hd(n)=IDTFT[Hd(ejw)],Hd(ejw)为定的滤波器所要求的频率响应函数;
(3)计算滤波器的单位脉冲响应h(n).它是理想脉冲响应和窗函数的乘积h(n)=hd(n)*
(4)求出FIR滤波器的频率响应(即傅立叶变换)H(ejw)=DTFT[h(n)],并检验是否满足要求为止。
(5)调用绘图子程序(函数)绘制H(k)幅度相位曲线。
设计流程图如下图4-1所示
图4-1用窗函数法设计滤波器的主程序框图
4.3具体程序清单
用MATLAB编写的程序如下:
下阻带边缘ws1=0.2πAs=50dB
下通带边缘W1p=0.35πRp=1dB
上通带边缘wp2=0.65πRp=1dB
下阻带边缘ws2=0.8πAs=50dB
ws1=0.2*pi;
wp1=0.35*pi;
wp2=0.65*pi;
ws2=0.8*pi;
As=50;
tr_width=min((wp1-ws1),(ws2-wp2));
M=ceil(8*pi/tr_width)+1%结果M=55
n=[0:
1:
M-1];
wc1=(ws1+wp1)/2;
wc2=(wp2+ws2)/2;
hd=ideal_lp(wc2,M)-ideal_lp(wc1,M);
w_bla=(hanning(M))'
%采用hanning窗
h=hd.*w_bla;
[db,mag,pha,grd,w]=freqz_m(h,[1]);
delta_w=2*pi/1000;
Rp=-min(db(wp1/delta_w+1:
wp2/delta_w))%实际的通带波结果
rp=0.0709
As=-round(max(db(ws2/delta_w+1:
501)))%结果as=45
RHpah=unwrap(pha);
%进行相位解卷绕,消除360度跳动
subplot(2,2,1);
stem(n,hd);
title('
idealimpulseresponse'
);
axis([0M-1-0.40.4]);
xlabel('
n'
ylabel('
hd(n)'
)
subplot(2,2,2);
stem(n,w_bla);
hanningwindow'
axis([0M-102]);
w(n)'
subplot(2,2,3);
plot(w/pi,RHpah);
%解卷绕后的系统频响的相位
频率(Hz)'
相位(degrees)'
相频曲线'
axis([01-5030]);
subplot(2,2,4);
plot(w/pi,db);
axis([01-15010]);
magnituderesponseindb'
grid;
frequencyinpiunits'
decibels'
执行结果如下:
5.结论
通过本次课程设计,使我更加扎实的掌握了有关数字滤波器方面的知识,在这次课程设计中虽然遇到了很多的困难,但是经过一次又一次的查阅资料,一次一次的认真思考,终于找出了原因,通过这次课程设计,了解知识还是需要通过实践才能真正的掌握住精髓。
通过这一周的课程设计,从查找资料,题目选定,到最后的实践成稿。
正在这其中学到了很多的东西。
既巩固了在课堂上学习的知识,也在查找资料的过程中也学到了很多课本上没有学习到的知识,可以说是收获颇丰。
通过这次课程设计将理论与实践相结合,从中提高而来自己独立思考能力和实践动手能力,从而不断超越自己,学会了坚持不懈,坚持到底。
参考书目
[1]程佩青,《数字信号处理教程(第三版)》,北京,清华大学出版社,2011年
[2]张志田,何其文,《基于窗函数法的FIR数字滤波器的设计》,湖南科技学院学报,2007年
[3]陈怀琛,《数字信号处理教程—MATLAB释义与实现》,北京,电子工业出版社, 2004年
[4]胡广书,《数字信号处理导论》,北京,清华大学出版社,,2005年
[5]阎毅,黄联芬.,《数字信号处理》,北京,北京大学出版社,2006年
[6]张志田,何其文,《基于窗函数法的FIR数字滤波器的设计》,湖南科技学院学报,2007年
[7]罗鹏飞,杨世海,朱国富等,《数字信号处理实践方法》,北京,电子工业出版社,2004年
[8]罗军辉,罗勇江等,《MATLAB在数字信号处理中的应用》,北京,机械工业出版社,2005年
《数字信号处理》课程设计指导教师评语
评语:
(签字)
年月日