基于Matlab的无失真模拟滤波器设计

2009-05-12 03:14胡春筠陆建强
现代电子技术 2009年5期
关键词:低通滤波器

胡春筠 蔡 坤 陆建强 代 芬

摘 要:介绍用Matlab设计出一个由低通、带阻、相移滤波器构成的无失真模拟滤波器方法。分别给出各个滤波器的设计过程、仿真结果、实际电路图,并在最后给出了经过无失真滤波器后输出信号的眼图。眼图结果表明,无失真滤波器的幅频、相频特性良好。说明用Matlab设计模拟滤波器简单、方便、有效,是一个在滤波器设计方面很有力的工具。

关键词:Matlab;模拟滤波器;低通滤波器;带阻滤波器;相移滤波器

中图分类号:TN713文献标识码:B

文章编号:1004-373X(2009)05-087-03

Design of Non-distortion Analog Filter Based on Matlab

HU Chunyun,CAI Kun,LU Jianqiang,DAI Fen

(South China Agriculture University,Guangzhou,510640,China)

Abstract:This paper introduces the design of a non-distortion analog filter composed of low-pass,band-stop and phase-shift filters using Matlab.The paper also describes the design process,simulation result,practical circuit diagram of each filter respectively.Finally the eye-diagram of the output signal of the non-distortion analog filter is shown,which indicates that the characteristics of the amplitude-frequency and the phase-frequency of the non-distortion analog filter are good.The result indicates that it′s simple,convenient,effective to use Matlab to design an analog filter and Matlab is powerful tool in designing filters.

Keywords:Matlab;analog filter;low-pass filter;stop-band filter;phase-shift filter

0 引 言

模拟滤波器的设计一般包括两个方面:根据技术指标即滤波器的幅频特性确定滤波器的传递函数H(s);设计实际网络实现这一传递函数。设计滤波器H(s)的关键是找到逼近函数,目前已有多种逼近函数。然而,不论哪种逼近函数都需要进行非常繁琐的计算,还要根据计算结果进行查表。

Matlab语言是一种简单、高效的高级语言,是一种内容丰富、功能强大的分析工具,其应用范围几乎覆盖了所有的科学和工程计算领域。Matlab中提供了丰富的用于模拟滤波器设计的函数,通过编程可以很容易实现低通、高通、带通、带阻滤波器,并能画出滤波器的幅频、相频特性曲线,大大简化了模拟滤波器的设计[2-4]。在此介绍了用Matlab设计实现一个无失真模拟滤波器,并给出了幅频、相频特性的仿真结果和信号通过无失真滤波器后的眼图。

1 基于Matlab的无失真滤波器设计

设计要求:一个频率为8 kHz数字基带信号经过数/模(D/A)转换后得到一个模拟信号,将该模拟信号输入无失真滤波器,要求在8 kHz频率处衰减为-6 dB;在16 kHz频率(截止频率)之后衰减达到-60 dB以上。这样做的目的是使该模拟信号经过无失真滤波器后,抑制谐波干扰,减小截止频率后波形的起伏。

无失真滤波器由三部分组成,依次为低通滤波器、带阻滤波器、相移电路。其中低通滤波器的作用是通过8 kHz以内的低频信号;带阻滤波器的作用是抑制16 kHz信号,它与前面低通滤波器级联后能使16 kHz之后信号的衰减达到-60 dB以上,有效地抑制各次谐波干扰,并减小16 kHz之后波形的起伏;相移电路的作用是补偿前面两级电路的相位偏移,使得整个无失真滤波器的相位特性成为一条直线。

1.1 低通滤波器设计

低通滤波器采用巴特沃斯型滤波器,因为它具有较平坦的幅频特性,相频特性线性较好,常作为滤波器的初级。在Matlab中,用[b,a]=butter(n,wn,‘s)语句来实现巴特沃斯滤波器的设计。其中,[b,a]是滤波器传递函数多项式的系数;n为滤波器的阶数;wn为3 dB处的角频率;‘s表示模拟滤波器的。

在该设计中, 采用8阶巴特沃斯滤波器,-3 dB处的频率为8 kHz。主要程序如下:

fc=8000;%8 000 Hz为-3 dB处的频率

[b1,a1]=butter(8,fc*2*pi,′s′);%采用8阶巴特沃斯滤波器

w=linspace(0,30000,100000);%频率范围设为0~30 kHz

h1=freqs(b1,a1,w*2*pi);%求出低通滤波器在30 kHz内的频率特性

m1=abs(h1);%求出低通滤波器在30 kHz内的幅频特性

A1=20*log10(m1);%幅频特性以dB为单位表示

p1=unwrap(angle(h1));%求出低通滤波器在30 kHz内的相频特性

最终画出低通滤波器的幅频、相频特性如图1(a)所示。实际电路采用由Max291芯片来实现巴特沃斯滤波器,它相当于8阶巴特沃斯滤波器,如图1(b)所示。

图1 低通滤波器的幅频、相频特性和实际电路

1.2 带阻滤波器设计

带阻滤波器(又称陷波器)的作用是抑制某一频率信号而通过其他频率的信号。在Matlab中用[b,a]=butter(n,Wn,′stop′,′s′)语句来实现带阻滤波器,其中[b,a]是滤波器传递函数多项式的系数;n为滤波器的阶数;wn=[fl*2*pi fu*2*pi]分别为阻带低端-3 dB和高端-3 dB处的角频率;‘s表示模拟滤波器的。主要程序如下:

f0=16000;%带阻滤波器的中心频率,即被抑制的频率

Q=0.7;%品质因素,可以根据仿真结果调整Q的取值,使得仿真的幅频特性满足设计要求

