FIR数字滤波器的设计.docx

上传人:b****4 文档编号:3461447 上传时间:2022-11-23 格式:DOCX 页数:14 大小:186.30KB
下载 相关 举报
FIR数字滤波器的设计.docx_第1页
第1页 / 共14页
FIR数字滤波器的设计.docx_第2页
第2页 / 共14页
FIR数字滤波器的设计.docx_第3页
第3页 / 共14页
FIR数字滤波器的设计.docx_第4页
第4页 / 共14页
FIR数字滤波器的设计.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

FIR数字滤波器的设计.docx

《FIR数字滤波器的设计.docx》由会员分享,可在线阅读,更多相关《FIR数字滤波器的设计.docx(14页珍藏版)》请在冰豆网上搜索。

FIR数字滤波器的设计.docx

FIR数字滤波器的设计

 

FIR数字滤波器设计

 

专业:

班级:

姓名:

指导老师:

 

2011年6月27日

 

目录

摘要2

1.引言2

2.数字滤波器的概念3

3.数字滤波器的分类3

4.FIR滤波器简介5

5.窗函数设计的基本思想和常用窗函数6

6.基于频率取样法的FIR滤波器设计7

7.MATLAB下仿真实例10

8.总结及收获14

参考文献15

 

摘要

本文主要从数字滤波器的概念,数字滤波器的分类FIR滤波器简介,窗函数设计的基本思想和常用窗函数,基于频率取样法的FIR滤波器设计等方面,来对FIR的基本原理进行概述,采用MATLAB软件对FIR数字滤波器进行了仿真。

1.引言

在数字信号处理中,数字滤波是基本处理方法之一,占有极其重要的地位。

FIR滤波器按单位脉冲响应h(n)的长度分类,可分为有限脉冲响应(FIR)滤波器和无限脉冲响应(IIR)滤波器。

FIR滤波器的设计方法有窗函数法、频率抽样法等,两种方法分别从时域和频域为出发点来进行设计。

2.数字滤波器的概念

滤波器是指用来对输入信号进行滤波的硬件和软件。

数字滤波器是对数字信号实现滤波的线性时不变系统。

数字滤波器可以理解为是一个计算程序或算法,将代表输入信号的数字时间序列转化为代表输出信号的数字时间序列,并在转化过程中,使信号按预定的形式变化。

数字滤波实质上是一种运算过程,实现对信号的运算处理。

数字滤波器和模拟滤波器相比,因为信号的形式和实现滤波的方法不同,数字滤波器具有比模拟滤波器精度高、稳定、体积小、重量轻、灵活、不要求阻抗匹配等优点。

输入数字信号(数字序列)通过特定的运算转变为输出的数字序列,因此,数字滤波器本质上是一个完成特定运算的数字计算过程,也可以理解为是一台计算机。

描述离散系统输出与输入关系的卷积和差分方程只是给数字信号滤波器提供运算规则,使其按照这个规则完成对输入数据的处理。

时域离散系统的频域特性:

(式1-1)

其中

分别是数字滤波器的输出序列和输入序列的频域特性(或称为频谱特性),

是数字滤波器的单位取样响应的频谱,又称为数字滤波器的频域响应。

输入序列的频谱

经过滤波后

因此,只要按照输入信号频谱的特点和处理信号的目的,适当选择

,使得滤波后的

满足设计的要求,这就是数字滤波器的滤波原理。

3.数字滤波器的分类

按照不同的分类方法,数字滤波器有许多种类,但总起来可以分成两大类:

经典滤波器和现代滤波器。

经典滤波器的特点是其输入信号中有用的频率成分和希望滤除的频率成分占有不同的频带,通过一个合适的选频滤波器滤除干扰,得到纯净信号,达到滤波的目的。

但是,如果信号和干扰的频谱相互重叠,则经典滤波器不能有效地滤除干扰,最大限度地恢复信号,这时就需要现代滤波器,例如维纳滤波器、卡尔曼滤波器、自适应滤波器等最佳滤波器。

现代滤波器是根据随机信号的一些统计特性,在某种最佳准则下,最大限度地抑制干扰,同时最大限度地回复信号,从而达到最佳滤波的目的。

经典数字滤波器从滤波特性上分类,可以分为:

低通滤波器、高通滤波器、带通滤波器、带阻滤波器。

 

图1-1各种理想滤波器的幅频特性

数字滤波器根据其冲激响应函数的时域特性,可分为两种,即无限长冲激响应(IIR)数字滤波器和有限长冲激响应(FIR)数字滤波器。

