常见连续信号的MATLAB表示_第1页
常见连续信号的MATLAB表示_第2页
常见连续信号的MATLAB表示_第3页
常见连续信号的MATLAB表示_第4页
常见连续信号的MATLAB表示_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验名称:常见连续信号的MATLAB表示

报告人:姓名班级—学号—

一、实验目的

1、熟悉常见连续时间信号的意义、特性及波形;

2、学会使用MATLAB表示连续时间信号的方法;

3、学会使用MATLAB绘制连续时间信号的波形。

二、实验内容及运行结果

1、运行以上5个例题的程序,保存运行结果。

2、已知信号/(')的波形如下图所示,试用MATLAB绘出满足下列要求的信号波形。

,Kt)

2-

1

--------------------------------►

12t

⑴/(一);

1

/、fl=-

(3)(其中a的值分别为2和。=2);

第一题

例题1

程序如下:

»tl=-10:0.5:10;

»fl=sin(tl)./tl;

»figure(1)

»plot(tl,fl)

»xlabel(取样间隔p=0.5');

»title('f(t)=Sa(t)=sin(t)/t');

»t2=-10:0.1:10;

»f2=sin(⑵./l2;

»figure(2)

»plot(t2,f2)

»xlabel(,取样间隔p=0.1');

»title('f(t)=Sa(t)=sin(t)/t');

运行结果如下:

例题2

程序如下:

»symst

»f^sin(t)/t;

»ezplot(f,[-l0,10])

运行结果如下:

例题3:

程序如下:

»t=-1:0.01:4;

»t0=0;

»ut=stepfun(t,tO);

»plot(t,ut)

»axis([-l,4,-0-5,1.5])

运行结果如下:

1.5r---------:----------:----------1-------

0.5

-0.500.511.522.533.54

例题4:

程序如下:

»1=-4:0.01:4;

»tl=-2;

»ul=stepfun(t,tl);

»t2=2;

»u2=stepfun(t,t2);

»g=u1-u2;

»plot(t,g)

»axis([-4,4»-0.5,1.5])

运行程序如下:

例题五

程序如下:

»t=-5:0.01:5;

»f=sign(t);

»figure(l);plot(t,f);

»axis([-5,5,-1.5,1.5])

»s=l/2+I/2*f;

»figure(2);plot(t,s);

»axis([-5,5<0.5,1.5])

运行程序如下:

1.5

■0.5

05

第二题

绘制f(l)的波形图,程序如下:

»t=0:0.01:5;%定义时间样本向量

»%指定信号在tl=-l该时刻发生突变

»ul=stepfun(t,tl);%产生单位阶跃信号,ul

指定信号在t2=l该时刻发生突变

»u2=stepfun(t,t2)%产生单位阶跃信号,u2

»t3=-2;%指定信号在t3=-2该时刻发生突变

»u3=stepfun(t,t3);%产生单位阶乐信号,u3

»t4=2;%指定信号在t4=2该时刻发生突变

»u4=stepfun(t,t4);%产生单位阶跌信号,u4

»g=(ul-u2)+(u3-u4);%表示门函数,其中,U1-U2表示门宽为2的门信号,u3-u4表示门宽

为4的门信号

»plot(t,g)%绘制门函数的波形

»2乂1$([0,5,0,5])%设定坐标轴范围0。<5,0<y<5

»title('f(t),);%备注波形的标题为f(t)

»xlabel('f);%备注x轴变量为t

»ylabelCf(t),)%备注y轴变量为f(t)

运行结果如下:

小)

4.5■

4■

3.5

3■

S2.5-

2.

1.5•

1•

0.5•

0

00.511.522.533.544.5

t

(l)f(-t)

程序如下:

»(=-5:0.01:5;%定义时间样本向量

指定信号在该时刻发生突变

»ul=stepfun(t,tl);%产生单位阶跃信号,ul

指定信号在t2=l该时刻发生突变

»u2=stepfun(t,t2);%产生单位阶乐信号,u2

»t3=-2;%指定信号在13:2该时刻发生突变

»u3=stcpfun(t,t3);%产生单位阶乐信号,u3

»t4=2;%指定信号在t4=2该时刻发生突变

»u4=stepfun(t,t4);%产生单位阶跌信号,u4

>>g=(u1-u2)+(u3-u4);%表示门函数,其中,U1-U2表示门宽为2的门信号,u3-u4表示门宽

为4的门信号

»plot(Lg)%绘制门函数的波形

>>@*1$([-5,0,0,5])%设定坐标轴范围-5<*<0,0<y<5

»titleCfC-t)1)%备注波形的标题为f(-t)

»ylabelCfd)1)%备注y轴变量为f(t)

