当前位置:
文档之家› matlab实验报告(实验5)
matlab实验报告(实验5)
3、 MA TLAB 控制流 与 C 语言一样, MATLAB 提供了控制程序流的结构,包括:
(1) for 循环 (2) while 循环
(3) if-else-end 分支结构 (4) switch-case 结构 (5) try-catch 结构
各种结构的使用方法与 C 语言中基本相同,在此不再赘述。
二、 实验原理
1、 M 脚本文件和函数文件 用 MA TLAB 语言编写的程序,称为 M 文件。 M 文件是一个文本文件,它可以用任何编辑程序来建立和编
辑,而一般常用且最为方便的是使用 MA TLAB 提供的文本编辑器。
M 文件可以根据调用方式的不同分为两类:脚本文件
(Script File) 和函数文件 (Function File) 。
return,就结束该函数文件的运行,同
时该函数空间及其所有的中间变量就立即被清除。函数空间随具体
M 函数文件的被调用而产生,随调用结束
而删除。在 MA TLAB 整个运行期间,可以产生任意多个临时函数空间。假如在函数文件中,发生对某脚本文
件的调用,那么该脚本文件运行产生的所有变量都存放于该函数空间中,而不是存放在基本空间。
f(t) 的 N个点,并把上式改写为
F( )
TN1 f (t1
Nn0
n t )e j (t1 n t)
其中, T t2 t1 为信号持续时间区间长度。 使用上式可以算出任意频点的傅里叶变换值。
假设 F ( ) 的主
要取值区间为 [ 1, 2 ] ,要计算其)
F( 1 k
)
T [e e j ( 1 k )t1
j ( 1 k )(t1 t )
N
同样,式 (2.2) 可改写为
f (t1)
e j ( 1 k )(t 2 t ) ] f (t1
t)
f (t2 t )
f (t1 n t )
[ e e j 1 (t1 n t )
j( 1
2K
)( t1 n t )
ej( 2
F( 1)
] )(t1 n t ) F ( 1
)
F( 2
)
根据以上两个等式, 利用 MATLAB编程, 使用向量化计算的方法重新完成实验内容
2 和实验内容 3,并把计算结
果与实验内容 2 和实验内容 3 的结果进行比较是否相同(通过计算两者之间的最大绝对误差,观察其值是否接
近 0)。
6、利用实验内容 5 的代码,把傅里叶变换和傅里叶逆变换分别写为两个
学生实验报告
开课学院及实验室: 机电学院
2012 年 12 月 28 日
机 电 学 年级、专
学院
院
业、班
姓名
学号
实验课程名称
MATLAB 程序设计
成绩
指导
实验项目名称
实验 5:MATLAB 语言的程序设计
老师
一、 实验目的
1、 掌握 M 脚本文件和函数文件的创建方法,理解两者在形式上和运行上的区别; 2、 理解基本空间和函数空间的含义。 3、 掌握以控制流进行 MATLAB 程序设计的方法以及向量化程序设计方法,了解两者之间的异同;
三、 实验内容
本实验利用 MATLAB对连续信号在时域和频域上进行分析。 础,完成以下内容:
1、 利用 MATLAB进行编程,绘制矩形脉冲
回顾 《信号与系统》 中关于傅里叶变换的理论基
1 f (t )
0
1 |t |
2 其他
的波形 ( t [-1,1] ), 其中时域抽样点数为 N=200。
利用实验内容 2 的结果,根据上式使用 for 循环结构计算 t [-1,1] 上 f(t) 的 200 个时域抽样点的值,并画
function [x,y,z]=fun(a,b,c) 函数声明行罗列出函数与外界的联系的全部输入输出宗量,输入输出宗量的数目没有限制(可以很多,也
可以没有)。 每当函数文件运行, MA TLAB 就会专门为它开辟一个临时工作空间,该控制称为函数工作空间。所有中间
变量都存放在函数工作空间中,当执行完文件最后一条指令时,或遇到
M 文件是 MALTAB 从前到后顺序执行文件所写的指令, 只是一串按用户意图排列而成的 MA TLAB 指令集
合。脚本文件执行后, 所产生的所有变量都驻留在 MALTAB 基本工作空间; 只要用户不用 clear 指令加以清除,
且不退出 MATLAB ,这些变量一直保存在基本工作空间中。基本工作空间随着
f (t1)、 f (t1 t )、 、 f (t 2 t ) 写成列矢量,则( 2.1)式可以改写为
2、 如果时域信号 f(t) 的取值区间为 [t1,t2 ] ,则其傅里叶变换的表达式为
F( )
f (t) e j tdt
t2 f (t )e j t dt
t1
为了利用 MATLAB计算 f(t) 的傅里叶变换,可以取
M 函数文件,函数定义形式为:
function [F, w] = Fourier_lab2(f, N, T, K)
function [f, t] = iFourier_lab2(F, K, W, N)
其中, f 为时域信号, t 为对时域信号 f 的采样点(即采样时刻) , N 为对时域信号 f 的采用点数, T 为 f 的
MA TLAB 的启动而产生;只有
关闭 MATLAB 时,该基本空间才被删除。
类似于 C 语言中函数的定义, M 函数文件是专门用于对函数进行定义的。对外界来看,只需关心函数的输
入参量和送出来的计算结果,内部运作可以不需知道。
M 函数文件与脚本文件在形式上和运行上都不同。函数
文件第一行总是以 ”function 引”导的 “函数声明行 ”形式书写
T N1 f (t1
n t)e j( 1 k
)(t1 n t )
Nn0
( 2.1 )
其中,
为频域抽样间隔,
K
2 1 为带宽。
按照实验内容 1 定义的 f(t) 及时域采样方式,并取频域抽样点数
K=100,利用 MATLAB编程,使用 for 循
环结构计算 F ( ) 在 [ 8 ,8 ] 在各个频域采样点的值,并画出其频谱图形。
出 f(t) 的图形。
4、利用 MATLAB的画图功能,把实验内容 1 和实验内容 3 的图形画在同一个图形窗口中,并使用 legend 函数
标明图例。对比两个图形,你是否看到了由于信号抽样而导致的
Gibbs 现象?
5 、 式 ( 2.1 ) 的 累 加 和 可 以 用 内 积 实 现 , 即 一 个 行 矢 量 右 乘 一 个 列 矢 量 , 将 已 知 时 域 抽 样 值