连续时间信号和系统时域分析报告及MATLAB实现.docx

上传人:b****1 文档编号:2406773 上传时间:2023-05-03 格式:DOCX 页数:38 大小:502.29KB
下载 相关 举报
连续时间信号和系统时域分析报告及MATLAB实现.docx_第1页
第1页 / 共38页
连续时间信号和系统时域分析报告及MATLAB实现.docx_第2页
第2页 / 共38页
连续时间信号和系统时域分析报告及MATLAB实现.docx_第3页
第3页 / 共38页
连续时间信号和系统时域分析报告及MATLAB实现.docx_第4页
第4页 / 共38页
连续时间信号和系统时域分析报告及MATLAB实现.docx_第5页
第5页 / 共38页
连续时间信号和系统时域分析报告及MATLAB实现.docx_第6页
第6页 / 共38页
连续时间信号和系统时域分析报告及MATLAB实现.docx_第7页
第7页 / 共38页
连续时间信号和系统时域分析报告及MATLAB实现.docx_第8页
第8页 / 共38页
连续时间信号和系统时域分析报告及MATLAB实现.docx_第9页
第9页 / 共38页
连续时间信号和系统时域分析报告及MATLAB实现.docx_第10页
第10页 / 共38页
连续时间信号和系统时域分析报告及MATLAB实现.docx_第11页
第11页 / 共38页
连续时间信号和系统时域分析报告及MATLAB实现.docx_第12页
第12页 / 共38页
连续时间信号和系统时域分析报告及MATLAB实现.docx_第13页
第13页 / 共38页
连续时间信号和系统时域分析报告及MATLAB实现.docx_第14页
第14页 / 共38页
连续时间信号和系统时域分析报告及MATLAB实现.docx_第15页
第15页 / 共38页
连续时间信号和系统时域分析报告及MATLAB实现.docx_第16页
第16页 / 共38页
连续时间信号和系统时域分析报告及MATLAB实现.docx_第17页
第17页 / 共38页
连续时间信号和系统时域分析报告及MATLAB实现.docx_第18页
第18页 / 共38页
连续时间信号和系统时域分析报告及MATLAB实现.docx_第19页
第19页 / 共38页
连续时间信号和系统时域分析报告及MATLAB实现.docx_第20页
第20页 / 共38页
亲,该文档总共38页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

连续时间信号和系统时域分析报告及MATLAB实现.docx

《连续时间信号和系统时域分析报告及MATLAB实现.docx》由会员分享,可在线阅读,更多相关《连续时间信号和系统时域分析报告及MATLAB实现.docx(38页珍藏版)》请在冰点文库上搜索。

连续时间信号和系统时域分析报告及MATLAB实现.docx

连续时间信号和系统时域分析报告及MATLAB实现

MATLAB课程设计任务书

姓名:

王**学号:

2010******010

题目:

连续时间信号和系统时域分析及MATLAB实现

初始条件:

MATLAB7.5.0,WindowsXP系统

实验任务:

一、用MATLAB实现常用连续时间信号的时域波形(通过改变参数,分析其时域特性)。

1、单位阶跃信号,2、单位冲激信号,3、正弦信号,4、实指数信号,5、虚指数信号,6、复指数信号。

二、用MATLAB实现信号的时域运算

1、相加,2、相乘,3、数乘,4、微分,5、积分

三、用MATLAB实现信号的时域变换(参数变化,分析波形变化)

1、反转,2、使移(超时,延时),3、展缩,4、倒相,5、综合变化

四、用MATLAB实现信号简单的时域分解

1、信号的交直流分解,2、信号的奇偶分解

五、用MATLAB实现连续时间系统的卷积积分的仿真波形

给出几个典型例子,对每个例子,要求画出对应波形。

六、用MATLAB实现连续时间系统的冲激响应、阶跃响应的仿真波形。

给出几个典型例子,四种调用格式。

七、利用MATLAB实现连续时间系统对正弦信号、实指数信号的零状态响应的仿真波形。

 

1MATLAB简介

1.1MATLAB设计目的

深入研究连续时间信号和系统时域分析的理论知识。

利用MATLAB强大的图形处理功能、符号运算功能以及数值计算功能,实现连续时间信号和系统时域分析的仿真波形

1.2MATLAB语言特点

MATLAB和Mathematica、Maple并称为三大数学软件。

它在数学类科技应用软件中在数值计算方面首屈一指。

MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。

