1、中北大学课 程 设 计 说 明 书学 院: 信息与通信工程学院 专 业: 生物医学工程 题 目: 基于最小方差低通FIR滤波器 课 程 设 计 任 务 书1设计目的:根据所学的数字信号处理和MATLAB相关知识,用最小方差法设计一个低通FIR滤波器。2设计内容和要求(包括原始数据、技术参数、条件、设计要求等): 实现最优化设计,调节这些零点的分布,使得实际滤波器的频率响应Hd(ej)与理想滤波器的频率响应Hd(ej)之间的最大绝对误差最小。3设计工作任务及工作量的要求包括课程设计计算说明书(论文)、图纸、实物样品等:(1)查阅文献资料,了解相关知识;(2)确定设计方法;(3)编写MATLAB程
2、序,并上机调试;(4)撰写课程设计说明书。课 程 设 计 任 务 书4主要参考文献: 1 阎石.数字电子技术基础.北京:高等教育出版社,1998; 2 王远.模拟电子技术.北京:机械工业出版社,2001; 3 陈汝全.电子技术常用器件应用手册.北京:机械工业出版社,2003; 4 毕满清.电子技术实验与课程设计.北京:机械工业出版社,2006; 5 张俊谟.单片机中级教程-原理与应用.北京:北京航空航天大学出版社,2002;5设计成果形式及要求:提供课程设计说明书一份;MATLAB程序;6工作计划及进度: 2013年12月23 日 12 月25 日:查阅资料;12月26日 12 月 27 日:
3、确定设计方案;12月 28 日 12月31 日:编写程序,上机调试;2014年1月 1 日 1 月2 日:完成课程设计说明书;1月 3 日:答辩。系主任审查意见: 签字: 年 月 日中北大学2010届课程设计说明书目 录1 设计目标12 低通FIR滤波器技术指标13 低通FIR滤波器的设计13.1 低通FIR滤波器阶数的估计13.2 最小方差线性相位的误差13.3 参数、L的确定23.4 参数、的确定33.5 参数的确定34 用直接型结构实现115 用FDATOOL分析116 误差分析126.1 误差产生的原因126.2 误差的理论计算126.3 用FDATOOL分析不同字长对其幅频响应和相频
4、响应的影响137 总结148 参考文献15 1 设计目标 根据所学的数字信号处理和MATLAB相关知识,用最小方差法设计一个低通FIR滤波器。从FIR数字滤波器的系统函数可以看出,极点都是在z平面的原点,而零点的分布是任意的。不同的分布将对应不同的频率响应,最优化设计实际上就是调节这些零点的分布,使得实际滤波器的频率响应Hd(ej)与理想滤波器的频率响应Hd(ej)之间的最大绝对误差最小。2 低通FIR滤波器技术指标 (通带截止频率) (阻带截止频率) (通带衰减) (阻带衰减) (通带最大衰减) (阻带最小衰减)3 低通FIR滤波器的设计3.1 低通FIR滤波器阶数的估计 46 由于N为偶数
5、,所以可以设计一个1型的低通FIR滤波器。3.2 最小方差线性相位的误差 对于基于最小方差的线性相位FIR滤波器的设计下面式子为误差的简化为 其中是低通FIR的振幅响应,是要求的振幅响应,是权重函数。由于所有四种类型的线性相位FIR滤波器的振幅响应可以表示为 cos(wk)3.3 参数、L的确定cos(wk) 式中、L的确定a 的确定 由于不同类型也就不尽相同,不同类型时的表达式如下 =1 对于1型 =cos() 对于2型 =sin() 对于3型 =sin() 对于4型 由于我们 设计的低通FIR滤波器为1型所以 =1 b 的确定 同样根据不同的类型其的表达式也不一样 = 对于1型 = 对于2
6、型 = 对于3型 = 对于4型 我们选择=,对于1型,,C L 的确定 L=M 对于1型 L= 对于2型 L= M-1 对于3型 L= 对于4型根据N与M的关系 M=,表示取不大于的最大整数,所以M=22,L=22。3.4 参数、的确定 中、的确定 根据最小方差的相关要求可知 在通带中 在阻带中 在通带中 在阻带中3.5 参数的确定 根据上面式子可以确定,L的值和的表达式,由于最小方差是滤波器参数的一个函数。为了得到的最小值,令 由它可生成(L+1)个等式的线性方程组,用来求解。 我们考虑1型线性相位FIR滤波器的设计。在这种情况下,=1,=且L=22。则均方误差的表达式为 若有 ,式中。计算
7、如下1 求H, 1-15时取1,16-22时取0将0到0.35上取均匀的22点最后求的H=1 0.9987 0.9950 0.9888 0.980 0.968 0.955 0.939 0.921 0.900 0.877 0.853 0.825 0.796 0.765 0.732 0.697 0.660 0.622 0.582 0.540 0.498 ;1 0.995 0.980 0.955 0.921 0.877 0.825 0.765 0.697 0.622 0.540 0.454 0.363 0.268 0.170 0.07 0.028 0.128 0.226 0.322 0.415 0.
8、588;1 0.988 0.955 0.900 0.825 0.732 0.622 0.498 0.363 0.219 0.071 0.078 0.226 0.369 0.504 0.627 0.737 0.829 0.937 0.655 0.212 0.282 0.707 0.959 0.977 0.755 0.349 0.142 0.599 0.909 0.997 0.841 0.479;1 0.852 0.454 0.078 0.587 0.923 0.987 0.760 0.309 0.233 0.707 0.972 0.951 0.649 0.156 0.382 0.809 0.99
9、7 0.891 0.522 0 0.522 ;1 0.825 0.363 0.226 0.736 0.989 0.897 0.492 0.085 0.633 0.959 0.951 0.610 0.057 0.516 0.909 0.985 0.717 0.199 0.389 0.841 0.999;1 0.796 0.268 0.369 0.856 0.994 0.727 0.163 0.467 0.907 0.977 0.649 0.057 0.558 0.946 0.949 0.564 0.049 0.644 0.975 0.909 0.473;1 0.765 0.170 0.504 0
10、.940 0.937 0.491 0.184 0.774 0.999 0.755 0.156 0.516 0.946 0.932 0.479 0.198 0.783 0.999 0.746 0.142 0.528; 1 0.732 0.071 0.627 0.989 0.821 0.212 0.510 0.959 0.894 0.349 0.349 -0.909 0.948 0.478 0.247 0.841 0.984 0.599 0.107 0.755 0.999;0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;0 0 0 0 0 0 0 0 0 0
11、 0 0 0 0 0 0 0 0 0 0 0 0;0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0算这个H时算出来的负值取了它的绝对值2 求令d= 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0
12、 0 0 0 0 0 0然后最小均方解可以根据求解线性方程得到。令 a=a=n*pinv(r)用MATLAB可以计算出 ac=ac =1.0e+005 * Columns 1 through 19 0.9539 2.5572 -1.4336 -0.3735 1.9754 -3.7572 3.5858 -2.6165 -2.3165 2.7508 -3.4883 2.3659 -3.8173 1.9029 0.5901 0 0 0 0 Columns 20 through 22 0 0 0= 0.9539 2.5572 -1.4336 -0.3735 1.9754 -3.7572 3.5858
13、-2.6165 -2.3165 2.7508 -3.4883 2.3659 -3.8173 1.9029 0.5901 0 0 0 0 0 0 03 最终的结果由于N的限制所以所设计的滤波器为1型所以=1 =c L=M=22根据表达式 cos(wk)=0.9539+2.5572-1.4336-0.3735+1.9754-3.7572+3.5858-2.6165-2.3165+2.7508-3.4883+2.3659-3.8173+1.9029+0.5901 16到22项为0 这里我们只是求出了幅频特性,但由于其相频特性是确定的所以在设计中不考虑其相频特性。 求=0.0916()+0.1171(
14、)-0.6515-0.1867+0.9877-1.8786+1.7929-1.3082-1.1582+1.3754-1.7441+1.1829-1.9086+0.9514+0.29504 计算误差 由和可求出误差用MATLAB计算误差如下h=1 0.9987 0.9950 0.9888 0.980 0.968 0.955 0.939 0.921 0.900 0.877 0.853 0.825 0.796 0.765 0.732 0.697 0.660 0.622 0.582 0.540 0.498 ;1 0.995 0.980 0.955 0.921 0.877 0.825 0.765 0.6
15、97 0.622 0.540 0.454 0.363 0.268 0.170 0.07 0.028 0.128 0.226 0.322 0.415 0.588;1 0.988 0.955 0.900 0.825 0.732 0.622 0.498 0.363 0.219 0.071 0.078 0.226 0.369 0.504 0.627 0.737 0.829 0.904 0.957 0.989 0.999 ;1 0.980 0.921 0.825 0.697 0.904 0.989 0.988 0.897 0.727 0.492 0.212 0.0085 0.376 0.633 0.83
16、3 0.959 0.999 ;1 0.939 0.765 0.498 0.170 0.177 0.504 0.769 0.942 0.999 0.937 0.760 0.277 0.163 0.184 0.510 0.774 0.944 0.999 0.934 0.755 0.485;1 0.921 0.697 0.363 0.028 0.415 0.736 0.942 0.998 0.897 0.655 0.309 0.008 0.467 0.774 0.959 0.993 0.870 0.610 0.254 0.142 0.516; 1 0.900 0.622 0.219 0.226 0.
17、627 0.903 0.999 0.897 0.616 0.212 0.233 0.633 0.906 0.999 0.894 0.610 0.205 0.240 0.638 0.909 0.999 ;1 0.877 0.541 0.071 0.415 0.800 0.989 0.937 0.655 0.212 0.282 0.707 0.959 0.977 0.755 0.349 0.142 0.599 0.909 0.997 0.841 0.479;1 0.852 0.454 0.078 0.587 0.923 0.987 0.760 0.309 0.233 0.707 0.972 0.9
18、51 0.649 0.156 0.382 0.809 0.997 0.891 0.522 0 0.522 ;1 0.825 0.363 0.226 0.736 0.989 0.897 09 -0.909 0.948 0.478 0.247 0.841 0.984 0.599 0.107 0.755 0.999;0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;0 0 0 0 0 0
19、0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0a= 0.9539 2.5572 -1.4336 -0.3735 1.9754 -3.7572 3.5858 -2.6165 -2.3165 2.7508 -3.4883 2.3659 -3.8173 1.9029 0.5901 0 0 0 0 0 0 0;s=h*ad=
20、1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0;c=s-de=c*ce=Columns 1 through 193.6235 2.4192 -0.7942 -1.7213 1.1543 2.2088 1.9128 0.4541 1.2903 2.4710 3.5210 0.6483 -4.8485 -0.3134 -9.8727 0 0 0 02.4192 1.6152 -0.5303 -1.1492 0.7707 1.4747 1.2771 0.3032 0.8615 1.6498 2.3508 0.4329 -3.2372 -0.2093 -6.59
21、16 0 0 0 0-0.7942 -0.5303 0.1741 0.3773 -0.2530 -0.4841 -0.4193 -0.0995 -0.2828 -0.5416 -0.7718 -0.1421 1.0628 0.0687 2.1640 0 0 0 0-1.7213 -1.1492 0.3773 0.8177 -0.5483 -1.0493 -0.9086 -0.2157 -0.6129 -1.1738 -1.6726 -0.3080 2.3032 0.1489 4.6899 0 0 0 01.1543 0.7707 -0.2530 -0.5483 0.3677 0.7036 0.
22、6093 0.1447 0.4110 0.7871 1.1216 0.2065 -1.5445 -0.0998 -3.1450 0 0 0 02.2088 1.4747 -0.4841 -1.0493 0.7036 1.3464 1.1660 0.2768 0.7865 1.5063 2.1463 0.3952 -2.9556 -0.1911 -6.0182 0 0 0 01.9128 1.2771 -0.4193 -0.9086 0.6093 1.1660 1.0097 0.2397 0.6811 1.3044 1.8586 0.3422 -2.5594 -0.1655 -5.2116 0
23、0 0 00.4541 0.3032 -0.0995 -0.2157 0.1447 0.2768 0.2397 0.0569 0.1617 0.3097 0.4413 0.0813 -0.6076 -0.0393 -1.2373 0 0 0 01.2903 0.8615 -0.2828 -0.6129 0.4110 0.7865 0.6811 0.1617 0.4595 0.8799 1.2538 0.2309 -1.7265 -0.1116 -3.5156 0 0 0 02.4710 1.6498 -0.5416 -1.1738 0.7871 1.5063 1.3044 0.3097 0.8
24、799 1.6850 2.4011 0.4421 -3.3064 -0.2137 -6.7325 0 0 0 03.5210 2.3508 -0.7718 -1.6726 1.1216 2.1463 1.8586 0.4413 1.2538 2.4011 3.4214 0.6300 -4.7114 -0.3046 -9.5934 0 0 0 00.6483 0.4329 -0.1421 -0.3080 0.2065 0.3952 0.3422 0.0813 0.2309 0.4421 0.6300 0.1160 -0.8675 -0.0561 -1.7665 0 0 0 0-4.8485 -3
25、.2372 1.0628 2.3032 -1.5445 -2.9556 -2.5594 -0.6076 -1.7265 -3.3064 -4.7114 -0.8675 6.4878 0.4194 13.2106 0 0 0 0-0.3134 -0.2093 0.0687 0.1489 -0.0998 -0.1911 -0.1655 -0.0393 -0.1116 -0.2137 -0.3046 -0.0561 0.4194 0.0271 0.8540 0 0 0 0-9.8727 -6.5916 2.1640 4.6899 -3.1450 -6.0182 -5.2116 -1.2373 -3.
26、5156 -6.7325 -9.5934 -1.7665 13.2106 0.8540 26.8998 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0
27、 0 0 0 0 0 0 0 0 0Columns 20 through 220 0 00 0 00 0 00 0 00 0 00 0 00 0 00 0 00 0 00 0 00 0 00 0 00 0 00 0 00 0 00 0 00 0 00 0 00 0 00 0 00 0 00 0 04 用直接型结构实现 直接型是利用输入信号和滤波器单位脉冲响应的线性卷积来描述输出信号。虽然有22阶但16到22阶为0所以直接型结构如下 5 用FDATOOL分析设定相关参数后但到其幅频特性如下 相频特性曲线如下 零极图如下 6 误差分析6.1 误差产生的原因 因为在数字信号处理中,需要将输入的离散信
28、号和系统的参数进行量化,而量化的结果必然与原来的数值之间存在误差,误差的大小要依据计算机的字长而定。另一个误差来源是于乘法产生的,例如两个B位的二进制相乘其结果是一个2B位的二进制数,在有限字长的限制下我们需要对乘积进行截尾或舍入处理,这样也就产生了误差。 由于一般计算机字长较长,量化步长很小,所以量化误差不大,常常忽略。所以我们常常考虑的误差是乘积所造成的误差。6.2 误差的理论计算 信号经过量化之后产生了量化噪声,所以经过量化的信号可以看成是原来信号与量化噪声之和,即 =+ 这样,量化后的信号通过线性系统就等于与分别通过线性系统之和。所以线性系统的输出 其中是噪声通过系统的输出,如果是舍入
29、噪声,则的方差 如果认为序列本身任意两个值之间是不相关的,则 ,当 ,当式中为量化步长,为有限字长位数。0.0003255 (字长为8时)0.0000013 (字长为16时)由上面计算结果可知字长越长则误差越长。6.3 用FDATOOL分析不同字长对其幅频响应和相频响应的影响字长取8时其幅频特性曲线及器误差 字长取16时幅频与相频特性曲线及其误差 用FDATOOL分析经过取不同字长得到的幅频与相频图也可以看出字长越长其误差越小。7 总结我们认为,在这学期的实验中,在收获知识的同时,还收获了阅历,收获了成熟。课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环
30、节,是对学生实际工作能力的具体训练和考察过程。在此过程中,我们通过查找大量资料,请教老师,以及不懈的努力,不仅培养了独立思考、动手操作的能力,在各种其它能力上也都有了提高。更重要的是,在实验课上,我们学会了很多学习的方法。而这是日后最实用的,真的是受益匪浅。要面对社会的挑战,只有不断的学习、实践,再学习、再实践。细细回忆此次课程设计,至今我仍感慨颇多,的确,从选题到定稿,从理论到实践,在整整两星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论
31、知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,通过这次课程设计之后,一定把以前所学过的知识重新温故。虽然设计中遇到了很多编程问题,但这次课程设计终于顺利完成了,最后在张老师的辛勤指导下,终于游逆而解。同时,在张老师的身上我学得到很多实用的知识,在此我表示感谢!当然,对给过我帮助的所有同学和各位指导老师也要表示感谢!8 参考文献
32、【1】 阎石 数字电子技术基础 北京:高等教育出版社,1998;【2】 王远 模拟电子技术 北京:机械工业出版社,2001;【3】 陈汝全 电子技术常用器件应用手册 北京:机械工业出版社,2003;【4】 毕满清 电子技术实验与课程设计 北京:机械工业出版社,2006;【5】 张俊谟 单片机中级教程-原理与应用 北京:北京航空航天大学出版社,2002;1. 基于C8051F单片机直流电动机反馈控制系统的设计与研究2. 基于单片机的嵌入式Web服务器的研究 3. MOTOROLA单片机MC68HC(8)05PV8/A内嵌EEPROM的工艺和制程方法及对良率的影响研究 4. 基于模糊控制的电阻钎焊单片机温度控制系统的研制 5. 基于MCS-51系列单片机的通用控制模块的研究 6. 基于单片机实现的供暖系统最佳启