《数字信号处理》上机实验指导书_第1页
《数字信号处理》上机实验指导书_第2页
《数字信号处理》上机实验指导书_第3页
《数字信号处理》上机实验指导书_第4页
《数字信号处理》上机实验指导书_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、PAGE 1 数字信号处理上机实验指导书 北京航空航天大学电子工程系 目录前言1实验一:连续信号的采样3实验二:IIR滤波器的设计.5实验三:FIR滤波器的设计7实验四:用FFT对连续时间信号进行频谱分析.9实验五:卷积和滤波.11附录A:MATLAB系统与语言简介.13附录B:信号处理工具箱函数20参考书目22前 言 自60年代以来,随着计算机和信息学科的飞速发展,数字信号处理(Digital Signal Processing,DSP)技术应用而生并迅速发展,现已形成一门独立的学科体系。当前,我们正在全面地进入数字时代,随着微电子技术的迅速发展,通用的DSP芯片的性能不断提高,而价格持续地

2、下降。以DSP芯片及外围开发设备为主,正在形成一个具有较大潜力的产业与市场。 众所周知,几乎所有的工程技术领域都要涉及到信号问题。这些信号包括电的、磁的、机械的、热的、声的、光的及生物体的等等各个方面。如何在较强的背景噪声下提取出真正的信号或信号的特征并将其应用于工程实际是信号处理技术要完成的任务。因此可以说,信号处理几乎涉及到所有的工程技术领域。 数字信号处理是一门以算法为核心的理论性很强的学科。它是利用数字计算机或专用处理设备,以数值计算的方法对信号进行采集、变换、综合、估值与识别等加工处理,借以达到提取信息和便于应用的目的。数字信号处理技术及设备具有灵活、精确、抗干扰强、设备尺寸小、造价

3、低、速度快等突出优点,这些都是模拟信号处理技术与设备所无法比拟的。近30来年,数字信号处理是紧紧围绕着理论、实现及应用三个方面迅速发展起来的,它以众多的学科为理论基础,其成果又渗透到众多的学科,成为理论与实践并重、在高新技术领域中占有重要地位的新兴学科。 数字信号处理的实现,大体上有如下几种方法:(1) 在通用的微计算机上用软件来实现。软件可由使用者自己编写,也可使用现成的。自IEEE DSP Comm于1979年推出第一个信号处理软件包以来,国外的研究机构、公司也在推出不同语言、不同用途的信号处理软件包。这种实现方法速度较慢,多用于教学与科研。(2) 用单片机来实现。目前单片机的发展速度较快

4、,其功能也很强。依靠单片机的硬件环境配以信号处理软件可用于工程实际,如数字控制、医疗仪器等。(3) 利用专门用于信号处理的DSP芯片来实现。DSP芯片较之单片机有着更为突出的优点,如内部带有乘法、累加器,采用流水线工作方式及并行结构,多总线,速度快,配有适于信号处理的指令等,DSP芯片的问世及飞速发展,为信号处理技术应用于工程实际提供了可能。(4) 利用特殊用途的DSP芯片来实现。现在国际上已推出专门用于FFT、FIR滤波、卷积、相关等专用芯片,其软件算法已在芯片内部用硬件电路实现,使用者给出输入数据,可以在输出端直接得到结果。 在实际应用中,数字信号处理的算法研究是关键。为了使同学们在学习数

5、字信号处理这们课程中,更好地理解和掌握课堂上所学的理论知识,加深对理论的理解,为将来在实际工作中,能够应用理论知识解决实际问题,我们特别选择了如下一些基本的实验,使得同学门通过自己编程上机演练,加深和巩固所学的理论知识。 考虑到学生们的上机的机时有限,我们选择了如下的一些基础实验:1) 连续信号的采样2) FIR滤波器的设计3) 利用FFT算法对信号进行频谱分析4) IIR滤波器的设计5) 卷积和滤波 在本上机指导书中,我们指定的编程语言是 MathWorks公司的MATLAB语言,这是目前国际上在理论研究中普遍采用的一个软件。为方便同学门编程,有关这一软件的简单使用,以及在我们实验中用到的语

