基于matlab的FIR数字滤波器设计~

发布时间:2011-03-24 20:36:56

通信专业课程设计一

太原科技大学

计(论 文)

设计(论文)题目:基于MATLABFIR数字滤波器设

___ xxxx___

__ 200715030101____

__ 通信071501_____

__ 电子信息工程____

指导教师__ xxxx____ ___

2010 12 31


太原科技大学课程设计(论文)任务书

学院(直属系):电子信息工程学院 时间: 20101217


- 3 -

1 绪论 - 4 -

1.1数字滤波器的研究背景和意义 - 4 -

1.2数字滤波器的应用及现状 - 4 -

1.3数字滤波器的设计方法 - 4 -

2 FIR滤波器 - 6 -

2.1 FIR滤波器的基本概念 - 6 -

2.2 FIR滤波器的特点 - 6 -

2.3 FIR滤波器的种类 - 7 -

3 FIR数字滤波器的设计 - 8 -

3.1 窗函数 - 8 -

3.2 频率采样法 - 9 -

3.3 最优化设计 - 9 -

3.3.1 等波纹切比雪夫逼近准则 - 10 -

3.3.2 仿真函数 - 10 -

4 结果分析 - 12 -

参考文献 - 16 -

附录 - 17 -

基于MATLABFIR数字滤波器设计

论文针对窗函数法、频率采样法和最优化设计法三种设计方法,采用MATLAB 进行FIR滤波器的设计与仿真,并比较了三种方法的特点。结果表明,在同样的设计指标下,利用等波纹切比雪夫逼近法则的设计可以获得最佳的频率特性和衰耗特性,具有通带和阻带平坦,过渡带窄等优点。

关键词:FIR滤波器;MATLAB; 窗函数法;频率采样法;等波纹切比雪夫逼近

第1章 绪论

1.1数字滤波器的研究背景和意义

当今,数字信号处理技术正飞速发展,它不但自成一门学科,更是以不同形式影响和渗透到其他学科;它与国民经济息息相关,与国防建设紧密相连;它影响或改变着我们的生产、生活方式,因此受到人们普遍的关注。

数字化、智能化和网络化是当代信息技术发展的大趋势,而数字化是智能化和网络化的基础,实际生活中遇到的信号多种多样,例如广播信号、电视信号、雷达信号、通信信号、导航信号等等。上述这些信号大部分是模拟信号,也有小部分是数字信号。模拟信号是自变量的连续函数,自变量可以是一维的,也可以是二维或多维的。大多数情况下一维模拟信号的自变量是时间,经过时间上的离散化(采样)和幅度上的离散化(量化),这类模拟信号便成为一维数字信号。因此,数字信号实际上是数字序列表示的信号,语音信号经采样和量化后,得到的数字信号是一个一维离散时间序列;而图像信号的经采样和量化后,得到的是数字信号是一个二维离散空间序列。

数字滤波技术是数字信号分析、处理技术的重要分支。无论是信号的获取、传输,还是信号的处理和交换都离不开滤波技术,它对信号安全可靠和有效灵活地传输时至关重要的。在所有的电子系统中,使用最多技术最复杂的要算数字滤波器了。数字滤波器的优劣直接决定产品的优劣。

1.2 数字滤波器的应用及现状

数字滤波器精确度高、使用灵活、可靠性高,具有模拟设备所没有的许多优点,已广泛应用于各个学科技术领域,例如数字电视、语音、通信、雷达、声纳、遥感、图像、生物医学以及许多工程应用领域。随着信息时代数字时代的到来,数字滤波技术已经成为一门极其重要的学科和技术领域。以往的滤波器大多采用模拟电路技术,但是,模拟电路技术存在很多难以解决的问题,例如,模拟电路元件对温度的敏感性,等等。而采用数字技术则避免很多类似的难题,当然数字滤波器在其他方面也有很多突出的优点,所以采用数字滤波器对信号进行处理是目前的发展方向。

1.3 数字滤波器的设计方法

数字滤波器按照单位取样响应的时域特性可以分为无限脉冲响应(IIR)系统和有限脉冲响应(FIR)系统。FIR 数字滤波器的优点在于它可以做成具有严格线性相位,而同时可以具有任意的幅度特性;它的传递函数没有极点;这保证了设计出的FIR 数字滤波器一定是平稳的。

