窗函数设计FIR数字滤波器_第1页
窗函数设计FIR数字滤波器_第2页
窗函数设计FIR数字滤波器_第3页
窗函数设计FIR数字滤波器_第4页
窗函数设计FIR数字滤波器_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、武汉理工大学信号分析与处理课程设计目录1. 滤波简介11.1 数字滤波技术11.2 FIR滤波器11.3 设计方法21.3.1 MATLAB结合窗函数设计方法21.3.2 设计函数的选取21.3.3 窗函数的构造31.3.4 窗函数的设计条件32. 基本窗函数52.1 矩形窗52.2 三角形窗52.3 汉宁窗(升余弦窗)53. 各类窗函数比较73.1 窗函数绘图比较73.2 窗函数法设计步骤73.3 窗函数法设计比较84. 具体设计内容134.1 矩形窗设计134.2 三角窗设计144.3 布莱克曼窗设计164.4 结果分析185. 课设心得19参考文献20本科生课程设计成绩评定表211. 滤

2、波简介1.1 数字滤波技术数字滤波,就是通过一定的计算或判断程序减少干扰信号在有用信号中的比例,所以实质上是一种程序滤波。与此对应的就是模拟滤波,模拟滤波主要无源滤波(由电阻、电容、电感等不外接电源的元件组成)与有源滤波(由运算放大器等需要外接电源的元件组成),其目的是将信号中的噪音和干扰信号滤去或者将希望得到的频率信号滤出为我所用。数字滤波的出现克服了模拟滤波的很多不足,具有以下优点:1是用程序实现的,不需要增加硬设备,所以可靠性高,稳定性好。2可以对频率很低的信号实现滤波,克服了模拟滤波的缺陷。3可以根据不同信号采用不同的滤波方法或参数,具有灵活、方便、功能强的特点。1.2 FIR滤波器F

3、IR滤波器是数字信号处理系统中最基本的元件,它可以在保证任意幅频特性的同时具有严格的线性相频特性,同时其单位冲激响应是有限的,没有输入到输出的反馈,是稳定的系统。FIR滤波器具有以下主要优点:1.FIR滤波器具有严格的线性相位;2.FIR滤波器永远稳定;3.FIR滤波器设计方法一般是线性的;4.FIR滤波器在硬件上具有更高的运行效率;5.FIR滤波器启动传输时间只需要有限时间。FIR滤波器的主要缺点有:1.FIR滤波器为达到同样的性能要求需要比IIR滤波器高得多的阶数;2.相应的FIR滤波器的时延比同等性能的IIR滤波器高很多。FIR滤波器的硬件实现主要有数字集成芯片,DSP芯片FIR滤波器,

4、可编程FIR滤波器,后两者的实际方法主要通过MATLAB软件进行设计,其设计方法多样,形式灵活,能够满足各种要求,并且不受数字集成芯片规格的限制。1.3 设计方法1.3.1 MATLAB结合窗函数设计方法MATLAB作为一款优秀的数值计算软件,本身就内置了丰富的函数,其中便有用于通信仿真的一系列函数,并且MATLAB中还集成了通信设计的工具箱,不管是内置的函数,还是通信工具箱,均有专用于滤波器设计的工具,常用的主要有用函数法设计和用通信工具箱设计。1.3.2 设计函数的选取MATLAB信号处理工具箱提供了基于加窗的线性相位FIR滤波器设计函数fir1和fir2,fir1函数的调用格式为:b=f

5、ir1(n,Wn)b=fir1(n,Wn,'ftype')b=fir1(n,Wn,window)b=fir1(n,Wn,'ftype',window)b=fir1(.,'normalization')函数参数说明如下:1n表示滤波器的阶数2'ftype'表示所设计滤波器的类型:3'high'表示高通滤波器4'stop'表示带阻滤波器5'DC-1'表示多通带滤波器,第一频带为通带6'DC-0'表示多通带滤波器,第一频带为阻带;默认时为低通或带通滤波器;7'win

