| 
 | 
	
    
 
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册  
 
x
 
在做Matlab作业时,有一道题:设离散系统可由下列差分方程表示:y(n)-y(n-1)+0.9y(n-2)=f(n),且f(n)=n^2。试分别绘制n=[0:30]时系统的冲激响应、阶跃响应和零状态响应。希望大神能够附上代码和注释。非常感谢!以下是本人写的代码,但是在运行的过程中出现了报错,我也不知道是什么原因:- n=0:30;%离散系统n的取值范围为0~30
 - b=1;%右端系数
 - a=[1,-1,0.9];%左端系数
 - %构造离散系统方程:y(n)-y(n-1)+0.9y(n-2)=f(n)
 - f=n^2;%激励函数
 - h=impz(b,a,n);
 - %离散系统的单位冲激响应h(k),impz参数中先写右端系数b,再写左端系数a,注意第3个量为序列的取值范围
 - g=stepz(b,a,length(n));
 - %离散系统的单位阶跃响应g(k),stepz参数中先写右端系数b,再写左端系数a,注意第3个量为序列的长度,调用length()函数
 - y=filter(b,a,f);
 - %离散系统的零状态响应,filter参数中先写右端系数b,再写左端系数a,第3个量为输入序列f
 - subplot(1,2,1);%subplot函数没有画图功能,只是将窗口分割
 - stem(n,h,'b');%离散系统的打印函数,自定义蓝色
 - title('离散系统的单位冲激响应h(k)');
 - xlabel('t');    %添加X轴的标签
 - ylabel('y');    %添加Y轴的标签
 - legend('h(k)');    %添加图例,即这条曲线是什么函数
 - subplot(1,2,2);
 - stem(n,g,'r');
 - title('离散系统的单位阶跃响应g(k)');
 - xlabel('t');
 - ylabel('y');
 - legend('g(k)');
 - figure;
 - stem(n,f);
 - title('离散系统的零状态响应y_{zs}(t)');
 - xlabel('t');    %添加X轴的标签
 - ylabel('y');    %添加Y轴的标签
 - legend('y_{zs}(t)');    %添加图例,即这条曲线是什么函数
 - 1 J  e4 u1 H+ a
 
  9 U7 I" b& x' L, _; V* z" ?$ c+ F 
; J+ J/ u: V  Z0 J2 ^: r 
以下是运行时出现的错误程序语句处:f=n^2;%激励函数7 M: c8 d# p- x# v 
 命令行报错内容: 
* w- A. j8 i6 }& K错误使用  ^2 x; X3 L% v( h4 v" J  b1 r+ e" X 
用于对矩阵求幂的维度不正确。请检查并确保矩阵为方阵并且幂为标量。要执行按元素矩阵求幂,请使用 '.^'。 
' C- o5 G" d2 m- L( M8 A* `7 T; g出错 Code2_1 (line 5) 
+ M* `4 ~0 Q" R. E9 f; Y: {f=n^2;%激励函数: x% z  _7 n  O6 H" C& k2 w7 W 
 |   
 
 
 
 |