IIR数字滤波器的特征是,具有无限持续时间冲激响应,需要用递归模型来实现,

其差分方程为:

(式1-2)

系统函数为:

(式1-3)

设计IIR滤波器的任务就是寻求一个物理上可实现的系统函数H(z),使其频率响应H(z)满足所希望得到的频域指标,即符合给定的通带截止频率、阻带截止频率、通带衰减系数和阻带衰减系数。

4.FIR滤波器简介

根据冲激响应的时域特性,数字滤波器可分为无限长冲激响应滤波器(IIR)和有限长冲激响应滤波器(FIR)。

相比于IIR滤波器,FIR的突出优点是:

1.具有精确的线性相位

2.总是稳定的

3.硬件容易实现

4.滤波器的过渡过程具有有限区间

但其在满足同样阻带衰减的情况下需要的阶数较高。

滤波器的阶数越高,占用的运算时间越多,因此在满足指标要求的情况下应尽量减少滤波器的阶数。

FIR滤波器的基本结构可以理解为一个分节的延时线,把每一节的输出加权累加,可得到滤波器的输出。

FIR滤波器的冲激响应h(n)是有限长的,数学上M阶FIR滤波器可以表示为:

其系统函数为:

由于FIR滤波器的单位冲激响应h(n)是一个有限长序列,系统函数H(Z)是Z-1的(N-1)次多项式,它在Z平面有(N-1)个零点,同时在原点有(N-1)阶重极点。

因此,H(Z)永远稳定。

5.窗函数设计的基本思想和常用窗函数

FIR数字滤波器的设计方法有窗函数设计法、频率抽样设计法和最优设计法等,其中窗函数设计是FIR滤波器设计的主要方法之一,由于其运算简便,物理意义直观,已成为工程实际中应用最广泛的方法,窗函数设计滤波器的基本思想,就是根据给定的滤波器技术指标,选择滤波器的阶数N和合适的窗函数w(n)。

即用一个有限长度的窗口函数序列w(n)来截取一个无限长的序列获得一个有限长序列h(n),即h(n)=

*w(n)。

这样我们用一个有限长的序列h(n)去代替,肯定会引起误差,表现在频域就是通常所说的吉布斯(Gibbs)效应。

该效应引起通带内和阻带内的波动性,尤其使阻带的衰减小,影响滤波器的性能。

为了减小吉布斯效应,从原理上来说可以通过加大N。

但实验表明,加大N虽然可以使H(w)过渡带变窄,但对带内波动以及阻带衰减并没有多大的影响。

因此,我们希望能找到不同的窗函数,使其主瓣包含更多的能量,同时旁瓣幅度减小,从而使通带、阻带波动减小,加大阻带衰减。

窗函数方法不仅在数字滤波器的设计中占有重要的地位,同时可以用于功率谱的估计,从根本上讲,使用窗函数的目的就是消除由无限序列的截短而引起的Gibbs现象所带来的影响。

工程实际中常用的窗函数有6种,即矩形窗、三角形窗、汉宁(Hanning)窗、海明(Hamming)窗、布莱克曼(Blackman)窗和凯泽(Kaiser)窗。

不同窗函数的过渡带和阻带衰减特性有所不同。

表1.六种窗函数性能比较

窗类型

旁瓣峰值

主瓣峰值

最小阻带衰减

矩形窗

13dB

4π/M

21dB

三角窗

25dB

8π/M

25dB

汉宁窗

31dB

8π/M

44dB

海明窗

41dB

8π/M

53dB

布莱克曼窗

57dB

10π/M

74dB

凯泽窗(β=5.658)

53dB

7.8π/M

60dB

窗函数设计FIR滤波器的步骤如下:

(1)根据技术要求确定单位取样响应

,如果已知

,则可由下式确定单位取样响应:

(2)根据对过渡带和阻带衰减的要求,选择窗函数的形式,并估计窗口长度N。

选择窗函数的时候,原则上在保证阻带衰减的情况下,尽量选择主瓣窄的窗函数,减小带宽。

(3)由选择好的窗函数形式w(n)确定单位取样响应h(n),公式如下:

h(n)=

*w(n)如果要求线性相位,则同时要保证

对(N-1)/2对称。

(4)重复上述步骤反复验证技术指标是否达到。

可用FFT快速算法计算设计出的滤波器频率响应,公式如下:

6.基于频率取样法的FIR滤波器设计

改进的频率采样法(ModifiedUniformSampling)和非均匀频率采样法(NonuniformSampling)FIRDF设计方法的性能,主要从计算复杂度及其设计结果两方面来评价。

