一、连续时间信号的表示:

1、向量表示法:

在MATLAB中,是用连续信号在等时间间隔点的样值来近似表示连续信号,当取样时间间隔足够小时,这些离散的样值就能较好地近似出连续信号。

对于连续时间信号f(t),一般是用两个行向量f和t来表示。t=t1:p:t2 ,t1 表示的是信号的起始时间,t2为终止时间,p为时间的间隔。而f为连续时间f(t)在向量t所定义的时间范围内对应的样值。

2、符号运算表示法:

使用sym定义变量,然后进行表示。

Eg:分别采用上述两种方法画出抽样信号:

clear all;
t=-10:1.5:10;%取点数比较少,图形会比较失真
f=sin(t)./t;
subplot(2,2,1),plot(t,f) t=-10:0.1:10;%取点数比较多,图形会比较接近
f=sin(t)./t;
subplot(2,2,2),plot(t,f) f=sym('sin(t)/t');%采用符号方法
subplot(2,2,3),ezplot(f,[-10 10])
t=-3*pi:pi/100:3*pi; ft=sinc(t/pi);%直接用malab中的函数
subplot(2,2,4),plot(t,ft)

二、一些常用信号的表示:

1、单位阶跃信号:

(1)利用符号函数maple中的内核函数Heaviside

(2)利用自编函数Heaviside(t)

function f=Heaviside(t)
f=(t>0);

(3)利用符号函数来生成单位阶跃函数

t=-10:0.1:10;
f=sign(t)/2+0.5;
plot(t,f);
axis([-5,5,-1.2,1.2]);

clear all
%利用maple中的heaviside函数来实现u(t+3)-2u(t)
subplot(2,2,1);
syms t
f=heaviside(t+3)-2*heaviside(t);
ezplot(f,[-3*pi,3*pi])
axis([-5,5,-1.2,1.2]);
title('u(t+3)-2u(t)'); %利用自己编写的heaviside函数来实现u(t+3)-2u(t)
subplot(2,2,2);
t=-5:0.01:5;
f=Heaviside(t+3)-2*Heaviside(t);
plot(t,f);
axis([-5,5,-1.2,1.2]);
title('u(t+3)-2u(t)') %利用符号函数来实现单位阶跃信号
subplot(2,2,3);
t=-5:0.05:5;
f=sign(t);
ff=1/2+1/2*f;
plot(t,ff);
axis([-5 5 -0.1 1.1]);
title('u(t)') %利用符号函数来实现u(t+3)-2u(t)
subplot(2,2,4);
t=-5:0.01:5;
f=(1/2+1/2*sign(t+3))-2*(1/2+1/2*sign(t));
plot(t,f),axis([-5,5,-1.2,1.2]),title('u(t+3)-2u(t)')

PS:由于自己生成的阶跃函数定义u(0)=0,而自带的定义为u(0)=1,所以会出现这种图形没有连接起来的问题。

2、MATLAB信号处理工具箱提供的连续信号:

(1)使用MATLAB自带函数生成:

%指数信号的表示y=A*exp(a*t)
subplot(2,4,1);
A=1;
a=-0.4;
t=0:0.01:10;
ft=A*exp(a*t);
plot(t,ft);
title('指数信号') %要放在plot后面
grid on %正弦信号y=A*sin(w0*t+phi)
subplot(2,4,2);
A=1;
w0=2*pi;
phi=pi/6;
t=0:0.001:8;
ft=A*sin(w0*t+phi);
plot(t,ft);
title('正弦信号');
grid on; %抽样函数sinc(t)=sin(pi*t)/pi*t
subplot(2,4,3);
t=-3*pi:pi/100:3*pi;
ft=sinc(t/pi);
plot(t,ft);
title('抽样函数信号');
grid on; %矩形脉冲信号y=rectpuls(t,width)产生一个幅值为1,宽度为width,相对于t=0点左右对称的矩形波信号
subplot(2,4,4);
t=0:0.001:4;
T=1;
ft=rectpuls(t-2*T,2*T);
plot(t,ft);
axis([-1 5 -0.5 1.5]); %要放在plot后面
title('矩形脉冲信号');
grid on; %周期性矩形信号即方波信号y=square(t,DUTY)产生一个周期为2*pi,幅值为1(-1)的周期性方波信号,duty表示占空比
subplot(2,3,4);
t=-0.0625:0.001:0.0625;
ft=square(2*pi*30*t,75);
plot(t,ft);
axis([-0.0625 0.0625 -1.5 1.5]);
title('频率为30赫兹的周期性方波信号');
grid on; %三角波脉冲信号y=tripuls(t,width,skew)用以产生一个最大幅度为1,宽度为width,斜度为skew的三角波信号。
%该函数的横坐标范围由向量t决定,是以t=0为中心向左右各展开width/2的范围。
%斜度skew是介于-1和1之间的值,它表示最大幅度1出现所对应的横坐标位置。
%一般地,最大幅度1出现在t=(width/2)×skew的横坐标位置
subplot(2,3,5);
t=-3:0.001:3;
ft=tripuls(t,4,0.5);
plot(t,ft);
axis([-3 3 -0.5 1.5]);
title('三角波脉冲信号');
grid on; %周期性三角波信号y=sawtooth(t,width)用以产生一个周期为2*pi,最大幅度为1,最小幅度为-1的周期性三角波信号(又称锯齿波信号)。
%width表示最大幅度出现的位置
subplot(2,3,6);
t=-5*pi:pi/10:5*pi;
ft=sawtooth(t,0.5);
plot(t,ft);
axis([-16 16 -1.5 1.5]);
title('周期性三角波信号');
grid on;

