MATLAB连续时间基本信号的绘制

目录

1 复指数信号

1.1 复常数s虚部为0时的复指数信号

1.2 复常数s实部为0时的复指数信号

1.3  其他情况的复指数信号

2 单位阶跃信号

3 单位冲激信号

4 斜坡信号

5 门信号

6 三角信号

7 抽样信号

8 周期矩形脉冲信号

9 周期三角信号


1 复指数信号

        复指数信号的表达式可以表达为

{\color{Magenta} x\left ( t \right )=e^{st},-\propto < t< \propto} 

式中有                 {\color{Magenta} s = \sigma + j\omega}

所以有                {\color{Magenta} x(t)=e^{(\sigma +j\omega )t}=e^{\sigma t}e^{j\omega t}=e^{\sigma t}\cos (\omega t)+je^{\sigma t}\sin (\omega t)}

该信号的实部是{\color{Magenta} e^{\sigma t}\cos (\omega t)},虚部为{\color{Magenta} e^{\sigma t}\sin (\omega t)},模为{\color{Magenta} e^{\sigma t}},幅角为{\color{Magenta} \omega t}

        一个复指数可以分解成实数和虚数两部分,它们均是增长、衰减或等幅振荡的正弦信号,s的实部\sigma可以表示正弦信号的振幅随时间变化的情况,虚部\omega可以表示正弦信号的角频率

1.1 复常数s虚部为0时的复指数信号

clc;clear;close all;
t = -3:0.01:3;                        %定义时域自变量
omega = 0;                            %虚部
sigma = [-1,0,1];                     %实部

s = sigma + 1i * omega;               %合成复常数
[s_matrix,t_matrix] = meshgrid(t,s);  %将变量转换为矩阵模式,加快运算速度
xt = exp(s_matrix.*t_matrix);         %生成连续时间复指数信号

subplot(3,1,1);                       %画布布局
plot(t,xt(1,:));                      %绘图
xlabel('t');                          %x轴标签
ylabel('x(t)');                       %y轴标签
title('复指数信号:实部 = -1');          %标题

subplot(3,1,2);
plot(t,xt(2,:));
xlabel('t');
ylabel('x(t)');
title('复指数信号:实部 = 0');

subplot(3,1,3);
plot(t,xt(3,:));
xlabel('t');
ylabel('x(t)');
title('复指数信号:实部 = 1');

         实验效果显示复常数s的虚部\omega=0时复指数信号就变成了实指数信号,且当实部\sigma小于0时, 信号随时间衰减, 实部\sigma等于0时, 信号为直流信号, 实部\sigma大于0时, 信号随时间增长

1.2 复常数s实部为0时的复指数信号

clc;clear;close all;
t = -5:0.001:5;                        %定义时域自变量
omega1 = 5;                             %虚部
omega2 = 3;
sigma = 0;                             %实部
xt1= exp((sigma + 1i * omega1) * t);    %产生复指数信号
xt2= exp((sigma + 1i * omega2) * t);

figure;                                %建立第1个画布
plot3(t,imag(xt1),real(xt1));          %绘制3维图
xlabel('t');ylabel('信号实部');zlabel('信号虚部');

figure;                                %建立第2个画布    
subplot(2,1,1);                        %画布布局(两行一列)
plot3(t,imag(xt1),real(xt1));          %绘制3维图
xlabel('t');ylabel('信号实部');zlabel('信号虚部');
view([0 90]);title('只看实部');
subplot(2,1,2);
plot3(t,imag(xt1),real(xt1));
xlabel('t');ylabel('信号实部');zlabel('信号虚部');
view([0 0]);title('只看虚部');

figure                                 %建立第3个画布
subplot(2,1,1);
plot(t,imag(xt1));
xlabel('t');
title('w=5,虚部信号');
subplot(2,1,2);
plot(t,imag(xt2));
xlabel('t');
title('w=3,虚部信号');

          对比实部与虚部,发现只有初相位不同

        在复常数实数为0时,信号是等幅振荡,通过对比不同角频率大小的信号,可以发现 角频率越大,信号振荡也越快

