搜档网
当前位置:搜档网 › 基于MATLAB的FIR数字低通滤波器设计

基于MATLAB的FIR数字低通滤波器设计

基于MATLAB的FIR数字低通滤波器设计
基于MATLAB的FIR数字低通滤波器设计

基于MATLAB的FIR数字低通滤波器设计

作者:周龙刚

(陕西理工学院物理与电信工程学院通信工程专业2011级4班,陕西汉中723003)

指导老师:井敏英

[摘要]FIR数字滤波器是数字信号处理的一个重要组成部分,由于FIR数字滤波器具有严格的线性相位,因此在信息的采集和处理过程中得到了广泛的应用。本文介绍了FIR数字滤波器的概念和线性相位的条件,分析了窗函数法、频率采样法和等波纹逼近法设计FIR滤波器的思路和流程。在分析三种设计方法原理的基础上,借助Matlab仿真软件工具箱中的fir1实现窗函数法中的哈明窗设计FIR低通滤波器。

[关键词]FIR数字滤波器;线性相位窗函数;法哈明窗;Matlab

Designing FIR low-pass digital filter based on VHDL

Zhoulonggang

(Grade11,Class4,Major of Communication Engineering,School of Physics and T elecommunication Engineering , Shaanxi University of T echnology,Hanzhong 723003,Shaanxi)

T utor:JingYingMin

Abstract:FIR digital filter is an important part of digital signal processing,the FIR digitalfilter with linear phase, so it has been widely applied in the collection and processing of information in the course of. This paper introduces the concept of FIR digital filter with linear phase conditions, analysis of the window functionmethod and frequency sampling method and the ripple approximation method ofFIR filter design ideas and processes. Based on analyzing the principle of three kinds of design method, using Matlab simulation software fir1 toolbox in design and implementation of FIR Hamming window window function method in the low pass filter.

Keywords:FIR digital filter, linear phase,the window function method,Hamming window,Matlab

目录

引言.................................................................................................................. .. (1)

1. 基本原理.................................................................................................. - 1 -

1.1 FIR数字滤波器概述............................................................................... - 1 -

1.2 FIR数字滤波器线性相位定义.................................................................... - 2 -

1.3 FIR数字滤波器线性相位时域条件 .............................................................. - 2 -

2. 系统设计.................................................................................................. - 3 -

2.1 FIR数字滤波器的窗函数设计方法 .............................................................. - 3 -

2.1.1 窗函数法的设计思路 ..................................................................... - 3 -

2.1.2 常见窗函数介绍........................................................................... - 3 -

2.1.3 吉布斯效应 ................................................................................ - 5 -

2.2 FIR数字滤波器频率采样设计法............................................................... - 5 -

2.3 FIR数字滤波器等波纹逼近设计法 .............................................................. - 6 -

3 详细设计................................................................................................... - 7 -

3.1 程序设计流程 ..................................................................................... - 7 -

3.2 Matlab简介........................................................................................ - 7 -

3.3窗函数法的Matlab实现.......................................................................... - 8 -

3.3.1 fir1函数介绍 .............................................................................. - 8 -

3.3.2基于fir1函数的窗函数法FIR滤波器设计 ............................................. - 8 -

4 总结 ................................................................................................... - 11 - 致谢 ...................................................................................................... - 11 - 参考文献 ................................................................................................... - 11 - 附录A .. (14)

引言

随着信息科学和计算机技术的不断发展,数字信号处理(DSP ,Digital Signal Processing)的理论和技术也得到了飞速的发展,并逐渐成为一门重要的学科,它的重要性在日常通信、图像处理、遥感、声纳、生物医学、地震、消费电子、国防军事、医疗方面等显得尤为突出。在我们面临的信息革命中,数字信号处理几乎涉及了所有的工程技术领域[1]。

数字信号处理是一种将信号以数字形式进行处理的一种理论和技术,它的目的是将真实世界中的一些信号进行分析并滤波,最后得出其中的有用的信号。数字滤波器是数字信号处理的一种,一般根据单位脉冲响应h(n)分为无限脉冲响应(IIR)和有限脉冲响应(FIR)系统。IIR 数字滤波器的设计方法简单,特别是采用双线性变换法来设计的数字滤波器不存在频域混叠的现象,但是IIR 滤波器存在一个较为明显的缺憾,就是它的相位响应一般都是非线性的,而在传输频带内的相位响应如果不是线性的,就会造成有用信号的传输失真,而FIR 数字滤波器不仅可以设计成任意的幅度响应,而且可以设计成在通频带内具有良好的线性相位响应[2]。FIR 数字滤波器的单位脉冲响应h(n)有限长,所以FIR 数字滤波器是稳定的,不存在稳定性的问题,且可以通过快速傅里叶变换(FFT)的算法来实现信号滤波,大大的提高的运算效率。因此,FIR 数字滤波器日益引起了人们的关注。

FIR 数字滤波器的设计方法有很多,比较常用的有窗函数设计法、频率采样设计法、等波纹逼近法等。本课题通过运用窗函数设计FIR 数字低通滤波器,并实现对给定的信号进行滤波。窗函数设计法是最基本的数字滤波方法,是利用傅里叶反变换(IDTFT)计算给定的频响的理想单位脉冲响应,再加以窗函数进行截断和平滑 [3]。Matlab 软件的信号处理工具箱提供了FIR 数字滤波器设计的子函数,运用Matlab 软件设计可以避免繁杂的数学运算,而且具有丰富的绘图功能,可以方便地查看所设计的数字滤波器的幅度响应和相位响应是否满足设计要求。因此,本课题在理论分析各种FIR 数字滤波器设计方法的基础上,运用Matlab 软件进行仿真分析。

1. 基本原理

1.1 FIR 数字滤波器概述

