巴特沃斯滤波器的设计.docx
《巴特沃斯滤波器的设计.docx》由会员分享,可在线阅读,更多相关《巴特沃斯滤波器的设计.docx(15页珍藏版)》请在冰豆网上搜索。
巴特沃斯滤波器的设计
1数字滤波器的设计
1.1滤波器的分类
1.2数字滤波器性能指标
1.3数字滤波器设计方法概述
1.4巴特沃斯滤波器
1.5用冲击响应不变法设计IIR数字低通滤波器
1.6用双线性变换法设计IIR数字低通滤波器
2本次课程设计中相关MATLAB函数
2.1循环结构for语句
2.2buttord函数
2.3butter函数
2.4freqz函数
2.5impz函数
3程序设计及运行结果
4心得体会
5参考文献
5参考文献
[1]阙大顺.数字信号处理学习指导与考研辅导.武汉:
武汉理工大学出版社,2007
[2]陈怀琛.MATLAB及在电子信息课程中的应用(第2版).北京:
电子工业出版社,2003
[3]刘泉.数字信号处理原理与实现(第2版).北京:
电子工业出版社,2009
[4]郑阿奇.MARTLAB实用教程(第2版).北京:
电子工业出版社,2007
[5]EmmanuelC.Ifeachor,BarrieW.Iervis.DigitalSignalProcessing,APractical
Approach(SecondEdition).PublishingHouseofElectronicsIndustry,2003
1数字滤波器的设计
1.1滤波器的分类
按功能划分经典滤波器可分为低通、高通、带通、带阻四种滤波器。
按结构划分经典滤波器可分为递归系统、非递归系统。
按实现方法经典滤波器可分为无限长单位脉冲响应数字滤波器IIR和有限长单位脉冲响应数字滤波器FIR。
1.2数字滤波器性能指标
图1典型模拟低通滤波器幅频特性及其指标描述
Ωp是通带边界频率,Ωc是阻带边界频率,Ωs是3db截止频率。
用ap表示通带最大衰减(或称为通带峰值波纹)
用表示阻带最小衰减(以分贝(dB)表示波纹)
1.3数字滤波器设计方法概述
设计IIR数字滤波器一般有以下两种方法:
1、模拟滤波器:
首先设计一个合适的模拟滤波器,然后将它转换成满足给定指标的数字滤波器,这种方法适合于设计幅频特性比较规则的滤波器,例如低通、高通、带通、带阻等。
2、直接在频域或者时域中进行数字滤波器设计,由于要联立方程,设计时需要计算机作辅助设计。
1.4巴特沃斯滤波器
1、基本性质
巴特沃斯滤波器以巴特沃斯函数来近似滤波器的系统函数。
巴特沃斯滤波器是根据幅频特性在通频带内具有最平坦特性定义的滤波器。
巴特沃思滤波器的低通模平方函数表示
N=1,2,……(式1.4.1)
下面归纳了巴特沃斯滤波器的主要特征
a对所有的N,
。
b对所有的N,
即
c
是Ω的单调下降函数。
d
随着阶次N的增大而更接近于理想低通滤波器。
如下图2所示,可以看出滤波器的幅频特性随着滤波器阶次N的增加而变得越来越好,在截止频率Ωc处的函数值始终为1/2的情况下,通带内有更多的频带区的值接近于1;在阻带内更迅速的趋近于零。
图2巴特沃思低通滤波平方幅频特性函数
2、系统函数
设巴特沃斯的系统函数为Ha(s),则:
3、设计过程
巴特沃思低通滤波技术指标关系式为
ap>-20log|Ha(jΩ)|,Ω<ΩP
as<-20log|Ha(jΩ)|,Ω>Ωs
其中:
Ωp为通带边界频率,Ωs为阻带边界频率。
代入式1.4.1可得:
经过化简整理可得:
取满足上式的最小整数N作为滤波器的阶数。
再将N代入可得:
或
查表求得归一化传输函数H(s),令s/Ωc代替归一化原型滤波器系统函数中的s,即得到实际滤波器传输函数。
1.5用冲击响应不变法设计IIR数字低通滤波器
1、基本思想
使数字滤波器能模仿模拟滤波的特性;
从滤波器的脉冲响应出发,使数字滤波器的单位脉冲响应序列h(n)正好等于模拟滤波器的冲激响应ha(t)的采样值,即
h(n)=ha(nT),H(Z)=ZT[h(n)]
2、设计方法
1由模拟滤波器设计理论得模拟滤波器系统函数Ha(s)。
2取拉氏逆变换得模拟滤波器的单位冲激响应ha(t)。
3进行采样得ha(nT)。
4取Z变换得数字滤波器传递函数H(Z)。
3、优缺点分析
冲激响应不变法使得数字滤波器的h(n)能完全模仿模拟滤波器的ha(t),即时域逼近良好,而且数字频率与模拟频率之间是线性关系,因此频率之间不存在失真。
但是使用冲击响应不变法存在频谱混叠失真,频谱混叠失真会使数字滤波器在ω=附近的频率响应偏离模拟滤波器频响特性曲线,混叠严重时可使数字滤波器不满足阻带衰减指标。
所以,脉冲响应不变法不适合设计高通和带阻滤波器。
1.6用双线性变换法设计IIR数字低通滤波器
1、设计思想
脉冲响应不变法的主要缺点是产生频率响应的混叠失真。
这是因为从S平面到Z平面是多值的映射关系所造成的。
为了克服这一缺点,可以采用非线性频率压缩方法,将整个频率轴上的频率范围压缩到-π/T~π/T之间,再用z=esT转换到Z平面上。
也就是说,第一步先将整个S平面压缩映射到S1平面的-π/T~π/T一条横带里;第二步再通过标准变换关系z=es1T将此横带变换到整个Z平面上去。
这样就使S平面与Z平面建立了一一对应的单值关系,消除了多值变换性,也就消除了频谱混叠现象。
2、双线性变换公式
用双线性变换法直接将模拟滤波器系统函数Ha(s)转换成数字滤波器系统函数H(z)的变换公式为:
3优缺点分析
双线性变换法与脉冲响应不变法相比,其主要的优点是避免了频率响应的混叠现象。
这是因为S平面与Z平面是单值的一一对应关系。
S平面整个jΩ轴单值地对应于Z平面单位圆一周,即频率轴是单值变换关系。
但是双线性变换的这个特点是靠频率的严重非线性关系而得到的,由于这种频率之间的非线性变换关系,产生了新的问题。
首先,一个线性相位的模拟滤波器经双线性变换后得到非线性相位的数字滤波器,不再保持原有的线性相位了;其次,这种非线性关系要求模拟滤波器的幅频响应必须是分段常数型的,即某一频率段的幅频响应近似等于某一常数,不然变换所产生的数字滤波器幅频响应相对于原模拟滤波器的幅频响应会有畸变,
2本次课程设计中相关MATLAB函数
2.1循环结构for语句
基本格式
for循环变量=起始值:
步长:
终止值
循环体
end
步长缺省值为1,可以在正实数或负实数范围内任意指定。
对于正数,循环变量的值大于终止值时,循环结束;对于负数,循环变量的值小于终止值时,循环结束。
循环结构可以嵌套使用。
2.2buttord函数
(1)[N,wc]=buttord(wp,ws,αp,αs)
用于计算巴特沃斯数字滤波器的阶数N和3dB截止频率wc。
其中,调用参数wp,ws分别为数字滤波器的通带、阻带截止频率的归一化值,要求:
0≤wp≤1,0≤ws≤1(1表示数字频率pi)。
当ws≤wp时,为高通滤波器;当wp和ws为二元矢量时,为带通或带阻滤波器,这时wc也是二元向量。
αp,αs分别为通带最大衰减和组带最小衰减(dB)。
N,wc为butter函数的调用参数。
(2)[N,Ωc]=buttord(Ωp,Ωs,αp,αs,‘s’)
用于计算巴特沃斯模拟滤波器的阶数N和3dB截止频率Ωc。
其中,Ωp,Ωs,Ωc均为实际模拟角频率。
说明:
buttord函数使用阻带指标计算3dB截止频率,这样阻带会刚好满足要求,而通带会有富余。
2.3butter函数
(1)[b,a]=butter(N,wc,‘ftype’)
计算N阶巴特沃斯数字滤波器系统函数分子、分母多项式的系数向量b、a。
其中,调用参数N和wc分别为巴特沃斯数字滤波器的阶数和3dB截止频率的归一化值(关于pi归一化),一般是调用buttord
(1)格式计算N和wc。
系数b、a是按照z-1的升幂排列。
(2)[B,A]=butter(N,Ωc,‘ftype’,‘s’)
计算巴特沃斯模拟滤波器系统函数的分子、分母多项式系数向量ba、aa。
其中,调用参数N和Ωc分别为巴特沃斯模拟滤波器的阶数和3dB截止频率(实际角频率),可调用buttord
(2)格式计算N和Ωc。
系数B、A按s的正降幂排列。
tfype为滤波器的类型:
ftype=high时,高通;Ωc只有1个值。
ftype=stop时,带阻阻;此时Ωc=[Ωcl,Ωcu],分别为带阻滤波器的通带3dB下截止频率和上截止频率。
ftype缺省时,若Ωc只有1个值,则默认为低通;若Ωc有2个值,则默认为带通;其通带频率区间Ωcl<Ω<Ωcu。
所设计的带通和带阻滤波器系统函数是2N阶。
因为带通滤波器相当于N阶低通滤波器与N阶高通滤波器级联。
2.4freqz函数
调用格式为:
[H,F]=freqz(B,A,N,Fs)
其中:
B/A提供滤波器系数,B为分子,A为分母;
N表示选取单位圆的上半圆等间距的N个点作为频响输出;
Fs为采样频率,该参数可以省略
H为N个点处的频率响应复值输出向量,其模即为频响幅值曲线幅值20log10(abs(H))DB,其幅角angle(H)即为频响相位曲线相位值。
F为与第N点处对应的频率值f(Hz),如果Fs参数省略时,则频率值w为rad/sample,w=2*pi*f/Fs
2.5impz函数(Impz函数用来求数字滤波器的冲激响应)
(1)[h,t]=impz(b,a),其中,b,a分别为系统传递函数的分子和分母的系数向量;h为系统的冲激响应和t为相应的时间轴量。
(2)[h,t]=impz(b,a,n),用来计算n点冲激响应
(3)[h,t]=impz(b,a,n,Fs),指定冲激相应相应采样点间隔1/Fs,Fs为相对频率,默认为1。
3程序设计及运行结果
(1)设计一个低通巴特沃斯模拟滤波器:
指标如下:
通带截止频率:
=3400HZ,通带最大衰减:
=3dB;
阻带截至频率:
=4000HZ,阻带最小衰减:
=40dB。
解:
利用MATLAB工具箱中提供的设计模拟滤波器的函数:
计算巴特沃斯滤波器阶次和截止频率的buttord函数,计算低通巴特沃斯滤波器的butter函数,计算滤波器频率响应的freqs函数。
MATLAB实现程序如下所示:
>>fp=3400;
>>fs=4000;
>>Rp=3;
>>As=40;
>>[N,fc]=buttord(fp,fs,Rp,As,'s');
>>[B,A]=butter(N,fc,'s');
>>[hf,f]=freqs(B,A,1024);
>>plot(f,20*log10(abs(hf)/abs(hf
(1))))
>>grid;
>>xlabel('f/Hz');
>>ylabel('幅度(dB)');
程序运行结果:
N=
29
fc=
3.4127e+003
其频率特性曲线如下图3所示:
图3巴特沃斯模拟低通滤波器频率特性曲线
(2)模拟低通转换为数字低通滤波器已知一模拟滤波器的系数函数为
分别用冲激响应不变法和双线性变换法将
转换成数字滤波器系统函数
,并图示
和
的幅度相应曲线。
分别取采样频率
=1000Hz和
=500Hz,分析冲激响应法中存在的频率混叠失真和双线性变换法存在的非线性频率失真等。
解:
其MATLAB实现程序如下所示:
>>b=1000;
>>a=[1,1000];
>>w=[0:
1000*2*pi];
>>[hf,w]=freqs(b,a,w);
>>subplot(1,3,1);
>>plot(w/2/pi,abs(hf));
>>grid;
>>xlabel('f/Hz');
>>ylabel('幅度');
>>Fs0=[1000,500];
>>form=1:
2
Fs=Fs0(m);
[d,c]=impinvar(b,a,Fs);
wd=[0:
512]*pi/512;
hw1=freqz(d,c,wd);
subplot(1,3,2)
plot(wd/pi,abs(hw1)/abs(hw1
(1)));
holdon;
end
>>grid;
>>xlabel('f/(Hz)');
>>text(0.52,0.88,'T=0.002s');
>>text(0.12,0.54,'T=0.001s');
>>form=1:
2
Fs=Fs0(m);
[f,e]=bilinear(b,a,Fs);
wd=[0:
512]*pi/512;
hw2=freqz(f,e,wd);
subplot(1,3,3);
plot(wd/pi,abs(hw2)/abs(hw2
(1)));
holdon;
end
>>grid;
>>xlabel('f/(Hz)');
>>text(0.5,0.74,'T=0.002s');
>>text(0.12,0.34,'T=0.001s');
程序运行结果:
图4模拟滤波器到数字滤波器的转换
由图4可见,对冲击响应不变法,抽样频率越高(时间T越小),混频越小;对双线性变换法,无频率混叠,但存在非线性失真。
(3)设计一个10阶的Butterworth滤波器,通带为100~250Hz,采样频率为1000Hz,绘出滤波器的单位脉冲响应。
解:
其MATLAB实现程序如下所示:
>>fs=1000;
>>w=[100,250];
>>wn=w/(fs/2);
>>Nn=512;
>>[b,a]=butter(5,wn);
>>subplot(3,1,1)
>>freqz(b,a,Nn,fs)
>>n=[-10:
80];
>>h=impz(b,a,n);
>>subplot(3,1,3)
>>stem(n,h);
>>xlabel('时间序号N');
>>ylabel('脉冲响应h');
>>title('脉冲响应');
程序运行结果:
图510阶巴特沃斯滤波器