1、郑州航空工业管理学院电子信息系统仿真课程设计 2014 级 电子信息工程 专业 班级 题 目 基于Hamming窗的FIR数字滤波器设计 姓 名 学 号 二一六年十一月二十五日一、MATLAB软件简介MATLAB是矩阵实验室(Matrix Laboratory)之意。除具备卓越的数值计算能力外,它还提供了专业水平的符号计算,文字处理,可视化建模仿真和实时控制等功能。MATLAB的基本数据单位是矩阵,它的指令表达式与数学,工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完相同的事情简捷得多。MATLAB拥有数百个内部函数的主包和三十几种工具包(Toolbox).
2、工具包又可以分为功能性工具包和学科工具包.功能工具包用来扩充MATLAB的符号计算,可视化建模仿真,文字处理及实时控制等功能.学科工具包是专业性比较强的工具包,控制工具包,信号处理工具包,通信工具包等都属于此类. 开放性使MATLAB广受用户欢迎.除内部函数外,所有MATLAB主包文件和各种工具包都是可读可修改的文件,用户通过对源程序的修改或加入自己编写程序构造新的专用工具包。 语言特点一种语言之所以能如此迅速地普及,显示出如此旺盛的生命力,是由于它有着不同于其他语言的特点,正如同FORTRAN和C等高级语言使人们摆脱了需要直接对计算机硬件资源进行操作一样,被称作为第四代计算机语言的MATLA
3、B,利用其丰富的函数资源,使编程人员从繁琐的程序代码中解放出来。MATLAB最突出的特点就是简洁。MATLAB用更直观的,符合人们思维习惯的代码,代替了C和FORTRAN语言的冗长代码。MATLAB给用户带来的是最直观,最简洁的程序开发环境。二、 理论分析1FIR数字滤波器结构特征FIR 数字滤波器的冲激响应只能延续一定的时间,N 阶因果有限冲激响应滤波器的差分方程表达式为:。其卷积和是一个有限和,可以直接计算 ,所以其涉及的基本操作就是简单的乘和加,其计算仅需要所给出的初始样本值及所要求的相关样本值。通过精确设计,有限冲激响应滤波器在整个频率范围内均能提供精确的线性相位,由于系统的单位脉冲序
4、列为有限序列,当输入有限时,输出也必然为有限,这样其稳定性总可以独立于滤波器系数之外。因此,在很多情况下,有限冲激响应滤波器成为首选,只要确定能满足要求的转移序列或者脉冲响应的常数,就可以准确地设计出满足要的FIR数字滤波器。通常所采用的设计方法主要有窗函数、频率采样法和等波纹最佳逼近法等,其中窗函数法是从时域进行设计的,其算法简单、物理意义清晰,因此得到了较为广泛的应用。2算法研究为了建立一个具有线性相位和稳定的非递归特性的有限脉冲响应滤波器即FIR滤波器,要考虑两个方面:一是使用有限长的单位取样响应来逼近理想低通,二是单位取样响应对(N -1)/2 对称,保证线性相位根据FIR 数字滤波器
5、输入输出关系的差分方程描述 ,有上式反映了有限列长的单位取样响应。滤波网络传输函数为:利用傅立叶变换得单位取样响应为是截止频率,从而保证线性相位。在窗函数法设计中使用有限列长的 逼近,用Hamming窗函数将截断,进行加权处理后可得。此时频率响应函数为 :Hamming 窗函数。其中 是幅度为1 ,长度为N的矩形序列。3窗函数法的原理可以从时域或频域出发来设计FIR 滤波器,从频域出发的方法称为频率采样设计法,从时域出发的方法称为窗函数法,也称为傅立叶级数法,这种方法应用较广泛。窗函数法的设计思想是按照所要求的理想滤波器频率响应,设计一个FIR 滤波器,使之频率响应来逼近。因为设计是在时域中进
6、行的, 需先由的傅立叶反变换导出序列,即由于是矩形频率特性,有是一无限长的序列,且是非因果的,而要设计的FIR滤波器的冲激响应序列是有限长的, 所以要用有限长的序列 来逼近无限长的序列,最有效的方法是截断,或者说用一个有限长度的窗口函数序列来截取,即按照复卷积公式, 在时域中的乘积关系可表示成在频域中的周期性卷积关系,即可得所设计的FIR滤波器的频率响应其中,为截断窗函数的频率特性。由此可见,实际的FIR 数字滤波器的频率响应逼近理想滤波器频率响应的好坏,完全取决于窗函数的频率特性。4窗函数法的设计步骤(1)给定所要求的频率响应;(2)由的傅立叶反变换求出;(3)根据过渡带宽及阻带最小衰减,选
7、择窗的形状并估计窗口长度N;(4)计算滤波器的单位脉冲响应(5)验算技术指标是否满足要求。(1)窗谱主辨尽可能窄,以获得较陡的过渡带;(2)尽量减少窗谱的最大旁瓣的相对幅度,使能量尽量集中于主辨,进而增加阻带的衰减。给定的滤波器指标参数一般为通带截止频率、阻截止频率、实际通带波动和最小阻带衰减。窗函数设计的经验公式为归一化过渡带 滤波器阶数 当50时,;当2150时,三、设计内容1低通滤波器的设计指标。通带截止频率,阻带截止频率,最小阻带衰减,抽样频率为2000Hz2设计分析由以上参数可得过度带宽trwidth = ws-wp , wc = (ws + wp)/2。考虑选择Hamming窗函数
8、,则列长N = 6.64*pi/trwidth , hd(n)=sin(wc*(n-(N-1)/2)/(pi*(n-(N-1)/2), h(n)=hd (n)*wh(n)。利用MATLAB编程时,先计算N、trwidth、hd(n)和h(n) ,并利用MATLAB提供的相关工具计算该低通滤波器的幅度特性值, 最终显示Hamming 窗频谱、实际单位取样响应频谱、理想单位取样响应频谱和该FIR滤波器幅度特性曲线。3编写Matlab程序(1) 实现FIR滤波器的主程序:wp=0.2*pi;ws=0.4*pi; %给出通带和阻带的截止频率trwidth=ws-wp; %得出过渡带宽度N=ceil(6
9、.64*pi/trwidth)+1; %滤波器的长度n=0:1:N-1;wc=(ws+wp)/2; %计算理想低通截止频率hd=ideallp(wc,N); %计算理想低通单位冲激响应w_ham=(hamming(N); %求海明函数h=hd.*w_ham; %应用窗函数加权后的有限长单位冲激响应序列db,mag,pha,grd,w=freqz_m(h,1); %幅检查值响应、相位响应和群延迟响应delta_w=2*pi/1000; Ap=-(min(db(1:1:wp/delta_w+1); %检查通带最大衰减Ar=-round(max(db(ws/delta_w+1:1:501); %检查
10、阻带最小衰减subplot(221);stem(n,hd);title(理想单位脉冲响应 hd(n)subplot(222);plot(n,w_ham);title(海明窗 w(n)subplot(223);stem(n,h);title(实际单位脉冲响应 h(n)subplot(224);plot(w/pi,db);title(幅度响应(dB)n=0:1023;Fs=2000; %抽样频率dt=1/Fs;t=n*dt;Tp=1024*dt;f1=450;f2=600;x=sin(2*pi*f1*t)+sin(2*pi*f2*t);y=filter(w_ham,1,x);figure(2);s
11、ubplot(2,1,1);plot(t,x);title(输入信号x(t);xlabel(t/s);ylabel(x(t);axis(0,Tp/6,min(x),max(x);subplot(2,1,2);plot(t,y);title(输出信号y(t);xlabel(t/s);ylabel(y(t);axis(0,Tp/6,min(y),max(y);(2)计算理想低通的单位冲激响应的程序:function hd=ideallp(wc,N)%理想线性相位低通滤波器计算%-%hd=ideallp(wc,n)% hd=0N1之间的理想脉冲响应% wc=截止频率(弧度)% N=理想线性相位滤波器
12、的长度%tao=(N-1)/2;n=0:1:(N-1);m=n-tao+eps; %加一个极小数eps,以避免hd的分母为零hd=sin(wc*m)./(pi*m);(3)检查幅值响应、相位响应和群延迟响应function db,mag,pha,grd,w = freqz_m(b,a);H,w = freqz(b,a,1000,whole); H = (H(1:1:501); w = (w(1:1:501); mag = abs(H); db = 20*log10(mag+eps)/max(mag); pha = angle(H); grd = grpdelay(b,a,w);输出结果如下图所
13、示: 由上图可以看到:通带纹波为 0.0301dB,最小阻带衰减为55dB。满足设计指标的要求。把滤波器的阶数人为的设置成75(将N=ceil(6.64*pi/trwidth)+1;改为 N=75) 由上图可以看到:通带纹波为 0.0284dB,最小阻带衰减为 58dB。把滤波器的阶数设置为15由上图可以看到:通带纹波为1.6322dB,最小阻带衰减为16dB。不能满足指标要求。综上所述:当滤波器的阶数增加时,可以减小通带纹波,增加最小阻带衰减。但同时计算量也随之增大,成本也要同样增加。用 MATLAB中的 FilterDesignandAnalysis工具进行同样的设计, 设置阶数为 35,
14、低通,窗口选择 hamming,归一化频率 。 幅频特性曲线相频特性曲线冲击响应零极点图四、总结通过本次课程设计,使我更加扎实的掌握了有关数字滤波器方面的知识,在这次课程设计中虽然遇到了很多的困难,但是经过一次又一次的查阅资料,一次一次的认真思考,终于找出了原因,通过这次课程设计,了解知识还是需要通过实践才能真正的掌握住精髓。通过这次学习,我不但掌握了FIR数字滤波器窗函数的基本知识及其实际应用的技巧了,而且还学会了一些Matlab编程语言,对这款软件也有了更深刻的认识,得到了很大的收获。我认为本次课程设计对我们来说是很有用的,能够提高我们独立去做一个工程的能力,体会将来我们要面对的实际问题,
15、既巩固了在课堂上学习的知识,也在查找资料的过程中也学到了很多课本上没有学习到的知识,可以说收获颇丰,通过这次课程设计将理论与实践相结合,从中提高而来自己独立思考能力和实践动手能力,从而不断超越自己,学会了坚持不懈,坚持到底。这对日后我们走进社会了,参加工作非常重要的。目 录第一章 总论1一、项目概况1二、项目提出的理由与过程6三、项目建设的必要性8四、项目的可行性12第二章 市场预测15一、市场分析15二、市场预测16三、产品市场竞争力分析19第三章 建设规模与产品方案22一、建设规模22二、产品方案22三、质量标准22第四章 项目建设地点25一、项目建设地点选择25二、项目建设地条件25第五
16、章 技术方案、设备方案和工程方案28一、技术方案28二、产品特点30三、主要设备方案32四、工程方案32第六章 原材料与原料供应35一、原料来源及运输方式35二、燃料供应与运输方式35第七章 总图布置、运输、总体布局与公用辅助工程37一、总图布置37二、 运输38三、总体布局38四、公用辅助工程39第八章 节能、节水与安全措施44一、主要依据及标准44二、节能44三、节水45四、消防与安全45第九章 环境影响与评价47一、法规依据47二、项目建设对环境影响48三、环境保护措施48四、环境影响评价49第十章 项目组织管理与运行50一、项目建设期管理50二、项目运行期组织管理52第十一章 项目实施进度55第十二章 投资估算和资金筹措56一、投资估算56二、资金筹措58第十三章 财务评价与效益分析61一、项目财务评价61二、财务评价结论65三、社会效益68四、生态效益68第十四章 风险分析70一、主要风险分析识别70二、风险程度分析及防范风险的措施70第十五章 招标方案72一、招标范围72二、招标组织形式72三、招标方式72第十六章 结论与建议74一、可行性研究结论74二、建议75附 件77一、附表77二、附件77三、附图77