资源描述
中国民航大学电子信息工程学院DSP技术及应用课程设计报告题 目:直接法设计IIR滤波器专业班级:2011级通信C班学号:姓名:指导教师:二 年 月 日目 录一、设计目的1二、设计要求1三、设计原理及方案1四、软件流程3五、调试分析4六、设计总结5 七、参考文献6一、 设计目的1、 复习数字信号处理教材中讲解的滤波器的基本设计方法。2、 通过查找资料学习prony和yule-walk滤波器的知识。3、 熟练掌握matlab的常用函数,学会对信号进行处理。4、学会使用matlab的GUI控件编辑图形用户界面。5、学习撰写ppt和报告的技巧,培养团队合作能力。二、 设计要求1、 查阅课题相关资料,学习matlab的基本语句,以及设计滤波器的知识,制定设计计划及设计思路。2、 搭建GUI平台,使界面中可以显示原信号时域、频域波形,加噪后信号的时域、频域波形,滤波器的频率响应波形,以及去噪后声音信号的时域、频域波形,方便进行对比。3、 可以打开任意wav格式声音文件。4、 通过添加播放与音量调节按钮,可对声音信号进行播放、调节音量操作。5、 通过录音按钮,可以现场采集声音信号并保存6、 向声音信号添加不同种类噪声,并且可以改变信噪比或噪声频率等参数。7、 用prony及yule-walk方法设计不同类型的IIR滤波器,滤除噪声信号。8、 通过在窗口中输入数值,可以改变滤波器阶数,以及通带与阻带的宽度。三、 设计原理及方案1、 yule-walk法设计IIR滤波器原理:yulewalk函数使用最小二乘拟合逼近给定的频率特性。不像模拟滤波器原型设计,yulewalk函数设计方法不是基于低通、高通、带通、带阻的设计参数,而是基于离散区域上的特征值。函数的用法如下:b,a=yulewalk(n,f,m)该函数返回yule-walk滤波器的系数矩阵b,a;其中矩阵f和m是已知的频率响应;n是滤波器的阶数。其中频率矩阵f的元素必须处于范围0,1之内,而且必须是升序排列,以0开始,以1结束。2. prony法设计IIR滤波器原理:和yule-walk法不同,prony法是根据给定的冲激响应设计滤波器的一种方法,prony在滤波器设计、指数信号建模、系统辨识等领域都有广泛的应用。在matlab里用prony函数实现:b,a=prony(h,nb,na)其中,nb,na指定滤波器的传递函数中分子和分母的阶数,h为给定的冲激响应,返回值中b和a的长度分别为nb+1和na+1,并且以升幂的形式给出系统的传递函数。3、设计原理图开始初始化(欢迎界面) 添加一个声音信号或录音得到时域、频域图形选择噪声种类并设定相关参数,添加噪声得到加噪后时域、频域图形对比对比 加噪后的声音 得到滤波后的时域、频域图形选择一种滤波器,设定相关参数,进行滤波得到滤波后的声音原理图说明:(1) 初始化:点击开始使用,进入主界面。(2) 添加一个声音信号或点击录制可以录制声音,点击添加后可以得到该声音信号的时域、频域波形。(3) 加入噪声:选择噪声种类、设定相关参数,点击添加后,得到加噪后的声音信号,并在界面中显示加噪后的声音信号的波形。(4) 滤波器滤波:选择适合的滤波器并设定相关参数,点击选择后获得加噪声音信号经滤波器滤波后的声音,以及它的时域、频域波形。四、平台介绍欢迎界面,点击“开始使用”进入主界面在点击“录音开始后”,会在下面的坐标中实时显示波形。在点击“选择声音信号”,可以选择任意声音信号。选择声音文件后,就会看到信号的波形和频谱图。选择噪声类型,并调整参数,点击“添加噪声信号”,即可看到加噪后信号的波形与频谱图。选择滤波器,调整相应参数,点击“使用滤波器”,即可看到去噪后信号的波形和频谱图,以及滤波器的图。五、调试分析在系统编程过程中我们遇到了许多问题,以下几点主要的进行分析说明:1、 在为声音信号加入正余弦噪声时,无法直接将原始声音与噪声信号相加。解决方法:由于噪声信号的长度与原始信号不同,必须重新设定使其长度相等,在正余弦噪声后添加“转置加”符号后,两者才可以进行相加。2、在最开始设计滤波器时,对prony以及yule-walk方法的原理不了解,设定的各项参数不合理。解决方法:通过上网查找资料,借阅书籍,组员之间不断探讨尝试,掌握两种方法的基本原理,设定合适的滤波器参数。3、不知道button间的数据如何传递。解决方法:设置全局变量,数据即可在程序中传递。 4、不知如何将下拉菜单和按钮关联。解决方法:获取popupmenu的string属性,并设为全局变量,在按钮中直接调用即可。5、在添加背景图后,运行时,坐标轴不能全部显示出来,只有在使用时才会显示。解决方法:在matlab中添加背景图后,坐标轴确实没有办法完全显示,只能改为使用软件提供的背景色,对界面进行美化。六、设计总结通过本次应用matlab实现直接法设计IIR滤波器实验,我们巩固了数字信号处理的知识,掌握了有关滤波器的设计方法,并学习了利用prony和yulewalk两种新的方法设计滤波器。在使用matlab处理声音信号和设计滤波器过程中和GUI平台的搭建过程中,我们组虽然遇到很多问题,但都经过查资料和询问同学使问题得到了解决,使我们对matlab的使用有了更加深刻的理解。这次课程设计的经历,我们都受益匪浅,在韩老师和何老师的指导下,我们不光在学术上有所收获,还在ppt设计以及答辩方便得到了很多技巧,而且这次实习还提高了我们团结合作的能力,我们相信这些宝贵的实习经历都会对我们以后的工作有所帮助。七、参考文献1 陈亚勇. MATLAB信号处理详解.北京:人民邮电出版社,2001.92 张小虹 王丽娟 任姝婕. 数字信号处理基础. 北京:清华大学出版社,20073 万永革.数字信号处理的MATLAB实现.北京:科学出版社,2008.1
展开阅读全文