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

时间: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字,全部文档内容请下载后查看。喜欢就下载吧 ……

连续信号和系统时域分析的MATLAB实现.doc 将本文的Word文档下载到电脑

    精彩图片

    热门精选

    大家正在看

    × 游客快捷下载通道(下载后可以自由复制和排版)

    限时特价:7 元/份 原价:20元

    支付方式:

    开通VIP包月会员 特价:29元/月

    注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
    微信:fanwen365 QQ:370150219