实验报告二离散事件系统的时域分析.docx
《实验报告二离散事件系统的时域分析.docx》由会员分享,可在线阅读,更多相关《实验报告二离散事件系统的时域分析.docx(15页珍藏版)》请在冰豆网上搜索。
实验报告二离散事件系统的时域分析
实验报告
专业班级姓名
学号实验日期
实验名称离散时间系统的时域分析
一、实验目的:
通过MATLAB仿真一些简单的离散时间系统,并研究它们的时域特性。
二、实验内容:
2.3线性与非线性
%ProgramP2_3
%Generatetheinputsequences
clf;
n=0:
40;
a=2;b=-3;
x1=cos(2*pi*0.1*n);
x2=cos(2*pi*0.4*n);
x=a*x1+b*x2;
num=[2.24032.49082.2403];
den=[1-0.40.75];
ic=[00];%Setzeroinitialconditions
y1=filter(num,den,x1,ic);%Computetheoutputy1[n]
y2=filter(num,den,x2,ic);%Computetheoutputy2[n]
y=filter(num,den,x,ic);%Computetheoutputy[n]
yt=a*y1+b*y2;
d=y-yt;%Computethedifferenceoutputd[n]
%Plottheoutputsandthedifferencesignal
subplot(3,1,1)
stem(n,y);
ylabel('Amplitude');
title('OutputDuetoWeightedInput:
a\cdotx_{1}[n]+b\cdotx_{2}[n]');
subplot(3,1,2)
stem(n,yt);
ylabel('Amplitude');
title('WeightedOutput:
a\cdoty_{1}[n]+b\cdoty_{2}[n]');
subplot(3,1,3)
stem(n,d);
xlabel('Timeindexn');ylabel('Amplitude');
title('DifferenceSignal');
运行程序P2.3
Q2.8用三组不同的权系数a和b的值及三组不同的输入频率,运行程序P2.3,对有加权输入得到的y[n]与在相同权系数下输出y1[n]和y2[n]相加得到的yt[n]进行比较,这两个序列是否相等?
该系统是线性系统吗?
1.修改程序P2.3,令a=4,b=-6,w1=2*pi*0.2,w2=2*pi*0.8,重新运行程序P2.3
由图可以看到,由加权输入得到的y[n]与在相同权系数下输出y1[n]和y2[n]相加得到的yt[n]的差值非常小(权值为
),故y[n]与yt[n]相等,满足线性系统的定义,故该系统为线性系统。
2.修改程序P2.3,令a=1,b=-2,w1=2*pi*0.1,w2=2*pi*0.4,重新运行程序P2.3
由图知y[n]与yt[n]相等,该系统为线性系统。
3.修改程序P2.3,令a=2,b=-4,w1=2*pi*0.2,w2=2*pi*0.8,重新运行程序P2.3
由图知y[n]与yt[n]相等,该系统为线性系统。
2.4时不变系统和时变系统
用MATLAB程序P2.4仿真式
给出的系统,以产生两个不同的输入序列x[n]和x[n-D],计算并画出相应的输出序列y1[n],y2[n]和y1[n]-y2[n-D]。
%ProgramP2_4
%Generatetheinputsequences
clf;
n=0:
40;D=10;a=3.0;b=-2;
x=a*cos(2*pi*0.1*n)+b*cos(2*pi*0.4*n);
xd=[zeros(1,D)x];
num=[2.24032.49082.2403];
den=[1-0.40.75];
ic=[00];%Setinitialconditions
y=filter(num,den,x,ic);%Computetheoutputy[n]
yd=filter(num,den,xd,ic);%Computetheoutputyd[n]
d=y-yd(1+D:
41+D);%Computethedifferenceoutputd[n]
subplot(3,1,1)%Plottheoutputs
stem(n,y);
ylabel('Amplitude');
title('Outputy[n]');grid;
subplot(3,1,2)
stem(n,yd(1:
41));
ylabel('Amplitude');
title(['OutputduetoDelayedInputx[n?
',num2str(D),']']);grid;
subplot(3,1,3)
stem(n,d);
xlabel('Timeindexn');ylabel('Amplitude');
title('DifferenceSignal');grid;
Q2.13采用三个不同的延时变量D的值运行程序P2.4并比较输出序列y[n]和yd[n-10]。
这两个序列之间有什么关系?
该系统是时不变系统吗?
1.修改程序P2.4,令延时变量D=5,运行修改后的程序
输入延时量D=5,输出也延迟了5个样本,系统为时不变系统。
2.修改程序P2.4,令延时变量D=15,运行修改后的程序
输入延时量D=15,输出也延迟了15个样本,系统为时不变系统。
3.修改程序P2.4,令延时变量D=20,运行修改后的程序
输入延时量D=20,输出也延迟了20个样本,系统为时不变系统。
Q2.14采用三组不同的输入频率的值运行程序P2.4并比较输出序列y[n]和yd[n-10]。
此时这两个序列之间有什么关系?
该系统是时不变系统吗?
1.修改程序P2.4,令输入频率f1=0.2,f2=0.8,运行修改后的程序
采用三组不同频率值重新运行P2.4,判断系统是否为时不变系统。
、ω1=0.02*2π,ω2=0.09*2π
、ω1=0.5*2π,ω2=0.9*2π
、ω1=0.2*2π,ω2=0.8*2π
3、线性时不变离散时间系统
(1)、线性时不变系统的冲击响应的计算
Matlab命令y=impz(num,den,N)计算因果线性时不变离散时间系统的冲击响应前N个样本。
下面的程序P2.5计算并绘出了式(2.15)描述的系统的冲击响应。
%ProgramP2_5
%Computetheimpulseresponsey
clf;
N=40;
num=[2.24032.49082.2403];
den=[1-0.40.75];
y=impz(num,den,N);
%Plottheimpulseresponse
stem(y);
xlabel('Timeindexn');ylabel('Amplitude');
title('ImpulseResponse');grid;
运行结果:
(2)、修改程序P2.5,产生如下因果线性时不变系统的冲击响应的前45个样本:
Y[n]+0.71y[n-1]-0.46y[n-2]-0.62y[n-3]
=0.9x[n]-0.45x[n-1]+0.35x[n-2]+0.002x[n-3]
%ProgramP2_5_1
%Computetheimpulseresponsey
clf;
N=45;
num=[0.9-0.450.350.002];
den=[10.71-0.46-0.62];
y=impz(num,den,N);
%Plottheimpulseresponse
stem(y);
xlabel('Timeindexn');ylabel('Amplitude');
title('ImpulseResponse');grid;
运行结果:
4、卷积
假设待卷积的两个序列都为有限长序列,Matlab中卷积运算符课通过conv命令实现。
如,可以把系统的冲击响应与给定的有限长输入序列进行卷积,得到有限冲击响应系统的输出序列。
%ProgramP2_7
clf;
h=[321-210-403];%impulseresponse
x=[1-23-4321];%inputsequence
y=conv(h,x);
n=0:
14;
subplot(2,1,1);
stem(n,y);
xlabel('Timeindexn');ylabel('Amplitude');
title('OutputObtainedbyConvolution');grid;
x1=[xzeros(1,8)];
y1=filter(h,1,x1);
subplot(2,1,2);
stem(n,y1);
xlabel('Timeindexn');ylabel('Amplitude');
title('OutputGeneratedbyFiltering');
grid;
运行结果:
由图可以看出,y[n]与y1[n]没有差别。
序列h[n]和x[n]卷积得到的y[n]的长度h[n]和x[n]的长度之和再减去一,即9+7-1=15,而用FIR滤波器h[n]对输入信号x[n]滤波得到的y1[n]长度与x[n]相同,故要对x[n]补零后得到的x1[n](长度扩展为15),滤波后所得输出与y1[n]与y2[n]相同。