基于MATLAB的高通滤波器课程设计文档格式.docx
《基于MATLAB的高通滤波器课程设计文档格式.docx》由会员分享,可在线阅读,更多相关《基于MATLAB的高通滤波器课程设计文档格式.docx(12页珍藏版)》请在冰点文库上搜索。
=1的归一化原型低通滤波器;
②在所得到的
中代入变换关系式(
)中,得到高通系统函数
故模拟高通滤波器的实现可由模拟低通滤波器的归一化原型再经频率变换得到。
1.2仿真软件知识简介
1.2.1MATLAB基础知识介绍
MATLAB是一种科学计算软件,主要适用于矩阵运算及控制和信息处理领域的分析设计。
它使用方便,输入简捷,运算高效,内容丰富,并且很容易由用户自行扩展,因此,当前已成为美国和其他发达国家大学教学和科学研究中最常用而必不可少的工具。
MATLAB是“矩证实验室”(MATrixLABoratoy)的缩写,它是一种以钜阵运算为基础的交互式程序语言,专门针对科学﹑工程计算机绘图的需求。
与其他计算机语言相比,其特点是简洁和智能化,适应科技专业人员的思维方式和书写习惯,使得编程和调试效率大大提高。
它用解释方式工作,键入程序立即得出结果,人机交互性能好,深得科技人员喜爱。
特别是数值计算用的最频繁的电子信息类的学科中,已成为每个学生都掌握的工具了。
它大大提高了课程教学﹑解题作业分析研究的效率。
学习掌握MATLAB,也可以说在科学计算工具上与国际接轨。
MATLAB的语言特点为:
起点高;
人机界面合适科技人员;
强大而简易的作图功能;
智能化程度高;
功能丰富,可扩展性强。
MATLAB7.x的工作环境主要有命令窗(CommandWindow)﹑图形窗(figurewindow)和文本编辑器(FileEditor)组成。
MATLAB基本绘图方法中可以根据给出的数据,用绘图命令在屏幕上画出其图形,通过图形对科学计算进行描述。
其中plot命令用来绘制X-Y坐标中的曲线,它是一个功能很强的命令,输入变量不同,可以产生很多不同的结果。
plot(y)表示如果y是一个数组,函数ploty给出线性直角坐标的二位图,以y中元素的下标作为X坐标,y中元素的值作为Y坐标,一一对应画在X-Y坐标平面图上,而且将各点以直线相连。
title命令用来给图加标题。
xlabel,ylabel命令用来给坐标轴加说明。
grid命令用来在图上打上坐标网格线。
同时MATLAB会自动设定所画曲线的颜色和线型。
如果用户对线型的默认值不满意,可以用命令控制线型,也可以根据需要选取不同的数据点的标记。
为了设定线型,在输入变量组的后面,加一个引号,在引号内部放入线型和颜色的标识符,如plot(x,y,’*b’)这样绘出的图线,其数据点处均用*做蓝色标记,而各点之间不再连以直线。
1.2.2MATLAB信号处理工具箱函数介绍
以下就本课程设计所用到的MATLAB函数进行简要介绍。
(1)freqs求模拟滤波器
的频率响应函数。
H=freqs(B,A,w)计算由向量w(rad/s)指定的频率点上模拟滤波器
的频率响应
,结果存于H向量中。
向量B和A分别为模拟滤波器系统
的分子和分母多项式系数。
[H,w]=freqs(B,A,w)计算出M个频率点上的频率响应存于H向量中,M个频率存放在向量w中。
freqs函数自动将这M个频点设置在适当的频率范围。
默认w和M时freqs自动选取200个频率点计算。
不带左端输出向量时,freqs函数将自动绘出幅频和相频曲线。
(2)buttord求最小阶数N的函数
[N,wc]=buttord(wp,ws,Rp,Rs,‘s’)根据滤波器指标wp,ws,Rp,Rs,求出巴特沃斯模拟滤波器的阶数N及频率参数wc,此处wp,ws及wc均以弧度/秒为单位。
其中wp指通带截止频率,ws指阻带截止频率,Rp指通带最大衰减,Rs指阻带最小衰减。
(3)buttap模拟低通滤波器原型设计函数
[z,p,k]=buttap[N]得到[z,p,k]后,可求出滤波器系数B,A。
其中z表示零点,p表示极点和k表示增益。
(4)lp2lp/lp2hp/lp2bp/lp2bs模拟频率变换函数
[Bt,At]=lp2lp(B,A,wo)把单位截止频率的模拟低通滤波器系数B,A变为另一截止频率wo的低通滤波器系数Bt,At。
(5)zp2tf零极点转换至传递函数的函数
[B,A]=zp2tf(z,p,k)由零点、极点、增益求得滤波器的系数B,A。
2任务分析
2.1总体设计思路
本课程设计任务要求设计一个阻带截止频率为200Hz的模拟高通滤波器。
分析题目可知题目只有一个滤波器参数即阻带截止频率,故设计时以此参数为基准,使其尽量逼近设计要求。
由绪论部分提供的模拟滤波器知识及设计分析可得,模拟高通滤波器的实现可通过模拟低通滤波器再经频率变换而实现。
其中模拟低通滤波器可根据已经存在的典型滤波器,如巴特沃斯滤波器等逼近实现,而由低通到高通转换理论依据在绪论部分已经进行了详细的论证,又本设计基于MATLAB仿真软件实现,可利用MATLAB信号处理工具箱提供的各种函数模型实现,故可忽略其中的一些复杂的函数变换,从而简化理论设计和论证。
2.2单元设计思路
本课程设计以巴特沃斯滤波器为原型展开一系列的设计和讨论。
以下部分就设计的各个单元进行详细的分析和论证。
(1)模拟低通滤波器原型设计。
在此单元模块主要依据设计参数完成模拟低通滤波器的原型设计。
模拟原型滤波器指的是截止频率为1的滤波器。
此处的模拟低通滤波器原型以巴特沃斯(Butterworth)低通滤波器为模型进行逼近。
MATLAB信号处理工具箱提供Butterworth模拟低通滤波器原型设计函数buttap,函数调用形式为:
[z,p,k]=buttap(N)
式中,N为butterworth滤波器阶数;
z,p,k分别为滤波器的零点、极点和增益。
又Butterworth低通滤波器的幅度函数只由阶数N控制,假定阶数为1,则语句描述为:
[z,p,k]=buttap[1];
再求解模拟低通滤波器的分子分母系数。
因对模拟滤波器,其相应的系统函数为
即系数关系为:
,
,
故分子分母的系数多项式可由向量B,A表示,又滤波器系数B和A可由零极点转换至传递函数的函数zp2tf求得。
语句描述为:
[B,A]=zp2tf(z,p,k);
最后利用MATLAB工具箱提供的模拟滤波器
的频率响应函数freqs和相关绘图函数求出其传递函数图形。
其语句描述为:
[H,w]=freqs(B,A,n);
magH2=(abs(H)).^2;
holdon;
plot(w,magH2);
end
xlabel('
w/wc'
);
ylabel('
|H(jw)|^2'
title('
Butterworth模拟原型滤波器'
至此,可得到模拟低通滤波器的原型,该滤波器的截止频率为为1。
(2)频率转换,得到模拟高通滤波器。
此单元模块可以利用MATLAB工具箱提供的模拟频率变换函数求得。
即利用函数lp2hp即可由模拟低通滤波器得到模拟高通滤波器。
[Bt,At]=lp2hp(B,A,wc);
其中wc为题设所要求的模拟高通滤波器的阻带截止角频率,即
wc=2*pi*f=2*pi*200=400*pi
至此即得到符合设计参数要求的阻带频率为200Hz的模拟高通滤波器。
的频率响应函数freqs和相关绘图函数求出各响应曲线,以便对滤波器的性能有更为直观的了解和认识。
[h,w]=freqs(Bt,At);
subplot();
plot(w,20*log10(abs(h)));
grid;
xlabel(‘w/pi’);
ylabel(‘频率响应/dB’);
模拟高通滤波器'
至此,整个设计的理论分析阶段完成。
2.3补充说明
此说明部分就以上各设计模块应注意的事项加以阐述。
首先对滤波器的阶数N的选择加以说明。
前面所述的模拟低通滤波器原型设计中,滤波器阶数是我们在编程时任意指定的。
其实它是决定滤波器品质的主要参数之一。
通常在满足性能指标的前提下,阶数应该尽可能小,以满足易于实现、提高运算速度的要求。
而在滤波器阶数和滤波器性能之间存在一定的函数关系,我们通过这一函数关系可以求出满足滤波性能指标的最低阶数。
MATLAB信号处理工具箱中提供了用来计算最小阶数和截止频率的工具函数,如:
[n,wc]=buttord(wp,ws,Rp,Rs,'
s'
)为Butterworth滤波器最小阶数选择函数(式中,wp为通带边界频率,ws为阻带边界频率,单位为rad/s。
Rp,Rs分别为通带波纹和阻带衰减,单位为dB。
函数返回值n为模拟滤波器的最小阶数;
wc为模拟滤波器的截止频率,单位为rad/s)。
因本设计中提供的滤波器参数较少,故忽略了滤波器最小阶数的选择,在结果分析中再对典型阶数进行讨论。
其次是模拟滤波器性能测试的问题。
可从频域、时域两方面分析滤波器特性,其中频域分析可用滤波器的传递函数描述,绘出其幅度和相位曲线,可采用MATLAB信号处理工具箱提供的函数abs给出系统的幅频曲线和angle给出系统的相频曲线;
时域分析可用脉冲(冲激)响应来描述,绘出其脉冲响应和阶跃响应曲线,可分别采用MATLAB信号处理工具箱提供的函数[[y,t]=]impulse(H)给出该系统的模拟脉冲响应和[[y,t]=]step(H)来得到该系统的阶跃响应。
3程序设计
3.1程序编写
结合理论分析阶段的研究,得到该模拟高通滤波器的MATLAB程序如下:
%Butterworth模拟低通滤波器原型设计
n=0:
0.01:
2;
%设定频率点
forii=1:
4%定义循环,产生不同阶数的曲线
switchii
case1,N=2;
case2,N=5;
case3,N=10;
case4,N=30;
end
[z,p,k]=buttap(N);
%调用Butterworth模拟低通滤波器原型函数
[b,a]=zp2tf(z,p,k);
%将零点极点增益形式转换为传递函数形式
[H,w]=freqs(b,a,n);
%按n指定的频率点给出频率响应
magH2=(abs(H)).^2;
subplot(211);
holdon;
plot(w,magH2);
Butterworth模拟低通滤波器原型'
text(1.5,0.18,'
n=2'
)%对不同曲线做标记
text(1.3,0.08,'
n=5'
)
text(1.16,0.08,'
n=10'
text(0.93,0.98,'
n=20'
gridon;
%模拟高通滤波器设计
m=0:
1:
5000;
4
[bt,at]=lp2hp(b,a,200*2*pi);
%由低通原型滤波器转换为截止频率为200Hz的高通滤波器
[Ht,w]=freqs(bt,at,m);
subplot(212);
plot(w,abs(Ht));
w/pi'
text(200,0.28,'
)
text(600,0.12,'
n=4'
text(1000,0.28,'
text(1200,0.10,'
n=30'
%模拟高通滤波器性能
pha=angle(Ht);
%输出系统的相频特性
figure
subplot(2,1,1);
plot(w,20*log10(pha));
grid;
相位/dB'
模拟高通滤波器相频特性'
mag=abs(Ht);
%输出系统的幅频特性
subplot(2,1,2);
plot(w,20*log10(mag));
幅度/dB'
模拟高通滤波器幅频特性'
3.2运行结果
对上述程序在MATLAB7.0环境中仿真,得到如下波形。
其中图1为滤波器幅度平方函数曲线,包括Butterworth模拟低通原型滤波器和模拟高通滤波器。
图2和图3为模拟高通滤波器性能测试图,其中图2表示频域特性包括相频特性和幅频特性,图3表示时域特性包括脉冲响应和阶跃响应曲线。
图1滤波器幅度平方函数曲线
图2模拟高通滤波器相频/幅频特性
3.3结果分析
(1)Butterworth模拟低通原型滤波器
由图1的Butterworth模拟低通原型滤波器幅度平方函数曲线可得随着阶数N的增大曲线的过渡带逐渐变窄,滤波器的性能越接近于直角矩形特性,滤波效果也越好。
(2)模拟高通滤波器
由图1的模拟高通滤波器幅度平方函数曲线同样可得随着阶数N的增大曲线的过渡带逐渐变窄,滤波器的性能越接近于直角矩形特性,滤波效果也越好。
又题设要求其阻带截止频率为200Hz,即wc=2*pi*200≈1256.636rad/s。
又由图3可得当衰减为0.707倍左右时,截止频率为1256.5rad/s左右。
以N=30时进行讨论,对图形进行缩放研究,可得阻带截止频率为1102.5rad/s,衰减为0.02,通带截止频率为1325rad/s,衰减为0.98处。
与理论值存在一定的误差。
由相频曲线得该滤波器为非线性相位,这也和巴特沃斯滤波器的特点相吻合。
由幅频特性曲线得在阻带边界处衰减达100dB,通带内几乎无衰减。
图3
3.4小结
以上是阻带截止频率为200Hz的模拟高通滤波器的设计及实施全过程,由结果分析可知虽然存在一定的误差,相对误差为12.27%,故可认定其基本满足设计要求,此项设计任务完成。
4心得体会
通过这次课程设计,使我掌握了课程设计的基本思路和方法,掌握了课程设计说明书的基本撰写方法,了解了基本的设计思想和设计方法。
同时此次课程设计使我对《数字信号处理原理》这门课程的基础知识和基本理论有了更深的理解和掌握,锻炼了我们综合运用所学知识的能力,并在理论分析设计、计算制图运用标准和规范查阅设计手册与资料以及计算机应用能了等方面得到了初步的训练和提高,培养了我们严谨求实的科学态度。
同时这次课程设计采用分组的形式进行,锻炼了我们的分工合作能力,同时培养了我们的团队意识。
这次课程设计使我进一步熟悉了计算工具软件---MATLAB.并进一步掌握了MATLAB的使用方法.对MATLAB语言的发展和特点有了更深的了解,熟悉其工作环境,并掌握了MATLAB的基本语法,在其应用方面也有了更深的了解,了解了MATLAB程序书写的一般思路及一般步骤,学会了用MATLAB解决复杂信号处理等问题的方法。
使我对MATLAB信号处理工具箱内的模型函数有了深刻的体会和应用。
MATLAB作为一种科学计算软件,有着其独特优势,尤其在科学计算及精确绘图上,与其他计算机语言相比,简洁而且具有智能化,适应我们的思维方式与书写习惯,它使用解析方法工作,直观且简单明了。
人机交互性能好,操作也很简单,在图形描绘上解决手工描绘的各种缺点。
在课程设计的这段时间里,我认为收获还是很多的,不但进一步掌握了数字信号处理的基础知识及一门专业仿真软件的基本操作,还提高了自己的设计能力及动手能力,同时对于模拟滤波器来了个系统的总结。
更多的是让我看清了自己,明白了凡事需要耐心,实践是检验学习的唯一标准。
理论知识的不足在这次课设中表现的很明显。
这将有助于我今后的学习,端正自己的学习态度,从而更加努力的学习。
总之,通过本次课程设计不但让我又学到了一些知识,而且也提高了我的综合能力。
使我在各方面都得到了锻炼,非常感谢我的同组同学,也非常感谢我们的指导老师,使我们这次的课程设计任务圆满完成。
5.参考文献
1刘泉阙大顺主编.数字信号处理原理与实现.北京:
电子工业出版社,2005
2程佩青.数字信号处理教程(第二版).北京:
清华大学出版社,2001
3邹理和.数字信号处理.北京:
国防工业出版社,1985
4罗建军主编.MATLAB教程.北京:
电子工业出版社,2005
5阮浓勇王永利编著.MATLAB程序设计(第1版).北京:
电子工业出版社,2004
6陈怀琛吴大正高西全编著.MATLAB及在电子信息课程中的应用(第二版).北京: