信号与系统仿真作业.docx

上传人:b****6 文档编号:4391109 上传时间:2022-12-01 格式:DOCX 页数:19 大小:327.49KB
下载 相关 举报
信号与系统仿真作业.docx_第1页
第1页 / 共19页
信号与系统仿真作业.docx_第2页
第2页 / 共19页
信号与系统仿真作业.docx_第3页
第3页 / 共19页
信号与系统仿真作业.docx_第4页
第4页 / 共19页
信号与系统仿真作业.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

信号与系统仿真作业.docx

《信号与系统仿真作业.docx》由会员分享,可在线阅读,更多相关《信号与系统仿真作业.docx(19页珍藏版)》请在冰豆网上搜索。

信号与系统仿真作业.docx

信号与系统仿真作业

nGDOU-B-11-112

广东海洋大学学生实验报告书(学生用表)

课程名称课程号学院(系)信息学院

专业班级

学生姓名学号

实验地点04002实验日期

实验一连时间信号的MATLAB表示

和连续时间LTI系统的时域分析

一、实验目的

1.掌握MATLAB产生常用连续时间信号的编程方法,并熟悉常用连续时间信号的波形和特性;

2.运用MATLAB符号求解连续系统的零输入响应和零状态响应;

3.运用MATLAB数值求解连续系统的零状态响应;

4.运用MATLAB求解连续系统的冲激响应和阶跃响应;

5.运用MATLAB卷积积分法求解系统的零状态响应。

二、实验原理

1.连续信号MATLAB实现原理

从严格意义上讲,MATLAB数值计算的方法并不能处理连续时间信号。

然而,可用连续信号在等时间间隔点的取样值来近似表示连续信号,即当取样时间间隔足够小时,这些离散样值能够被MATLAB处理,并且能较好地近似表示连续信号。

MATLAB提供了大量生成基本信号的函数。

比如常用的指数信号、正余弦信号等都是MATLAB的内部函数。

为了表示连续时间信号,需定义某一时间或自变量的范围和取样时间间隔,然后调用该函数计算这些点的函数值,最后画出其波形图。

三、实验内容

1.实例分析与验证

根据以上典型信号的MATLAB函数,分析与验证下列典型信号MATLAB程序,并实现各信号波形图的显示,连续信号的图形显示使用连续二维图函数plot()。

(1)正弦信号:

用MATLAB命令产生正弦信号

,并会出时间0≤t≤3的波形图。

程序如下:

K=2;w=2*pi ;phi=pi/4;

t=0:

0.01:

3;

ft=K*sin(w*t+phi);

plot(t,ft),gridon;

axis([0,3,-2.2,2.2])

title('正弦信号')

(2)抽样信号:

用MATLAB中的sinc(t)函数命令产生抽样信号Sa(t),并会出时间为

的波形图。

程序如下:

t=-6*pi:

pi/100:

6*pi;

ft=sinc(t/pi);

plot(t,ft),gridon;

axis([-20,20,-0.5,1.2])

title('抽样信号')

(3)矩形脉冲信号:

用MATLAB中y=rectpuls(t,width)函数命令画出下列矩形脉冲信号的波形图

程序如下:

t=-0.5:

0.01:

3;

t0=0.5;width=1;

ft=2*rectpuls(t-t0,width);

plot(t,ft),gridon;

axis([-0.5,3,-0.2,2.2])

title('矩形脉冲信号')

(4)单位阶跃信号:

用MATLAB命令“y=(t>=0)”绘出-1≤t≤5单位阶跃信号ε(t)。

程序如下:

t=-1:

0.01:

5;

ft=(t>=0);

plot(t,ft),gridon;网格

axis([-1,5,-0.5,1.5]);

title('单位阶跃信号')

也可通过定义阶跃函数来实现,

functionf=uCT(t);

f=(t>=0);

保存为uCT.m文件,上面实现阶跃信号的程序变为

t=-1:

0.01:

5;

ft=uCT(t);

plot(t,ft),gridon;

axis([-1,5,-0.5,1.5]);

title('单位阶跃信号')

 

(5)连续时间系统零输入响应和零状态响应的符号求解

试用MATLAB命令求解微分方程

,当输入

,起始条件为

时系统的零输入响应、零状态响应及完全响应。

源程序为:

eq='D2y+3*Dy+2*y=0';

cond='y(0)=1,Dy(0)=2';

yzi=dsolve(eq,cond);yzi=simplify(yzi)

运行结果:

yzi=

-3*exp(-2*t)+4*exp(-t)

eq1='D2y+3*Dy+2*y=Dx+3*x';

eq2='x=exp(-3*t)*Heaviside(t)';

cond='y(-0.001)=0,Dy(-0.001)=0';

yzs=dsolve(eq1,eq2,cond);yzs=simplify(yzs.y)