一般来说一个经典的数字滤波器是一个线性时不变系统,其数学模型可以用Z 域系统函数)(z H 来表示:

-10

1()1N r r

r M

k

k k b z H z a z -=-==+∑∑ (1-1) 其中M N b a r k ,,,均为滤波器参数。

在式(1-1)中,当k a 值不全为零值时,Z 域系统函数)(z H 必定含有一个或一个以上的极值点,此时单位脉冲响应为无限长,对于一个稳定的数字滤波器来说,Z 域系统函数)(z H 必须在单位圆内,因而把含有极值点的Z 域系统函数)(z H 的数字滤波器称为无限脉冲响应数字滤波器(Infinite Impulse Response),即IIR 数字滤波器[4]。

而当k a 值全为零时,Z 域的系统函数)(z H 只有一个零点,式(1-1)表示的系统函数)(z H 可以写成:

-1

0()N r r r H z b z -==∑ (1-2)

公式(1-2)表明,FIR 滤波器的系统函数是1-z 的)1(-N 阶多项式,在有限z 平面)0(∞<

公式(1-2)表示的系统,其单位脉冲响应可以表示为:

-1

0()()()N r r h n y n b n r δ===-∑ (1-3)

在式(1-3)中,只有当10-<≤N N ,)(n h 才有非零值,所以数字滤波器的脉冲响应是有限长的,因此在数字信号处理中把这种数字滤波器称为有限脉冲响应数字滤波器(Finite Impulese Response),即FIR 数字滤波器。

FIR 数字滤波器最突出的两个优点是:

(1)只要对)(n h 附加一定的条件,就很容易获得严格的线性相位。

(2)由于)(z H 的极点位于原点0=z 处,所以FIR 数字滤波器不存在稳定性问题。

1.2 FIR 数字滤波器线性相位定义

设FIR 数字滤波器脉冲响应的长度为N ,则其频率响应可以表示为:

1

0()()N j j n n H e h n e ω

ω--==∑ (1-4) 上式通过欧拉恒等式展开可得到)(ωj e H 的相位特性)(ωθ,有两种线性相位特性,通常称为第一类线性相位和第二类线性相位。

第一类线性相位特性:

()=θωτω- τ是一个与ω无关的常数

第二类线性相位特性:

0()=θωθτω- 0θ是起始相位

严格地说第二种情况时的)(ωθ是不具有线性相位特性的,但上述两种情况都满足群延迟是一个常数,仍可以视为具有线性相位的,在第二类线性相位中2/0πθ-=是常用的一种情况[5]。

1.3 FIR 数字滤波器线性相位时域条件

对于第一类线性相位,即τωωθ-=)(,通过一系列的运算整理之后可得到一个三角函数求和公式:

[]1

0()sin ()0N n h n n ωτ-=-=∑ (1-5)

式中正弦函数)1()(n N h n h --=为奇对称,当2/)1(-=N τ时,对称中心为2/)1(-=N n ,)(n h 需要满足关于2/)1(-N 偶对称,即要求: ()(1)h n h N n =--,10-≤≤N n (1-6)

对于第二类线性相位,即()=-/2θωπτω-时,通过运算得到公式:

[]1

0()cos ()0N n h n n ωτ-=-=∑ (1-7)

函数)(cos )(τω-n n h 为偶对称,当2/)1(-=N τ时,对称中心也为2/)1(-=N n 。若要使上式成立,则要使)(n h 关于2/)1(-N 奇对称,即要求: ()(1)h n h N n =---,10-≤≤N n (1-8)

从上述分析看来,线性相位FIR 数字滤波器的时域约束条件是指满足线性相位时对)(n h 的约束条件,对于第一类线性相位,冲激响应)(n h 满足(1-6)式;对于第二类线性相位,冲激响应h(n)满足(1-8)式。

2. 系统设计

FIR 数字滤波器的设计方法主要有窗函数设计法、频率采样设计法以及等波纹逼近设计法三种,其中窗函数设计法是最常用的,其次是频率采样法,但这两种方法在设计中还会存在一些不足之处,所以需要优化的设计方法,而等波纹逼近法很好的弥补了窗函数法和频率采样法的不足[6]。

2.1 FIR 数字滤波器的窗函数设计方法

2.1.1 窗函数法的设计思路

窗函数设计法是FIR 数字滤波器里最简单的一种设计法,又叫傅里叶级数法,为了设计简单方便,通常选择所希望逼近的滤波器的频率响应函数)(ωj d e H 为具有片段常数特性的理想滤波器,寻找一组)(n h ,确定其频率响应1

0()()N j j n n H e h n e ωω--==∑

,然后用()j H e ω来逼近()j d H e ω[1]。窗函数

法设计FIR 滤波器是在时域中进行的,那么可以通过傅里叶反变换得到得到频率响应()j d H e ω,即: 1()()2j jn d d H n H e e d πωωπωπ-=? (2-1)

在实际中,)(ωj d e H 一般是处于逐段恒定的,在边界频率处有不连续点,因而单位脉冲响应)(n h d 是无限长的非因果序列,不能直接作为FIR 数字滤波器的单位脉冲响应,因此需要对)(n h d 进行截断,转换为有限长的一段因果序列,也就是用一个有限长度的窗函数序列)(n ω来截取)(n h d ,即)(*)()(n h n n h d ω=,并将非因果序列转变为一个因果序列。截取的长度和加权窗函数的形状都直接影响到逼近精度。

以截止频率为c ω,相位为零的理想低通滤波器为例,其频率特性为:

1() 0c j d c H e ω

ωωωωπ?≤?=?<≤?? (2-2) 通过傅里叶反变换得到对应的()d h n 为:

sin()()c d n h n n

ωπ= (2-3) 此时的()d h n 是一个无限长的非因果序列,我们需要对其进行截断,变成一个有限长的因果序列。可以先把()d h n 向右平移(1)/2a N =-个点,得到'()d h n 为: 1sin ()2'()()1()2

c d d N n h n h n a N n ωπ-??-????=-=-- (2-4) 相应的传输函数'()j d H e ω为:

'()()()j j j a j a d d d H e h e e H e ωωωωω--== (2-5)

然后对'()d h n 截取从0到1N -的N 个点,N 为窗函数的长度,所得的结果()h n 表示为:

()()*'()d h n n h n ω= (2-6)

()n ω表示窗函数,一般用下标来表示窗函数的类型,矩形窗记为()R n ω。

2.1.2 常见窗函数介绍

常见的窗函数有矩形窗(Rectangle Window )、三角形窗(Bartlerr Window )、汉宁(Hanning )窗——升余弦窗、哈明(Hamming )窗——改进的升余弦窗、布莱克曼(Blackman )窗、凯塞—贝塞尔窗(Kaiser-Basel Window )[7]。

矩形窗的窗函数为:

11 ()20 otherwise

R N n n ω-?≤?=??? (2-7)

其频谱的幅度函数为

sin(/2)()sin(/2)

g R N W ωωω= (2-8) 矩形窗的主瓣宽度为4/n π,用矩形窗设计的FIR 数字滤波器的过渡带宽度近似为1.8/N π。 三角形窗的窗函数为:

21 0n (1)12()212 (1)112B n N N n n N n N N ω?≤≤-??-=??--<≤-?-?

(2-9)

其频谱的幅度函数为

22sin(/4)()sin(/2)g B N W N ωωω??=????

(2-10) 三角窗的主瓣宽度为8/n π。

汉宁窗窗函数为:

20.50.5cos 0()10 H n n N n N otherwise

πω?-≤≤?=-??? (2-11) 汉宁窗的频谱的幅度函数为

22()0.5()0.25()()11H R R R W W W W N N ππωωωω??=+-++??--?

? (2-12) 汉宁窗的主瓣宽度为8/n π,汉宁窗在其两个端点都为零,实际中这两个端点的数据是不可用的。

哈明窗的窗函数为

20.540.46cos 0()10 H n n N n N otherwise

πω?-≤≤?=-??? (2-13) 其幅度函数为

22()0.54()0.23()()11H R R R W W W W N N ππωωωω??=+-++??--??

(2-14) 哈明窗是一种改进的余弦窗,能量更加集中在主瓣,是一种高效的窗函数,主瓣宽度与汉宁窗的相同。

布莱克曼窗窗函数为

241(0.420.5cos 0.8cos ) ()1120 B n n N n n N N otherwise

ππω-?-+≤?=--??? (2-15)

其频谱的幅度函数为

22()0.42()0.25()()1144 0.04()()11B R R R R R W W W W N N W W N N ππωωωωππωω??=+-++??--????+-++??--??

(2-16) 该窗函数位移不同,幅度函数也不同,会使旁瓣进一步抵消,主瓣宽度为12/N π。

凯塞窗是一种最优窗函数,不同于前面五种窗函数,凯塞窗是一种参数可调的窗函数,其函数形式如下:

()() 01()

o K o I n n N I βωα=

≤≤- (2-17) 其中

β= (2-18) 211()1()!2

k o k I k ββ∞=??=+????∑ (2-19) 一般)(0βI 取15-25项可以满足精度要求。α参数可以控制窗的形状。一般α越大,主瓣越宽,而旁瓣幅度会随之减小,典型的α数据在4到9之间。

2.1.3 吉布斯效应

用窗函数对)('n h d 进行直接截断,得到有限长序列)(n h ,并以)(n h 代替)(n h d =,肯定会引

起误差,表现在频域就是通常所说的吉布斯(Gibbs)效应。对于一个在有限区间分布的信号,其连续频谱在频域上分布往往是无限的,而在实际信号处理时,我们通常只能在有限的区间内做傅里叶分析,也就是说,我们只能用有限区间来代替理论分析中的无限区间,多数情况下,我们总是选择信号的低频部分,而舍弃高频部分。而信号的高频部分往往是反应信号快速变化特征,如果信号本身是连续的,这样做一般不会引起信号的显著变化,但实际中的信号往往是比较丰富的,特别是信号本身存在剧烈变化的,这样做必定会引起一些误差。该误差引起过渡带加宽以及通带和阻带内的波动。为了减小吉布斯效应带来的影响,需要调整窗口的长度来控制过渡带的宽度,但要减小带内的波动以及增大阻带衰减,还需要从窗函数的形状上寻找解决方法[8]。

为了减少序列因截断而产生的Gibbs 效应,窗函数在设计时需要注意:

(1)频率特性的主瓣要尽可能的窄,并且尽量把能量都集在主瓣内。

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

虽然窗函数设计法设计思路简单,但是它的边界频率不容易控制,而且窗函数还有吉布斯效应,需要选择不同的窗函数来减小吉布斯效应对结果的影响,但无论哪种窗函数,都无法很好的解决这一问题,所以我们需要通过其他的设计方法来进行滤波,便于满足实际工程中的不同要求。

2.2 FIR 数字滤波器频率采样设计法

窗函数设计法是从时域出发来设计FIR 数字滤波器的,而频率采样法是从频域出发设计FIR 数字滤波器的。和窗函数设计法相同,频率采样法也需要预先构造一个希望逼近的滤波器频率响应函数()j d H e ω,对其加以等间隔采样后,作为FIR 数字滤波器的频率响应。对()j d H e ω在=0ω到2π之间

等间隔采样N 点,得到频率采样值()d H k :

2()()

0,1,2,...,1j d d k N H k H e k N ωπω===- (2-20)

再对()d H k 进行N 点IDFT ,得到()h n : 101()() 0,1,2,...,1N kn d N k h n H

k W n N N --===-∑ (2-21)

将()h n 作为所涉及的FIR 数字滤波器的单位脉冲响应,其系统函数为()H z 为

1

0()=()N n n H z h n z --=∑ (2-22)

由于滤波器频率响应()j d H e ω是理想的,即()j d H e ω有间断点,那么其单位冲激响应)(n h d 是无限长的。这样,由于时域混叠,引起所设计的h(n)和)(n h d 有偏差。

因此,采样点处()(2/)k j k H e k N ωωπ=与()H k 相等,逼近误差为0,而在采样点之间,()

j H e ω由有限项的()2/H k k N φωπ-()之和形成。其误差和()j d H e ω特性的平滑程度有关,特性愈平滑

误差愈小;特性曲线间断点处,误差越大。误差表现形式为间断点用倾斜线取代,且间断点附近形成振荡特性,使阻带衰减减小,往往不能满足实际工程中的技术要求。当然,增大N 值,可以减小逼近误差,但间断点附近误差仍然最大,且N 太大会增加滤波器级数与成本。提高阻带衰减最有效的方法是在频响间断点附近区间内插一个或几个过渡采样点,使不连续点变成缓慢过渡。

过渡带采样点个数与阻带最小衰减s α的关系以及使阻带最小衰减s α最大化的每个过渡带采样值求解都要用优化算法解决。其基本思路是将过渡带采样值设为一个自由量,用一种优化算法改变它们,最终使阻带最小衰减s α最大。

2.3 FIR 数字滤波器等波纹逼近设计法

窗函数设计法和频率采样设计法虽然设计方法简单,但都存在滤波器边缘频率不易精确控制缺点,且这两种设计方法设计出来的滤波器的通带和阻带的波动幅度都是相等的,两种设计方法都不能分别控制通带和阻带的波动幅度,而现实工程中往往对二者都有不同的要求,需要分别进行控制。

等波纹逼近法是一种优化设计方法,它克服了窗函数设计法和频率采样法的缺陷,是最大误差最小化设计方法,并在整个逼近频段上均匀分布。

设()d H ω为希望逼近的幅度特性函数,且要求设计线性相位的FIR 数字滤波器时,()d H ω必须满足线性相位约束条件。用()g H ω表示实际设计的幅度特性函数,定义加权误差函数()E ω为

()()()()d g E W H H ωωωω??=-?? (2-23)

式中,()0W ω>,被称为误差加权函数,是由设计者定义的,用来控制不同频段的逼近精度。经过推导可把()g H ω统一标示为:

()=Q()P()g H ωωω (2-24)

式中,P()ω是系数不同的余弦组合式,记∑

=

n n n a P )cos()()(ωω;Q()ω是不同的常数,在设计FIR 滤波器时存在四种线性相位,当()(1)h n h N n

=--且奇对称时,N 为奇数,Q()ω为1;N 为偶数时,Q()ω为cos(/2)ω;而当()(1)h n h N n =---偶对称时,不管N 为奇数还是偶数,Q()ω都取sin ω。

利用等波纹逼近法设计FIR 滤波器,其误差均匀分布在频带中,可以得优良的滤波特性,它在同样过渡带较窄的情况下,通带最稳定,阻带有最大化的最小衰减。

3 详细设计

3.1 程序设计流程

采用窗函数法设计FIR数字低通滤波器程序设计流程如图3-1所示。

图3-1 窗函数法设计FIR滤波器流程

3.2 Matlab简介

Matlab 是MATrix LABoratory(“矩阵实验室”)的缩写,是由美国MathWorks 公司开发的集数值计算、符号计算和图形可视化三大基本功能于一体的,功能强大、操作简单的语言。Matlab是国际公认的优秀数学应用软件之一。它集中了日常数学处理中的各种功能,包括高校的数值计算、矩阵运算、信号处理和图像生成等功能。在Matlab环境下,用户可以进行程序设计、数值计算、图形绘制、输入输出、文件管理等各项操作。除此之外,Matlab易于扩充。除内部函数外,所有Matlab 的核心文件和工具箱文件都是可读可改的源文件,用户可修改源文件和加入自己的文件,它们可以与库函数一样被调用。

Matlab是一种矩形运算为基础的交互式程序语言,着重针对科学计算、工程计算和绘画的需求,

与其他机器语言相比,其特点是简单和智能化,适应科技专业人员的思维方式和书写习惯,使得编程和调试效率大大提高。

Matlab由一系列工具组成。这些工具方便用户使用Matlab的函数和文件,其中许多工具采用的是图形用户界面。包括Matlab桌面、命令窗口、历史命令窗口、编辑器和调试器、路径搜索和用于用户浏览帮助、工作空间、文件的浏览器。随着Matlab的商业化以及软件本身的不断升级,Matlab的用户界面也越来越精致,更加接近Windows的标准界面,人机交互性更强,操作更简单。Matlab自产生之日起就具有方便的数据可视化功能,将向量和矩阵用图形表现出来,并且可以对图形进行标注和打印。

Matlab具有功能强大的工具箱,工具箱可分为两类:功能性工具箱和学科性工具箱。功能性工具箱主要用来扩充其符号计算功能、图示建模仿真功能、文字处理功能以及与硬件实时交互的功能。而学科性工具箱是专业性比较强的,如优化工具箱、统计工具箱、控制工具箱、小波工具箱、图象处理工具箱、通信工具箱等。

3.3窗函数法的Matlab实现

3.3.1 fir1函数介绍

Matlab信号处理工具箱提供了基于加窗的线性相位FIR滤波器设计函数fir1。

fir1调用格式为:b=fir1(n, Wc,'ftype',window)

函数参数说明如下:

1.n表示滤波器的阶数。

2. Wc为滤波器的归一化截止频率,它是一个大于0小于1的一个数。

3.'ftype'表示所设计滤波器的类型,如果ftype=high,则表示高通滤波器,如果ftype=stop,则表示带阻滤波器,如果此时没有参数,就表示低通滤波器。

4.window表示的是指定的窗函数,如矩形窗为rectwin(n),三角窗为bartlett(n),如果缺省window参数,则fir1默认为是哈明窗hamming(n)。

3.3.2基于fir1函数的窗函数法FIR滤波器设计

下面利用fir1函数的哈明窗法设计数字低通滤波器。利用fir1函数进行设计,这种设计方法只需要给出滤波器的阶数、截止频率、窗函数等参数,Matlab即可自行完成设计,并可通过freqz函数查看滤波器的幅频响应和相频响应。

要求:采样频率为2000Hz,通带截频为0.1π,阻带截频为0.17π,通带衰减小于等于0.1dB,阻带衰减大于等于50dB。

图3-2和图3-3为哈明窗法设计的数字低通滤波器幅频、相频曲线图以及滤波器的增益响应图。

图3-2哈明窗FIR滤波器幅频和相频特性曲线

图3-3哈明窗FIR低通滤波器增益响应曲线

从参考程序及图3-2和图3-3可以得到所设计的滤波器的参数为:滤波器的采样频率为2000Hz,滤波器阶数为266,滤波器的通带截频为0.1π,阻带截频为0.17π,过渡带宽为0.07π,通带衰减为0.019dB,阻带衰减为53dB。

图3-4和图3-5分别为信号滤波前的时域和频域图以及信号滤波后的时域和频域图。

图3-3

图3-4 信号滤波前的时域和频域图

图3-5信号滤波后的时域和频域图

从图3-4和图3-5的图像中可以看到:输入信号是由两个不同频率的正弦信号叠加而成信号频域图中位于滤波器通带内的频率分量保留了下来位于滤波器阻带内的频率分量被滤除,符合设计要求。

5 总 结

本次设计主要分析了FIR 数字滤波器的基本理论,讨论了FIR 数字滤波器的线性相位种类及其约束条件,分析了窗函数设计法、频率采样设计法、等波纹逼近法三种不同的设计方法,并借助Matlab 软件对窗函数法进行了分析与仿真。

窗函数设计法对信号加窗之后会使不连续点处边沿加宽形成过渡带,其宽度(两肩峰之间的宽度)等于窗函数频率响应的主瓣宽度。在N c /2πωω±=处出现肩峰值,两侧形成起伏振荡,振荡的幅度和多少取决于旁瓣的幅度和多少,改变N 只能改变窗谱的主瓣宽度,但不能改变主瓣与旁瓣的相对比例,其相对比例由窗函数形状决定。

窗函数设计法设计FIR 数字滤波器是傅里叶变换的典型运用,而频率采样法设计的指导思想是通过频域采样点实现的,而等波纹逼近法可以使误差均匀分布,对于相同的技术指标,这种逼近法所需要的阶数最少,而对于相同的滤波器阶数,等波纹逼近法的误差可以达到最小。

设计一个FIR 滤波器不管是哪种方法,需要完成大量的计算和图形绘制工作,而且从上面的设计过程中可以看到,设计中只用到两个技术指标,也就是通过截止频率和阻带截止频率,其他指标:带内允许最大衰减,带外允许最小衰减指标,无法体现在设计过程中来,所以,设计结果通常不可能一次计算得到,往往需要反复多次处理,对比才能最终得到符合各项技术指标的设计结果,利用Matlab 软件,可以减少设计中的工作量,从而使FIR 滤波器的设计变得简单快捷。

致 谢

这次课程设计终于顺利完成了,在设计中遇到了很多专业知识问题,最后在老师的辛勤指导下,终于迎刃而解,我们学也到很多实用的知识,学到了很多课内学不到的东西,比如独立思考解决问题,出现差错的随机应变,和与人合作共同提高,都受益非浅。

经过四个星期的努力和完善,这次课程设计终于顺利完成了。 在这里首先感谢我的课程设计指导井敏英老师,在这段时间一直给我的支持与鼓励。认真负责的监督我们课程设计的进度,耐心的指导我们使我们能够按时的完成任务。还有感谢学校为我们提供的良好实验环境以及充足的实验设备,为我们的设计和调试提供了很大的方便。在这段时间学到了很多,虽然由于自身的不足没有能够为系统提出更好的解决方案。但这对我来说绝对是一个非常宝贵的历练。从中我切身体会到了理论和现实的差距,只有真正动手去做才能发现问题。最后,感谢所有对我提供过帮助的人。谢谢。

参考文献

[1] 丁玉美, 高西全.数字信号处理[M].西安:西安电子科技大学出版社, 2008, 6. 34-38.

[2] 余成波,陶红艳,杨菁等.数字信号处理及Matlab 实现[M].北京:第二版.清华大学出版社,2008,1.112-114.

[3] 郑国强,傅江涛,彭勃等.数字信号处理—理论与实践[M].西安:西安电子科技大学出版社,2009,8.78-87

[4] 闫胜利. FIR 滤波器及设计原理[J]. 长春工程学院学报(自然科学版), 2003,23(6):30-33.

[5] 杨永昌,李晨辉,王凯. FIR 数字滤波器的设计方法[J]. 桂林航天工业高等专科院校学报, 2006,23(14):19-20.

[6] 李寿柏, 胡业林. MATLAB 在FIR 滤波器设计中的应用[J]. 机电工程技术, 2007,23(14):19-20

[7] 朱敏. MATLAB 数字信号处理工具箱的开发和应用[J]. 信息与电脑, 2010,6(24):6 723 -6 724.

[8] 张小虹, 黄忠虎, 邱正伦等. 数字信号处理[M].北京:机械工业出版社, 2008, 9.45-55

附录A

f1=100;f2=200;%待滤波正弦信号频率

fs=2000;%采样频率

m=(0.3*f1)/(fs/2);%定义过度带宽

M=round(8/m);%定义窗函数长度

N=M-1;%定义滤波器的阶数

b=fir1(N,0.5*f2/(fs/2));%使用fir1函数设计滤波器

%输入参数分别为滤波器的阶数和截止频率

figure(1)

freqz(b);%输出滤波器的幅频和相频曲线

figure(2)

[h,f]=freqz(b,1,512);%滤波器的幅频特性图

%[H,W]=freqz(B,A,N)当N是一个整数时函数返回N点的频率向量和幅频响应向量plot(f*fs/(2*pi),20*log10(abs(h)))%参数分别是频率和幅值

xlabel('频率/赫兹');ylabel('增益/分贝');title('滤波器的响应增益');

figure(3)

subplot(211)

t=0:1/fs:0.5;%定义时间范围和步长

s=sin(2*pi*f1*t)+sin(2*pi*f2*t);%滤波前信号

plot(t,s);%滤波前的信号图像

xlabel('时间/秒');ylabel('幅度');title('信号滤波前时域图');

subplot(212)

Fs=fft(s,512);%将信号变换到频域

AFs=abs(Fs);%信号频域图的幅值

f=(0:255)*fs/512;%频率采样

plot(f,AFs(1:256));%滤波前的信号频域图

xlabel('频率/赫兹');ylabel('幅度');title('信号滤波前频域图');

figure(4)

sf=filter(b,1,s);%使用filter函数对信号进行滤波

subplot(211)

plot(t,sf);%滤波后的信号图像

xlabel('时间/秒');ylabel('幅度');title('信号滤波后时域图'); axis([0.2 0.5 -2 2]);%限定图像坐标范围

subplot(212)

Fsf=fft(sf,512);

AFsf=abs(Fsf); %滤波后的信号频域图及信号频域图的幅值

f=(0:255)*fs/512;%频率采样

plot(f,AFsf(1:256));%滤波后的信号频域图

xlabel('频率/赫兹');ylabel('幅度');title('信号滤波后频域图');

fir低通滤波器matlab编程滤波前后图形

Matlab实现振动信号低通滤波 附件txt中的数字是一个实测振动信号,采样频率为5000Hz,试设计一个长度为M=32的FIR低通滤波器,截止频率为600Hz,用此滤波器对此信号进行滤波。 要求: (1)计算数字截止频率; (2)给出滤波器系数; (3)绘出原信号波形; (4)绘出滤波后的信号波形; 解答过程: 第一部分:数字截止频率的计算 数字截止频率等于截止频率除以采样频率的一半,即 n=600/5000/2=0.24第二部分:滤波器系数的确定 在matlab中输入如下程序,即可得到滤波器系数: n=32 Wn=0.24 b=fir1(n,Wn) 得到的滤波器系数b为 Columns 1 through 9 -0.0008-0.0018-0.0024-0.00140.00210.00750.01100.0077-0.0054Columns 10 through 18

-0.0242-0.0374-0.02990.00870.07560.15370.21660.24070.2166Columns 19 through 27 0.15370.07560.0087-0.0299-0.0374-0.0242-0.00540.00770.0110Columns 28 through 33 0.00750.0021-0.0014-0.0024-0.0018-0.0008 第三部分:原信号波形 将附件4中的dat文件利用识别软件读取其中的数据,共1024个点,存在TXT文档中,取名bv.txt,并复制到matlab的work文件夹。 在matlab中编写如下程序: x0=load('zhendong.txt');%找到信号数据地址并加载数据。 t=0:1/5000:1023/5000;%将数据的1024个点对应时间加载 figure(1); plot(t,x0); xlabel('t/s'); ylabel('幅值'); 运行之后就得到如下波形,即振动信号的原始波形图: 1.5 1 0.5 幅 值

FIR数字滤波器设计函数

FIR 数字滤波器设计函数 1. fir1 功能:基于窗函数的FIR 数字滤波器设计——标准频率响应。 格式:b=fir1(n,Wn) b=fir1(n,Wn,'ftype') b=fir1(n,Wn,Window) b=fir1(n,Wn,'ftype',Window) 说明:fir1函数以经典方法实现加窗线性相位FIR 滤波器设计,它可设计出标准的低通、带通、高通和带阻滤波器。 b=fir1(n,Wn)可得到n 阶低通FIR 滤波器,滤波器系数包含在b 中,这可表示成: n z n b z b b z b --++???++=)1()2()1()(1 这是一个截止频率为Wn 的Hamming(汉明)加窗线性相位滤波器,0≤Wn ≤1,Wn=1相应于0.5fs 。 当Wn=[W1 W2]时,fir1函数可得到带通滤波器,其通带为W1<ω< W2。 b=fir1(n,Wn,'ftype')可设计高通和带阻滤波器,由ftype 决定: ·当ftype=high 时,设计高通FIR 滤波器; ·当ftype=stop 时,设计带阻FIR 滤波器。 在设计高通和带阻滤波器时,fir1函数总是使用阶为偶数的结构,因此当输入的阶次为奇数时,fir1函数会自动加1。这是因为对奇数阶的滤波器,其在Nyquist 频率处的频率响应为零,因此不适合于构成高通和带阻滤波器。 b=fir1(n,Wn,Window)则利用列矢量Window 中指定的窗函数进行滤波器设计,Window 长度为n+1。如果不指定Window 参数,则fir1函数采用Hamming 窗。 Blackman 布莱克曼窗 Boxcar 矩形窗 Hamming 海明窗 Hann 汉宁窗 Kaiser 凯瑟窗 Triang 三角窗 b=fir1(n,Wn,'ftype',Window)可利用ftype 和Window 参数,设计各种加窗的滤波器。 由fir1函数设计的FIR 滤波器的群延迟为n/2。 例如: n=32;wn=1/4;window=boxcar(n+1) b=fir1(n,wn,window)

matlab滤波器设计

长安大学 数字信号处理综合设 计 专业_______电子信息工程_______ 班级__24030602___________ 姓名_______张舒_______ 学号2403060203 指导教师陈玲 日期_______2008-12-27________

一、课程设计目的: 1. 进一步理解数字信号处理的基本概念、基本理论和基本方法; 2.熟悉在Windows环境下语音信号采集的方法; 3.学会用MATLAB软件对信号进行分析和处理; 4.综合运用数字信号处理理论知识,掌握用MATLAB软件设计FIR和IIR数字滤波器的方法; 5. 提高依据所学知识及查阅的课外资料来分析问题解决问题的能力。 二、课程设计内容: 1.语音信号的采集 利用windows下的录音机录制一段自己的话音,时间控制在1秒左右;并对语音信号进行采样,理解采样频率、采样位数等概念。 2.语音信号的频谱分析 利用函数fft对采样后语音信号进行快速傅里叶变换,得到信号的频谱特性。 3.设计数字滤波器 采用窗函数法和双线性变换法设计下列要求的三种滤波器,根据语音信号的特点给出有关滤波器的性能指标: 1)低通滤波器性能指标,fp=1000Hz,fc=1200Hz, As=100dB,Ap=1dB; 2)高通滤波器性能指标,fc=4800Hz,fp=5000Hz ,As=100dB,Ap=1dB; 3)带通滤波器性能指标,fp1=1200Hz,fp2=3000Hz,fc1=1000Hz,fc2=3200Hz,As=100dB,Ap=1dB。 4.对语音信号进行滤波 比较用两种方法设计的各滤波器的性能,然后用性能好的滤波器分别对采集的语音信号进行滤波;并比较滤波前后语音信号的波形及频谱,分析信号的变化。 5.回放语音信号,感觉滤波前后的声音变化。 三、实验原理 (一)基于双线性Z变换法的IIR数字滤波器设计 由于的频率映射关系是根据推导的,所以使jΩ轴每隔2π/Ts便映射到单位圆上一周,利用冲激响应不变法设计数字滤波器时可能会导致上述的频域混叠现象。为了克服这一问题,需要找到由s平面到z平面的另外的映射关系,这种关系应保证: 1) s平面的整个jΩ轴仅映射为z平面单位圆上的一周; 2) 若G(s)是稳定的,由G(s)映射得到的H(z)也应该是稳定的; 3) 这种映射是可逆的,既能由G(s)得到H(z),也能由H(z)得到G(s); 4) 如果G(j0)=1,那么。 双线性Z变换满足以上4个条件的映射关系,其变换公式为

