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

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 + 2Continuous-time transfer function.A =-3    -21     0B =10C =1     3D =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);                    %计算卷积积分并绘出时域波形

转载于:https://www.cnblogs.com/BlueMountain-HaggenDazs/p/4470640.html

MATLAB信号与系统分析(一)——连续时间信号与系统的时域分析相关推荐

  1. matlab中连续信号的卷积,连续时间信号卷积运算的MATLAB实现

    . . . .. .. 连续时间信号卷积运算的MATLAB 实现 一.实验目的 (1) 理解掌握卷积的概念及物理意义. (2) 理解单位冲击响应的概念及物理意义. 二.实验原理 根据前述知识,连续信号 ...

  2. 连续时间信号,离散时间信号,模拟信号,数字信号的区别。

    最近在准备考研复试,查询了很久连续时间信号.离散时间信号.模拟信号和数字信号的区别,发现网上各种说法不一,其中不乏一些混淆了概念的回答,非常容易误导大家,在这里以熊庆旭老师编写的<信号与系统&g ...

  3. matlab混叠现象与频率分辨率,连续时间信号频谱分析研究及MATLAB实现

    0.引言在信号处理过程中,频域分析方法往往比时域分析方法更方便和有效.对于确知连续时间信号,其频域分析可以通过连续时间傅里叶变换来进行,但是,这样计算出来的结果仍然是连续函数,计算机不能直接加以处理. ...

  4. matlab实现周期阶跃函数,连续时间信号傅利叶变换与MATLAB实现.doc

    Matlab应用实践课程设计 PAGE PAGE 22 - 课程设计任务书 学生姓名: 潘少俊 专业班级:电子科学与技术0701 班 指导教师:梁小宇 工作单位:信息工程学院 题 目: 连续时间信号的 ...

  5. matlab自带的信号,实验一 连续时间信号在MATLAB中的表示..ppt

    <医学信号处理I> 实验一 连续时间信号在MATLAB中的表示和运算 1.1 实验目的 学会使用MATLAB表示常用连续时间信号的方法 观察并熟悉这些信号的波形和特性 1.2 实验原理及实 ...

  6. 【信号系统实验2】MATLAB—连续时间信号与系统的频域分析

    目录 1.实验目的 2.实验内容 1.周期信号的分析 2.非周期信号的分析 3.连续时间系统的响应 1.实验目的 1.熟悉信号的合成.分解原理,了解信号频谱的含义,加深对傅里叶级数的理解. 2.掌握连 ...

  7. matlab 日期加小时数_实验一 连续时间信号在Matlab中的运算

    实验一连续时间信号在Matlab中的运算 一.实验目的 1.学会运用Matlab进行连续时间信号的时移.反褶和尺度变换. 2.学会运用Matlab进行连续时间信号相加.相乘.微分.积分和卷积运算. 3 ...

  8. 信号与系统第一次试验:连续时间信号的MATLAB表示及运算

    信号与系统第一次试验:连续时间信号的MATLAB表示及运算 前言 一.实验目的 二.实验原理 三.实验环境 四.实验内容和步骤及实验数据 五.实验结论 六.实验总结 前言 为了帮助同学们完成痛苦的实验 ...

  9. 连续时间信号的采样与恢复 Matlab仿真

    目录 前言 采样 为什么需要采样 采样是什么 奈奎斯特采样定理 采样恢复 采样定理Matlab仿真(含代码) 前言 记录在学数字信号处理过程中一些个人理解与感悟,本文主要讲的是采样定理在Matlab实 ...

最新文章

  1. Wiew 像写 Android UI 一样写小游戏布局
  2. zookeeper-01
  3. Codeforces Round #450 (Div. 2)D. Unusual Sequences[数论][组合数学][dp II]
  4. 编程语言那么多,学哪个能拿高薪?
  5. [转载] 中华典故故事(孙刚)——31 千里送鹅毛_礼轻情义重
  6. 从Google到Facebook再到微博,算法与数据中台大咖谈
  7. QuickHit游戏
  8. truncate表和update 效率_SQL中Truncate的用法
  9. 我的世界服务器物品管理,我的世界NEI物品管理器mod详细图文使用教程
  10. QGIS的部分使用流程
  11. Tools - Blender快捷键大全
  12. 2017阿里巴巴实习生招聘编程题
  13. windows系统下进入jupyter本地服务器(localhost)的步骤
  14. 基于安卓的共享自习室的设计与实现
  15. 【Pandas 基础应用 拆分Excel工作簿】
  16. #python 自动识别视频字幕
  17. [zz] 音频DAC的原理
  18. Java中如何打印出一个数组中所有元素呢?
  19. Ubuntu16.04下fctix无法切换中英文输入法
  20. Hello Qt(十)——QT输入组件

热门文章

  1. 初识大数据(四. 大数据与人工智能的关系)
  2. Unix系统编程():分散输入和集中输出(Scatter-Gather IO):readv和writev
  3. BZOJ 2019 [Usaco2009 Nov]找工作:spfa【最长路】【判正环】
  4. HTTP POST GET 区别
  5. 关于微软企业库中依赖注入容器Unity两种生成对象的实现
  6. 面试指南:新人面试做好三个“第一”
  7. spingMVC post 提交乱码问题
  8. 计算机网络---DHCP/NAT(简单介绍)
  9. ES6学习(三)—字符串的扩展
  10. 利用Navicat Premium将SQL Server数据库转为My SQL数据库(解决Mac无法打开SQL Server 脚本文件的方法)