资源描述
数字信号处理巴特沃斯模拟低通滤波器报告
———————————————————————————————— 作者:
———————————————————————————————— 日期:
2
个人收集整理 勿做商业用途
《数字信号处理》课程设计报告
设计课题 巴特沃斯模拟低通滤波器
专业班级 08电气信1班
姓 名 *********************
学 号 080705135 080705117 080705125
指导老师 *****
报告日期 2011年11月18日星期五
目录
一、滤波器简介……………………………………………3
1。1模拟滤波器的工作原理…………………………………3
1。2 滤波器的主要技术指标…………………………………4
二、模拟滤波器的设计……………………………………5
2。1 模拟滤波器的设计方法…………………………………6
2。2巴特沃斯滤波器设计原理………………………………..7
2.3函数说明……………………………………………9
三、MATLAB仿真……………………………………………10
3。1 MATLAB简介…………………………………………10
3。2 对巴特沃斯模拟低通滤波器的仿真………………………10
3。3用matlab计算出N,b,a 的值…………………………13
四、总结与反思……………………………………………14
五、参考文献………………………………………………14
六、程序清单………………………………………………14
巴特沃斯模拟低通滤波器
摘要:MATLAB是矩阵实验室(Matrix Laboratory)之意。她不仅具备卓越的数值计算能力,还提供了专业水平的符号计算,文字处理,可视化建模仿真和实时控制等功能。
本文主要基于MATLAB平台,实现信号分析与滤波器的设计.并改变滤波器参数或特性(低通、高通、带通或带阻),实现不同的滤波要求.本设计产生一个连续信号,包含低频,中频,高频分量,对其进行采样,进行频谱分析,使用矩形窗设计不同特性的数字滤波器对信号进行滤波处理,分析所设计滤波器(画出了频率特性曲线),并对信号进行滤波,画出滤波后信号的时域波形和频谱,并对滤波前后的信号进行对比,分析信号的变化,分析的结果表明初步实现了设计目标。
关键词:MATLAB、数字信号处理、巴特沃斯、模拟低通、滤波器
一、滤波器简介
从广义上讲,任何对某些频率(相对于其他频率来说)进行修正的系统称为滤波器。严格地讲,对输入信号通过一定的处理得到输出信号,这个处理通常是提取信号中某频率范围内的信号成分,把这种处理的过程称为滤波。实现滤波处理的运算电路或设备称为滤波器。
在许多科学技术领域中,广泛应用线性滤波和频谱分析对信号进行加工处理,模拟滤波是处理连续信号,数字滤波则是处理离散信号,而后者是在前者的基础上发展起来的。我们知道,无源或有源模拟滤波器是分立元件构成的线性网络,他们的性能可以用线性微分方程来描述,而数字滤波器是个离散线性系统,要用差分方程来描述,并以离散变换方法来分析。这些方程组可以用专用的或通用的数字计算机进行数字运算来实现。因此,数字滤波器的滤波过程是一个计算过程,它将输入信号的序列数字按照预定的要求转换成输出数列。
1。1 模拟滤波器的工作原理
我们知道,模拟滤波器是对模拟信号实行线性滤波的一种线性时不变系统,如图1.1所示。在时域内,它的动态特性可以用系统的单位冲激函数的响应来描述,也就是该滤波系统在任何时刻对输入单位冲激信号=δ(t)的输出响应。这个函数从时域上反映了该滤波系统的传输特性。对于任意输入信号,系统的输出可以卷积表示:
= (1—1)
上式表明在对线性滤波器系统进行时域分析时,采用了叠加原理,先将任意输入信号波形分成不同时间的窄脉冲之和,再分别求出各个脉冲通过滤波器之后的响应,并进行线性叠加从而得到总的输出信号。
模拟滤波器,H(s)
图1.1模拟滤波器原理
在频域分析时,线性滤波器的转移函数等于系统的单位冲激函数的响应的拉普拉斯变换:
(1-2)
很明显,当s=jω,上式就是傅立叶变换的表达式,它反映了滤波器的传输特性对各种频率的响应,也就是滤波器的频率响应函数,它决定着滤波特性.当滤波器输入信号与输出信号的拉普拉斯变换,得
(1-3)
这表明两信号卷积的变换等于各自变换的乘积。在频谱关系上,一个输入信号的频谱,经过滤波器的作用后,被变换成的频谱。因此,根据不同的滤波要求来选定,就可以得到不同类型的模拟滤波器。还可以看出,滤波器的滤波过程就是完成信号与它的单位冲激函数响应之间的数学卷积运算过程。
1.2 滤波器的主要技术指标
滤波器的主要技术指标取决于具体的应用或相互间的相互关系.具体的有最大通带增益(即通带允许起伏);最大阻带增益;通带截止频率;阻带截止频率。如图1.7所示
αdB
0dB
βdB
ω
图1.7 滤波器的主要技术指标
二、模拟滤波器的设计
模拟滤波器的理论和设计方法已经发展的相当成熟,且有若干典型的模拟滤波器供我们选择,如巴特沃斯(Butterworth滤波器。切比雪夫(Chebyshev)滤波器等。这些工作的理论分析和设计方法在20世纪30年代就完成,然而烦琐.冗长的数字计算使它难以付诸实用。直到50年代,由于计算机技术的逐步成熟,求出大量设计参数和图表,这种方法才得到广泛应用。这些典型的滤波器各有特点:巴特沃斯滤波器具有单调下降的幅频特性;切比雪夫滤波器的幅频特性在通带或者阻带有波动发,可以提高选择性。这样根据具体要求可以选择不同类型的滤波器.
模拟滤波器按幅度特征可以分成低通、高通、带通和带阻滤波器。它们的理想幅度特性如图2。1所示,但我们设计滤波器时,总是先设计低通滤波器,再通过频率变换将低通滤波器转换成希望类型的滤波器
带通
带阻
图2.1 模拟滤波器理想幅度特性
低通
高通
2。1 模拟滤波器的设计方法
利用频率变换设计模拟滤波器的步骤为:
(1)给定模拟滤波器的性能指标,如截止频率或上、下边界频率等。
(2)确定滤波器阶数
(3)设计模拟低通原型滤波器.
(4)按频率变换设计模拟滤波器(低通、高通、带通、带阻).
模拟低通滤波器的设计指标有,和,其中和分别称为通带截止频率和阻带截止频率。 是通带Ω(=0-)中的最大衰减系数,是阻带Ω≥的最小衰减系数,和一般用dB表示。对于单调下降的幅度特性,可表示成:
(2—1)
(2-2)
如果Ω=0处幅度已归一化为一,即,和表示为
(2—3)
(2-4)
以上技术指标用图2.2表示,图中称为3dB 截止频率,因,-20
1
0.707
0
图2.2 低通滤波器的幅度特性
滤波器的技术指标给定以后,需要设计一个传输函数,希望其幅度平方函数满足给定的指标和,一般滤波器的单位冲激响应为实数,因此
= (2-5)
如果能由,,,求出,那么就可以求出所需的,对于上面介绍的典型滤波器,其幅度平方函数有自己的表达式,可以直接引用。这里要说明的是必须是稳定的。因此极点必须落在s平面的左半平面,相应的的极点落在右半平面。
2.2巴特沃斯滤波器设计原理
1、基本性质
巴特沃斯滤波器以巴特沃斯函数来近似滤波器的系统函数.巴特沃斯滤波器是根据幅频特性在通频带内具有最平坦特性定义的滤波器。
巴特沃思滤波器的低通模平方函数表示
N=1,2,…… (2—6)
下面归纳了巴特沃斯滤波器的主要特征
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,即得到实际滤波器传输函数。
2.3 函数说明
1 buttord函数
(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 butter函数
(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阶高通滤波器级联。
三 MATLAB仿真
3。1 MATLAB简介
MATLAB软件包括基本部分和专业扩展部分。基本部分包括:矩阵的运算和各种变换、代数和超越方程的求解、数据处理和傅里叶变换、数值积分等等。专业扩展部分称为工具箱.它实际上是用MATLAB的基本语句编成的各种子程序集,用于解决某一方面的专门问题,或实现某一类的新算法。易扩展性是MATLAB最重要的特点,每一个MATLAB用户都可以成为对其有贡献的人。在MATLAB的发展过程中,许多科学家、数学家、工程技术人员用它开发出了一些新的、有价值的应用程序,所有的程序完全不需要使用低层代码来编写。通过这些工作,已经发展起来的工具箱有控制系统、信号处理、图像处理、系统辨识、模糊集合、神经元网络、小波分析等20余个。如果使用MATLAB来开发光学方面的应用程序,在不久的将来,也可能出现专门用来解决光学问题的工具箱
3。2 对巴特沃斯模拟低通滤波器的仿真
设计指标:通带截至频率Wp=11HZ,阻带截至频率为Ws=14HZ,通带衰减不大于0.5DB,阻带衰减不小于40DB,抽样频Fs=100HZ.
%设计巴特沃斯低通滤波器
fp = 11;
fs = 14;
Fs = 100;
wp = 2*pi*fp/Fs;
ws = 2*pi*fs/Fs;
wp = tan(wp/2);
ws = tan(ws/2); % 通带最大衰减为0。5dB,阻带最小衰减为40dB
[N, wn] = buttord(wp, ws, 0。5, 40, 's'); % 模拟低通滤波器极零点
[z, p, k] = buttap(N); % 由极零点获得转移函数参数
[b, a] = zp2tf(z, p, k); % 由原型滤波器获得实际低通滤波器
[B, A] = lp2lp(b, a, wp);
[bz, az] = bilinear(B, A, 。5);
[h, w] = freqz(bz, az, 256, Fs);
subplot(2,3,2);
plot(w, abs(h))
grid;title(’巴特沃斯低通滤波器’)
图3—1 巴特沃斯低通滤波器幅频特
Fs=100;
t=(1:100)/Fs;
s1=sin(2*pi*t*5); %有效信号1
s2=sin(2*pi*t*15); %有效信号2
s3=sin(2*pi*t*30); %有效信号3
s=s1+s2+s3; %有效信号叠加
subplot(2,3,1);
plot(t,s);grid;title(’输入信号')
图3-2 输入信号波形
%对s信号进去滤波
sf=filter(bz,az,s);
subplot(2,3,3);
plot(t,sf);grid;
axis([0 2 —4 4]);title(’输出信号')
图3-3 滤波后输出信号波形
%对s信号求傅里叶变换
S=fft(s,512);
%对sf信号求傅里叶变换
SF=fft(sf,512);
w=(0:255)/256*(Fs/2);
subplot(2,3,4);plot(w,abs(S(1:256)));
axis([0 40 0 60]);grid;title('输入信号幅度谱’)
subplot(2,3,5);plot(w,abs(SF(1:256)));
axis([0 40 0 60]);
grid;title('输出信号幅度谱')
图3—4 输入和滤波后输出信号的幅频特性
3.3 用matlab计算出N,b,a 的值如下:
〉> N
N =
8
〉> bz
bz =
1。0e-006 *
Columns 1 through 9
0。0000 0.0000 0。0003 0。0018 0。0087 0.0315 0。0893 0。2041 0.3826
Columns 10 through 18
0。5952 0。7737 0。8440 0.7737 0.5951 0.3826 0.2040 0.0893 0。0315
Columns 19 through 23
0.0088 0.0018 0.0003 0。0000 0.0000
〉> az
az =
1。0e+003 *
Columns 1 through 20
0。0010 -0。0123 0。0737 —0.2852 0。7984 -1.7180 2。9484 —4.1329 4.8076 -4。6904 3.8638 —2.6970 1。5965 -0.8000 0.3379 -0.1193 0.0348 —0.0083 0.0016 —0.0002
Columns 21 through 23
0。0000 —0。0000 0。0000
四、总结与反思
程序仿真过程中,我们找到了我们要设计的低通滤波器的函数及依据,我们依据设计的输入信号的幅频特性进行滤波器截止频率的不断调节以实现过滤中频和高频的目的,我们通过设置fs和fp的参数值,把低通滤波器的截止频率调节到10Hz,达到低通滤波的目的,另一方面,在频域上,也实现了幅度衰减和滤除中频和高频信号;调试程序过程中我们遇到了输出波形不完整的情况,反复重新设置参数已达到输出目的,发现了滤波器中的函数局部变量发生错误,并马上修改为与输入相应的参数az和bz,总结为滤波要根据输入信号的准确参数.通过这次课程设计学习,我们掌握了matlab的仿真和设计,对低通滤波器设计原理的了解及技术指标的设置。
五 参考文献
[1]《数字信号处理》(第三版)高西全 丁美玉 编著 西安电子科技大学出版社
[2]《MATLAB工具箱应用》 苏金明 张莲花 刘波 编著 电子工业出版社
[3]《精通MATLAB》(升级版)王正林 刘明 编著 电子工业出版社
[4]《数字信号处理及MATLAB实现》 余成波等编著 清华大学出版社
六、程序清单
%巴特沃斯模拟低通滤波器设计
Fs=100;
t=(1:100)/Fs;
s1=sin(2*pi*t*5); %有效信号1
s2=sin(2*pi*t*15); %有效信号2
s3=sin(2*pi*t*30); %有效信号3
s=s1+s2+s3; %有效信号叠加
subplot(2,3,1);
plot(t,s);grid;title('输入信号')
%设计巴特沃斯低通滤波器
fp = 11;
fs = 14;
Fs = 100;
wp = 2*pi*fp/Fs;
ws = 2*pi*fs/Fs;
wp = tan(wp/2);
ws = tan(ws/2); % 通带最大衰减为0。5dB,阻带最小衰减为40dB
[N, wn] = buttord(wp, ws, 0.5, 40, ’s'); % 模拟低通滤波器极零点
[z, p, k] = buttap(N); % 由极零点获得转移函数参数
[b, a] = zp2tf(z, p, k); % 由原型滤波器获得实际低通滤波器
[B, A] = lp2lp(b, a, wp);
[bz, az] = bilinear(B, A, .5);
[h, w] = freqz(bz, az, 256, Fs);
subplot(2,3,2);
plot(w, abs(h))
grid;title('巴特沃斯低通滤波器’)
%对s信号进去滤波
sf=filter(bz,az,s);
subplot(2,3,3);
plot(t,sf);grid;
axis([0 2 -4 4]);title('输出信号’)
%对s信号求傅里叶变换
S=fft(s,512);
%对sf信号求傅里叶变换
SF=fft(sf,512);
w=(0:255)/256*(Fs/2);
subplot(2,3,4);plot(w,abs(S(1:256)));
axis([0 40 0 60]);grid;title('输入信号幅度谱')
subplot(2,3,5);plot(w,abs(SF(1:256)));
axis([0 40 0 60]);
grid;title(’输出信号幅度谱’)
14
展开阅读全文