matlab中关于数字滤波器的函数介绍

MATLAB下的数字信号处理实现示例 一信号、系统和系统响应 1、理想采样信号序列 (1)首先产生信号x(n),0<=n<=50 n=0:50; %定义序列的长度是50 A=444.128; %设置信号有关的参数 a=50*sqrt(2.0)*pi; T=0.001; %采样率 w0=50*sqrt(2.0)*pi; x=A*exp(-a*n*T).*sin(w0*n*T); %pi是MATLAB定义的π,信号乘可采用“.*”close all %清除已经绘制的x(n)图形 subplot(3,1,1);stem(x); %绘制x(n)的图形 title(‘理想采样信号序列’); (2)绘制信号x(n)的幅度谱和相位谱 k=-25:25; W=(pi/12.5)*k; X=x*(exp(-j*pi/12.5)).^(n’*k); magX=abs(X); %绘制x(n)的幅度谱 subplot(3,1,2);stem(magX);title(‘理想采样信号序列的幅度谱’); angX=angle(X); %绘制x(n)的相位谱 subplot(3,1,3);stem(angX) ; title (‘理想采样信号序列的相位谱’)(3)改变参数为:1,0734.2,4.0,10==Ω==TAα n=0:50; %定义序列的长度是50 A=1; %设置信号有关的参数 a=0.4; T=1; %采样率 w0=2.0734; x=A*exp(-a*n*T).*sin(w0*n*T); %pi是MATLAB定义的π,信号乘可采用“.*”close all %清除已经绘制的x(n)图形 subplot(3,1,1);stem(x); %绘制x(n)的图形 title(‘理想采样信号序列’); k=-25:25; W=(pi/12.5)*k; X=x*(exp(-j*pi/12.5)).^(n’*k); magX=abs(X); %绘制x(n)的幅度谱 subplot(3,1,2);stem(magX);title(‘理想采样信号序列的幅度谱’); angX=angle(X); %绘制x(n)的相位谱 subplot(3,1,3);stem(angX) ; title (‘理想采样信号序列的相位谱’) 2、单位脉冲序列 在MatLab中,这一函数可以用zeros函数实现: n=1:50; %定义序列的长度是50 x=zeros(1,50); %注意:MATLAB中数组下标从1开始