6、句和函数,我们将在附录中给出。同学们如果要更进一步地掌握MTLAB语言,可以阅读有关MTLAB语言这方面的书籍。另外,还可以参考周秀芝、卞蓉辉的“信号处理习题演示”软件。 同学们在作完上机实验后,必须提交实验报告。实验报告分为如下三个部分:1. 实验要求和目的2. 实验方案和程序清单3.实验结果和结果分析 实验一 连续信号的采样物理世界中的信号,通常都是连续信号(即模拟信号)。利用数字技术实现信号处理,第一步就是要将连续信号离散化(既对信号的抽样)。那末,在时域抽样后的离散信号与原来的时域连续信号之间有什么样的关系,是我们比较关心的。本实验的第一题中,将看到在不同的抽样率下,离散信号波形与连续

7、信号波形的关系。随着抽样率的提高,抽样信号更容易看出连续信号。由于MATLAB语言无法表示连续信号,因此在本题中要用足够多的采样点来模拟连续信号,同时要注意抽样后数字信号的表示。即以来表示连续信号的自变量,以来表示采样后的信号的自变量,则,为采样频率,而应远远小于。本实验的第二题,是为了分析离散信号与连续信号之间的频谱关系,加深对信号采样定理的理解,了解模拟频谱、数字频谱、以及离散信号被加窗后各自的频谱,从而直观地理解抽样频率对频谱的影响和加窗后对频谱的影响。由此,可以掌握用数字分析的方法对模拟信号进行频谱分析的基本原则(即:如何选择合适信号长度、采样间隔,使得对模拟信号频谱分析的误差最小)。

8、本题中应注意用MATLAB的函数将信号的频谱幅度正确的表达出来。在上面的两道题中,要用到的MATLAB的系统函数有sin(正弦函数),exp(自然指数),为了将结果直观的表达出来,需要用到MATLAB的基本绘图函数plot(x,y),其中参数x和y为长度为n的向量,它的作用是在坐标系中以x为横坐标y为纵坐标的曲线。为了使生成的图形易于理解,也可以加上坐标轴的说明文字,分别用命令xlabel和ylabel产生。例如:xlabel(Frequence);ylabel(Magnitude);也可以加上坐标系的标题,由命令title给出。例如:title(幅频响应);上机题:考虑下面的一模拟信号, 它

9、由三个正弦频率组成,其中,。要求对信号以的频率抽样,得到的抽样信号,在同一张图表中绘出和两信号,其中重复上题,信号抽样频率Hz考虑一以指数率衰减的信号,为简单起见,以复数形式表示。现在以抽样,则得到抽样信号,。这样的无限长序列是无法在计算机中存储的,通常的做法是令,,它是长度为L的加窗后信号。模拟、采样、加窗后信号的频谱幅度如下: , 其中极限,其中:,。,两频率,请在同一张图上绘出模拟频谱及采样信号频谱,在另一张图上绘出 三个频谱(频率范围)。 实验二 IIR滤波器的设计 滤波器设计是数字信号处理中最基本的内容之一。在本实验中,我们研究IIR滤波器设计的问题。在理论学习中,我们知道滤波器分I

10、IR滤波器(无限冲激响应滤波器)和FIR滤波器(有限冲激响应滤波器)两种。IIR滤波器具有阶数低,实现成本少的特点。其设计有两种方法:一种是冲激不变法,另一种是双线性变换法。这两种设计方法都是对原型连续时间滤波器进行变换来设计数字信号滤波器。连续时间滤波器的技术指标是通过对给定的数字滤波器的技术指标加以变换而得到的。在这些变换中,我们通常要求所得到的数字滤波器的频率响应中应保留连续时间滤波器频率响应的基本特性。这也就是说,应将模拟的平面的虚轴映射到数字的平面的单位圆。冲激不变法和双线性变换都能满足这样的要求,但这两种方法是有区别的,对于第一种方法,它是基于冲激响应抽样的关系,根据采样定理,我们