所谓数字滤波器设计,简单地说,就是要找到一组能满足特定滤波要求的系数向量ab。而滤波器设计完成后还需要进一步考虑如何将其实现,即选择什么样的滤波器结构来完成滤波运算。FIR数字滤波器的设计方法很多,其中较为常用的是窗函数设计法、频率采样设计法和最优化设计法。本文讨论利用窗函数法、频率采样法和等波纹切比雪夫逼近法(调用remez函数)来分别实现各种FIR滤波器的设计。

窗函数法设计的基本思想是把给定的频率响应通过IDTFTInverse Discrete Time Fourier Transform),求得脉冲响应,然后利用加窗函数对它进行截断和平滑,以实现一个物理可实现且具有线性相位的 FIR 数字滤波器的设计目的。其核心是从给定的频率特性,通过加窗确定有限长单位取样响应;频率采样法设计的基本思想是把给出的理想频率响应进行取样,通过 IDFT 从频谱样点直接求得有限脉冲响应;最优化设计方法是指采用最优化准则来设计的方法,在 FIR DF的最优化设计中 ,最优化准则有均方误差最小化准则和等波纹切比雪夫逼近(也称最大误差最小化)准则两种。

2 FIR 滤波器

2.1 FIR滤波器的基本概念

FIR滤波器:有限长单位冲激响应滤波器,是数字信号处理系统中最基本的元件,它可以在保证任意幅频特性的同时具有严格的线性相频特性,同时其单位抽样响应是有限长的,因而滤波器是稳定的系统。因此,FIR滤波器在通信、图像处理、模式识别等领域都有着广泛的应用。滤波器设计是根据给定滤波器的频率特性,求得满足该特性的传输函数。

2.2 FIR滤波器的特点

有限长单位冲激响应(FIR)滤波器有以下特点:

  1 系统的单位冲激响应在有限个n值处不为零;

  2 系统函数处收敛,极点全部在z = 0处(因果系统);

  3 结构上主要是非递归结构,没有输出到输入的反馈,但有些结构中(例如频率抽样结构)也包含有反馈的递归部分。

  设FIR滤波器的单位冲激响应为一个N点序列,,则滤波器的系统函数为

2-1

就是说,它有(N—1)阶极点在z = 0处,有(N—1)个零点位于有限z平面的任何位置。

优点

1)很容易获得严格的线性相位,避免被处理的信号产生相位失真,这一特点在宽频带信号处理、阵列信号处理、数据传输等系统中非常重要;

2)可得到多带幅频特性;

3)极点全部在原点(永远稳定),无稳定性问题;

4)任何一个非因果的有限长序列,总可以通过一定的延时,转变为因果序列,所以因果性总是满足;

5)无反馈运算,运算误差小。

缺点:

1)因为无极点,要获得好的过渡带特性,需以较高的阶数为代价;

2)无法利用模拟滤波器的设计结果,一般无解析设计公式,要借助计算机辅助设计程序完成。

2.3 FIR滤波器的种类

1数字集成电路FIR滤波器

一种是使用单片通用数字滤波器集成电路,这种电路使用简单,但是由于字长和阶数的规格较少,不易完全满足实际需要。虽然可采用多片扩展来满足要求,但会增加体积和功耗,因而在实际应用中受到限制。设计数字滤波器的任务就是寻求一个因果稳定的线性时不变系统,使其系统函数H(z)具有指定的频率特性。

2DSP芯片FIR滤波器

另一种是使用DSP芯片。DSP芯片有专用的数字信号处理函数可调用,实现FIR滤波器相对简单,但是由于程序顺序执行,速度受到限制。而且,就是同一公司的不同系统的DSP芯片,其编程指令也会有所不同,开发周期较长。

1 DSP FIR滤波器

3)可编程FIR滤波器

还有一种是使用可编程逻辑器件,FPGACPLDFPGA有着规整的内部逻辑块整列和丰富的连线资源,特别适合用于细粒度和高并行度结构的FIR滤波器的实现,相对于串行运算主导的通用DSP芯片来说,并行性和可扩展性都更好。

3 FIR 数字滤波器设计

FIR滤波器设计的任务是选择有限长度的,使传输函数满足一定的幅度特性和线性相位要求。由于FIR 滤波器很容易实现严格的线性相位,所以FIR 数字滤波器设计的核心思想是求出有限的脉冲响应来逼近给定的频率响应。

设计过程一般包括以下三个基本问题:

1 根据实际要求确定数字滤波器性能指标;

2 用一个因果稳定的系统函数去逼近这个理想性能指标;

3 用一个有限精度的运算去实现这个传输函数。