1.3  其他情况的复指数信号

clc;clear;close all;

t = -5:0.001:5;         %时域自变量
omega = [10,10,10];
sigma = [-1,0,1];

s = sigma + 1i * omega;     %合成复指数常数s
[s_matrix,t_matrix] = meshgrid(t,s);    %变量转换为矩阵模式,提高运算速度
xt = exp(s_matrix.*t_matrix);

subplot(3,1,1);
plot(t,real(xt(1,:)));
xlabel('t');title('信号实部(\sigma=-1;\omega=10)');
subplot(3,1,2);
plot(t,real(xt(2,:)));
xlabel('t');title('信号实部(\sigma=0;\omega=10)');
subplot(3,1,3);
plot(t,real(xt(3,:)));
xlabel('t');title('信号实部(\sigma=1;\omega=10)');

        可以看出,在复常数虚部一样时,复常数s实部小于0时, 信号为减幅振荡,复常数s实部等于0时, 信号为等幅振荡,复常数s实部大于0时, 信号为增幅振荡


2 单位阶跃信号

表达式:

{\color{Magenta} {u(t)=\left\{\begin{matrix} 1,t>0\\ 0,t<0 \end{matrix}\right.}}

三种产生单位阶跃信号的方法:

  • xt = heaviside(t)      %单位阶跃信号
  • xt = stepfum(t,t0)     %t0表示在t0处发生阶跃
  • xt = t>=t0                 %逻辑判断,在大于等于3时发生阶跃
clc;clear;close all;

t = -5:0.001:5;
xt1 = heaviside(t-2);
xt2 = stepfun(t,2);
xt3 = t>=2;

subplot(1,3,1);                 
plot(t,xt1);
ylim([-0.2,1.2]);                 %设置y轴范围
xlabel('t');
title('heaviside产生阶跃信号');

subplot(1,3,2);                 
plot(t,xt2);
ylim([-0.2,1.2]);                 %设置y轴范围
xlabel('t');
title('stepfun产生阶跃信号');

subplot(1,3,3);                 
plot(t,xt3);
ylim([-0.2,1.2]);                 %设置y轴范围
xlabel('t');
title('t>=2产生阶跃信号');

 


3 单位冲激信号

        matlab中无法直接表示单位冲激信号,只能近似的把它看成宽度为dt(自变量抽样间隔),幅度为1/dt的矩形脉冲,单位冲激信号的狄拉克(Dirac)定义为:

{\color{Magenta} {\left\{\begin{matrix} \delta (t)=0, t\neq 0\\ \delta (t)=\propto ,t=0 \\\int_{-\infty }^{\infty }\delta (t)dt=1 \end{matrix}\right.}}

clc;clear;close all;

dt = 0.001;                 %抽样间隔
t = -5:dt:5;                %时域自变量
xt = zeros(size(t));        %信号取值初始化为0
idx = round((3-(-5))/dt)+1; %得到冲激时刻对应的样本序列
xt(idx)=1/dt;               %对冲激时刻赋值
stairs(t,xt);               %绘图
ylim([-100,1200]);          %设置y轴范围
xlabel('t');
title('单位冲激函数');

 


4 斜坡信号

        斜坡信号又被称为斜波信号,表达式为:

{\color{Magenta} r(t)=\left\{\begin{matrix} t,t\geqslant 0\\ 0,t<0 \end{matrix}\right.}

clc;clear;close all;

t = 0:0.01:5;
rt1 = t.*heaviside(t);        %产生斜坡信号
rt2 = (t-3).*heaviside(t-3);

subplot(1,2,1);
plot(t,rt1);
title('r(t)');
xlabel('t');
axis equal;         %横纵刻度等长

subplot(1,2,2);
plot(t,rt2);
title('r(t-3)');
xlabel('t');
axis equal;         %横纵刻度等长


5 门信号

        门信号也称为矩形脉冲信号,表达式如下:

{\color{Magenta} G_{\tau }(t)=\left\{\begin{matrix} 1,\left | t \right |<\tau /2\\ 0,\left | t \right |>\tau /2 \end{matrix}\right.}

        matlab中可用rectpuls函数表示,即 xt=rectpuls(t,w),可产生幅度为1,宽度为w,关于t=0左右对称的门信号(w的默认值为1)

clc;clear;close all;

t = -5:0.001:5;
gt1 = 2*rectpuls(t,2);
gt2 = 2*rectpuls(t-1,2);

subplot(1,2,1);
plot(t,gt1);
xlabel('t');
title('2G_2(t)');
ylim([-0.1,2.1]);

subplot(1,2,2);
plot(t,gt2);
xlabel('t');
title('2G_2(t-1)');
ylim([-0.1,2.1]);


6 三角信号

        三角信号也被称为三角脉冲信号,表达式为:

{\color{Magenta} \Lambda _{\tau }(t)=\left\{\begin{matrix} 1-\frac{2\left | t \right |}{\tau } , \left | t \right |\leqslant \frac{\tau }{2}\\ 0,\left | t \right |>\frac{\tau }{2} \end{matrix}\right.}

        三角函数在matlab中用tripuls函数表示,即xt=tripuls(t,w,s),可以产生一个最大值为1,宽度为w,中心点在t=0,斜度为s的三角信号;s的范围在-1到1之间,表示最大值的横坐标在t=(w/2)*s处

clc;clear;close all;
t = -5:0.001:5;
xt1 = 2*tripuls(t,2,0);
xt2 = 2*tripuls(t,2,1);
xt3 = 2*tripuls(t,2,-1);
xt4 = 2*tripuls(t-1,2,0);
xt5 = 2*tripuls(t-1,2,1);
xt6 = 2*tripuls(t-1,2,-1);

subplot(2,3,1);    %第1行第1列
plot(t,xt1);
xlabel('t');

subplot(2,3,2);    %第1行第2列
plot(t,xt2);
xlabel('t');

subplot(2,3,3);    %第1行第3列
plot(t,xt3);
xlabel('t');

subplot(2,3,4);    %第2行第1列
plot(t,xt4);
xlabel('t');

subplot(2,3,5);   %第2行第2列
plot(t,xt5);
xlabel('t');

subplot(2,3,6);   %第2行第3列
plot(t,xt6);
xlabel('t');

 


7 抽样信号

        抽样信号也称为采样信号,表达式为:

{\color{Magenta} Sa(t)=\frac{\sin t}{t}}

可以看出,当t=0时,信号最大,在正负两个方向逐渐衰减,在matlab中用sinc函数实现,即St=sinc(t) ,值得注意的是,这里的sinc(t)=\frac{\sin (\pi t)}{\pi t}

clc;clear;close all;

t = -20:0.001:20;
st = sinc(t/pi);           %产生抽样信号
plot(t,st,t,st.^2,'--');   %绘制Sa(t)和Sa^2(t)
legend('Sa(t)','Sa^2(t)'); %添加图例
ylim([-0.5,1.2]);
grid on;                   %添加网格线

        可以看出,Sa^2(t)的衰减速度比Sa(t)快得多 


8 周期矩形脉冲信号

        在matlab中用square函数表示,即xt = square(t,duty) 可产生周期为2pi的矩形脉冲信号,duty表示占空比,取值范围为0-100,默认值50 

clc;clear;close all;

t = -10:0.001:10;
duty = 40;
xt1 = square(t,duty);           %T=2pi(默认情况)
xt2 = square(t*(2*pi)/10,duty); %T=10

subplot(2,1,1);
plot(t,xt1);
xlabel('t');
title('T=2PI,duty=40');
ylim([-1.1,1.1]);

subplot(2,1,2);
plot(t,xt2);
xlabel('t');
title('T=10,duty=40');
ylim([-1.1,1.1]);

 


9 周期三角信号

        在matlab中用sawtooth函数表示,即xt=sawtooth(t,xmax),可以产生周期为2pi的三角信号,最小值-1,最大值1,xmax表示每个周期内最大值出现的位置,如在0~2pi的周期内,t在0~xmax*2pi之间从-1线性递增到1,在xmax*2pi~2pi之间从1线性递减到-1

clc;clear;close all;

t = -10:0.001:10;
xt1 = sawtooth(t,0.5);         %T=2pi(默认值)
xt2 = sawtooth(t*(2*pi)/5,1);  %T=5

subplot(1,2,1);
plot(t,xt1);
xlabel('t');

subplot(1,2,2);
plot(t,xt2);
xlabel('t');

 

  • 13
    点赞
  • 85
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
北邮2020信号与系统课程仿真实验matlab 包含: 1.word版实验报告 2.18个matlab代码 题目要求: 习题1 典型信号的表示和运算: 1.产生离散衰减正弦序列x(n)=0.8 n sin⁡(π/4 n) ,0<n<10, 并画出其波形图。 2.用MATLAB生成信号 sinc(at-t_0), a和t_0都是实数,-4<t<10,画波形图。观察并分析a和t_0的变化对波形的影响。 3.某频率为f的正弦波可表示为x_a (t)=cos⁡(2πft),对其进行等间隔抽样,得到的离散样值序列可表示为x(n)= x_a (t)(t=nT),其中T称为抽样间隔,代表相邻样值间的时间间隔,f_s=1/T表示抽样频率,即单位时间内抽取样值的个数。抽样频率取f_s=40" Hz" ,信号频率f分别取5Hz, 10Hz, 20Hz和30Hz。请在同一张图中同时画出连续信号x_a (t) t和序列x(n) nT的波形图,并观察和对比分析样值序列的变化。可能用到的函数为plot, stem, hold on。 4.用MATLAB产生音阶信号"1 2 3 4 5 6 7 " "1" ,并播放,抽样频率可设为8000 Hz。 5.利用MATLAB产生信号x_1 (t)=cos⁡t和x_1 (t)=cos⁡20t,请画出信号x_1 (t)+x_2 (t)和信号x_1 (t) x_2 (t)的波形图。 习题2 线性时不变系统的时域分析: 计算下列信号 和 的卷积和。 1. x(n)=h(n)=u(n)-u(n-4); 2. x(n)=u(n)-u(n-4), h(n)=0.8 n [u(n)-u(n-10)] 习题3 绘制典型信号及其频谱图: (1)绘制单边指数信号及其频谱图的MATLAB程序如下: close all; E=1;a=1; t=0:0.01:4; w=-30:0.01:30; ... 请更改参数,调试此程序,绘制单边指数信号的波形图和频谱图。观察参数a对信号波形及其频谱的影响。 注:题目中阴影部分是幅频特性的对数表示形式,单位是(dB),请查阅相关资料,了解这种表示方法的意义及其典型数值对应的线性增益大小。 (2)绘制矩形脉冲信号、升余弦脉冲信号和三角脉冲信号的波形图和频谱图,观察并对比各信号的频带宽度和旁瓣的大小。 习题4 连续系统的零极点分布与频响特性的关系: 请利用MATLAB软件绘制下列因果系统的零极点图和频率响应特性曲线,并判断系统具有什么类型的滤波特性。 (1) H_1 (s)=2/(s+2); (2) H_2 (s)=s/(s+2); (3) H_3 (s)=1/(s+1)(s+2) ; (4) H_4 (s)=s/(s+1)(s+2) ; (5) H_5 (s)=s 2/(s+1)(s+2) ; (6) H_6 (s)=s/(s 2+2s+10); (7) H_7 (s)=(s-1)(s-2)/(s+1)(s+2) .

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Embedded Boy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值