MATLAB的最重要特征使他拥有解决特定应用问题的程序组,也就是TOOLBOX(工具箱),如信号处理工具箱,控制系统工具箱、神经网络工具箱、模糊逻辑工具箱、通信工具箱和数据采集工具箱等许多专用工具箱,对大多数用户来说,要想灵活、高效地运用这些工具箱,通常都需要学习相应的专业知识。

2常用连续时间信号的时域波形

连续信号又称为模拟信号,其信号存在于整个时间范围内,包括单位阶跃信号,单位冲激信号,正弦信号,实指数信号,虚指数信号,复指数信号。

2.1单位阶跃信号

单位阶跃信号的定义如下:

单位阶跃信号的MATLAB程序:

>>t=-0.5:

0.01:

5;

>>t0=1.0;

>>q=stepfun(t,t0);

>>plot(t,q);

>>axisequal

其信号图如下:

2.2单位冲激信号

MATLAB实现程序如下:

>>t=-5:

0.01:

5;

>>a=(t==0);

>>plot(t,a);

信号图如下:

2.3正弦信号

正弦信号其MATLAB实现程序如下:

>>t=-1:

0.0001:

1;

>>A=6;

>>f=5;

>>b=1;

>>u=A*sin(2*pi*f*t+b);

>>plot(t,u)

>>axis([-11-6.56.5])

其信号图如下:

2.4实指数信号

实指数信号可由下面的表达式来表示:

MATLAB实现程序如下:

>>t=0:

0.002:

3;

>>A=3;

>>a=0.5;

>>b=A*exp(a*t);

>>plot(t,b)

>>axis([-0.23.1-0.214])

其信号图如下:

2.5虚指数信号

虚指数信号可由下面的表达式来表示:

A=2,

的虚指数信号

的MATLAB实现程序如下

>>t=0:

0.001:

20;

>>a=2;

>>w=pi/4;

>>b=a*exp(i*w*t);

>>subplot(221),plot(t,real(b)),axis([0,20,-4,4]),title('实部')

>>subplot(222),plot(t,imag(b)),axis([0,20,-4,4]),title('虚部')

>>subplot(223),plot(t,abs(b)),axis([0,20,1,4]),title('模')

>>subplot(224),plot(t,angle(b)),axis([0,20,-4,4]),title('相角')

其信号图如下:

2.6复指数信号

复指数信号可由下面的表达式来表示:

MATLAB实现程序如下:

>>t=0:

0.01:

4;

>>a=-1;

>>A=1;

>>b=12;

>>c=A*exp((a+i*b)*t);

>>subplot(221),plot(t,real(c)),title('实部')

>>subplot(222),plot(t,abs(c)),title('模')

>>subplot(223),plot(t,imag(c)),title('虚部')

>>subplot(224),plot(t,angle(c)),title('相角')

其信号图如下:

3连续时间信号的时域运算

3.1相加

要实现两信号的相加,即f(t)=f1(t)+f2(t)

f1(t)为单位阶跃信号,f2(t)为正弦信号,两信号相加的实现程序如下,

>>t=-6:

0.0001:

10;

>>t0=2;

>>a=stepfun(t,t0);

>>b=sin(2*pi*t);

>>f=b+a;

>>plot(t,f)

>>axis([-610-33])

其信号图如下:

3.2相乘

要实现两信号的相乘,即f(t)=f1(t)*f2(t)

f1(t)为单位阶跃信号,f2(t)为正弦信号,两信号相乘的实现程序如下:

>>t=0:

0.0001:

5;

>>t0=0.5;

>>a=stepfun(t,t0);

>>b=sin(2*pi*t);

>>f=a.*b;

>>plot(t,f);

>>axis([05-22]);

其信号图如下:

3.3数乘

要实现信号的数乘,即f(t)=A*f1(t)

A=3,f1(t)为单位阶跃信号,信号数乘的实现程序如下:

>>t=0:

0.0001:

5;

>>a=3;

>>t0=1;

>>b=stepfun(t,t0);

>>f=a*b;

>>plot(t,f);

>>axis([-2505]);

其信号图如下:

3.4微分

微分即求信号的导数。

对函数f(t)=t2求一阶微分的实现程序如下:

>>t=-40:

0.002:

40;

>>a=t.*t;

>>d=diff(a);

>>subplot(211);

>>plot(t,a,'-');

>>subplot(212);

>>plot(d,'-');

其信号图如下:

3.5积分

对f(t)=t2函数的一次积分的实现程序如下:

>>t=-2:

0.1:

2;

>>symst;