事实上,FIRDF的设计工作,可以描述为这样的一个优化问题:

寻找一组冲击响应的实质解,使设计出的FIRDF的频率响应(即其冲击响应的Fourier变换)满足或最大限度的接近所提出的理想要求。

下面简要介绍两种FIRDF设计的最优化准则。

方误差最小准则

这一准则是使误差能量最小,用表示要求的频率响应,表示实际得到的滤波器频率响应,以表示频率响应误差,即则均方误差为该结构在频率采样点的响应为,调整比较方便,也便于标准化、模块化。

但也存在问题:

系统稳定靠单位圆上的零点相消,但实际软件或硬件处理时,字长有限,会有系统量化和运算误差,极点会发生移动,使零极点不能相消而使系统不稳定;另一个是和都是复数,都是复数乘,计算量大,且硬件也不易实现。

4)抽样序列h(n)奇对称,N为偶数。

对于理想滤波器的频率响应Hd(ejω),根据第一个采样点的不同,可分为两窗函数设计FIR数字滤波器是从时域出发,把理想的滤波器的单位取样响应hd(n)用合适的窗函数截短成为有限长度的h(n),并使h(n)逼近理想的hd(n),以实现所设计的滤波器的频率响应Hd(ejω)逼近于理想滤波器的频率响应Hd(ejω)。

一个有限长的序列,如果满足频率采样定理,可以通过频谱的有限个采样点的值被准确地得以恢复。

设理想滤波器的频率响应是Hd(ejω),它是连续频率ω的周期函数。

对其抽样,使每一个周期有N个抽样值,再对它做IDFT,可得到N点的单位抽样序列hd(n),即:

 

将h(n)作为所设计的滤波器的单位冲激响应,这样就可以求出该滤波器的传输函数,即:

当然

也可以用hd(k)来表示,即:

经推导,有:

 

由此得出的滤波器,其频率响应在l=mk的抽样点上严格地等于所希望的值hd(k),而在l

mk的点上,

则由内插函数的插值决定。

所以这种滤波器的设计方法被称之为频率抽样法。

该内插函数是:

在频率抽样法中指定hd(k)要比在窗函数法中指定Hd(ejω)复杂。

hd(k)指定的原则是:

1)在通带内,可令|hd(k)|=1,阻带内|hd(k)|=0,且在通带内赋给hd(k)相位函数;

2)指定的hd(k)应保证h(n)是实的;

3)由抽样序列h(n)求出的Hd(ejω)应具有线性相位。

为保证所设计的滤波器具有线性相位,必须对频率采样值进行约束。

有下列4种情况:

1)抽样序列h(n)偶对称,N为奇数。

2)抽样序列h(n)偶对称,N为偶数。

3)抽样序列h(n)奇对称,N为奇数。

种采样方法:

方法1:

第一个采样点在ω=0处,

1)N为奇数。

①若理想滤波器的频率响应Hd(ejω)不存在相移时,即设计Ⅰ型FIR滤波器。

②若理想滤波器的频率响应Hd(ejω)存在

相移时,即设计Ⅲ型FIR滤波器。

2)N为偶数。

①若理想滤波器的频率响应Hd(ejω)不存在相移时,即设计Ⅱ型FIR滤波器。

②若理想滤波器的频率响应Hd(ejω)存在+π/2相移时,即设计Ⅳ型FIR滤波器。

方法2:

第一个采样点在

处,

1)N为奇数。

①若理想滤波器的频率响应Hd(ejω)不存在相移时,即设计Ⅰ型FIR滤波器。

②若理想滤波器的频率响应Hd(ejω)存在+π/2相移时,即设计Ⅲ型FIR滤波器。

2)N为偶数。

①若理想滤波器的频率响应Hd(ejω)不存在相移时,即设计Ⅱ型FIR滤波器。

②若理想滤波器的频率响应Hd(ejω)存在+π/2相移时,即设计Ⅳ型FIR滤波器。

7.MATLAB下仿真实例

1)频率采样,最优法的FIR低通滤波器

%ƵÂʲÉÑù¼¼Êõ:

µÍͨ,×îÓÅ·¨

%

%(a)T1=0.5

M=40;alpha=(M-1)/2;l=0:

M-1;wl=(2*pi/M)*l;

Hrs=[ones(1,5),0.5,zeros(1,29),0.5,ones(1,4)];

Hdr=[1,1,0,0];wdl=[0,0.25,0.25,1];

k1=0:

floor((M-1)/2);k2=floor((M-1)/2)+1:

M-1;

angH=[-alpha*(2*pi)/M*k1,alpha*(2*pi)/M*(M-k2)];

