FIR数字滤波器的MATLAB实现

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

综合性、设计性实验报告姓名贺鹤学号201308002118专业通信工程班级通信1301班实验课程名称FIR数字滤波器的MATLAB实现指导教师及职称李玲香讲师开课学期至学年学期上课时间2015年12月24、31日湖南科技学院教务处编印设计题目实验六FIR滤波器的实现与应用小组合作是()否(√)小组成员1.实验目的:(1)学会调用MATLAB信号处理工具箱中滤波器设计函数设计各种FIR数字滤波器,学会根据滤波需求确定滤波器指标参数。(2)学习用窗函数法设计FIR数字滤波器的原理及其设计步骤;(3)学习编写数字滤波器的设计程序的方法,并能进行正确编程;根据给定的滤波器指标,给出设计步骤;(4)通过观察滤波器输入输出信号的时域波形及其频谱,建立数字滤波的概念。2.实验环境:(1)WindousXP或、Windous7之类的操作系统版本;(2)MATLAB7.03.实验相关知识(1)窗函数设计线性相位FIR滤波器步骤:①确定数字滤波器的性能要求,临界频率}{kw,滤波器单位脉冲响应长度N。②根据性能要求,合理选择单位脉冲响应h(n)的奇偶对称性,从而确定理想频率响应)(jwdeH的幅频特性和相频特性。③求理想单位脉冲响应)(nhd,在实际计算中,可对)(jwdeH采样,并对其求IDFT的)(nhM,用)(nhM代替)(nhd。④选择适当的窗函数w(n),根据)()()(nWnhnhNd求所需设计的FIR滤波器单位脉冲响应。⑤求)(jwdeH,分析其幅频特性,若不满足要求,可适当改变窗函数形式或长度N,重复上述设计过程,以得到满意的结果。(2)实验用MATLAB函数可以调用MATLAB工具箱函数fir1实现本实验所要求的线性相位FIR-DF的设计,调用一维快速傅立叶变换函数fft来计算滤波器的频率响应函数。fir1是用窗函数法设计线性相位FIRDF的工具箱函数,调用格式如下:hn=fir1(N,wc,‘ftype’,window)fir1实现线性相位FIR滤波器的标准窗函数法设计。hn=fir1(N,wc)可得到6dB截止频率为wc的N阶(单位脉冲响应h(n)长度为N+1)FIR低通滤波器,默认(缺省参数windows)选用hammiing窗。其单位脉冲响应h(n)满足线性相位条件:h(n)=h(N-1-n)其中wc为对π归一化的数字频率,0≤wc≤1。当wc=[wc1,wc2]时,得到的是带通滤波器。hn=fir1(N,wc,’ftype’)可设计高通和带阻滤波器。当ftype=high时,设计高通FIR滤波器;当ftype=stop时,设计带阻FIR滤波器。应当注意,在设计高通和带阻滤波器时,阶数N只能取偶数(h(n)长度N+1为奇数)。不过,当用户将N设置为奇数时,fir1会自动对N加1。hn=fir1(N,wc,window)可以指定窗函数向量window。如果缺省window参数,则fir1默认为hamming窗。可用的其他窗函数有Boxcar,Hanning,Bartlett,Blackman,Kaiser和Chebwin窗。例如:hn=fir1(N,wc,bartlett(N+1))使用Bartlett窗设计;hn=fir1(N,wc,chebwin(N+1,R))使用Chebyshev窗设计。hn=fir1(N,wc,’ftype’,window)通过选择wc、ftype和window参数(含义同上),可以设计各种加窗滤波器。4.实验内容设抽样频率为Fs=1000Hz,已知原信号为x=sin(2π×80t)+2sin(2π×140t),由于某种原因,信号被白噪声污染,实际获得的信号为xn=x+rand(size(t)),要求设计一个FIR滤波器恢复出原始信号。滤波器设计要求:频带(Hz)[0,65][75,85][95,125][135,145][155,500]幅度01010编程实现要求:(1)分析实验内容,设计实验方案;(2)绘制xn=x+rand(size(t))时域波形,观察输出波形,选择合理的滤波器参数;(3)绘制数字滤波器的频率特性曲线;(4)编程实现恢复的x’信号,并画图,与原信号进行比较。5.实验设计方案设计两个带通滤波器将原信号进行两次滤波,恢复原信号。用窗函数法设计FIR带通滤波器设计原理:在MATLAB中可直接产生窗函数:矩形窗,三角窗,汉宁窗,凯塞窗等,通过调用系统的函数即可实现窗的加载。实际应用中选用传函数大多是他们的折中,凯塞窗可以通过改变参数值来折中选择主瓣宽度和旁瓣衰减,基于此的滤波器使用能力强且比较灵活。窗函数设计法是用一定宽度窗函数截取无线脉冲响应序列活得有现场的脉冲响应序列,设计步骤为:(1)窗函数法的设计思想是从时域出发,首先确定理想带通滤波器的频率响应函数(2)通过傅立叶变换获得理想带通滤波器的单位脉冲响应hd(n)(3)由性能指标确定窗函数W(n)和窗口长度N(4)求带通滤波器的单位脉冲响应h(n),h(n)即为所设计FIR带通滤波器系数向量(5)检验带通滤波器性能6.MATLAB编程实现编程代码:t=0:0.001:0.1;x1=sin(2*pi*80*t)+2*sin(2*pi*140*t);x2=randn(size(t));x=x1+x2;fb1=66;fb2=93;fc1=70;fc2=90;Fs=1000;ws1=2*pi*fb1/Fs;wp1=2*pi*fc1/Fs;ws2=2*pi*fb2/Fs;wp2=2*pi*fc2/Fs;N=95Wn1=(fb1+fc1)/Fs;Wn2=(fb2+fc2)/Fs;Wn=[Wn1,Wn2];b=fir1(N,Wn,blackman(N+1));figure(1);subplot(2,1,1);[h1,w1]=freqz(b,1);plot(w1*Fs/(2*pi),20*log10(abs(h1)));grid;title('FIR带通滤波器的幅频特性');m=filter(b,1,x);subplot(2,1,2);plot(t,m);title('第一次带通滤波器滤波信号');fb11=125;fb12=155;fc11=130;fc12=150;ws11=2*pi*fb11/Fs;wp11=2*pi*fc11/Fs;ws12=2*pi*fb12/Fs;wp12=2*pi*fc12/Fs;N1=95Wn11=(fb11+fc11)/Fs;Wn12=(fb12+fc12)/Fs;Wn1=[Wn11,Wn12];b1=fir1(N1,Wn1,blackman(N1+1));figure(2);subplot(2,1,1);[h11,w11]=freqz(b1,1);plot(w11*Fs/(2*pi),20*log10(abs(h11)));grid;title('FIR带通滤波器的幅频特性');n=filter(b1,1,x);subplot(2,1,2);plot(t,n);title('第二次带通滤波器滤波信号');y=m+n;figure(3);subplot(2,1,1);plot(t,y,'r');axis([0.040.1-44])gridtitle('滤波后的信号');subplot(2,1,2);plot(t,x1,'b');gridaxis([0.040.1-44])title('滤波的原信号');结果显示:图一图二图三图四分析滤波前后信号的变化,波形图变窄。频谱变化表明:信号的低频率段和高频率段被滤除,中间频率段被保留。这说明滤波器设计基本符合要求。实验圆满完成。7.运行结果并回答以下问题如果要求用窗函数法设计带通滤波器,且给定上、下边带截止频率为ω1和ω2,试求理想带通的单位脉冲响应)(nhd。答:首先确定理想带通滤波器频率响应,然后通过傅立叶变换获得理想带通滤波器的单位脉冲响应:)(nhd=sin[wc*(n-a)]/pi*(n-a),取a=(N-1)/2,N=6.6*pi/(w1-w2)8.实验总结(主要对本实验开发过程进行归纳和总结,还应包括在设计过程中所遇到的技术难点及解决方法,尚存在的问题以及进一步开发的见解与建议。)在课程设计过程中,我也熟悉了MATLAB的工作环境,可以很熟练的对MATLAB进行常规的操作,快速进行程序编辑和仿真。滤波器的设计工作完成后,在实际应用中,只需按要求修改滤波器参数,并对程序作较少的改动,即可实现不同截止频率的FIR滤波器,实用性较强。完成任务后才发现这次训练的内容并不算难。首先要做的工作就是如何把设计条件写入到MATLAB中,其次就是对条件进行分析,主要是得出一些参数。以上的内容全都要通过程序的编写来完成,不过主要的操作是对函数的调用,这就要我们熟悉MATLAB的一些函数的基本功能以及它们的基本语句。这次课程设计的主要目的是基于MATLAB的FIR数字滤波器的实现,学会用窗函数法设计FIR滤波器的原理及其设计步骤。学会编写数字滤波器的设计程序的方法,并能进行正常编程。通过设计FIR带通滤波器,并对白噪声污染的信号进行滤波处理,加深对数字信号处理的理解和对MATLAB的进一步学习,将理论转化成实践,并在实践中检验理论。当然,经过了课程设计,我也发现了自己的很多不足。但是通过自己的动手动脑,既增加了知识,又给了我专业知识以及专业技能上的提升,我也会更加努力,认真学习,争取在以后的课程中做得更好!9.参考文献(1)张辉,曹丽娜.通信原理[M].西安:西安电子科技出版社大学出版社(2)樊昌信,曹丽娜.通信原理[M].北京:国防工业出版社(3)张圣勤.MATLAB7.0实用教程[M].北京:机械工业出版社(4)徐金明.MATLAB实用教程[M].北京:清华大学出版社(5)徐远明,邵玉斌.MATLAB仿真在通信与电子工程中的应用[M].西安:西安电子科技大学出版社(6)程佩青.数字信号处理[M].北京:清华大学出版社(7)丁玉美,高西全.数字信号处理[M].西安:西安电子科技大学出版社(8)楼顺天,李博菡.基于Matlab的系统分析与设计——信号处理[M].西安:西安电子科技大学出版社指导老师评语及得分:签名:年月日

1 / 8
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功