>>f=t*t;

>>a=int(f);

>>subplot(211);

>>ezplot(f);

>>subplot(212);

>>ezplot(a);

其信号图如下:

4.1反转

信号的反转就是将信号的波形以某轴为对称轴翻转180︒

信号f(t)=t的反转MATLAB程序如下:

>>t=-10:

1:

10;

>>f=t;

>>a=fliplr(f);

>>h=flipud(f);

>>subplot(311);

>>plot(t,f);

>>axis([-22-22]);

>>title('原');

>>subplot(312);

>>plot(t,a);

>>axis([-55-55]);

>>title('上下');

>>subplot(313);

>>plot(t,h);

>>axis([-55-55]);

>>title('左右’');

其信号图如下:

4.2时移

实现连续时间信号的时移即f(t-t0)或者f(t+t0),常数t0>0。

余弦信号的时移实现程序如下:

>>t=0:

0.0001:

5;

>>y=cos(2*pi*t);

>>y1=cos(2*pi*(t-0.2));

>>plot(t,y,'-',t,y1);

>>axis([05-1.51.5]);

其信号图如下:

4.3展缩

信号的展缩即将信号f(t)中的自变量t替换为at,a≠0。

正切信号的展缩实现程序如下:

>>t=0:

0.001:

2;

>>a=1;

>>y=sin(2*pi*t);

>>y1=subs(y,t,a*t);

>>subplot(211);

>>ezplot(y);

>>subplot(212);

>>ezplot(y1);

其信号图如下:

 

4.4倒相

连续信号的倒相是指将信号f(t)以横轴为对称轴对折得到-f(t)。

正弦信号的展缩实现程序如下:

>>t=0:

0.0001:

4;

>>y=cos(2*pi*t);

>>y1=-y;

>>subplot(211);

>>plot(t,y);

>>axis([04-1.51.5]);

>>subplot(212);

>>plot(t,y1);

>>axis([04-1.51.5]);

其信号图如下:

4.5综合变化

将f(t)=cos(t)/t通过反褶、移位、尺度变换由f(t)的波形得到f(-2t+3)的波形。

该变化的实现程序如下

>>symst;

>>f=sym('cos(t)/t');

>>f1=subs(f,t,t+2);

>>f2=subs(f1,t,1*t);

>>f3=subs(f2,t,-t);

>>subplot(221);ezplot(f,[-10,10]);

>>subplot(222);ezplot(f1,[-10,10]);

>>subplot(223);ezplot(f2,[-10,10]);

>>subplot(224);ezplot(f3,[-10,10]);

其信号图如下:

5连续时间信号简单的时域分解

5.1信号的交直流分解

信号的交直流分解即将信号分解成直流分量和交流分量两部分之和,其中直流分量定义为

fD(t)=

/t

交流分量定义为

fA(t)=f(t)-fD(t)

例如对函数f(t)=cos(t)+2进行交直流分解。

程序如下:

>>t=-5:

0.002:

5;

>>f=cos(2*pi*t)+2;

>>a=mean(f);

>>b=f-a;

>>subplot(311);

>>plot(t,f);

>>axis([-220.55]);

>>subplot(312);

>>plot(t,a);

>>axis([-22-25]);

>>subplot(313);

>>plot(t,b);

>>axis([-22-1.51.5]);

图像如下:

 

5.2信号的奇偶分解

对函数f(t)=cos(t-5)+t进行交直流分解。

MATLAB程序如下:

>>symst;

>>f=sym('cos(t-5)+t');

>>f1=subs(f,t,-t)

>>a=1/2*(f+f1);

>>b=1/2*(f-f1);

>>subplot(311);

>>ezplot(f,[-8,8]);

>>subplot(312);

>>ezplot(a,[-8,8]);

>>subplot(313);

>>ezplot(b,[-8,8]);

波形图如下图:

6连续时间系统的卷积积分的仿真波形

卷积积分在信号与线形系统分析中具有非常重要的意义,是信号与系统分析

的基本方法之一。

连续时间信号f1(t)和f2(t)的卷积积分(简称为卷积)f(t)定义为:

f(t)=f1(t)*f2(t)=