H=Hrs.*exp(j*angH);

h=real(ifft(H,M));

[db,mag,pha,grd,w]=freqz_m(h,1);

[Hr,ww,a,L]=Hr_Type2(h);

subplot(1,1,1)

subplot(2,2,1);plot(wl(1:

21)/pi,Hrs(1:

21),'o',wdl,Hdr);

axis([0,1,-0.1,1.1]);title('ƵÂÊÑù±¾:

M=40,T1=0.5')

xlabel('');ylabel('Hr(k)')

set(gca,'XTickMode','manual','XTick',[0,0.2,0.3,1])

set(gca,'YTickMode','manual','YTick',[0,0.5,1]);grid

subplot(2,2,2);stem(l,h);axis([-1,M,-0.1,0.3])

title('Âö³åÏìÓ¦');ylabel('h(n)');text(M+1,-0.1,'n')

subplot(2,2,3);plot(ww/pi,Hr,wl(1:

21)/pi,Hrs(1:

21),'o');

axis([0,1,-0.1,1.1]);title('Õñ·ùÏìÓ¦')

xlabel('ƵÂÊ£¨µ¥Î»£ºpi£©');ylabel('Hr(w)')

set(gca,'XTickMode','manual','XTick',[0,0.2,0.3,1])

set(gca,'YTickMode','manual','YTick',[0,0.5,1]);grid

subplot(2,2,4);plot(w/pi,db);axis([0,1,-100,10]);grid

title('·ù¶ÈÏìÓ¦');xlabel('ƵÂÊ£¨µ¥Î»£ºpi£©');

ylabel('·Ö±´Êý');

set(gca,'XTickMode','Manual','XTick',[0;0.2;0.3;1]);

set(gca,'YTickMode','Manual','YTick',[-30;0]);

set(gca,'YTickLabelMode','manual','YTickLabels',['30';'0'])

%

仿真结果:

图1

2)FIR带通滤波器,基于频率采样

%ƵÂʲÉÑù¼¼Êõ:

´øͨ,×îÓÅ·¨T1&T2

%ws1=0.2pi,wp1=0.35pi,wp2=0.65pi,ws2=0.8pi,Rp=1dB,As=60dB

%T2=0.59417456,T1=0.109021

M=40;alpha=(M-1)/2;l=0:

M-1;wl=(2*pi/M)*l;

T1=0.109021;T2=0.59417456;

Hrs=[zeros(1,5),T1,T2,ones(1,7),T2,T1,zeros(1,9),T1,T2,ones(1,7),T2,T1,zeros(1,4)];

Hdr=[0,0,1,1,0,0];wdl=[0,0.2,0.35,0.65,0.8,1];

k1=0:

floor((M-1)/2);k2=floor((M-1)/2)+1:

M-1;

angH=[-alpha*(2*pi)/M*k1,alpha*(2*pi)/M*(M-k2)];

H=Hrs.*exp(j*angH);

h=real(ifft(H,M));

[db,mag,pha,grd,w]=freqz_m(h,1);

[Hr,ww,a,L]=Hr_Type2(h);

subplot(1,1,1)

subplot(2,2,1);plot(wl(1:

21)/pi,Hrs(1:

21),'o',wdl,Hdr);

axis([0,1,-0.1,1.1]);title('´øͨ:

M=40,T1=0.5941,T2=0.109')

xlabel('');ylabel('Hr(k)')

set(gca,'XTickMode','manual','XTick',[0,0.2,0.35,0.65,0.8,1])

set(gca,'YTickMode','manual','YTick',[0,0.059,0.109,1]);grid

subplot(2,2,2);stem(l,h);axis([-1,M,-0.4,0.4])

title('Âö³åÏìÓ¦');ylabel('h(n)');text(M+1,-0.4,'n')

subplot(2,2,3);plot(ww/pi,Hr,wl(1:

21)/pi,Hrs(1:

21),'o');

axis([0,1,-0.1,1.1]);title('Õñ·ùÏìÓ¦')

xlabel('ƵÂÊ£¨µ¥Î»£ºpi£©');ylabel('Hr(w)')

set(gca,'XTickMode','manual','XTick',[0,0.2,0.35,0.65,0.8,1])

set(gca,'YTickMode','manual','YTick',[0,0.059,0.109,1]);grid

subplot(2,2,4);plot(w/pi,db);axis([0,1,-100,10]);grid

title('·ù¶ÈÏìÓ¦');xlabel('ƵÂÊ£¨µ¥Î»£ºpi£©');

ylabel('Decibels');

set(gca,'XTickMode','Manual','XTick',[0,0.2,0.35,0.65,0.8,1]);

set(gca,'YTickMode','Manual','YTick',[-60;0]);

set(gca,'YTickLabelMode','manual','YTickLabels',['60';'0'])

%

仿真结果:

图2

3)FIR高通滤波器