运行程序如下:

K-t)

5

4.5••

3.5-.

3•

芟2.5-

2----------

1.5■!

1---------------------

0.5•

Q____:____:____:____:____:____:____:____:____:____

-5-4.54-3.5-3-2.5-2-1.5-1-0.50

(2)f(t-2)

程序如下:

»t=-5:0.01:5;%定义时间样本向量

指定信号在tl=-l该时刻发生突变

»ul=stepfun(t,tl);%产生单位阶跃信号,ul

»t2=l;%指定信号在t2=l该时刻发生突变

»u2=stcpfun(t,t2);%产生单位阶氏信号,u2

»t3=-2;%指定信号在t3=-2该时刻发生突变

»u3=stepfun(t,t3);%产生单位阶乐信号,u3

»t4=2;%指定信号在t4=2该时刻发生突变

»u4=stepfun(t,t4);%产生单位阶跃信号,u4

»g=(ul-u2)+(u3-u4);%表示门函数,其中,ul-u2表示门宽为2的门信号,u3-u4表示门宽

为4的门信号

»plot(t+2,g)%绘制门函数的波形,1向右平移两个单位

>>a乂1$([0,5。5])%设定坐标轴范围・5<*<0,(Xy<5

»title('f(t-2),)%备注波形的标题为f(t-2)

运行结果如下:

收2)

4.5

4•

2-

1.5・

1-

0.5•

°00.511.522.533.544.55

(3)f(at)

当a=l/2时,f(l/2t)程序如下:

»t—5:0.01;5;%定义时间样本向量

指定信号在tl=-l该时刻发生突变

>>ul=slepfun(t,tl);%产生单位阶跃信号,ul

»12=1;%指定信号在12=1该时刻发生突变

»u2=stepfun(t,t2);%产生单位阶跃信号,u2

»t3=-2;%指定信号在13=-2该时刻发生突变

»u3=stepfun(t,t3);%产生单位阶跌信号,u3

»t4=2;%指定信号在t4=2该时刻发生突变

»u4=stepfun(t,t4);%产生单位阶跃信号,u4

»g=(ul-u2)+(u3-u4);%表示门函数,其中,ul-u2表示门宽为2的门信1,u3-u4表示门宽

为4的门信号

»plot(2*t,g)%绘制门函数的波形,t增大一倍,

»axis([0,5,0,5])%设定坐标轴范围-5vxv0,0<y<5

»titleCffl/lt),)%备注波形的标题为f(l/2t)

运行结果如下;

当a=2时,f(2t)的程序如下所示:

a『-5:0.01:5;%定义时间样本向最

»H=-l;%指定信号在tl=-l该时刻发生突变

»ul=stepfun(t,tl);%产生单位阶跌信号,ul

»t2=l;%指定信号在t2=l该时刻发生突变

»u2=stepfun(t,t2);%产生单位阶沃信号,u2