11、知道,其频率特性在高频端可能产生混叠,但数字频率与模拟频率之间的关系是线性关系;对于第二种方法,数字频率与模拟频率之间的关系是非线性关系,并且是一一映射的,故不存在高频混叠的情况,但是频率轴产生畸变,这在分段恒定的滤波器中是无关紧要的,它只是影响过渡带。 为了使同学们充分理解这两种方法的各自的特点及它们的区别,熟练掌握IIR滤波器设计的最基本的方法,。特别安排下面两道上机题。通过第一题的练习,同学可以清楚地看到冲激不变法和双线性变换法设计的滤波器频率特性与原型连续滤波器之间的相同处和区别,以及为什么在IIR数字滤波器的设计中通常采用双线性变换法。在本题中,要用到几个MATLAB信号处理工具箱中

12、的函数,如求巴特沃思滤波器的阶数的函数buttord和 巴特沃思滤波器的设计函数butterworth,以及冲激响应不变法实现模拟到数字的滤波器变换函数impinvar,双线性变换函数bilinear和数字滤波器的频率响应函数freqz。Buttord的用法为n,wn=buttord(wp,ws,rp,rs,s),其中wp,ws分别为通带和阻带的截止频率,rp,rs分别为通带和阻带的波纹系数。s表示模拟域。也可不加s,则表示的是数字域。N为模拟butterworth滤波器的阶数,wn为截止频率。这个函数的使用,主要应注意模拟域和数字域的频率关系的转换,即模拟域的频率为数字域的频率比上抽样周期。

13、Butter的用法为b,a=butter(n,wn,s),可设计出截止频率为wn的n阶低通模拟butterworth滤波器为impinvar的用法为bz,az=impinvar(b,a.Fs),b,a的说明同butter函数,得到的数字滤波器可写成bilinear函数的用法为numd,dend=bilinear(num,den,Fs),在课堂上,我们已经学过双线性变换的映射关系为该函数就是完成这种变换的.其中num和den的说明同b和a, numd和dend的说明同bz,az。Freqz函数是用来求数字滤波器的频率响应。h,f=freqz(bz,az,n,whole,Fs)表示在0-Fs之间均

14、匀选取n个频率点(记录在f中),并计算相应的频率响应h.第二题的练习是要求同学门掌握低通、高通、带通、带阻型的IIR滤波器的设计方法。以及比较不同类型的原型滤波器下,所设计的数字滤波器的区别。在本题中,我们要用到几个关于椭圆滤波器和切比雪夫滤波器的函数。Cheb1ord用于切比雪夫I型滤波器阶的选择。n,wn=cheb1ord(wp,ws,rp,rs,s),该函数与buttord的用法基本相同。Elliporp是用来求椭圆滤波器阶的选择。n,wn=ellipord(wp,ws,rp,rs,s),该函数与buttord的用法基本相同。Cheby1用于切比雪夫I型滤波器的设计。可设计低通、带通、高

15、通和带阻的数字和模拟chebyshev I 滤波器,其通带内为等波纹,阻带内为单调。b,a=cheby1(n,rp,wn,s)可设计出截止频率为wn的n阶低通模拟切比雪夫I型滤波器当wn=w1 w2时,cheby1函数可产生一2n阶的带阻滤波器,其通带为w1ww2。b,a=cheby1(n,rp,wn,ftype,s)可设计高通或带阻滤波器:当ftype=high时,可设计截止频率为wn的高通滤波器;当ftype=stop时,可设计出带阻滤波器,这时wn=w1 w2,且阻带为w1ww2。Ellip用于椭圆滤波器的设计,它的用法与cheby1基本相同。上机练习题1. 设计一个巴特沃色低通滤波器,

16、其技术指标为:3dB带宽为,阻带截至频率为,阻带衰减大于30dB,采样间隔。用冲击不变法设计,用双线性变换法设计;要求: 在同一图中画出原型、冲激不变法和双线性变换法所设计的数字滤波器的幅频特性图.2. 用双线性变换法分别设计如下低通、高通、带通和带阻四种数字滤波器。模拟滤波器的原型分别为切比雪夫滤波器和椭圆滤波器,采样率Fs=20kHz,指标如下:低通:通带kHz,阻带5kHz,通带衰减Rp=0.5dB,阻带衰减As=10dB。高通:阻带kHz,通带5kHz,通带衰减Rp=0.5dB,阻带衰减 As=10dB。带通:通带kHzkHz,阻带1.5kHz,4.5kHz以上,通带衰减Rp=0.5d

