窗函数法设计FIR数字低通滤波器w

基于窗函数法的FIR 数字低通滤波器设计

摘 要

数字滤波器是一种用来过滤时间离散信号的数字系统,通过对抽样数据进行数学处理来达到频域滤波的目的。根据其单位冲激响应函数的时域特性可分为两类:无限冲激响应(IIR )滤波器和有限冲激响应(FIR )滤波器。与IIR 滤波器相比,FIR 的实现是非递归的,总是稳定的;更重要的是,FIR 滤波器在满足幅频响应要求的同时,可以获得严格的线性相位特性。因此,它在高保真的信号处理,如数字音频、图像处理、数据传输、生物医学等领域得到广泛应用。

滤波器的设计是信号处理的核心问题之一。根据FIR 滤波器的原理,提出了FIR 滤波器的窗函数设计法,给出了在MATLAB 环境下,用窗函数法设计FIR 滤波器的过程和设计实例。通过利用不同的窗函数方法设计FIR 滤波器,对所设计的滤波器进行分析比较,得出各种方法设计的滤波器的优缺点及其不同的使用场合,从而可以在设计滤波器时能够正确的选择FIR 数字滤波器的窗函数的选取及设计方法。

关键词:FIR 滤波器,MATLAB ,窗函数

目 录

摘 要 ................................................................................................................ I 1 概述 ............................................................................................................... 1 1.1 FIR滤波器简介 . ....................................................................................... 1 1.2 窗函数设计法 . ......................................................................................... 1 2 设计原理 ....................................................................................................... 3 2.1 基本原理 .................................................................................................. 3 2.2 典型的窗函数 . ......................................................................................... 4 3 几种数字低通滤波器的窗函数设计 . .......................................................... 7 3.1 采用矩形窗设计FIR 数字低通滤波器 ................................................. 7 3.2 采用汉明窗设计FIR 数字低通滤波器 ................................................. 7 3.3 采用布莱克曼窗设计FIR 数字低通滤波器 ......................................... 9 参考文献 ......................................................................................................... 10 附 录 ............................................................................................................. 12

1 概述

1.1 FIR滤波器简介

FIR 数字滤波器设计最简单的方法是窗函数法,通常也称为傅立叶级数法。它是在时域进行的,因而必须由理想滤波器的频率响应H d (e jw ) 推导出其单位冲激响应

h d (n ) ,在设计一个FIR 数字滤波器的单位冲激响应h (n ) 去逼近h d (n ) 。根据冲激响

应的时域特性,数字滤波器可分为无限长冲激响应(IIR )和有限长冲激响应滤波器(FIR ),FIR 的突出优点是:系统总是稳定的、易于实现线性相位、允许设计多通带(或多阻带)滤波器,但与IIR 相比,在满足同样阻带衰减的情况下需要的阶数较高,滤波器的阶数越高,占用的运算时间越多,因此在满足指标要求的情况下应尽量减少滤波器的阶数。

1.2 窗函数设计法

窗函数设计法是一种通过截短和计权的方法使无限长非因果序列成为有限长脉冲应响应序列的设计方法,通常在设计滤波器之前,应该先根据具体的工程应用确定滤波器的技术指标,在大多数实际应用中,数字滤波器常常被用来实现选频操作,所以指标的形式一般为在频域中以分贝值给出的相对幅度响应和相位响应。 用窗函数法设计FIR 滤波器的步骤如下:

(1)根据过渡带宽及阻带衰减要求,选择窗函数的类型并估计窗口长度N (或阶数M=N-1),窗函数类型可根据最小阻带衰减As 独立选择,因为窗口长度N 对最小阻带衰减As 没有影响,在确定窗函数类型以后,可根据过渡带宽小于给定指标确定所拟用的窗函数的窗口长度N ,设待求滤波器的过渡带宽为Δω,它与窗口长度N 近似成反比,窗函数类型确定后,其计算公式也确定了,不过这些公式是近似的,得出的窗口长度还要在计算中逐步修正,原则是在保证阻带衰减满足要求的情况下,尽量选择较小的N ,在N 和窗函数类型确定后,即可调用MATLAB 中的窗函数求出窗函数W (n )。