运行结果:

yzs=

heaviside(t)*(-exp(-2*t)+exp(-t))

yt=simplify(yzi+yzs)

运行结果:

yt=

-3*exp(-2*t)+4*exp(-t)-exp(-2*t)*heaviside(t)+exp(-t)*heaviside(t)

subplot(311)

ezplot(yzi,[0,8]);gridon;

xlabel('t')

title('零输入响应')

subplot(312)

ezplot(yzs,[0,8]);gridon

xlabel('t')

title('零状态响应')

subplot(313)

ezplot(yt,[0,8]);gridon

xlabel('t')

title('完全响应')

(6)连续时间系统零状态响应的数值求解

试用MATLAB数值求解微分方程

,当输入

时系统的零状态响应。

源程序为:

ts=0;te=8;dt=0.01;

sys=tf([1,3],[1,3,2]);

t=ts:

dt:

te;

f=exp(-3*t).*uCT(t);

y=lsim(sys,f,t);

plot(t,y),gridon;

axis([08-0.020.27])

xlabel('t(s)'),ylabel('y(t)')

title('零状态响应')

(7)连续时间系统冲激响应和阶跃响应的求解

已知某LTI系统的微分方程

,试用MATLAB命令绘出

范围内系统的冲激响应h(t)和阶跃响应s(t)。

源程序为:

t=0:

0.001:

4;

sys=tf([1,16],[1,2,32]);

h=impulse(sys,t);

s=step(sys,t);

subplot(211);plot(t,h),gridon

xlabel('t(s)'),ylabel('h(t)')

title('冲激响应')

subplot(212);plot(t,s),gridon

xlabel('t(s)'),ylabel('s(t)')

title('阶跃响应')

(8)利用卷积积分法求系统的零状态响应

已知某LTI系统的微分方程

,其中,

试用MATLAB卷积积分方法绘出系统零状态响应y(t)的波形图。

程序如下:

dt=0.01;t1=0:

dt:

4;

f1=exp(-2*t1);

t2=t1;

sys=tf([1,16],[1,2,32]);

f2=impulse(sys,t2);

[t,f]=ctsconv(f1,f2,t1,t2,dt);

2.实践编程

(1)复指数信号:

用MATLAB命令画出0≤t≤3复指数信号

的实部、虚部、模及相角随时间变化的曲线,并观察其时域特性。

程序:

t=0:

0.01:

3;

k=2;a=-1.5;b=10;

ft=k*exp((a+i*b)*t);

subplot(2,2,1);plot(t,real(ft));title('实部');axis([0,3,-2,2]);gridon;

subplot(2,2,2);plot(t,imag(ft));title('虚部');axis([0,3,-2,2]);gridon;

subplot(2,2,3);plot(t,abs(ft));title('模');axis([0,3,0,2]);gridon;

subplot(2,2,4);plot(t,angle(ft));title('相角');axis([0,3,-4,4]);gridon;

(2)用MATLAB中y=square(t,DUTY)产生频率为10Hz、占空比为30%的周期方波信号。

程序:

t=0:

0.001:

3;

y=square(2*pi*10*t,30);

plot(t,y);gridon;

axis([0,0.3,-1.2,1.2]);

title('周期方波信号')

(3)用上面定义的uCT阶跃函数实现幅度为1、宽度为1的门函数

程序:

t=-1:

0.01:

1;

ft=uCT(t+0.5)-uCT(t-0.5);

plot(t,ft);gridon;

axis([-1,1,-0.2,1.2])

title('门函数')

(4)已知系统的微分方程和激励信号为

,试用MATLAB命令绘出系统零状态响应的时域仿真波形图。

源程序:

ts=0;te=8;dt=0.01;

sys=tf([1,3],[1,4,4]);

t=ts:

dt:

te;

f=exp(-t).*uCT(t);

y=lsim(sys,f,t);

plot(t,y),gridon;

xlabel('t(s)'),ylabel('y(t)')

title('零状态响应')

 

(5)已知系统的微分方程为

,试用MATLAB命令求系统冲激响应和阶跃响应的数值解,并绘出冲激响应和阶跃响应的时域仿真波形图。

源程序:

t=0:

0.001:

4;

sys=tf([1],[1,3,2]);

h=impulse(sys,t);

s=step(sys,t);

subplot(211)

plot(t,h),gridon

xlabel('t(s)'),ylabel('h(t)')

title('冲激响应')

subplot(212)

plot(t,s),gridon

xlabel('t(s)'),ylabel('s(t)')

title('阶跃响应')

实验二连续时间LTI系统的频率特性及频域分析

一、实验目的

1.运用MATLAB分析连续系统的频率特性;

2.运用MATLAB进行连续系统的频域分析。

二、实验原理

1.连续时间LTI系统的频率特性

