1绪论此部分就本次课程设计所用相关知识进行简要介绍。主要包括滤波器的相关知识及仿真软件MATLAB的相关知识。1.1滤波器知识简介(1)滤波器功能及分类滤波器主要功能是对信号进行处理,保留信号中的有用成分,去除信号中的无用成分。其按处理的信号可分为数字滤波器(DigitalFilter,DF)和模拟滤波器(AnalogFilter,AF),按频域特性分为低通、高通、带通、带阻滤波器,按时域特性可分为有限长冲激响应(FIR)滤波器和无限长冲激响应(IIR)滤波器。(2)模拟滤波器设计理论模拟滤波器的理论和设计方法已发展得相当成熟,且有若干典型的模拟低通滤波器的设计原型可供选择,如巴特沃斯(Butterworth)滤波器、切比雪夫(Chebyshev)滤波器、椭圆(Ellips)滤波器、贝塞尔(Bessel)滤波器等。这些滤波器各有特点,巴特沃斯滤波器具有通带内最平坦且单调下降的幅频特性;切比雪夫滤波器的幅频特性在通带或阻带内有波动,可以提高选择性;贝塞尔滤波器通带内有较好的线性相位特性;而椭圆滤波器的选择性相对前三种是最好的。模拟低通滤波器的设计是最基本的,而高通、带通、带阻滤波器则可利用频率转换的方法由低通滤波器映射而得到。模拟滤波器的设计是根据一组设计规范来设计模拟系统函数,使其逼近某个理想滤波器的特性。其中可以由幅度平方函数确定系统函数。下面介绍两种常用的低通滤波器特性。一般以低通滤波器为基础来讨论逼近函数,而高通、带通、带阻滤波器则可用变换方法有低通滤波器映射而得到。一种是巴特沃斯低通逼近,另一种是切比雪夫低通逼近。本设计中选用第一种方法巴特沃斯低通逼近。由模拟低通滤波器系统函数确定模拟高通滤波器系统函数的方法如下:①确定低通系统函数,其参考角频率(一般为截止频率)由高通参考角频率(一般为截止频率)选定,一般都选=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);endxlabel('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的模拟高通滤波器。最后利用MATLAB工具箱提供的模拟滤波器的频率响应函数freqs和相关绘图函数求出各响应曲线,以便对滤波器的性能有更为直观的了解和认识。语句描述为:[h,w]=freqs(Bt,At);subplot();plot(w,20*log10(abs(h)));grid;xlabel(‘w/pi’);ylabel(‘频率响应/dB’);title('模拟高通滤波器');至此,整个设计的理论分析阶段完成。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%定义循环,产生不同阶数的曲线switchiicase1,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);endxlabel('w/wc');ylabel('|H(jw)|^2');title('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;%模拟高通滤波器