武汉理工大学电信学院DSP课设Word文档格式.docx
《武汉理工大学电信学院DSP课设Word文档格式.docx》由会员分享,可在线阅读,更多相关《武汉理工大学电信学院DSP课设Word文档格式.docx(16页珍藏版)》请在冰豆网上搜索。
数字滤波与模拟滤波相比数字滤波具有很多突出的优点,主要是因为数字滤波器是过滤时间离散信号的数字系统,它可以用软件(计算机程序)或用硬件来实现,而且在两种情况下都可以用来过滤实时信号或非实时信号。
尽管数字滤波器这个名称一直到六十年代中期才出现,但是随着科学技术的发展及计算机的更新普及,数字滤波器有着很好的发展前景,在各个领域中越用越广泛。
关键字:
带通滤波器,数字滤波器,数字信号处理
1数字滤波器简介
1.1数字滤波器的分类
数字滤波器按照不同的分类方法,有许多分类,但总体上可以分为两大类,一类称为经典滤波器,即一般滤波器,特点是输入信号中有用的频率成分和希望滤除的频率成分各占有不同的频带,通过一个合适的选频滤波器达到想要的信号。
例如,当输入信号中含有干扰信号时,如果信号和干扰的频带互不重叠,即可滤除干扰得到想要的信号。
但对于一般滤波器,如果信号和干扰的频带互相重叠,则不能完成对干扰的有效滤除,这时需要另一种所谓的现代滤波器,这些滤波器可按照随机信号内部的一些统计分布规律,从干扰中最佳的提取信号。
从功能上分类,一般数字滤波器可以分为低通、高通、带通、带阻和全通滤波器,此种分类和模拟滤波器是一样的。
另外,数字滤波器从实现的网络结构和单位冲激响应分类,可以分为无限长单位冲击响应滤波器(IIR)和有限长单位冲激响应滤波器(FIR),它们的系统函数分别表示如下:
H(z)=
H(z)=
而本次课程设计就是要求设计一个带通IIR数字滤波器。
1.2数字滤波器的设计方法概述
实际中的数字滤波器设计都是用有限精度算法实现的线性非移变系统,一般的设计内容和步骤包括:
(1)根据实际需要确定数字滤波器的技术指标。
例如滤波器的频率响应的幅度响应和截止频率等等。
(2)用一个因果稳定的离散线性非移变系统的系统函数去逼近这些性能指标。
集体来说,就是用这些指标来计算系统函数H(z)。
(3)利用有限精度算法来实现这个系统函数。
这里包括选择运算结构、进行误差分析和选择合适的字长等。
(4)实际的数字滤波器实现技术,包括采用通用的计算机软件和专用的数字滤波器硬件来实现,或者采用通用或专用的数字信号处理器来实现。
而IIR滤波器设计的方法有两类,经常采用的第一类设计方法是借用于模拟滤波器设计方法来进行的。
其设计的步骤是:
先设计模拟原型滤波器,得到其传输函数
然后将
按某种方法转换成数字滤波器的系统函数H(z),这一类相对来说容易一些。
另一类设计方法是直接在频域或者时域中进行设计,这个需要借助于计算机做一些辅助设计。
2MATLAB简介
2.1MATLAB简介
MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。
MATLAB是matrix&
laboratory两个词的组合,意为矩阵工厂(矩阵实验室)。
是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。
它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。
MATLAB和Mathematica、Maple并称为三大数学软件。
它在数学类科技应用软件中在数值计算方面首屈一指。
MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。
MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。
在新的版本中也加入了对C,FORTRAN,C++,JAVA的支持。
2.2MATLAB主要功能
(1)强大的科学计算机数据处理能力
MATLAB是一个包含大量计算算法的集合。
其拥有600多个工程中要用到的数学运算函数,可以方便的实现用户所需的各种计算功能。
函数中所使用的算法都是科研和工程计算中的最新研究成果,而前经过了各种优化和容错处理。
在通常情况下,可以用它来代替底层编程语言,如C和C++。
在计算要求相同的情况下,使用MATLAB的编程工作量会大大减少。
MATLAB的这些函数集包括从最简单最基本的函数到诸如矩阵,特征向量、快速傅立叶变换的复杂函数。
函数所能解决的问题其大致包括矩阵运算和线性方程组的求解、微分方程及偏微分方程的组的求解、符号运算、傅立叶变换和数据的统计分析、工程中的优化问题、稀疏矩阵运算、复数的各种运算、三角函数和其他初等数学运算、多维数组操作以及建模动态仿真等。
(2)出色的图形处理功能
图形处理功能MATLAB自产生之日起就具有方便的数据可视化功能,以将向量和矩阵用图形表现出来,并且可以对图形进行标注和打印。
高层次的作图包括二维和三维的可视化、图象处理、动画和表达式作图。
可用于科学计算和工程绘图。
新版本的MATLAB对整个图形处理功能作了很大的改进和完善,使它不仅在一般数据可视化软件都具有的功能(例如二维曲线和三维曲面的绘制和处理等)方面更加完善,而且对于一些其他软件所没有的功能(例如图形的光照处理、色度处理以及四维数据的表现等),MATLAB同样表现了出色的处理能力。
同时对一些特殊的可视化要求,例如图形对话等,MATLAB也有相应的功能函数,保证了用户不同层次的要求。
另外新版本的MATLAB还着重在图形用户界面(GUI)的制作上作了很大的改善,对这方面有特殊要求的用户也可以得到满足。
(3)应用广泛的模块集合工具箱
MATLAB对许多专门的领域都开发了功能强大的模块集和工具箱。
一般来说,它们都是由特定领域的专家开发的,用户可以直接使用工具箱学习、应用和评估不同的方法而不需要自己编写代码。
目前,MATLAB已经把工具箱延伸到了科学研究和工程应用的诸多领域,诸如数据采集、数据库接口、概率统计、样条拟合、优化算法、偏微分方程求解、神经网络、小波分析、信号处理、图像处理、系统辨识、控制系统设计、LMI控制、鲁棒控制、模型预测、模糊逻辑、金融分析、地图工具、非线性控制设计、实时快速原型及半物理仿真、嵌入式系统开发、定点仿真、DSP与通讯、电力系统仿真等,都在工具箱(Toolbox)家族中有了自己的一席之地。
(4)实用的程序接口和发布平台
新版本的MATLAB可以利用MATLAB编译器和C/C++数学库以及图形库,将自己的MATLAB程序自动转换为独立于MATLAB运行的C和C++的代码。
允许用户编写可以和MATLAB进行交互的C或C++语言程序。
另外,MATLAB网页服务程序还容许在Web应用中使用自己的MATLAB数学和图形程序。
MATLAB的一个重要特色就是具有一套程序扩展系统和一组称之为工具箱的特殊应用子程序。
工具箱是MATLAB函数的子程序库,每一个工具箱都是为某一类学科专业和应用而定制的,主要包括信号处理、控制系统、神经网络、模糊逻辑、小波分析和系统仿真等方面的应用。
(5)应用软件开发(包括用户界面)
在开发环境中,使用户更方便地控制多个文件和图形窗口;
在编程方面支持了函数嵌套,有条件中断等;
在图形化方面,有了更强大的图形标注和处理功能,包括对性对起连接注释等;
在输入输出方面,可以直接向Excel和HDF5进行连接。
2.3MATLAB的典型应用
MATLAB的应用领域十分广阔,典型的应用举例如下:
(1)数据分析
(2)数值与符号计算;
(3)工程与科学绘图;
(4)控制系统设计;
(5)航天工业;
(6)汽车工业;
(7)生物医学工程;
(8)语音处理;
(9)图像与数字信号处理;
(10)财务、金融分析;
(11)建模、仿真及样机开发;
(12)新算法研究开发;
(13)图形用户界面设计。
3设计原理
3.1数字滤波器工作原理
在数字滤波中,我们主要讨论离散时间序列。
如图3.1所示。
设输入序列为x(n),离散或数字滤波器对单位抽样序列
的响应为h(n)。
因
在时域离散信号和系统中所起的作用相当于单位冲激函数在时域连续信号和系统中所起的作用。
图3.1数字滤波器原理
数字滤波器的序列
将是这两个序列的离散卷积,即
。
同样,两个序列卷积的z变换等于个自z变换的乘积,即
,用
代入上式,其中T为抽样周期,则得到
,式中
和
分别为数字滤波器输入序列和输出序列的频谱,而
为单位抽样序列响应
的频谱。
由此可见,输入序列的频谱
经过滤波后,变为
,按照
的特点和我们处理信号的目的,选取适当的
使的滤波后的
符合我们的要求。
本次设计的是带通数字滤波器,则其频谱特性如下图3.2所示:
图3.2带通数字滤波器的频谱
3.2IIR滤波器设计
冲激响应不变法的设计原理是利用数字滤波器的单位抽样响应序列H(z)来逼近模拟滤波器的冲激响应g(t)。
按照冲激响应不变法的原理,通过模拟滤波器的系统传递函数G(s),可以直接求得数字滤波器的系统函数H(z),其转换步骤如下:
1)利用ω=ΩT(可由关系式
推导出),将
,
转换成
,而
不变;
2)求解低通模拟滤波器的传递函数G(s);
3)将模拟滤波器的传递函数G(s)转换为数字滤波器的传递函数H(z)。
尽管通过冲激响应不变法求取数字滤波器的系统传递函数比较方便,并具有良好的时域逼近特性,但若G(s)不是带限的,或是抽样频率不高,那么在
中将发生混叠失真,数字滤波器的频率响应不能重现模拟滤波器的频率响应。
只有当模拟滤波器的频率响应在超过折叠频率后的衰减很大时,混叠失真才很小,此时采样脉冲响应不变法设计的数字滤波器才能满足设计的要求,这是冲激响应不变法的一个严重的缺点。
由于
的频率映射关系是根据
推导的,所以使jΩ轴每隔
,便映射到单位圆上一周,利用冲激响应不变法设计数字滤波器时可能会导致上述的频域混叠现象。
为了克服这一问题,需要找到由s平面到z平面的另外的映射关系,这种关系应保证:
(1)s平面的整个jΩ轴仅映射为z平面单位圆上的一周;
(2)若G(s)是稳定的,由G(s)映射得到的H(z)也应该是稳定的;
(3)这种映射是可逆的,既能由G(s)得到H(z),也能由H得到G(s);
(4)如果
,那么
双线性Z变换满足以上4个条件的映射关系,其变换公式为
,双线性Z变换的基本思路是:
首先将整个s平面压缩到一条从–π/Ts到π/Ts的带宽为2π/Ts的横带里,然后通过标准的变换关系
将横带变换成整个z平面上去,这样就得到s平面与z平面间的一一对应的单值关系。
在MATLAB中,双线性Z变换可以通过bilinear函数实现,其调用格式为:
[Bz,Az]=bilinear(B,A,Fs);
其中B,A为模拟滤波器传递函数G(s)的分子分母多项式的系数向量,而Bz,Az为数字滤波器的传递函数H(z)的分子分母多项式的系数向量。
IIR数字滤波器经典设计法的一般步骤是:
(1)根据给定的性能指标和方法不同,首先对设计性能指标中的频率指标进行转换,转换后的频率指标作为模拟滤波器原型设计性能指标。
(2)估计模拟低通滤波器最小阶数和边界频率,利用MATLAB工具函数buttord、cheb1ord等。
(3)设计模拟低通滤波器原型,利用MATLAB工具函数buttap、cheb1ap等。
(4)由模拟低通原型经频率变换获得模拟滤波器(低通、高通、带通、带阻),利用MATLAB工具函数lp2lp、lp2hp、lp2bp、lp2bs。
(5)将模拟滤波器离散化获得IIR数字滤波器,利用MATLAB工具函数bilinear。
设计IIR滤波器时,给出的性能指标通常分为数字指标和模拟指标两种。
数字性能指标给出通带截止频率
,阻带截止频率
,通带衰减
,阻带衰减
等。
数字频率
和
的取值范围为0~π,单位:
弧度,而MATLAB工具函数常采用标准化频率,
的取值范围为0~1。
MATLAB使用[n,Wn]=buttword(Wp,Ws,Rp,Rs);
[n,Wn]=buttword(Wp,Ws,Rp,Rs,’s’),来计算滤波器所需的最小阶数。
参数如下:
(频率单位为rad/s)
Wp:
通带截至频率,
Ws:
阻带截至频率,
rp:
通带允许的最大衰减,
rs:
阻带应达到的最小衰减,
N:
滤波器所需最小阶数,
Wn:
滤波器的截至频率(3DB带宽截至频率),
对模拟滤波器阶数计算必须指定s,数字滤波器无需指定。
在确定了模拟滤波器的阶数后,就进行模拟低通滤波器的原型设计。
函数BUTTER用于Butterworth滤波器设计,调用格式:
[b,a]=butter(n,
’s’)
[b,a]=butter(n,
’ftype’,’s’)
其中,n为滤波器阶数;
为滤波器截止频率,‘s’为模拟滤波器,缺省时为数字滤波器。
‘ftype’滤波器类型:
‘high’为高通滤波器,截止频率
;
‘stop’为带阻滤波器,
=
(
);
‘ftype’缺省时为低通或带通滤波器。
4实验源程序及其运行结果
4.1实验MATLAB程序
本次课程设计主要是要求设计一个中心频率为500Hz,带宽为400Hz的IIR数字带通滤波器,那么根据之前的设计原理及其设计步骤主要有两种方法如下:
一种是巴特沃斯带通滤波器,一种是切比雪夫滤波器,可得以下MATLAB的程序语句,其具体依次如下:
巴特沃斯滤波器:
fs=2000;
%抽样频率为2000HZ
wp=[300700]*2/fs;
ws=[250750]*2/fs;
%设置通带为400HZ,中心频率为500HZ
rp=3;
rs=40;
%通带衰减3dB,阻带衰减为40dB
[N,Wn]=buttord(wp,ws,rp,rs);
%性能指标得到模拟巴特沃斯滤波器的最小阶数8
[b,a]=butter(N,Wn,'
bandpass'
);
%得到数字滤波器
[H,w]=freqz(b,a);
%离散系统频响特性的函数freqz(),默认频率等分点为512个
subplot(2,1,1)
plot(w*fs/(2*pi),abs(H));
gridon;
%H是一个虚数。
幅频响应
xlabel('
频率/HZ'
ylabel('
幅度/DB'
title('
IIR带通滤波器'
subplot(2,1,2)
plot(w*fs/(2*pi),angle(H));
%相频响应
相位/度'
4.2运行结果
通过在MATLAB软件中运行上面的语句,可得如下的幅频和相频图:
图4.1巴特沃斯带通滤波器幅频和相频响应
4.3分析总结
通过运行MATLAB,得出图4.1的图形,在某种程度上已经说明完成了本次课程设计的基本要求,设计要求中提到中心频率为500HZ,带宽为400HZ。
考虑到实际过程中带通滤波器有一定的线性失真,在300HZ--700HZ的通带左右各设置了50HZ的过渡带,图形中也比较明确的说明了这一点,所以总体上来说,本次课程设计基本上达到了要求,比较成功。
巴特沃斯滤波器的频率特性无论在通带与阻带都随频率而单调变化,因而如果在通带边缘满足指标,则在通带内肯定会有富裕,也就是会超过指标的要求,因而并不经济
5心得体会。
这次课程设计主要的一点是时间有些仓促,主要是是在元旦放假之后就马上搞这个,觉得有些赶。
当然,在这次课程设计中,也遇到了蛮多的问题。
主要有以下几点:
一、对课本知识了解的不是很透彻,也是这时本次课程设计中最重要的一点,也是我们关注最多的一点。
因为我们要设计的题目的原理就在书上,这次课程设计就是一次书上知识的大综合。
它在某种程度上也反映了我们对书上知识的了解程度以及对知识的运用能力,而且还锻炼了我们的动手能力和发现并解决问题的能力。
二、幸运的是这次课程设计不需要我们像模电和数电一样,焊制实物电路板,只是要求我们能够用matlab软件运行一下,得出其结果图就行了。
但是在平时的学习中并没接触到这个软件,这就有待我们好好的重头开始学习它了。
三、设计说明书的书写格式显得尤为重要。
由于不同的老师对课程设计说明书的要求都不大一样,有的要求很严格,哪怕出一点小问题都要被退回来;
而有的比较松一点,没有过分计较。
这次老师没给范文,只对部分要注意的地方强调了一下。
而我们显然做得不太尽人意。
不过,始终相信一句话:
“一个耕耘,一分收获。
”在这次强化训练中也获益匪浅,只懂理论知识是远远不够的,把理论和实践联合起来才是硬道理,这样才能更好的服务自己,服务社会。
直到这时,才想起“书到用时方恨少”,于是重拾课本,对要用的知识重新梳理一遍,遇到不懂得地方先是苦思冥想,再请教同学,然后上网查一下相关的资料,直到搞懂为止。
但是,时至今日,这次课程设计也基本上完成了,但是还有蛮多问题值得探讨。
这次课程设计在某种程度上,给自己增长了些许见识,以后这种课程设计还多的是,我们就要更加的对它重视,并能够认真的完成。
参考文献
[1]刘泉,阙大顺.数字信号处理原理与实现(第2版).电子工业出版社,2009.06
[2]陈怀琛,吴大正,高正全.MATLAB及在电子信息课程中的应用(第2版).电子工业出版社,2004.05
[3]朱习军,张宾,刘尊年,隋思涟.MATLAB信号与图像处理中的应用.电子工业出版社,2009.03
[4]秦襄培.MATLAB图像处理与界面编程宝典.电子工业出版社,2009
[5]求是科技编著.Matalb7.0从入门到精通.人民邮电出版社出版,2007.04
本科生课程设计成绩评定表
姓名
***
性别
男
专业、班级
电信1405班
课程设计题目:
课程设计答辩或质疑记录:
1.模拟滤波器数字化有哪些方法?
答:
冲激响应不变法和双线性变换法
2.冲激响应不变法和双线性变换法的优缺点比较
冲激响应不变法使得数字滤波器的h(n)能完全模仿模拟滤波器的系统函数,时域逼近良好,而且模拟频率和数字频率之间成线性关系,因此频率之间不失真。
但它容易造成频率混叠现象。
双线性变换法使得s平面和z平面成一一对应的关系,消除了多值变换,从根本上消除了频谱混叠现象
3.设计数字滤波器的基本方法
答:
数字滤波器指标——指标参数变换——模拟滤波器技术指标——相应模拟滤波器设计——模拟滤波器数字化——数字滤波器
成绩评定依据:
最终评定成绩(以优、良、中、及格、不及格评定)
指导教师签字:
年月日