17、B,阻带衰减As=10dB。带阻:阻带kHzkHz,通带1.5kHz,4.5kHz以上,通带衰减Rp=0.5dB,阻带衰减As=10dB。要求:分别画出低通、高通、带通和带阻四种数字滤波器的幅频特性图,并且要求两种不同的原型滤波器下设计的结果画在同一幅图中。 实验三 FIR滤波器的设计FIR滤波器几乎完全限于离散时间滤波器的实现问题。其设计方法以直接逼近所需离散时间系统的频率响应为基础。另外FIR滤波器可以很容易地获得线性相移特性,并且不存在不稳定的问题。在实际系统中是广为采用的一种数字滤波器。一般,在FIR滤波器设计中,我们都加上线性相移这一条件。FIR滤波器的设计,通常有窗函数设计法、频率

18、抽样设计法和最佳逼近设计法。我们在本实验中,研究前两种设计方法。窗函数设计方法是简单的,它的频谱特性是理想滤波器频谱与窗的频谱的卷积。因而,其频率特性取决于窗的类型和长度。频率抽样法设计方法是直观的,但由于频域的采样会造成时域的混叠,从而使滤波器的性能不高,为提高滤波的性能,可以在过渡带加上之间的过渡点。本实验安排有三道上机练习题。通过第一道上机题,掌握利用窗函数设计滤波器的方法,了解阶数不同时,滤波器的指标有何变化,了解矩形窗和哈明窗在主瓣宽度、旁瓣峰值、旁瓣衰减速度方面的差异。通过第二道上机题的练习,掌握设计凯泽而窗时各参数的计算和凯泽而窗的设计,了解凯泽而窗的特点,及其与其它窗在主瓣宽度

19、、旁瓣峰值、旁瓣衰减速度等方面的异同。通过第三道上机题的练习,掌握并了解在过渡带加过渡点对逼近滤波器的实际响应的影响,掌握频率抽样定理及其内插公式用窗函数法设计滤波器时,要用到以下几个函数:矩形窗函数w=boxcar(n)产生一长度为n的矩形窗函数。哈明窗函数w=boxcar(n)产生一长度为n的哈明窗函数。凯泽窗函数w=boxcar(n,beta)产生一长度为n的凯泽窗函数,beta为影响窗函数旁瓣的参数,其最小的旁瓣抑止as与beta的关系为b=fir2(n,f,m,window)可将列矢量window中指定的窗函数用于滤波器设计,n为FIR滤波器的阶数,f为频率点矢量,当f=1时对应于。

20、矢量f中按升序排列,且第一个必须为0,最后一个必须为1,并允许出现相同的频率值,矢量m中包含与f相对应的期望滤波器的响应幅度。F和m的长度必须相同。实验题目:1. 当N=11,41,81,和121时,用矩形窗设计一个低通FIR滤波器,其剪切频率画出其幅度响应,用哈明窗重复上述设计,比较两个窗2. 用凯泽而窗、哈明窗、矩形窗设计一个具有以下指标的滤波器:画出它们的幅频响应然后,再用三种窗设计一个具有下列指标的高通滤波器 ,画出他们的幅频响应比较凯泽窗,矩形窗,哈明窗设计相同长度的滤波器的异同3. 用频率抽样法设计一个理想低通滤波器,该低通滤波器的通带截止频率为,阻带截止频率为a不加过渡点b加一个

21、过渡点c加两个过渡点 实验四 用FFT对连续时间信号进行频谱分析用数字技术来对连续信号进行频谱分析,首先要对连续时间信号离散化,这一过程是通过对连续时间信号抽样来获得,抽样间隔必需满足采样定理,即抽样频率必须大于或等于信号带宽的两倍。因而,这就要求信号的带宽必须有限,根据信号理论,我们知道信号带宽和信号时宽之间是有制约关系的,带宽有限的信号时宽一定是无限的。为了能够用数字计算机对连续信号进行频谱分析,我们必须要对信号截短,截断的过程相当于一个窗函数与原信号相乘的过程,在频域是信号频谱与窗的频谱卷积,故窗的频率特性影响到对原信号的频谱分析,为减少这一影响,要求窗函数的频率特性是主瓣尽可能地窄,旁

