




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 数字信号处理课程设计报告选题名称: 系(院): 专 业: 班 级: 姓 名: 学 号: 指导教师: 学年学期: 2010 2011 学年 第 1 学期 2011 年 01 月 08 日设计任务书课题名称IIR滤波器分析与设计设计目的1. 理解并掌握无限脉冲响应数字滤波器(IIR)的机理,分析IIR滤波器的结构特性,观察IIR滤波器的频域特性;2. 学习IIR数字滤波器的三种典型的设计方法,并观察、比较设计结果;3. 熟悉IIR数字滤波器的计算机编程;4. 加深对课堂知识的理解与灵活应用,学习开发资料的收集与整理,学会撰写课程设计报告。实验环境1. 微型电子计算机(PC);2. MATLAB
2、6.5或Visual C+ 6.0等开发环境。任务要求1. 利用课余时间查阅课题相关资料,深入理解课题含义及设计要求,注意材料收集与整理;2. 在第18周完成预设计,并请指导教师审查,通过后方可进行下一步工作;3. 按指导书要求设计软件;4. 要求形成稳定的程序软件,可以运行,方可申请答辩;5. 结束后,及时提交课程设计报告(含纸质稿、电子稿)。工作进度计划序号起止日期工 作 内 容12011.01.032011.01.03在预设计的基础上,进一步查阅资料,完善设计方案,形成书面材料。22011.01.042011.01.05设计总体方案,构建绘制流程框图,编写代码,上机调试。32011.01
3、.062011.01.07测试程序,优化代码,增强功能,撰写设计报告。42011.01.082011.01.08提交软件代码、设计报告,参加答辩,根据教师反馈意见,修改、完善设计报告。指导教师(签章): 年 月 日 摘要: 数字滤波器是指输入、输出均为数字信号,通过一定的运算关系改变输入信号所含频率成分的相对比例或滤除某些频率成分的器件。它在各种数字信号处理领域均有广泛的应用,其质量的优劣直接决定着数字产品的质量,数字滤波器按网络结构可分为IIR数字滤波器和FIR数字滤波器,其中IIR数字滤波器因结构简单,体积小,可靠性高,运算速度快等优点,在一些对相位要求不十分严格的场合有重要作用。本设计是
4、利用Matlab语言对IIR数字滤波器设计建立一个软件仿真平台,系统由巴特沃斯滤波器、切比雪夫型滤波器、切比雪夫型滤波器等组成,每种滤波器也包含低通、高通、带通、带阻滤波的设计,设计结果由时域单位脉冲响应图形幅度谱、相位谱以及极零点图表示,并输入音频文件测试滤波功能,还可任意修改各系统参数以分析研究滤波器设计结果,形象直观。关键词:数字滤波器;Matlab;IIR数字滤波器;仿真目录1 课题综述11.1 课题来源及意义11.2 实现的功能12 系统分析12.1 设计的基础知识12.2 IIR滤波器的MATLAB实现33 系统设计33.1 IIR滤波器的设计33.2 系统框图44 代码编写54.
5、1 巴特沃斯低通与高通的实现代码54.2 巴特沃斯带通与带阻实现代码54.3 切比雪夫1低通与高通的实现代码64.4 切比雪夫2低通与高通的实现代码65运行与调试75.1 运行界面75.2 程序调试11总 结12致 谢13参 考 文 献141 课题综述1.1 课题来源及意义数字滤波是数字信号处理的重要内容,是由乘法器、加法器的单位掩饰器组成的一种运算过程,其功能是对输入离散信号进行运算处理,以达到改变信号频谱的目的。数字滤波器根据频域特性可为低通、高通、带通和带阻四个基本类型;根据时域特性可分为无限长单位冲激响应IIR(Infinite Impulse Response)滤波器和有限长单位冲激
6、响应FIR(Finite Impulse Response)滤波器。其中MATLAB软件为数字滤波的研究和应用提供了一个直观、高效、便捷的利器。它以矩阵运算为基础,把计算、可视化、程序设计融合到了一个交互式的工作环境中,其中信号处理、图像处理、小波等工具箱为数字滤波研究的蓬勃发展提供了有力的工具。数字滤波在通信、图像编码、语音编码、雷达等许多领域中有着十分广泛的应用。目前,数字信号滤波器的设计图像处理、数据压缩等方面的应用取得了令人瞩目的进展和成就。鉴于此,数字滤波器的设计显得尤为重要。1.2 实现的功能 用MATLAB仿真软件设计出IIR滤波器的主要框架,里面包含巴特沃斯滤波器、切比雪夫两种
7、滤波器的低通,高通,带通,带阻滤波,输入音频文件观察声音是否进行了滤波,在高通、低通、带通、带阻滤波的情况下音频输出有何不同,并比较各滤波器滤波效果。2 系统分析2.1 设计的基础知识2.1.1 巴特沃斯滤波器的原理IIR滤波器的系统函数可以用极、零点表示:IIR滤波器的系统函数的设计就是确定H(Z) 中的ak, bk,或确定ck、dk 及 A,以使滤波器满足给定性能的要求。若通过模拟滤波器来设计数字滤波器,则:首先,设计一个合适的模拟滤波器Ha(s),然后,变换成满足预定指标的数字滤波器H(z) 。常用模拟原型滤波器有巴特沃斯滤波器、切比雪夫滤波器,模拟低通滤波器的技术指标:Ap 、As 、
8、s、p设计目标:确定滤波器阶次N和截止频率c。 进而可以求得k=1, 2, , N 2.1.2 脉冲响应不变法的基本原理脉冲相应不变法是从从滤波器的脉冲响应出发,使数字滤波器的单位脉冲响应序列h(n)模仿模拟滤波器的冲激响应,将等间隔采样,使h(n)正好等于的采样值。对h(n)求Z变换,即得数字滤波器的系统函数2.1.3 双线性变换法的基本原理采用非线性频率压缩方法:首先,将S平面压缩映射到S1平面的 横带区域;其次,通过标准变换关系 将此横带区域变换到Z平面。从频率响应出发,直接使数字滤波器的频率响应 ,逼近模拟滤波器的频率响应 ,进而求得H(z)。S1平面映射到Z平面: 得到 从而得到S平
9、面和Z平面的单值映射关系为: 2.2 IIR滤波器的MATLAB实现数字信号处理工具箱提供的butter函数可以实现Butterworth模拟和数字的设计,其特性是通带的幅值响应最大限度的平坦,而损失过度的陡度。其中数字域的butter的函数格式为b,a=butter(w,wn)可设计出截止频率为wn的n阶低通数字Butterworth滤波器。采用滤波器设计工具fdatool在相应的界面填写相应数字滤波器的技术指标,并选择相应的滤波器类型即可,也可利用simulink中的数字滤波器模块进行,数字滤波器的设计与指标分析。3 系统设计3.1 IIR滤波器的设计(1)创建图形化用户界面 在Blank
10、 GUI的空白窗体上放置面板控件、标签控件以及编辑框、按钮和组合框控件,并设置其属性进行设置,最后保存结果。(2)编写控件回调函数选中按钮,打开其属性设置对话框,找到“Callback”项,单击其右侧的图标,会自动进入IIRMainForm.m文件的编辑界面。在系统所给的完整的结构框架下输入需要调用的代码。例在function Button_A_Callback(hObject, eventdata, handles)下添加IIR_DispMag;同理,为其他五个按钮建立的响应函数如下:function Button_P_Callback(hObject, eventdata, handles
11、) %相位图IIR_DispAngle;function Button_SP_Callback(hObject, eventdata, handles) %零、极点图IIR_DispZplane;function Button_WAV_Callback(hObject, eventdata, handles) %打开波形文件IIR_GetWAVFile;function Button_Play1_Callback(hObject, eventdata, handles) %播放原始文件IIR_Playorg;function Button_Play2_Callback(hObject, eve
12、ntdata, handles) %播放滤波后文件IIR_Playmod;(3)编写功能子函数新建m文件,编写各功能子函数的代码,显示幅度谱函数IIR_DispMag;显示相位谱函数IIR_DispAngle;显示极零点函数IIR_DispZplane;以及选择波形文件函数IIR_GetWAVFile; 播放原始文件函数IIR_Playorg; 播放滤波后文件IIR_Playmod;3.2 系统框图开始读入数字滤波器技术指标将指标转换成归一化模拟低通滤波器的指标设计归一化的模拟低通滤波器阶数N和3db截止频率模拟域频率变换,将G(P)变换成模拟带通滤波器H(s)用双线性变换法将H(s)转换成数
13、字带通滤波器H(z)输入信号后显示相关结果结束4 代码编写4.1 巴特沃斯低通与高通的实现代码if(strcmp(fil_name,'巴特沃斯') if(strcmp(fil_type,'低通') Wp=2*pi*f2/f1; Ws=2*pi*f3/f1; OmigaP=Wp*f1; OmigaS=Ws*f1; n W=buttord(OmigaP,OmigaS,Rp,Rs,'s'); B A=butter(n,W,'s'); num,den=impinvar(B,A,f1); elseif(strcmp(fil_type,
14、9;高通') Wp=2*pi*f2/f1; Ws=2*pi*f3/f1; OmigaP=Wp*f1; OmigaS=Ws*f1; n W=buttord(OmigaP,OmigaS,Rp,Rs,'s'); B A=butter(n,W,'high','s'); num,den=impinvar(B,A,f1); % msgbox('暂时只能低通滤波器!'); % FlagYYY=0;4.2 巴特沃斯带通与带阻实现代码 elseif(strcmp(fil_type,'带通') Wp=2*pi*f2,f22/f
15、1; Ws=2*pi*f3,f32/f1; OmigaP=Wp*f1; OmigaS=Ws*f1; n W=buttord(OmigaP,OmigaS,Rp,Rs,'s'); B A=butter(n,W,'s'); num,den=impinvar(B,A,f1); elseif(strcmp(fil_type,'带阻') Wp=2*pi*f2,f22/f1; Ws=2*pi*f3,f32/f1; OmigaP=Wp*f1; OmigaS=Ws*f1; n W=buttord(OmigaP,OmigaS,Rp,Rs,'s');
16、B A=butter(n,W,'stop','s'); num,den=impinvar(B,A,f1); end4.3 切比雪夫1低通与高通的实现代码elseif(strcmp(fil_name,'切比雪夫1') if(strcmp(fil_type,'低通') Wp=2*pi*f2/f1; Ws=2*pi*f3/f1; OmigaP=Wp*f1; OmigaS=Ws*f1; n W=cheb1ord(OmigaP,OmigaS,Rp,Rs,'s'); B A=cheby1(n,Rp,W,'s')
17、; num,den=impinvar(B,A,f1); elseif(strcmp(fil_type,'高通') Wp=2*pi*f2/f1; Ws=2*pi*f3/f1; OmigaP=Wp*f1; OmigaS=Ws*f1; n W=cheb1ord(OmigaP,OmigaS,Rp,Rs,'s'); B A=cheby1(n,Rp,W,'high','s'); num,den=impinvar(B,A,f1); end4.4 切比雪夫2低通与高通的实现代码 elseif(strcmp(fil_name,'切比雪夫2&
18、#39;) if(strcmp(fil_type,'低通') Wp=2*pi*f2/f1; Ws=2*pi*f3/f1; OmigaP=Wp*f1; OmigaS=Ws*f1; n W=cheb2ord(OmigaP,OmigaS,Rp,Rs,'s'); B A=cheby2(n,Rp,W,'s'); num,den=impinvar(B,A,f1); elseif(strcmp(fil_type,'高通') Wp=2*pi*f2/f1; Ws=2*pi*f3/f1; OmigaP=Wp*f1; OmigaS=Ws*f1; n W
19、=cheb2ord(OmigaP,OmigaS,Rp,Rs,'s'); B A=cheby2(n,Rp,W,'high','s'); num,den=impinvar(B,A,f1); end % msgbox('暂时只针对巴特沃斯滤波器!'); %FlagYYY=0;end5 运行与调试5.1 运行界面图5.1巴特沃斯低通滤波器 图5.2 巴特沃斯滤波器的幅频特性 图5.3 巴特沃斯滤波器的相位谱图5.4 巴特沃斯滤波器零极点分布图图5.5切比雪夫1高通滤波器图5.6切比雪夫1滤波器幅频特性图5.7切比雪夫1滤波器相位谱图5.8
20、切比雪夫1滤波器零极点分布图5.2 程序调试在设计带通滤波器时,阻带的下限要小于通带的下限小于通带的上限小于阻带的上限,且采样频率的选取要大于2倍的最高频率,这样通带才能运行起来。在运行过程中,一开始由于在设计组合框控件属性时把value的值改成了0.0,0.1,导致程序运行不起来,经过修改只要把value的值重新改为0.0即可。编写完代码发现如果不把IIR_GetWAVFile()中info='源信号-' name '' str2num(time) '秒;fs=' str2num(freq) 'Hz' info=info;删掉的
21、话就不能导入音频文件。通过改变阻带衰减可以很清楚地观察到滤波的效果变好了。总结这次的课程设计是IIR滤波器的分析与设计,是在MATLAB的环境下实现的。由于在指导书上已经给了主要框架的设计以及部分实验代码,只要按照指导书上说的一步步做下去,并结合注释加以理解便可设计出大概的框架出来。但在设计切比雪夫型滤波器的低通,高通和带通带阻滤波器的时候还是遇到了很多问题,代码可以参照以前的实验,老师上课所讲的例题,但在用MATLAB设计框架这一块还有很多不理解,比如guidata函数是如何将结构handles与GUI界面共同保存起来,handles结构函数是如何实现不同回调函数之间共享用户数据的功能的。但
22、是对于Callback回调函数还是掌握了很多的。这次课程设计中,脉冲响应不变法与双线性变换法在平时已经接触很多了,脉冲响应不变法的最大缺点是有频率响应的混叠效应。所以,脉冲响应不变法只适用于限带的模拟滤波器(例如,衰减特性很好的低通或带通滤波器),而且高频衰减越快,混叠效应越小。至于高通和带阻滤波器,由于它们在高频部分不衰减,因此将完全混淆在低频响应中。如果要对高通和带阻滤波器采用脉冲响应不变法,就必须先对高通和带阻滤波器加一保护滤波器,滤掉高于折叠频率以上的频率,然后再使用脉冲响应不变法转换为数字滤波器。双线性变换法与脉冲响应不变法相比,其主要的优点是避免了频率响应的混叠现象。这是因为S平面
23、与Z平面是单值的一一对应关系。对于音频滤波这一块,可以很清楚地听到在低通滤波时,音乐变慢了变低了,而在高通滤波时,音乐的声音明显变高变尖了。总之,这次的课程设计掌握了很多,不仅巩固了老师上课所讲的内容,还对MATLAB的其他功能有了更进一步的了解,对切比雪夫滤波器的设计也有了很多的了解,其功能实现的方法,原理,步骤都掌握了一些。致谢首先,主要感谢计算机工程学院给我提供的一个这样的实践机会和实验室人员提供的实验环境以及指导教师的辛勤指导,同组同学的互帮互助,参考文献的原作者,以及其给我提供过帮助的所有人员。本次课程设计是在指导老师的带领下完成的。课程设计从选题、实验研究到最后的成稿,都得到了老师的热情鼓励和悉心指导,凝聚了老师许多心血。画原理图时,由于对软件功能的不是很理解,很多错误都不知道怎么修改,通过询问老师,老师很细心地给我讲解,并告诉如何具体操作,一些常见的问题都给了我们解决的办法。课程设计中也有很多代码不是很理解,老师给我们修改、调试到出结果。真的很感谢老师给我们这么多帮助。无论课上还是课后,只要我们有问题,老师都会抽出时间帮自己调试,不孜不倦,老师向我们展示了他们负责认真的一面,他们的耐心使我们的成果有了希望,他们的负责认真告诉我们只要努力是可以成功的,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 物业火灾工程部应急预案(3篇)
- 老人火灾应急预案流程(3篇)
- 2025年法学概论考试复习资源及试题及答案
- 医院发生火灾应急预案存在问题(3篇)
- 软考网络专家试题及答案
- 复杂环境下的战略选择试题及答案
- 高考数学重要期末复习及答案
- 计算机软件水平考试试题及答案解析
- 定期审视和调整财务计划
- 2025商业店铺购买合同模板
- 部编版二年级下册语文课件语文园地七-小动物
- 融合终端微应用开发设计规范-版本
- 电力市场交易模式
- 妇科门诊护理质量控制管理考核标准
- 秋收起义-完整版课件
- 朝阳区编制外岗位应聘人员报名表
- 自动喷水灭火系统质量验收项目缺陷判定记录
- 人教版一年级起点小学二年级英语下册全套教案
- T-CCIAT 0043-2022 建筑工程渗漏治理技术规程
- 供货、安装、调试、验收方案
- 电气设备-开篇绪论汇编
评论
0/150
提交评论