3.1 窗函数法

设计FIR数字滤波器的最简单的方法是窗函数法,通常也称之为傅立叶级数法。FIR数字滤波器的设计首先给出要求的理想滤波器的频率响应,设计一个FIR数字滤波器频率响应,去逼近理想的滤波响应。然而,窗函数法设计FIR数字滤波器是在时域进行的,因而必须由理想的频率响应推导出对应的单位取样响应,再设计一个FIR数字滤波器的单位取样响应去逼近。设计过程如下:

3-1

加窗的作用是通过把理想滤波器的无限长脉冲响应乘以窗函数来产生一个被截断的脉冲响应,即并且对频率响应进行平滑。MATLAB工具箱提供的窗函数有:矩形窗(Rectangularwindow)、三角窗(Triangular window)、布拉克曼窗(Blackman window)、汉宁窗(Hanningwindow)、海明窗(Hamming window)、凯塞窗(Kaiser window)、切比雪夫窗(Chebyshev window)

窗函数主要用来减少序列因截断而产生的Gibbs效应。但当这个窗函数为矩形时,得到的FIR滤波器幅频响应会有明显的Gibbs效应,并且任意增加窗函数的长度(即FIR滤波器的抽头数)Gibbs效应也不能得到改善。为了克服这种现象,窗函数应该使设计的滤波器:

1 频率特性的主瓣宽度应尽量窄,且尽可能将能量集中在主瓣内;

2 窗函数频率特性的旁瓣ω趋于π 的过程中,其能量迅速减小为零。

3.2频率采样法

频率采样法是从频域出发,根据频域采样定理,对给定的理想滤波器的频率响应加以等间隔的抽样 ,得到

k=0,1,…,N-1 3-2

再利用可求得FIR滤波器的系统函数及频率响应

而在各采样点间的频率响应则是其的加权内插函数延伸叠加的结果。但对于一个

无限长的序列,用频率采样法必然有一定的逼近误差,误差的大小取决于理想频响曲线的形状, 理想频响特性变换越平缓, 则内插函数值越接近理想值,误差越小。为了提高逼近的质量,可以通过在频率相应的过渡带内插入比较连续的采样点,扩展过渡带使其比较连续,从而使得通带和阻带之间变换比较缓慢,以达到减少逼近误差的目的。

选取w[0,2π]N个采样点的约束条件为:

3-3

1)增大阻带衰减三种方法:

1加宽过渡带宽,以牺牲过渡带换取阻带衰减的增加。

2过渡带的优化设计

利用线性最优化的方法确定过渡带采样点的值,得到要求的滤波器的最佳逼近(而不是盲目地设定一个过渡带值)。

3增大N如果要进一步增加阻带衰减,但又不增加过渡带宽,可增加采样点数N代价是滤波器阶数增加,运算量增加。

直接从频域进行设计,物理概念清楚,直观方便;适合于窄带滤波器设计,这时频率响应只有少数几个非零值,但是截止频率难以控制

典型应用:用一串窄带滤波器组成多卜勒雷达接收机,覆盖不同的频段,多卜勒频偏可反映被测目标的运动速度;

3.3最优化设计

最优化设计方法是指采用最优化准则来设计的方法。在 FIR DF的最优化设计中 ,最优化准则有均方误差最小化准则和等波纹切比雪夫逼近(也称最大误差最小化)准则两种。实际设计中 ,只有采用窗函数法中的矩形窗 才能满足前一种最优化准则 ,但由于吉布斯 (Gibbs )效应的存在,使其根本不能满足设计的要求。为了满足设计的要求 ,可以采用其它的窗函数来消除吉布斯效应 ,但此时的设计已经不能满足该最优化准则了。因此 ,要完成 FIR DF的最优化设计 ,只能采用后一种优化准则来实现。

3.3.1 等波纹切比雪夫逼近准则

在滤波器的设计中 ,通常情况下通带和阻带的误差要求是不一样的。等波纹切比雪夫逼近准则就是通过对通带和阻带使用不同的加权函数 ,实现在不同频段(通常指的是通带和阻带)的加权误差最大值相同 ,从而实现其最大误差在满足性能指标的条件下达到最小值。

尽管窗函数法与频率采样法在FIR数滤波器的设计中有着广泛的应用, 但两者不是最优化的设计 。通常线性相位滤波在不同的频带内逼近的最大容许误差要求不同。等波纹切比雪夫逼近准则就是通过通带和阻带使用不同的加权函数,实现在不同频段(通常指的是通带和阻带) 的加权误差最大值相同,从而实现其最大误差在满足性能指标的条件下达到最小值,即使得之间的最大绝对误差最小。