(2)根据待求滤波器的理想频率响应求出理想单位脉冲响应h d (n ),如果给出

待求滤波器频率应为H d (e jw ),则理想的单位脉冲响应可以用下面的傅里叶反变换式求出:

h d (n ) =

12π

⎰π

-

π

H d (e jw ) e jw dw (1)

在一般情况下,h d (n )是不能用封闭公式表示的,需要采用数值方法表示;从w=0到w=2π采样N 点,采用离散傅里叶反变换(IDFT )即可求出。

(3)计算滤波器的单位脉冲响应h (n ),它是理想单位脉冲响应和窗函数的乘积。

(4)算技术指标是否满足要求,为了计算数字滤波器在频域中的特性,可调用freqz 子程序,如果不满足要求,可根据具体情况,调整窗函数类型或长度,直到满足要求为止。

使用窗函数法设计时要满足以下两个条件:

1窗谱主瓣尽可能地窄,以获得较陡的过渡带; ○

2尽量减少窗谱的最大旁瓣的相对幅度,也就是使能量尽量集中于主瓣,减小峰肩○

和纹波,进行增加阻带的衰减。 窗函数的选择原则是:

[1]具有较低的旁瓣幅度,尤其是第一旁瓣的幅度; [2]旁瓣的幅度下降的速率要快,以利于增加阻带的衰减; [3]主瓣的宽度要窄,这样可以得到比较窄的过渡带。

通常上述的几点难以同时满足。实际中设计FIR 数字滤波器往往要求是线性相位的,因此要求w (n ) 满足线性相位的条件,即要求w(n)满足:

w (n ) =w (N -1-n ) (2)

所以,窗函数不仅有截短的作用,而且能够起到平滑的作用,在很多领域得到了应用。

2 设计原理

2.1 基本原理

设计低通FIR 数字滤波器,寻求一系统函数H (z ) ,使其频率响应H (e j ω) 逼近滤波器要求的理想频率响应H d (e j ω) ,其对应的单位脉冲响应h d (n )

H d e j ω

N -1

2

()

-j ωα⎧≤ωc ⎪e =⎨⎪⎩0,ωc

其中α=

1

h d (n )=

⎰π

-

π

H d e

()

j ω

1

e d ω=

j ω

⎰ω

-

ωc

e -j ωαe j ωαd ω=

c

sin [ωc (n -a )]

πn -a

如果所希望的滤波器的理想的频率响应函数为H d (e j ω),则其对应的单位脉冲响应为

1

h d (n )=

ωω

⎰πH (e )e d ω (4) π

j

j

-

d

窗函数设计法的基本原理是用有限长单位脉冲响应序列h (n )逼近h d (n )。由于

h d (n )往往是无限长序列,而且是非因果的,所以用窗函数ω(n )将h d (n )截断,并进行

加权处理,得到:

h (n )=h d (n )ω(n )

(5)

h (n )就作为实际设计的FIR 数字滤波器的单位脉冲响应序列,其频率响应函数

H e j ω为

()

H e

()=∑h (n )e

j ω

n =0

N -1

j ωn

(6)

式中,N 为所选窗函数ω(n )的长度。

2.2 典型的窗函数

(1)矩形窗(Rectangle Window)

w (n ) =R N (n ) (7)

其频率响应和幅度响应分别为:

sin(N ω/2) -j ω

W (e ) =e

sin(ω/2)

j ω

N -12

,W R (ω) =

sin(N ω/2)

(8)

sin(ω/2)

(2)三角形窗(Bartlett Window)

⎧2n ⎪N -1, w (n ) =⎨

2n ⎪2-,

N -1⎩

N -1

2 (9)

N -1

j ω

N -12

2sin(N ω/4) 2-j ω

]e 其频率响应为:W (e ) =[

N sin(ω/2)

(3)汉宁(Hanning)窗,又称升余弦窗

12n π

w (n ) =[1-)]R N (n ) (10)

2N -1

其频率响应和幅度响应分别为:

