matlab大作业.docx
《matlab大作业.docx》由会员分享,可在线阅读,更多相关《matlab大作业.docx(12页珍藏版)》请在冰豆网上搜索。
![matlab大作业.docx](https://file1.bdocx.com/fileroot1/2023-2/24/94576972-74f8-46ed-9c75-42315cff74f6/94576972-74f8-46ed-9c75-42315cff74f61.gif)
matlab大作业
华东交通大学
MATLAB大作业
题目MATLAB在通信系统中的应用
课程名称现代通信仿真
院部名称信息工程学院
专业通信工程
班级11通信xx
学生姓名xxx
学号2011xxxxxxxxxx
指导教师邹丹
摘要
论文通过MATLAB在信号与系统中的应用实例,探讨了MATLAB在信号与系统中的应用方法和技巧,对运用计算机软件完成“信号与系统”课程的波形绘制,微分方程的求解,信号与系统分析具有较好的参考价值。
“信号与系统”课程是一门实用性较强、涉及面较广的专业基础课,是电子信息类专业学生的必修课程。
它是将学生从电路分析的知识领域引入信号处理与传输领域的关键性课程,对后继专业课起着承上起下的作用。
该课程的基本方法和理论大量运用于计算机信息处理的各个领域,特别是通信、图像处理、数字信号分析等领域,应用更为广泛。
MATLAB作为一个辅助类的软件可以很好的完成数值计算、信号与系统分析的可视化建模及仿真调试。
关键字:
MATLAB应用 信号与系统 微分方程
一、大作业目的
1、掌握利用MATLAB进行连续时间系统的时域分析。
2、掌握利用MATLAB进行周期信号的频域分析。
3、掌握利用MATLAB进行连续系统的复频域分析。
二、大作业内容及思路分析
本次大作业即matlab在信号与系统中的应用,主要包括连续信号及其示线性时不变系统、连续时间系统的时域分析和等连续时间系统的变换域分等。
对于连续信号及其表示:
在MATLAB中,还用函数stepfun()实现,其调用格式为stepfun(T,T0):
T为时间向量;
T0为跃变时刻;
当TT0时返回1,且返回的向量与T具有相同的长度。
常用的信号产生函数
函数名
函数功能
函数名
函数功能
square
产生周期方波信号
rectpuls
产生非周期方波信号
sawtooth
产生周期锯齿波、三角波信号
tripuls
产生非周期三角波信号
sinc
产生sinc信号
pulstran
产生冲激串
chirp
产生调频余弦信号
diric
产生Dirichlet或周期sinc函数
gauspuls
产生高斯正弦脉冲信号
gmonopuls
产生高斯单脉冲信号
线性时不变系统:
参数不随时间改变,且满足叠加性和均匀性的系统称为线性时不变(lineartime–invariant,LTI)系统。
分析LTI系统可采用时域方法或变换域方法如傅立叶变换、拉普拉斯变换和Z变换。
LTI系统可分为连续时间系统和离散时间系统
描述连续LTI系统方法:
用常系数微分方程、系统的传递函数或状态方程
系统模型转换函数
函数
功能
调用格式
tf2ss
传递函数模型转换为状态空间模型
[A,B,C,D]=tf2ss(b,a)
tf2zp
传递函数模型转换为零-极点增益模型
[z,p,k]=tf2zp(b,a)
ss2tf
状态空间模型转换为传递函数模型
[b,a]=ss2tf(A,B,C,D,iu)iu为输入量
ss2zp
状态空间模型转换为零-极点增益模型
[z,p,k]=ss2zp(A,B,C,D,iu)iu为输入量
zp2tf
零-极点增益模型转换为传递函数模型
[b,a]=zp2tf(z,p,k)
zp2ss
零-极点增益模型转换为状态空间模型
[A,B,C,D]=zp2ss(z,p,k)
连续时间系统的时域分析:
LTI连续时间系统在时域中以常系数微分方程来描述
等连续时间系统的变换域分析
可利用dsolve函数求解常系数微分方程来得到。
MATLAB提供的求解系统响应的函数。
(1)impulse():
单位冲激响应,调用格式:
impulse(sys):
绘制系统的单位冲激响应。
impulse(sys,t):
绘制在指定时间范围内系统的单位冲激响应。
y=impulse(sys,t):
参数同上,不绘图,将结果保留在y中。
(2)step()函数:
求阶跃响应,调用格式:
step(sys):
绘制系统的阶跃响应。
step(sys,t):
绘制在指定时间范围内系统的阶跃响应。
y=step(sys,t):
参数同上,不绘图,将结果保留在y中。
(3)lsim()函数:
求时域响应,调用格式:
lsim(sys,u,t):
在t指定的时间范围内绘制当输入为u时系统的零状态响应波形。
y=lsim(sys,u,t):
参数同上,不绘图,将结果保留在y中。
lsim(sys,u,t,x0):
在t指定的时间范围内绘制当输入为u时系统的全响应波形。
y=lsim(sys,u,t,x0):
参数同上,不绘图,将结果保留在y中。
(4)initial()函数:
求零输入响应调用格式:
initial(sys,x0):
绘制当初始状态为x0时系统的零输入响应波形。
initial(sys,x0,t):
在t指定的时间范围内绘制当初始状态为x0时系统的零输入响应波形。
y=initial(sys,x0,t):
参数同上,不绘图,将结果保留在y中。
注意:
调用impulse()、step()和lsim()时的系统模型可以是传递函数模型,也可以是状态空间模型,但调用initial()时的系统模型sys必须是状态空间模型。
MATLAB提供了求解系统频率响应的函数freqs(),其调用格式如下:
(1)h=freqs(b,a,w):
返回在指定频率范围w内系统的频率响应,其中b和a是系统对应的常系数微分方程的系数向量。
(2)[h,w]=freqs(b,a):
返回默认频率范围内200个频率点的系统频率响应的样值和这200频率点。
(3)[h,w]=freqs(b,a,f):
返回默认频率范围内f个频率点的系统频率响应的样值和这f个频率点。
(4)freqs(b,a):
以对数坐标绘制系统的幅频特性和相频特性。
MATLAB信号处理工具箱提供函数freqs计算系统的频率响应。
调用方式:
H=freqs(b,a,w)
b和a分别为分子多项式和分母多项式的系数向量,w为计算频率特性函数的取样点数。
三、大作业例题及分析:
1、已知系统函数为,试画出零极点分布图,并求系
统的冲激响应h(t)和频率响应H(jw),并判断系统是否稳定。
2、设系统的微分方程为
,求出该系统的冲击响应和阶跃响应。
提示:
求解系统的冲击响应利用函数impulse
求解系统的阶跃响应利用函数step
调用方式:
y=impulse(sys,t)
y=step(sys,t)
t表示计算系统响应的抽样点向量,sys是LTI系统模型。
3、设系统的微分方程为
,用两种方法求出该系统的零状态响应。
提示:
(1)零状态响应可通过求解初始状态为零的微分方程得到。
调用方式:
y=lsim(sys,f,t)
t表示计算系统响应的抽样点向量,f是系统输入信号向量,sys是LTI系统模型。
LTI系统模型sys借助tf函数获得,其调用方式为sys=tf(b,a)式中,b和a分别为微分方程右端和左端各项的系数向量。
(2)零状态响应等于输入信号与冲击响应的卷积。
4、求下列信号的拉氏反变换。
(1)
(2)
(3)
四、MTLAB程序及结果:
题1-
num=[1];
den=[1221];
sys=tf(num,den);
poles=roots(den)
figure
(1);pzmap(sys);
t=0:
0.02:
10;
h=impulse(num,den,t);
figure
(2);plot(t,h)
title('ImpulseRespone')
[H,w]=freqs(num,den);
figure(3);plot(w,abs(H))
xlabel('\omega')
title('MagnitudeRespone')
题2-
num=[1];
den=[156];
h=tf(num,den);
figure
(1),step(h);%Çó½×Ô¾ÏìÓ¦
figure
(2),impulse(h);%Çó³å»÷ÏìÓ¦
题3-1
t=0:
0.1:
5;
num=[1];
den=[156];
sys=tf(num,den);
f=(t>0&t<=1)*1;
y=lsim(sys,f,t);
figure
(1),plot(t,y)
title('·½·¨1');
题3-2
clf,clear
a=[1,5,6]
b=[1]
t=[0:
0.01:
5]
u=(t>0&t<=1)*1;
tf=t(end);dt=tf/(length(t)-1);
[r,p,k]=residue(b,a);%Óü«µãÁôÊý·¨Çó³å»÷º¯Êý
h=r
(1)*exp(p
(1)*t)+r
(2)*exp(p
(2)*t);%³å»÷º¯Êýh(t)
subplot(2,1,1),plot(t,h);title('·½·¨2³å»÷º¯Êýh(t)');grid
x=conv(u,h)*dt;%ÇóuºÍhµÄ¾í»ý
subplot(2,1,2),
plot(t,x(1:
length(t)));title('·½·¨2Áã״̬ÏìÓ¦');grid
题4-1
>>symss;
>>f=s-2/s*(s+3)^3;
>>ilaplace(f)
ans=
-17*dirac(1,t)-2*dirac(2,t)-54*dirac(t)-54
>>ans=4*dirac(t)+8
4-2
>>symss1;
>>f1=(s1^3+5*s1^2+9*s1+7)/(s1+1)*(s1+2);
>>ilaplace(f1)
ans=
dirac(3,t)+6*dirac(2,t)+13*dirac(1,t)+12*dirac(t)+2*exp(-t)
4-3
>>symss2
>>f2=10*(s2+2)*(5+s2)/(s2*(s2+1)*(s2+3));
>>ilaplace(f2)
ans=
100/3-10/3*exp(-3*t)-20*exp(-t)
五、小结
通过本次大作业,我对matlab在信号与系统中的应用及相关知识有了更进一步的了解。
在本次大作业过程中,我利用matlab软件一步步完成作业目标,对matlab软件的基本功能及应用更加熟悉,明白MATLAB软件是目前比较流行的一套商业数学软件,在数值计算、信号处理方面尤为突出。
它的出现给信号与系统分析中一些理论的掌握提供了很大的方便,利用其先进的计算机软件环境,可将信号与系统、信号处理中的很多定理直观化、可视化,这对学习这些理论非常有利。
本次大作业即matlab在信号与系统中的应用,主要包括连续信号及其表示、线性时不变系统、连续时间系统的时域分析和等连续时间系统的变换域分析等。
在这个过程中,我通过查阅资料,询问同学先慢慢熟悉matlab信号与系统中的应用基本知识,掌握基本函数matlab的实现等,在一步步完成例题,得到大作业的程序和结果。