连续信号和系统时域分析的MATLAB实现
时间:2025-04-24
时间:2025-04-24
连续信号和系统时域分析的MATLAB实现
连续信号和系统时域分析的MATLAB实现
MATLAB不仅有强大的计算功能,而且还有很强的绘图功能。最适合用于信号的产生及各种运算。另外,MATLAB的数值计算功能和符号计算功能都可用于系统分析中。
连续信号的绘制
1、用Matlab绘制波形图的基本函数
Matlab是一种基于矩阵和数组的编程语言,它将所有的变量都看成矩阵。它不仅有强大的计算功能,还有多种多样的画图功能。
这里主要介绍信号与系统分析中常用的几个Matlab函数,包括Matlab提供的内部函数和自定义函数。 我们可以在命令窗口中每次执行一条Matlab语句;或者生成一个程序,存为M文件供以后执行;或是生成一个函数,在命令窗口中执行。下面先定义几个基本函数。
单位阶跃函数
M文件名:u.m
% 单位阶跃函数(连续或离散)
% 调用 y=u(t) 产生单位阶跃函数 function y=u(t) y=(t>=0)
门函数
M文件名:rectpuls.m,Matlab的内部函数
调用格式 y=rectpuls(t) 产生高度为1,宽度为1的门函数 调用格式 y=rectpuls(t,W) 产生高度为1,宽度为W的门函数
三角脉冲函数
M文件名:tripuls.m, Matlab的内部函数
调用格式 y=tripuls(t) 产生高度为1,宽度为1的三角脉冲函数 调用格式 y=tripuls(t,w) 产生高度为1,宽度为w的三角脉冲函数 调用格式 y=tripuls(t,w,s)
产生高度为1,宽度为w的三角脉冲函数, -1<s<1, s=0时为对称三角形; s=-1, 三角形顶点左边。
抽样函数 M文件名:Sa.m
% 抽样函数(连续或离散) % 高度为1,
% 调用 y=Sa(t) 产生高度为1,第一个过零点为 function f=Sa(t)
f=sinc(t./pi); % sinc(t)=sin( t)/( t)是Matlab内部函数
符号函数
M文件名:sign.m 是Matlab的内部函数
连续信号和系统时域分析的MATLAB实现
周期方波
M文件名:square.m, Matlab的内部函数
调用格式 y=square(w0*t) 产生基频为w0(周期T=2 /w0)的周期方波。占空比为50 。
调用格式 y=square(w0*t,DUTY) 占空比DUTY= /T*100, 为一个周期中信号为正的时间长度。
周期锯齿波或三角波
M文件名:sawtooth.m, Matlab的内部函数
调用格式 y=sawtooth(w0*t) 产生基频为w0(周期T=2 /w0)的周期锯齿波。为正斜率。
调用格式 y=sawtooth(w0*t,WIDTH) 参数WIDTH=0.5,产生周期三角波;WIDTH=0,产生斜率为负的周期锯齿
波。
例1 画出下列信号的波形图。
(a) 正弦信号sin(0.5 t); (b) 门函数G2(t); (c) 随机信号;
(d) 离散信号cos(0.1 k),k 0, 1, 2, (e) 周期T=10s的周期锯齿波信号。 (f) 指数衰减的余弦信号2e t/6cos t。 解:用Matlab计算的程序如下:
% 画正弦信号的程序
t0=-2*pi;t1=2*pi;dt=0.02; t=t0:dt:t1; f=sin(pi/2*t); max_f=max(f); min_f=min(f);
plot(t,f,'linewidth',2); grid;line([t0 t1],[0 0]);
axis([t0,t1,min_f-0.2,max_f+0.2])
xlabel('t(sec)'),title('正弦信号的波形')
图1-1 正弦信号
运行程序后显示的图形如图1-1所示。
% 画门函数的程序 t0=-3;t1=3;dt=0.02; t=t0:dt:t1;
f=rectpuls(t,2); max_f=max(f); min_f=min(f);
plot(t,f,'linewidth',2); grid;line([t0 t1],[0 0]);
axis([t0,t1,min_f-0.2,max_f+0.2])
xlabel('t(sec)'),title('门函数的波形')
运行程序后显示的图形如图1-2所示。
% 画随机信号的程序m t0=-8;t1=8;dt=0.15; t=t0:dt:t1;
f=randn(1,length(t)); max_f=max(f); min_f=min(f);
plot(t,f,'linewidth',2); grid;line([t0 t1],[0 0]);
axis([t0,t1,min_f-0.2,max_f+0.2])
xlabel('t(sec)'),title('随机信号的波形')
图1-2 门函数的波形
连续信号和系统时域分析的MATLAB实现
运行程序后显示的图形如图1-3所示。
% 画离散余弦信号的程序 n0=-20;n1=20; n=n0:n1;
f=cos(pi*n/10); max_f=max(f); min_f=min(f); stem(n,f,'.');
axis([n0,n1,min_f-0.2,max_f+0.2])
xlabel('k'),title('离散余弦信号的波形')
图1-3 随机信号
运行程序后显示的图形如图1-4所示。
% 画周期锯齿波的程序 t0=-6*pi;t1=6*pi;dt=0.05; t=t0:dt:t1;
f=sawtooth(pi/5*t,0); max_f=max(f); min_f=min(f);
plot(t,f,'linewidth',2); grid;line([t0 t1],[0 0]);
axis([t0,t1,min_f-0.2,max_f+0.2])
xlabel('t(sec)'),title('周期锯齿波的波形')
图1-4 离散余弦信号
运行程序后显示的图形如图1-5所示。
% 画指数衰减余弦信号的程序 t0=-4*pi;t1=2*pi;dt=0.01; t=t0:dt:t1;
f1=2*exp(-t/6).*cos(pi*t); f2=2*exp(-t/6); f3=-2*exp(-t/6); max_f=max(f1); min_f=min(f1);
plot(t,f1,'linewidth',2); hold on;
plot(t,f2,':'); hold on;
plot(t,f3,':');
line([t0 t1],[0 0]);
line([0 0],[min_f-0.5 max_f+0.2]); axis([t0,t1,min_f-0.5,max_f+0.2]) xlabel('t(sec)') hold off
gtext('2e^{-t/6}cos(\pi t)') title('指数衰减余弦信号的波形')
图1-5 周期锯齿波
图1-6 指数衰减余弦信号
运行程序后显示的图形如图1-6所示。
例2 画出下列信号的波形图。 (a) f1(t) t (t)
(t i); (b)
i 1
f2(t) sin[ tsgn(t)];
(c) f3(t) (1 0.5|t|)G4(t); (d) f4(t) Sa(t/5 1)
解:为了方便的画图,可以编写一个通用的画波形的函数,这样每次画图时调用该函数就可以了。函数
连续信号和系统时域分析的MATLAB实现
名为myplot.m,Matlab程序为
function myplot(x,y)
…… 此处隐藏:12189字,全部文档内容请下载后查看。喜欢就下载吧 ……
上一篇:室内分布集成技术规范书
下一篇:羊癫疯患者应忌吃哪些食物