等波纹切比雪夫逼近是采用加权逼近误差,它可以表示为:

(3-4)

其中,为逼近误差加权函数在误差要求高的频段上,可以取较大的加权值,否则,应当取较小的加权值。

尽管按照 FIR 数字滤波器单位取样响应 h(n)的对称性和 N的奇、偶性,FIR 数字滤波器可以分为 4 种类型,但滤波器的频率响应可以写成统一的形式:

(3-5)

其中,k{0 ,1} , H (ω)为幅度函数,且是一个纯实数,表达式也可以写成统一的形式:

(3-6)

其中,为ω的固定函数,M个余弦函数的线性组合。

3.3.2仿真函数

利用数字信号处理工具箱中的 remezord remez函数可以实现 FIRDF的最优化设计。在此先介绍这两个函数:

(1)n ,fo ,ao ,weights =remezordf ,a ,dev

功能:利用 remezord 函数可以通过估算得到滤波器的近似阶数 n ,归一化频率带边界fo ,频带内幅值ao 及各个频带内的加权系数weights。输入参数f为频带边缘频率 ,a 为各个频带所期望的幅度值 ,dev是各个频带允许的最大波动。

(2)h =remez(n ,fo ,ao ,weights‘, ftype’)

功能:利用 remez 函数可以得到最优化设计的FIR DF系数 ,输入参数 n 是滤波器的阶数 ,fo ,ao ,weights参数含义说明同 (1)ftype 是所设计的滤波器类型 ,它除了可以设计普通的滤波器外 ,它还可以设计数字希尔钞特变换器以及数字微分器。实际设计中 ,由于 remezord 函数可跑高估或低估滤波器的阶数 n ,因此在得到滤波器的系数后 ,必须检查其阻带最小衰减是否满足设计要求。如果此时的技术指标不能满足设计要求 ,则必须提高滤波器的阶数到 n +1 ,n +2等。故等波纹切比雪夫逼近法设计FIR数字滤波器的步骤是:

①给出所需的频率响应,加权函数和滤波器的单位取样响应

的长度N

②由①中给定的参数来形成所需的的表达式。

③根据Remez算法,求解逼近问题。

④利用傅立叶逆变换计算出单位取样响应

4 结果分析

窗函数法仿真结果

2 窗函数设计的FIR低通滤波器频率响应

结果分析:

可以看出,采用特殊的窗函数如Hamming窗,可以减小Gibbs效应,但同时也会使滤波器的过度带变宽。波动幅度取决于窗函数幅度频谱旁瓣的相对幅度, 而波纹的多少取决于窗函数旁瓣的多少。以上两点是就是窗函数直接截断Hd(n)引起的截断效应在频域的反映, 截断效应直接影响滤波器的性能, 因为通带内的波动会影响滤波器痛带中的平稳性, 阻带内的波动则影响阻带最小衰减,因此,减少截断效应也是FIR数字滤波器设计的关键之一。

频率采样法

3 FIR的单位取样响应

4 FIR的低通衰减幅频特性

结果分析:

3为在间断点处增加一个过渡点后的情况从图4,中可以看出滤波器的带外衰减指标有了明显的改善!但这同时增加了滤波器的过渡带宽所以在带外衰减和过渡带宽这两个指标之间需要有一个折衷

因频率取样点都局限在2π/N的整数倍点上,所以在指定通带和阻带截止频率时,这种方法受到限制,比较死板。充分加大N,可以接近任何给定的频率,但计算量和复杂性增加。频率采样法偏离设计指标明显,阻带衰减最小,只有适当选取过渡带样点值,才会取得较好的衰耗特性

最优化设计

5  滤波器输出的幅频及相频响应特性

结果分析:

在设计中 ,如果该滤波器的特性不满足要求 ,那么 ,原有参数必须作适当调整。这在程序中很容易实现 ,只需对参数进行重新设定 ,就可以得到新条件下滤波器的特性。采用最优化设计方法时大大减小了滤波器的阶数,从而减小了滤波器的体积,并最终降低了滤波器的成本。这样使得设计出来的滤波器更为简单经济。因而在实际的滤波器设计中,这种最优化方法是完全可行的在实际应用中 ,如果需要对某一信号源进行特定的滤波 ,并要检验滤波效果 ,应用传统方法实施起来比较繁琐。在Matlab环境下,可先用软件模拟产生信号源 ,再设计滤波器对其进行滤波

