一、 实验目的:
1、 掌握离散信号的分析方法。
2、 掌握用MATLAB对离散信号的编程方法。
二、 实验内容:
1、 掌握离散信号的MATLAB表述方法。 2、 掌握差分方程的通用递推程序。
题目一:离散信号的MATLAB表述 设计要求:编写MATLAB程序来产生下列基本脉冲序列:
(1) 单位脉冲序列,起点n0,终点nf,在ns处有一单位脉冲(n0(2) 单位阶跃序列,起点n0,终点nf,在ns前为0,在ns后为1(n0(3) 复指数序列。
nsnsnf)。 nf)。
参考程序:clear, n0=0; nf=10; ns=3;
n1=n0:nf; x1=[zeros(1,ns-n0),1,zeros(1,nf-ns)];
n2=n0:nf; x2=[zeros(1,ns-n0),ones(1,nf-ns+1)];
n3=n0:nf; x3=exp((-0.2+0.5j)*n3);
subplot(2,2,1),stem(n1,x1); title('单位脉冲序列')
subplot(2,2,3),stem(n2,x2); title('单位阶跃序列')
subplot(2,2,2),stem(n3,real(x3));line([0,10],[0,0])
title('复指数序列'),ylabel('实部 ')
subplot(2,2,4),stem(n3,imag(x3));line([0,10],[0,0]),
ylabel('虚部 ') 程序运行结果如图7-1
图7-1 程序运行结果
题目二:差分方程的通用递推程序 设计要求:描述线性时不变离散系统的差分方程为
a1y(n)+a2y(n-1)+…+anay(n-na+1)=b1u(n)+b2u(n-1)+…+bnbu(n-nb+1)
编写解上述方程的通用程序。
参考程序:a=input('差分方程左端的系数向量 a=[a(1),...a(na)]= ');
b=input('差分方程右端的系数向量 b=[b(1),...b(na)]= ');
u=input('输入信号序列 u=');
na=length(a); nb=length(b); nu=length(u);
s=['起算点前' ,int2str(na-1), '点y的值 =[y(',int2str(na-2),'), ...,y(0)]='];
ym=zeros(1,na+nu-1); ym(1:na-1)=input(s);
um=[zeros(1,na-2),u];
for n=na:na+nu-1
ys=ym(n-1:-1:n-na+1); us=um(n:-1:n-nb+1);
ym(n)=(b*us'-a(2:na)*ys')/a(1);
end
y=ym(na:na+nu-1); stem(y), grid on
line([0,nu],[0,0])
执行此程序,输入
a=[1,0.1,0.15,-0.225];b=[3,7,1]
u=exp(0.1*[1:20]);及ym=[0,0,0];
程序运行结果如图7-2
图7-2 程序运行结果
注:MATLAB函数filter与此程序等效。键入y1=filter(b,a,u);stem(y1)可得到同样的结果。
三、思考题:
1、总结MATLAB的常用函数。 2、写出本次实验的收获体会。
四、实验报告:
实验名称 班级 姓名 学号 1.实验目的。 2 .实验内容。
3.各题的建模、设计过程。 4.各题的执行参数和运行结果。 5.思考题。
因篇幅问题不能全部显示,请点此查看更多更全内容