基于MATLAB的FIR数字低通滤波器设计.doc

基于MATLAB的FIR数字低通滤波器设计 ..基于MATLAB的FIR数字低通滤波器设计作者: 周龙刚(陕西理工学院物理与电信工程学院通信工程专业2011级4班,陕西汉中723003)指导老师: 井敏英[摘要]FIR数字滤波器是数字信号处理的一个重要组成部分,由于FIR数字滤波器具有严格的线性相位,因此在信息的采集和处理过程中得到了广泛的应用。 本文介绍了FIR数字滤波器的概念和线性相位的条件,分析了窗函数法、频率采样法和等波纹逼近法设计FIR滤波器的思路和流程。在分析三种设计方法原理的基础上,借助Matlab仿真软件工具箱中的fir1实现窗函数法中的哈明窗设计FIR低通滤波器。[关键词] FIR数字滤波器;线性相位窗函数;法哈明窗;MatlabDesigning FIR low-pass digital filter based on VHDL Zhoulonggang(Grade11,Class4,Major of Communication Engineering,School of Physics and Telecommunication Engineering , Shaanxi University of Technology,Hanzhong 723003,Shaanxi)Tutor:JingYingMinAbstract:FIR digital filter is an important part of digital signal processing,the FIR digitalfilter with linear phase, so it has been widely applied in the collection and processing of information in the course of. This paper introduces the concept of FIR digital filter with linear phase conditions, analysis of the window functionmethod and frequency sampling method and the ripple