(2)信号工具函数

%一般周期性脉冲信号y=pulstran(t,d,'func',p1,p2,...)
%t制定pulstran的横坐标范围,向量d用于指定周期性的偏移量(即各个周期的中心点)
%整个pulstran函数的返回值实际上就相当于y=func(t-d(1))+func(t-d(2))+......
%p1,p2...是需要传送给func函数的额外输入参数值(除去时间变量t外),例如rectpuls需要width这个额外参数等

%一般周期性脉冲信号y=pulstran(t,d,'func',p1,p2,...)
%t制定pulstran的横坐标范围,向量d用于指定周期性的偏移量(即各个周期的中心点)
%整个pulstran函数的返回值实际上就相当于y=func(t-d(1))+func(t-d(2))+......
%p1,p2...是需要传送给func函数的额外输入参数值(除去时间变量t外),例如rectpuls需要width这个额外参数等
clear all;
subplot(1,2,1);
t=-0.5:0.001:1.5;
d=0:0.5:1;
y=pulstran(t,d,'rectpuls',0.1);%周期性矩形信号
plot(t,y);
axis([-0.1 1.1 -0.1 1.1]);
title('周期性矩形信号')
grid on %周期三角波信号
subplot(1,2,2);
t=-0.2:0.001:1.2;
d=0:1/2:1;
y=pulstran(t,d,'tripuls',0.1,-1);
plot(t,y);
axis([-0.1 1.1 -0.1 1.1]);
title('周期性三角波信号');
grid on;

3、复指数信号

例子:

%实现方法一:

%fuction fexp(d,w,t1,t2,a)
%绘制复指数信号时域波形程序
%d:复指数信号复频率实部
%w:复指数信号复频率虚部
%t1:绘制波形的起始时间
%t2:绘制波形的终止时间
%a:复指数信号的幅度
clear all
figure(1);
fexp(0,pi/4,0,15,2); %实现方法二:
t=0:0.01:15;
a=0;b=pi/4;
z=2*exp((a+i*b)*t);
figure(2)
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('相角')

三、连续信号的时域运算、时域变换

1、利用符号运算实现连续信号的时域变换

(1)相加:

s=symadd(f1,f2)%s=f1+f2
ezplot(s)

(2)相乘:

s=symmul(f1,f2)%s=f1*f2
ezplot(s)

(3)移位:

y=subs(f,t,t-t0)%f(t-t0)
y=subs(f,t,t+t0)%f(t+t0)
ezplot(y)

(4)反折:

y=subs(f,t,-t)
ezplot(y)

(5)尺度变换:

y=subs(f,t,a*t)
ezplot(y)

(6)倒相

y=-f
ezplot(y)

clear all
syms t
%f=sym('(t/2+1)*(heaviside(t+2)-heaviside(t-2))') f=(t/2+1)*(heaviside(t+2)-heaviside(t-2));
subplot(2,3,1),ezplot(f,[-3,3]),title('f(t)') y1=subs(f,t,t+2)
subplot(2,3,2),ezplot(y1,[-5,1]),title('f(t+2)') y2=subs(f,t,t-2)
subplot(2,3,3),ezplot(y2,[-1,5]),title('f(t-2)') y3=subs(f,t,-t)
subplot(2,3,4),ezplot(y3,[-3,3]),title('f(-t)') y4=subs(f,t,2*t)
subplot(2,3,5),ezplot(y4,[-2,2]),title('f(2*t)') y5=-f
subplot(2,3,6),ezplot(y5,[-3,3]),title('-f(t)')

四、连续系统的冲激响应、阶跃响应

1、冲激响应:

limpulse(b,a)

impulse(b,a,t)

impulse(b,a,t1:p:t2)

y=impulse(b,a,t1:p:t2)

2、阶跃响应

step(b,a)
step(b,a,t)
step(b,a,t1:p:t2)
y=step(b,a,t1:p:t2)

其中:

clear all;
a=[1 5 6];
b=[3 0 2]; %冲击响应
figure(1)
subplot(2,2,1),impulse(b,a)
subplot(2,2,2),impulse(b,a,5) %绘制0~5范围内冲激响应的时域波形
subplot(2,2,3),impulse(b,a,1:0.1:2) %绘制1~2范围内,步长为0.1的冲激响应的时域波形
y1=impulse(b,a,1:0.1:3);%给出数值解
subplot(2,2,4),plot(1:0.1:3,y1) %阶跃响应
figure(2)
subplot(2,2,1),step(b,a)
subplot(2,2,2),step(b,a,5)
subplot(2,2,3),step(b,a,1:0.1:2)
y2=step(b,a,1:0.1:3);
subplot(2,2,4),plot(1:0.1:3,y2)

五、求LTI连续系统的响应

1、零输入响应:

nitial(A,B,C,D,y(0-),t)

2、零状态响应:

Lsim(sys,X,t)
Lsim(b,a,X,t)
Lsim(A,B,C,D,X,t)

3、全响应:

lsim(A,B,C,D,X,t,y(0-))

其中:

微分方程系统函数对象的生成函数:sys=tf(b,a)

微分方程的状态方程系数生成函数: [A,B,C,D]=tf2ss(b,a)

4、例子:

clear all;
a=[1 3 2];
b=[1 3];
t=0:0.01:10;
x=exp(-3*t);
rc=[2,1];
sys=tf(b,a)
[A,B,C,D]=tf2ss(b,a)
figure(1)
subplot(3,1,1),initial(A,B,C,D,rc,t) %零输入响应
subplot(3,1,2),lsim(b,a,x,t) %零状态响应
subplot(3,1,3),lsim(A,B,C,D,x,t,rc) %全响应,只能用状态系数来表示系统

结果:

sys =

      s + 3
-------------
s^2 + 3 s + 2 Continuous-time transfer function. A = -3 -2
1 0 B = 1
0 C = 1 3 D = 0

六、两个信号的卷积:

1、自编卷积函数:

function  [f,t]=gggfconv(f1,f2,t1,t2)
d=input(‘请输入采样时间间隔: ');
f=conv(f1,f2); %计算序列f1和f2的卷积和
f=f*d;
ts=t1(1)+t2(1) %计算序列f非零值的起始位置
l=length(t1)+length(t2)-2; %计算序列f非零值的宽带
t=ts:d:(ts+l*d) %计算序列f非零值的时间向量
subplot(2,2,1);plot(t1,f1)
subplot(2,2,2);plot(t2,f2)
subplot(2,2,3);plot(t,f);

2、例子:

clear all;
%计算连续时间信号卷积积分并绘波形
t1=-1:0.01:3;
f1=Heaviside(t1)-Heaviside(t1-2); %定义信号
t2=t1;
f2=0.5*t2.*(Heaviside(t2)-Heaviside(t2-2)); %定义信号
[t,f]=gggfconv(f1,f2,t1,t2); %计算卷积积分并绘出时域波形

MATLAB信号与系统分析(一)——连续时间信号与系统的时域分析的更多相关文章

  1. MATLAB信号与系统分析(五)——连续时间信号的频谱分析

    一.实验目的: 1.掌握傅立叶级数(FS),学会分析连续时间周期信号的频谱分析及MATLAB实现: 2.掌握傅立叶变换(FT),了解傅立叶变换的性质以及MATLAB实现. 二.利用符号运算求傅里叶级数 ...

  2. MATLAB信号与系统分析(三)——连续信号与系统的复频域分析及MATLAB实现

    一.系统的拉普拉斯变换和反变换 1.MATLAB函数 F=laplace(f) %求拉氏变换 f=ilaplace(F) %求拉氏反变换 2.例子 clear all;clc;close all f= ...

  3. APUE 3 -- 信号 (signal)<II>: 可靠信号

    一个事件可以事一个信号发送给一个进程,这个事件可以是硬件异常,可以是软件条件触发,可以是终端产生信号,也可以是一个kill函数调用.当信号产生后,内核通常会在进程表中设置某种形式的标志(flag).我 ...

  4. sleep与信号唤醒的问题 & 内核对信号的处理方式 & udelay

    http://www.cnblogs.com/charlesblc/p/6277848.html 注意,sleep是会被信号唤醒的.   sleep函数:#include <unistd.h&g ...

  5. linux信号基本概念及如何产生信号

    linux信号基本概念及如何产生信号 摘自:https://blog.csdn.net/summy_j/article/details/73199069 2017年06月14日 09:34:21 阅读 ...

  6. sleep与信号唤醒的问题 & 内核对信号的处理方式

    注意,sleep是会被信号唤醒的.   sleep函数:#include <unistd.h>unsigned int sleep(unsigned int seconds);此函数使调用 ...

  7. Linux 信号详解六(可靠信号与不可靠信号)

    #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h&g ...

  8. Oracle计算连续天数,计算连续时间,Oracle连续天数统计

    Oracle计算连续天数,计算连续时间,Oracle连续天数统计 >>>>>>>>>>>>>>>>> ...

  9. matlab中datest() 将日期和时间转换为字符串格式

    来源:https://ww2.mathworks.cn/help/matlab/ref/datestr.html?searchHighlight=datestr&s_tid=doc_srcht ...

随机推荐

  1. 怎样把excel一列分成多列

    1,选定要分列的列. 2,点击“数据”-“分列”. 3,在选项栏中设置如图 4,选择分隔符 4,看,分开了吧!

  2. zabbix再爆高危SQL注入漏洞,可获系统权限

    漏洞概述 zabbix是一个开源的企业级性能监控解决方案.近日,zabbix的jsrpc的profileIdx2参数存在insert方式的SQL注入漏洞,攻击者无需授权登陆即可登陆zabbix管理系统 ...

  3. [BZOJ2724][Violet 6]蒲公英

    [BZOJ2724][Violet 6]蒲公英 试题描述 输入 修正一下 l = (l_0 + x - 1) mod n + 1, r = (r_0 + x - 1) mod n + 1 输出 输入示 ...

  4. 使用HTML5 Web存储的localStorage和sessionStorage方式

    localStorage(本地存储),可以长期存储数据,没有时间限制,一天,一年,两年甚至更长,数据都可以使用.sessionStorage(会话存储),只有在浏览器被关闭之前使用,创建另一个页面时同 ...

  5. CPU供电维修

  6. Linux zabbix 配置注意事项

    发现php-fpm启动之后,找不到 php-fpm.pid文件??? vi php-fpm.conf 去掉里面那个 pid = run/php-fpm.pid 前面的分号然后再启动php-fpm才能自 ...

  7. 【Spring】Spring系列7之Spring整合MVC框架

    7.Spring整合MVC框架 7.1.web环境中使用Spring 7.2.整合MVC框架 目标:使用Spring管理MVC的Action.Controller 最佳实践参考:http://www. ...

  8. 【SpringMVC】SpringMVC系列2之@RequestMapping 映射约束请求

    @RequestMapping 映射约束请求 2.1.映射请求URL Spring MVC 使用 @RequestMapping 注解为控制器指定可以处理哪些 URL 请求,在控制器的类定义及方法定义 ...

  9. mysqldump备份

    备份工具1.mysqldump(数据量很大时不推荐使用)   myisam 锁表   innodb 行锁 mysqldump --help | less   #查看mysql所有的语法 mysqldu ...

  10. poj_2674 弹性碰撞

    题目大意 给定一条直线,长度为L 表示区间[0, L].在直线上开始放置N个人,每个人有一个初始位置pos(用到直线上端点0的距离表示)和初始方向dir('p' 或 'P' 表示向端点L行走, 'n' ...