6、dow'为窗函数,是长度为n+1的列向量,默认时函数自动取hamming窗。该函数实现加窗的线性相位FIR滤波器设计,可以设计标准低通、带通、高通和带阻滤波器1.3.3 窗函数的构造MATLAB工具箱已经提供了各种窗函数的构造函数,因而窗函数的构造十分方便,下面给出几种常用窗函数的构造方法:1矩形窗:利用w=boxcar(n)的形式得到窗函数,其中n为窗函数的长度,而返回值w为一个n阶的向量,它的元素由窗函数的值组成。w=boxcar(n)等价于w=ones(1,n).2三角窗:利用w=triang(n)的形式得到窗函数,其中n为窗函数的长度,而返回值w为一个n阶的向量,它的元素由窗函

7、数的值组成。w=triang(N-2)等价于bartlett(N)。3汉宁窗:利用w=hanning(n)得到窗函数,其中n为窗函数的长度,而返回值w为一个n阶的向量,包含了窗函数的n个系数。4布莱克曼窗:利用w=blackman(n)得到窗函数,其中n为窗函数的长度,而返回值w为一个n阶的向量,包含了窗函数的n个系数。它的主瓣宽度是矩形窗主瓣宽度的3倍,为12/N,但是它的最大旁瓣值比主瓣值低57dB。5凯泽窗:利用w=kaiser(n,beta)的形式得到窗函数。1.3.4 窗函数的设计条件在使用窗函数设计滤波器时要满足以下两个条件:(1)主瓣尽可能窄,以使设计出来的滤波器有较陡的过渡带。

8、(2)尽量减少最大旁瓣的相对幅度,也就是能量集中于主瓣,以减小带内、带外波动的最大幅度,增大阻带衰减。一般来说,以上两点很难同时满足。当选取主瓣宽度很窄时,旁瓣的分量势必增加,从而带内、带外的波动也增加了;当选取最小的旁瓣幅度时,降低了带内、带外的波动,但是过渡带的陡度减小了。所以实际采用的窗函数其特性往往是它们的折中,在保证主瓣宽度达到一定要求的前提下,适当牺牲主瓣宽度来换取旁瓣波动的减小。实际工程常用的窗函数有五种,即矩形窗、三角窗、汉宁窗、海明窗和凯泽窗。这些窗函数之间的性能比较如下表所示。表格 1 各窗函数性能262. 基本窗函数2.1 矩形窗矩形窗(Rectangular Windo

9、w)函数的时域形式可以表示为: (公式2-1)它的频域特性为: (公式2-2)2.2 三角形窗三角形窗(Bartlett Window)函数时域形式可表示为: (公式2-3)窗谱为: (公式2-4)式中,当N远大于1时,此时,窗谱主瓣宽度为8/N。2.3 汉宁窗(升余弦窗)汉宁窗(hanning)函数时域形式可表示为: (公式2-5)利用傅利叶变换的调制特性,由上式可得汉宁窗的频谱函数为: (公式2-6)式中, (公式2-7)当N远大于1时,上式可近似表示为: (公式2-8)这三部分之和使旁瓣互相抵消,能量更集中在主瓣,汉宁窗函数的最大旁瓣值比主瓣值低31dB,但是主瓣宽度比矩形窗函数的主瓣宽

10、度增加了1倍,为8/N。hanning函数:生成汉宁窗调用方式:(1) w = hanning(n):输入参数n是窗函数的长度;输出参数w是由窗函数的值组成的n阶向量。注意:此函数不返回是零点的窗函数的首尾两个元素。 (2) w = hanning(n,'symmetric'):与上面相类似。(3) w = hanning(n,'periodic'):此函数返回包括为零点的窗函数的首尾两个元素。3. 各类窗函数比较3.1 窗函数绘图比较MATLAB程序源代码为:n=50;x=1:50;juxing=boxcar(n); %构造矩形窗sanjiao=triang(

11、n); %构造三角窗hanming=hamming(n); %构造汉宁窗bulaikeman=blackman(n); %构造布莱克曼窗kaize=kaiser(n); %构造凯泽窗plot(x,juxing,'b.',x,sanjiao,'gx',x,hanming,'r+',x,bulaikeman,'cd',x,kaize,'k*');legend('矩形窗','三角窗','汉明窗','布莱克曼窗','凯泽窗');3.2 窗函数法