FIR数字滤波器设计与使用

实验报告 课程名称:数字信号处理指导老师:刘英成绩:_________________实验名称: FIR数字滤波器设计与使用同组学生姓名:__________ 一、实验目的和要求 设计和应用FIR低通滤波器。掌握FIR数字滤波器的窗函数设计法,了解设计参数(窗型、窗长)的影响。 二、实验内容和步骤 编写MATLAB程序,完成以下工作。 2-1 设计两个FIR低通滤波器,截止频率 C =0.5。 (1)用矩形窗,窗长N=41。得出第一个滤波器的单位抽样响应序列h 1(n)。记下h 1 (n) 的各个抽样值,显示h 1 (n)的图形(用stem(.))。求出该滤波器的频率响应(的N 个抽样)H 1(k),显示|H 1 (k)|的图形(用plot(.))。 (2)用汉明窗,窗长N=41。得出第二个滤波器的单位抽样响应序列h 2(n)。记下h 2 (n) 的各个抽样值,显示h 2(n)的图形。求出滤波器的频率响应H 2 (k),显示|H 2 (k)|的 图形。 (3)由图形,比较h 1(n)与h 2 (n)的差异,|H 1 (k)|与|H 2 (k)|的差异。 2-2 产生长度为200点、均值为零的随机信号序列x(n)(用rand(1,200)0.5)。显示x(n)。 求出并显示其幅度谱|X(k)|,观察特征。 2-3 滤波 (1)将x(n)作为输入,经过第一个滤波器后的输出序列记为y 1(n),其幅度谱记为|Y 1 (k)|。 显示|X(k)|与|Y 1 (k)|,讨论滤波前后信号的频谱特征。 (2)将x(n)作为输入,经过第二个滤波器后的输出序列记为y 2(n),其幅度谱记为|Y 2 (k)|。 比较|Y 1(k)|与|Y 2 (k)|的图形,讨论不同的窗函数设计出的滤波器的滤波效果。 2-4 设计第三个FIR低通滤波器,截止频率 C =0.5。用矩形窗,窗长N=127。用它对x(n)进行滤波。显示输出信号y

基于matlab的数字滤波器设计

淮北煤炭师范学院 2009届学士学位论文 基于MA TLAB的数字滤波器设计 学院、专业物理与电子信息学院 电子信息科学与技术 研究方向基于MATLAB的数字滤波器设计 学生姓名耿博 学号200513432024 指导教师姓名邹锋 指导教师职称讲师 2009 年4 月18