-j (2π2π

W (e ) ={0. 5W R (ω) +0. 25[W R (ω-) +W R (ω+)]}e

N -1N -1

=W (ω) e -j ωa

j ω

N -1

) ω2

W (ω) =0. 5W R (ω) +0. 25[W R (ω-

2π2π

) +W R (ω+)]N -1N -1

(4)汉明(Hamming)窗,又称改进的升余弦窗

2n π

w (n ) =[0. 54-0. 46)]R N (n ) (11)

N -1

其幅度响应为:W (ω) =0. 54W R (ω) +0. 23[W R (ω-

(5)布莱克曼(Blankman)窗,又称二阶升余弦窗

2π2π

) +W R (ω+)] N -1N -1

2n π4n π

w (n ) =[0. 42-0. 5) +0. 08)]R N (n ) (12)

N -1N -1

其幅度响应 :

W (ω) =0. 42W R (ω) +0. 25[W R (ω-

2π2π

) +W R (ω+)]N -1N -1

4π4π

+0. 04[W R (ω-) +W R (ω+)]

N -1N -1

(6)凯塞(Kaiser)窗

I 0(β-[1-2n /(N -1)]2)

w (n ) =, 0≤n ≤N -1 (13)

I 0(β)

其中:β是一个可选参数,用来选择主瓣宽度和旁瓣衰减之间的交换关系,一般说来,β越大,过渡带越宽,阻带越小衰减也越大。I 0(·) 是第一类修正零阶贝塞尔函数。

若阻带最小衰减表示为A s =-20log 10δs ,β的确定可采用下述经验公式:

⎧0

β=⎨0. 5842(A s -21) 0. 4+0. 07886(A s -21)

⎪0. 1102(A -8. 7)

s ⎩

A s ≤21

2150

若滤波器通带和阻带波纹相等即δp=δs 时,滤波器节数可通过下式确定:

N =

A s -7. 95

+1

14. 36∆F

式中:∆F =

∆ωωs -ωp

= 2π2π

我们知道,用窗函数法设计的滤波器性能取决于窗函数ω(n )的类型及窗口长度N 的取值。设计过程中,要根据对阻带最小衰减和过渡带宽度的要求选择合适的窗函数类型和窗口长度N 。各种类型的窗函数可达到的阻带最小衰减和过渡带宽度见下表1。

表2-1 各种窗函数的基本参数

这样选定窗函数类型和长度N 之后,求出单位脉冲响应h (n )=h d (n )ω(n ),并按照式(6)求出H (e j ω)。H (e j ω)是否满足要求,要进行演算。一般在h (n )尾部加零使长度满足2的整数次幂,以便用FFT 计算H (e j ω)。如果要观察细节,补零点数增多即可。如果H (e j ω)不满足要求,则要重新选择窗函数类型和长度N ,再次验算,直至满足要求。

如果要求线性相位特性,则h (n )还必须满足

h (n )=±h (N -1-n ) (14)

根据上式中的正、负号和长度N 的奇偶性又将线性相位FIR 滤波器分成四类。要根据所设计的滤波特性正确选择其中一类,例如,要设计线性相位低通特性,可以选择h (n )=h (N -1-n )这一类,而不能选择h (n )=-h (N -1-n )这一类。

我们在设计滤波器时,希望窗谱主瓣尽可能窄,以获得较陡的过渡带,同时尽可能减小最大旁瓣的相对幅度,我们发现这是不可能的,因为这本身就是一个矛盾体,所以在设计滤波器时只是根据实际情况来选择合适的窗函数。

3 几种数字低通滤波器的窗函数设计

3.1 采用矩形窗设计FIR 数字低通滤波器

100

-10-20-30-400

0.5

1

1.522.5

矩形窗滤波器幅頻响应

3

3.5

0-10

-20-30-40

00.10.2

0.30.40.50.60.7矩形窗滤波器相頻响应

0.80.91

图3-1 采用矩形窗设计FIR 数字低通滤波器的仿真图

3.2 采用汉明窗设计FIR 数字低通滤波器

0-20

-40-60-80

00.51

1.522.5