%ƵÂʲÉÑù¼¼Êõ:

¸ßͨ,×îÓÅ·¨T1

%ws=0.6pi,wp=0.8pi,Rp=1dB,As=50dB

%M=33,T1=0.1095;T2=0.598;

M=33;alpha=(M-1)/2;l=0:

M-1;wl=(2*pi/M)*l;

T1=0.1095;T2=0.598;

Hrs=[zeros(1,11),T1,T2,ones(1,8),T2,T1,zeros(1,10)];

Hdr=[0,0,1,1];wdl=[0,0.6,0.8,1];

k1=0:

floor((M-1)/2);k2=floor((M-1)/2)+1:

M-1;

angH=[-alpha*(2*pi)/M*k1,alpha*(2*pi)/M*(M-k2)];

H=Hrs.*exp(j*angH);

h=real(ifft(H,M));

[db,mag,pha,grd,w]=freqz_m(h,1);

[Hr,ww,a,L]=Hr_Type1(h);

subplot(1,1,1)

subplot(2,2,1);plot(wl(1:

17)/pi,Hrs(1:

17),'o',wdl,Hdr);

axis([0,1,-0.1,1.1]);title('¸ßͨ:

M=33,T1=0.1095,T2=0.598')

xlabel('');ylabel('Hr(k)')

set(gca,'XTickMode','manual','XTick',[0;.6;.8;1])

set(gca,'XTickLabelMode','manual','XTickLabels',['0';'.6';'.8';'1'])

set(gca,'YTickMode','manual','YTick',[0,0.109,0.59,1]);grid

subplot(2,2,2);stem(l,h);axis([-1,M,-0.4,0.4])

title('Âö³åÏìÓ¦');ylabel('h(n)');text(M+1,-0.4,'n')

subplot(2,2,3);plot(ww/pi,Hr,wl(1:

17)/pi,Hrs(1:

17),'o');

axis([0,1,-0.1,1.1]);title('Õñ·ùÏìÓ¦')

xlabel('ƵÂÊ£¨µ¥Î»£ºpi£©');ylabel('Hr(w)')

set(gca,'XTickMode','manual','XTick',[0;.6;.8;1])

set(gca,'XTickLabelMode','manual','XTickLabels',['0';'.6';'.8';'1'])

set(gca,'YTickMode','manual','YTick',[0,0.109,0.59,1]);grid

subplot(2,2,4);plot(w/pi,db);axis([0,1,-100,10]);grid

title('·ù¶ÈÏìÓ¦');xlabel('ƵÂÊ£¨µ¥Î»£ºpi£©');

ylabel('·Ö±´Êý');

set(gca,'XTickMode','manual','XTick',[0;.6;.8;1])

set(gca,'XTickLabelMode','manual','XTickLabels',['0';'.6';'.8';'1'])

set(gca,'YTickMode','Manual','YTick',[-50;0]);

set(gca,'YTickLabelMode','manual','YTickLabels',['50';'0'])

%

 

仿真结果:

 

8.总结及收获

这个学期的数字信号处理课,是一门很有用的课,这门课上学的Z变换、离散时间傅里叶变换、快速傅里叶变换等等知识,是对于我们以前数学和信号与系统知识的巩固和加强,同时也拓宽了我们的知识。

这次数字滤波器实验设计中,老师对我们的讲解,让我对这方面的知识掌握的更加牢固,同时也对这样的实验设计有了更多的兴趣,更深入的了解到这门课的重要。

自己能亲手做出这样一个实验,而且成功了,心里真的很有成就感,在以后的学习中,要更多的去学习这方面的知识,以便以后在工作中,能灵活的运用。

参考文献:

[1]程佩青.数字信号处理(第2版)[M].北京:

清华大学出版社,2003.

[2]林彦杰.基于MATLAB的FIR数字滤波器的设计[J].南京邮电学院电子工程系,江苏省南京市210003

[3]蔡文海.Matlab软件包在数字滤波器设计中的应用[J].安徽水利水电职业技术学院学报,2003,3

(1):

40-42.

[4]陈怀琛.MATLAB及在电子信息课程中的应用[M].北京:

电子工业出版社,2002.

[5]潘永才,王子旭,游 治.数字FIR滤波器的Matlab设计[J].半导体技术,2001

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 中国风

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1