版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、信息工程学院数字信号处理实验指导书ma tlab 实验二零一六年九月二十八日 录-2 -matlab 简介-3 -一、matlab 初步-3-1. matlab的主要功能-3-2. 启动matlab及界面简介-3-3. matlab的常用命令-4-4. 基本运算-5-5. i&!±5-6 -二、变量与函数、语句、矩阵及其运算-6-1. 变量与函数-6-2. 语句与m文件-6-3. 矩阵及其运算-7-三、matlab支持的数据结构-8-四、matlab 绘图-9-1、绘制二维图形-9-2、绘制三维图形五、matlab编程1、关系运算和逻辑运算2、控制语句3、函数编写方法与应用数
2、字信号处理的matlab实验实验一 matlab基础入门练习实验二离散时间信号分析实验三离散时间系统及响应实验四离散傅立叶变换及性质-20-实验五用fft和czt对信号进行频谱分析-21 -实验六iir数字滤波器设计与信号滤波-24 -实验七用窗函数法设计hr滤波器-27 -实验报告格式-30-matlab简介matlab 是 matrix laboratory 的缩写。ill math works 公司于 1984 年推出,1993 年 推出了其微机版,在windows环境卜'使川。其最初由美国的cleve moler |再丄所研制,0的 是为线性代数等课程屮的矩阵运算提供一种方便可
3、行的实验手段。经过i 几年的市场竞争和 发展,matlab已发展成为在自动控制、生物医学工程、信号分析处理、语言处理、图像 信号处理、雷达工程、统计分析、计算机技术、金融界和数学界等各行各业屮都有极其广泛 应用的软件,同吋也成为理工科学生必须掌握的一项基本技能。为了帮助学生熟悉matlab,进行数字信号处理,本节把matlab介绍给人家。一、matlab 初步1. matlab的主要功能(1) .数值计算计算matlab以矩阵作(或数组)为数据操作的基本单位,提供了十分丰富的数值计算函 数,是进行数值分析的高效软件包。(2) .编程语言matlab与其它高级语言一样,有编程功能,a有程序结构控
4、制、函数调用、数据结 构、输入输出、衙向对象等程序语言特征,而.r.简单易学、编程效率高。.matlab工具箱matlab包含两部分内容:基本部分和各种可选的工ft箱。(4) .绘图功能matlab提供了两个层次的绘阁操作:一种是对阁形川柄进行的低层绘图操作,另一 种足建立在低层绘图操作之上的高层绘图操作。温馨提示:绘图功能在我们学习数字信号处理过程中的主要作用是帮助大家直观了解 处理的结果,在实际信号处理中,可能用的不多。2.启动matlab及界面简介点击桌面上matlab阁标,可进入到matlab命令窗(matlab command window),其命令提示符为。川户可在命令窗内输入命令
5、、编程、进行计算。matlab 6.5环境包括matlab主窗口、命令窗口(command window)、丄作空间窗 u (workspace)、命令w 史窗 u (command history)、当前 0 隶窗 u (current directory)、图形窗 口 (figure)和文本编辑窗口(editor)等组成。观看其默认窗口分布情况可以如不操作:desktop-desktop layout-defaut(1) .主窗口matlab主窗口是matlab的主要工作界lm。主窗口除了嵌入一些子窗(command window、workspace、command history、cur
6、rent directory)外,还主耍包柄菜单栏和工具栏。 菜单栏,共包含file、edit、view、web、window和help 6个菜单项,与其它windows应 用软件相似,人家可以£1己点击观看。工具栏,matlab 6.5主窗口的工具栏共提供了 10 个命令按钮。这些命令按钮均奋对应的菜单命令,佴比菜单命令使川起來更快捷、方便。卜 而熏介绍一卜命令窗口(command window)。命令窗口命令窗u是matlab的主要交互窗li,用于输入命令并显示除图形以外的所冇执行结 果。matlab命令窗1_1屮的“”为命令提示符,表示matlab正在处于准备状态。在命令 提示
7、符后键入命令并按k回车键后,matlab就会解释执行所输入的命令,并在命令后面 给出计算结果。例如»x=10;y=15;»z=x+yz=15说明:语句后输入分号表示不在主窗口显示结果,但讨以从变量窗口看到;如果一个命令行很长,或编稈吋一个语句很长,需要川w行來书写,可以在第一个物理行之后加上3个小黑点并按下回车键,然后接着下一个行继续写命令的其他部分。 3个小黑点称为续行符,即把下而的物理行看作该行的逻辑继续。温馨提示:命令窗口是matlab与用户之间的主要交互式运算窗口。3. matlab的常用命令(1) . help命令在命令窗|aj输入help命令,再敲回车键,在麻幕
8、上出现了在线帮助总 览。(注意:matlab命令被输入后,必需敲回车键才能执行.为行文方便,以后不再每次提 醒“敲回车键”)学会使用help命令,是学习matlab的有效方法。如果耍了解相关函数的使用方法及参数意义讨输入»help xcoit(2) . demo命令在命令窗内输入demo命令,再敲回车,键屏菘上将出现演示窗u。 (matlab demo window) 一共有三个窗口,左边的窗口敁示欲演示内容的大标题,选定其中一项,右下方的小窗u显示欲演示的具体内容,选中其中一栏,冉点击run按扭,解幕上将演 示选定的演示程序。右上方的窗口显示关于大标题的一些说叨。(3) . typ
9、e命令在命令窗内输入type文件名,则matlab将在主窗口显示程序的m 文件内界,帮助人家了解m文件编稈方法,通过对其语句的分析,不仅可以提高现论认识,也 是学matlab的函数(ftinction)编写方法有效途径。»type xcorr(4) .其它常用的命令与函数addpath:增加matlab的工作目录。matlab通常只能对其工作路径卜的文件运行, 如果你的文件不在艽默认的目录下,可以通过addpath命令来添加你的目录,例»path结果显示当前的所有默认目录。»addpath c:结果将c盘根目录作为一个默汄目录,即在c盘根目录下文件均可以直接在ma
10、tlab 下执行。clear :淸除内存空闽变量。whos变g名:查看此变虽的具体情况。如»whos xname sizebytes classx1x216 double arraygrand total is 2 elements using 16 bytes clc:清屏命令,清除当前主窗u内所冇显示。 dir:查看当前目录。length():计算向量的长度。如»ength(x) ans =2size():计算矩阵或数组的维数。例»size(y) ans =36温馨提示:这些命令和函数是大家学习matlab时用的最多的,因此需要大家审记。4. 基本运算在mat
11、lab本身足为了进行数值计算而创出的,因此其数值计算功能非常强,且足其 熏要的功能之一。计算方法非常简单,其进行基本数学运算,只需将运算式直接打入提示号 (»)之后,并按入enter键即可。例如计算(5*2+1.3-0.8)*10/25的值:用键盘在matlab指令窗屮输入以下内稃»(5*2+1.3-0.8)*10/25在上述表达式输入完成后,按【enter】键,该就指令被执行。在指令执行后,matlab 指令窗中将显示以k结果。ans =4.2000matlab会将运算结果且接存入-变m ans,代表matlab运算后的答案(answer), 并显示其数值于屏幕上。由上例
12、可知,matlab认识所有一般常用到的加(+)、减(-)、乘(*)、除(/)的数 学运算符号,以及¥次运算(a)。我们也iv将上述运算式的结果设定给另一个变数x如下:»x = (5*2+1.3-0.8)*10a2/25x =42此吋matlab会直接显示x的值。matlab基本算术运算符符号符号用途说明+加此符号与以下五行符号详细说明可使用help arith减.女数组乘法矩阵相飛八矩阵求'幕八点¥左除此符号与以下三行符号详细说明可使用help slash/右除.点左除./点右除温馨提示:由于matlab没有中文版,因此其自带的帮助均为英文,因此,希望大家
13、 不要有惧怕心理,应该当作帮助大家又提髙了英语,一举两得!5.退出在工具栏中点击file按钮,在下拉式菜单中单击exit matlab项即可。变量与函数、语句、矩阵及其运|1.变量与函数在matlab中变量由字母、数和下划线组成,第一个字符必须是字母。一个变量最 多由63个字符飢成,并区分大小写。卜面足matlab屮表示特殊景的字符:特殊变fi取值ans用于结果的缺畨变撒名pi圆周率cps计算机的最小数,当和1相加就产生一个比1大的数flops浮点运算数inf无穷大,如1/0nan不定撒,如0/0. 1,j虚数单位i=j=att,在程序中可以用作其它用途。nargin所用函数的输入变量数rna
14、rgout所用函数的输f li变量数目realmin蝻小可用正实数realmax最大可用正实数matlab提供/人s的函数.口1以通过help function查询。下|ftf列出部分戒木数学函数:函数名称函数名称sin(x)正弦函数asin(x)反正弦蚋数cos(x)余弦函数acos(x)反余弦函数tan(x)正切函数atan(x)反正切函数abs(x)绝对值或复数模max(x)最人值min(x)最小值sum(x)元素的总和sqrt(x)开平方exp(x)以e为底的指数log(x)白然对数log10w以10为底的对数sign(x)符号函数fix(x)取整imag(x)复数的虚部real(x)
15、复数的实部conj(x)共轭复数angle(x)复数x的幅角2.语句与m文件matlab语句的一般形式为:变量=表达式。当某一语句的输入完成后,按回车键,计算 机就执行该命令。如果该语句末没输入其它符号或输入了逗号,将显示结果;如果句末输入 了分号,将不显示结果。如果语句屮咨略了变量和等号,那么计算机将结果赋值给变量ans (结 果的缺宵变量)。matlab的内部函数是冇限的,冇时为了研究某一个函数的各种性态,盂要为 matlab定义新函数,为此必须编写函数文件.函数文件是文件名后缀为m的文件,这类 文件的第一行必须是一特殊字符function开始,格式为:function因变量名=函数名(a
16、变量名)函数位的获得必须通过具体的运算实现,弁赋给因变朵.m文件建立方法:1) .在 matlab 中,点:f"ile->new-m-file;2) .在编辑窗口中输入程序内容;3) .点:file->save,存盘,m文件名必须与蚋数名一致,m文件的文件名首字不能为数字。matlab的应用程序也以m文件保存,称为脚本文件(直接使用matlab中语句编写 的m文件)。即m文件包括脚本文件和函数两种。4) .在matlab屮,为了说明语句的功能使用的注释句用开尖。3.矩阵及其运算matlab巾矩阵a的输入方法如卜:a=an,.,aln;;aml,amn。其屮逗号(或川空格)
17、足数之间的分隔符,;分号(或 enter)是换行符,输入矩阵时严格要求所有行有相同列,即符合矩阵的形式。 、a=0:0.1:l 可产生个向量,即元素为 0,0.1,0.2.1。8=2,2,2;3,5,6或 b=2 2 2;3 5 6是一 样的。 、一些特殊矩阵的产生方法:1306(,7,11),魔方矩阵1加扣(),雄位矩阵eye(x),随 机函数rand(x),零矩阵zeros (x,y),1矩阵ones(x,y)等等。温馨提示:冒号在matlab中的用法很灵活,一定要多试,多用。例如有一个矩阵x 为3行3列的魔方矩阵,通过观看粗体来体会其用法。»x=magic(3)x =8163
18、574 92» x(2,:)ans =3 57»x(2,:)=1 2 3x =8161 234 921) 关干矩阵的运算的一些苏本桁令:运算命令功能af共轭转sa±b矩阵相加减s*a数乘矩阵,s是一个数值inv(a)求逆运算a'n矩阵的a7次'¥det(j)矩阵的行列式值£,(; = lu(/f)矩阵/的l,:/分解q,r = qr(a)矩阵的7?解rank(l)矩阵的秩pr,z):eig(/()i为/的特征向量,d为特征值poly 求的特征多项式size 返回/的大小2) 矩阵中元素或块的常用操作,其中d表示一个矩阵。表达式功
19、能a(r,c)3屮第r行第c列元素a屮第厂行构成的行向量j(:,c)a屮第6列构成的列向量卓:)对d按列看作一个列向fia(i)表示列向量巾第/个元素3) matlab中的数学函数有一个共同的特点:若自变量x为一个矩阵,则函数值也为x 的m阶矩阵,即对每一个元素分别求函数值。即对于11axn/(叫a =经过函数f作用后得:f(a)= 攀參am* * *amn )</()/(“細)比如» k=0,0.25,0.5,0.75k =00.25000.50000.7500» sin(2*pi*k) ans =0 1.0000 0.0000 -1.0000相信同学们已经明白,这
20、也是我们经常使用的产生各种抽样信号的方法。三、matlab支持的数据结构(1) 矩阵:略(2) 多维数组多维数组是matlab在5.0版木开始提供的。假设有2个3x3矩阵a1,a2,则可 以由下而的命令建立起一个3x3x2的数组:a=cat(3,al,a2)。试验al=cat(2,al,a2)和 a2=cat(l,ala2)将得到什么结果。对矩阵或多维数组a可以使用size(a)來测其人小,也可以使用reshape()函数熏新按 列排列。对向量来说,还可以川lcngth(a)來测其长度。不论原数组a是多少维的,ag)将返回列向fi。(3)字符串与字符串矩阵matlab的字符串是由单引号括起來的
21、。如可以使用下面的命令赋值 » stra-this is a string?(4)单元数据结构用类似矩阵的记号将给杂的数据结构纳入一个变s之下。和矩阵中的岡括号表示下标 类似,单元数组由人括号表示下标。» b=l,alan shearer*, 180, 100, 80, 75; 77, 60,92; 67,28, 90; 100, 89,78b =1 'alan shearer' 180 4x3 double访问单元数组应该由大括号进行,如第4单元中的元素可以由下則的语句得hi »b4>控制符线型或标记控制符颜色控制符标记实线g绿色拳点馨i1
22、!线m品红色0圆圈点画线b蓝色x义号虚线c青色+力u号h六角形w白色*星号v倒三角r红色s正方形a正三角k黑色d菱形>左三角y黄色p五角星<右三角u!、matlab绘1、绘制二维图形(1)、曲线图绘制二维图形的基木命令是plot(x,y,s).其屮x,y是句景,分別表示点集的横华标和纵华 标,s 指线型、颜色.plot(x,y)画实线,plot(x,yl,sl,x,y2,s2,.,x,yn,sn)将多条线画在一起.以上三种格式中的x、y都可以是表达式,但表达式的运算结果必须符合上述格式耍 求.matlab的图形功能还提供了颜色和线型的控制符,如下表:matlab提供的特殊二维图形函
23、数如下表4.4: matlai3提供的特殊:维曲线绘制函数函数名京义莆用调用格式bar ():锥条形囲bar (x, y)co cet ()单状轨迹阁cooet (x,y)conpasa ()罗似:阁cocpass (x, y )errorbar ()dru阁形-errorbar(x, y, 1, u)feather ()5 &状图feather (x, y )fillo二维墳充函数y, c)hist ()hiat(y, n)loglog ()对数阁loglog (x, y)polar ()极坐标阁polar (x,y)qu iver ()磁力线阁quiver(x, y)stairs
24、()阶梯阒形stairs cx, y)sted()火柴杆阁stern(x, y)semilogx ()t对数asecilogxcx, y),seoilogy(x, y)(2) 、符号函数(显函数、隐函数和参数方程)画图 符号阑数両图可以通过阑数ezplot或fplot來实现.函数ezplot调用格式:ezplot(f(x),a,b)表示在a<x<b绘制显函数f=f(x)的函数图;ezplot(f(x,y),xmin,xmax,ymin,ymax)表示在区间 xmin<x<xmax 和 ymin<y<ymax绘制隐函数f(x,y)=0的阑数图;ezplot(x
25、(t),y(t),tmin,tmax)表示在区间 tmin<t<tmax 绘制参数方程 x=x(t),y=y(t)的函数图.函数fplot调用格式:fplot(fun,lims)表乐绘制字符巾fun指定的函数在lims=xmin,xmax的閔形.注意:1 fun必须是m文件的蚋数名或是独立变量为x的字符串.2 fplot函数不能m参数方程和隐函数阁形,但在一个阁上可以m多个阁形.(3).对数坐标图在很多工程问题十,通过对数据进行对数转换可以更清晰地看ih数据的某些特征,在对 数坐标系中描绘数据点的曲线,可以直接地表现对数转换.对数转换有双对数叱标转换和单轴 对数坐林特换w种.川lo
26、glog函数可以实现双对数华彳小转换,川semilogx和semi logy闲数rt以 实现单轴对数叱标转换.loglog(y)表示x、y绝标都是对数坐标系;semilogx(y) 表示x坐标轴是对数坐标系; semilogyc.)表示y少标轴是对数少标系;plotyy脊两个y华标轴,一个在左边,一个在右边.2、绘制三维图形(1) 、空间曲线的绘制绘制空间曲线的基本命令为:plot3(x,y,z); plot3(x,y,z,s)或 plot3(xl,yl,zl,sr,x2,y2,z2,s2*,“.)其巾x,y,z是同维的卜'視:或矩陈.当它们是矩阵时,以它们的列对应元素为空fuj曲线上
27、点 的坐标.s指线型、颜色,这一点与二维曲线时的情形相同.(2) 、空间曲面的绘制绘制空间曲面的基木命令为mesh(x,y,z).如果x、y是叫量,则要求x的长度=矩阵z的列维;y的长度=矩阵z的行维.以zij为竖少标,x的第i个分fi为横坐标,y的第j个分s为纵坐标绘m格图.如果是同维矩阵,则数据点的 坐标分别収b这三个矩阵.meshc(x,y,z)带等高线的网格图,waterfall(x,y,z)曝布水线图,surf(x,y,z;c')w着色的曲面图,surfc(x,y,z)带等高线的可着色的曲面图.以上这些命令都可用来绘制曲iflf图,用法与mesh完全一样。例、*=(0,7=5
28、111(和2=1的数学义系4以由下面语句绘制出来: t=0: pi/50: 2*pi; x=sin(t); y=cos(t); z=t; h=plot3(x,y,z,g-)set(h,linewidth',4*get(h,linewidth')(3) .多幅图形的创建有时同一曲而或曲线需耍从不同的角度去观察,或川不同的表现方式去表现,这吋,为了 便于比较,往往在一个窗u内m多幅i冬i形.matlab用subplot命令实现这一 h的.具体格式 为:subplot (m,n,p)。使用此命令;p?,把窗口分为m><n个图形区域,p表示当前区域号。五、matlab编程1
29、、关系运算和逻辑运算(1) .关系运算符小于=小于等于大于=大于等于=等于-=不等于运算法则:如果两个比较量a、b是标量,那么,当a、b之间的关系成立吋输出值为1; 否则输出值为0。如果两个比较飛a、b是相同维数的数组,那么就按标朵的运算法则,对a、b的对应元素 进行运算,蛣后的输出结果为一个与a (或b)同维的0 1数组。如果a是标量,b是数组,那么按标量的运算法则将a与b的每个元素逐一比较,最后的输 出结果为一个与b同维的01数组。在算术运算、关系运算中,算术运算优先。(2) .逻辑运算符&与|或非运算法则:参与逻辑运算的跫称为逻辑量,非零逻辑量为“真”,用1表示;零逻辑量为“假”
30、,用0表示。如果参与逻辑运算的两个量a、b都是标暈,那么:a&b当a与b全为非零时,运算结果为“1”;否则为“0”a|ba与b中只要冇一个非零,运算结果为“1”a当a是零时,运算结果为“1”;否则为“0”如果参与逻辑运算的两个量a、b是相维数的数组,那么就按标量的运算法则,对a、b 的对应元素进行运算,最后的输出结果为一个与a (或b)同维的0-1数组。如果参与逻辑运算的a是标朵、b是数组,那么就按标贷的运算法则,将a与b的每个元 素进行运算,敁后的输出结果为一个与b同维的0-1数组。逻辑“非”是一个一元运算符,也服从数组运算规则.在算术、关系、逻辑运算中,兑术运算的最优先,其次是关系
31、运算,再其次是逻辑运算.2、控制语句作为一种常用的编程语言,matlab支持各种流程控制结构:循环结构、条件转移结 构、客观结构、试探结构。(1) 、循环结构循环语句有m种结构:for . end结构和while . end结构。这两种语m结构不兒全 相同,各有各的特色。for . end语句通常的调用格式为: for 循环变s=sl:s3:s2 循环体语句组endwhile循环语化用来控制一个或一组语旬在某逻辑条件下重复预先确定或不确定的次 数。while循环语句的一般表达形式为: while 表达式循环体语句end例如果用户想由matlab求出1+2+.+ 100的位,可以作下列的循环:
32、mysum=0; for i=l: 1:100,mysum=mysum+i; end;在上面的式子中,可以看到for循环语句中的值为1。在matlab实际编程中, 如果s3的值为1,则可以在该语句中省略,故该语句可以简化成fori=l:100。在实际编程 中,在matlab下采川循环语句会降低其执行速度,所以前面的程序可以由k面的命令 來代转:i=l:100; mysum=sum(i)o在这一语心j屮,宵先也成了一个句i,然后用内部函数 sum()求出i向量的各个元素之和,或更简单地,该语句还可以写成sum(l:100)o如果前面 的100改成10000,再运行这一程序,则可以明兄地看岀,后一
33、种方法编写的程序比前一 种方法快得多。matlab并不要求循环点等间距,假设v为任意-个14量,则可以用fori=v來表 示循环。同样的问题在while循环结构下可以表示为 mysum = 0; i=l; while (i<=100), mysum=mysum+i; i=i+l; end(2) 、条件转移结构:条件转移语句:if条件式1 条件块语句组1clscif条件式2 条件块语句组2參參else条件块语句组n+lend(3) 、开关结构:matlab从5.0版开始提供了开关语句结构,其基本语句结构为: switch开关表达式case表込式1 语句段1case 表达式2,表达式3,.,
34、我达式m语句段2otherwise 语句段nendmatlab开关语句与c有区别:当开关表达式的位等于表达式1时,将执行语化段1,执行完语仂段1后将转出开关 体,无需像c语言那样在下一个case语句前加break语句,所以本结构在这点上和c语 言是不同的。在case语句引导的各个表达式中,不要用重复的表达式,否则列在后面的开关通路将 永远也不能执行。程序的执行结果和各个case语川的次序是无关的。(4)、试探结构:matlab从5.2版本开始提供了一种新的试探式语句结构,其一般的形式为: try语句段1 catch语句段2 end本语句结构首先试探性地执行语句段1,如果在此段语句执行过程中出现
35、错误,则将错 误信息赋给保留的lasterr变暈,丼放弃这段语句,转而执行语句段2屮的语句。这种新的 语句结构是c等语言屮所没有的。3、函数编写方法与应用所谓matlab程序,大致分力两类:m脚本文件(m-script)和m函数(m-function), 它们均是普通的ascii码构成的文件。m脚本文件中乜含一族曲matlab语言所支持 的语句,它类似于dos卜*的批处理文件,它的执行方式很简单,川户只耑在matlab的 提示符下键入该m文件的文件名,这样matlab就会自动执行该m文件屮的各 条语句,外将结果直接返冋到matlab的工作空间。m函数格式是matlab程序设计 的主流,一般情况
36、下,不建议您使用m脚本文件格式编程。matlab的m函数是山function语句引导的,其基本格成如卜: ftmctkm 返回变暈列表=函数名(输入变量列表)注释说明语川段,由引导 输入、返回变s格式的检测 函数体语句这里输入和返回变ffl的实p示个数分别山nargin和nargout两个matlab保留变量來 给岀,只耍进入该函数,matlab就将£)动屯成这两个变景,不论您足否直接使川这两个 变鲎。返回变呈如果多于1个,则应该用方括号将它们括起来,否则可以街去方括号。输 入变量和返回变量之间川逗号來分割。注释语句段的每行语句都应该中冉分号引导,百 分号后血的内界不执行,只起注释作
37、用。用户采用help命令则可以兄示出来注释语句段的 闪容。此外,:ll:规的变s个数检测也是必要的。如果输入或返回变s格式不正确,则应该给 出相应的提示。我们将通过下面的例子來演示函数编程的格式与方法。例假设我们想生成一个nxm阶的hilbert矩阵,它的第i行第j列的元素值为 l/(i+j-1)o我们想在编写的函数中实现下側儿点:如果只给fli一个输入参数,则会自动生成一个方阵,即令。在函数中给ili合适 的帮助信息,包括葙木功能、调川方式和参数说明检测输入和返回变3的个数,如果冇错误 则给出错误信总。数字信号处理的matlab实验matlab强人的扩展功能为各个领域的应用提供了有力的t具,
38、信号处理工具箱就是 其屮之一。在信号处理工具箱屮,matlab提供了滤波器分析、滤波器实现、fir数字滤 波器设计、iir数字滤波器设计、iir滤波器阶次的佔计、模拟低通滤波器的原理没计、模 拟滤波器的设计、线性变换等方側的函数命令,这些函数命令放在signal/signal目录中,可 通过help signal/signal來获取。本实验将利川maltab软件对数字信号处理屮的基本理论 和方法进行初步实验,以帮助m学们更好掌握数字信号处理的方法和了解matlab的实际 应川。实验要求1. 预习实验指导书和教材,并根裾实验内容编好程序,在实验课上调试,分析。2. 将源程序、结果、分析和思考题写
39、在实验报告里(请按实验报告摸板填写)。在下一个实 验前将前一个实验报告以班级为单位压缩、打乜发送到指导教师的电子邮箱:(e-mail): aeddy8 中。实验一 matlab基础入门练习i实验目的j1、熟悉matlab的启动,命令窗口,编辑窗口和simulink等窗口的打开和使用方法。2、熟悉常用的matlab变量命令的使用方法。3、掌握matlab各种变暈及赋值方法和运算符的使川。4、掌握matlab的各种绘图函数和使用方法。5、掌握matlab的m文件(包括脚木文件和m函数的使川方法)实验仪器计算机、matlab7软件实验参考书:£1编参考书实验内容1. 向s和矩阵的产生方法实
40、验,用矩阵输入的一般方法输入,或用:号來进行矩阵和 h'd量的输入。练4下列矩阵输入方法»a=0:0.1:lb=2,2,2;3,5,6»b=2 2 2;3 5 6»x=eye(3,4),»y=rand(3,4)»z=zeros(3,4)»i=ones(3,4)观察上述方法产生的矩阵特点,总结matlab输入矩阵的方法。2、运算符的使用:对于矩阵的运算有加+,减-,乘*,除:,/,乘方a,点乘.*、点除./、点 乘方.a(其中点乘、点除和点乘方表示各对应元的运算),求逆inv,求特征值eig,矩阵行列 式值det等。(1)、实验
41、对两个矩阵进行非点运算和点运算观察区别。»c=magic(3)»z=a*c»z=a.c(2)、求下面的线性a裎组的解"23-1"'2 "823=4453923matlab语句»a=2,3,-l; 8,2,3; 45,3,9;»b=2; 4; 23;»x=inv(a)*b»dct(a)观察上述运算产生的结果,加深matlab进行矩阵运算的高效性,实际上,matlab 起初就是为数值计算没计的,因此,其数值计算功能很强,如微积分运算都很方便地在 matlab屮实现。3. matlab函数的使
42、用方法常用的dsp序列见下表,以单位采样为例,请给岀单位阶跃序列的matlab函数。序列数学表达式matlab表达式单位采样序列抑);做 it0,0nnl:n2;x=(n-n0)=0;单位阶跃序列0,n<0 kn=nl :n2;x=(n-n0)>=0;实数指数序列n=nl:n2;x=a.an;复数值数序列n=nl:o+jo )*n);正余弦序列x(«) = cos(fl« + v/zn=nl ;n2;x=cos( w *n+ 0 );随机序列nnl:n2j;x=rand(l,n2“nl);例:单位采样序列的产生。function x,n=impseq(no,n
43、1,n2);%generate x(n)=delta(n-no);no=input(,please input no:1);nl=inputfplease input nl:');n2=input(,please input n2:r);if (n 1 <=n0)& (n0<n2)n=nl:n2;x=(n-no)=o;elseerrorfno must betwen nl and n2!); end运行该function,在matlab命令銜口依次输入三个数,则可得输出的单位采样序列。 please input n0:2please input nl:lplease
44、 input n2:3ans =0 1 0试根裾此例编写产生单位阶跃序列的函数,分析k与单位抽样序列的不同。4. 绘图命令的使用,例请输入以下语句观察输fli图形matlab的m文件:选择file-new-m-file,输入以下语句,保存义件后运行。 t=0: pi/50: 2*pi; x=sin(t); y=cos(t); z=t; h=plot3(x,y,z,g-) set(h,linewidth',4*get(h,linewidth')其中,前面两句比较容易理解,笫三句的意思是画fli一个三维图形,m时获得此图形的句柄; 第四句对此句柄图形的宽度用4倍默认宽度來画。5.
45、其它matlab常川功能练习。请同学自己根裾第一部分的介绍选择性练ai。思考题1、总结matlab输入矩阵的方法。2、总结matlab中数组运算与矩阵运算的区别。3、总结matlab十賊数和脚本文件的区别。实验二离散时间信号分析实验目的1、掌握连续信号的抽样方法,加深对吋域采样定理的理解。2、熟悉吋域离散系统的吋域特性。3、掌握常用序列的产生方法。4、掌捉向相关函数的性质和使用方法。实验仪器计算机、matlab6.5软件实验参考书】:编参考书实验内容1、序列的表示数字信号处理的对象是离散(吋间),序列在matlab屮以向量形式来表示,比如对 于个序列 x(-l)=2, x(0)=4, x( 1
46、)=20, x(2)=7,则»xn=2 4 20 7 xn =2 4207»n=-l:2n =-10 12需要注意的问题是,在matlab屮取矩阵或句県的元素的索引号均为正整数,因此, 如果需要获得xn=4的值,该怎么取呢?是用xn(0)还是xn(2)呢?请大家试一试。当然如果 m此图形当然可以用»stem(n,xn)來实现。体会两荞的区别。2、序列的加减乘运算谘输入两个长度为5的实序列x=l 2 3 4 5和y=2 46 8 10,对其进行序列运算。(1) 序列加的matlab语句:z=x+y(2) 序列相乘matlab语幻:z=x.*y"2(3) 序
47、列元素和 5 =%(«)的 matalb 语句:s=sum(x(nl:n2)qo(4) 序列的能量 £ = | x(/7)|2 matalb 语句:s=sum(abs(x).a2)/i=-co(5) 序列的绝对和 s = | x(") |matalb 语么j: s=sum(abs(x(nl:n2)n=/1(6) 序列的右移 no 位y(n) = x(n-n0)matalb 语句:y=zeros(l,no),x对于序列的厢,由于足每个元素对应相飛,因此,在matlab中不能用*乘(相s的 乘)而必须.*乘(数组的乘)。观察结果。3、连续信号的抽样,分析抽样序列的特性
48、。根据抽样定理,对于一个限频信号,如果采川 高于其二倍的频率进行抽样,则其离散值可完全表征连续信号,即x(n)=x(t)|t=nts。例:现 柯工频信号(/) =50/z,试选择三种抽样频率进行抽样,观察抽样信号的图形。matlab程序如下。clear all150;a=220;n=0:40;%没s抽样的点数卜*面没s抽样周期(对放相应的抽样频率) tsl=0.01;ts2=0.005;ts3=0.0025;%上1&供设置丫三个抽样周期,下ifti获得艽抽样的离散序列xnl=a*sin(2*pi*f*n*tsl);xn2=a*sin(2*pi*f'*n*ts2);xn3=a*s
49、in(2*pi*pn*ts3);%用图形的方式显示结果,给同学们一个直观的认识subplot(311 );stem(n,xn 1subplot(312);stem(n,xn2,*);subplot(313);stem(n,xn3,-');grid on0510152025303540500类比上例,请改用matlab的函数实现对x(0 = y sinp/r/w/g)抽样,a,a,fd,fs参数由键盘输入,产生不同的函数和不同的抽样频率,取抽样点为50,并将结果以阁形方 法显示出来。提示:涵数的格式 function x=fsignal(a,a,fo,fs)%输入n%输入信号的形式在主程
50、序中调用此函数的格式为x= fsignal(a,a,h),fs);采样频率fs分别为100hz,200hz和400hz,观察时间信号的特征。在第三章后可以观 察三种采样信号的离散谱。4. 时域离散信号的相关性研究,分析下面例题。z=inputf随机噪声功率=);在matlab窗口输入随机信号的功率a=sqrt( 12*z);u=rand( 1,100);u=u-mcan(u);k=0:99;x= 10*cos(0.0008*pi.*k. *k);y=x+u;subplot(311 );stem(k,x,b');axis(o,l 00,-12,12);title(原信号);xlabel(
51、n);ylabel(x(n)');8此口10似12)时6111(1,*13*);3他(0,100,-12,12)渖叫1随机噪声叠加在信号上|);xlabel(n);ylabel(y(n);subplot(313);yc=xcorr(y, 100,unbiased,);plot(yc);原信号020406080100n随机噪声叠加在信号i:10opirntf10;叫;.1 1 1iif v 1jlll iij 1 xi <公 匁a,.r608002040100上例絲习完成下jftf实验。令x(/7)= a sin(69/7)+ un),其中69 =/16, 是內噪声,现要求(1)、
52、产生均值为0,功率p=0.1的均匀分布白噪声,求w(/)的£1相关函数久(/n);(2)、使x(/7)的信噪比为10db,决定a的数值,丼m出x(h)的图形及相关函数的图形。 思考题1、如果两个序列不等长,如何在matlab下进行序列的运算?2、通过help命令,了解matlab的fliplr、decimate和interp闲数的功能。3、试简述连续信号抽样的原理及方法。实验三离散时间系统及响应实验目的1、熟悉离散吋间系统的吋域和频域分析方法。2、掌握利用matlab求解差分方程和频率响应的方法。3、利用卷积方法观察分析系统的时域特性。实验仪器计算机、matlab6.5软件实验参考书
53、:£|编参考书实验内容1、时域离散系统和系统响应分析。输入下列程序,观察实验结果,仿照此程序,完成下面 问题的编程。n=16; n=o:n-l; x=sin(2*pi*n/64)+sin(20*pi*n/64);a=l -0.25;b=0.5 0.45 0.35;subplot(221); zplane(b,a);y=filter(b,a,x);subplot(222 );stem(n,y);h,w=freqz(b,a);magh=(abs(h);subplot(223);plot(w/pi,magh);phaseh=angle(h);subplot(224);plot(w/pi,p
54、hasch);一个特定的线性和吋不变系统,描述它的差分方程如t:y(n) 0.5少("一 1) + o.25y(/7 - 2) = x(n) + 2x(n -1) + x(n - 3)a. 确走系统的稳定性提示:零极点足分析系统频率响应的奋力工具之一,在malab十川zplane()闲数両出 零点极点阁,对于本例,利用零极点图分析系统是否稳定。b. 如果此系统的输入为 1(") = 5 + 3cos(0.2?) + 4sin(0.6?)>(z?)。在0 幺 a?幺 100 间求 出灭0)的响应。提示:对于线性差分方程的求解,在matlab屮可以调川filtic()和filtcr()两个函数完 成。其巾filter()函数参照教材p77面,filtic()函数调用格式为:z = filtic( b, a, y, x)其中,b与a的用法与filtero函数相同,x和y分别为初始条件的向量。c. 阁示系统的频率特性提示:使川frcqz()函数求解系统的频率特性,幅度响应a=abs(h),相位响应p=anglc(h)2、求序列的离散吋间傅立叶变换,求出其dtftmw)。画出iv)的幅值和相位曲线。00= fx(n) ="=30x(n) = 4,3,2,1,23,4提示:木来是1(6>/连续的,但matlab中
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 防治糖尿病-世界糖尿病日知识科普
- 2025汽车销售的合同范本
- 肠外营养的观察和护理
- 导尿术操作并发症及处理流程考核试题及答案
- 骨科住院病人健康宣教
- 蛋白质能量型营养不良
- 妇幼保健院2025年基础生命支持培训考核试题及答案
- 施工导流及围堰专项施工方案
- 冠心病规范化管理指南
- 2025年医院科室护理年度工作计划
- 光伏储能电池安全运行的操作规程
- 硝酸铵生产培训课件
- 政协提案知识及撰写培训课件
- 2024-2025学年广东省深圳市宝安区高二上学期期末调研测试数学试题(解析版)
- 2025年互联网保险市场国际化发展策略研究报告
- 2025国家义务教育质量监测试题(含答案)
- 冠脉介入考试题及答案
- 2025年-中华民族共同体概论-第十五讲 新时代与中华民族共同体建设(2012- )
- 酒店职业安全培训内容课件
- 贷款基础知识培训资料课件
- 公共场所卫生检验方法 第2部分:化学性指标-编制说明
评论
0/150
提交评论