fl=8000;%阻带低端-3 dB处的频率固定为8 000 Hz,这样在和上面的低通滤波器级联后8 000 Hz处的衰减就可以达到-6 dB,满足设计要求

fu= f0*(1/(2*Q)+sqrt(1+1/(4*Q^2)));%根据中心频率f0和Q值确定阻带高端-3 dB处频率fu

wn=[fl*2*pi fu*2*pi];%得到阻带低端-3 dB、高端-3 dB处的角频率

[b2,a2]=butter(2,wn,′stop′,′s′);%阶数为2阶,与实际电路中采用的二阶带阻滤波器相对应

与求低通滤波器的幅频、相频特性类似,带阻滤波器的幅频、相频特性如图2(a)所示。在该设计中,实际电路采用的是VCVS型二阶带阻滤波器如图2(b)所示。电阻R1,R2,R3,电容C1的取值需要确定,它们的计算公式可以通过Matlab编程来得到,最终根据计算结果选择相应的标称值。

图2 带阻滤波器的幅频、相频特性和实际电路

1.3 低通滤波器与带阻滤波器的级联

将前面设计的低通与带阻滤波器进行级联,使得级联以后电路的幅频特性能满足设计要求,即在8 kHz频率处的衰减为-6 dB;16 kHz频率(截止频率)之后的衰减达到-60 dB以上。若不能达到要求,则根据仿真结果,不断修改带阻滤波器中的Q值,直到满足设计要求为止。在Matlab 中,通过conv函数来实现两个电路的级联。主要程序如下:

b3=conv(b1,b2);

a3=conv(a1,a2);%b3、a3为低通和带阻滤波器级联后传递函数多项式系数

与求低通滤波器的幅频、相频特性类似,级联电路的幅频、相频特性如图3所示。可见,当Q取0.7时,幅频特性满足设计要求,但相频特性在8 000 Hz以内不是一根直线,为了使输出信号不至于失真,必须加上一级相移滤波器,使总的相移特性成为一条直线。

图3 低通和带通滤波器级联后的幅频、相频特性

1.4 相移滤波器设计及无失真滤波器的相频特性

在该设计中,采用的是一阶反相增益全通滤波电路,它的传输函数为:

H(s)=-s+1RCs+1RC

电路图如图4所示。将低通、带阻、相移电路进行级联构成无失真滤波器。在Matlab中,可以通过编程的方法得到相移、无失真滤波器的相频特性曲线。

图4 相移滤波器的实际电路

主要程序如下:

R=34000;%选定R为34 000 Ω

c1=8.20e-10;%电容值选定为820 pF

b4=[-c1* R 1];

a4=[c1* R 1];%根据H(s)得到相移滤波器的传递函数多项式系数b4,a4.

b=conv(b3,b4);

a=conv(a3,a4);

%b,a为无失真滤波器的传递函数多项式系数,其中b3,a3为低通和带阻滤波器级联后传递函数多项式系数

最终求出的相位曲线如图5所示。可以看出,无失真滤波器的相频特性为一条直线。

将各部分的实际电路进行级联,得到无失真滤波器的实际电路,该无失真滤波器的输入模拟信号和输出信号眼图如图6所示。从图中可以看出,眼图迹线清晰。眼睛大且端正,眼睛之间的交点清晰。说明该无失真滤波器的幅频、相频特性良好,可以达到设计要求。

图5 相移和无失真滤波器的相频特性

图6 输入信号和输出信号的眼图

2 结 语

使用Matlab设计模拟滤波器,既简单方便,又避免了复杂的运算和查表。通过仿真可以很直观地看出参数修改后的频率响应曲线,该设计可以满足系统设计的要求,避免了硬件电路反复调整的麻烦,大大提高了工作效率,且Matlab不但可以用于模拟滤波器的设计,还可以用于FIR,IIR等数字滤波器的设计,是一个在滤波器设计方面很有力的工具。

参考文献

[1]姜春玲,史玲.基于Matlab的模拟滤波器的设计[J].山东交通学院学报,2004,12(3):63-65.

[2]马兴义,杨立群.Matlab 6 应用开发指南[M].北京:机械工业出版社,2001.

[3]刘卫国,陈昭平,张颖.Matlab程序设计与应用[M].北京:高等教育出版社,2002.

[4]韩利竹,王华.Matlab电子仿真与应用[M].北京:国防工业出版社,2003.

[5]李广林,王亚聪.MAX29系列数字滤波器的使用方法[J].现代通信,1997,29,8:29-30.

[6]冯已引.开关电容滤波器MAX291/292/295/296的特性与应用[J].集成电路与应用,1996(5):18-20.

[7]约翰逊 D E,约翰逊 J R,穆尔H P.有源滤波器精确设计手册[M].李国荣,译.北京:电子工业出版社,1984.

[8]闫晓艳,傅丰林,陈健,等.FIR数字滤波器的设计及其在Matlab中的仿真实现[J].电子科技,2004(5):43-45.

[9]张岳,张玉.利用Matlab设计巴特沃斯数字滤波器[J].本溪冶金高等专科学校学报,2003,5(3):18-20.

猜你喜欢
低通滤波器
切比雪夫Ⅱ型模拟高通滤波器的设计及实现*
基于切比雪夫I型低通滤波器设计IIR数字带通滤波器*
IIR数字滤波器设计中频率转换探究
基于瞬时无功理论的谐波检测中低通滤波器的改进
高清标清过渡图像生成方法的研究
基于电流环相位裕度和补偿特性的静止无功发生器低通滤波器与调节器参数设计方法
非等纹响应低通滤波器研究
后置低通滤波器对冲击负荷电能计量的影响
点火电路中低通滤波器的接地对其性能的影响
基于TMS320F28035CLA的IIR低通滤波器设计