22、瓣尽可能低。在用FFT进行频谱分析时,人们常常会产生一种误解,认为在有效数据后补零可以提高频率的分辨率。但是,由于用FFT进行频谱分析,原信号频谱是被窗函数卷积而“模糊”了,其模糊的程度是由窗函数的主瓣宽度决定的,而它的主瓣宽度取决于截断的数据长度,也就是说,长度越长主瓣越窄,模糊程度越低。数据后面补零,只是起到对插值的作用,使频谱的外观得到平滑,克服了“栅栏”效应。这通过第一道上机练习题得到验证。第二道上机练习题,同学们可以体会到采用不同的窗函数对频谱分析的影响。实验题目: 1.已知一正弦信号,其中 ,试利用FFT对信号进行幅频分析,信号截断采用矩形窗。要求如下:离散数据长度是16个点,用1

23、6点FFT分析.离散数据长度是32个点,用32点FFT分析.离散数据长度是64个点,用64点FFT分析.离散数据长度是128个点,用128点FFT分析.离散数据长度是512个点,用512点FFT分析.离散数据长度是16个点,其后再补48个零点,用64点FFT分析.离散数据长度是16个点,其后再补506个零点,用512点FFT分析.离散数据长度是32个点,其后再补32个零点,用64点FFT分析.离散数据长度是32个点,其后再补480个零点,用512点FFT分析.分别利用凯泽窗和哈明窗对下面的信号作频谱分析, 其中,;凯泽窗的过渡带为: ,3 令,重复习题2。 以上习题要求画出 实验五 卷积和滤波

24、 线性时不变系统的输入输出关系是卷积关系。当然,卷积运算可以直接进行,对于FIR滤波器,其硬件实现结构是横向滤波器结构。但如果用数字计算机实现,即用软件实现时,可以利用FFT快速算法来实现快速卷积,其运算量在一定的条件下要少于直接卷积的运算量。利用FFT快速算法实现卷积的机理是根据卷积定理,两个序列的卷积的傅立叶变换在频域是乘积关系,本实验的第一道题就是用重叠相加法和重叠保留法来实现一个长序列与一个短序列的卷积。 第二题是利用FIR滤波器。利用FIR滤波器的前提必须是冲激响应的长度是有限的,用h(n)求出冲激响应的变换,然后利用y=filtfilt(b,a,x)进行FIR滤波即可得输出 第三题

25、的卷积滤波是直接从冲激响应出发,在已知输入和冲激响应的情况下,利用卷积y=conv(a,b)求输出这样,得到的输出的长度是不确定的,画图时应注意这一点,使轴和轴的坐标相对应实验题目:1:分别用直接卷积法、重叠保留法、重叠相加法、求以下两个序列的卷积,看结果是否相同每次输入序列长度为N=128 2:利用FIR滤波器进行滤波,从而实现下列三个系统的输出,三个系统的冲激响应如下: ,输入为长度为,重复四个周期的方波,该方波的平均值为 3:利用卷积进行滤波,从而实现下列三个系统的输出,三个系统的冲激响应如下:,输入为长度为,重复四个周期的方波,该方波的平均值为附录A MATLAB系统与语言简介 MAT

26、LAB 是由美国Math Works 公司推出的用于数值计算和图形处理的科学计算系统环境。MATLAB是英文MATrix LABoratory(矩阵实验室)的缩写。它的第1版(DOS版本1.0)发行于1984年,经过10余年的不断改进,现在已推出它的Windows 95版本(5.3版)。新的版本集中了日常数学处理中的各种功能,包括高效的数值计算、矩阵运算、信号处理和图形生成等功能。在MATLAB环境下,用户可以集成地进行程序设计、数值计算、图形绘制、输入输出、文件管理等各项操作。MATLAB提供了一个人机交互的数学系统环境,该系统的基本数据结构是矩阵,在生成矩阵对象时,不要求明确的维数说明。与

