第12卷 第3期山东交通学院学报Vol . 12No . 3 基于MATLAB 的模拟滤波器设计
姜春玲1, 史 玲2
(1. 泰山学院物理系, 山东泰安 271021; 2. 山东交通学院信息工程系, 山东济南 250023)
摘要:模拟滤波器是现代测控系统中的重要部件, 传统设计方法的设计过程繁琐。对传统方法与MATLAB 编
程方法进行了比较, 研究了用MATLAB 实现巴特沃斯滤波器的设计, 只要改变程序中相应的参数可以很容易
地实现低通、高通、带通、带阻滤波器, 简化了模拟滤波器的设计。
关 键 词:MATLAB ; 设计; 模拟滤波器
中图分类号:TN713 文献表示码:A 文章编号:1672-0032(2004) 03-0063-03
在测控系统中, 传感器输出的信号往往混有噪声干扰, 虽然可以采取合理布线及屏蔽技术等措施来防止噪声进入系统, 但信号中仍含有不可忽略的噪声, 通常采用模拟滤波器来消除这些噪声。因此, 设计一个合理的模拟滤波器是测控系统中一个非常重要的环节。模拟滤波器的设计一般包括两个方面:1) 根据技术指标即滤波器的幅频特性, 确定滤波器的传递函数H (s ) ; 2) 设计实际网络实现这一传递函数。设计滤波器H (s ) 的关键是找到逼近函数, 目前已有多种逼近函数。然而, 不论哪种逼近函数都需要进行非常繁琐的计算, 还要根据计算结果进行查表。
MATLAB 语言是一种简单、高效的高级语言, 是一种内容丰富、功能强大的分析工具, 其应用范围几乎覆盖了所有的科学和工程计算领域。MATLAB 中提供了丰富的用于模拟滤波器设计的函数, 通过编程可以很容易实现低通、高通、带通、带阻滤波器, 并能画出滤波器的幅频特性曲线, 大大简化了模拟滤波器的设计。本文通过传统方法与MATL AB 编程方法的比较, 研究了用MATL AB 实现巴特沃斯滤波器设计的方法。
1 低通滤波器的设计
要求在通带截止频率f c =2kHz 处, 衰减δ3dB ; 阻带始点频率f z =4kHz 处, 衰减δ15dB [1]。c ≤z ≥
按照传统的求法, 计算n 需要代入公式
1δ1×15z 0. 0. n =2. 468, Ψz 3
21g 2lg Ψc 2π×2×103
n 取整, n =3。然后查表, 得传递函数模型。
由此可以看出计算复杂, 并且如果没有表, 就写不出传递函数。
[2]下面用MATLAB 来设计该滤波器, 计算阶数、截止频率, 并画出幅频特性曲线(如图1所示) 。
wp =2000*2*pi ;
ws =4000*2*pi ;
Rp =3;
Rs =15;
[N , Wn ]=buttord (wp , ws , Rp , Rs , ' s ' ) ; %计算阶数和截止频率
Fc =Wn /(2*p ) ;
[b , a ]=butter (N , Wn , ' s ' ) ;
收稿日期:2004-06-24 作者简介:姜春玲(1969-) , 女, 山东泰安人, 泰山学院讲师.
山东交通学院学报 2004年9月 第12卷64
%计算滤波器传递函数多项式系数
[z , p , k ]=butter (N , Wn , ' s ' ) ;
%得到滤波器零点、极点和增益
w =linspace (1, 4000, 1000) *2*pi ;
H =freqs (b , a , w ) ;
magH =abs (H ) ;
phaH =unwrap (angle (H ) ) ;
plot (w /(2*pi ) , 20*log10(magH ) , ′k ′) ;
xlabel (′频率/Hz ′) ;
ylabel (′幅度/B ′) ;
grid on
运行结果:
N =
3
Wn =
4209e +004图1 巴特沃思低通滤波器的幅频特性
2 设计带通滤波器
设计高通、带通、带阻滤波器的传统方法是:根据对高通、带通、带阻滤波器的特性指标要求, 导出相应的低通原型的指标来, 然后确定低通原型的传递函数H (s ) , 再根据一定变换关系得出高通、带通、带阻滤波器的传递函数。而用MATL AB 可以像设计低通滤波器一样直接得出高通、带通、带阻滤波器的参数和特性曲线[3]。
设计一带通滤波器, 设计要求为:通带频率2~3kHz 、两边的过渡带宽为0. 5kHz 、通带纹波为1dB 、
[4]
阻带衰减大于100dB , 并画出幅频特性曲线(如图2所示) 。
wp =[20003000]*2*pi ;
ws =[15003500]*2*pi ;
Rp =1;
Rs =100;
[N , W n ]=buttord (wp , ws , Rp , Rs ' , s ' )
%计算阶数和截止频率
Fc =Wn /(2*pi ) ;
[b , a ]=butter (N , Wn , ' s ' ) ;
%计算滤波器传递函数多项式系数
w =linspace (1, 4000, 1000) *2*pi ;
H =freqs (b , a , w ) ;
图2 巴特沃思带通滤波器的幅频特性 magH =abs (H ) ;
phaH =unwrap (angle (H ) ) ;
plot (w /2*pi ) , 20*log10(ma gH ) , k ' ' ) ;
xlabel (' 频率/Hz ′) ;
ylabel (' 幅度/dB ′) ;
grid on
运行结果:
N =
22
第3期 姜春玲等:基于MATLAB 的模拟滤波器设计 65
1. 0e +004* 1. 9070
因此该带通滤波器的阶数为2N =44。
3 绘制平方幅频响应曲线
用MATLAB 可绘制巴特沃思低通滤波器的平方幅频响应曲线, 阶数分别为2, 5, 10, 20滤波器的幅频特性曲线(如图3所示) 和程序代码为[5
]
n =0∶0. 01∶2;
for i =1∶4
s witch i
case 1
N =2;
case 2
N =5;
case 3
N =10;
case 4
N =20;
end
[z , p , k ]=buttap (N ) ;
[b , a ]=zp2tf (z , p , k ) ; 图3 不同阶次的巴特沃思滤波器幅度平方函数
[H , w ]=freqs (b , a , n ) ;
magH2=(abs (H ) ) . 2;
hold on
plot (w , magH2) ;
a xis ([0201]) ;
end
xlabel (' w /wc ' ) ;
ylabel (' /H (jw ) / 2' ) ;
由图3可知:阶次越高, 特性越接近矩形。
4 结 语
使用MATLAB 设计模拟滤波器时, 对于不同的设计要求, 只需修改程序中的参数, 运行后即可得到相应的阶数和截止频率, 避免了复杂的运算及查表, 因此, 用MATLAB 可以简化模拟滤波器的设计。利用MATLAB 不仅可以设计巴特沃思滤波器而且也可以设计切比雪夫滤波器等, 设计简单、直观。
参考文献:
[1]周浩敏. 信号处理技术基础[M ]. 北京:北京航空航天大学出版社, 2001.
[2]邵朝, 阳亚芳, 卢光跃. 数字信号处理[M ]. 北京:北京邮电大学出版社, 2004.
[3]韩利竹, 王华. MATLAB 电子仿真与应用[M ]. 北京:国防工业出版社, 2003.
[4]陈桂明, 张明照, 戚红雨. 应用MATL AB 语言处理数字信号与数字图像[M ]. 北京:科学出版社, 2000. 145-153.
[5]刘卫国, 陈昭平, 张颖. MATLAB 程序设计与应用[M ]. 北京:高等教育出版社, 2002. 42-96.
(下转第74页)
山东交通学院学报 2004年9月 第12卷74
Discussion on Evaluation Method of Industrial Accident Losses
XUN Jing 1, PAN Guang -feng 2
(1. Pres ide nt Offic e , Shandon Jiaotong Unive rs it y , Ji nan , 250023, China ;
2. C omputer Information Engine ering , Shandong Unive rs ity of Financ e , Jinan , 250014, C hina )
A bstract :On the basis of using the evaluation criteria and methodology of foreign and domestic r elevant accident losses for reference , this paper briefly describes the classification of the industrial accident losses , and puts for ward the division standards and specific evaluation methods of dir ect and indirect economic losses of our country ' s enterprises . Also , it studies and discusses the evaluation methods of value c onversion , which the non -economic losses such as life or health etc . cannot directly be measured by the money in the accident losses , and proposed some evaluation methods of the non -economic losses .
Key words :accident loss classification ; ec onomic loss ; non -economic loss ; value conversion ; evaluation method
(责任编辑:宋旭红)
(上接第65页)
Design of Analog Filter Based on MATLAB
JIANG Chun -ling 1, SHI Ling 2
(1. Depar tment of Physic s , Taishan Unive rs ity , Tai ' an , 271021, Shandong , C hina ;
2. De partment of Informati on Engineer ing , Shandong Jiaotong Uni ver sity , Jinan 250023, Shandong , C hina )
A bstract :The analog filter is the important unit of modern measur ement and contr ol system , but the traditional method has a very tedious design process . This article compares the traditional method with the MATLAB programming method , studies the design of using MATLAB to realize of the Butterworth filter . As long as changing the relevant para meters in the pr ograms , it is very easy to realize the design of lo w pass , high pass , band pass and band stop filter , which simplifies the design of the analog filter .
Key words :MATLAB ; design ; analog filter
(责任编辑:郎伟锋)
第12卷 第3期山东交通学院学报Vol . 12No . 3 基于MATLAB 的模拟滤波器设计
姜春玲1, 史 玲2
(1. 泰山学院物理系, 山东泰安 271021; 2. 山东交通学院信息工程系, 山东济南 250023)
摘要:模拟滤波器是现代测控系统中的重要部件, 传统设计方法的设计过程繁琐。对传统方法与MATLAB 编
程方法进行了比较, 研究了用MATLAB 实现巴特沃斯滤波器的设计, 只要改变程序中相应的参数可以很容易
地实现低通、高通、带通、带阻滤波器, 简化了模拟滤波器的设计。
关 键 词:MATLAB ; 设计; 模拟滤波器
中图分类号:TN713 文献表示码:A 文章编号:1672-0032(2004) 03-0063-03
在测控系统中, 传感器输出的信号往往混有噪声干扰, 虽然可以采取合理布线及屏蔽技术等措施来防止噪声进入系统, 但信号中仍含有不可忽略的噪声, 通常采用模拟滤波器来消除这些噪声。因此, 设计一个合理的模拟滤波器是测控系统中一个非常重要的环节。模拟滤波器的设计一般包括两个方面:1) 根据技术指标即滤波器的幅频特性, 确定滤波器的传递函数H (s ) ; 2) 设计实际网络实现这一传递函数。设计滤波器H (s ) 的关键是找到逼近函数, 目前已有多种逼近函数。然而, 不论哪种逼近函数都需要进行非常繁琐的计算, 还要根据计算结果进行查表。
MATLAB 语言是一种简单、高效的高级语言, 是一种内容丰富、功能强大的分析工具, 其应用范围几乎覆盖了所有的科学和工程计算领域。MATLAB 中提供了丰富的用于模拟滤波器设计的函数, 通过编程可以很容易实现低通、高通、带通、带阻滤波器, 并能画出滤波器的幅频特性曲线, 大大简化了模拟滤波器的设计。本文通过传统方法与MATL AB 编程方法的比较, 研究了用MATL AB 实现巴特沃斯滤波器设计的方法。
1 低通滤波器的设计
要求在通带截止频率f c =2kHz 处, 衰减δ3dB ; 阻带始点频率f z =4kHz 处, 衰减δ15dB [1]。c ≤z ≥
按照传统的求法, 计算n 需要代入公式
1δ1×15z 0. 0. n =2. 468, Ψz 3
21g 2lg Ψc 2π×2×103
n 取整, n =3。然后查表, 得传递函数模型。
由此可以看出计算复杂, 并且如果没有表, 就写不出传递函数。
[2]下面用MATLAB 来设计该滤波器, 计算阶数、截止频率, 并画出幅频特性曲线(如图1所示) 。
wp =2000*2*pi ;
ws =4000*2*pi ;
Rp =3;
Rs =15;
[N , Wn ]=buttord (wp , ws , Rp , Rs , ' s ' ) ; %计算阶数和截止频率
Fc =Wn /(2*p ) ;
[b , a ]=butter (N , Wn , ' s ' ) ;
收稿日期:2004-06-24 作者简介:姜春玲(1969-) , 女, 山东泰安人, 泰山学院讲师.
山东交通学院学报 2004年9月 第12卷64
%计算滤波器传递函数多项式系数
[z , p , k ]=butter (N , Wn , ' s ' ) ;
%得到滤波器零点、极点和增益
w =linspace (1, 4000, 1000) *2*pi ;
H =freqs (b , a , w ) ;
magH =abs (H ) ;
phaH =unwrap (angle (H ) ) ;
plot (w /(2*pi ) , 20*log10(magH ) , ′k ′) ;
xlabel (′频率/Hz ′) ;
ylabel (′幅度/B ′) ;
grid on
运行结果:
N =
3
Wn =
4209e +004图1 巴特沃思低通滤波器的幅频特性
2 设计带通滤波器
设计高通、带通、带阻滤波器的传统方法是:根据对高通、带通、带阻滤波器的特性指标要求, 导出相应的低通原型的指标来, 然后确定低通原型的传递函数H (s ) , 再根据一定变换关系得出高通、带通、带阻滤波器的传递函数。而用MATL AB 可以像设计低通滤波器一样直接得出高通、带通、带阻滤波器的参数和特性曲线[3]。
设计一带通滤波器, 设计要求为:通带频率2~3kHz 、两边的过渡带宽为0. 5kHz 、通带纹波为1dB 、
[4]
阻带衰减大于100dB , 并画出幅频特性曲线(如图2所示) 。
wp =[20003000]*2*pi ;
ws =[15003500]*2*pi ;
Rp =1;
Rs =100;
[N , W n ]=buttord (wp , ws , Rp , Rs ' , s ' )
%计算阶数和截止频率
Fc =Wn /(2*pi ) ;
[b , a ]=butter (N , Wn , ' s ' ) ;
%计算滤波器传递函数多项式系数
w =linspace (1, 4000, 1000) *2*pi ;
H =freqs (b , a , w ) ;
图2 巴特沃思带通滤波器的幅频特性 magH =abs (H ) ;
phaH =unwrap (angle (H ) ) ;
plot (w /2*pi ) , 20*log10(ma gH ) , k ' ' ) ;
xlabel (' 频率/Hz ′) ;
ylabel (' 幅度/dB ′) ;
grid on
运行结果:
N =
22
第3期 姜春玲等:基于MATLAB 的模拟滤波器设计 65
1. 0e +004* 1. 9070
因此该带通滤波器的阶数为2N =44。
3 绘制平方幅频响应曲线
用MATLAB 可绘制巴特沃思低通滤波器的平方幅频响应曲线, 阶数分别为2, 5, 10, 20滤波器的幅频特性曲线(如图3所示) 和程序代码为[5
]
n =0∶0. 01∶2;
for i =1∶4
s witch i
case 1
N =2;
case 2
N =5;
case 3
N =10;
case 4
N =20;
end
[z , p , k ]=buttap (N ) ;
[b , a ]=zp2tf (z , p , k ) ; 图3 不同阶次的巴特沃思滤波器幅度平方函数
[H , w ]=freqs (b , a , n ) ;
magH2=(abs (H ) ) . 2;
hold on
plot (w , magH2) ;
a xis ([0201]) ;
end
xlabel (' w /wc ' ) ;
ylabel (' /H (jw ) / 2' ) ;
由图3可知:阶次越高, 特性越接近矩形。
4 结 语
使用MATLAB 设计模拟滤波器时, 对于不同的设计要求, 只需修改程序中的参数, 运行后即可得到相应的阶数和截止频率, 避免了复杂的运算及查表, 因此, 用MATLAB 可以简化模拟滤波器的设计。利用MATLAB 不仅可以设计巴特沃思滤波器而且也可以设计切比雪夫滤波器等, 设计简单、直观。
参考文献:
[1]周浩敏. 信号处理技术基础[M ]. 北京:北京航空航天大学出版社, 2001.
[2]邵朝, 阳亚芳, 卢光跃. 数字信号处理[M ]. 北京:北京邮电大学出版社, 2004.
[3]韩利竹, 王华. MATLAB 电子仿真与应用[M ]. 北京:国防工业出版社, 2003.
[4]陈桂明, 张明照, 戚红雨. 应用MATL AB 语言处理数字信号与数字图像[M ]. 北京:科学出版社, 2000. 145-153.
[5]刘卫国, 陈昭平, 张颖. MATLAB 程序设计与应用[M ]. 北京:高等教育出版社, 2002. 42-96.
(下转第74页)
山东交通学院学报 2004年9月 第12卷74
Discussion on Evaluation Method of Industrial Accident Losses
XUN Jing 1, PAN Guang -feng 2
(1. Pres ide nt Offic e , Shandon Jiaotong Unive rs it y , Ji nan , 250023, China ;
2. C omputer Information Engine ering , Shandong Unive rs ity of Financ e , Jinan , 250014, C hina )
A bstract :On the basis of using the evaluation criteria and methodology of foreign and domestic r elevant accident losses for reference , this paper briefly describes the classification of the industrial accident losses , and puts for ward the division standards and specific evaluation methods of dir ect and indirect economic losses of our country ' s enterprises . Also , it studies and discusses the evaluation methods of value c onversion , which the non -economic losses such as life or health etc . cannot directly be measured by the money in the accident losses , and proposed some evaluation methods of the non -economic losses .
Key words :accident loss classification ; ec onomic loss ; non -economic loss ; value conversion ; evaluation method
(责任编辑:宋旭红)
(上接第65页)
Design of Analog Filter Based on MATLAB
JIANG Chun -ling 1, SHI Ling 2
(1. Depar tment of Physic s , Taishan Unive rs ity , Tai ' an , 271021, Shandong , C hina ;
2. De partment of Informati on Engineer ing , Shandong Jiaotong Uni ver sity , Jinan 250023, Shandong , C hina )
A bstract :The analog filter is the important unit of modern measur ement and contr ol system , but the traditional method has a very tedious design process . This article compares the traditional method with the MATLAB programming method , studies the design of using MATLAB to realize of the Butterworth filter . As long as changing the relevant para meters in the pr ograms , it is very easy to realize the design of lo w pass , high pass , band pass and band stop filter , which simplifies the design of the analog filter .
Key words :MATLAB ; design ; analog filter
(责任编辑:郎伟锋)