Matlab-信号与系统实验.doc

Matlab-信号与系统实验.doc

ID:50365159

大小:249.50 KB

页数:14页

时间:2020-03-08

Matlab-信号与系统实验.doc_第1页
Matlab-信号与系统实验.doc_第2页
Matlab-信号与系统实验.doc_第3页
Matlab-信号与系统实验.doc_第4页
Matlab-信号与系统实验.doc_第5页
资源描述:

《Matlab-信号与系统实验.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、实验一:利用Matlab来实现函数的绘制,主要思想就是我们给定一个定义域,然后再通过定义一个对应法则,使之生成一个对应的值域,两个集合存储于向量中,然后再一一对应,如果将两个向量看作两个集合,那么就可以将其视作两个集合满射。Exp:Thereare{-5,2,3,13,10}我们定义对应法则f(x)=2*x–1Weget{-11,3,5,25,19}这就是值域了然后画图过程就是建立平面坐标系,x轴用来标识定义域的值,y轴用来标识值域的值,绘制出来的图形就可以算是对f(x)的仿真了。该实验要用到的函数:1.sin(x)这里对x变量

2、要理解,x可以支持符号变量,即我们平时说的x,真正的未知数,然而由于这一实验我们运用的是如何通过Matlab中的向量(集合)来仿真信号,所以会用到一有限的定义域(向量),我们要做的就是将这个有限的集合当作变量传递给sin(x),其内部是这样计算的。K={a,b,c,d,…,z}//K是我们所给定的有限的定义域。sin(K)的返回值为T={sin(a),sin(b),sin(c),sin(d),…,sin(z)}很显然,K与T的长度也会是相同的。在整个Matlab编程时一定要有向量(向量也算是一维的矩阵,Matlab可是叫矩阵实验

3、室呀)的思想。在仿真的过程中一定要考虑到这个函数是不是支持向量以点列独立的身份代入运算,如果是的话,那么是最好进行仿真的,给定一个有限的定义域(例如K=-10:0.01:10,产生向量K,其值从-10到10,每个相邻的数差值为0.01,K的长度为2001)括号内的K的长度达到了2001,在很小的区间内打印2001个点,就一定能够模拟出原函数的连续图形了。我们来看下面这个函数functiony=jump(x)%阶跃函数if(x<0)y=0;elseif(x>0)y=1;elsey=0.5;endend咋看起来是没有什么问题的,学过

4、c语言的我们知道,这个阶跃函数应该是对的。当问题就是,这个函数不支持输入的向量或者矩阵以点列的形式来处理,为什么,我们来一条条语句进行分析。首先是if(x<0),现假设x就是前面的K向量(矩阵),x是一个一维的向量,x>0的结果是这样来判定的,首先x>0会返回一个boolean值的与x等长的向量,这个向量中的每一个元素对应与x中每一个元素进行一次“>0”的判断,如果返回向量中有一个大于零的元素,那么x<0为假,如果返回向量中有一个元素小于零那么x>0为假,所以K代入后就是既不大于零又不小于零,所以结果就是返回的就是一个1*1的矩

5、阵,y=0.5;所以结果就只有一个点,这和我们的期望相去甚远啊。那么怎么改呢,有一种直接解决麻烦的改法:functiony=jump(x)%阶跃函数len=length(x);for(i=1:len)if(x(i)>0)%直接对每一个元素进行判断y(i)=1;%赋值同样是对应赋值,不要动不动就y=1了,这时赋值矩阵了elseif(x(i)<0)y(i)=0;elsey(i)=0.5;endendend如果我们不太苛求阶跃函数在x=0时的值,那么我们可以这样写的简便点,也就是实验指导书中的写法了。functiony=jump(x)

6、%阶跃函数y=x>0;%大于操作符是直接对每一个元素进行判定,返回等长的向量end这样写的话,就是利用了>操作符的性质,这在前面已经进行了说明。这个写法注意函数的返回值是boolean类型,也即逻辑值,也就是说,如果要使得x=0时,y=0.5的话,还要将先其转化为double类型。functiony=jump(x)%阶跃函数y=x>0;y=double(y);fix=(x==0).*0.5;%乘号‘*’默认是进行矩阵相乘的,直接用的话肯定不行(不满足条件)y=y+fix;%所以这里改成了数乘符,该运算符能够对向量中的每个元素进行

7、操作end综上,最后这样写是最好不过的了functiony=jump(x)%阶跃函数y=(x>0)+(x==0).*0.5;%y=(x>=0)-(x==0).*0.5;end一时兴起,找来了源码,有谁能看懂吗?functionY=heaviside(X)%HEAVISIDEStepfunction.%HEAVISIDE(X)is0forX<0,1forX>0,and.5forX==0.%HEAVISIDE(X)isnotafunctioninthestrictsense.%SeealsoDIRAC.%Copyright1993-

8、2008TheMathWorks,Inc.%$Revision:1.1.6.1$$Date:2009/03/0920:41:30$Y=zeros(size(X));Y(X>0)=1;eng=symengine;ifstrcmp(eng.kind,'maple')

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。