12、设计步骤实际利用窗函数法进行FIR滤波器设计时,依据所给的技术指标一般需要经过以下几个步骤进行设计:1给定理想的频率响应函数及技术指标;2求出理想的单位抽样响应;3根据阻带衰减选择窗函数w(n);4根据过渡带宽度确定N值;5求出所设计的FIR滤波器的单位抽样响应;6计算频率响应,验算指标是否满足要求。图 1 各类窗函数绘图比较最小阻带衰减仅由窗形状决定,不受N的影响;而过渡带的宽度则随窗宽的增加而减小。3.3 窗函数法设计比较利用原理说明介绍的fir1函数进行设计,这种设计方法只需要给出滤波器的阶数,截止频率,窗函数等参数,MATLAB即可自行完成设计,并可通过freqz函数查看滤波器的幅频响

13、应和相频响应,已验证滤波器是否满足设计要求,下面给出利用fir1函数设计的不同窗函数的数字带通滤波器。1.利用矩形窗进行设计MATLAB程序源代码为:fs=20000; %设定采样频率fp1=4500;fp2=6500; %第一截止频率fs1=3000;fs2=7500; %第二截止频率As=40; %最小阻带衰减Ws1=(fp1+fs1)/fs;Ws2=(fp2+fs2)/fs; %截止频率归一化处理w=(fp1-fs1)/fs; %求归一化过渡带M=ceil(As-7.95)/(14.36*w) %计算所需滤波器的阶数juxing=boxcar(M+1); %生成长度为M+1的矩形窗box

14、b=fir1(M,Ws1,Ws2,juxing); %生成矩形窗设计的fir滤波器freqz(boxb,1,fs,fs); %绘制幅频和相频响应曲线运行结果为:图 2 用矩形窗设计的FIR滤波器的幅频和相频响应曲线2.利用三角窗进行设计利用三角窗进行设计时,原理与矩形窗基本相同,只不过生成窗函数时采用triang()函数生成三角窗,程序运行结果为:3.利用汉宁窗进行设计利用汉宁窗进行设计时,原理与矩形窗基本相同,只不过生成窗函数时采用hanning()函数生成三角窗,程序运行结果为:图 3 用三角形窗设计的FIR滤波器幅频和相频响应曲线图 4 用汉宁窗设计的FIR滤波器的幅频和相频响应曲线4.