»t3=-2;%指定信号在(3=-2该时刻发生突变

»u3=stepfun(t,t3);%产生单位阶跃信号,u3

»t4=2;%指定信号在t4=2该时刻发生突变

»u4=stepfun(t,t4);%产生单位阶跃信号,u4

»g=(ul-u2)+(u3-u4);%表示门函数,其中,ul-u2表示门宽为2的门信号,u3-u4表示门宽

为4的门信号

»plot(l/2*t,g)%绘制门函数的波形,t缩小一•倍

>>2乂15([0,5。5])%设定坐标轴范围-5。<0,0<y<5

»title('f(2t),)%备注波形的标题为f(2t)

运行程序如图所示:

(4)f(l/2t+l)

程序如下所示:

»(=-5:0.01:5;%定义时间样本向量

指定信号在该时刻发生突变

»ul=stepfun(t,tl);%产生单位阶跃信号,ul

»t2=l;%指定信号在t2=l该时刻发生突变

»u2=stepfun(t,t2);%产生单位阶跃信号,u2

»t3=-2;%指定信号在t3=-2该时刻发生突变

»u3=stcpfun(t,t3);%产生单位阶乐信号,u3

»t4=2;%指定信号在t4=2该时刻发生突变

»u4=stepfun(t,t4);%产生单位阶跌信号,u4

>>g=(u1-u2)+(u3-u4);%表示门函数,其中,U1-U2表示门宽为2的门信号,u3-u4表示门宽

为4的门信号

»plot(2*(t-l),g)%绘制门函数的波形,t伸展一倍再向左平移2个单位

>>@*1$([-2,3,0,5])%设定坐标轴范围201<3,0<y<5

»title('f(l/2t+l),)%备注波形的标题为f(l/2t+l)

运行程序如下:

三、讨论与总论

通过本次实验,验证了:阶跃信号的时移、反转、尺度变换变换前后端点上的函数值不

变,且仅对,进行变换

附录资料:

MATLABCell函数使用技巧

谈谈MATLAB中cell函数

如果p为一个数,那么h(l)=p,是没有问题的。

如果p为一个向量,那么h(l,:)=p是没有问题的。

如果P是一个矩阵的话,上面的两种赋值方法都是会有错误的。

那么要如何处理呢?

这时就用到了cell数据类型了。cell的每个单元都可以存储任何数据,比如传递函数等。当

然,存储矩阵更是没有问题的了。但是用cell数据类型之前,要先初始化。

a=cell(n,m)

那么就把a初始化为一个n行m列的空cell类型数据。

如何赋值呢?

a{l,l}=rand(5)

那么a的1行1列的单元中存储的就是一个随机的5X5的方阵了。

那么要用第一个单元中的方阵中的某个值呢?

可以如下引用:a{l,l}(2,3)

就可以了,引用cell单元时要用{},再引用矩阵的某个数据就要用()了。

cell单元中的每个单元都是独立的,可以分别存储不同大小的矩阵或不同类型的数据。

下面举个例子:

a=cell(2,2);%预分配

,

a{l,l}='cellclass;

a{l,2}=[l22];

'

a{2,l}=['a';b';c];

a{2,2}=[956];

»a{14}

ans=

cellclass

»a{l,2}

ans=

122

»a{2,:}

ans=

abc

ans=

956

»b=a{l,l}

b=

cellclass

元胞数组:

元胞数组是MATLAB的一种特殊数据类型,可以将元胞数组看做一种无所不包的通用矩阵,

或者叫做广义矩阵。组成元胞数组的元素可以是任何一种数据类型的常数或者常量,每一个

元素也可以具有不同的尺寸和内存占用空间,每一个元素的内容也可以完全不同,所以元胞

数组的元素叫做元胞(cell)。和一般的数值矩阵一样,元胞数组的内存空间也是动态分配的。

(1)元胞数组的创建

»a={'matlab',20;ones(2,3),l:10}

a;

,matlab'[20]

[2x3double][1x10double]

,,

»b=[{matlab},{20};{ones(2/3)L{l:10}]

b=

'matlab'[20]

[2x3double][1x10double]

»c={10}

c=

[10]

»c(l,2)={2}

c=

[10][2]

>>c(2,2)={5}

c=

[10][2]

[][5]

»isequal(a,b)

ans=

1

»whos

NameSizeBytesClassAttributes

a2x2388cell

ans1X11logical

b2x2388cell

c2x2208cell

用cell函数创建元胞数组,创建的数组为空元胞。cell函数创建空元胞数组的主要目的是为

数组预先分配连续的存储空间,节约内存占用,提高执行效率。

»a-cell(l)

a=

{[]}

»b=cell(l,2)

b=

[J[]

»c=cell(3,3)

c=

11[][]

11[][]

[][]U

»d=cell(2,2,2)

=

[][]

[][]

d(:,:,2)=

11[]

[J[]

»whos

NameSizeBytesClassAttributes

a1x14cell

ans1X11logical

b1x28cell

c3x336cell

d2x2x232cell

(2)元胞数组的数据获得

从元胞数组中读取数据,可保存为个标准的数组或个新的单元数组,或取出数组进行计

算。元胞数组中数据的访问,可通过元胞内容的下标进行,用元胞数组名加大括号{}。大括

号中数值表示元胞的下标。如a{l,2}表示元胞数组中第一行第二列的元胞。

»a={20/matlab';ones(2,3),l:3}

[20]'matlab'

[2x3double][1x3double]

»str=a(l,2)

str=

'matlab'

»class(str)

ans=

cell

»str=a{lz2}

str=

matlab

»class(str)

ans=

char

()和{}有着本质的区别,大括号用于表示元胞的内容,小括号表示指定的元胞。

[20]'matlab'

[2x3double][1x3double]

»a{2,l}(2,2)

ans=

0.9134

»a{2zl}(23)

ans=

0.0975

>>a{l,2}⑵

ans=

a

使用元胞的下标,可将一个元胞数组的子集赋值给另一个变量,创建新的元胞数组。

>>a=[{l},{2},{3};{4},{5},{6};{7},{8},{9}]

a=

[1][2][3]

[4][5][6]

[7][8][9]

»b=a(2:3,2:3)

b=

[5][6]

[8][9]

»c=a(l:3,2:3)

[2][3]

[5][6]

[8][9]

本例使用元胞下标的方式创建了新的元胞数组b和c,通过结果看出b和c就是元胞数组a

的部分。

(3)元胞数组的删除和重塑

要删除单元数组中的行或列,可以用冒号表示单元数组中的行或列,然后对其赋一个空矩阵

即可。

a={20/matlab';ones(2,3),l:3}

[20]'matlab'

[2x3double][1x3double]

»a(l,:)=[]

a=

[2x3double][1x3double]

»a={20/'matlab';ones(2/3),l:3};

»a{l}=[]

[]'matlab'

[2x3double][1x3double]

»a(l)=[]

[2x3double],matlab'|lx3double]

»a(2)=[]

a=

[2x3double][1x3double]

»a(l,2)=[J

???Anullassignmentcanhaveonlyonenon-colonindex.

>■)=[]

[1x3double]

元宝数组和其他数组一样,也可以通过reshape函数改变形状,改变后的元胞数组与原元胞

数组的元素个数相同,不能通过改变形状来添加或删除元胞数组中的元素。

»3=0611(4,4)

(][](1[]

[][][][]

[][][][]

[][][][]

»size(a)

44

»b=reshape(a,2z8)

b=

[][][1[][]0[][]

[][][][][][][][]

〉〉size(b)

ans=

28

(5)元胞数组中的操作函数

cell:创建空的元胞数组

cellfun:为元胞数组的每个元胞执行指定的函数

celldisp:显示所有元胞的内容

cellplot:利用图形方式显示元胞数组

cell2mat:将元胞数组转变成为普通的矩阵

mat2cell:将数值矩阵转变成为元胞数组

num2cell:将数值数组转变成为元胞数组

deal:将输入参数赋值给输出

cell2struct:将元胞数组转变成为结构

struct2cell:将结构转变为元胞数组

iscell:判断输入是否为元胞数组

»a={20,'matlab',3-7i;ones(2,3),1:3.0}

a=

[20]'matlab'[3.0000-7.0000i]

[2x3double][1x3double][0]

»b=cellfun('isrear,a)

b

110

111

>>c=cellfun('length',a)

c=

161

331

»d=cellfun('isclass',a,'double')

d=

101

111

(函数的应用)

cellfun函数的主要功能是对元胞数组的元素(元胞)分别指定不同的函数,不过,能够在

cellfun函数中使用的函数ushuliang是有限的。

能在cellfun中使用的函数:

isempty:若元胞元素为空,则返回逻辑真

islogical:若元胞元素为逻辑类型,则返回逻辑真

isreal:若元胞元素为实数,则返回逻辑真

length:元胞元素的长度

ndims:元胞元素的维数

prodofsize:元胞元素包含的元素个数

(7)元胞数组的嵌套

元胞数组的元胞中包含其他的元胞数,称为嵌套元胞数组,没有嵌套结构的元胞则称为页元

胞。使用嵌套的大括号或cell函数,或直接用赋值表达式,都可以创建嵌套单元数组,另外

还可以访问嵌套元胞数组的子数组、元胞或元胞的元素。

»a=cell(l,2)

[][]

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论