资源描述
燕 山 大 学 课 程 设 计 说 明 书燕山大学课 程 设 计 说 明 书题目:椭圆低通滤波器的设计学院(系):电气工程学院年级专业: 08级精仪2班学 号: 070103020121学生姓名: 高 俊 指导教师: 刘永红 教师职称: 讲 师 燕山大学课程设计(论文)任务书基层教学单位:仪器科学与工程系 指导教师:刘永红 学 号070103020144学生姓名高俊专业(班级)08精仪2班设计题目1椭圆低通滤波器设计设计技术参数 采样频率为100Hz,采样点数100,低频、中频、高频信号频率分别为5Hz、15Hz 、30Hz 设计要求产生一个连续信号,包含低频率,中频,高频分量,对其进行采样,进行频谱分析。设计低通滤波器对信号进行滤波处理,观察滤波后信号的频谱。 (熟悉函数freqz,butter,filter,fft)参考资料数字信号处理方面资料MATLAB方面资料工作计划收集消化资料、学习MATLAB软件进行相关参数计算编写仿真程序、调试指导教师签字 刘永红基层教学单位主任签字说明:此表一式四份,学生、指导教师、基层教学单位、系部各一份。2011年 7月 4日 目 录第一章 摘要4第二章 引言4第三章 基本原理53.1数字滤波器的基本理论53.2椭圆滤波器的特点5第四章 设计过程64.1椭圆滤波器设计结构图64.2设计椭圆数字滤波器的步骤6第五章 程序和仿真图95.1低通滤波器设计程序95.2带通滤波器设计程序105.3高通滤波器设计程序115.4信号的仿真图13第六章 结语14心得体会14参考文献15第一章 摘要滤波器是自动控制、信号处理和通信领域的重要组成部分,广泛地应用于各种系统中。MATLAB语言是一种简单、高效的高级语言,是一种内容丰富、功能强大的分析工具,其应用范围几乎覆盖了所有的科学和工程计算领域。MATLAB中提供了丰富的用于模拟滤波器设计的函数,通过编程可以很容易实现低通、高通、带通、带阻滤波器,并能画出滤波器的幅频特性曲线,大大简化了模拟滤波器设计。本文将通过利用MATLAB滤波滤波器设计函数直接实现椭圆滤波器的设计,找到应用MATLAB来设计椭圆滤波器的方法。介绍了椭圆型滤波器的基本理论和设计思想,给出了基于MATLAB设计低通、带通、高通椭圆型滤波器的具体步骤和利用MATLAB产生一个包含低频、中频、高频分量的连续信号,并实现对信号进行采样。文中还对采样信号进行频谱分析和利用设计的椭圆滤波器对采样信号进行滤波处理,并对仿真结果进行分析和处理。详细介绍了在基于MATLAB设计椭圆滤波器过程中常用到的工具和命令。第二章 引言数字滤波器设计在电子工程、应用数学和计算机科学领域都是非常重要的内容。椭圆滤波器(Elliptic filter)又称考尔滤波器(Cauer filter),是在通带和阻带等波纹的一种滤波器。它比切比雪夫方式更进一步地是同时用通带和阻带的起伏为代价来换取过渡带更为陡峭的特性。椭圆滤波器相比其他类型的滤波器,在阶数相同的条件下有着最小的通带和阻带波动。它在通带和阻带的波动相同,这一点区别于在通带和阻带都平坦的巴特沃斯滤波器,以及通带平坦、阻带等波纹或是阻带平坦、通带等波纹的切比雪夫滤波器。现代生活中,数字信号经过DAC转换获得的模拟信号的例子太多了,如声卡中的语音合成输出,又如试验室中的合成信号发生器等,为了滤除谐波干扰,获得高精度的模拟信号,大多数就采用本文介绍的衰减特性陡峭的椭圆低通滤波器。因此椭圆滤波器具有广泛的应用。 第三章 基本原理 3.1模拟滤波器的基本理论模拟滤波器是电子设备中最重要的部分之一。常用的滤波器有巴特沃斯(Butterworth)和切比雪夫(Chebyshev)及椭圆型(Elliptical)滤波器,其中巴特沃斯和切比雪夫滤波器的传输函数都是一个常数除以一个多项式,为全极点网络,仅在无限大处阻带衰减为无限大,而椭圆函数滤波器在有限频率上既有零点又有极点。零、极点在通带内产生等纹波,阻带内的有限传输零点减少了过渡区,可获得极为陡峭的衰减曲线。也就是说对于给定的阶数和波纹要求,椭圆滤波器能获得较其它滤波器更窄的过渡带宽,就这点而言,椭圆滤波器是最优的。3.2椭圆滤波器的特点椭圆滤波器传输函数是一种较复杂的逼近函数,利用传统的设计方法进行电路网络综合要进行繁琐的计算,还要根据计算结果进行查表,整个设计、调整都十分困难和繁琐。有许多方法都是希望能快速简便地设计并实现椭圆滤波器从而把电子电路设计者从烦琐的模拟滤波器设计中解放出来。本文采用的方法是MATLAB设计出滤波器的传输函数,然后再用通用的可编程滤波器来实现。特点:1、椭圆低通滤波器是一种零、极点型滤波器,它在有限频率范围内存在传输零点和极点。2、椭圆低通滤波器的通带和阻带都具有等波纹特性,因此通带,阻带逼近特性良好。 3、对于同样的性能要求,它比前两种滤波器所需用的阶数都低,而且它的过渡带比较窄。第四章 设计过程4.1椭圆滤波器设计结构图椭圆滤波器设计结构图如图所示:图4.1结构框图4.2设计椭圆模拟滤波器确定模拟滤波器的性能指标:Wp,Ws,Rp,Rs。 设计要求是低通滤波器,需要屏蔽的是15Hz和30Hz的波形,所以可令Wp=5Hz,设Ws=8Hz,Rp40dB,由这些参数可用ellipord函数求的椭圆滤波器的阶数,其程序如下clearWp=5*2*pi;Ws=8*2*pi;Rp=0.1;Rs=40;N, Wn = ellipord(Wp, Ws, Rp, Rs, s) ;%N为椭圆滤波器的阶层,Wn为滤波器的带宽。计算结果为:N=5,Wn= 31.415926535897930,即至少需要5阶椭圆滤波器。4.3模拟滤波器的MATLAB实现和频谱分析 1. Matlab的信号处理工具箱提供了设计椭圆滤波器的函数:ellipord函数和ellip函数。Ellipord函数的功能是求滤波器的最小阶数,其调用格式为:调用格式:N,Wn=ellipord(Wp,Ws,Rp,Rs,s)N-椭圆滤波器最小阶数;Wn为椭圆滤波器的带宽;Wp-椭圆滤波器通带截止角频率;Ws-椭圆滤波器阻带起始角频率;Rp-通带波纹(dB);Rs-阻带最小衰减(dB);Ellip函数的功能是用来设计椭圆滤波器,其调用格式:b,a=ellip(n,Rp,Rs,Wp) b,a=ellip(n,Rp,Rs,Wp,ftype)返回长度为n+1的滤波器系数行向量b和a, 431ftype = high 高通滤波器ftype = low低通滤波器ftype = stop带阻滤波器2.Matlab的信号处理工具箱提供了频谱分析函数:fft函数、filter函数和freqz函数。fft函数filter函数功能:利用IIR滤波器和FIR滤波器对数据进行滤波。格式:y=filter(b,a,x) y,zf=filter(b,a,x) y=filter(b,a,x,zi)说明:filter采用数字滤波器对数据进行滤波,其实现采用移位直接型结构,因而适用于IIR和FIR滤波器。滤波器的系统函数为 432 即滤波器系数a=a0 a1 a2 .an,b=b0 b1 .bm,输入序列矢量为x。这里,标准形式为a0=1,如果输入矢量a时,a01,则MATLAB将自动进行归一化系数的操作;如果a0=0,则给出出错信息。y=filter(b,a,x)利用给定系数矢量a和b对x中的数据进行滤波,结果放入y矢量中,y的长度取max(N,M)。y=filter(b,a,x,zi)可在zi中指定x的初始状态。y,zf=filter(b,a,x)除得到矢量y外,还得到x的最终状态矢量zf。freqz函数功能:离散时间系统的频率响应。格式:h,w=freqz(b,a,n) h,f=freqz(b,a,n,Fs) h=freqz(b,a,w) h=freqz(b,a,f,Fs) freqz(b,a,n)说明: freqz 用于计算数字滤波器H(Z)的频率响应函数H(ej)。h,w=freqz(b,a,n)可得到数字滤波器的n点复频响应值,这n个点均匀地分布在0,上,并将这n个频点的频率记录在w中,相应的频响值记录在h中。要求n为大于零的整数,最好为2的整数次幂,以便采用FFT计算,提高速度。缺省时n =512。 h,f=freqz(b,a,n,Fs)用于对H(ej)在0,Fs/2上等间隔采样n点,采样点频率及相应频响值分别记录在f 和h中。由用户指定FS(以HZ为单位)值。h=freqz(b,a,w)用于对H(ej)在0,2上进行采样,采样频率点由矢量w指定。h=freqz(b,a,f,Fs) 用于对H(ej)在0,FS上采样,采样频率点由矢量f指定。freqz(b,a,n) 用于在当前图形窗口中绘制幅频和相频特性曲线。第五章 程序和仿真图5.1低通滤波器设计程序%连续信号的产生及采样clearFs=100;t=(1:100)/Fs;s1=sin(2*pi*t*5);s2=sin(2*pi*t*15);s3=sin(2*pi*t*30);s=s1+s2+s3;plot(t,s);xlabel(时间(s);ylabel(幅值);grid;%椭圆低通滤波器的设计b,a=ellip(5,0.1,40,5*2/Fs);H,w=freqz(b,a,512);plot(w*Fs/(2*pi),abs(H);xlabel(频率(Hz);ylabel(频率响应图);grid;%对滤波后的信号进行分析和变换sf=filter(b,a,s);plot(t,sf);xlabel(时间 (s);ylabel(幅值);axis(0 1 -1 1);S=fft(s,512);SF=fft(sf,512);w=(0:255)/256*(Fs/2);plot(w,abs(S(1:256) SF(1:256);xlabel(频率(Hz);ylabel(傅立叶变换图);grid;legend(before,after);5.2信号的仿真图1.连续信号产生及采样的仿真图,如下图所示 图5.1连续信号的仿真图2. 椭圆低通滤波器的仿真图图5.2椭圆低通滤波器的仿真图3.信号通过椭圆低通滤波器的仿真图,如下图所示图5.3信号通过椭圆低通滤波器的仿真图注:图中蓝色曲线代表滤波前的幅频曲线,绿线代表滤波后的幅频曲线。第六章 结语模拟滤波器的应用十分广泛,利用Matlab语言,很容易地设计地设计出模拟椭圆滤波器,模拟椭圆滤波器可以用较少的阶数获得很高的选择特性,在相位要求不敏感的场合,如语音信号处理等,适合用模拟椭圆滤波器。在设计过程中可以对比滤波器的特性,随时更改参数,已达到滤波器设计的最优。心得体会通过一周的设计过程,让我感触最深的就是功能的强大性与掌握编程各种函数和语句的重要性。当然首先要了解所要编程运行的对象的原理。在课程设计的过程中,我深深的感受到我们所学的东西太少了,需要学习的东西太多了,真的是学无止境。学习的过程是艰辛的,但是同时也是快乐的,让我们大家朝着自己各自的目标努力奋斗。最后感谢老师给我这次学习的机会,让我发现自己的不足,参考文献 1 谢平、王娜、林洪彪主编. 信号处理原理及应用. 机械工业出版社,2008年 2 陈亚勇等编著.matlab信号处理详解. 人民邮电出版社,2001年3 宁彦卿等译. 电子滤波器设计. 科学出版社. 2008年第 1 页 共 11 页
展开阅读全文