15、利用布莱克曼窗进行设计利用布莱克曼窗进行设计时,原理与矩形窗基本相同,只不过生成窗函数时采用blackman()函数生成三角窗,程序运行结果如下:图 5 用布莱克曼窗设计的FIR滤波器幅频和相频响应曲线5.利用凯泽窗进行设计利用凯泽窗进行设计时,滤波器的参数可以用以下函数求得:调用函数n,wn,bta,ftype=kaiserord(f,a,dev,fs)参数:(1)f为对应的归一化频率(2)a为由f指定的各个频带上的幅值向量,一般只有0和1,和f长度关系为(2*a的长度)2=(f的长度)(3)devs用于指定各个频带输出滤波器的频率响应与其期望幅值之间的最大输出误差或偏差,长度与a相等。(4

16、)fs为信号的采样频率。利用该函数修改代码得到凯泽窗设计FIR滤波器的MATLAB程序源代码如下:fs=20000; %设定采样频率fp1=4500;fp2=6500; %第一截止频率fs1=3000;fs2=7500; %第二截止频率n,wn,bta,ftype=kaiserord(fs1,fp1,fp2,fs2,. 0,1,0,0.01 0.1087 0.01,fs) %求滤波器参数b=fir1(n,wn,ftype,kaiser(n+1,bta); %生成fir滤波器freqz(b,1,fs,fs); %绘制幅频和相频响应曲线程序运行结果为:图 6 用凯泽窗设计的FIR滤波器幅频和相频响

17、应曲线4. 具体设计内容4.1 矩形窗设计用矩形窗设计一个FIR线性相位数字低通滤波器,已知 。求出 并画出幅频响应特性曲线。解: MATLAB程序源代码为:wn=0.25;n=21;N=n+1;b=fir1(n,wn,'low',boxcar(N); %求滤波器的频率响应t=0:21;subplot(211); %指定h(n)窗位置stem(t,b,'.');hold on;plot(t,zeros(1,22); %绘出h(n)曲线title('单位抽样响应h(n)');grid;M=128;h=freqz(b,1,M); %计算离散系统频响特

18、性f=0:0.5/M:0.5-0.5/M;subplot(212); %确定窗位置plot(f,abs(h); %绘出幅频响应曲线title('幅频响应');grid;xlabel('频率单位2pi'); %x轴注释ylabel('幅度/db'); %y轴注释运行结果为:图 7 矩形窗幅频响应曲线4.2 三角窗设计用三角形窗设计一个FIR线性相位数字低通滤波器,已知;要求画出滤波器的曲线。解:因为用三角形窗设计: MATLAB程序源代码如下:wc=0.5*pi; %截止频率N=51; %窗的长度n=0:1:(N-1);a=(N-1)/2; %时延

19、m=n-a+eps;hd=sin(wc*m)./(pi*m); %理想滤波器的冲激响应wd=(triang(N)' %调用三角窗函数h=hd.*wd; %设计的滤波器的冲激响应H,rad=freqz(h); %对应的频率响应plot(rad,20*log10(abs(H); %绘出幅频响应曲线xlabel('频率/hz');ylabel('幅频响应/db');grid on;图 8 三角窗幅频响应曲线4.3 布莱克曼窗设计用布莱克曼窗设计一个FIR线性相位相移的数字带通滤波器设。试求出的表达式,并画出曲线。解:可求得此滤波器的时域函数为:采用布拉克曼窗设

20、计时( N =51 ):MATLAB程序原代码如下:w0=0.6*pi;wc=0.2*pi;w1=blackman(51);%调用布莱克曼窗函数n=1:1:51;hd=i*(sin(w0+wc)*(n-25)-sin(w0-wc)*(n-25)./(pi*(n-25)+eps); %希望设计的滤波器的冲激响应h1=hd.*rot90(w1); %实际设计的相移90度后的数字带通滤波器的冲激响应mag1,rad=freqz(h1); %对应的频率响应plot(rad,20*log10(abs(mag1); %绘出幅频响应曲线xlabel('频率/hz');ylabel('

21、幅度/db');grid on;图 9 90°移相的线性相位带通滤波器这个滤波器是90°移相的线性相位带通滤波器(或称正交变换线性相位带通滤波器)。4.4 结果分析经过利用三角窗、矩形窗和布莱克曼窗设计FIR滤波器所得到的幅频响应曲线图可以看出不同的窗函数所设计的滤波器频率响应有所不同。三角窗和矩形窗设计的低通滤波器频率响应曲线比较相似,但可以看出三角窗的过渡带更宽,主瓣宽度也更宽,旁瓣峰值幅度绝对值更大,最小阻带衰减绝对值也更大。布莱克曼窗设计的带通滤波器的频率响应曲线也基本符合教材中对布莱克曼窗理论的分析,它的旁瓣主瓣宽度、过渡带宽、最小阻带衰减均比三角窗和矩形窗大。最小阻带衰减仅由窗的形状决定,不受窗的长度N的影响;而过渡带宽度随窗宽的增加而减少。本次课设中虽没有针对某一种窗改变其宽度,但从设计的过程的分析中可以看出这一点。5. 课设心得这一次的课程设计时间比较紧,任务重,在课程设计之初,我对暂时用窗函数法设计FIR数字滤波器这个题目没有想法和方案。在课程设计的短短几天内,我不断搜集资料、设计方案、整理思路、编写程序、调试程序,这其中我遇到了很多的困难,在克服这些困难的同时,也学到了很多课本里学不到的知识,收获了很多课堂上讲不到的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论