汉明窗滤波器幅頻响应

33.5

0-20

-40-60-80

00.10.2

0.30.40.50.60.7汉明窗滤波器相频响应

0.80.91

图3-2 采用汉明窗设计FIR 数字低通滤波器的仿真图

3.3 采用布莱克曼窗设计FIR 数字低通滤波器

-50

-100

-150

00.5

11.522.5布莱克曼窗滤波器幅頻响应

33.5

0-20

-40-60-80

00.10.20.3

0.40.50.60.7布莱克曼窗相频响应

0.80.91

图3-3 采用布莱克曼窗设计FIR 数字低通滤波器的仿真图

9

0.015

0.01

0.005

冲激响应序列

0.20.150.1

0.050

510冲激响应傅里叶变换

15

图3-4采用布莱克曼窗冲激响应仿真图

1510x 10

4

50

2

4

6

810

含噪语音信号

12

14

16x 10

4

3002001000

2

4

6810滤波后语言信号

12

14

16x 10

4

图3-5采用布莱克曼窗对含噪语音信号及滤波后的语音信号仿真图

10

参考文献

[1] 从玉良. 数字信号处理原理及其MATLAB 实现[M].北京:电子工业出版社.2009.7

[2] 胡广书. 数字信号处理理论、算法与实现[M].北京:清华大学出版社.2003,8 [3] 万永革. 数字信号处理的MATLAB 实现[M].北京: 科学出版社.2007. [4] 薛山.MATLAB 基础教程[M].北京: 清华大学出版社.2011.

[5] 陈怀琛. 数字信号处理教程—MATLAB 释义与实现[M].北京: 电子工业出版社.2002

[6] 缪家鼎,徐文娟. 光电技术[M]. 杭州:浙江大学出版社,1994:112-156.

[7] 李晓东,张庆红,叶瑾琳.气候学研究的若干理论问题[J].北京大学学报:

自然科学版,1999,35(1):101-106.

[8] 郑开青.通讯系统模拟及软件[D].北京:清华大学无线电系,1987. [9]

Online

Computer

Library

Center,

Inc.

History

of

OCLC[EB/OL].[2000-01-08]. http: //www. oclc. org/about/ history/default. htm.

11

附 录

矩形窗设计程序 passrad=0.4*pi; w2=boxcar(16);

n=1:1:16;

hd=sin(passrad*(n-8))./(pi*(n-8)); hd(8)=passrad/pi; h2=hd.*rot90(w2);

title('designed by Hanning window'); [mag2,rad]=freqz(h2); subplot(2,1,1);

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

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

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

汉明窗设计程序 passrad=0.4*pi; w2=hamming(32); n=1:1:32;

hd=sin(passrad*(n-16))./(pi*(n-16)); hd(16)=passrad/pi; h2=hd.*rot90(w2);

title('designed by Hanning window'); [mag2,rad]=freqz(h2); subplot(2,1,1);

12

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

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

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

布莱克曼窗函数设计程序 passrad=0.4*pi; w2=blackman(64); n=1:1:64;

hd=sin(passrad*(n-32))./(pi*(n-32)); hd(32)=passrad/pi; h2=hd.*rot90(w2);

title('designed by Hanning window'); [mag2,rad]=freqz(h2); subplot(2,1,1);

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

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

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

13

用布莱克曼语音信号进行滤波,并得滤波前后信号的时域波形及频谱程序 clear;clc;

