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

发布时间:2013-01-24 14:35:02   来源:文档文库   
字号:

课程设计任务书

学生姓名: 专业班级:

指导教师: 工作单位:

:

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

初始条件:

MATLAB 6.5

要求完成的主要任务:

一、用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实现连续时间系统对正弦信号、实指数信号的零状态响应的仿真波形。

给出几个典型例子,要求可以改变激励的参数,分析波形的变化。

时间安排:

学习MATLAB语言的概况 1

学习MATLAB语言的基本知识 23

学习MATLAB语言的应用环境,调试命令,绘图能力 45

课程设计 6-9

答辩 10

指导教师签名:

系主任(或责任教师)签名:

摘要 I

Abstract II

绪论 1

1 MATLAB简介 2

1.1 MATLAB语言功能 2

1.2 MATLAB语言特点 2

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

2.1单位阶跃信号 3

2.2单位冲激信号 3

2.3正弦信号 4

2.4实指数信号 5

2.5虚指数信号 5

2.6复指数信号 6

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

3.1相加 7

3.2相乘 7

3.3数乘 8

3.4微分 8

3.5积分 9

4 连续时间信号的时域变换 10

4.1反转 10

4.2时移 10

4.3展缩 11

4.4倒相 11

4.5综合变化 12

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

5.1信号的交直流分解 13

5.2信号的奇偶分解 14

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

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

7.1 impulse()函数 17

7.2 step()函数 19

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

8.1 正弦信号的零状态响应 21

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

9小结即心得体会 24

致谢 25

参考文献 26

附录 27


摘要

MATLAB目前已发展成为由MATLAB 语言、MATLAB 工作环境、MATLAB 图形处理系统、MATLAB 数学函数库和MATLAB 应用程序接口五大部分组成的集数值计算、图形处理、程序开发为一体的功能强大的系统。本次课程设计则在深入研究连续时间信号傅里叶级数分析理论知识的基础上,利用MATLAB强大的图形处理功能、符号运算功能以及数值计算功能,通过MATLAB编程进行图形功能仿真,从而实现连续时间周期信号频域分析的仿真波形,包括以下内容:MATLAB实现常用连续时间信号的时域波形MATLAB实现信号的时域运算MATLAB实现信号的时域变换;MATLAB实现信号简单的时域分解MATLAB实现连续时间系统的卷积积分的仿真波形MATLAB实现连续时间系统的冲激响应、阶跃响应的仿真波形MATLAB实现连续时间系统对正弦信号、实指数信号的零状态响应的仿真波形。

关键词MATLAB;图形处理;连续时间信号和系统时域


Abstract

MATLAB now evolved into MATLAB language, MATLAB working environment, MATLAB graphics processing systems, MATLAB math library and the MATLAB application program interface has five major components of the set of numerical computation, graphics processing, program development as one powerful system. The curriculum design, in-depth study Fourier series analysis of continuous-time signal on the basis of theoretical knowledge, using MATLAB a powerful graphics processing capabilities, symbolic computing and numerical computing capabilities, through the functional simulation MATLAB graphical programming in order to achieve continuous time periodic signal frequency domain analysis of the simulation waveforms, including the following: Time domain waveform of continuous time signal by MATLAB; time domain operation signal by MATLAB; realize the time domain signal by MATLAB; MATLAB time domain signal simple decomposition; simulation waveform of convolution integrals of continuous time system with MATLAB; MATLAB impact simulation waveform impulse response, the step response of the continuous time system to achieve zero state; simulation waveform of sine signal, the real exponential signal response of continuous time system with MATLAB.

Keywords: MATLAB; image processing; continuous time signals and systems; time domain


绪论

在科学技术飞速发展的今天,计算机正逐步将科技人员从繁重的计算工作中解脱出来。在进行科学研究与工程应用中,往往需要大量的科学计算,一些科技人员曾经尝试使用传统的高级语言BasicFortran C 语言编写程序,以减轻工作量。但编制程序需要掌握高级语言的语法,还要对各种算法进行了解,这对大多数科技人员来说是不大现实的,而且也是没有没有必要的。MATLAB 正是在这一应用要求背景下产生的数学类科技应用软件。它具有的顶尖的数值计算功能、强大的图形可视化功能及简洁易学的“科学便捷式”工作环境和编程语言,从根本上满足了科技人员对工程数学计算的要求,并将科技人员从繁重的数学运算中解放出来,因而越来越受到广大科技工作者的普遍欢迎[1]

MATLAB matrix laboratory 前三个字母的缩写,意思是“矩阵实验室”,是MathWorks 公司推出的数学类科技应用软件。其Dos 版本(MATLAB 1.0)发行于1984 年,现已推出了Windows 版本(MATLAB 5.3)。经过十多年的不断发展与完善,MATLAB 已发展成为由MATLAB 语言、MATLAB 工作环境、MATLAB 图形处理系统、MATLAB 数学函数库和MATLAB 应用程序接口五大部分组成的集数值计算、图形处理、程序开发为一体的功能强大的系统。MATLAB 由“主包”和三十多个扩展功能和应用学科性的工具箱(Toolboxs)组成。

目前,MATLAB已经成为国际上最流行的电子仿真计算机辅助设计的软件工具,现在的MATLAB已经不仅仅是一个“矩阵实验室(Matrix Laboratory)”,它已经成为一种实用的、全新的计算机高级语言。

正是由于 MATLAB 在数值计算及符号计算等方面的强大功能,使MATLAB一路领先,成为数学类科技应用软件中的佼佼者。目前,MATLAB 已成为国际上公认的最优秀的科技应用软件。MATLAB 的上述特点,使它深受工程技术人员及科技专家的欢迎,并很快成为应用学科计算机辅助分析、设计、仿真、教学等领域不可缺少的基础软件。


1 MATLAB简介

1.1 MATLAB语言功能

MATLAB是一个高精度的科学计算语言,它将计算、可视化编程结合在一个容易使用的环境中,在这个环境中,用户可以把提出的问题和解决问题的办法用熟悉的数学符号表示出来,它的典型使用包括:

1)数学和计算;

2)运算法则;

3)建模、仿真;

4)数值分析、研究和可视化;

5)科学的工程图形;

6)应用程序开发,包括创建图形用户接口。

1.2 MATLAB语言特点

MATLAB 是一个交互式系统,他的基本数据单元是数组,这个数组不要求固定的大小,因此可以让用户解决许多技术上的问题,特别是那些包含矩阵和矢量运算的问题。MATLAB的指令表达与数学、工程中常用的习惯形式相似,与CFortran、等高级语言相比,它的语法规则更简单、表达更符合工程习惯,正因为如此,人们用MATLAB语言编写程序就犹如在便笺上书写公式和求解,因而MATLAB被称为“便笺式”的科学工程语言。

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

此外,开放性也许是MATLA最重要和最受欢迎的特点之一。除内部函数外,所有的MATLAB主要文件和各工具箱文件都是可读的、可改的源文件,因为工具箱实际上是有一组复杂的MATLAB函数(M文件)组成,它扩展了MATLAB的功能,用以解决待定的问题,因此用户可以通过对源文件进行修改和加入自己编写的文件去构建新的专用工具箱。


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

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

2.1单位阶跃信号

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

单位阶跃信号的Matlab实现程序见附录,其信号图如下:

2.1 单位阶跃信号

2.2单位冲激信号

在连续时间系统中,单位冲激是一种重要的信号。任何一种模拟信号都能通过冲激给予近似,通过系统对冲激输入的响应可以求的所有其他输入信号的响应。

单位冲激信号t)也称为狄拉克(Dirac)分布,定义如下:

第一个条件表明在所有t不为0是取值为0,第二个条件是冲击下的面积为1,因此信号具有单位面积的特性。

特别需要指出的是,t=0点的值是没有定义的,并不等于无穷。冲激信号可以近似地用一个位于原点、幅度为A、持续时间为1/A的脉冲来表示,这里A是一个很大的正值。

t=1/A=1/50,单位脉冲Matlab实现程序见附录,其信号图如下:

2.2 单位冲激信号

2.3正弦信号

正弦信号和余弦信号二者仅在相位上相差π/2,经常统称为正弦信号,一般写作

幅度A=3,频率f=5,相移的正弦信号其Matlab实现程序见附录,其信号图如下:

2.3 正弦信号

2.4实指数信号

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

式中e是自然数2.718aA是实数。若a>0,信号将随时间而增长,若a<0,信号将随时间而衰减,若a=0,信号不随时间而变化,成为直流信号。常数A表示指数信号在t=0点的初始值。

A=3a=0.5的实指数信号Matlab实现程序见附录,其信号图如下:

2.4 实指数信号

2.5虚指数信号

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

A=2的虚指数信号Matlab实现程序见附录,其信号图如下:

2.5 虚指数信号

2.6复指数信号

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

A=1a=-1的复指数信号Matlab实现程序见附录,其信号图如下:

2.6 复指数信号

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

在信号的传输和处理过程中往往需要进行信号的运算,它包括信号的相加、相乘、数乘、微分、积分。

3.1相加

要实现两信号的相加,即ft=f1t+f2t

f1t)为单位阶跃信号,f2t)为正弦信号,两信号相加的实现程序加附录,其信号图如下:

3.1 相加

3.2相乘

要实现两信号的相乘,即ft=f1t*f2t

f1t)为单位阶跃信号,f2t)为正弦信号,两信号相乘的实现程序加附录,其信号图如下:

3.2 相乘

3.3数乘

要实现信号的数乘,即ft=A*f1t

A=2f1t)为单位阶跃信号,信号数乘的实现程序加附录,其信号图如下:

3.3 数乘

3.4微分

微分即求信号的导数。

对函数ft=t2求一阶微分的实现程序见附录,其信号图如下:

3.4 微分

3.5积分

ft=t2函数的一次积分的实现程序见附录,其信号图如下:

3.5 积分


4 连续时间信号时域变换

4.1反转

信号的反转就是将信号的波形以某轴为对称轴翻转180,将信号ft)中的自变量t替换成-t即可得到其反转信号。

信号ft=t的反转实现程序见附录,其信号图如下:

4.1 反转

4.2

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

正弦信号的时移实现程序见附录,其信号图如下:

4.2 时移

4.3展缩

信号的展缩即将信号ft)中的自变量t替换为ata0

正弦信号的展缩实现程序见附录,其信号图如下:

4.3 展缩

4.4倒相

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

正弦信号的展缩实现程序见附录,其信号图如下:

4.4 倒相

4.5综合变化

f(t)=sin(t)/t通过反褶、移位、尺度变换由f(t)的波形得到f(-2t+3)的波形。该变化的实现程序见附录,其信号图如下:

4.5 综合变化

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

5.1信号的交直流分解

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

fDt=/t

交流分量定义为

fAt=ft-fDt

例如对函数ft=sint+2进行交直流分解。

MATLAB 命令见附录,分解波形图如图5.1所示

5.1 信号的交直流分解

5.2信号的奇偶分解

信号的奇偶分解即将信号分解成偶分量和奇分量两部分之和,偶分量定义为

fet=fe-t

奇分量定义为

fot=-fo-t

则任意信号ft)可写成

上式第一部分是偶分量,第二部分是奇分量,即

例如对函数ft=sint-0.1+t进行交直流分解。

MATLAB 命令见附录,分解波形图如图5.2所示

5.2 奇偶分解

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 实现连续信号f 1(t)f2(t)卷积的过程如下:

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

2)构造与 f 1(k)f2(k∆)相对应的时间向量k1k2

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

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

卷积实现程序见附录。

例一:

6.1 例一

实现程序如下:

p=0.1;

k1=0:p:2;

f1=0.5*k1;

k2=k1;

f2=f1;

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

例二:

6.2 例二

实现程序如下:

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)

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

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

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

注意,向量AB的元素一定要以微分方程中时间求导的降幂次序来排列,且缺项要用0来补齐。例如,对微分方程,则表示该系统的对应向量应为A=[1 3 2]B=[1 0 1]

7.1 impulse()函数

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

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

1impulse(b,a):该调用格式以默认方式绘出向量 AB定义的连续系统的冲激响应的时域波形 例如描述连续系统的微分方程为

运行如下 MATLAB 命令:

a=[1 5 6];

b=[3 2];

impulse(b,a);

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

7.1.1连续系统的冲激响应1

2impulse(b,a,t):绘出系统在 0t 时间范围内冲激响应的时域波形。对上例,若运行命令 impulse(b,a,10),则绘出系统在 010秒范围内冲激响应的时域波形,如图7.1.2所示.

7.1.2 连续系统的冲激响应2

3impulse(b,a,t1:p:t2):绘出在 t1~t2 时间范围内,且以时间间隔 p均匀取样的冲激响应波形。对上例,若运行命令 impulse(b,a,1:0.1:2),则绘出 12秒内,每隔0.1秒取样的冲激响应的时域波形,如图 7.1.3所示

4y=impulse(b,a,t1:p:t2):不绘出波形,而是求出系统冲激响应的数值解。对上例,若运行命令 y=impulse(b,a,0:0.2:2),则运行结果为:

y =3.0000 1.1604 0.3110 -0.0477 -0.1726 -0.1928 -0.1716 -0.1383 -0.1054 -0.0777 -0.0559

7.1.3 连续系统的冲激响应3

7.2 step()函数

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

1step(b,a):该调用格式以默认方式绘出向量 AB定义的连续系统的阶跃响应的时域波形 例如描述连续系统的微分方程为

运行如下 MATLAB 命令:

a=[1 5 6];

b=[3 2];

step(b,a);

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

7.2.1 连续系统的阶跃响应1

2step(b,a,t):绘出系统在 0t 时间范围内阶跃响应的时域波形。对上例,若运行命令 step(b,a,10),则绘出系统在 010秒范围内阶跃响应的时域波形,如图7.2.2所示.

7.2.2 连续系统的阶跃响应2

3step(b,a,t1:p:t2):绘出在 t1~t2 时间范围内,且以时间间隔p均匀取样的阶跃响应波形。对上例,若运行命令 step(b,a,1:0.1:2),则绘出12秒内,每隔0.1秒取样的阶跃响应的时域波形,如图7.2.3所示

7.2.3 连续系统的阶跃响应3

4y=step(b,a,t1:p:t2):不绘出波形,而是求出系统阶跃响应的数值解。对上例,若运行命令 y=step(b,a,0:0.2:2),则运行结果为:

y= 0 0.393 0.529 0.550 0.525 0.488 0.451 0.420 0.396 0.377 0.364

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

MATLAB中的函数lsim()能对微分方程描述的LTI连续时间系统的响应进行仿真。该函数能绘制连续时间系统在指定的任意时间范围内系统响应的时域波形图,还能求出连续时间系统在指定的任意时间范围内系统响应的数值解,函数lsim()的调用格式如下:

lsim(b,a,x,t)

在该调用格式中,ab是由描述系统的微分方程系统决定的表示该系统的两个行向量。xt则是表示输入信号的行向量,其中t为表示输入信号时间范围的向量,x则是输入信号在向量t定义的时间点上的抽样值。该调用格式将绘出向量ba所定义的连续系统在输入量为向量xt所定义的信号时,系统的零状态响应的时域仿真波形,且时间范围与输入信号相同。

8.1 正弦信号的零状态响应

描述某连续时间系统的微分方程为

当输入信号为时,该系统的零状态响应rt

MATLAB命令如下:

clc;

a=[1,2,1];

b=[1,2];

p=0.5;

t=0:p:5;

x=sin(2*pi*t);

lsim(b,a,x,t);

hold on;

p=0.2;

t=0:p:5;

x=sin(2*pi*t);

lsim(b,a,x,t);

p=0.01;

t=0:p:5;

x=sin(2*pi*t);

lsim(b,a,x,t);

hold off;

8.1正弦信号的零状态响应

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

描述某连续时间系统的微分方程为

当输入信号为时,该系统的零状态响应rt

MATLAB命令如下:

clc;

a=[1,2,1];

b=[1,2];

p=0.5;

t=0:p:5;

x=exp(-2*t);

lsim(b,a,x,t);

hold on;

p=0.3;

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);

hold off;

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

8.18.2中蓝线、绿线、红线分别代表p=0.5p=0.3p=0.01。显然可以看出,函数lsim()对系统响应进行仿真的效果取决于向量t的时间间隔的密集程度。图8.18.2绘出了上述系统在不同抽样时间间隔时函数lsim()仿真的情况,可见抽样时间间隔越小仿真效果越好。

9小结即心得体会

本次课程设计至此已经接近尾声,一周的时间虽然很短暂,但在这一个星期的设计过程中收获颇多。设计的核心内容就是利用MATLAB强大的图形处理功能,符号运算功能以及数值计算功能,实现连续时间周期信号频域分析的仿真波形。整个设计过程中首先对所学的信号与系统与数字信号处理有了更深的了解,比如傅立叶级数、信号频谱等;其次,实现过程是通过MATLAB软件完成的,MATLAB 的图形功能强大,具有良好的人机界面,此次设计过程中熟练了MATLAB的编程,掌握了很多函数的作用及使用方法;最后,通过此次课程设计,我对设计所用到的软件MATLAB有了更加深刻地了解,MATLAB不管在数值计算方面的功能很强大,而且其图形仿真功能更能满足各个领域的需要,因此我们以后更要经常运用MATLAB软件,使其成为自己不可或缺的工具。

在写相关源程序的时候,我还收索了大量的网站,在网上收索了很多关于MATLAB的资料。在这个过程中我发现网上有很多有用的知识。以后应该多注意,充分合理的利用网络,通过网络来学习东西。在收集资料的阶段我复习了数字信号系统处理里的相关知识。对以前的理论知识有了更进一步的认识和理解。通过这次课程设计我还对mathtype数学公式编辑器有了一定的了解,并且会用它编辑公式。对word也有了进一步的掌握。

虽然我顺利完成了课程设计的要求,但是我感觉到我对MATLAB的理解我掌握还停留在比较浅的层次。要想真正掌握它还需要继续努力学习它。

这次课程设计也使我明白了在知识的领域里我还有很多很多的不足,并且再一次的深深的体会到理论和实践之间还有很到的差别。在以后的学习中应该多多的注意实践知识的训练和积累。在以后的学习生活中要不断的开拓自己的动手能力,不断的训练自己的动手能力。这次课程设计让我深深的明白了自己以后该做什么,该怎么去做。


致谢

感谢学校给我们这次MATLAB课程设计的机会,不仅让我们更加学会了MATLAB的强大图形处理方法,掌握了MATLAB的编程技术,而且也锻炼了我们的动手能力。通过这次课设让我明白了理论联系实践的重要性,书本上的理论知识学了不少,我们必须得应用到实践当中,做到学以致用,这样我们才能有不断的创新。这次课程设计也感谢指导老师在设计过程中的辅导以及同学们的帮助。没有他们的帮助我不会那么快克服那些困难,也不会这么快学到这么多的知识。


参考文献

[1] 陈怀琛,吴大正,高西全.MATLAB及在电子信息课程中的应用[Z]. 北京:电子工业出版社,2005

[2] 刘泉,江雪梅.信号与系统[Z]. 北京:高等教育出版社,2006

[3] 刘泉,阙大顺,郭志强.数字信号处理原理与实现[Z]. 北京:电子工业出版社,2009

[4] 梁虹. 信号与系统分析及MATLAB实现[Z]. 北京:电子工业出版社,2002

[5] 罗建军. MATLAB教程[Z]. 北京:电子工业出版社,2005

[6] 施阳. MATLAB语言工具箱--ToolBox实用指南. 西安:西北工业大学出版社,1999

[7] 邓微.MATLAB函数速查手册. 北京:人民邮电出版社,2010


附录

阶跃信号

clc;

t=-0.5:0.001:1;

t0=0;

u=stepfun(t,t0);

plot(t,u);

axis([-0.5 1 -0.2 1.2])

冲激信号

clc;

t = -3:0.01:3;

y = (t==0);

plot(t,y);

正弦信号

clc;

t=-0.5:0.001:1;

A=3;

f=5;

fai=1;

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

plot(t,u)

axis([-0.5 1 -3.2 3.2])

实指数信号

clc;

t=0:0.002:3;

A=3;

a=0.5;

u=A*exp(a*t);

plot(t,u)

axis([-0.2 3.1 -0.2 14])

虚指数信号

clc;

t=0:0.001:15;

a=2;

w=pi/4;

z=a*exp(i*w*t);

subplot(2,2,1),plot(t,real(z)),axis([0, 15,-2.5,2.5]),title('实部')

subplot(2,2,3),plot(t,imag(z)),axis([0,15,-2.5,2.5]),title('虚部')

subplot(2,2,2),plot(t,abs(z)),axis([0,15,1.5,2.5]),title('')

subplot(2,2,4),plot(t,angle(z)),axis([0,15,-4,4]),title('相角')

复指数信号

clc;

t=0:0.01:3;

a=-1;

A=1

b=10;

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

subplot(2,2,1),plot(t,real(z)),title('实部')

subplot(2,2,3),plot(t,imag(z)),title('虚部')

subplot(2,2,2),plot(t,abs(z)),title('')

subplot(2,2,4),plot(t,angle(z)),title('相角')

相加

clc;

t=-0.5:0.0001:2.5;

t0=1;

u=stepfun(t,t0);

y=sin(2*pi*t);

f=y+u;

plot(t,f)

axis([-0.5 2.5 -1.5 2.5])

相乘

clc;

t=0:0.0001:3;

t0=1;

u=stepfun(t,t0);

y=sin(2*pi*t);

f=u.*y;

plot(t,f);

axis([0 3 -1.5 1.5]);

数乘

clc;

t=0:0.0001:3;

a=2;

t0=1;

u=stepfun(t,t0);

f=a*u;

plot(t,f);

axis([0 3 0 2.5]);

微分

clc;

t=-1:0.02:1;

g=t.*t;

d=diff(g);

subplot(211);

plot(t,g,'-');

subplot(212);

plot(d,'-');

积分

clc;

t=-1:0.2:1;

syms t;

f=t*t;

g=int(f);

subplot(211);

ezplot(f);

subplot(212);

ezplot(g);

反转

clc;

t=-1:0.2:1;

f=t;

g=fliplr(f);

h=flipud(f);

subplot(311);

plot(t,f);

axis([-1 1 -1 1]);

title('原函数');

subplot(312);

plot(t,g);

axis([-1 1 -1 1]);

title('左右反转');

subplot(313);

plot(t,h);

axis([-1 1 -1 1]);

title('上下反转');

时移

clc;

t=0:0.0001:2;

y=sin(2*pi*t);

y1=sin(2*pi*(t-0.2));

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

axis([0 2 -1.5 1.5]);

展缩

clc;

t=0:0.0001:2;

a=2;

y=sin(2*pi*t);

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

subplot(211);

ezplot(y);

subplot(212);

ezplot(y1);

倒相

clc;

t=0:0.0001:2;

y=sin(2*pi*t);

y1=-y;

subplot(211);

plot(t,y);

axis([0 2 -1.5 1.5]);

subplot(212);

plot(t,y1);

axis([0 2 -1.5 1.5]);

综合变化

clc

syms t;

f=sym('sin(t)/t'); %定义符号函数f(t)=sin(t)/t

f1=subs(f,t,t+3); %f进行移位

f2=subs(f1,t,2*t); %f1进行尺度变换

f3=subs(f2,t,-t); %f2进行反褶

subplot(2,2,1);ezplot(f,[-8,8]);grid on;

subplot(2,2,2);ezplot(f1,[-8,8]);grid on;

subplot(2,2,3);ezplot(f2,[-8,8]);grid on;

subplot(2,2,4);ezplot(f3,[-8,8]);grid on;

交直流分解

clc;

t=-1:0.001:1;

f=sin(2*pi*t)+2;

g=mean(f);

h=f-g;

subplot(311);

plot(t,f);

axis([-1 1 0.5 3.5]);

subplot(312);

plot(t,g);

axis([-1 1 1.5 2.5]);

subplot(313);

plot(t,h);

axis([-1 1 -1.5 1.5]);

奇偶分解

clc;

syms t;

f=sym('sin(t- 0.1)+t ');

f1=subs(f,t,-t)

g=1/2*(f+f1);

h=1/2*(f-f1);

subplot(311);

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

subplot(312);

ezplot(g,[-8,8]);

subplot(313);

ezplot(h,[-8,8]);

卷积

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

%计算连续信号卷积积分 f(t)=f1(t)*f2(t)

% f: 卷积积分 f(t)对应的非零样值向量

% kf(t)的对应时间向量

% f1: f1(t)非零样值向量

% f2: f2(t)的非零样值向量

% k1: f1(t)的对应时间向量

% k2: f2(t)的对应时间向量

% 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)')

本文来源:https://www.2haoxitong.net/k/doc/33d1fb86cc22bcd126ff0c41.html

《连续时间信号和系统时域分析及MATLAB实现.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式