2
2
2
Ξ
第 28 卷第 3 期
2007 年 5 月
喀什师范学院学报
Journal of Kashgar Teachers College
Vol. 28 No. 3
May 2007
基于 MATLAB 的 FIR 数字低通滤波器
分析和设计
雷学堂 ,方志雄
(黄冈师范学院 物理科学与技术系 ,湖北 黄冈 438000)
摘 要 :以 FIR 数字低通滤波器为例 ,详细分析时域卷积运算和频域加权算法的物理意义. 并利用 MA TLAB 的
声音处理函数作为数据接口 ,利用多媒体播放器作为交互界面 ,利用 MA TLAB 的 FDA Tool 作为滤波器设计工
具 ,设计一组语音低通滤波器 ,通过对比滤波前后的语音效果 ,可加深对数字信号处理的认识.
关键词 :数字信号处理 ;数字滤波 ;低通滤波 ;MA TLAB
中图分类号 : TN911. 72 文献标识码 :A 文章编号 :1006
432X(2007) 03
0037
03
数字信号处理是将信号和系统抽象成离散的数学模
型 ,并从数学分析的角度分别讨论信号 、系统 、信号经过系
统 、系统设计等问题[1 ] . 其物理意义都隐含在数学运算之
中 ,如何深刻理解其数学运算的物理意义是学好这门课程
的关键 ,也是入门的必经之路.
1 低通滤波的物理过程分析
滤波就是有选择性地提取或去掉 (或削弱) 某一段或某
几段频率范围内的信号. 数字滤波器是一种用来过滤时间
离散信号的数字系统 , 它是通过对抽样数据进行数学处理
来达到选频目的.
1. 1 低通滤波的时域分析
在时域 ,信号经过系统的响应 y ( n) 体现为激励 x ( n)
跟系统单位抽样响应 h ( n) 的卷积和
h ( n) =
1/ N ,0 ≤ n ≤ N - 1 ;
0 , n 为其它值.
( N = 10)
x ( n) = x 1 ( n) - x 2 ( n) = 0. 8sin (2π·n·100·Δt ) - 0. 2sin
(2π·n·1000·Δt) ,其中 :Δt = 0. 0001s(即 f s = 10 kHz) , n 为
整数 , x ( n) 由 100 Hz 的 x1 ( n) 和 1 kHz 的 x 2 ( n) 两种频率
的信号组成 ,低通滤波的目的就是要尽可能地去掉 x ( n) 中
的高频分量 x 2 ( n) ,同时尽可能地保留 x ( n) 中的低频分量
x 1 ( n) . x ( n) 跟 h ( n) 卷积结果如图 1. 从图 1 可看出 ,响应
y ( n) 中只剩下 100 Hz 的信号 ,相位右移了 ( N - 1) / 2 = 4. 5
个抽样点的距离.
N - 1
m = 0
h ( n)
h ( m) x ( n - m) [1 ,2 ] .
y ( n) = x ( n)
= ∑
对于长度为 N 的 FIR 系统 , h ( n) 可以看成一个宽度
为 N 点的固定窗口 ,而 x ( n) 则看成一个队列以齐步走的
方式穿过 h ( n) 窗口 , x ( n) 每走一步 , 位于窗口中的 x ( n)
部分的点跟 h ( n) 的对应点的值相乘再求和 (即加权平均) ,
所得结果构成此时系统的响应值 y ( n) ,即 y ( n) 是 h ( n) 对
位于其窗口中的 x ( n) 的加权求和. 低通滤波要求窗口具有
波形平滑作用 , 即利用窗口加权和使得变化缓慢的 (即低
频) 正弦分量保留 (理想低通) 或衰减幅度小 (实际低通) ,而
变化快 (即高频) 的正弦分量正负抵消 (理想低通) 或衰减幅
度大 (实际低通) .
为便于计算 ,设
图 1 时域低通滤波波形
窗口 h ( n) 对 x ( n) 的加权平均可以看成 h ( n) 对组成
x ( n) 的各个正弦分量 ( x 1 ( n) , x2 ( n) ) 分别加权平均再叠
加 ,由于抽样频率 f s = 10 kHz , h ( n) 对 x1 ( n) 的加权平均
为 x 1 ( n) 中连续 10 个点的平均值 (衰减不大) ,其幅度衰减
为以 x 1 ( n) 中最大值为中心的连续 10 个点的平均值 ;对于
频率为 1 kHz 的 x2 ( n) ,位于窗口中的 10 个点刚好为一个
周期 ,故其平均值为 0. 推广到一般 , 若位于窗口中信号样
值的点数为该信号一个周期样值点数的整数 ( m ) 倍 , 则该
02
28
收稿日期 :2006
基金项目 :黄冈师范学院教学科研基金项目资助.
作者简介 :雷学堂 (1968
) ,男 ,湖北罗田 ,硕士 ,讲师 ,主要从事信号处理和数据通信的教学及研究.
© 1994-2009 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net
·83·
喀什师范学院学报
第 28 卷
信号将被完全滤除 ,如 2 kHz、3 kHz 的信号 ;若位于窗口中
信号样值的点数为该信号一个周期样值点数的半整数 ( m
+ 0. 5) 倍 ,则该信号残留最大 ,最大残留为 : (半个周期的样
值之和) / N . 如 1. 5 kHz 信号残留大约为 2/ (3π) = 21. 2 % ,
而 2. 5 kHz 信号残留大约为 2/ ( 5π) = 12. 7 %. 也就是说 ,
当 N = 10 固定时 , 对频率低于 1 kHz 信号的滤波作用较
弱 ,频率越低衰减越小 ,对频率高于 1 kHz 的信号有较明显
的衰减作用 ,这种衰减对频率的选择性反映了滤波器的截
止频率或过零点带宽.
反过来 ,若 h ( n) 窗口的宽度 N 不同则对 x ( n) 的滤波
效果也不同 , 当 N = 1 时 , 无滤波作用 (对两种频率的信号
都没有衰减) ;当 N ≥2 时 , 开始对两种频率的信号都有衰
减 ,但对 1 kHz 信号的衰减比对 100 Hz 信号的衰减要快得
多 ;当 N = 10 时 1 kHz 完全滤除 (幅度降为 0) ,100 Hz 的幅
度为原来的 97. 9 %. 当 N > 10 时开始对 1kHz 的滤波效果
相对于 N = 10 时变差 , N = 15 时最差 , 1 kHz 的信号有 (半
个周期的样值之和) / 15 = 20. 5 %的残留 , 100Hz 为原来的
96. 2 % ; N = 20 时 1kHz 完全滤除 , 100 Hz 为原来的 93.
1 % ; N = 25 时 1kHz 有 (半个周期的样值之和) / 25 = 12.
3 %的残留 , 100 Hz 为原来的 89. 7 % , 即 N = 5 ×2 m 时
1 kHz 完全滤除 , N = 5 ×(2 m + 1) 时 1 kHz 残留为 : (半个
周期的样值之和) / 5 (2 m + 1) . 这种高频信号的残留反映
了滤波器的阻带衰减. 由此看出 N 越大对高频 (1 kHz) 的
滤波效果越好 ,但随着 N 的增大对低频 (100 Hz) 的滤波作
用也在增强 , 当 N = 100 时 , 100 Hz 和 1 kHz 都完全滤除 ,
这种对低频信号的滤波作用反映了滤波器的通带衰减.
1. 2 低通滤波的频域分析
)
( He
X ( e
jω
)
) +φ
jω
在频域 ,系统响应 y ( n) 的频谱 Y ( ejω) 体现为激励 x
( n) 的频谱 X ( ejω) 与系统单位抽样响应 h ( n) 的频谱 H
( ejω) ( 即 系 统 的 频 谱 ) 的 乘 积 , Y ( ejω) = | H ( ejω)
| ·|
, 即 Y ( ejω) 的幅值由 H ( ejω) 的
X ( ejω) | ·( ej (φ
幅值对 X ( ejω) 的幅值相乘 (加权) 得到 , Y ( ejω) 的幅角由 H
( ejω) 的幅角跟 X ( ejω) 的幅角相加 (移相) 得到[1 ] . 对同一 X
( ejω) 若 H ( ejω) 不同则实现的处理效果也就不同 ,这就是系
统的特性取决于系统频谱 H ( ejω) 的原因. 低通滤波就是要
求系统的幅度函数| H ( jf ) | 对需要保留的低频信号频谱加
权权重较大 (理想时为 1) , 而对需要滤除的高频信号频谱
加权权重较小 (理想时为 0) .
为便于对比 ,还以上面的例子进行说明. 由
2π
L nk [1 ]
H ( ej2πf ) = H ( ejω) = ∑
h ( n) e- j
L - 1
n = 0
可求得 :
| H ( ejω) =
e- jπN - 1
L k
1
N
1 ,当 k = 0 ;
L
N
0 ,当 k =
1
=
N sin
sin
N sin
π
k
L
π
N k
L
π
k
L
π
π
N k
L
k
L
sin
sin
m ;
,当 k =
L
2 N
(4 m + 1) ;
,当 k 为其它整数.
其中 : L 为 x ( n) 的长度 ( L = 100) , 0 ≤k ≤L - 1 , N 为 h
( n) 的有值长度 ; m , k 均为整数 ,与数字频率 k 对应的模拟
频率为 f = f s·k/ L ( Hz) . h ( n) 在不同 N 值时的频谱如图 2
中各虚线部分所示 (横轴单位为 kHz) ,当 N = 10 时 ,在 f =
m ( kHz) 即 f = 1 kHz、2 kHz、3 kHz 等处为 0 ,而在 f = (2 m
±0. 5)
( kHz) 即 f = 1. 5kHz、2. 5kHz、3. 5kHz 等处残留最
大 ,如图 2 ( b) ;当 N = 15 时 , 在 f = 2 m/ 3 ( kHz) 处为 0 , 而
在 f = (4 m ±1) / 3 kHz 处残留最大 ,此时 f = 1 kHz 处的残
留大约为 0. 2 (即 20 %) ,如图 2 ( c) ;当 N = 20 时 ,在 f = 0.
5 m ( kHz) 处为 0 ,而在 f = ( m ±0. 25) kHz 处残留最大 ,如
图 2 ( d) ;当 N = 25 时 ,在 f = 0. 4 m ( kHz) 处为 0 ,而在 f =
(4 m ±1) / 5 ( kHz) 处残留最大 , 如图 2 ( e) ; 从图 2 ( f ) 可以
看出| H ( jf ) | 在 100Hz 处为 0.
图 2 滤波前后的频谱
h ( n) 对 x ( n) 的滤波在频域上表现为图 2 中各实线部
分所示 ,图 2 ( a) 为 x ( n) 的频谱| X ( jf ) |
,从图中可以看出
x ( n) 中含有 100 Hz 和 1 kHz 两种频率的信号 ,图 2 ( b) ~
( f ) 为不同长度的 h ( n) 对同一 x ( n) 的滤波情况. 从图中
可以看出 ,当 N = 10 、20 、100 时 1 kHz 信号完全滤去 ; N =
100 时 ,100 Hz 的信号也完全滤去 ;当 N = 15 、25 时 , 1 kHz
信号残留最大. 这跟在时域中分析的结论是一致的.
图 3 h ( n) 和 h1 ( n) 及其频谱
在实际应用中 ,滤波器的单位抽样响应 h ( n) 是通过滤
波器的 一 些 设 计 方 法 设 计 出 来 的 , 例 如 以 MA TLAB 的
FDA Tool 设计的一个 8 阶 FIR 低通滤波器 h1 ( n) 基本上可
以达到上述要求[5 ] , 其 h1 ( n) = [0. 1727 , 0. 0813 , 0. 0933 ,
0. 1010 ,0. 1036 ,0. 1010 ,0. 0933 ,0. 0813 ,0. 1727 . 图 3 显
示的是 h ( n) 和 h1 ( n) 及其频谱 , 两者的频谱在频率低于
1 k Hz 的低频段 (通带) 上基本是重合的 ,在 1 kHz 以上的高
频段 (阻带) 上不同 , h ( n) 的频谱随频率的增大其衰减逐渐
增大 ,而 h1 ( n) 的衰减基本不变 ,这正是 h1 ( n) 能够降低一
阶的原因所在 ,因为它牺牲了阻带中随频率增大的衰减增
量. 由此可以看出 ,可通过阻带衰减来换取阶数 , 滤波器的
设计主要就是基于这二者之间的权衡.
© 1994-2009 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net
第 3 期
雷学堂 ,方志雄 :基于 MA TLAB 的 FIR 数字低通滤波器分析和设计
·93·
2 语音低通滤波器的设计
理想滤波器的 h ( n) 是无限长的 ,只可逼近不可实现 ,
实际的 FIR 低通滤波器可通过窗函数法 、频率抽样法和最
优化设计法来设计[1 ] . 下面利用 MA TLAB 的 FDA Tool 采
用窗函数法来设计语音低通滤波器 ,具体步骤如下 :
用 Windows 附件中的录音机将其它格式的语音转换
成. wav 格式并命名 lei1 保存到 MA TLAB 的 work 文件夹
中 ,用 MA TLAB 中的 wavread( ) 函数将. wav 语音转换成
数组格式数据 ,用 wavwrite ( ) 函数将数组格式数据转换
成. wav 语音 3
,用 MA TLAB 的 FDA Tool 工具箱 4 设计所
需 FIR 滤波器的系数 h ( n) ,具体设计方法请参考文献 6 .
注意 FDA Tool 中采样率的设置必须跟. wav 语音录制时的
采样率一致 ,本例中取抽样频率 Fs = 22050 Hz ,截止频率
Fc = 500 Hz ,采用 20 阶的 Kaiser 窗 ,设计一 FIR 低通滤波
器 ,将设计好的滤波器的系数导出到工作空间 ,命名为 hl ,
编写 m 程序 :
x = wavread ( ’lei1. wav’) ; y = conv ( hl , x) ; wavwrite
(y ,22050 ,’lei2. wav’) ;
运行该 m 程序将在 MA TLAB 的 work 文件夹中产生
一个名为 lei2 的. wav 语音文件 ,通过 MA TLAB 的作图函
数 5 并取 x 的长度为 60 点可得到如图 4 所示的一段时域
波形 ,分别播放滤波前后的 lei1 和 lei2 这两段语音 ,会感觉
到处理后的语音变得低沉 ,原因是高频分量被低通滤波器
衰减 ,这从图中的 x ( n) 和 y ( n) 波形形状可明显看出.
图 4 滤波前后的波形
还是用上例中设计的 hl 滤波器作频域低通 ,其 m 程序
如下 :fs = 22050 ; x = wavread ( ’lei1. wav’) ; n = length ( x) ;
Hw = fft ( hl , n) ; Xw = fft ( x , n) ; Yw = Hw’.
Xw’; y = ifft
( Yw ,n) ;wavwrite (y ,22050 ,’lei3. wav) ;
图 5 滤波前后的频谱
Lei3 和 lei2 两段语音的听觉效果是一样的 , x ( n) 滤波
前后的频谱如图 5 所示 ,可以看出滤波后信号频谱| Y(jf) |
的高频部分有明显的衰减.
3 结 论
系统对信号的处理在时域是作卷积运算 ,是对信号的
波形形状进行变换 ;在频域是作乘积运算 ,是对信号的频谱
结构进行变换. 从分析的结果来看时域卷积和频域乘积是
等效的.
参考文献 :
1 程佩青. 数字信号处理教程 M . 北京 :清华大学出版社
,2001 :20
25.
2 吴大正. 信号征与线性系统分析 M . 北京 :高等教育出
版社 ,2003 :283
109.
3 姚东 ,王爱民 ,冯峰 ,等. MA TLAB 命令大全 M . 北京 :
人民邮电出版社 ,2000 :359
363.
4 陈亚勇. MAIIAB 信号处理详解 M . 北京 :人民邮电出
版社 ,2002 :245
344.
5 陈怀琛 ,吴大正 ,高西全. MA TLAB 及在电子信息课程
中的应用 M . 北京 :电子工业出版社 , 2003 :30
39.
6 武晓春. FIR 数字滤波器的 MA TLAB 设计 J . 甘肃科
技纵横 ,2005 ,34 (1) :21.
Analyze and Design of FIR Digital Low Pass Filter Based on the MATLAB
L EI Xue
tang ,FAN G Zhi
xiong
(Department of Physics Science and Technology , Huanggang Normal University , Huanggang 438000 , Hubei , China)
Abstract : Analyze the physics significance of the convoluting in time domain and the weighting in frequency
domain in detail by using the digital low pass filter as the exemplification. And by using the MA TLAB sound
processing function as the data connection , the multimedia players as the interactive contact surface , the
MA TLAB FDA Tool as the filter design tool , designed a group of experiments for audio low pass filter with
the purpose of strengthening the understanding of the digital signal processing by comparing the change of the
audio effect before and after the filter.
Key words : Digital signal processing ; Digital filter ; Low pass filter ; MA TLAB
© 1994-2009 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net