基于MATLAB的数字滤波器设计 耿博 (淮北煤炭师范学院物理与电子信息学院235000) 摘要随着信息时代和数字世界的到来,数字信号处理已成为今一门极其重要的学科和技术领域。数字信号处理在通信、语音、图像、自动控制、雷达、军事、航空航天、医疗和家用电器等众多领域得到了广泛的应用。在数字信号处理应用中,数字滤波器十分重要并已获得广泛应用。 数字滤波是数字信号处理的重要内容,数字滤波器可分为IIR和FIR两大类。对于IIR数字滤波器的设计,需要借助模拟原型滤波器,再将模拟滤波器转化为数字滤波器,文中采用的设计方法是脉冲响应不变法、双向性变换法和完全函数设计法;对于FIR数字滤波器的设计,可以根据所给定的频率特性直接设计,文中采用的设计方法是窗函数法。本文根据IIR滤波器和FIR滤波器的特点,在MATLAB坏境下分别用双线性变换法设计IIR和用窗函数设计FIR数字滤波器,并对采集的语音信号进行分析,最后给出了IIR和FIR对语音滤波的效果。 关键词数字滤波器;IIR ;FIR ;MATLAB

The Design of Digital Filter based on MATLAB Geng Bo School of Physics and Electronics Information, Huaibei Coal Industry Teachers? College, 235000 ABSTRACT Along with the information age and the digital world arrival, the digital signal processing has become a now extremely important discipline and the area of technology.The digital signal processing in the correspondence, the multitudinous domains the pronunciation such as the image, the automatic control, the radar, the military, the aerospace, the medical service and the domestic electric appliances and so on have obtained the widespread application.In the digital signal processing application, the digital filter are extremely important and have obtained the widespread application. The digital filter are the digital signal processing important content, the digital filter may divide into IIR and the FIR two main kinds. As for the IIR digital filter design, we need the help of analog prototype filter, and then transform analog filter into digital filter. In the paper we use the design of the pulse response invariable method, the bilinear method and full function design; as for the FIR filter, we can design it directly based on the giving frequency, in the paper it uses the design of the window function.This article according to the IIR filter and the FIR filter characteristic, uses the bilinearity method of transformation under the MATLAB bad boundary to design IIR and to design the FIR numeral filter separately with the window box number, and carries on the analysis to the gathering pronunciation signal, and finally gives IIR and FIR to the pronunciation filter effect. Keywords Digtial Filter;IIR;FIR;MATLAB

数字滤波器的MATLAB设计与DSP上的实现

数字滤波器的MAT LAB设计与 DSP上的实现 数字滤波器的MATLAB 设计与DSP上的实现 公文易文秘资源网佚名2007-11-15 11:56:42我要投稿添加到百度搜藏 摘要:以窗函数法设计线性相位FIR数字滤波器为例,介绍用MATLAB工具软件设计数字滤波器的方法和在定点DSP上的实现。实现时,先在CCS5000仿真开发,然后将程序加载到TMS320VC5409评估板上实时运行,结果实现了目标要求。文中还讨论了定标、误差、循环寻址等在DSP上实现的关键问题。关键词 摘要:以窗函数法设计线性相位 FIR数字滤波器为例,介绍用 MATLAB工具软件设计数字滤波器的方法和在定点DSP上的实现。实现时,先在 CCS5000仿真开发,然后将程序加载到 TMS320VC5 409评估板上实时运行,结果实现了目标要求。文中还讨论了定标、误差、循环寻址等在DSP上实 现的关键问题。 关键词:数字滤波器MATLAB DSP 引言 随着信息时代和数字世界的到来,数字信号处理已成为今一门极其重要的学科和技术领域。数字信号处理在通信、语音、图像、自动控制、雷达、军事、航空航天、医疗和家用电器等众多领域得到了广泛的应

