数字信号处理-实验-1-2

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

《数字信号处理》实验讲义邱选兵太原科技大学应科学院物理系光电工程研究所2013-11《数字信号处理》实验讲义-I-目录目录.................................................I实验要求...............................................2MATLAB简介.............................................3实验一熟悉MATLAB环境及简单序列运算..................10实验二信号、系统及系统响应...........................17《数字信号处理》实验讲义-2-实验要求要求每位同学自己按照相关教程,安装MATLAB软件,版本目前为R2009。每个人自己根据题目要求,完成实验,并按照《数字信号处理实验模板》完成实验报告。在实验报告中,重点是源程序和实验的结果(画图,并分析)。试验完成后请按照“自己的班级学号+姓名+实验序号”格式将实验报告命名,并发送到qiuxuanbing@163.com中,主题为“班级学号+姓名+实验序号”。如光信1班1号陈子寒,文件名为:“光信101+陈子寒+实验1.doc”。《数字信号处理》实验讲义-3-MATLAB简介MATLAB是由美国MathWorks公司推出的软件产品。“MATLAB”是MatrixLaboratory的缩写,意即“矩阵实验室”。MATLAB是一完整的并可扩展的计算机环境,是一种进行科学和工程计算的交互式程序语言。它的基本数据单元是不需要指定维数的矩阵,它可直接用于表达数学的算式和技术概念,而普通的高级语言只能对一个个具体的数据单元进行操作。因此解决同样的数值计算问题,使用MATLAB要比使用BASIC、FORTRAN和C等语言提高效率许多倍。许多人赞誉它为万能的数学“演算纸”。MATLAB采用开放式的环境,你可以读到它的源码,了解它的算法,并能改变当前的函数或增添你自己编写的函数。MATLAB是一种非常流行的计算机语言,许多重要学术刊物上发表的论文均是用MATLAB来分析计算以及绘制出各种图形。它还是一有力的教学工具,它在大学的线性代数课程以及其它领域的高一级课程的教学中,已成为标准的教学工具。现今MATLAB的发展已大大超出了“矩阵实验室”的范围,在许多国际一流专家学者的支持下,MathWorks公司还为MATLAB配备了涉及到自动控制、信息处理、计算机仿真等种类繁多的工具箱(ToolBox),这些工具箱有:数理统计、信号处理、系统辨识、最优化、稳健(Robust)等等。近年来一些新兴的学科方向,MathWorks公司也很快的开发了相应的工具箱,例如:神经网络、模糊逻辑等。一、MATLAB语言MATLAB语言由一些简单的命令组成,这些命令即为基本的语句,它们可以在窗口下执行,也可以由命令串以及控制语句和说明语句组成一程序。程序以文本格式存放在计算机中,冠以后缀“.M”,通常也称之为M文件。执行程序时,只需在MATLAB窗口下输入去掉后缀的文件名即可。下面介绍MATLAB语言的主要特点:1.变量MATLAB最基本、也是最重要的功能就是进行实数或复数矩阵运算。因向量和标量均可作为特殊的矩阵来处理,因而也可以很方便的进行向量和标量的运《数字信号处理》实验讲义-4-算。MATLAB的基本变量均代表一矩阵。矩阵可以由语句和函数产生,也可以由外部的数据文件输入,还可以由键盘输入一些小的矩阵。例如在出现提示符“”后,我们键入一33的矩阵并赋予变量AA=[135;246;789]矩阵的元素直接排列在方括号中,一行中的元素用空格或者是逗号分开,行与行之间用分号隔开。在键入回车键后屏幕上将显示:A=135246789单个矩阵元素可以用括号中的下标来表示,例如上述矩阵的元素A(1,1)=1,A(2,2)=4,A(3,3)=9。下标可以是一个向量或一个子矩阵,例如A(:,3)代表第三列元素组成的向量;A(1:3,1:2)代表一32的子矩阵。2.基本操作符一般的加“+”、减“-”、乘“*”、除“/”、幂“^”等操作符在MATLAB中有着不同的意义,这些操作均针对矩阵操作,即代表矩阵的加、减、乘、除以及乘方运算。除此而外,还有点乘“.*”表示两个矩阵的对应元素乘;点除“./”表示两个矩阵的对应元素相除;右除“\”表示用右边的矩阵除以左边的矩阵,A\B等效于A的逆左乘B矩阵。这些操作符同样适用于标量操作,如前所述这些元素间的操作可以是复数运算,虚部的单位为i=sqrt(-1),sqrt(.)是MATLAB定义的平方根函数。幂次通常用标量表示,例如A^P表示A的P次方。而“.^”计算对应元素的幂,A.^P为两个大小相同的矩阵进行操作,P中的每一元素作为A中对应元素的幂次,P为标量是一特例,它完成与A^P相同的操作。MATLAB完成矩阵的共轭转置用“’”表示,例如:[-1;2;3]’ans=-123(矩阵的转置操作符为“.’”,不过对实数矩阵而言,转置与共轭转置结果一致。)其它的关系运算与逻辑运算操作符和普通的高级语言没有多大差别。3.输入、输出语句MATLAB可以用load语句输入磁盘中存储的数据。数据可以用ASCⅡ码按《数字信号处理》实验讲义-5-行、列存放在文件中,执行load命令后,MATLAB用此文件名(不包括后缀)作为当前的变量名。MATLAB本身的存储格式——二进制的“.MAT”文件也使用load命令装入。save命令将工作空间中的变量以二进格式或ASCⅡ格式存入到磁盘文件中。对于其它特定格式的数据文件,MATLAB提供了像C语言一样的输入、输出语句。例如,fopen、fread、fwrite等。一般的输入、输出应优先选择load和save命令来完成。4.库函数像其它高级语言一样,MATLAB提供了一批基本的数学函数,如正弦(sin)、指数(exp)、开方(sqrt)等。在矩阵运算方面它也提供了许多基本的函数,例如矩阵求逆(inv)、求行列式(det)、LU分解(lu)、求对角阵(diag)等等。另外,还提供了一批特殊数学函数,例如贝塞尔函数(bassel)、第一类完全椭圆积分(ellipk)等。MATLAB的各种类型的工具箱提供了适合于各种专门用途的库函数。用户也很容易编写一些自己常用的库函数添加到MATLAB的函数库中。5.作图语句MATLAB的作图功能非常强,它可以绘制二维图形(plot,stem)、三维图形(mesh)、等值线图(contour)、极坐标(polar)以及直方图(hist)等。除了可以作图外,还可以对图形加文本注释(text)、题头(title)、x轴或y轴标注(xlabel,ylabel)以及增加网格(grid)等。6.控制语句MATLAB有着和其它高级语言相类似的控制语句,例如,循环(for)、中止循环(break)、条件(if,while)等等。不过这些语句要谨慎使用,因为,MATLAB是对数组进行操作,很多时候可以不用控制语句,用了控制语句会使程序的执行速度减慢。7.帮助语句helphelp命令很有用,它为用户提供了一切联机帮助信息。在命令窗口中直接键入“help”命令可取得信息。如:键入“helpeig”可得到特征函数的使用信息;键入“help[”显示如何使用方括号;而键入“helpsignal”将提供所有信号处理工具包中的有关函数的信息。8.用于数字信号处理的工具包——SignalToolbox《数字信号处理》实验讲义-6-它包含数字信号处理常用的滤波器设计、傅立叶变换、Z变换等等MATLAB函数。如设计IIR滤波器相关函数:buttord、butter、cheb1ord、cheb2ord、ellipord、cheby1、cheby2、ellip。设计FIR滤波器相关函数:fir1、fir2、firls、remezord、remez窗函数:bartlett、blackman、hamming、hanning、kaiser傅立叶变换相关函数:fft、ifft频率响应相关函数:freqz、freqs频率变换相关函数:lp21p、lp2hp、lp2bp、lp2bs二、算例例1求矩阵的特征向量和特征值。A=[010;103;521];[XD]=eig(A)X=-0.3887+0.0965i-0.3887-0.0965i-0.16740.4191-0.6436i0.4191+0.6436i-0.63710.2142+0.4515i0.2142-0.4515i-0.7524D=-1.4029+1.3078i000-1.4029-1.3078i0003.8058第一句构成一33的矩阵A,以分号结尾的语句,MATLAB将不显示中间结果。第二句计算A矩阵特征向量和特征值,它调用函数eig返回一对33的矩阵X和D,满秩矩阵X的列为特征向量,对角矩阵D的对角元素为特征值。由于A为非对称的实矩阵,X和D均为复矩阵。例2编写一函数,可对任一向量的每一元素增加一固定的偏移值,并绘出所得向量的图形。设向量a=[1234567537],偏移量为b=3。可编写一名为vp1.m的文件如下:functionvp1(a,b)c=a+b;《数字信号处理》实验讲义-7-plot(c)grid程序中“functionvp1(a,b)”表示将M程序定义成名为vp1的函数,参数a为向量,b为偏移量。运行:a=[1234567537];b=3;vp1(a,b)即可显示以下图形。例3给定一因果系统H(z)=(1-z1)/(1-2z1+0.9z2),求出并绘出H(z)的幅频响应与相频响应。这道题可使用MATLAB信号处理(signal)工具包中的函数freqz来计算。它的一般形式是[h,w]=freqz(b,a),其中b是由z1分子多项式系数构成的数组,a是由z1分母多项式系数构成的数组,h是返回的复数形式的频率响应数组,w是由对应于h的各个数字角频率构成的数组。用MATLAB编写的程序如下:b=[1,-1];%分子多项式系数a=[1,-sqrt(2),0.9];%分母多项式系数[h,w]=freqz(b,a);%计算频率响应am=20*log10(abs(h));%计算幅频响应并绘图subplot(2,1,1)《数字信号处理》实验讲义-8-plot(w,am)ph=angle(h);%计算相频响应并绘图subplot(2,1,2)plot(w,ph)结果显示如下:三、SIMULINK仿真Simulink是MATLAB软件中对动态系统进行建模、仿真和分析的一个软件包,它支持线性和非线性系统、连续时间系统、离散时间系统、连续和离散混合系统。另外,Simulink提供了友好的图形用户界面(GUI),模型由模块组成的框图来表示,使用起来很方便。1.Simulink基本操作(1)运行Simulink:在MATLAB命令窗口中直接键入“Simulink”。(2)Simulink模块操作。模块是建立Simulink模型的基本单元,模块的基本操作包括:选取模块、复制和删除模块、模块的参数和属性设置、模块外型的调整、模块的连接等。《数字信号处理》实验讲义-9-2.Simulink基本模块(1)Sources模块包括:SignalGenerator(信号发生器)、SineWave(正弦波发生器)、Step(阶跃信号)、RandomNumber(高斯分布的随机信号)、UniformRandomNumber(均匀分布的随机信号)、Band-LimitedWhiteNoise(带限白噪声)等。(2)Sinks模块包括:Scope(示波器)、XYGraph(X-Y图)、Display(实时数值显示)等。(3)Discrete模块包括:DiscreteFilter(IIR、FIR数字滤波器)、DiscreteTransferFun(离散传输函数)、DiscreteZero-Pole(离散零-极点模型)等。(4)Math模块包括:Sum(求和

1 / 22
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功