27、利用C语言或FORTRAN语言作数值计算的程序设计相比,利用MATLAB可以节省大量的编程时间。在美国的一些大学里,MATLAB正成为对数值线性代数以及其他一些高等应用数学课程进行辅助教学的有益工具。在工程技术界,MATLAB也被用来解决一些实际课题和数学模型问题。典型的应用包括数值计算、算法预设计与验证,以及一些特殊的矩阵计算应用,如自动控制理论、统计、数字信号处理(时间序列分析)等。MATLAB系统由五个主要部分组成,下面分别加以介绍。MATLAB语言体系MATLAB是高层次的矩阵/数组语言,具有条件控制、函数调用、数据结构、输入输出、面向对象等程序语言特性。利用它既可以进行小规模编程,完

28、成算发设计和算法实验的基本任务,也可以进行大规模编程,开发复杂的应用程序。MATLAB工作环境 这是对MATLAB提供给用户使用的管理功能的总称,包括管理工作空间的变量,数据输入输出的方式和方法,以及开发、调试、管理M文件的各种工具。图形句柄系统这是MATLAB图形系统的基础,包括完成2D和3D数据图示、图像处理、动画生成、图形显示等功能的高层次MATLAB命令,也包括用户对图形图像等对象进行特性控制的低层次MATLAB命令,以及开发GUI应用程序的各种工具。MATLAB数学函数库这是对MATLAB使用的各种数学算法的总称,包括各种初等函数的算法,也包括矩阵运算、矩阵分析等高层次数学算法。MA

29、TLAB应用程序接口(API) 这是MATLAB为用户提供的一个函数库,使得用户能够在MATLAB环境中使用C程序或FORTRAN程序,包括从MATLAB中调用子程序(动态链接),读写MAT文件的功能。综上所述,可以看出MATLAB是一个功能十分强大的系统,是集数值计算、图形管理、程序开发为一体的环境。除此之外,MATLAB还具有很强的功能扩展能力,与它的主系统一起,可以配置各种各样的工具箱,以完成一些特定的任务。目前,MathWorks公司推出了18种工具箱。用户可以根据自己的工作任务,开发自己的工具箱。在本指导书中,我们主要利用MATLAB的关于信号处理的工具箱。MATLAB系统的常用概念

30、命令窗口在Windows 95下启动MATLAB系统后,Windows 95的工作平台上会弹出一个窗口,如下图所示,这个窗口称为MATLAB的命令窗口。MATLAB的命令窗口是用户与MATLAB解释器进行通信的工作环境,提示符?表示MATLAB解释器正等待用户输入命令。所有的MATLAB命令、MATLAB函数,以及MATLAB程序都要在这个窗口下运行。在命令窗口,用户可以发出MATLAB命令。例如,为了生成一个3*3的矩阵,可以在提示符下,键入如下的命令:A=1 2 3;4 5 6; 7 8 9 方括号命令表示矩阵,空格或逗号将每行的元素分开,而分号将矩阵的各行数值分开。再键入Enter后,M

31、ATLAB将回显如下的矩阵:A= 1 2 3 4 5 6 7 8 9为了求该矩阵的逆矩阵,则只要键入命令?B=inv(A);MATLAB就将计算出相应的结果。如果不想在命令窗口中显示计算结果,只要如上所示,在该命令后多键入一个分号即可。此时,MATLAB系统只完成该命令所要求的计算任务,其计算结果不回显。这项功能在程序设计中是非常必要的。MATLAB系统也可以说是一种新的语言,该语言十分容易掌握,其结构非常类似于数学式子的书写格式,用户花上很少的时间即可掌握MATLAB的大部分命令。1.2 图形窗口MATLAB系统的强大功能之一是其优秀的图形功能。对于任何作图命令,MATLAB将打开另一个窗口

32、来绘制输出图形,这样的窗口在MATLAB系统中被成为图形窗口。在同一个图形窗口中,可以绘制多个图形,也可以生成多个图形窗口,并选择其中的一个图形窗口,在其中绘制图形。生成图形窗口的方法比较多,在没有图形窗口存在时,每个绘图函数都能自动生成一个图形窗口;也可以用figure 命令生成一个新的图形窗口;还可以用命令窗口的File菜单的New子菜单的Figure项来打开一个新的图形窗口。1.3 搜索路径MATLAB管理着一条搜索路径,它在搜索路径下寻找与命令相关的函数文件。例如,如果在MATLAB提示符下输入example, MATLAB解释器将按照下面的步骤来处理这条字符串:检查example是不

