IIR模拟带阻滤波器设计 论文.docx
《IIR模拟带阻滤波器设计 论文.docx》由会员分享,可在线阅读,更多相关《IIR模拟带阻滤波器设计 论文.docx(23页珍藏版)》请在冰豆网上搜索。
IIR模拟带阻滤波器设计论文
编号:
数字信号处理
实训(论文)说明书
题目:
IIR模拟带阻滤波器设计
摘要
滤波是信号处理中一种最基本但十分重要的技术,利用滤波,可以从复杂的信号中提取所需的信号,抑制不需要的信号。
所谓滤波器,就是对已知激励,可以在时间域或频域产生规定响应的网络,要使滤波器能够提取有用信号,要求滤波器对信号与噪声有不同的增益,对有用信号尽量无失真放大,而对噪声尽量衰减。
本次实训的内容是IIR模拟带阻滤波器设计,本文介绍了MATLAB在数字信号处理中的应用以及IIR模拟带阻滤波器的设计方法。
本次实训设计,主要运用了巴特沃斯和切比雪夫滤波器设计方法,并给出了具体的MATLAB程序设计及其仿真结果。
关键词:
滤波;信号;滤波器;MATLAB
Abstract
Filteringisthemostbasicandimportanttechnologyofsignalprocessing.Wecangetthesignalwewantfromthecomplexsignalthroughfiltering.Thefilteriswhichcanhavetheprovisionsofknowingincentiveinthetimedomainorfrequencydomainresponseofthenetwork.Ifthetherearedifferentgaintosignalandnoiseinthefilter,andwithingusefulsignalamplificationasmuchaspossibleandwithouttingdistortionandattenuationofnoiseasfaraspossible,thenthefiltercanextracttheusefulsignal.
This curriculum design is the designing of the IIR band-stop filter. In this paper, the use of MATLAB in Digital Signal Processing and the design method of IIR analog band-stop filter.In this curriculum design,I main use the design method of Butterworth and the design method of Chebyshev, and give some specific MATLAB program and simulation results.
Keywords:
filtering;signal;filter;MATLAB
目录
引言1
1滤波器的基本概念1
1.1滤波器的定义1
1.2滤波器的分类2
2MATLAB简介2
3基于MATLAB的模拟滤波器设计3
3.1模拟低通原型滤波器设计3
3.1.1巴特沃斯模拟低通滤波器的设计3
3.1.2切比雪夫模拟低通滤波器的设计5
3.2模拟带阻滤波器设计7
3.2.1巴特沃斯模拟带阻滤波器的设计8
3.2.2切比雪夫模拟带阻滤波器的设计10
4结论13
谢辞13
参考文献1
引言
滤波是信号处理中一种最基本但十分重要的技术,利用滤波,可以从复杂的信号中提取所需的信号,抑制不需要的信号。
所谓滤波器,就是对已知激励,可以在时间域或频域产生规定响应的网络,要使滤波器能够提取有用信号,要求滤波器对信号与噪声有不同的增益,对有用信号尽量无失真放大,而对噪声尽量衰减。
模拟滤波器的理论和设计方法相当成熟,设计时可以选用典型的模拟滤波器,如巴特沃斯滤波器、契比雪夫滤波器、椭圆滤波器、贝赛尔滤波器等,它们有严格的设计公式和现成的曲线和图表可供参考,巴特沃斯滤波器具有单调下降的幅频特性;契比雪夫滤波器的幅频特性在通带和阻带内有波动,可以提高选择性,贝赛尔滤波器通带内有较好的线性相位特性。
在MATLAB7.0中提供了上述所有滤波器的设计函数,从而大大降低了滤波器的设计难度。
人类正在进入信息化时代,而数字化又是信息技术发展的方向,尽管许多类型信号的处理确实已转移到数字领域,但是,在现代许多复杂高性能系统中模拟电路从根本上己被证明是必需的,在这些应用中,模拟电路的作用都很难甚至不可能被相应的数字电路所取代,因此包括模拟滤波仍是电子信息学科中的工程技术人员必须深入研究的知识,由于滤波器的概念比较抽象,加上其数值计算又比较繁琐,所以需借助好的计算机软件来进行辅助设计,是滤波器研究领域的一个发展趋势。
这样的软件有很多种,其中最具代表性的就是MATLAB语言及其工具箱,其将一个优秀软件包的易用性与可靠性,通用性和专业性,以及一般目的的应用和高深的专业应用近乎完美地集成在一起.并凭借其功能强大,技术先进和应用之深广,使其逐渐成为国际性的计算标准,为世界各地超过20万名科学家和工程师所采用。
利用MATLAB软件,可以使滤波器的设计和实现变得事半功倍,因此,本文借助MATLAB软件来进行应用研究。
本文通过具体的模拟带阻滤波器设计过程,充分说明在MATLAB环境中,模拟滤波器的设计己变得异常简单和高效率,而且结果更为稳定、可靠。
相信随着MATLAB软件在信息技术中的不断推广和使用,将会使科技工程人员从各类萦琐的计算工作中解脱出来,有时间思考和研究更重要的问题,这必将为科技的进步起到巨大的推动作用。
1滤波器的基本概念
1.1滤波器的定义
滤波是信号处理中一种最基本而又重要的技术,利用滤波,可以从复杂的信号中提取所需的信号,抑制不需要的信号。
所谓滤波器,就是对已知激励,可以在时间域或频域产生规定响应的网络,要使滤波器能够提取有用信号,要求滤波器对信号与噪声有不同的增益,对有用信号尽量无失真放大,而对噪声尽量衰减。
1.2滤波器的分类
滤波器一般分为两类:
模拟滤波器和数字滤波器。
从功能上又可分为低通滤波器(LPF)、高通滤波器(HPF)、带通滤波器(BPF)、带阻滤波器(BSF);从实现方法上可分为IIR滤波器和FIR滤波器。
本文主要讨论IIR模拟带阻滤波器。
IIR滤波器,即无限长单位冲击响应滤波器,它有以下几个特点:
(1)单位冲击响应h(n)是无限长的;
(2)系统函数H(z)在有限z平面上有极点存在;
(3)结构上存在着输出到输入的反馈,也就是结构上是递归型的。
带阻滤波器是指能通过大多数频率分量但将某些范围的频率分量衰减到极低水平的滤波器,与带通滤波器的概念相对。
将输入电压同时作用于低通滤波器和高通滤波器,再将两个电路的输出电压求和,就可以得到带阻滤波器,如图1-1所示。
其中低通滤波器的截止频率应小于高通滤波器的截止频率,理想带阻滤波器在阻带内的增益为零。
图1-1带阻滤波器方框图
2MATLAB简介
MATLAB软件是由美国MathWork公司于1984年推出,经过不断的完善与发展,如今已成为覆盖多个学科的国际公认的最优秀的数值计算仿真软件。
MATLAB具有强大的数值计算能力,许多复杂的计算问题只需短短几行代码就能在MATLAB中实现。
作为一个跨平台软件,MATLAB已推出UnixWindowsLinux和Mac等十多个操作系统的版本,大大方便了在不同操作系统平台下的研究工作。
目前基于Windows系统的MATLAB7.0它秉承以往版本的优点并且人机界面友好,非常容易使用。
MATLAB软件具有很强的开放性和适应性,在保持内核不变的情况下MATLAB软件可以针对不同的学科推出相应的工具箱,目前已推出图像处理工具箱,信号处理工具箱,小波工具箱,神经网络工具箱以及通信工具箱等多个学科的专业工具箱,极大方便了不同学科的研究工作。
国内有来越多的科研和技术人员认识到MATLAB的强大作用,并在不同领域内使用MATLAB来快速实现。
充分发挥MATLAB语言的编程效率高、计算与图形出来能力非常强的特点,完成各种计算与图形绘制工作,可使模拟滤波器的设计变得简单快捷,为后继设计打下一个良好的基础。
3基于MATLAB的模拟滤波器设计
目前模拟滤波器的设计,都是先将要设计的滤波器的技术指标(主要是Ωp、Ωs)通过模拟频率变换成模拟低通滤波器的技术指标,并根据这些技术指标设计出低通滤波器的系统函数,然后再根据频率变换关系变成所需滤波器的系统函数。
低通滤波器的传递函数为G(s),幅频响应特性函数为G(jΩ),归一化频率为λ,p=j
,因此其相应归一化的转移函数、幅频响应特性函数分别为G(p)、G(j
);而带阻滤波器的传递函数为H(s),幅频响应特性曲线为H(jΩ),归一化频率为η,η=Ω/Ωp,且赋值变量q=j
,因此其相应的归一化转移函数、幅频响应特性函数分别为H(q)、H(j
),λ和η之间的变换关系成为频率变换关系。
3.1模拟低通原型滤波器设计
3.1.1巴特沃斯模拟低通滤波器的设计
巴特沃斯滤波器具有最平滑的频率响应,在阶段频率以外,频率响应单调下降。
在同袋中是理想的单位相应,在阻带中响应为0。
在阶段频率处有3dB的衰减。
巴特沃斯滤波器出了具有平滑单调递减的频率响应的优点之外,其过渡带的陡峭程度正比于滤波器的阶数。
高阶巴特沃斯滤波器的频率响应近似于理想低通滤波器。
其中,在通带(或称“通频带”)上频率响应幅度等波纹波动的滤波器称为“切比雪夫I型滤波器”;在阻带(或称“阻频带”)上频率响应幅度等波纹波动的滤波器称为“切比雪夫II型滤波器”。
巴特沃斯低通滤波器是将巴特沃斯函数作为滤波器的传递函数,它的平方幅频响应函数可表示为:
(3.1.1-1)
幅频特性和相频特性,设
(3.1.1-2)
则有右边曲线。
当s=jΩ时,上式写成s的函数为
(3.1.1-3)
有2N个极点
(3.1.1-4)
取左半平面的极点(稳定),有
(3.1.1-5)
若令s=jΩ,得稳定的频率响应函数
(3.1.1-6)
巴特沃斯低通滤波器的设计可以按照以下三个步骤进行:
步骤一:
巴特沃斯滤波器的四个指标,即通带截止频率(Wp)、阻带截止频率(Ws)、通带衰减(Rp)、阻带衰减(Rs);
步骤二:
由四个指标计算出参数ε和n;
步骤三:
确定系统传递函数H(s)。
巴特沃斯模拟滤波器的阶次N可以通过MATLAB中的buttord函数确定,此函数的调用格式为:
[N,Wn]=buttord(Wp,Ws,Rp,Rs,’s’)
其中,Wp表示通带截止频率,Ws表示阻带截止频率,Rp表示通带衰减(dB),Rs表示阻带衰减(dB),S表示模拟滤波器,N表示滤波器的阶次,Wn为截止频率。
实训中我没有调用此函数,而是自己按其算法编写成函数调用。
函数定义如下:
function[n]=zll(wp1,wr1,ap,ar);
e=sqrt(10^(0.1*ap)-1);
r=sqrt(10^(0.1*ar)-1);
N=log10(r/e)/log10(wr1/wp1);
n=ceil(N)
其中wp1为巴特沃斯低通滤波器的通带截止频率,wr1为阻带截止频率,ap为通带衰减,ar为阻带衰减,n为阶数。
巴特沃斯模拟滤波器零极增益z、p、k可以通过buttap函数确定,其调用格式为
[z,p,k]=buttap(N)
实训中我也没有调用此函数,而是自己编写其算法,算法如下:
z=[];
p=exp(sqrt(-1)*(pi*(1:
2:
2*n-1)/(2*n)+pi/2)).';
k=real(prod(-p));
3.1.2切比雪夫模拟低通滤波器的设计
巴特沃斯滤波器在通带内幅度特性是单调下降的,如果阶次一定,则在靠近截止频率处,幅度下降很多,或者说,为了使通带内的衰减足够小,需要的阶次N很高,为了克服这一缺点,可采用切比雪夫多项式逼近。
切比雪夫滤波器在通带范围内是等幅起伏的,所以同样的通带衰减,其阶数较巴特沃斯滤波器要小。
可根据需要对通带内允许的衰减量(波动范围)提出要求,如要求波动范围小于1db。
振幅平方函数为
(3.1.2-1)
---有效通带截止频率。
---与通带波纹有关的参量,其大则波纹大。
---N阶切比雪夫多项式。
巴特沃斯滤波器设计中为了某一性能达到标准,迫使滤波数阶数过高,过渡带过宽。
如果将误差均匀地分布在通带或阻带内,可使滤波器的阶数大为减低。
切比雪夫设计的滤波器能做到这一点。
切比雪夫设计的滤波器的幅频平方函数为
(3.1.2-2)
其中
(3.1.2-3)
因此,类似地,切比雪夫低通滤波器的设计可以按照以下三个步骤进行:
步骤一:
切比雪夫滤波器的四个指标,即通带截止频率(Wp)、阻带截止频率(Ws)、通带波纹系数(Rp)、阻带波纹系数(Rs);
步骤二:
由四个指标计算出参数ε和n;
步骤三:
确定系统传递函数H(s)。
切比雪夫模拟滤波器的阶次N可以通过MATLAB中的cheb1ap、cheb2ap函数确定,该函数的调用格式为:
[N,Wn]=cheb1ap(Wp,Ws,Rp,Rs,’s’);
[N,Wn]=cheb2ap(Wp,Ws,Rp,Rs,’s’);
其中Wp表示通带截止频率,Ws表示阻带截止频率,Rp表示通带波纹系数(dB),Rs表示阻带波纹系数(dB),S表示模拟滤波器,N表示滤波器的阶次,Wn为截止频率。
实训中我没有调用此函数,而是自己按其算法编写成函数调用。
函数定义如下:
function[n]=zll2(wp1,wr1,rp,rs);
e=sqrt(10^(0.1*rp)-1);
r=sqrt(10^(0.1*rs)-1);
cosh1=0.5*[log(r/e+sqrt((r/e)^2-1))];
cosh2=0.5*[log(wr1/wp1+sqrt((wr1/wp1)^2-1))];
n=ceil(cosh1/cosh2);
其中wp1表示通带截止频率,wr1表示阻带截止频率,rp表示通带波纹系数,rs表示阻带波纹系数,n为阶数。
切比雪夫模拟滤波器的零极增益z、p、k可以通过cheb1ap和cheb2ap函数确定,其调用格式为
[z,p,k]=cheb1ap(N,Rp)
[z,p,k]=cheb2ap(N,Rs)
实训中我没有调用这两个函数,而是自己按其算法编写成函数调用。
函数定义如下:
function[z,p,k]=zll5(n,rp)
epsilon=sqrt(10^(.1*rp)-1);
mu=asinh(1/epsilon)/n;
p=exp(j*(pi*(1:
2:
2*n-1)/(2*n)+pi/2)).';
p=sinh(mu)*real(p)+j*cosh(mu)*imag(p);
z=[];
k=real(prod(-p));
if~rem(n,2)
k=k/sqrt((1+epsilon^2));
end
function[z,p,k]=zll6(n,rs)
delta=1/sqrt(10^(.1*rs)-1);
mu=asinh(1/delta)/n;
if(rem(n,2))
m=n-1;
z=j./cos([1:
2:
n-2n+2:
2:
2*n-1]*pi/(2*n))';
else
m=n;
z=j./cos((1:
2:
2*n-1)*pi/(2*n))';
end
i=[1:
m/2;m:
-1:
m/2+1];
z=z(i(:
));
p=exp(j*(pi*(1:
2:
2*n-1)/(2*n)+pi/2)).';
p=sinh(mu)*real(p)+j*cosh(mu)*imag(p);
p=1./p;
k=real(prod(-p)/prod(-z));
3.2模拟带阻滤波器设计
目前模拟带阻滤波器的设计,都是先将要设计的滤波器的技术指标(主要是Ωp、Ωs)通过频率变换成模拟低通滤波器的技术指标,并根据这些技术指标设计出低通滤波器的转移函数,然后再根据频率变换关系便成所要设计的带阻滤波器的转移函数。
其设计流程如图3-1所示。
图3-1模拟带阻滤波器设计流程
基本设计思路是:
先指标转化,后滤波器转化,即将指标转化为低通滤波器指标设计低通滤波器转化为带阻滤波器。
设根据已获低通滤波器
如:
(3.2-1)
其中Ωp为3dB截止频率(这里同时也作为指标)。
低通转带阻:
(3.2-2)
在期望通带平滑的情况下,可以使用巴特沃斯滤波器,单在下降斜度大场合,采用切比雪夫滤波器。
总设计流程图如图3-2所示。
图3-2总设计流程图
3.2.1巴特沃斯模拟带阻滤波器的设计
(1)设计流程
在MATLAB中,使用lp2bs函数实现低通模拟原型滤波器至带阻滤波器的频率转换。
该函数的调用格式为:
[bt,at]=lp2bs(b,a,Wo,Bw)
[At,Bt,Ct,Dt]=lp2bs(A,B,C,D,Wo,Bw)
其中,at、bt为带阻滤波器传递函数的分母与分子向量;a,b为模拟低通原型滤波器传递函数系数的分母与分子向量;At,Bt,Ct,Dt为带阻滤波器状态方程的系数矩阵;A,B,C,D为低通原型滤波器状态方程的系数矩阵;Wo为中心频率;Bw为带通滤波器带宽。
(2)matlab程序
clearall;
clc;
wp=input('输入wp=');
wr=input('输入wr=');
ap=input('输入ap=');
ar=input('输入ar=');
f1=input('输入f1=');
f2=input('输入f2=');
w1=2*pi*f1;w2=2*pi*f2;%带阻边界角频率(rad/s)
bw=w2-w1;
wn=sqrt(w1*w2);
wp1=(bw*wp)/(wp^2-wn^2);%带阻指标转化为低通指标
wr1=(bw*wr)/(wr^2-wn^2);
n=zll(wp1,wr1,ap,ar)%阶数n的求解
z=[];%将n值转换成零极增益
p=exp(sqrt(-1)*(pi*(1:
2:
2*n-1)/(2*n)+pi/2)).';
k=real(prod(-p));
[b,a]=zp2tf(z,p,k);
[bt,at]=lp2bs(b,a,wn*2*pi,bw*2*pi);%低通转带阻
[hh,wh]=freqs(bt,at);
plot(wh,abs(hh));
xlabel('w/pi');ylabel('/H(jw)/^2');
title('巴特沃斯模拟带阻滤波器幅频特性曲线');
gridon
(3)运行结果
当输入数据wp=100000,wr=400000,ap=40,ar=10,f1=200,f2=400时,计算出n值为3,运行后波形如图3-3所示。
图3-3巴特沃斯模拟带阻滤波器幅频特性曲线
3.2.2切比雪夫模拟带阻滤波器的设计
(1)设计流程
在MATLAB中,使用lp2bs函数实现低通模拟原型滤波器至带阻滤波器的频率转换。
该函数的调用格式为:
[bt,at]=lp2bs(b,a,Wo,Bw)
[At,Bt,Ct,Dt]=lp2bs(A,B,C,D,Wo,Bw)
其中,at、bt为带阻滤波器传递函数的分母与分子向量;a,b为模拟低通原型滤波器传递函数系数的分母与分子向量;At,Bt,Ct,Dt为带阻滤波器状态方程的系数矩阵;A,B,C,D为低通原型滤波器状态方程的系数矩阵;Wo为中心频率;Bw为带通滤波器带宽。
(2)matlab程序
I型:
clearall;
clc;
wp=input('输入wp=');
wr=input('输入wr=');
rp=input('输入rp=');
rs=input('输入rs=');
f1=input('输入f1=');%带阻下边界频率
f2=input('输入f2=');%带阻上边界频率
w1=2*pi*f1;w2=2*pi*f2;%带阻边界角频率(rad/s)
w0=sqrt(w1*w2);
bw=w2-w1;
wp1=(bw*wp)/(wp^2-w0^2);%带阻指标转化为低通指标
wr1=(bw*wr)/(wr^2-w0^2);
n=zll2(wp1,wr1,rp,rs)%调用函数求n值
[z,p,k]=zll5(n,rp);%将n值转换成零极增益
[b,a]=zp2tf(z,p,k);
[bt,at]=lp2bs(b,a,w0,bw);
[H,w]=freqs(bt,at);
plot(w/pi,abs(H));
xlabel('Frequency(pirad/s)');
ylabel('/H(jw)/');
title('切比雪夫I型模拟带阻滤波器幅频特性曲线');
gridon
II型:
clearall;
clc;
wp=input('输入wp=');
wr=input('输入wr=');
rp=input('输入rp=');
rs=input('输入rs=');
f1=input('输入f1=');%带阻下边界频率
f2=input('输入f2=');%带阻上边界频率
w1=2*pi*f1;w2=2*pi*f2;%带阻边界角频率(rad/s)
w0=sqrt(w1*w2);
bw=w2-w1;
wp1=(bw*wp)/(wp^2-w0^2);%带阻指标转化为低通指标
wr1=(bw*wr)/(wr^2-w0^2);
n=zll2(wp1,wr1,rp,rs)%调用函数求n值
[z,p,k]=zll5(n,rp);%将n值转换成零极增益
[b,a]=zp2tf(z,p,k);
[bt,at]=lp2bs(b,a,w0,bw);
[H,w]=freqs(bt,at);
plot(w/pi,abs(H));
xlabel('Frequency(pirad/s)');ylabel('/H(jw)/');
title('切比雪夫II型模拟带阻滤波器幅频特性曲线');
gridon
(3)运行结果
I型:
当输入数据为wp=1,wr=4,rp=1,rs=40,f1=200,f2=400时,计算出n值为3,运行后波形如图3-4所示。
图3-4切比雪夫I型模拟带阻滤波器幅频特性曲线
II型:
当输入数据为wp=1,wr=4,rp=1,rs=40,f1=200,f2=400时,计算出n值为3,运行后波形如图3-5所示。
图3-5切比雪夫II型模拟带阻滤波器幅频特性曲线
4结论
参考文献
[1]邹理和.数字滤波器.国防工业出版社,1999
[2]胡广书.数字信号处理一一理论·算法·实现.清华大学出版社,1997
[3]黄席椿.高顺全.滤波器综合法设计原理.人民邮电出版社,1998
[4]丁玉美等.数字