[x,fs]=wavread('D:\SHE.wav'); sound(x,fs); if x/2==0 x=[x' 0]; end

fnoise =10000;T=length(x)/fs; t=T/length(x):T/length(x):T; for j=1:length(x)

noise(j)=sin(2*pi*fnoise*t(j)); end x=x+noise'; fp=1000; fst=1200;

delta_w=2*pi*(fst-fp)/fs; wc=pi*(fst+fp)/fs; N=31; if N/2==0 N=N+1; end tau=(N-1)/2; for n=1:N

h(n)=sin(wc*(n-tau))/(pi*(n-tau)); end

h((N-1)/2)=(fst+fp)/fs; wn=(blackman(N)); h1=h(n).*wn';

subplot(2,1,1);stem(h1); F=abs(fft(h1));

14

subplot(2,1,2); plot(F(1:(N-1)/2)); X=abs(fft(x)); figure;subplot(2,1,1); plot(X(1:(length(x)+1)/2)); y=conv(x,h1); Y=abs(fft(y)); subplot(2,1,2);

plot(Y(1:(length(x)+1)/2)); sound(x,fs); sound(y,fs);

15


相关文章

  • 数字信号处理期末综合实验报告
  • 数字信号处理综合实验报告 实验题目:基于Matlab 的语音信号去噪及仿真 专业名称: 学 号: 姓 名: 日 期: 报告内容: 一. 实验原理 1.去噪的原理 1.1 采样定理 在进行模拟/数字信号的转换过程中,当采样频率fs.max 大于信号中,最高频率fmax 的2倍时,即:fs.max> ...

  • 数字滤波器设计与仿真实验
  • 电子系电子信息工程实验报告 课程名称:<基于MA TLAB 的信号与系统及数字信号处理仿真实验> 实验项目名称:数字滤波器设计与仿真实验 实验时间:2012-6-20实验地点:信息学院四层机房 一.实验目的 1. 熟悉用数字滤波器设计的原理与方法: 2. 学会调用MA TLAB 信号处理 ...

  • 语音信号处理
  • 基于MATLAB 的语音信号滤波处理 摘要 语音信号处理是研究用数字信号处理技术和语音学知识对语音信号进行处理的新兴学科,是目前发展最为迅速的学科之一,通过语音传递信息是人类最重要,最有效,最常用和最方便的交换信息手段,所以对其的研究更显得尤为重要. 语音信号处理属于信息科学的一个重要分支,大规模集 ...

  • 03DSP研究性学习报告数字滤波器设计_第三次研讨
  • <数字信号处理>课程研究性学习报告 姓名 学号 同组成员 指导教师 时间 数字滤波器专题研讨 [目的] (1) 掌握IIR和FIR数字滤波器的设计方法及各自的特点. (2) 掌握各种窗函数的时频特性及对滤波器设计的影响. (3) 能够灵活应用DFT(FFT)分析实际信号的频谱. (4) ...

  • FIR低通滤波器的设计
  • > 专 业: FIR低通滤波器的设计 班 级: 学 号: 姓 名: 指 导 教 师: 贵州大学计算机科学与信息学院 2012年6月12日 一.设计目的 当今,数字信号处理技术正飞速发展,它不但自成一门学科,更是以不同的形式渗透到其他学科.它与国民经济息息相关,与国防建设紧密相连:它影响和改变着 ...

  • 课程设计格式
  • 1)到商店买黄色牛皮纸封面(专门用于包装课程设计报告的那种黄色封面纸,上面有"课程设计"字样) 2)课程设计课题任务表,必须装订到课程设计报告书的第一页(即黄色封面纸后一页即是.)要写好自己在课题中的分工工作. 3)个别同学未能分组的可加塞到别的课题组,但要写好自身承担的任务. ...

  • 通信方面的毕业论文
  • 河南机电高等专科学校 毕业设计论文 论文题目:第三代移动通信系统 系 部 电子通信 专 业 班 级 学生姓名 学 号 指导教师 2011年 5月 10日 河南机电高等专科学校毕业设计 目录 摘 要 ................................................... ...

  • 数字信号处理基本内容
  • 目录 1 数字信号处理基本内容 . ............................................ 2 2数字滤波器 ....................................................... 3 2.1 滤波器的分类 . ....... ...

  • 最新[数字信号处理]期末试题库(有答案)
  • 一. 填空题 1.一线性时不变系统,输入为 x(n )时,输出为y (n ) :则输入为2x (n )时,输出为 2y(n) :输入为x (n-3)时,输出为 y(n-3) . 2.从奈奎斯特采样定理得出,要使实信号采样后能够不失真还原,采样频率fs 与信号最高频率f max 关系为: fs> ...

© 2024 范文中心 | 联系我们 webmaster# onjobs.com.cn