EDA365电子论坛网
标题:
在运行的过程中出现了报错,我也不知道是什么原因。
[打印本页]
作者:
waboer
时间:
2020-4-16 14:07
标题:
在运行的过程中出现了报错,我也不知道是什么原因。
在做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)'); %添加图例,即这条曲线是什么函数
4 P& n# K o: q
R! \% D3 e' O# ~. F
$ u# `: Z& s! f
以下是运行时出现的错误程序语句处:
f=n^2;%激励函数
, V& V# Q8 [7 s8 X2 E' |2 K
命令行报错内容:
6 f& [7 f' l, u; E% Y% x) x! o6 K
错误使用 ^
H, g7 G6 r0 ^' l7 L4 t5 b
用于对矩阵求幂的维度不正确。请检查并确保矩阵为方阵并且幂为标量。要执行按元素矩阵求幂,请使用 '.^'。
' ^' |# Q4 g1 N: J8 w# H" u
出错 Code2_1 (line 5)
4 @9 N3 L9 c# X# ]7 i; J+ P# n
f=n^2;%激励函数
: [6 @8 F) P7 Z& T6 t
作者:
Zedd
时间:
2020-4-16 17:55
Matlab表达时:.^2是矩阵中的每个元素都求平方,^2是求矩阵(此矩阵为方阵)的平方。
欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/)
Powered by Discuz! X3.2