信号与系统软件实验报告

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

信号与系统软件实验报告姓名:学号:实验项目七:表示信号与系统的MATLAB函数一、实验项目名称:表示信号、系统的MATLAB函数二、实验目的与任务:目的:1、加深对常用离散信号的理解;2、熟悉表示信号的基本MATLAB函数。任务:基本MATLAB函数产生离散信号;基本信号之间的简单运算;判断信号周期。三、实验原理:利用MATLAB强大的数值处理工具来实现信号的分析和处理,首先就是要学会应用MATLAB函数来构成信号。常见的基本信号可以简要归纳如下:1、单位抽样序列01)(n00nn在MATLAB中可以利用zeros()函数实现。;1)1();,1(xNzerosx如果)(n在时间轴上延迟了k个单位,得到)(kn即:01)(kn0nkn2、单位阶跃序列01)(nu00nn在MATLAB中可以利用ones()函数实现。);,1(Nonesx3、正弦序列)/2sin()(FsfnAnx采用MATLAB实现)/***2sin(*1:0faiFsnfpiAxNn4、复正弦序列njenx)(采用MATLAB实现)**exp(1:0nwjxNn5、指数序列nanx)(采用MATLAB实现naxNn.^1:0四、实验内容:MATLAB仿真实验步骤:1、编制程序产生上述5种信号(长度可输入确定),并绘出其图形。1、单位抽样序列:N=[-5:5]x=[zeros(1,5)1zeros(1,5)]stem(N,x)2、单位阶跃序列:N=[-10:10]x=[zeros(1,10)ones(1,11)]stem(N,x)正弦序列:requency=100fai=pi/3A=1Fs=100n=[0:100]x=A*sin(2*pi*fai*n/Fs+fai)stem(n,x)④复正弦序列:N=100w=100n=[0:N]x=exp(i*w*n)stem(n,x)⑤指数序列:N=10A=3n=[0:N]x=A.^nstem(n,x)2、在310n内画出下面每一个信号:1223[]sin()cos()44[]cos()4[]sin()cos()48nnxnnxnnnxn1)a.源代码:N=31n=[0:N]x1=sin(pi*n/4).*cos(pi*n/4)stem(n,x1)b.输出结果如下:2)a.源代码:N=31n=[0:N]x1=cos(pi*n/4).*cos(pi*n/4)stem(n,x1)b.输出结果如下3)a.源代码:N=31n=[0:N]x1=sin(pi*n/4).*cos(pi*n/8)stem(n,x1)B.输出结果如下:思考问题:每个信号的基波周期是什么?对于这3个信号中的每一个,不依赖MATLAB,如何来确定基波周期?答:第一个信号的基波周期是4,第二个信号的基波周期也是4,第三个信号的基波周期是32。如果不依赖于MATLAB,可根据周期公式进行计算即可。五、项目需用仪器设备名称:计算机、MATLAB软件。实验项目八:离散系统的冲激响应、卷积和一、实验项目名称:离散系统的冲激响应、卷积和二、实验目的与任务:目的:加深对离散系统冲激响应、卷积和分析方法的理解。任务:利用MATLAB函数conv、filter计算卷积及系统输出。三、实验原理:在离散时间情况下,最重要的是线性时不变(LTI)系统。线性时不变系统的输入输出关系可通过冲激响应][nh表示:kknhkxnhnxny][][][][][其中表示卷积运算,MATLAB提供了求卷积函数conv,即y=conv(x,h)这里假设x[n]和h[n]都是有限长序列。如果x[n]仅在1xxxNnnn区间内为非零,而h[n]仅在1hhhNnnn上为非零,那么y[n]就仅在2)()(hxhxhxNNnnnnn内为非零值。同时也表明conv只需要在上述区间内计算y[n]的1hxNN个样本值。需要注意的是,conv并不产生存储在y中的y[n]样本的序号,而这个序号是有意义的,因为x和h的区间都不是conv的输入区间,这样就应负责保持这些序号之间的联系。filter命令计算线性常系数差分方程表征的因果LTI系统在某一给定输入时的输出。具体地说,考虑一个满足下列差分方程的LTI系统:MmmNkkmnxbknya00][][式中x[n]是系统输入,y[n]是系统输出。若x是包含在区间1xxxNnnn内x[n]的一个MATLAB向量,而向量a和b包含系数ka和kb,那么y=filter(b,a,x),就会得出满足下面差分方程的因果LTI系统的输出:MmNkmnxmbknyka00][)1(][)1(注意,kaka)1(和mbmb)1(,因为MATLAB要求所有的向量序号都从1开始。例如,为了表示差分方程]1[3][]1[2][nxnxnyny表征的系统,就应该定义a=[12]和b=[1-3]。由filter产生的输出向量y包含了y[n]在与向量x中所在样本同一区间上的样本,即1xxxNnnn,以使得两个向量x和y中都包含了xN个样本。四、实验内容:MATLAB仿真实验步骤:1、考虑有限长信号1,05[]0,nxnn其余,,05[]0,nnhnn其余(a)首先用解析方法计算[][]*[]ynxnhn(b)接下来利用conv计算[][]*[]ynxnhn的非零样本值,并将这些样本存入向量y中。构造一个标号向量ny,对应向量y样本的序号。用stem(ny,y)画出这一结果。验证其结果与(a)是否一致。源代码:N=[0:10]x=[111111]h=[111111]y=conv(h,x)stem(N,y)输出结果如下:2、对以下差分方程描述的系统]2[2]1[][5.0][nxnxnxny][2]1[8.0][nxnyny]1[2]1[8.0][nxnyny分别利用filter计算出输入信号][][nnunx在41n区间内的响应y[n]。实验源代码分别如下:1.a=1b=[0.512]x=[1234]nx=[1:4]y=filter(b,a,x)stem(nx,y)2.a=[1-0.8]b=2x=[1234]nx=[1:4]y=filter(b,a,x)stem(nx,y)3.a=[1-0.8]b=[02]x=[1234]nx=[1:4]y=filter(b,a,x)stem(nx,y)输出图形分别如下所示:思考问题:考虑函数conv和filter之间的关系,试利用filter函数来实现离散时间信号的卷积。答:其中y=filter(p,d,x)用来实现差分方程,d表示差分方程输出y的系数,p表示输入x的系数,而x表示输入序列。输出结果长度数等于x的长度。Y=conv(x,h)是用来实现卷积的,对x序列和h序列进行卷积,输出的结果个数等于x的长度和h的长度之各减去1。五、项目需用仪器设备名称:计算机、MATLAB软件。实验项目十一:离散系统的转移函数一、实验项目名称:离散系统的转移函数,零、极点分布和模拟二、实验目的与任务:目的:1、加深对离散系统转移函数、零极点概念的理解;2、根据系统转移函数求系统零极点分布。任务:利用MATLAB函数tf2zp、zplane求系统零极点及绘制零极点图;根据系统零极点图求系统的频率响应。三、实验原理:离散系统的时域方程为MmmNkkmnxbknya00][][其变换域分析方法如下:系统的频率响应为jNNjjMMjjjjeaeaaebebbeAeBeH......)()()(1010Z域)()()(][][][][][zHzXzYmnhmxnhnxnym系统的转移函数为NNMMzazaazbzbbzAzBzH......)()()(110110分解因式NiiMiiNiikMiikzzKzazbzH111100)1()1()(,其中i和i称为零、极点。在MATLAB中,可以用函数[z,p,K]=tf2zp(num,den)求得有理分式形式的系统转移函数的零、极点,用函数zplane(z,p)绘出零、极点分布图;也可以用函数zplane(num,den)直接绘出有理分式形式的系统转移函数的零、极点分布图。四、实验内容:MATLAB仿真实验步骤:对系统2181.09.011)(zzzH1、编程实现系统的参数输入,绘出幅度频率响应曲线和零、极点分布图。2、根据系统的零极点计算系统频率响应的幅值和相位。定义omega=[0:511]*pi/256和unitcirc=exp(j*omega)得到在单位圆上512个等分点,在这些点上将要对频率响应)(jweH求值。(a)定义polevectors1是一个2×512的矩阵,其中每一行包含这样一些复数,这些复数是由unitcirc的相应列减去一个极点位置得到的。如果ps1是一个列向量,它包含了极点的位置,可以用下列命令来完成》polevectors1=ones(2,1)*unitcirc–ps1*ones(1,512)用abs和astan2定义polelength1和poleangle1作为polevectors1中每一元素的幅值和相位。(b)类似与polevectors1定义zerovectors1,使得它是2×512的矩阵,其中包含从零点位置到unitcirc元素的向量。定义zerolength1和zeroangle1分别是这些向量的幅值和相位。(c)画出polelength1和zerolength1对于omega的图。根据这些图,预计)(1jweH在哪里有最大值和最小值?(d)利用MATLAB命令H=freqz(b,a,512,’whole’)导出幅值和相位,与(c)中的结果相比较。源代玛:b=[1]a=[1-0.90.81][b,a]=eqtflength(b,a)[z,p,k]=tf2zp(b,a)figure(1);freqz(b,a,'whole')title('原图像')figure(2)zplane(z,p)title('零极点图’)omega=[0:511]*pi/256unitcirc=exp(i*omega)x=real(unitcirc)y=imag(unitcirc)psl=ppolevectorsl=ones(2,1)*unitcirc-ps1*ones(1,512)p=polevectorslpabs=abs(p)pastan2=angle(p)zs1=zzerpvectors1=ones(2,1)*unitcirc-zs1*ones(1,512)z=zerpvectors1zabs=abs(z)zastan2=angle(z)figure(3)x1=omegay1=pabsplot(x1,y1,'rx')holdonfigure(3)y2=zabsplot(x1,y2,'bo')holdofftitle('polelength1和zerolength1对于omega的图')p1=pabs(1,:)p2=pabs(2,:)z1=zabs(1,:)z2=zabs(2,:)P1=pastan2(1,:)P2=pastan2(2,:)Z1=zastan2(1,:)Z2=zastan2(2,:)Hlabs=z1.*z2./(p1.*p2)Hlastan2=Z1+Z2-P1-P2H=freqz(b,a,512,'whole')Habs=rot90(abs(H))Hastan2=rot90(angle(H))HF=fix(Hlastan2./pi)fork=1:512ifHF(k)0ifrem(HF(k),2)==0H1Rastan2(k)=Hlastan2(k)-HF(k

1 / 19
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功