课程方案(设计方案)双线性变换法IIR数字带通滤波器方案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
郑州轻工业学院课程设计说明书
题目:
姓名:
院< 系):专业班级:
学号:
指导教师:
成绩:
时间:年月日至年月曰
郑州轻工业学院
课程设计任务书
题目基于双线性变换法的IIR数字高通滤波器设计
专业、班级电子信息工程08级2班学号姓名
主要内容、基本要求、主要参考资料等:
主要内容:
首先依据给定的性能指标,采用双线性变换法设计IIR数字高通滤波器;然后利用MATLAB软件的wavread函数读取.wav格式的语音信号,并利用所设计的滤波器对音频信号进行滤波处理,画出滤波前后信号的时域波形及频谱;最后回放语音信号,分析滤波前后的语音变化。
基本要求:
1滤波器技术指标为:
f p=3200Hz。
A p=1dB。
f s=3000Hz。
A s=100dB
2、采用双线性变换法设计IIR数字低通滤波器;
3、掌握利用wavread函数读取.wav格式语音信号的方法;
4、对语音信号进行滤波,并画出滤波前后信号的时域波形及频谱;
5、回放语音信号,分析滤波前后的语音变化。
主要参考资料:
1、从玉良•数字信号处理原理及其MATLAB实现[M].北京:电子工业出版社.2009.7
2、胡广书.数字信号处理理论、算法与实现[M].北京:清华大学出版社.2003,8
完成期限:2018624— 2018628
指导教师签名:
课程负责人签名:
2018年6月24日
摘要
随着信息时代和数字世界的到来,数字信号处理已成为当今一门极其重要的学科和技术领域。
在数字信号处理中起着重要的作用并已获得广泛应用的是数字滤波器<DF, Digital
Filter )。
数字滤波器是一种用来过滤时间离散信号的数字系统,通过对抽样数据进行数学处理来达到频域滤波的目的。
本次主要利用matlab的信号处理工具箱设计一个数字高通IIR滤波器,并
用此滤波器处理一段音频信号。
文中主要介绍了用双线性变换法设计切比雪夫I型高通数字滤波器的实现方法。
关键字:数字信号处理数字滤波器切比雪夫I双线性变换MATLAB
1数字滤波器
1.1数字滤波器介绍
数字滤波器是具有一定传输选择特性的数字信号处理装置,其输入、输出均
为数字信号,实质上是一个由有限精度算法实现的线性时不变离散系统。
它的基本工作原理是利用离散系统特性对系统输入信号进行加工和变换,改变输入序列的频谱或信号波形,让有用频率的信号分量通过,抑制无用的信号分量输出。
数字滤波器和模拟滤波器有着相同的滤波概念,根据其频率响应特性可分为低通、高通、带通、带阻等类型,与模拟滤波器相比,数字滤波器除了具有数字信号处理的固有优点外,还有滤波精度高(与系统字长有关>、稳定性好(仅运行在0与I两个电平状态>、灵活性强等优点。
时域离散系统的频域特性,其中C:、—分别是数字滤波器的输出序列和输入序列的频域特性<或称为频谱特性)」是
数字滤波器的单位取样响应的频谱,又称为数字滤波器的频域响应。
输入序列的频谱丄「「经过滤波后•一打一,因此,只要按照输入信号频谱的特点
和处理信号的目的,适当选择…,使得滤波后的',满足设计的
要求,这就是数字滤波器的滤波原理。
数字滤波器根据其冲激响应函数的时域特性,可分为两种,即无限长冲激响应(IIR>数字滤波器和有限长冲激响应(FIR>数字滤波器。
IIR数字滤波器的特征是,具有无限持续时间冲激响应,需要用递归模型
y(n)= 2 (甘■十Y砧(n —0
来实现,其差分方程为:…' (1-1>
系统函数为:
M
------
<1-2)
设计IIR滤波器的任务就是寻求一个物理上可实现的系统函数H(z>,使其频
率响应H(z>满足所希望得到的频域指标,即符合给定的通带截止频率、阻带截止频率、通带衰减系数和阻带衰减系数。
1.2 IIR 数字滤波器设计原理
IIR 数字滤波器是一种离散时间系统,其系统函数为
假设M N,当M > N 寸,系统函数可以看作一个IIR 的子系统和一个(M-N >的
FIR 子系统的级联。
IIR 数字滤波器的设计实际上是求解滤波器的系数
和.,它
是数学上的一种逼近问题,即在规定意义上 <通常采用最小均方误差准则)去逼 近系统的特性。
如果在S 平面上去逼近,就得到模拟滤波器;如果在 z 平面上去 逼近,就得到数字滤波器。
设计通数字滤波器通常可以归纳为如图所示的两种常用方法。
图1-1数字带通滤波器设计的两种方法
方法1:首先设计一个模拟原型低通滤波器,然后通过频率变换成所需要的 模拟高通滤波器,最后再使用冲激不变法或双线性变换成相应的数字高通滤波 器。
方法2:先设计一个模拟原型低通滤波器,然后采用冲激响应不变法或双线 性变换法将它转换成数字原型低通滤波器,最后通过频率变换把数字原型低通 滤波器变换成所需要的数字高通滤波器。
本课程设计采用第一种设计方法,先构造一个切比雪夫I 型模拟低通滤波器, 然后将模拟低通滤波器转换成模拟高通滤波器,最后利用双线性变换将模拟高 通滤波器转换成数字高通滤波器。
1.2.1切比雪夫滤波器
为了从模拟滤波器出发设计IIR
数字滤波器,必须先设计一个满足技术指
方法1
方法2
标的模拟滤波器,亦即要把数字滤波器的指标转换成模拟滤波器的指标,因此必须先设计对应的模拟原型滤波器。
模拟滤波器的理论和设计方法己发展得相当成熟,且有一些典型的模拟滤波器供我们选择,如巴特沃斯(Butterworth〉滤波器、切比雪夫(Chebyshev>滤波器、椭圆(Cauer>滤波器、贝塞尔(Bessel〉滤波器等,这些典型的滤波器各有特点。
这里介绍切比雪夫滤波器。
切比雪夫滤波器特点:误差值在规定的频段上等波纹变化。
巴特沃兹滤波器在通带内幅度特性是单调下降的,如果阶次一定,则在靠近截止…处,幅
度下降很多,或者说,为了使通带内的衰减足够小,需要的阶
Er
次N很高,为了克服这一缺点,采用切比雪夫多项式来逼近所希望的匸.
切比雪夫滤波器的比(血)『在通带范围内是等幅起伏的,所以在同样的通常内衰减要求
下,其阶数较巴特沃兹滤波器要小。
切比雪夫滤波器的振幅平方函数为
(1-4> 5自
式中Q c为有效通带截止频率,匚表示与通带波纹有关的参量,值越大通带不
动愈大。
V N<x)是N阶切比雪夫多项式,定义为
切比雪夫滤波器的振幅平方特性如图所示: N为偶数,cos2^ — >=1,得至U min,
■i-B
N为奇数,cos2(「,得到max cos(Warccos x)
cosh( Nar cosh x)
(1-5>
C. <1-6)
陆0<厂1<1-7)
图1-2 切比雪夫滤波器的振幅平方特性
有关参数的确定:
a、通带截止频率:「.预先给定
t
b、£与通带波纹有关的参数,通带波纹表示成
庞(血)| 1
否二10] 丿笄二20l g z 铲=201g —
<1-8) 所以,门- 1CM..-I, :—[「1
给定通带波纹值分贝数后,可求得丁。
c、阶数N:由阻带的边界条件确定。
」L、A2为事先给定的边界条件,即在阻带中的频
率点处…,要求滤波器频响衰减到1/A2以上。
-/ (1-9>
(1-10> (1-11>
閣》1 时,咛(X)= cosh( Mar cosh x)
<1-12) 因此,要求阻带边界频率处衰减越大,要求N也越大,参数N,匕”兰给
定后,查阅有关模拟滤波器手册,就可求得系统函数Ha(s>。
1.2.2双线性变换法
为了克服冲激响应法可能产生的频率响应的混叠失真,这是因为从S平面
到Z平面是多值的映射关系所造成的。
为了克服这一缺点,可以采用非线性频率压缩方法,将整个频率轴上的频率范围压缩到-n/T〜n/T之间,再用z=e sT
转换到Z平面上。
也就是说,第一步先将整个S平面压缩映射到S平面的-n
/T〜n/T 一条横带里;第二步再通过标准变换关系z=e s1T将此横带变换到整个
Z平面上去。
这样就使S平面与Z平面建立了一一对应的单值关系,消除了多值变换性,
也就消除了频谱混叠现象,映射关系如图1-3
Ajlm[z]
-L: / T
图1-3双线性变换的映射关系
为了将S平面的整个虚轴j Q压缩到S1平面j Q 1轴上的-n/T到n/T段上,可以通过以下的正切变换实现
°tan「缸]<1-13)
T I 2丿
式中,T仍是采样间隔。
当Q 1由-n /T经过0变化到n /T时,Q由-x经过o变化到+*,也即映射了整个j
Q轴。
将式<1-9)写成
(1-14>
将此关系解读延拓到整个S平面和S1平面,令j Q =s,j Q 1=s1,则得
2 e°T/2 -e 』T/2
2
s^T 2 1 - e 』T
s
ST 77
ST 7
^
tanh T e®
T 2
T 1 e~1
再将S1平面通过以下标准变换关系映射到
Z 平面
z=e s 1T
从而得到S 平面和Z 平面的单值映射关系为:
式 <1-10)与式 <1-11 )是 S
都是两个线性函数之比,因此称为双线性变换 式<1-9)与式<1-10)的双线性变换符合映射变换应满足的两点要求。
jw
首先,把
z
=e
」可得
即S 平面的虚轴映射到Z 平面的单位圆。
其次,将s= c +j Q 代入式<1-12),得
2 小
j'.1
z=T
2
j 1.1
T
因此
\即]+。
|z| =
2
-二■ J 2
.T
由此看出,当c <0时,|z|<1 ;当6 >0时,|z|>1。
也就是说,S 平面的左 半平面映射到Z 平面的单位圆内,S 平面的右半平面映射到 Z 平面的单位圆外, S 平面的虚轴映射到Z 平面的单位圆上。
因此,稳定的模拟滤波器经双线性变 换后所得的数字滤波器也一定是稳定的。
双线性变换法优缺点:双线性变换法与脉冲响应不变法相比,其主要的优
(1-15>
2 1 -z
<1-16>
T 2
S — S 2 -T T 2 S —— -S 2 T
<1-17>
21-e j
'
. 2 S
_T1 e j
'」T ¥tanf
T \、
2)
<1-18)
Z 平面之间的单值映射关系,这种变换
<1-19)
T 1 z 」 1
z = -
点是避免了频率响应的混叠现象。
这是因为S平面与Z平面是单值的—对应关系。
S平面整个j Q轴单值地对应于Z平面单位圆一周,即频率轴是单值变换关系。
这个关系如式<1-12)所示,重写如下:
1 = — ta n <1-20)
T \2)
上式表明,S平面上Q与Z平面的3成非线性的正切关系,如图1-4所示。
由图1-4看出,在零频率附近,模拟角频率Q与数字频率3之间的变换关系接近于线性关系;但当Q进一步增加时,3增长得越来越慢,最后当时,3终止在折叠频率3 =n处,因而双线性变换就不会出现由于高频部分超过折叠频率而混淆到低频部分去的现象,从而消除了频率混叠现象。
图1-4双线性变换法的频率变换关系
但是双线性变换的这个特点是靠频率的严重非线性关系而得到的,如式<1- 12)及图1-4所示。
由于这种频率之间的非线性变换关系,就产生了新的问题。
首先,一个线性相位的模拟滤波器经双线性变换后得到非线性相位的数字滤波器,不再保持原有的线性相位了;其次,这种非线性关系要求模拟滤波器的幅频响应必须是分段常数型的,即某一频率段的幅频响应近似等于某一常数<这正是一般典型的低通、高通、带通、带阻型滤波器的响应特性),不然变换所产生的数字滤波器幅频响应相对于原模拟滤波器的幅频响应会有畸变,如图1-5 所示。
图1-5双线性变换法幅度和相位特性的非线性映射
对于分段常数的滤波器,双线性变换后,仍得到幅频特性为分段常数的滤波器,但是各个分段边缘的临界频率点产生了畸变,这种频率的畸变,可以通过频率的预畸来加以校正。
也就是将临界模拟频率事先加以畸变,然后经变换后正好映射到所需要的数字频率上。
2数字滤波器设计实现
2. 1设计步骤
根据以上IIR数字滤波器设计方法,下面运用双线性变换法基于MATLAB^
计一个IIR带通滤波器。
(1>确定性能指标
在设计高通滤波器之前,首先根据工程实际的需要确定滤波器的技术指标:通带截止频率fp=3200Hz;阻带截止频率fs=3000Hz;阻带最小衰减As=100dB和通带最大衰减Ap=1dB (2>把频率转化为数字角频率
wp=2*pi*fp*T。
ws=2*pi*fs*T。
(3>频率预畸变以及模拟高通性能指标转换成模拟低通性能指标
用Q =2/T*tan(w/2>对高通数字滤波器H(z>的数字边界频率预畸变,得到高通模拟滤波器H(s>的边界频率主要是通带截止频率Wp阻带截止频率Ws的转换。
抽样频率
FS=8000Hz
通带截止频率Wp2=(2/T>*tan(wp/2>
阻带截止频率Ws2=(2/T>*tan(ws/2>
(4>模拟低通滤波器的构造
借助切比雪夫(Chebyshev〉滤波器得到模拟低通滤波器的传输函数Ha(s>。
[N,Wn]=buttord(wp2,ws2,Ap,As,'s'>。
[z,p,k]=butt ap(N>。
[Bap,Aap]=zp2tf(z,p,k>。
G仁tf(Bap,Aap>。
(5>模拟低通滤波器转换成模拟高通滤波器
调用Ip2bp函数将模拟低通滤波器转化为模拟高通滤波器。
[Bbs,Abs]=lp2hp(Bap,Aap,Wn>。
(7>模拟高通滤波器转换成数字高通滤波器
利用双线性变换法将模拟高通滤波器Ha(s>转换成数字高通滤波器H(z>。
[Bbz,Abz]=bi lin ear(Bbs,Abs,FS>。
2.2程序流程图
首先确定性能指标,把频率转化为数字角频率,进而在进行频率预畸变,用Q
=2/T*tan(w/2>对高通数字滤波器H(z>的数字边界频率预畸变,得到高通模拟滤波器H(s >的边界频率主要是通带截止频率Wp阻带截止频率Ws的转换。
抽样频率fs=10KHz。
上述准备工作做好之后,就先把模拟高通性能指标转换成模拟低通性能指标,然后设计模拟低通滤波器,借助切比雪夫(Chebyshev >滤波器得到模拟低通
滤波器的传输函数Ha(s>。
然后将模拟低通滤波器转化为模拟高通滤波器。
最后利用双线性变换法将模拟高通滤波器Ha(s>转换成数字高通滤波器H(z>。
图2-1程序流程图
2.3音频信号部分程序
<1)写入声音信号
[y,FS,nbits]=wavread (C\SHE.wav'〉N= len gth (y> 。
Y=fft(y,N>。
<2)产生噪声并加到声音中
noise=1+0.1*ra ndn( N,1> 。
yn=y+noise。
sound(yn, FS, nbits> 。
HPASS yn=filter(Bbz,Abz,y n> 。
HPASSYN=fft(HPASSyn>
2. 4仿真结果
241滤波器性能仿真
源程序设计了模拟低通滤波器、模拟高通滤波器与数字高通滤波器,对数字高通滤波器的性能仿真如下:
幅频特性曲线(db)
图2-2滤波器性能仿真
2.4.2滤波器除噪性能
为了实现滤波器的应用,程序中加入了有噪声的音频信号,通过对其滤波处理,来显示数字高通滤波器的功能,下面显示未加入噪声,加入噪声和滤波后的频谱波形图。
图2-3未加噪声的音频特性
X 10
图2-4滤波前后的音频特性
2.4K 的频率范围内,滤波器的滤波效果较好,把噪声 基本上全部滤除掉了。
滤波前信号波形
2 ------ . ----- . ------
滤波后信号波形
1 ------ . ----- ------ -1
Uh
kl|L|l
0.5
-0.5
Li
_2 ------ 1
----- ■ ----- = ----- 0 12 3 4
5
-1 l ----- 1 ----- ■ ----- c -----
0 12 3 4
5
8000 滤波前信号频谱
800
滤波后信号频谱
6000
-
600
4000 -
400
2000 0
-
200 0 J f JL 1
-
X 10
由图可知,在1K 到 原始信号波形
5
x 10
原始信号频谱
X 10
X 10 5
5
0 1
3总结
在拿到题目的那一刹,我被吓着了,赶紧去图书馆找材料,开始解剖题目,知道了什么是切比雪夫、什么是双线性变换,什么是巴特沃斯,学了那么久的MATLAB从没看到这些个东西,在网上瞎搜了一阵,到是搜到了一些相关的源程序,头都看大了,最终终于写出来了一个理想的程序。
这次课设下来,对设计带通数字滤波器的整个过程有了很好的掌握,懂得了设计滤波器的基本方法,对双线性变换法,切比雪夫滤波器有了一定了解,同时呢也熟悉了MATLAB勺环境,巩固了相关知识。
最大的收获是初步了解了数字滤波器的原理及设计方法,加深了对滤波器的认识,一切从零开始,虽然没有以绝对完美结束,但在这么短的时间内能够设计成功已经出乎意料之外了,总之,收获还是很大的。
在做本次课程设计的过程中,我深深地感受到了自己所学到知识的有限,明白了只学好课本上的知识是不够的,要通过图书馆和互联网等各种渠道来扩充自己的知识。
在实验过程中我们曾经遇到过问题。
但是从中我们学习到了如何对待遇到的困难,进一步培养了我们一丝不苟的科学态度和不厌其烦的耐心。
所有的这些心得会对我以后的学习和工作有帮助作用,忠心感谢学校给我们提供这次实验机会。
参考文献
[1]程佩青.数字信号处理•北京:清华大学出版社,2007.2
[2]景振毅,张泽兵,董霖•北京:中国铁道出版社,2008.12
[3]从玉良.数字信号处理原理及其MATLAB实现[M].北京:电子工业出版社.2009.7
[4]胡广书.数字信号处理理论、算法与实现[M].北京:清华大学出版社.2003.8
附录
源程序
clear %技术指标
FS=8OO0 T=1/FS。
%采样频率大于3200HZ的两倍
fp=3200。
fs=3000。
Ap=1。
As=20。
wp=fp*2*pi*T 。
ws=fs*2*pi*T。
wp2=2*tan(wp/2>/T 。
ws2=2*tan(ws/2>/T 。
[N,Wn]=buttord(wp2,ws2,Ap,As,'s'> 。
[z,p,k]=butt ap(N> 。
[Bap,Aap]=zp2tf(z,p,k> 。
G仁tf(Bap,Aap> 。
figure(1> 。
freqs(Bap,Aap> 。
title(' 模拟低通滤波器的频率响应’>
[Bbs,Abs]=lp2hp(Bap,Aap,Wn>。
%模拟低通转化为模拟高通figure(2> 。
freqs(Bbs,Abs>。
title(' 模拟高通滤波器的频率响应'>
[Bbz,Abz]=bilinear(Bbs,Abs,FS> 。
%双线性变化把模拟高通转化为数字高通figure(3> 。
freqz(Bbz,Abz,512,FS> 。
title(' 数字滤波器的频率响应'>
figure(4> 。
[y,FS,nbits]=wavread ('C:\SHE.wav'〉
N= length (y> 。
Y=fft(y,N> 。
subplot(2,1,1> 。
plot(y>。
title(' 原始信号波形'>
subplot(2,1,2> 。
plot(abs(Y>> 。
title('原始信号频谱'>
>> n oise=1+0.1*ra ndn( N,1> 。
yn=y+noise。
sound(yn,FS,nbits> 。
HPASS yn=filter(Bbz,Abz,y n> 。
HPASSYN=fft(HPASSyn。
figure(5> 。
subplot(2,1,1> 。
plot(HPASSyn>。
title('滤波后信号波形'> subplot(2,1,2> 。
plot(abs(HPASSYN>>。
title('滤波后信号频谱'>。