用。在数字信号处理应用中,数字滤波器十分重要并已获得广泛应用。 1数字滤波器的设计 1.1数字滤波器设计的基本步骤 数字滤波器根据其冲激响应函数的时域特性,可分为两种,即无限长冲激响应(IIR )滤波器和有限长冲激响应(FIR )滤波器。IIR滤波器的特征是,具有无限持续时间冲激响应。种滤波器一般需要用递归模型来实现,因而有时也称之为递归滤波器。FIR滤波器的冲激响应只能延续一定时间, 在工程实际中可以采用递归的方式实现,也可以采用非递归的方式实现。数字滤波器的设计方法有多种,如双线性变换法、窗函数设计法、插值逼近法和Chebyshev逼近法等等。随着 MATLAB软件尤 其是MATLAB的信号处理工作箱的不断完善,不仅数字滤波器的计算机辅助设计有了可能,而且还可以使设计达到最优化。 数字滤波器设计的基本步骤如下: (1确定指标 在设计一个滤波器之前,必须首先根据工程实际的需要确定滤波器的技术指标。在很多实际应用中,数字滤波器常常被用来实现选频操作。因此,指标的形式一般在频域中给岀幅度和相位响应。幅度指标主要以两种方式给岀。第一种是绝对指标。它提供对幅度响应函数的要求,一般应用于FI R滤波器的设计。第二种指标是相对指标。它以分贝值的形式给岀要求。在工程实际中,这种指标最受欢迎。对于相位响应指标形式,通常希望系统在通频带中人有线性相位。运用线性相位响应指标进行滤波器设计具有如下优点:①只包含实数算法,不涉及复数运算;②不存在延迟失真,只有固定数量的延迟;③长度为N的滤波器(阶数为N-1),计算量为N/2数量级。因此,本文中滤波器的设计就以线性相位FIR滤波器的设计为例。 (2)逼近

数字滤波器matlab的程序

数字滤波器matlab的源代码 function lvbo(Ua,Ub,choise) %参考指令:lvbo(2*pi,10*pi,1/0/-1) U1=min(Ua,Ub); U2=max(Ua,Ub); Us=16*U2; T=2*pi/Us; T_sum=4*max(2*pi/Ua,2*pi/Ub); sum=T_sum/T; t=T:T:T_sum; x=sin(U1*t)+0.8*sin(U2*t); X=DFT(x); figure(1); subplot(221) U=Us/sum:Us/sum:Us; stem(U,abs(X));grid on axis([Us/sum,Us/2,0,1.2*max(abs(X))]) title('原模拟信号采样频谱图') Ucd=U1+(U2-U1)*1/5;Usd=U2-(U2-U1)*1/5; switch choise case 1 Hz_ejw=IIR_DF_BW(Ucd,1,Usd,30,T,sum); case -1 Hz_ejw=IIR_DF_CF(Ucd,1,Usd,30,T,sum); case 0 Hz_ejw=FIR_DF_HM(U1,U2,T,sum); otherwise Hz_ejw=IIR_DF_BW(Ucd,1,Usd,30,T,sum); end Y=X.*Hz_ejw; y=1/sum*conj(DFT(conj(Y))); figure(1); subplot(224) plot(t,real(y)); title('模拟信号滤波后');grid on axis([0,T_sum,-max(real(y))*1.5,max(real(y))*1.5]) subplot(222); plot(t,x); hold on

FIR数字滤波器设计与软件实现(精)讲解学习

实验二:FIR 数字滤波器设计与软件实现 一、实验指导 1.实验目的 (1掌握用窗函数法设计 FIR 数字滤波器的原理和方法。 (2掌握用等波纹最佳逼近法设计 FIR 数字滤波器的原理和方法。 (3掌握 FIR 滤波器的快速卷积实现原理。 (4学会调用 MA TLAB 函数设计与实现 FIR 滤波器。 2. 实验内容及步骤 (1认真复习第七章中用窗函数法和等波纹最佳逼近法设计 FIR 数字滤波器的原理; (2调用信号产生函数 xtg 产生具有加性噪声的信号 xt ,并自动显示 xt 及其频谱,如图 1所示;

图 1 具有加性噪声的信号 x(t及其频谱如图 (3请设计低通滤波器,从高频噪声中提取 xt 中的单频调幅信号,要求信号幅频失真小于 0.1dB ,将噪声频谱衰减 60dB 。先观察 xt 的频谱,确定滤波器指标参数。 (4根据滤波器指标选择合适的窗函数,计算窗函数的长度 N ,调用 MATLAB 函数 fir1设计一个 FIR 低通滤波器。并编写程序,调用 MATLAB 快速卷积函数 fftfilt 实现对 xt 的滤波。绘图显示滤波器的频响特性曲线、滤波器输出信号的幅频特性图和时域波形图。 (5 重复 (3 , 滤波器指标不变, 但改用等波纹最佳逼近法, 调用MA TLAB 函数 remezord 和 remez 设计 FIR 数字滤波器。并比较两种设计方法设计的滤波器阶数。 提示:○ 1MA TLAB 函数 fir1的功能及其调用格式请查阅教材; ○ 2采样频率 Fs=1000Hz,采样周期 T=1/Fs;

○ 3根据图 1(b和实验要求,可选择滤波器指标参数:通带截止频率 fp=120Hz,阻带截 至频率 fs=150Hz, 换算成数字频率, 通带截止频率 p 20.24 p f ωπ =T=π, 通带最大衰为 0.1dB , 阻带截至频率 s 20.3 s f ωπ =T=π,阻带最小衰为 60dB 。 3、实验程序框图如图 2所示,供读者参考。 图 2 实验程序框图 4.信号产生函数 xtg 程序清单(见教材 二、滤波器参数及实验程序清单 1、滤波器参数选取 根据实验指导的提示③选择滤波器指标参数: 通带截止频率 fp=120Hz,阻带截至频率 fs=150Hz。代入采样频率 Fs=1000Hz,换算成 数字频率,通带截止频率 p 20.24 p f

实验11 用MATLAB设计FIR数字滤波器

实验11 用MATLAB 设计FIR 数字滤波器 一、实验目的: 1、加深对窗函数法设计FIR 数字滤波器的基本原理的理解。 2、学习用MA TLAB 语言的窗函数法编写设计FIR 数字滤波器的程序。 3、了解MATLAB 语言有关窗函数法设计FIR 数字滤波器的常用函数用法。 二、实验内容及步骤 2、选择合适的窗函数设计FIR 数字低通滤波器,要求: w p =0.2π,R p =0.05dB ; w s =0.3π,A s =40dB 。描绘该滤波器的脉冲响应、窗函数及滤波器的幅频响应曲线和相频响应曲线。 分析:根据设计指标要求,并查表11-1,选择汉宁窗。程序清单如下: function hd=ideal_lp(wc,N) wp=0.2*pi;ws=0.3*pi;deltaw=ws-wp; tao=(N-1)/2; n=[0:(N-1)]; m=n-tao+eps; hd=sin(wc*m)./(pi*m); function[db,mag,pha,grd,w]=freqz_m(b,a); [H,w]=freqz(b,a,1000,'whole'); H=(H(1:501))';w=(w(1:501))'; mag=abs(H); db=20*log10((mag+eps)/max(mag)); pha=angle(H); grd=grpdelay(b,a,w); wp=0.2*pi;ws=0.3*pi;deltaw=ws-wp; wc=(ws+wp)/2; 课程名称:数字信号处理 实验成绩: 指导教师: 实 验 报 告 院系: 信息工程学院 班级: 电信二班 学号: 姓名: 日期:

matlab的fir高通数字滤波器的设计和分析

摘要 无限长脉冲数字滤波器的设计方法只考虑了幅度特性,没有考虑相位特性,所设的滤波器一般是某种确定的非线性相位特性。有限脉冲响应(FIR)滤波器在保证了幅度特性满足技术要求的同时,很容易做到有严格的线性相位特性。 本课题利用MATLAB软件实现。MATLAB是“矩阵实验室”(MATrix LABoratoy)的缩写,是一种科学计算软件,它使用方便,输入简捷,运算高效,内容丰富,因此利用MATLAB软件,通过一系列较为系统的函数法,根据已知的技术指标,就可以设计出满足要求的滤波器。 关键字:MATLAB;窗函数;FIR带阻数字滤波器;线性相位

目录 1.FIR滤波器简介 (3) 1.1 FIR的特点 (3) 2.2线性相位 (3) 2.主要设计内容 (5) 3.窗函数 (6) 3.1常用窗函数 (6) 3.2窗函数的指标 (9) 4应用窗函数法设计 FIR 数字滤波器的步骤 (10) 4.1数字高通滤波器的设计: (10) 总结 (11) 参考文献 (12) 附录 (13)

1.FIR 滤波器简介 数字滤波器是一种用来过滤时间离散信号的数字系统,通过对抽样数据进行数 学处理来达到频域滤波的目的。根据其单位冲激响应函数的时域特性可分为两类:无限冲激响应(IIR )滤波器和有限冲激响应(FIR )滤波器。 1.1 FIR 的特点 FIR 滤波器的主要优点为:系统总是稳定的,FIR 滤波器的系统函数可以表示为 (2-1) 易知,H (z ) 在 Z 平面上有 N -1个零点,z =0 是 N -1 阶极点,因此FIR 系统总是稳定的(极点都在单位圆内)。FIR 滤波器的优点之二:容易实现线性相位。当 FIR 系统的单位冲激响应满足 时,该系统具有线性 相位。 (N 为奇数) (2-2) (N 为偶数) (2-3) FIR 滤波器的优点之三:允许设置多通带(或多阻带)滤波器。FIR 滤波器的优点之四:FIR 滤波器可以采用 FFT 方法实现其功能,从而大大提高效率。FIR 滤波器的缺点:由于 FIR 系统只有零点,因此这类系统不像FIR 滤波器不像 IIR 滤波器那样容易取得比较好的通带与阻带衰减特性。要取得较好的衰减特性,一般要求 H (z ) 的阶次较高。综合起来看, FIR 滤波器具有IIR 滤波器没有的许多特点,得到了越来越广泛的应用。 FIR 滤波器的设计方法主要有三种:a.窗函数设计法;b.频率抽样发;c.最小平法抽样法;这里我主要讨论在MATLAB 环境下通过调用信号分析与处理工具箱的几类窗函数来设计滤波器并分析与比较其性能 2.2线性相位 一个单一频率的正弦信号通过一个系统,假设它通过这个系统的时间需要t ,则这个信号的输出相位落后原来信号wt 的相位。从这边可以看出,一个正弦信号通过一个系统落后的相位等于它的w *t ;反过来说,如果一个频率为w 的正弦信号通过系统后,它的相位落后delta ,则该信号被延迟了delta /w 的时间。在实 11 1) 1(10)()()()(--=-----=-===∑∑N N n n N N N n n z z f z n h z z n h z H )1()(n N h n h --±=2/)1()(--=N ωω?2/)1(2/)(--=N ωπω?

FIR数字滤波器设计及MATLAB使用要点

数字信号处理课程设计 《数字信号处理》 课程设计报告 FIR数字滤波器设计及MATLAB实现 专业:通信工程 班级:通信1101班 组次:第9组 姓名及学号: 姓名及学号:

目录 一、设计目的 (3) 二、设计任务 (3) 三、设计原理 (3) 3.1窗函数法 (3) 3.2频率采样法 (4) 3.3最优化设计 (5) 3.3.1等波纹切比雪夫逼近准则 (5) 3.3.2仿真函数 (6) 四、设计过程 (7) 五、收获与体会 (13) 参考文献 (13)

FIR数字滤波器设计及MATLAB实现 一、设计目的 FIR滤波器:有限长单位冲激响应滤波器,是数字信号处理系统中最基 本的元件,它可以在保证任意幅频特性的同时具有严格的线性相频特性, 同时其单位抽样响应是有限长的,因而滤波器是稳定的系统。因此,FIR 滤波器在通信、图像处理、模式识别等领域都有着广泛的应用。滤波器设 计是根据给定滤波器的频率特性,求得满足该特性的传输函数。 二、设计任务 FIR滤波器设计的任务是选择有限长度的() H e满足一定 h n,使传输函数()jw 的幅度特性和线性相位要求。由于FIR滤波器很容易实现严格的线性相位,所以FIR 数字滤波器设计的核心思想是求出有限的脉冲响应来逼近给定的频率响应。 设计过程一般包括以下三个基本问题: (1)根据实际要求确定数字滤波器性能指标; (2)用一个因果稳定的系统函数去逼近这个理想性能指标; (3)用一个有限精度的运算去实现这个传输函数。 三、设计原理 FIR滤波器设计的任务是选择有限长度的() H e满足一定 h n,使传输函数()jw 的幅度特性和线性相位要求。由于FIR滤波器很容易实现严格的线性相位,所以FIR数字滤波器设计的核心思想是求出有限的脉冲响应来逼近给定的频率响应。 设计过程一般包括以下三个基本问题: (1)根据实际要求确定数字滤波器性能指标; (2)用一个因果稳定的系统函数去逼近这个理想性能指标; (3)用一个有限精度的运算去实现这个传输函数。 3.1窗函数法 设计FIR数字滤波器的最简单的方法是窗函数法,通常也称之为傅立叶级数法。FIR数字滤波器的设计首先给出要求的理想滤波器的频率响应()jw H e,设计 d

matlab数字滤波器设计程序

%要求设计一butterworth低通数字滤波器,wp=30hz,ws=40hz,rp=0.5,rs=40,fs=100hz。>>wp=30;ws=40;rp=0.5;rs=40;fs=100; >>wp=30*2*pi;ws=40*2*pi; >> [n,wn]=buttord(wp,ws,rp,rs,'s'); >> [z,p,k]=buttap(n); >> [num,den]=zp2tf(z,p,k); >> [num1,den1]=impinvar(num,den); Warning: The output is not correct/robust. Coeffs of B(s)/A(s) are real, but B(z)/A(z) has complex coeffs. Probable cause is rooting of high-order repeated poles in A(s). > In impinvar at 124 >> [num2,den2]=bilinear(num,den,100); >> [h,w]=freqz(num1,den1); >> [h1,w1]=freqz(num2,den2); >>subplot(1,2,1); >>plot(w*fs/(2*pi),abs(h)); >>subplot(1,2,2); >>plot(w1*fs/(2*pi),abs(h1)); >>figure(1); >>subplot(1,2,1); >>zplane(num1,den1); >>subplot(1,2,2); >>zplane(num2,den2);

FIR数字滤波器设计与实现

FIR 数字滤波器设计与实现 一.摘要:数字滤波器是一种具有频率选择性的离散线性系统,在信号数字处理中有着广泛的应 用。其中FIR 滤波器是一种常用的滤波器,它在保证幅度特性满足技术要求的同时,很容易做到严格的线性相位特性,在语音分析、图像处理、雷达监测等对信号相位要求高的领域有着广泛的应用,能实现IIR 滤波器不能实现的许多功能。 二.关键词:FIR 窗函数系统函数MATLAB 三.内容提要: 数字滤波器的功能就是把输入序列通过一定的运算变换成输出序列,因此数字滤波器的结构系 统中就必须包括一定数量和性能的运算器件和运算单元,而运算器件和运算单元的配置必须由数字滤波器的结构特点和性能特点来决定,因此在进行FIR 数字滤波器的设计之前,有必要介绍和总结FIR 数字滤波器的基本结构和相关特性(包括频响曲线(幅度和相位),单位冲激响应等),在介绍完其基本结构和相关特性后,就进行FIR 数字滤波器的设计和实现。 (一)FIR 滤波器的基本结构 在讨论任何一种滤波器时,都要着重分析其系统函数,FIR 滤波器的系统函数为: n N n z n h z H ∑-==1 0)()(。从该系统函数可看出,FIR 滤波器有以下特点: 1)系统的单位冲激响应h(n)在有限个n 值处不为零; 2)系统函数H(z)在|z|>0处收敛,极点全部在z=0处(稳定系统); 3)结构上主要是非递归结构,没有输出到输入的反馈,但有些结构中(例如频率抽样结构)也包 含有反馈的递归部分。 1.FIR 滤波器实现的基本结构有: 1) 横截型(卷积型、直接型) a.一般FIR 滤波器的横截型(直接型、卷积型)结构: 若给定差分方程为: 。则可以直接由差分方程得出FIR 滤波器结构如 下图所示: 这就是FIR 滤波器的横截型结构,又称直接型或卷积型结构。 b .线性相位FIR 滤波器的横截型结构

高级数字滤波器设计及Matlab实现

高级数字滤波器设计及Matlab 实现 利用Parks-McClellan 算法设计线性相位FIR 滤波器 一、 算法原理 长度为2n+1的线性相位数字滤波器的传输函数为:20 ()n k k k G z h Z -== ∑。当 Z=exp(j T ω)=exp(2j F π)时,可得到频率响应: ()exp(2)cos 2n k k G F j nF d k F ππ==-∑ exp(2)()j F H F π=- 其中2n k k d h -=,k=0,……,n-1,0n d h = max ()()()W F D F H F - 对于一个理想的低通滤波器上式中的H(F)可以表示为: 误差加权函数: 允许设计者自己给定通带和阻带内的误差范围。令p s B B A = ,设计长度为2n+1的线性相位低通滤波器只要找到k d 并使得m a x ()()()W F D F H F -最小。 设空间A 是[0,1/2]的封闭子空间,为了使0 ()cos 2n k k H F d kF π== ∑是D(F) 在A 上唯一的最佳逼近,加权误差方程()()[()()]E F W F D F H F =-在A 上至少要有n+2个交错点。因此1()()i i E F E F E -=-=±,011,n i F F F F A +<∈ ,

max ()E E F =。算法的流程如图1所示。 对于给定的n+2个频率点,需要计算n+2个方程: ()(()())(1)k k k k W F H F D F ρ-=-- 写成矩阵的形式就是: 图 1.

0000001 1 1 1 1011 1 1 1 11 1cos 2cos 4cos 2()()11cos 2cos 4cos 2()()()(1)1cos 2cos 4cos 2()n n n n n n n F F nF W F d D F d F F nF D F W F d D F F F nF W F ππππππρπππ++++++?? ???? ?? ?? ??-????????????=??????????????????-?? ????? ? 通过该方程组可得: 其中: 利用拉格朗日插值公式可得: 这里 利用求得的H(F)求出误差函数E(F)。如果对所有的频率都有()E F ρ≤,说明ρ是纹波极值,交错频率点121,n F F F + 是交错频率点。若存在某些频率使得()E F ρ>,说明初始交错点组中的某些点需要交换。 对于上次确定的121,n F F F + 中每一点,都检查其附近是否存在某一频率 ()E F ρ>,如果有再在该点附近找出局部极值点,并用该,点代替原来的

基于matlab的FIR低通高通带通带阻滤波器设计

基于matlab的FIR低通-高通-带通-带阻滤波器设计

————————————————————————————————作者:————————————————————————————————日期:

北京师范大学 课程设计报告 课程名称: DSP 设计名称:FIR 低通、高通带通和带阻数字滤波器的设计姓名: 学号: 班级: 指导教师: 起止日期: 课程设计任务书

学生班级: 学生姓名: 学号: 设计名称: FIR 低通、高通带通和带阻数字滤波器的设计 起止日期: 指导教师: 设计目标: 1、采用Kaiser 窗设计一个低通FIR 滤波器 要求: 采样频率为8kHz ; 通带:0Hz~1kHz ,带内波动小于5%; 阻带:1.5kHz ,带内最小衰减:Rs=40dB 。 2、采用hamming 窗设计一个高通FIR 滤波器 要求: 通带截至频率wp=rad π6.0, 阻带截止频率ws=rad π4.0, 通带最大衰减dB p 25.0=α,阻带最小衰减dB s 50=α 3、采用hamming 设计一个带通滤波器 低端阻带截止频率 wls = 0.2*pi ; 低端通带截止频率 wlp = 0.35*pi ; 高端通带截止频率 whp = 0.65*pi ; 高端阻带截止频率 whs = 0.8*pi ; 4、采用Hamming 窗设计一个带阻FIR 滤波器 要求: 通带:0.35pi~0.65pi ,带内最小衰减Rs=50dB ; 阻带:0~0.2pi 和0.8pi~pi ,带内最大衰减:Rp=1dB 。

FIR 低通、高通带通和带阻数字滤波器的设计 一、 设计目的和意义 1、熟练掌握使用窗函数的设计滤波器的方法,学会设计低通、带通、带阻滤波器。 2、通过对滤波器的设计,了解几种窗函数的性能,学会针对不同的指标选择不同的窗函数。 二、 设计原理 一般,设计线性相位FIR 数字滤波器采用窗函数法或频率抽样法,本设计采用窗函数法,分别采用海明窗和凯泽窗设计带通、带阻和低通。 如果所希望的滤波器的理想频率响应函数为)(jw d e H ,如理想的低通,由信号系统的知识知道,在时域系统的冲击响应h d (n)将是无限长的,如图2、图3所示。 H d (w) -w c w c 图2 图3 若时域响应是无限长的,则不可能实现,因此需要对其截断,即设计一个FIR 滤波器频率响应∑-=-=1 0)()(N n jwn jw e n h e H 来逼近)(jw d e H ,即用一个窗函数w(n)来 截断h d (n),如式3所示: )()()(n w n h n h d = (式1)。 最简单的截断方法是矩形窗,实际操作中,直接取h d (n)的主要数据即可。 )(n h 作为实际设计的FIR 数字滤波器的单位脉冲响应序列,其频率响应函数为: ∑-=-=1 0)()(N n jwn jw e n h e H (式2) 令jw e z =,则 ∑-=-=1 0)()(N n n z n h z H (式3), 式中,N 为所选窗函数)(n w 的长度。

相关主题