信号与系统实验指导书(2008528) 下载本文

xlabel('时间, msec');ylabel('幅值'); title('连续时间信号 x_{a2}(t)'); axis([0 0.001 -3 3]) subplot(3,2,3); stem(k1,xs1);grid;

xlabel('时间,msec');ylabel('幅值'); title('离散时间信号 x1[n]'); axis([0 100 -3 3]) subplot(3,2,4); stem(k2,xs2);grid;

xlabel('时间,msec');ylabel('幅值'); title('离散时间信号 x2[n]'); axis([0 5 -3 3]) subplot(3,2,5) N1=length(xs1); fx1=fft(xs1); df1=fs/N1; n1=0:N1/2; f1=n1*df1;

plot(f1,abs(fx1(n1+1))*2/N1); grid;

set(gca,'XTickMode','manual','XTick',[0,50,100,150,200,250,300]) set(gca,'YTickMode','manual','YTick',[1,2,3,4]) title('离散时间信号 x1[n]和频谱图'); axis([0 300 0 4]) subplot(3,2,6) N2=length(xs2); fx2=fft(xs2); df2=fs/N2; n2=0:N2/2; f2=n2*df2;

plot(f2,abs(fx2(n2+1))*2/N2); grid;

set(gca,'XTickMode','manual','XTick',[100,500,1000,1500,2120,2500]) set(gca,'YTickMode','manual','YTick',[1,2,3,4]) title('离散时间信号 x2[n]和频谱图'); 执行后得到如图4.14:

29

图5-14 两种信号的采样及频谱图

从图4.14中我们可以看出,当正常采样时,频谱图上和原信号频谱一样,冲激点在f=150Hz片,而且采样时,发生了频谱混迭,负频上的-3000Hz搬移到了正频上的2120Hz。

五、实验报告要求

简述实验目的及原理,按实验步骤附上相应的信号波形和频谱曲线,说明采样频率变化对信号时域和频域特性的影响,总结实验得出的主要结论。参考比较MATLAB版的相应实验,你可以得出哪些结论?

六、思考题

(1)x(t) 若信号频率为5000Hz,请问本实验中的模拟信号采样后的混迭频率是多少Hz ? 分析一200Hz的方波信号,采样频率=500Hz,用谱分析功能观察其频谱中的混迭现象。为什么会产生混迭?

(2)6. 在时域抽样定理中,为什么要求被抽样信号必须是带限信号?如果频带是无限的应如何处理?

30

实验六 离散系统状态方程的求解

一、实验目的

(1)了解离散系统状态方程求解方法。 (2)了解离散系统信号流图化简的方法。 (3)了解函数ode45的调用方法。

二、实验原理

离散系统状态方程的一般形式为 x(k+1)=Ax(k)+Bf(k) 在些只对单输入的n阶离散系统的状态议程求解。一般采用递推迭代的方式求解,由裙的条件x(0)和激励f(0)求出k=1时的x(1),然后依次迭代求得所要求的x(0),……,x(n)的值。

编程时应注意,MATLAB中变量下标不允许为零,则裙点的下标只能取1,第n步的x的下标为n+1。

三、涉及的MATLAB函数

zeros(2,1)

y=lsim(sys,f,[],x0) for i=1:n end clear all 采用函数ode45可以求解微分方程。其调用格式如下 [t,y]=ode45(odefun,tspan,y0)

其中,odefun指状态方程的表达式,tspan指状态方程对应的起止时间]t0,tf],y0指状态变量的初始状态。

四、实验内容与方法

1.验证性实验(参考程序)

采用MATLAB语言编程,求解离散系统状态方程,并绘制状态变量的波形。 (1)已知离散系统的状态方程为

0??x1(k?1)??1??x1(k?1)??0.5??x(k?1)??0.250.25??x(k?1)???0?f(k)

??2?2???????1?初始条件为x(0)=??,激励为f(k)=0.5ε(k),确定该状态方程x(k)前10步的解,并画出波

?0.5?形。 MATLAB程序:

%离散系统状态求解

%A=input(‘系统矩阵 A=’) %B=input(‘系数矩阵 B=’)

%x0=input(‘初始状态矩阵 x0=’)

31

%n=input(‘要求计算的步长 n=’) %f=input(‘输入信号 f=’) %需求长度为n的数组 clear all

A=[0.5 0;0.25 0.25]; B=[1;0]; x0=[-1;0.5]; n=10;

f=[0 0.5*ones(1,n-1)]; x(:,1)=x0; for i=1:n

x(:,i+1)=A*x(:,i)+B*f(i); end

subplot(2,1,1);stem([0:n],x(1,:)); subplot(2,1,2);stem([0:n],x(2,:));

离散系统状态方程的求解结果如图5.1所示

图6-1 离散系统状态方程的求解

(2)离散系统状态求解 MATLAB程序:

A=[0 1;-2 3];B=[0;1];

C=[1 1;2 -1];D=zeros(2,1); x0=[1;-1];%初始条件 N=10;f=ones(1,N); sys=ss(A,B,C,D,[]);

y=lsim(sys,f,[],x0);k=0:N-1; subplot(2,1,1); stem(k,y(:,1),'b');

subplot(2,1,2);stem(k,y(:,2),'b');

离散系统状态议程的求解结果如图5.2所示。

32