FIR数字低通滤波器设计.docx
《FIR数字低通滤波器设计.docx》由会员分享,可在线阅读,更多相关《FIR数字低通滤波器设计.docx(15页珍藏版)》请在冰豆网上搜索。
FIR数字低通滤波器设计
FIR数字低通滤波器设计(总14页)
第1章绪论
设计的作用、目的
课程设计是理论学习的延伸,是掌握所学知识的一种重要手段,对于贯彻理论联系实际、提高学习质量、塑造自身能力等于有特殊作用。
本次课程设计一方面通过MATLAB仿真设计内容,使我们加深对理论知识的理解,同时增强其逻辑思维能力,另一方面对课堂所学理论知识作一个总结和补充。
设计任务及要求
通过课程设计各环节的实践,应使学生达到如下要求:
1.掌握双线性变换法及脉冲响应不变法设计IIR数字滤波器以及窗函数法设计FIR数字滤波器的原理、具体方法及计算机编程。
2.观察双线性变换法、脉冲响应不变法及窗函数法设计的滤波器的频域特性,了解各种方法的特点。
3.用MATLAB画出三种方法设计数字滤波器的幅频特性曲线,记带宽和衰减量,检查结果是否满足要求。
设计内容
设计题目:
FIR数字滤波器的设计
设计内容:
(1)设计一线性相位FIR数字低通滤波器,截止频率
,过渡带宽度
,阻带衰减
。
(2)设计一线性相位FIR数字低通滤波器,截止频率
,过渡带宽度
,阻带衰减
。
第2章FIR数字低通滤波器的原理
数字低通滤波器的设计原理
FIR数字滤波器传统的设计方法有窗函数法、频率抽样法和等波纹逼近法。
用窗函数设计FIR数字滤波器就是用有限长的脉冲相应逼近序列,其基本设计思想为:
首先选定一个理想的选频滤波器,然后截取它的脉冲响应得到线性相位。
滤波器(filter),是一种用来消除干扰杂讯的器件,将输入或输出经过过滤而得到纯净的直流电。
对特定频率的频点或该频点以外的频率进行有效滤除的电路,就是滤波器,其功能就是得到一个特定频率或消除一个特定频率。
就是允许某一部分频率的信号顺利的通过,而另外一部分频率的信号则受到较大的抑制,它实质上是一个选频电路。
1.滤波器的概念
滤波器是对输入信号起滤波的作用的装置。
当输入、输出是离散信号,滤波器的冲激响应是单位抽样响应
时,这样的滤波器称作数字滤波器(DF)。
DF是由差分方程描述的一类特殊的离散时间系统。
2.数字滤波器的系统函数与差分方程:
系统函数
(2-1)
差分方程
对上式进行Z反变换,即得:
(2-2)
3.数字滤波器结构的表示
数字滤波器分FIR数字滤波器和IIR数字低通滤波器。
其中FIR低通滤波器分直接型和级联型,IIR分直接型、级联型和并联型。
方框图法、信号流图法
图2-1三种基本运算的表示图
4.数字滤波器的分类
⑴按所处理的信号分为模拟滤波器和数字滤波器两种。
⑵按所通过信号的频段分为低通、高通、带通和带阻滤波器四种。
低通滤波器:
它允许信号中的低频或直流分量通过,抑制高频分量或干扰和噪声。
高通滤波器:
它允许信号中的高频分量通过,抑制低频或直流分量。
带通滤波器:
它允许一定频段的信号通过,抑制低于或高于该频段的信号、干扰和噪声。
带阻滤波器:
它抑制一定频段内的信号,允许该频段以外的信号通过。
⑶按所采用的元器件分为无源和有源滤波器两种。
无源滤波器:
仅由无源元件(R、L和C)组成的滤波器,它是利用电容和电感元件的电抗随频率的变化而变化的原理构成的。
这类滤波器的优点是:
电路比较简单,不需要直流电源供电,可靠性高;缺点是:
通带内的信号有能量损耗,负载效应比较明显,使用电感元件时容易引起电磁感应,当电感L较大时滤波器的体积和重量都比较大,在低频域不适用。
5.IIR滤波器与FIR滤波器的分析比较
FIR滤波器
IIR滤波器
设计方法
一般无解析的设计公式,要借助计算机程序完成
利用AF的成果,可简单、有效地完成设计
设计结果
可得到幅频特性(可以多带)和线性相位(最大优点)
只能得到幅频特性,相频特性未知,如需要线性相位,须用全通网络校准,但增加滤波器阶数和复杂性
稳定性
极点全部在原点(永远稳定)无稳定性问题
有稳定性问题
阶数
高
低
结构
非递归系统
递归系统
运算误差
一般无反馈,运算误差小
有反馈,由于运算中的四舍五入会产生极限环
表两种滤波器特点比较分析
FIR滤波器的原理
几种常用的窗函数
工程中比较常用的窗函数有:
矩形窗函数、三角形((Bartlett)窗函数、汉宁(Harming)窗函数、哈明(Hamming)窗函数、布莱克曼(Blackman)窗函数和凯塞(Kaiser)窗函数。
矩形窗(RectangleWindow)
图2.1 滤波器频率响应图. 矩形窗函数的脉冲响应
窗函数:
其频率响应:
主瓣宽度为4π/N,第一副瓣比主瓣低13dB。
三角形窗(BartlettWindow)
图 滤波器频率响应图 三角形窗函数的脉冲响
窗函数:
其频率响应:
其主瓣宽度为8π/N,第一旁瓣宽度比第一主瓣低26dB。
汉宁(Hanning)窗(又称升余弦窗)
图 滤波器频率响应图 汉宁窗函数的脉冲响应
窗函数:
频率响应:
当N>>1时,频率响应的幅度函数。
的主瓣宽度为8π/N,第一旁瓣比主瓣低31dB。
哈明(Hamming)窗(又称改进升余弦窗)
图 滤波器频率响应图 哈明窗函数的脉冲响应
窗函数:
其频域函数:
其幅度函数:
这种改进的升余弦窗,能量更加集中在主瓣中,主瓣的能量约%,第一旁瓣的峰值比主瓣小40dB,但主瓣和汉宁窗相同,为8π/N。
布莱克曼(Blackman)窗
图 滤波器频率响应图 布莱克曼窗函数的脉冲响应
窗函数:
频率响应:
幅度响应:
凯塞(Kaiser)窗
图 滤波器频率响应图 凯塞窗函数的脉冲响应
这是一种适应性较强的窗,是一种最优和最有用的窗。
它是在给定阻带衰减下给出一种大的主瓣宽度意义上的最优结果,这本身就是含着最陡峭的过渡带。
其公式为:
0≤n≤N-1
式中,
是第一类变形零阶贝塞尔函数,β是一个可自由选择的参数。
凯塞窗的优点:
1凯塞窗可提供变化的过渡带宽,通过改变β的值可达到最陡的过渡带;
2凯塞窗具有与海明窗相匹敌的特性,通过调整β的值,可将凯塞窗完全
等价于海明窗;
3凯塞窗最大旁瓣值比主瓣约低80dB,在所有的窗函数中旁瓣抑制度最大。
本次设计选用的是汉宁窗和哈明窗。
第3章FIR数字滤波器仿真分析
设计步骤
窗函数设计的基本思想是要选取某一种合适的理想频率选择性滤波器,然后将它的脉冲响应截断以得到一个线性相位和因果的FIR滤波器。
因此这种方法的重点在于选择某种合适的窗函数和一种理想滤波器。
1选择窗函数,计算窗函数长度N
对于给定的滤波器技术指标,选择滤波器长度和具有最窄主瓣宽度和尽可能小的旁瓣衰减的某个窗函数。
2构造
任何数字滤波器的频率响应
都是
的周期函数,它的傅立叶级数展开式为:
(3-1)
3求出
(3-2)
其中的
为滤波器的归一化的截止频率。
傅立叶系数
实际上就是理想数字滤波器的冲激响应。
获得有限冲激响应数字滤波器的一种可能方法就是把无穷级数截取为有限项级数来近似,而吉布斯(Gibbs)现象使得直接截取法不甚令人满意。
4加窗
窗函数法就是用被称为窗函数的有限加权系列{
}来修正式(3-2)的傅立叶级数,以求得要求的有限冲激响应序列
,即有:
(3-3)
是有限长序列,当n>N-1及n<0时,
。
数字低通滤波器MATLAB编程及幅频特性曲线
MATLAB语言编程
(1)汉宁窗的MATLAB语言编程
delta=*pi;%阻带截止频率
wc=*pi;%通带截止频率
as=30;%阻带最小衰减
n=ceil(8*pi/delta)+1;%计算窗体长度
win=hanning(n);%汉宁窗
h=fir1(n-1,wc/pi,win);%调用firl计算h(n),关于pi归一化
omega=linspace(0,pi,512);%0到pi分成512格
mag=freqz(h,[1],omega);%数字滤波器频率响应函数
magdb=20*log10(abs(mag));%abs为取绝对值
plot(omega,magdb);
axis([0pi-1000]);%axis([x最小值x最大值y最小值y最大值])
grid;%网格图
xlabel('频率')
ylabel('幅度/db');
(2)哈明窗的MATLAB语言编程
delta=*pi;
wc=*pi;
as=50;
n=ceil(8*pi/delta)+1;
win=hamming(n);%哈明窗
h=fir1(n-1,wc/pi,win);
omega=linspace(0,pi,512);
mag=freqz(h,[1],omega);
magdb=20*log10(abs(mag));
plot(omega,magdb);
axis([0pi-1000]);
grid;
xlabel('频率')
ylabel('幅度/db');
幅频特性曲线
(1)据汉宁窗MATLAB语言仿真的仿真图
(2)据哈明窗MATLAB语言仿真的仿真图:
优缺点
汉宁(Hanning)窗又称升余弦窗,汉宁窗可以看作是3个矩形时间窗的频谱之和,或者说是3个sinc(t)型函数之和,而括号中的两项相对于第一个谱窗向左、右各移动了π/T,从而使旁瓣互相抵消,消去高频干扰和漏能,是能量更加集中在主瓣中。
适用于非周期性的连续信号。
哈明窗本质上和汉宁窗是一样的,只是系数不同。
哈明窗比汉宁窗消除旁瓣的效果好一些而且主瓣稍窄,但是旁瓣衰减较慢是不利的方面。
适当地改变系数,可得到不同特性的窗函数。
其主瓣宽度与汉宁窗相同。
可见哈明窗是一种高效窗函数。
哈明窗和汉宁窗的主瓣具有最小的旁瓣和较大的衰减速度,是较为常用的窗函数。
第4章总结
本次课程设计使我们巩固有关数字信号处理相关内容的基础上,提高了我们的实践能力。
经过这次对MATLAB的学习和对MATLAB在数字信号系统和其他方面的实训,我充分的了解了MATLAB的实用性和便捷性,对我以后在其他方面的学习大有好处。
我觉得学习MATLAB首先要把基础掌握,然后是绘图,各种画图函数,函数图形的加工,最后是编程,这是最重要的,能解决很多问题,也是后面学习的基础。
这些方面掌握后,就可以做实践锻炼了,有很多技巧在实践中可以不断地积累。
这次课程设计对我的帮助很多,同时加深了对课堂上学习的知识的理解。
通过这次课程设计使我充分理解到数字信号处理的重要性和实用性,特别是加深了对MATLAB及其操作各方面的了解和设计,对实际操作设计中所涉及的各个方面要注意问题都有所了解。
通过这次对FIR数字滤波器的设计,不仅让我将所学的知识应用到实际中,而且对知识也是一种巩固和提升充实。
在老师和同学的帮助下,及时的按要求完成了设计任务,通过这次课程设计,使我获得了很多重要的知识,同时也提高了自己的实际动手和知识的灵活运用能力。
通过这一周的学习,学到了不少的知识!
不仅纠正了课程学习过程中出现的许多错误,还在运行MATLAB时验证了自己的一些猜想。
在学习的过程中有失败,当然也有困惑,有成功,当然就有喜悦。
虽然只是课程设计,但我拿出了自己的全部精力去对待,能学到知识固然值得骄傲,能认识到自己的过错和不足不也是一件幸事吗!
做学问也是做人,在做学问的过程中体味做人的道理不也是一种收获吗记得古语中说:
“学,然后知不足”!
希我必将更加努力的学习它完善自己。
我想这就是我这次做课程设计最大感受吧。
参考文献
1.高西全《数字信号处理》西安电子科技大学出版社2008
2.丁玉美《数字信号处理》西安电子科技大学出版社2008
3.张亚妮《基于MATLAB的数字滤波器设计》辽宁工程技术大学出版社2005
4.《数字信号处理实验指导书》电气与电子实验中心吉林建筑工程学院2011
5.刘波《MATLAB信号处理》电子工业出版社2006
6.刘卫国,陈昭民,张颖《Matlab程序设计与应用》高等教育出版社2002