一个连续时间LTI系统的数学模型通常用常系数线性微分方程来描述,即

对上式两边取傅里叶变换,并根据傅里叶变换的时域微分特性,得到系统的频率响应为

MATLAB信号处理工具箱提供的freqs函数可直接计算系统的频率响应的数值解,其语句格式为

H=freqs(b,a,w)

其中,b和a分别表示H(w)的分子和分母多项式的系数向量;w为系统频率响应的频率范围,其一般形式为w1:

p:

w2,w1为频率起始值,w2为频率终止值,p为频率取样间隔。

H返回w所定义的频率点上系统响应频率响应的样值。

注意,H返回的样值可能为包含实部和虚部的复数。

因此,如果想得到系统的幅频特性或相频特性,还需利用abs和angle函数来分别求得。

2.连续时间LTI系统的频域分析

连续LTI系统的频域分析法,也称为傅里叶变换分析法。

该方法是基于信号频谱分析的概念,讨论信号作用于线性系统时在频域中求解响应的方法。

傅里叶分析法的关键是求系统的频率响应。

傅里叶分析法主要用来分析系统的频率响应特性,或分析输出信号的频谱,也可用来求解正弦信号作用下的稳态响应。

对于周期信号激励而言,可首先将周期信号进行傅里叶级数展开,然后求系统在各傅里叶级数分解的频率分量作用下系统的稳态响应分量,再由系统的线性性质将这些稳态响应分量叠加,从而得出系统总的响应。

该方法的理论基础是基于正弦信号作用下系统的正弦稳态响应。

对于正弦激励信号

,当经过系统

,其稳态响应为

三、实验内容

1.实例分析与验证

(1)已知一个连续时间LTI系统的微分方程为

求系统的频率响应,并用MATLAB绘出其幅频特性和相频特性图。

解:

对微分方程取傅里叶变换,得

因此,频率响应为

MATLAB源程序:

w=-3*pi:

0.01:

3*pi;

b=[13,7];a=[1,10,8,5];

H=freqs(b,a,w);

subplot(211)

plot(w,abs(H)),gridon

xlabel('\omega(rad/s)'),ylabel('|H(\omega)|')

title('H(w)的频率特性')

subplot(212)

plot(w,angle(H)),gridon

xlabel('\omega(rad/s)'),ylabel('\phi(\omega)|')

title('H(w)的相频特性')

(2)如图为RC低通滤波器电路,在输入端加入矩形脉冲u1(t)。

利用傅里叶分析法求输出端电压u2(t)。

解:

RC低通滤波器的频率响应为

其中

激励信号的傅里叶变换为

因此,响应的傅里叶变换为

MATLAB源程序:

w=-6*pi:

0.01:

6*pi;

b=[5];a=[1,5];

H1=freqs(b,a,w);

plot(w,abs(H1)),gridon

xlabel('\omega(rad/s)'),ylabel('|H(\omega)|')

title('RC低通滤波电路的幅频特性')

u1t=sym('Heaviside(t)-Heaviside(t-1)');

U1w=simplify(fourier(u1t));

figure

subplot(221),ezplot(u1t,[-0.2,2]),gridon

title('矩形脉冲信号')

xlabel('Time(sec)'),ylabel('u1(t)')

subplot(222),ezplot(abs(U1w),[-6*pi6*pi]),gridon

title('矩形脉冲的频谱')

xlabel('\omega(rad/s)'),ylabel('X(\omega)')

U2w=sym('5*(1-exp(-i*w))/(5*i*w-w^2)');

u2t=simplify(ifourier(U2w));

subplot(223),ezplot(u2t,[-0.22]),gridon

title('响应的时域波形')

xlabel('Time(sec)'),ylabel('u2(t)')

subplot(224),ezplot(abs(U2w),[-6*pi6*pi]),gridon

title('响应的频谱')

xlabel('\omega(rad/s)'),ylabel('U2(\omega)')

2.实践编程

设系统的频率响应为

,若外加激励

,用MATLAB求其稳态响应。

解:

解:

MATLAB源程序:

t=0:

0.1:

20;

w1=1;w2=10;

H1=1/(-w1^2+j*3*w1+2);

H2=1/(-w2^2+j*3*w2+2);

f=5*cos(w1*t)+2*cos(w2*t);

y=5*abs(H1)*cos(w1*t+angle(H1))+2*abs(H2)*cos(w2*t+angle(H2));

subplot(211);

plot(t,f);gridon

ylabel('f(t)'),xlabel('Time(sec)')

title('输入信号的波形')

subplot(212);

plot(t,y);gridon

ylabel('y(t)'),xlabel('Time(sec)')

title('稳态响应的波形')

或者用freqs函数,程序如下:

 

成绩指导老师日期

第页,共页

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 公共行政管理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1