工程信号处理MATLAB实验指导书v1p0_2008完全版
信号与系统及matlab硬件实验指导书
信号与系统及matlab实验指导书严素清龚开月编实验一 RC 一阶电路的响应及其应用一、实验目的测定RC 一阶电路的零输入响应、零状态响应及完全响应。
学习电路时间常数的测量方法,了解微分电路和积分电路的实际应用。
进一步熟悉示波器的使用,学会用示波器测绘图形。
二、实验原理一阶电路的过渡过程是由于电路中有一个电容或电感逐步储存或释放能量的渐变过程引起的,该过渡过程是十分短暂的单次变化过程,对时间常数 较大的电路,可用慢扫描长余辉示波器观察光点移动的轨迹。
然而能用一般的双踪示波器观察过渡过程和测量相关的参数,必须使这种单次变化的过程重复出现。
为此,我们利用信号发生器输出的矩形脉冲序列波来模拟阶跃激励信号,即令方波输出的上升沿作为零状态响应的正阶跃激励信号;方波下降沿作为零输入响应的负阶跃激励信号。
只要选择方波的重复周期T 与电路的时间常数 满足一定的关系,它的响应和直流电源接通与断开的过渡过程是基本相同的。
1、RC 电路的过程过渡其电路组成和响应波形如图1-1所示。
状态响应图1-1 RC 一阶电路及其响应零输入响应:设Uc (0)=Uo ,开关由1-2,换路后Uc (t )=Use-t/τ ,t ≥0,零状态响应:0)0(=c U ,开关由2-1,换路后Uc (t )=Us(1-e-t/τ),t ≥0RC 一阶电路的零输入响应和零状态响应分别按指数规律衰减和增长,其变化的快慢决定于电路的时间常数τ ( RC =τ)2、时间常数 τ 的测定用示波器测定RC 电路时间常数的方法如下:在RC 电路输入矩阵脉冲序列信号,将示波器的测试探极接在电容两端,调节示波器Y 轴和X 轴各控制旋钮,使荧光屏上呈现出一个稳定的指数曲线如图1-2所示。
根据一阶微分方程的求解得知当T=τ时,Uc (τ)=0.623Us ,设轴扫描速度标称值为S(s/cm),在荧光屏上测得电容电压最大值)(cm a U U s cm ==在荧光屏Y 轴上取值:b=0.623*a(cm)在曲线上找到对应点Q 和P ,使PQ =b测得OP=n(cm)则时间常数τ=S(s/cm)*n(cm)亦可用零输入响应波形衰减到0.368Us时所对应的时间测取。
MATLAB实验指导书(DOC)
MATLAB实验指导书前言MATLAB程序设计语言是一种高性能的、用于科学和技术计算的计算机语言。
它是一种集数学计算、分析、可视化、算法开发与发布等于一体的软件平台。
自1984年MathWorks公司推出以来,MATLAB以惊人的速度应用于自动化、汽车、电子、仪器仪表和通讯等领域与行业。
MATLAB有助于我们快速高效地解决问题。
MATLAB相关实验课程的学习能加强学生对MATLAB程序设计语言理解及动手能力的训练,以便深入掌握和领会MATLAB应用技术。
目录基础型实验............................................................................................ - 1 - 实验一MATLAB集成环境使用与基本操作命令练习 ............. - 1 - 实验二MATLAB中的数值计算与程序设计 ............................. - 7 - 实验三MATLAB图形系统 ......................................................... - 9 -基础型实验实验一 MATLAB 集成环境使用与基本操作命令练习一 实验目的熟悉MATLAB 语言编程环境;熟悉MATLAB 语言命令二 实验仪器和设备装有MATLAB7.0以上计算机一台三 实验原理MATLAB 是以复杂矩阵作为基本编程单元的一种程序设计语言。
它提供了各种矩阵的运算与操作,并有较强的绘图功能。
1.1 基本规则1.1.1 一般MATLAB 命令格式为[输出参数1,输出参数2,……]=(命令名)(输入参数1,输入参数2,……) 输出参数用方括号,输入参数用圆括号如果输出参数只有一个可不使用 括号。
1.1.2 %后面的任意内容都将被忽略,而不作为命令执行,一般用于为代码加注释。
MATLAB实验指导书
实验一熟悉MATLAB工作环境一、实验目的初步熟悉MATLAB工作环境,熟悉命令窗口,学会使用帮助窗口查找帮助信息。
二、实验内容(1)熟悉MATLAB平台的工作环境;(2)熟悉MATLAB的五个工作窗口;(3)了解MATLAB的数值显示格式设置。
(4)学会使用帮助三、实验步骤1.熟悉MATLAB的五个基本窗口①命令窗口(Command window)②工作空间窗口(Workspace)③命令历史记录窗口(Command history)④当前目录窗口(Current directory)⑤帮助窗口(Help window)2.MATLAB的数值显示格式设置用户可根据需要,对命令窗口的字体风格、大小、颜色和数值计算结果的显示格式进行设置。
①屏幕显示方式屏幕显示方式有紧凑(compact)和松散(loose)两种形式,默认为松散(loose)格式。
具体设置格式为:format compact/loose②数字显示格式数字显示格式有大致有:长、短整型、长、短浮点、近似有理数、十六进制数以及银行数等表示方式。
具体设置为:format long(long e\long g) %长整型、长浮点、以最佳方式显示数据format short(short e\ short g) %短整型、短浮点、以最佳方式显示数据format hex %显示十六进制数format bank %金融数语(元、角、分)表示数据3.帮助信息的使用MATALB的帮助信息可通过以下两种方式得到:①从菜单工具栏得到单击工具栏的图标或选择菜单view\help (help\matlab help),都能启动帮助窗口,然后选择你所需要的帮助信息。
②命令窗口发布命令得到在命令窗口的提示符后输入help 需要帮助的命令关键字,即可得到该关键字的所有信息。
其格式如下:help 命令关键字例如:help clear键入enter键后,则在命令窗口显示出具体的命令格式,说明等信息。
数字信号处理实验指导书--Matlab版
四、实验报告要求
1、简述实验目的和实验原理。 2、对于 8 点 DFT 的报表显示,讨论其特点。 3、总结实验中的主要结论,你的收获和体会。
实验三 快速傅立叶变换(FFT)及其应用
一、实验目的
1、了解计算 DFT 算法存在的问题及改进途径。 2、掌握几种 DFT 算法(时间抽取算法,频率抽取算法等)。 3、学习并掌握 FFT 的应用。
FFT 的应用
凡是利用付里叶变换来进行分析、综合、变换的地方,都可以利用 FFT 算法来减少其计 算量。
FFT 主要应用在 1、快速卷积 2、快速相关 3、频谱分析
快速卷积
实际工作中常常利用 FFT 来计算两个序列 x(n)(长为 N)和 h(n)(长为 M)的线性卷积 (即实验五中的“离散卷积”)。我们知道,两个有限长序列的线性卷积可以用循环卷积来代 替,但必须用补零的方法使 x(n)和 h(n)都延长至 L 点,L=N+M-1。由于循环卷积可以用 FFT 来计算,这比直接卷积(线性卷积)的计算速度要快得多,因而循环卷积称为快速卷积,而 线性卷积称为慢卷积。 用 FFT 计算线性卷积的步骤如下: 1、用补零的方法将 x(n)和 h(n)都延长至 L 点,L=N+M-1,得到新序列; 2、计算 X(k)=DFT[x(n)]、H(k)=DFT[h(n)]; 3、计算 Y(k)=X(k)H(k); 4、计算 Y(k)的 IDFT,即 y(n)=IDFT[Y(k)]。
n=0
=N −1 iX就得到有限长序列的傅里叶变换(DFT)。我们把: (1)时域周期序列看作是有限长序列 x(n)的周期延拓; (2)把频域周期序列看作是有限长序列 X(k)的周期延拓.
∑N −1
− j 2π nk
X (k) = DFT[x(n)] = x(n)e N
matlab程序设计与应用实验指导书
3)如果A矩阵是非奇异方阵,A\B等效与A的逆左乘B矩阵,inv(A)*B,而B/A等效于A矩阵的逆右乘B矩阵,也就是B*inv(A).
4)矩阵的乘方。一个矩阵的乘方运算可以表示成A^x,要求A为方阵,x为标量。
3,矩阵点运算
二、实验原理
1,通用的特殊矩阵
常用的产生通用特殊矩阵的函数有:
zeros:产生全0矩阵;
ones:产生全1矩阵
eye:产生单位矩阵;
rand:产生0-1间均匀分布的随机矩阵;
randn:产生均值为0,方差为1的标准正态分布的随机矩阵。
2,矩阵运算
1)矩阵加减运算:假定有两个矩阵A和B,则可以由A+B和A-B实现矩阵的加减运算。
5,完成以下各题,将答案写入实验报告,并在机器上运行结果验证
(1)编写一个函数文件求两个数的最大值。
(2)编写一个函数文件求三个数的最大值。
(3)编写一个函数文件,求矩阵的最大元
(4)编写一个函数文件,以向量为参数,对向量元素进行排序并输出
六、实验报告要求
1.完成实验内容中的计算;
2.验证实验内容中计算所得结果的正确性。
实验
一、实验目的
matlab提供了强大的图形处理功能,本次实验旨在使学生熟悉和掌握应用matlab实现二维图形和三维图形的绘制和控制与表现方法。
二、实验原理
1,二维数据曲线图
(1)绘制单根二维曲线plot(x,y);
(2)绘制多根二维曲线plot(x,y)当x是向量,y是有一维与x同维的矩阵时,则绘制多根不同颜色的曲线。当x,y是同维矩阵时,则以x,y对应列元素为横、纵坐标分别绘制曲线,曲线条数等于矩阵的列数。
实验一 MATLAB基本操作及简单信号处理
实验一 MATLAB 基本操作及简单信号处理1 实验目的● 学会运用MATLAB 表示的常用离散时间信号; ● 学会运用MATLAB 实现离散时间信号的基本运算。
2 实验原理及实例分析2.1 离散时间信号在MATLAB 中的表示离散时间信号是指在离散时刻才有定义的信号,简称离散信号,或者序列。
离散序列通常用)(n x 来表示,自变量必须是整数。
离散时间信号的波形绘制在MATLAB 中一般用stem 函数。
stem 函数的基本用法和plot 函数一样,它绘制的波形图的每个样本点上有一个小圆圈,默认是空心的。
如果要实心,需使用参数“fill ”、“filled ”,或者参数“.”。
由于MATLAB 中矩阵元素的个数有限,所以MA TLAB 只能表示一定时间范围内有限长度的序列;而对于无限序列,也只能在一定时间范围内表示出来。
类似于连续时间信号,离散时间信号也有一些典型的离散时间信号。
1. 单位阶跃序列单位阶跃序列)(n u 定义为)0()0(01)(<≥⎩⎨⎧=n n n u (1-1)在MA TLAB 中,冲激序列可以通过编写uDT .m 文件来实现,即function y=uDT(n)y=n>=0; %当参数为非负时输出1调用该函数时n 也同样必须为整数或整数向量。
【实例1-1】 利用MATLAB 的uDT 函数绘出单位阶跃序列的波形图。
解:MATLAB 源程序为>>n=-3:5; >>x=uDT(n);>>stem(n,x,'fill'),xlabel('n'),grid on >>title('单位阶跃序列') >>axis([-3 5 -0.1 1.1])程序运行结果如图1-1所示。
2. 矩形序列矩形序列)(n R N 定义为),0()10(01)(N n n N n n R N ≥<-≤≤⎩⎨⎧= (1-2)矩形序列有一个重要的参数,就是序列宽度N 。
matlab实验指导书
matlab实验指导书《通信工程专业科学计算与仿真》实验指导书董自健编淮海工学院电子工程系2013-12目录实验一:Matlab入门与基本应用 (1)实验二:Matlab基本运算 (3)实验三:M文件编程............................................................................................ 错误!未定义书签。
实验四:MASK系统性能仿真. (4)实验五:simulink仿真 (6)实验六:matlab仿真应用 (7)实验一:Matlab入门与基本应用一、实验目的(1)了解MATLAB家族产品构成,MATLAB的发展及特点,(2)熟悉MATLAB 7.0版本的界面、环境,基本操作等;二、实验内容及原理启动计算机;双击桌面上MATLAB快捷图标;在Command windows窗口下输入一些常用命令(参考教材);进行数据、矩阵测试,熟悉MATLAB的数据存储、赋值、运算特点;三、实验要求熟悉MATLAB 7.0版本的界面、环境,基本数据操作等。
实验二 Matlab 基本运算一、实验目的:1、掌握建立矩阵的方法;2、学习基本运算方法,即掌握MATLAB 各种表达式的书写规则以及常用函数的使用。
二、实验内容:1、创建两数组x1=[5 4 3;-1 0 8;2 5 7],x2=[8 5 2;-3 1 2;6 8 0]完成数组x1 x2的加减乘除,变量名分别为x3 x4 x5 x6;完成矩阵x1 x2的加减乘除计算,变量名为x7 x8 x9 x10,求矩阵x1 x2的行列式值及逆阵,变量名为detx1 detx2 invx1 invx2。
2、创建四行三列的零矩阵、1矩阵、单位阵,变量名为b1、b2 、b3 。
3、求方程3x .4-2x 3+6x 2+x -5=0的根。
4、解线性方程组:x 1-2x 2-3x 3+4x 4=86x 1+2x 2-x 3=6 7x 1+6x 2-2x 4=311x 2+7x 3-5x 4=145、利用MATLAB 绘制下列分段曲线:其中A 为常数。
基于MATLAB的数字信号处理实验指导书(2008)
基于MATLAB的数字信号处理实验指导书梁华庆编机电工程学院电工与电子信息技术实验教学中心2006年10月目录第一部分MATLAB信号处理工具箱使用介绍 (1)第一章概述 (1)1.1MATLAB简介 (1)1.2MATLAB的基本操作 (1)第二章信号的生成和信号的变换 (4)2.1序列的表示及基本序列的生成 (4)2.2序列的DFT、FFT (7)2.3用FFT法求线性卷积 (8)第三章数字滤波器的结构 (10)3.1直接型——传递函数形式 (10)3.2零极点增益形式 (10)3.3级联型——二阶因子级联形式 (11)3.4并联型——部分分式展开式形式 (11)第四章IIR数字滤波器设计 (13)4.1MATLAB中模拟滤波器设计函数介绍 (13)4.2MATLAB中IIR数字滤波器设计函数 (18)第五章FIR数字滤波器设计 (22)5.1MATLAB中有关FIR DF设计的函数 (22)5.2参考程序 (23)第二部分数字信号处理上机实验 (31)实验一、用DFT进行信号的谱分析 (31)实验二、DFT和DCT的应用 (32)实验三、IIR数字滤波器的设计 (34)实验四、FIR数字滤波器的设计 (35)第一部分MATLAB信号处理工具箱使用介绍第一章概述1.1MATLAB简介在科学研究与工程应用中,往往要进行大量的数学计算,其中包括矩阵运算。
这些运算一般来说难以用手工精确和快速地进行,而要借助计算机编制相应的程序做近似计算。
目前流行用C、FORTRAN等语言编制计算程序,既需要对相关算法有深刻的了解,还需要熟练地掌握所用语言的编程技巧。
对大多数人而言,同时具备这两方面的才能有一定的困难。
即使有,编程也费时费力,影响工作效率。
为克服上述困难,美国Math work公司于1967年推出“Matrix Laboratory”(缩写为MATLAB)软件包,并不断更新和扩充。
MATLAB软件包现已成为国际公认的最优秀的科技界应用软件,是一种面向科学和工程计算的高级语言,它强大的计算功能、计算结果的可视化以及极高的编程效率,是其它语言无与伦比的。
matlab实验指导书
MATLAB实验指导书指导老师许承东实验一MATLAB基本操作实验目的1、熟悉MATLAB的工作环境;2、掌握MATLAB常用的操作运算符和一些基本操作;3、学会编写M文件。
实验内容e sin3t,其中t的取值范围为[0,4π]。
1、绘制衰减图线y=5.2/t(1)启动MATLAB,如图1.1所示。
图1.1 MATLAB的工作环境(2)直接在命令窗口输入以下代码:(3)程序执行后显示的衰减振荡曲线如图1.2所示。
图1.2 衰减振荡曲线(4)生成M文件。
在历史命令窗口中选中上面所写代码,单击鼠标右键,在弹出菜单中选择Create M-File菜单项,即可创建为M文件,将文件命名为quxian.m保存。
2、向量化和循环结构的比较(1)从工具栏中单击New M-file图标,或从菜单中选择File/New/M-File创建新的M文件,如图1.3所示。
图1.3 创建新的M文件(2)在M文件编辑器中输入以下代码:(3)保存运行。
将文件名改为vectorize_contrast.m保存。
单击Run 命令或直接按F5执行。
(4)执行结果实验二MATLAB基本图形绘制实验目的1、掌握MATLAB二维图形的绘制;2、掌握MATLAB三维图形的绘制。
实验内容1、二维图形的绘制(1)从工具栏中单击New M-file图标,或从菜单中选择File/New/M-File创建新的M文件。
(2)在M文件编辑器中输入以下代码:(3)保存运行。
将文件名改为example_plot.m保存。
单击Run命令或直接按F5执行。
(4)二维图形绘制结果如图2.1所示。
图2.1 二维图形绘制结果2、三维曲面绘制(1)从工具栏中单击New M-file图标,或从菜单中选择File/New/M-File创建新的M文件。
(2)在M文件编辑器中输入以下代码:(3)保存运行。
将文件名改为matlab_script.m保存。
单击Run命令或直接按F5执行。
matlab信号处理实验报告
matlab信号处理实验报告Matlab信号处理实验报告引言信号处理是一门研究如何获取、分析、变换和解释信号的学科。
在现代科技的发展中,信号处理在许多领域都扮演着重要的角色。
本文将以Matlab为工具,进行信号处理实验,并对实验结果进行分析和讨论。
实验一:信号的采样和重构在信号处理中,采样是指将连续时间的信号转化为离散时间的信号。
重构则是将离散时间的信号恢复为连续时间的信号。
我们选取了一个正弦信号进行实验。
首先,我们生成一个频率为10Hz的正弦信号,并对其进行采样。
使用Matlab的函数进行采样,可以得到离散时间的信号。
接下来,我们对采样后的信号进行重构。
使用Matlab的函数进行重构,可以得到连续时间的信号。
通过实验,我们可以观察到采样和重构过程中的信号失真情况。
信号的采样频率越高,重构后的信号越接近原始信号。
这是因为高采样频率可以提供更多的采样点,从而更好地还原原始信号。
实验二:信号的频谱分析频谱分析是信号处理中常用的一种方法,用于分析信号的频率成分。
我们选取了一个复杂的信号进行频谱分析。
首先,我们生成一个由多个正弦信号叠加而成的复杂信号。
使用Matlab的函数进行信号合成,可以得到复杂信号。
接下来,我们对复杂信号进行频谱分析。
使用Matlab的函数进行频谱分析,可以得到信号的频谱图。
通过实验,我们可以观察到复杂信号的频谱图中的不同频率成分。
频谱图上的峰值表示信号中的主要频率成分,而峰值的高度表示该频率成分的强度。
通过频谱分析,我们可以了解信号的频率特性,进而对信号进行进一步处理和分析。
实验三:信号的滤波处理滤波是信号处理中常用的一种方法,用于去除信号中的噪声或不需要的频率成分。
我们选取了一个包含噪声的信号进行滤波处理。
首先,我们生成一个包含噪声的信号。
使用Matlab的函数生成噪声信号,并将其与原始信号叠加,可以得到包含噪声的信号。
接下来,我们对包含噪声的信号进行滤波处理。
使用Matlab的函数进行滤波处理,可以得到去除噪声后的信号。
MATLAB实验指导书
MATLAB实验指导书电子与计算机科学技术学院实验一MATLAB编程环境一、实验目的1.熟悉MATLAB编程环境二、实验环境1.计算机2.MATLAB7.0集成环境三、实验说明1.首先应熟悉MATLAB7.0运行环境,正确操作2.实验学时:2学时四、实验内容和步骤1.实验内容(1)命令窗口的使用。
(2)工作空间窗口的使用。
(3)工作目录、搜索路径的设置。
(4)命令历史记录窗口的使用。
(5)帮助系统的使用。
(6)了解各菜单的功能。
2.实验步骤(1)分析实验内容,写出程序大致框架或完整的程序代码。
(2)进入MATLAB7.0集成环境。
(3)编辑程序并进行保存。
(4)运行程序,若有错误,修改错误后再次运行,如此反复进行到不显示出错为止。
(5)检查程序输出结果。
五、实验报告要求1.整理实验结果,填入相应表格中2.小结实验心得体会实验二矩阵基本运算(一)一、实验目的1.通过实验,进一步熟悉MATLAB编程环境2.通过实验掌握建立矩阵的几种方法3.通过实验理解常用的矩阵运算二、实验环境1.计算机2.MATLAB7.0集成环境三、实验说明1.首先应熟悉MATLAB7.0运行环境,正确操作2.自主编写程序,必要时参考相关资料3.实验学时:2学时四、实验内容和步骤1.实验内容(1)设A和B是两个同维同大小的矩阵,问:1)A*B和A.*B的值是否相等?2)A./B和B.\A的值是否相等?3)A/B和B\A的值是否相等?4)A/B和B\A所代表的数学含义是什么?(2)写出完成下列操作的命令。
1)将矩阵A第2—5行中第1,3,5列元素赋给矩阵B。
2)删除矩阵A的第7号元素。
3)将矩阵A的每个元素值加30。
4)求矩阵A的大小和维数。
5)将向量t的0元素用机器零来代替。
6)将含有12个元素的向量x转换成3*4矩阵。
7)求一个字符串的ASCII码。
8)求一个ASCII码所对应的字符。
(3)下列命令执行后,L1、L2、L3、L4的值分别是多少/A=1:9;B=10-A;L1=A==B;L2=A<=5;L3=A>3&A<7;L4=find(A>3&A<7);2.实验步骤(1)分析实验内容,写出程序大致框架或完整的程序代码。
Matlab实验指导书(1-10完整)
1.初次接触 Matlab 应该注意函数表达式的文本式描述。 2.在使用图形函数计算器 funtool 时,注意观察 1 号和 2 号窗口中函数的图形。
四、实验报告要求
1.针对图形函数计算器 funtool,对每一类型计算记录其中一个图形的曲线。 2.书写实验报告时要结构合理,层次分明,在分析描述的时候,需要注意语言的
⎪⎪⎨⎪−x12+x11+4
x2 x2
− 7x3 − 7x3
−15x4 + 12 x4
− 6x5 = 294 − x5 = −441
⎪⎩6x1 +11x2 +11x3 − 9x4 −13x5 = 103
3.用网孔电流法求如下电路的各支路电流。
Ia
Ib
Id
Ic
60Ω
20Ω
40Ω
40Ω
50V
10V
40V
流畅。
《Matlab 语言及其在电子信息科学中的应用》实验指导书
许钢 编
3
实验二:M 文件和 Mat 文件操作
一、实验目的
1.定制自己的工作环境。 2.编写简单的 M 文件。 3.保存内存工作区中的变量到.mat 文件。 4.学会只用 Matlab 帮助。
二、实验内容
1.使用 format 命令和 File|Peferences 菜单定制自己的工作环境。 2.编写如下 M 文件,试调整参数 a 的大小,观察并记录 y1、y2 的波形特征。
《Matlab 语言及其在电子信息科学中的应用》实验指导书
许钢 编
4.用结点电压法求如下电路的结点电压 un1、un2。
① + u2 - ②
2kΩ
10A
信号处理仿真(MATLAB)实验
信号处理仿真(MATLAB)实验指导书青岛大学自动化工程学院电子工程系2006年4月MATLAB 实验一一、实验目的:1. Be familiar with MATLAB Environment2. Be familiar with array and matrix3. Be familiar with MATLAB operations and simple plot function二、实验内容:1. Be familiar with Matlab 6.5Startup Matlab 6.5, browse the major tools of the Matlab desktop ⏹ The Command Windows⏹ The Command History Windows ⏹ Launch Pad⏹ The Edit/Debug Window ⏹ Figure Windows⏹ Workspace Browser and Array Editer ⏹ Help Browser⏹ Current Directory BrowserPART I:下列选择练习,不需提交实验报告1. Give the answer of the following questions for the array1.10.02.13.560.01.16.62.83.412.10.10.30.41.31.45.10.01.10.0a r r a y -⎡⎤⎢⎥-⎢⎥=⎢⎥-⎢⎥-⎣⎦ 1)What is the size of array1?4×52)What is the value of array1(4,1)? - 1.43)What is the size and value of array1(:,1:2)? Size: 4×2 array1=[1.1 0.0 2.1 3.5 6.0 0.0 1.1 6.6 2.8 3.4]4) What is the size and value of array1([1 3], end)? Size:3×5Value:array1=1.14.03.01.01.24.38.36.61.20.00.65.31.20.01.12. Give the answer of the following commad 1) a=1:2:5; a=1 3 5 2) b=[a ’ a ’ a ’];b= 5553331113) c=b(1:2:3,1:2:3);c= 55114) d=a+b(2,:) d= 8645) w=[zeros(1,3) ones(3,1)’ 3:5’] w =0 0 0 1 1 1 3 4 5 3. Give the answer of the sub-arrays1.10.02.13.560.01.16.62.83.412.10.10.30.41.31.45.10.01.10.0a r r a y -⎡⎤⎢⎥-⎢⎥=⎢⎥-⎢⎥-⎣⎦1) array1(3,:);ans=[2.1 0.1.0.3 -0.4 1.3] 2) array1(:,3); ans = 2.1000 -6.6000 0.3000 03) array1(1:2:3,[3 3 4])ans =2.1000 2.1000 -3.5000 0.3000 0.3000 -0.4000 4) array1([1 1],:) ans =1.1000 02.1000 -3.5000 6.0000 1.1000 0 2.1000 -3.5000 6.0000 4. Give the answer of the following operations22111,,,(2)12022a b c d e y e --⎡⎤⎡⎤⎡⎤====⎢⎥⎢⎥⎢⎥--⎣⎦⎣⎦⎣⎦ 1) a+bans =3 -3 -1 42) a*dans =2 -2-1 22) a.*d ans =2 0 0 2 3) a*cans =6-54) a.*c??? Error using ==> times Matrix dimensions must agree 5) a\b ans =1.0000 1.0000 0.5000 1.5000 6) a.\bans =0.5000 0.5000 0 1.00008)a.^b ans =2.0000 -0.5000 1.0000 4.0000PART I:下列选择练习,不需提交实验报告1.Edit & Run the m-file% test step response functionwn=6; kosi=[0.1:0.1:1.0 2]; figure(1); hold on for kos=kosinum=wn^2; den=[1,2*kos*wn,wn.^2]; step(num,den)endhold off;12345678900.20.40.60.811.21.41.6Step ResponseTime (sec)A m p l i t u d e2.Edit & Run the m-file% test plot functionx=0:pi/20:3*pi; y1=sin(x); y2=2*cos(2*x); plot(x,y1,'rv:',x,y2,'bo--');title('Plot the Line of y=sin(2x) and its derivative'); xlabel('X axis'); ylabel('Y axis'); legend('f(x)','d/dxf(x)');X axisY a x i sgrid on;3. Edit & Run the m-file% test subplot and loglog functionx=0:0.1:10; y=x.^2-10.*x+26; subplot(2,2,1); plot(x,y); grid on;subplot(2,2,2); semilogx(x,y); grid on; subplot(2,2,3); semilogy(x,y); grid on; subplot(2,2,4); loglog(x,y); grid on;510010203010-1100101010203005101010110210-110101101011024.Edit & Run the m-file% test max and plot functionvolts=120; rs=50; rl=1:0.1:100;amps=volts./(rs+rl); pl=(amps.^2).*rl; [maxvol,index]=max(pl); plot(rl,pl,rl(index),pl(index),'rh'); grid on;010203040506070809010020406080一、实验目的:1. Learn to design branch statements program2. Be familiar with relational and logical operators3. Practice 2D plotting二、实验内容:PART I: (选择练习,不需提交实验报告)1. Hold command exercise x=-pi:pi/20:pi;y1=sin(x); y2=cos(x); plot(x,y1, 'b-'); hold on; plot(x,y2, 'k--'); hold off;legend ('sinx', 'cosx')2. Figure command exercisefigure(1);subplot(2,1,1);x=-pi:pi/20:pi; y=sin(x); plot(x,y); grid on; title('Subplot 1 Title'); subplot(2,1,2);x=-pi:pi/20:pi; y=cos(x); plot(x,y); grid on; title('Subplot 2 Title');3.Polar Plots exerciseg=0.5;theta=0:pi/20:2*pi;gain=2*g*(1+cos(theta));polar(theta,gain,'r-');title('\fontsize{20} \bfGain versus angle \theta');4. Assume that a,b,c, and d are defined, and evaluate the following expression. a=20; b=-2; c=0; d=1;(1)a>b;ans =1(2) b>d;ans =0(3) a>b&c>d;ans =0(4) a==bans =0(5) a&b>c;ans =06) ~~b;ans =1a=2; b=[1 –2;-0 10]; c=[0 1;2 0]; d=[-2 1 2;0 1 0];(7) ~(a>b) % ~非ans =0 00 1(8) a>c&b>cans =1 00 1(9) c<=bans =1 00 1a=2; b=3; c=10; d=0;(10) a*b^2>a*cans = 0(11) d|b>a %先计算b>aans = 1(12) (d|b)>a % d|b或ans = 0a=20; b=-2; c=0; d=’Test’;(13) isinf(a/b)ans = 0(14) isinf(a/c)ans = 1(15) a>b&ischar(d)ans = 1(16) isempty(c)ans = 04.Write a Matlab program to solve the function1()ln1y xx=-, where x is a number <1. Usean if structure to verify that the value passed to the program is legal. If the value of x is legal, caculate y(x). If not ,write a suitable error message and quit.Answer:function answer=my(x)answer=log(1/(1-x));end %functionx=input('Input a number:')if x<1.0answer=my(x)elsedisp('The number is illeagle,input another number please')endPART II: (需提交实验报告)1.3. Write out m. file and plot the figures with gridsAssume that the complex function f(t) is defined by the equationf(t)=(0.5-0.25i)t-1.0Plot the amplitude and phase of function for 0 4.t≤≤%amplitude振幅phase相位function f=me(t)f=(1+0.25*i)*t-2.0endt=0:0.01:4f=me(t)m=abs(f);n=angle(f)subplot(221);plot(t,f);subplot(222);plot(t,m);subplot(224);plot(t,n);4. Write the Matlab statements required to calculate y(t) from the equation22350()350t t y t t t -+≥⎧=⎨+<⎩for value of t between –9 and 9 in steps of 0.5. Use loops and branches to perform this calculation.t=-9:0.5:9 if t<0y=3*(t.^2)+5 elsey=-3*(t.^2)+5 plot(t,y) xlabel('t') ylabel('y')title('y(t)²¨ÐÎ') endtyMATLAB 实验三一、实验目的:1. Learn to design loop statements program3. Practice 2D plotting二、实验内容:PART I: (选择练习,不需提交实验报告)pare the 3 approaches follows (Loops and Vectorization向量化)%A. Perform calculation by For Loop with pre-initialize arraytic;square=zeros(1,10000) %pre-initialize arrayfor ii=1:10000square(ii)=ii^2;square_root(ii)=ii^(1/2);cube_root(ii)=ii^(1/3);endtoc; t1=tocElapsed time is 0.024418 seconds.t1 =0.0244%B. Perform calculation by For Loop without pre-initialize arraytic;for ii=1:10000square(ii)=ii^2;square_root(ii)=ii^(1/2);cube_root(ii)=ii^(1/3);endtoc; t2=toca3Elapsed time is 0.193202 seconds.t2 =0.1932%C. Perform calculation with vectorstic;ii=1:10000square(ii)=ii.^2;square_root(ii)=ii.^(1/2);cube_root(ii)=ii.^(1/3);toc; t3=toca4Elapsed time is 0.005697 seconds. t3 =0.0394MATLAB 实验四一、实验目的:1. Learn to write MATLAB functions2. Be familiar with complex data and character data3. Practice 2D plotting二、实验内容:1. Write three Matlab functions to calculate the hyperbolic sine, cosine, and tangent functions:s i n h (),c o s h (),t a n ()22x xx xx xx x e e e e e e h e e-----+-=+then plot the shapes of hyperbolic sine, cosine, and tangent functions on one figure,55x -≤≤.xyxyfunction a=sinh(y) function a=cosh(y) a=(exp(x)-exp(-x))/2 a=(exp(x)+exp(-x))/2end endx=-5:0.1:5;y=sinh(x); x=-5:0.1:5plot(x,y) y =cosh(x);xlabel('x') plot(x,y)ylabel('y') xlabel('x')title('y=sih(x)') ylabel('y')title('y=cos(x)')yxfunction a=tanh(x)a=(exp(x)-exp(-x))/(exp(x)exp(-x))endx=-5:0.1:5;y=tanh(x);plot(x,y)xlabel('x')ylabel('y')title('y=tan(x)')2. Write a program use the function 32()552f x x x x =-+- and plot the line,and search for the minimum and maximum in 200 steps over the range of 13x -≤≤, mark the minimum and maximum on the line figure. x=-1:0.02:3;y=x.^3-5*x.^2+5*x-2; a=max(y) b=min(y)plot(x,y,'r-')[ymax, ind] = max(y); hold on ;plot(x(ind), ymax, 'ko', 'MarkerFaceColor', 'k');text(x(ind), ymax, sprintf('最大值点(%.3f, %.3f)', x(ind), ymax), 'FontWeight', 'Bold'); [ymin, ind] = min(y); hold on ;plot(x(ind), ymin, 'ko', 'MarkerFaceColor', 'k');text(x(ind), ymin, sprintf(' 最小值点(%.3f, %.3f)', x(ind), ymax), 'FontWeight', 'Bold');3. Write a function to calculate the distance between two points 11(,)x y and 22(,)x y , that the pointsshould be given by ‘input ’ function.function distance=dis(x1,y1,x2,y2) distance=((x1-x2)^2+(y1-y2)^2)^0.5 enddisp('Calculate the distance between two points')x1=input('Input the number:');y1=input('Input the number:');x2=input('Input the number:');y2=input('Input the number:');z=dis(x1,y1,x2,y2);fprintf('The distance between two points is %f\n',z)4.Write a function complex_to that accept a complex number var, and returns two outputarguments containing the magnitude mag and angle theta of the complex number. The output angle should be in degreesfunction [mag,theta]=complex_to(var)mag=sqrt(real(var).^2+imag(var).^2)theta=angle(var)*180/piendvar=input('Input a complex mumber:var=')[mag,theta]=complex_to(var).Write another function polar_to_complex that accepts two input arguments containing the magnitude mag and angle theta of the complex number in degrees, and returns the complex number var.function var=polar_to_complex(mag,theta)var=mag.*cos(theta/180*pi)+mag.*sin(theta/180*pi)*iendtheta=input('Input another number:theta=') var=polar_to_complex(mag,theta)5. Write a program that accepts a series of strings from a user with the input function, sortsthe strings into ascending order, and prints them out.a=input('please input a string:','s'); [x,y]=size(a); for i=1:y-1for j=2:y if a(j)<a(j-1) b=a(j);a(j)=a(j-1); a(j-1)=b; end end end a=aMATLAB 实验五一、实验目的:1. Learn to write MATLAB functions2. Be familiar with complex data and character data 6. Practice 2D plotting二、实验内容:1. Write three Matlab functions to calculate the hyperbolic sine, cosine, and tangent functions:s i n h (),c o s h (),t a n ()22x xx xx xx x e e e e e e h e e-----+-=+then plot the shapes of hyperbolic sine, cosine, and tangent functions on one figure,55x -≤≤.2. Write a program use the function 32()552f x x x x =-+- and plot the line,and search for the minimum and maximum in 200 steps over the range of 13x -≤≤, mark the minimum and maximum on the line figure.3. Write a function to calculate the distance between two points 11(,)x y and 22(,)x y , that the pointsshould be given by ‘input ’ function.4. Write a function complex_to that accept a complex number var , and returns two outputarguments containing the magnitude mag and angle theta of the complex number. The output angle should be in degrees.Write another function polar_to_complex that accepts two input arguments containing the magnitude mag and angle theta of the complex number in degrees, and returns the complex number var .5. Write a program that accepts a series of strings from a user with the input function, sorts the strings into ascending order, and prints them out.MATLAB 实验六一、实验目的:1. Practice 2D plotting and 3D plotting2. Learn to use fplot function3. Be familiar with cell arrays and structure arrays二、实验内容:1. Give the 3D plot figure of 0.30.1()sin(3),()cos()t t x t e t y t e t --== use plot3 function,020x ≤≤, and grid on, linewidth is 3.0.t=0:0.01:20;x=exp(-0.3*t).*sin(3*t); y=exp(-0.1*t).*cos(t);plot3(x,y,t,'LineWidth',3.0);title('\bfThree-Dimentional Line Plot'); xlabel('\bfx');ylabel('\bfy'); zlabel('\bftime'); grid on ;Three-Dimentional Line Ploti m e2. Plot the function sin x y e x -=, 02x ≤≤, step 0.1. Create the following plot types: (a) stem plot; x=0:0.1:2;y=exp(-x).*sin(x); stem(x,y);title('sin x y e x -='); xlabel('x'); ylabel('y');y=exp(-x)*sin(x)xy(b) stair plot;y=exp(-x)*sin(x)xyx=0:0.1:2;y=exp(-x).*sin(x); stairs (x,y);title(' y=exp(-x).*sin(x)'); xlabel('x'); ylabel('y'); (c) bar plot; x=0:0.1:2;y=exp(-x).*sin(x); bar(x,y);title(‘y=exp(-x).*sin(x) '); xlabel('x'); ylabel('y');y=exp(-x)*sin(x)xy(d) compass plot. x=0:0.1:2;y=exp(-x).*sin(x); compass(x,y);title(' y=exp(-x).*sin(x)'); xlabel('x'); ylabel('y');3. Plot the function ()f x = over the range 0.110.0x ≤≤ using function fplot, andgrid on.fplot('1/(x.^0.5)',[0.1 10]); title('Plot of 1/(x.^0.5) '); 270y=exp(-x)*sin(x)xyPlot of 1/(x.0.5)4. Create a cell arrays:b=cell(3,3);b(1,1)={[1 4 3;0 5 8;7 2 9]}; b(1,2)={'Anne Smith'};b(1,3)={3+7i};b(2,1)={5-2i};b(2,2)={-3.14};b(2,3)={[]};b(3,1)={3.14};b(3,2)={[]};b(3,3)={5};5. Create a structure arrays and to calculate the mean billing of three patients:>> ='John.Doe';>> patient.billing='127.00';>> patient.test='[79 75 73;180 178 177.5;220 210 205]';>> patient(2).name='Ann Lane'patient =1x2 struct array with fields:namebillingtest>> patient(2).billing='28.8'patient =1x2 struct array with fields:namebillingtest>> patient(2).test='[68 70 68;118 118 119;172 170 169]' patient =1x2 struct array with fields:namebillingtest>> patient(1)ans =name: 'John.Doe'billing: '127.00'test: '[79 75 73;180 178 177.5;220 210 205]' >> patient(2)ans =name: 'Ann Lane'billing: '28.8'test: '[68 70 68;118 118 119;172 170 169]'>> patient(3).name='Al Smith'patient =1x3 struct array with fields:namebillingtest>> patient(3).billing='504.7'patient =1x3 struct array with fields:namebillingtest>> patient(3).test='[80 80 80 ;153 153 154;181 190 182]' patient =1x3 struct array with fields:namebillingtest>> patient(3)ans =name: 'Al Smith'billing: '504.7'test: '[80 80 80 ;153 153 154;181 190 182]'>> mean(patient(1).billing)ans =49.3333>> mean(patient(2).billing)ans =52>> mean(patient(3).billing)ans =50.8000MATLAB实验七一、实验目的:Be familiar with Input/Output functions二、实验内容:1. Write a m-file. The m-file creates an array containing 150random values, sorts the array into ascending order, opens a user-specified file for writing only, then writes thearray to disk in 32-bit floating-point format , and close the file. It then opens the file and read the data back into 510array.a=rand(1,50)b=sort(a)fid=fopen('hh.txt','w');count=fwrite(fid,b,'float32');status=fclose(fid);c=fopen('hh.txt','r');fid1=fread(c,[5,10],'float32')filename=input('Enter file name:','s');out_array=randn(1,50);[fid,msg]=fopen(filename,'w');[x,y]=size(out_array)for i=1:yfor j=1:y-1if out_array(j+1)<out_array(j)b= out_array(j+1);out_array(j+1)=out_array(j);out_array(j)=bendendendif fid>0count=fwrite(fid,out_array,'float32');disp([int2str(count) 'value written...']);status=fclose(fid);elsedisp(msg);end[fid,msg]=fopen(filename,'r');if fid>0[in_array,count]=fread(fid,[50 10],'float32');disp([int2str(count) 'values read...']);status=fclose(fid);elsedisp(msg);end2. Edit a file as data4_4.txt that contains 44square matrix, then import the array use uiimport function, and calculate the inverse of the square matrix .[x,y]=size(data4_4);for i=1:xfor j=1:yb(i,j)=data4_4(j,i)endendb =3 3 6 64 45 55 5 4 46 6 3 33. Write a program to read a set of integers from an input data file, and locate the largest andsmallest values within the data file. Print out the largest and smallest values, together with the lines on which they were found in one figure.MATLAB实验八一、实验目的:1.Be familiar with handle graphics2. Learn about GUI3. Learn to design PID control system with Simulink二、实验内容:1. Second Order System GUI Design% SOSystem_GUI.mset(gcf,'defaultuicontrolunits','normalized');set(gcf,'defaultuicontrolfontsize',12);str=' Second Order System Step response'; set(gcf,'name',str);h_axes=axes('position',[0.05,0.2,0.6,0.7]); set(h_axes,'xlim',[0,15]);str1='ZETA=';t=0:0.1:10;z=0.5;y=step(1,[1 2*z 1],t);hline=plot(t,y);grid on;htext=uicontrol(gcf,'style','text', 'position',[0.67,0.8,0.33,0.1], 'string',[str1,sprintf('%1.4g\',z)]);hslider=uicontrol(gcf,'style','slider','position',[0.67,0.65,0.33,0.1],...'max',1.5,'min',0,'sliderstep',[0.01,0.05], 'Value',0.5);hcheck1=uicontrol(gcf,'style','checkbox','string','MAX Value','position',[0.67,0.50,0.33,0.11]);vchk1=get(hcheck1,'value');hcheck2=uicontrol(gcf,'style','checkbox','string','Raising Time(0->0.95)','position',[0.67,0.35,0.33,0.11]); vchk2=get(hcheck2,'value');set(hslider,'callback',['z=get(gcbo,''value'');','callcheck(htext,str1,z,vchk1,vchk2)']);set(hcheck1,'callback',['vchk1=get(gcbo,''value'');', 'callcheck(htext,str1,z,vchk1,vchk2)']);set(hcheck2,'callback',['vchk2=get(gcbo,''value'');','callcheck(htext,str1,z,vchk1,vchk2)']);% callcheck.mfunction callcheck(htext,str1,z,vchk1,vchk2)cla,set(htext,'string',[str1,sprintf('%1.4g\',z)]);dt=0.1;t=0:dt:15;N=length(t);y=step(1,[1 2*z 1],t);plot(t,y);grid on;if vchk1[ym,km]=max(y);if km<(N-3)k1=km-3;k2=km+3;k12=k1:k2;tt=t(k12);yy=spline(t(k12),y(k12),tt); [yym,kkm]=max(yy);line(tt(kkm),yym,'marker','.','markeredgecolor','r','markersize',20);ystr=['ymax = ',sprintf('%1.4g\',yym)];tstr=['tmax = ',sprintf('%1.4g\',tt(kkm))];text(tt(kkm),1.05*yym,{ystr;tstr})elsetext(10,0.4*y(end),{'ymax --> 1';'tmax --> inf'})endendif vchk2k95=min(find(y>0.95));k952=[(k95-1),k95];t95=interp1(y(k952),t(k952),0.95);line(t95,0.95,'marker','o','markeredgecolor','k','markersize',6);tstr95=['t95 = ',sprintf('%1.4g\',t95)]; text(t95,0.65,tstr95)end。
《matlab原理与应用》实验指导书
《matlab原理与应用》实验指导书实验一 MATLAB集成环境使用实验性质:验证性实验级别:必做开课单位:信息与通信工程学院通信工程系学时:2学时一、实验目的:1、了解与MATLAB的运行环境相关的各类窗口及其相应的功能特点。
二、实验器材:安装matlab软件的计算机三、实验理论3.1 启动和退出M AT L A B不同的计算机系统,M AT L A B的启动也不一样。
在Windows 和M a c i n t o s h系统中,程序通常通过点击一个图标而启动。
在U N I X系统中,程序是通过在命令行系统提示符后键入如下字符启动:matlab如果上述工作有问题,可请教系统管理员。
当启动MATLAB时,如果matlab rc . m和startu p . m文件存在,则执行这些文件。
在这些文件中,为满足个人需要,用户可以给定命令以调整M AT L A B,例如,constants用于设置图形等。
在一个多用户系统上,系统管理员存储matlabrc . m文件,但你也能为自己的使用创建文件startup.m。
要退出MATLAB,键入quit或exit。
1、退出和中断e x i t,q u i t 结束M AT L A B会话。
程序完成,如果没有明确保存,则变量中的数据丢失。
Ctrl-c 中断一个MATLAB任务。
例如,当M AT L A B正在计算或打印时,中断一个任务,但会话并没有结束。
除此之外,对一些系统有指定的菜单选择。
例如,在Wi n d o w s和M a c i n t o s h系统中,在文件菜单下可以找到选项q u i t。
当编辑或执行M AT L A B时,下列的快捷键十分有用。
通常因为不同的平台使用不同的键,因此,给定了一些替换键。
在你的系统上试一下这些键,注意哪些键组合使用。
2、特殊的功能键↑或C t r l_p 恢复前面的命令。
↓或C t r l_n 恢复当前命令之后键入的命令。
推荐-信号与系统实验指导书MATLAB语言工作环境和基本操作 精品
金陵科技学院实验一MATLAB语言工作环境和基本操作一、实验目的1.初步了解MATLAB开发环境和常用菜单的使用方法;2.熟悉MA TLAB常用窗口,包括命令窗口、历史窗口、当前工作窗口、工作空间浏览器窗口、数组编辑器窗口和M文件编辑/调试窗口等;3.了解MATLAB的命令格式;4.熟悉MATLAB的帮助系统。
二、实验原理1.简介MATLAB,Matrix Laboratory的缩写,是由Mathworks公司开发的一套用于科学工程计算的可视化高性能语言,具有强大的矩阵运算能力。
与大家常用的Fortran和C等高级语言相比,MA TLAB的语法规则更简单,更贴近人的思维方式,被称之为“草稿纸式的语言”。
MATLAB安装完成后,会自动在WINDOWS桌面上生成一个快捷方式,它是指向安装目录下\bin\win32\matlab.exe的链接,双击它即可来到MA TLAB集成环境的基本窗口,通常称之为命令窗口。
MA TLAB的退出与普通WIN32的程序一样,值得一提的是它有一个自身专有的快捷键Ctrl+Q。
MATLAB启动后界面如图所示。
命令窗口(mand Window):(1) 用于执行MA TLAB命令,正常情况下提示符为“>>”,表示MA TLAB进入工作状态。
(2) 在提示符后输入运算指令和函数调用等命令(不带“;”),MATLAB将迅速显示出结果并再次进入准备工作状态。
(3) 若命令后带有“;”,MATLAB执行命令后不显示结果。
(4) 在准备工作状态下,如果按上下键,MATLAB会按顺序依次显示以前输入的命令,若要执行它,则直接回车即可。
工作空间(Workspace):(1) 显示计算机内存中现有变量的名称、类型、结构及其占用子节数等。
(2) 如果直接双击某变量,则弹出Array Editor窗口供用户查看及修改变量内容。
(3) 该窗口上有工具条支持用户将某变量存储到文件中或者从文件中载入某变量。
MATLAB与信号处理_1
6)while循环语句基本格式 while 表达式 循环体 end 例: sum=0;i=0; while sum<100 i=i+1; sum=sum+i; end sum i 执行后sum的值为 sum= 105 i= 14
请在命令窗口中
输入蓝色部分,结 合讲授进行理解
7)if语句基本格式 if 逻辑表达式 语句 end 例: for i=1:10 a(i)=i; if i>5 a(i)=10-i; end end a 执行后a的值为 a= 1 2 3 4 5 4 3 2 1 0
n = min(min(n1),min(n2)):max(max(n1),max(n2)); % duration of y(n) y1 = zeros(1,length(n)); y2 = y1; y1(find((n>=min(n1))&(n<=max(n1))==1))=x1; y2(find((n>=min(n2))&(n<=max(n2))==1))=x2; y = y1+y2;
数学运算函数:1、min;2、max;3、abs;4、
angle;5、 cos;6、exp;7、conv 。
调试函数:error
其他函数:find
fliplr
三、实验内容及步骤
1.启动matlab 6口中输入蓝色部分,结合讲授进行理解
x1=abs(x);%序列x的幅值 x2=angle(x);%序列x的相位 %随机序列
N=5; rand(1,N);%N点,在[0,1]上均匀分布 randn(1,N);%N点,均值为0方差为1的高斯随机序列 rand('state',0)
%序列操作 %实现信号加的M-file :y(n)=x1(n)+x2(n) function [y,n] = sigadd(x1,n1,x2,n2)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
工程信号处理——MATLAB实验指导书——伍星机电工程学院KUST-HMI联合实验室2008.02目录1信号分析基础 (3)1.1实验1典型时间信号的波形图 (3)1.2实验2信号数据文件的读取与显示 (4)2确定信号的频谱分析 (4)2.1实验3周期信号的傅立叶级数三角函数展开式 (4)2.2实验4非周期信号的傅立叶变换 (4)2.3实验5时域有限信号的周期延拓 (5)3时域分析 (5)3.1实验6自相关和互相关分析 (5)4随机信号分析 (5)4.1实验7随机信号的数字特征 (5)4.2实验8随机信号的功率谱分析 (6)5系统分析概述 (6)5.1实验9线性系统的主要性质 (6)5.2实验10测定系统特性参数的方法 (7)6模拟信号的离散化 (7)6.1实验11时域采样定理 (7)6.2实验12时域截断与泄露 (7)7离散傅立叶变换 (7)7.1实验13离散傅立叶变换 (7)7.2实验14用X K计算信号的频谱 (8)8快速傅立叶变换及其工程应用 (8)8.1实验15快速傅立叶变换 (8)8.2实验16快速傅立叶变换的应用 (9)【预备知识】机械工程测试技术、机械控制工程、MATLAB、虚拟仪器技术等。
【资料检索方法】1.校图书馆相关书籍。
2.校图书馆数据库:维普中文科技期刊全文数据库,万方会议论文全文库,万方硕博论文全文库,Elsevier外文期刊数据库,国外免费学位论文全文数据库,超星电子图书系统。
3.互联网搜索引擎:,,。
1信号分析基础1.1实验1典型时间信号的波形图【实验目的】(1)熟悉MATLAB环境,掌握与信号处理相关的常用MATLAB语句和命令;(2)熟悉MATLAB生成典型信号的方法;(3)掌握MATLAB绘制信号波形图的方法;(4)掌握M脚本文件和函数文件的编制方法。
【实验内容】(1)熟悉各种典型信号生成的关键参数,对于大多数的连续时间信号,两个关键要素是信号的起止时间、信号的幅值、频率等;(2)编制确定信号和随机信号的M自定义函数文件,包括的典型信号如下:z确定信号周期信号:正弦信号(MySin),三角波信号(MyTri),方波信号(MySquare)。
非周期信号:准周期信号(MyStdPeriod),矩形脉冲信号(MyImpulse),指数衰减正弦信号(MyExpSin)。
z随机信号:白噪声信号(MyWhiteNoise)(3)使用上述M函数产生如下信号:z幅值为5,频率为10Hz的正弦信号;z幅值为1,频率为8Hz的三角波信号;z幅值为2.5,频率为20Hz,占空比为50%的方波信号;z使用两个幅值为1的正弦信号构成一个准周期信号;z幅值为10,脉宽为1,时间范围0~6s的矩形脉冲信号;z幅值为5,频率为20Hz,衰减系数为-10的指数衰减正弦信号;z幅值范围为-3~3的白噪声信号。
1.2实验2信号数据文件的读取与显示【实验目的】(1)熟悉MATLAB环境,掌握数据文件生成与读取相关的常用MATLAB语句和命令;(2)掌握用根据数据文件绘制信号波形图的方法。
【实验内容】(1)单边指数信号使用MySin函数产生一个幅值为5、频率为10Hz的正弦信号,并写入数据文件MySin.txt;(2)读取MySin.txt数据文件,绘制信号波形图(title为MySin.txt)。
【参考MATLAB函数】fopen, fscanf, fprintf, fclose等。
2确定信号的频谱分析2.1实验3周期信号的傅立叶级数三角函数展开式【实验目的】(1)理解周期信号傅立叶级数三角函数展开式的物理意义。
【实验内容】(1)分别使用2、5、10、20、30个MySin函数构造一个幅值为5、频率为20Hz的方波信号,并在同一个图形中绘制全部图形;(2)分别使用2、5、10、20、30个MySin函数构造一个幅值为5、频率为20Hz的三角波信号,并在同一个图形中绘制全部图形。
2.2实验4非周期信号的傅立叶变换【实验目的】(1)理解傅立叶变换的物理意义,熟练掌握连续时间信号频谱的计算方法;(2)掌握按定义公式编程直接计算傅立叶变换的方法。
【实验内容】(1)编制矩形脉冲信号(MyImpulse)的M自定义函数文件,并使用该函数产生一个幅值为10、脉宽为0.5s、时间范围0~6s的矩形脉冲信号;(2)使用傅立叶积分计算一个幅值为10、脉宽为0.5s、时间范围0~6s的矩形脉冲信号的傅立叶变换,并绘制其频谱图;(3)编制傅立叶变换的M函数(MyFourierT)。
(4)使用MyFourierT函数计算一个幅值为5、频率为20Hz的正弦信号的傅立叶变换,并绘制其频谱图。
2.3实验5时域有限信号的周期延拓【实验目的】(1)理解时域有限信号周期延拓对频谱的影响。
【实验内容】(1)使用MyExpSin函数,产生一个幅值为5、频率为20Hz、衰减系数为-10、时间范围为0~1s的指数衰减正弦信号x(t);用MyFourierT函数计算其傅立叶变换X(f),并绘制其频谱图;(2)将步骤(1)中获得指数衰减正弦信号x(t)进行周期延拓,延拓周期为2s,使用MyFourierT函数计算其傅立叶变换X’(f),将X(f)和X’(f)绘制同一个频谱图中。
3时域分析3.1实验6自相关和互相关分析【实验目的】(1)理解时域自相关和互相关的物理意义,熟练掌握连续时间信号相关分析的计算方法。
(2)掌握按定义公式编程直接计算相关分析的方法。
【实验内容】(1)编制直接相关(MyDirectCorrelate)的M函数。
(2)使用MyDirectCorrelate函数,计算一个由MySquare函数生成的幅值为5、频率为20Hz的方波信号x(t)的自相关R xx(τ),并绘制其图形;(3)使用MyWhiteNoise函数生成一个幅值为5白噪声信号n(t),使用MyDirectCorrelate函数计算n(t)的自相关R xx(τ),并绘制其图形。
(4)使用MySin函数生成一个幅值为1、频率为10Hz的正弦信号x(t);使用MyWhiteNoise函数生成一个幅值为5白噪声信号n(t);令信号y(t)=x(t)+n(t);使用MyDirectCorrelate函数计算x(t)与y(t)的互相关R xy(τ),并绘制其图形。
4随机信号分析4.1实验7随机信号的数字特征【实验目的】(1)理解随机信号数字特征的物理意义,熟练掌握随机信号数字特征的计算方法。
(2)掌握按定义公式编程计算随机信号数字特征的方法。
【实验内容】(1)编制均值(MyMean)、方差(MyVariance)、均方值(MySMR)、概率密度函数(MyProbability)的M函数。
(2)使用MyMean、MyVariance和MySMR函数,计算一个由MySin函数生成的幅值为5、频率为10Hz的正弦信号x(t)的数字特征,在正弦信号图形上绘出三个数字特征的不同色彩的直线并显示图例。
(3)使用MyProbability函数,计算一个由MySin函数生成的幅值为5、频率为10Hz的正弦信号x(t)和一个由MyWhiteNoise函数生成的幅值为5白噪声信号n(t)的概率密度函数P(x),并绘制其图形。
4.2实验8随机信号的功率谱分析【实验目的】(1)理解时域自功率谱密度和互谱密度的物理意义,熟练掌握连续时间信号功率谱分析的计算方法。
(2)掌握使用幅值谱编程计算功率谱密度的方法。
【实验内容】(1)使用MyFourierT函数编制功率谱密度(MyPowerSpectrum)的M函数。
(2)使用MyPowerSpectrum函数,计算一个由MySquare函数生成的幅值为5、频率为20Hz的方波信号x(t)的自功率谱密度G xx(f),并绘制其图形;(3)使用MyWhiteNoise函数生成一个幅值为5白噪声信号n(t),使用MyPowerSpectrum函数计算n(t)的自功率谱密度G xx(f),并绘制其图形。
(4)使用MySin函数生成一个幅值为1、频率为10Hz的正弦信号x(t);使用MyWhiteNoise函数生成一个幅值为5白噪声信号n(t);令信号y(t)=x(t)+n(t);使用MyPowerSpectrum函数计算x(t)与y(t)的互功率谱密度G xy(f),并绘制其图形。
5系统分析概述5.1实验9线性系统的主要性质【实验目的】(1)理解线性系统主要性质的物理意义,熟悉SIMULINK中常用子库。
(2)掌握使用SIMULINK进行系统仿真的方法。
【实验内容】(1)进行线性系统的叠加性、比例性、微分性、积分性和频率保持性的仿真。
5.2实验10测定系统特性参数的方法【实验目的】(1)理解线性系统主要性质的物理意义,熟悉SIMULINK中常用子库。
(2)掌握使用SIMULINK进行系统仿真的方法。
【实验内容】τ=、阶跃(1)进行一阶系统阶跃信号输入测定法的仿真,其中一阶系统的1信号幅值为10。
6模拟信号的离散化6.1实验11时域采样定理【实验目的】(1)掌握时域采样定理的含义,及其在实际应用中需要注意的问题。
【实验内容】(1)用实验验证采样定理。
使用MySin函数生成一个幅值为3、频率为10Hz的正弦信号x(t),其中dt分别为0.1s、0.08、0.05s、0.005s。
在四幅图中,绘出四个正弦信号波形及其单边幅值谱(使用MyFourierT函数)。
6.2实验12时域截断与泄露【实验目的】(1)掌握时域截断与泄露的物理意义,及其在实际应用中需要注意的问题。
(2)熟悉常用窗函数对时域截断与泄露的影响,及其各自的适用场合。
【实验内容】(1)用实验验证截断导致的能量泄露。
使用MySin函数生成一个幅值为3、频率为10Hz的正弦信号x(t),使用矩形窗截断x’(t)=x(t)×w(t),使用MyFourierT函数计算截断信号x’(t)的幅值谱,绘出其单边幅值谱。
(2)对比分别使用矩形窗和hanning窗对x(t)进行截断的效果,使用MyFourierT函数计算截断信号x’(t)的幅值谱,在同一图中分别绘制时域波形和频谱的对比图。
7离散傅立叶变换7.1实验13离散傅立叶变换【实验目的】(1)理解离散傅立叶变换的物理意义,熟练掌握离散时间信号频谱的计算方法;(2)掌握按定义公式编程直接计算离散傅立叶变换的方法。
【实验内容】(1)按求和公式编制离散傅立叶变换的M函数(MyDFT)。
(2)使用MyFourierT和MyDFT函数分别计算一个幅值为5、频率为20Hz的正弦信号的傅立叶变换,将计算结果绘制在同一窗口的一个图中进行对比并显示图例。
7.2实验14用Xk计算信号的频谱【实验目的】(1)掌握基于DFT结果计算频谱的方法,及其在实际应用中需要注意的问题。