33、是一个变量;如果不是,检查example是不是一个内部函数;如果不是,检查在当前文件夹下是否存在名为example.mex,example.dll或example.m的文件。MEX文件是MATLAB 的执行文件,将优先执行;如果不存在,检查在MATLAB 的搜索路径的目录下是否存在名为MEX,example.mex,example.dll,或example.m的文件。MEX文件优先执行。用户可以打开路径浏览器(Path Browse)查看MATLAB系统的当前搜索路径,也可以在其中加入自己的路径。1.4 文件类型在MATLAB系统中,根据功能可将MATLAB系统所使用的外部文件分为几类,并用不

34、同的扩展名作为其标识,我们用的主要是M文件。M文件以字母m为其扩展名,例如startup.m。一般说来,M文件是以ASCII码文本文件,可以用任何文本编辑器进行编辑。在MATLAB系统中,有两类M文件。一类称为程序M文件,简称M文件;另一类称为函数M文件,或简称为函数,统称为 M文件。M文件的内容是由符合MATLAB语法的语句构成的,函数M文件的第一行必须是以关键字function开始的函数说明语句。两类M文件的共同特征是:在MATLAB命令窗口中的命令提示符下键入文件名,来执行M文件中的所有语句规定的计算任务或完成一定的功能。它们的区别在于以下两方面:第一,程序M文件中创建的变量都是MATL

35、AB工作空间中的变量,工作空间中的其他程序或函数可以共享,而函数M文件中创建的所有变量除了全程变量外,均局限于函数运行空间内的局部变量;第二,函数M文件的调用式中可以有输入参数和输出参数,而程序M文件则没有这种功能。1.5 语言语法要素MATLAB只管理一种对象矩阵。可以使用下列的任何一种方法在MATLAB环境下创建或输入一个矩阵:显示的输入一个元素序列;用MATLAB的内部函数创建一个矩阵;在M文件中用MATLAB语句创建一个矩阵;从一个外部数据文件中装载并创建一个矩阵。在MATLAB中有两个基本概念:变量和表达式。变量由变量名表示,函数名作为特殊的变量名看待,每个变量名由一个字母后面跟随任

36、意个字母或数字(包括下划线)组成,但MATLAB只能分辨前19个字符。MATLAB能区分组成变量名的大小写字母。MATLAB的语句则是下列两种形式之一:?变量名=表达式或者?表达式在前一种语句形式下,MATLAB将运算的结果赋给“变量名”;而在第二种语句形式下,将运算的结果赋给MATLAB的永久变量ans,每条语句以回车符结束。一般的,运算的结果在命令窗口中显示出来。如果语句的最后一个字符是分号“;”,那末,MATLAB仅执行赋值运算,不再显示运算的结果。与C语言一样,MATLAB将字符串当作数组或矩阵处理。1.6 MATLAB的基本运算符矩阵运算符矩阵A的转置。A+B,A-B矩阵A与B的和与

37、差。A*B矩阵A与B的乘法。A.*B矩阵A与B的对应元素相乘关系运算符 小于或等于 =大于或等于 =等于 =不等于1.7 特殊运算符在MATLAB的M文件中,可以加入解释行。解释行的标识符为“%”,该标识符将被作为注解内容。程序执行时,注解被忽略。方括号“ ”用于生成矩阵。特别的,语句A= 生成空矩阵A。行分隔符“;”用于MATLAB语句后时,表示该语句的执行结果不被回显出来,这可避免显示一些不感性趣的结果。冒号“:“最主要的作用是生成向量,从下面的例子中可以看出它的使用方法:j:k 生成向量j,j+1,j+2,kj:i:k 生成向量j,j+i,j+2*i,k,如果jk,则生成空矩阵 A(:,

38、j) 矩阵A的第j列A(I,:) 矩阵A的第I行A(j:k) 向量A(j),A(j+1),A(k)A(:,j:k) 从第 j列到第k列的矩阵子块换行连接符“”,有时一条MATLAB语句会很长,在命令窗口的一行内很可能写不下,此时只要在该语句中加入三连点,再回车即可在下一行接着写该语句。1.8 MATLAB的常用数学函数三角函数sin正弦函数Cos余弦函数Tan正切函数Asin反正弦函数Atan反正切函数Sinh双曲正弦函数Cosh双曲余弦函数Tanh双曲正切函数Asinh反双曲正弦函数Acosh反双曲余弦函数Atanh反双曲正切函数Acos反余弦函数初等函数Abs实数的绝对值、复数的模、字符串