同样是设计一个FIR低通数字滤波器,综合分析可以看出:

1)窗函数法在阶数较低时,阻带特性不满足设计要求,只有当滤波器阶数较高时,使用海明窗和凯塞窗基本可以达到阻带衰耗要求;

2)频率采样法偏离设计指标最明显,阻带衰减最小,而且设计比采用窗函数法复杂。只有适当选取过渡带样点值,才会取得较好的衰耗特性;

3)利用等波纹切比雪夫逼近法则的设计可以获得最佳的频率特性和衰耗特性,具有通带和阻带平坦,过渡带窄等优点。

综上所述,FIR 滤波器很容易实现具有严格线性相位的系统, 使信号经过处理后不产生相位失真,舍入误差小,而且稳定,因此越来越受到广泛的重视。MATLAB软件的诞生, 使数字信号处理系统的分析与设计得简单,它已经成为电子工程师必备的一个工具软件。

参考文献

[1] 张亚妮. 基于 MATLAB 的数字滤波器设计[J]. 辽宁工程技术大学学报, 2005, 24 (5): 716-718.

[2] 饶志强,叶念渝. FIR IIR 数字滤波器的探讨与实现 [J]. 计算机与数字工程,2005,33(7):143-146.

[3] 孙强. 运用 MATLAB 实现数字滤波器的设计[J].电脑学习,2005,(2):32-33.

窗函数实现程序

passrad=0.4*pi;

w1=boxcar(61);

w2=hamming(61)

n=1:1:61;

hd=sin(passrad*(n-31))./(pi*(n-31));

hd(31)=passrad/pi;

h1=hd.*rot90(w1);

h2=hd.*rot90(w2);

[mag1,rad]=freqz(h1);

[mag2,rad]=freqz(h2);

subplot(2,2,1);

plot(rad,20*log10(abs(mag1)));

grid on;

title('designed by Rectangular window');

subplot(2,2,2);

plot(rad,20*log10(abs(mag2)));

grid on;

title('designed by Hamming window');

[h1,w1]=freqz(h1,1,100,2);

subplot(2,2,3);

plot(w1,unwrap(angle(h1)));

grid on;

[h2,w2]=freqz(h2,1,100,2);

subplot(2,2,4);

plot(w2,unwrap(angle(h2)));

grid on;

频率采样法实现程序:

f=[0.2 0.3];

a=[1 0];

dev=[0.04 0.02]; %给出滤波器的参数

[n f0 a0 w]=remezord(f,a,dev);

N=n;

alpha=(N-1)/2;

k=0:N-1;

wp=0.2*pi; ws=0.3*pi; %计算理想低通滤波器的截止频率

wc=(wp+ws)/2;

m=fix(wc*N/(2*pi)+1); %在两边过渡带取值为 0.5 的采样点

T = 0.5;

Hrs=[ones(1,m),T,zeros(1,N-2*m-1),T,ones(1,m-1)];

k1 = 0:floor(alpha);

k2 = floor(alpha+1):N-1;

phai=[-alpha*(2*pi)/N*k1,alpha*(2*pi)/N*(N -k2)];

H =Hrs.*exp(j*phai); %计算单位冲激响应

h =ifft(H,N);

[h1,w1] = freqz(h,1,256,1);

hr = abs( h1);

h1 = 20* log10(hr); %画出 FIR DF的单位取样响应

figure(1);

k=0:N-1;

stem(k,h,'k.')

axis([0,N-1,1.1*min(real(h)),1.1*max(real(h))]);

xlabel('n'); ylabel('h(n)');

grid on; %画出 FIR DF的低通衰减幅频特性

figure(2);

plot(w1,h1);

xlabel('Normalized')

Frequency(×πrad/sample)');

ylabel('Magnitude(dB)');

grid on;

最优化设计实现程序

fs =2000;      %采样频率

rp =3; %通带波纹

rs =40; %阻带波纹

f = [500 600]; %截止频率

a = [1 0]; %期望的幅度

dev= [(10^(rp/20) - 1)/ (10^(rp/20) + 1) 10^( - rs/20) ];

[n ,fo ,ao ,w] = remezord(f ,a ,dev,fs) ;

b = remez(n ,fo ,ao ,w) ; %调用最优设计法中 remez函数

reqz(b ,1 ,1024 ,fs);

基于matlab的FIR数字滤波器设计~

相关推荐