1(t)f2(t-

由此可得到两个与卷积相关的重要结论,即是:

(1)f(t)=f1(t)*

(t),,即连续信号可分解为一系列幅度由f(t)决定的冲激

信号

(t)及其平移信号之和;

(2)线形时不变连续系统,设其输入信号为f(t),单位响应为h(t)

,其零状态响应为y(t),则有:

y(t)=f(t)h(t)。

用MATLAB实现连续信号f1(t)与f2(t)卷积的过程如下:

(1)将连续信号f1(t)与f2(t)以时间间隔∆进行取样,得到离散序列f1(k∆)和f2(k∆);

(2)构造与f1(k∆)和f2(k∆)相对应的时间向量k1和k2;

(3)调用conv()函数计算卷积积分f(t)的近似向量f(n∆);

(4)构造f(n∆)对应的时间向量k。

卷积实现程序如下:

>>function[f,k]=sconv(f1,f2,k1,k2,p)

>>f=conv(f1,f2);%计算序列f1与f2的卷积和f

>>f=f*p;

>>k0=k1

(1)+k2

(1);%计算序列f非零样值的起点位置

>>k3=length(f1)+length(f2)-2;%计算卷积和f的非零样值的宽度

>>k=k0:

p:

k3*p;%确定卷积和f非零样值的时间向量

>>subplot(2,2,1)

>>plot(k1,f1)%在子图1绘f1(t)时域波形图

>>title('f1(t)')

>>xlabel('t')

>>ylabel('f1(t)')

>>subplot(2,2,2)

>>plot(k2,f2)%在子图2绘f2(t)时波形图

>>title('f2(t)')

>>xlabel('t')

>>ylabel('f2(t)')

>>subplot(2,2,3)

>>plot(k,f);%画卷积f(t)的时域波形

>>h=get(gca,'position');

>>h(3)=2.5*h(3);

>>set(gca,'position',h)%将第三个子图的横坐标范围扩为原来的2.5倍

>>title('f(t)=f1(t)*f2(t)')

>>xlabel('t')

>>ylabel('f(t)')

例一:

 

实现程序如下:

>>p=0.1;

>>k1=0:

p:

2;

>>f1=0.5*k1;

>>k2=k1;

>>f2=f1;

>>[f,k]=docsconv(f1,f2,k1,k2,p)

例二:

 

实现程序如下:

p=0.1;

k1=0:

p:

2;

>>f1=rectpuls(k1-1,length(k1));

>>k2=k1;

>>f2=f1;

>>[f,k]=sconv(f1,f2,k1,k2,p)

7连续时间系统的冲激响应、阶跃响应的仿真波形

对于连续时间系统,求解系统的冲激响应h(t)和阶跃响应g(t)对我们进行连续系统的分析具有非常重要的意义。

MATLAB为用户提供了专门用于求连续系统冲激响应和阶跃响应并绘制其时域波形的函数impulse()和step()。

在调用impulse()和step()函数时,我们需要用向量来对连续时间系统进行分析。

设描述连续系统的微分方程为:

iy(i)(t)=

jx(j)(t)

则我们可用向量A和B来表示该系统,即:

A=[AN,AN-1,……A1,A0]

B=[BN,BN-1,……B1,B0]

注意,向量A和B的元素一定要以微分方程中时间求导的降幂次序来排列,且缺项要用0来补齐。

例如,对微分方程

,则表示该系统的对应向量应为A=[132],B=[101]。

7.1impulse()函数

函数impulse()将绘出由向量a和b表示的连续系统在指定时间范围内的冲激响应h(t)的时域波形图,并能求出指定时间范围内冲激响应的数值解。

impulse()函数有如下四种调用格式:

(1)impulse(b,a):

该调用格式以默认方式绘出向量A和B定义的连续系统的冲激响应的时域波形。

例如描述连续系统的微分方程为

运行如下MATLAB命令:

>>a=[156];

>>b=[32];

>>impulse(b,a);

则绘出系统的冲激响应波形,如图所示:

(2)impulse(b,a,t):

运行命令impulse(b,a,6),则绘出系统在0~6秒范围内冲激响应的时域波形,如图所示

 

(3)impulse(b,a,t1:

p:

t2):

若运行命令impulse(b,a,1:

0.1:

3),则绘出1~3秒内,每隔0.1秒取样的冲激响应的时域波形,如图所示:

 

(4)y=impulse(b,a,t1:

p:

t2):

若运行命令y=impulse(b,a,0:

0.2:

3),则运行结果为:

7.2step()函数

step()函数可绘出连续系统的阶跃响应g(t)在指定时间范围的时域波形并能求出其数值解,和impulse()函数一样也有四种调用格式。

运行如下MATLAB命令:

>>a=[156];

>>b=[32];

>>step(b,a);

则绘出系统的阶跃响应波形,如图所示。

(2)step(b,a,t):

运行命令step(b,a,6),绘出在0~6秒范围内阶跃响应的时域波形

(3)step(b,a,t1:

p:

t2):

运行命令step(b,a,1:

0.1:

3),绘出1~3秒内,每隔0.1秒取样的阶跃响应的时域波形

(4)y=step(b,a,t1:

p:

t2):

运行命令y=step(b,a,0:

0.2:

3),则运行结果为:

8连续时间系统对正弦信号、实指数信号的零状态响应的仿真波形

MATLAB中的函数lsim()能对微分方程描述的LTI连续时间系统的响应进行仿真。

该函数能绘制连续时间系统在指定的任意时间范围内系统响应的时域波形图,还能求出连续时间系统在指定的任意时间范围内系统响应的数值解,函数lsim()的调用格式如下:

lsim(b,a,x,t)

在该调用格式中,a和b是由描述系统的微分方程系统决定的表示该系统的两个行向量。

x和t则是表示输入信号的行向量,其中t为表示输入信号时间范围的向量,x则是输入信号在向量t定义的时间点上的抽样值。

该调用格式将绘出向量b和a所定义的连续系统在输入量为向量x和t所定义的信号时,系统的零状态响应的时域仿真波形,且时间范围与输入信号相同。

8.1正弦信号的零状态响应

MATLAB命令如下:

>>a=[1,2,1];

>>b=[1,2];

>>p=0.5;

>>t=0:

p:

5;

>>x=sin(3*pi*t);

>>lsim(b,a,x,t);

>>holdon;

>>p=1.0;

>>t=0:

p:

8;

>>x=sin(3*pi*t);

>>lsim(b,a,x,t);

>>p=0.01;

>>t=0:

p:

5;

>>x=sin(3*pi*t);

>>lsim(b,a,x,t);

>>holdoff;

8.2实指数信号的零状态响应

MATLAB命令如下:

>>a=[1,3,1];

>>b=[1,3];

>>p=0.5;

>>t=0:

p:

5;

>>x=exp(-2*t);

>>lsim(b,a,x,t);

>>holdon;

>>p=0.2;

>>t=0:

p:

5;

>>x=exp(-2*t);

>>lsim(b,a,x,t);

>>p=0.01;

>>t=0:

p:

5;

>>x=exp(-2*t);

>>lsim(b,a,x,t);

>>holdoff;

上图中蓝线、绿线、红线分别代表p=0.5、p=0.2、p=0.01。

显然可以看出,函数lsim()对系统响应进行仿真的效果取决于向量t的时间间隔的密集程度。

上图绘出了上述系统在不同抽样时间间隔时函数lsim()仿真的情况,可见抽样时间间隔越小仿真效果越好。

9小结

做此次课程设计之前,我对MATLAB软件还处于一种较为模糊的状态,虽然上学期的信号与系统课配有MATLAB实验,而且还选修了数学建模课程,经过学习,对MATLAB只是有了一个大概的了解,熟悉了一些简单操作。

通过在学校的电子资源期刊网上找了一些论文资料,借阅图书,一点一滴自学,以及和同学不断的交流,最后完成了这次课程设计。

对于信号与系统的一些基本信号的MATLAB实现和基本变换有了清楚认识。

 

在课程设计的过程中,我学到很多东西。

比如一些常见信号的MATLAB里的基本函数的调用,对于绘图指令的调用,及subplot,plot,ezplot等指令的差别,通过在实践过程中,调用不同的指令来实现,让自己更加清晰地了解了MATLAB强大功能。

另外,对于求解积分,微分等常用计算,MATLAB还提供了简便函数,如diff,int等等。

在课程设计中,不可避免的遇到了很多问题,比如,刚开始拿到题目的时候,觉得思路很混乱,不知道从何下手,但在查找资料的过程中,渐渐清晰了大概的流程。

另外,编写代码方面,出现了很多问题,因为之前很少使用MATLAB软件,对于它的语言和它强大的函数功能,还比较陌生。

因此,不管什么,都是越用越熟悉,如果这东西对我有用,我应该多去实践,多练习,这样才能在以后的工作学习中手到擒来。

 

总的来说,这次课程设计让我对MATLAB有了更深刻的了解,对信号系统中常见信号的MATLAB实现有了大致的了解,提高了理论用于实践的能力,掌握了更多专业相关的使用知识与技能。

同时,也暴露了我很多的不足,在以后的学习中,将进一步发扬有点,克服缺点。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2