39、的ASIIC值Angle复数的幅角Sqrt方根函数Real复数的实部Imag复数的虚部Conj复共轭运算Round最邻近整数截断(四舍五入)Ceil不大于自变量的最大整数Rem不小于自变量的最小整数Exp自然指数函数(以e为底)Log自然对数函数(以e为底) log10以10为底的对数函数1.9 程序流控制 与其他的程序设计语言一样,MATLAB语言也提供了条件语句。下面分别予以介绍。for循环语句MATLAB也有自己的for循环语句。如果要反复执行的一组语句的循环次数是已知或预定义的,就可以用for循环语句。例如:?for I=1:n x(I)=0; end这条语句将向量x的前n个元素赋予零

40、值,这里的变量n必须预先给定。注意:每一个for必须与end配对使用。while循环语句MATLAB提供有while循环语句,它的作用是在一定的逻辑条件的控制下,不断的循环执行一条或一组语句,直到逻辑条件不满足为止。While 语句的一般形式是While 表达式 语句组endif条件语句和bread语句break 语句用于退出循环体,if条件语句有两种形式,分别是if 表达式 语句组1else 语句组2end和if 表达式1 语句组1elseif 表达式2 语句组2else语句组3end1.10 MATLAB的在线帮助用户可以随时利用MATLAB的在线帮助查询自己不懂得用法的函数的具体用法,例

41、如:在命令窗口键入help abs 后的显示如下:ABS Absolute value ABS(X) is the absolute value of the elements of X. When X is complex,ABS(X) is the complex modulus (magnitude) of the elements of X. See also SIGN,ANGLE,UNWRAP.Overloaded methods Help sym/abs.m将abs函数的主要用法和用途都列了出来。1.11 本次实验上机的具体过程如下:在windows 95的桌面上找到MATLAB的

42、图标单击进入MATLAB的命令窗口,或在开始菜单里选择程序再找到MATLAB单击也可进入MATLAB的命令窗口。进入命令窗口后,在菜单File中选择open,打开已存在的文件。如果是新文件,在菜单File中选择New,再找到M-file即可打开MATLAB的编辑窗口,在编辑窗口内输入你的源程序后存盘。为了使程序能够在MATLAB中运行,需要在搜索路径中加入你的路径,加入路径的过程如下,在MATLAB的命令窗口中选择File 菜单的Set path选项,则打开一个Path Browser窗口,如下图所示: 在该窗口中单击Browse,选择你的路径加入,然后在File中选择Save Path后退出

43、即可。这样,你可以在MATLAB的命令窗口中键入你的源程序文件名,或在编辑窗口中选择Tools中的Run即可编译运行。若编译无错,则可得出结果;若编译有错,则可根据命令窗口的提示进行修改后再编译运行,直至得出正确的结果。附录B 信号处理工具箱函数MATLAB包含了进行信号处理的许多工具箱函数,有关这些工具箱函数的使用可通过Help命令得到。为使用方便,在这里将给出几个常用到的函数的使用说明。 函数形式函数功能关于函数参数的说明X=sawtooth(t,width)产生锯齿波或三角波。width用于确定最大值的位置,即从0到2*width函数从-1上升到+1。X=square(t,duty)产生方波Duty用于指定正半周期的比例Y=abs(x)求绝对值当x为复数时,得到的是复数模(幅值),若x为字符串,得到的是各个字符的ASCII码。C=conv(a,b)求卷积求取矢量a和b的卷积,c的长度为a和b的长度和减去1。h,w=freqs(b,a,n)模拟滤波器的频率响应.b,a为滤波器的冲击响应s变换的分子和分母多项式的系数,在n个频率点计算频率响应h,f=freqz(b,a,n,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论