如何用matlab编程判断 y(n)-a(y(n-1))=x(n); y(0)=1 是否为线性系统?快哭了.
来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/20 15:11:42
如何用matlab编程判断 y(n)-a(y(n-1))=x(n); y(0)=1 是否为线性系统?快哭了.
如何用matlab编程判断 y(n)-a(y(n-1))=x(n); y(0)=1 是否为线性系统?快哭了.
如何用matlab编程判断 y(n)-a(y(n-1))=x(n); y(0)=1 是否为线性系统?快哭了.
线性系统的需要满足齐次性和叠加性,
用matlab编程判断的话,我的思路是用仿真结果来说明系统满足这两个特性
x(n)是系统输入,y(n)是输出,a为系统参数,应为常数.
代码如下:
%证明齐次性,输入x2是x1的3倍,初值也是3倍关系-----------------------------------
clear all
n=10;
a=2;
x1=random('norm',0,1,[1,n]);
y1=zeros(1,n);
y1(1)=1;
for i=2:1:n
y1(i)=a*y1(i-1)+x1(i);
end
x2=3*x1;
y2=zeros(1,n);
y2(1)=3*y1(1);
for i=2:1:n
y2(i)=a*y2(i-1)+x2(i);
end
t=1:1:n;
figure
plot(t,y1,'b',t,y2,'g');
figure
plot(t,y1*3,'*',t,y2,'g');
%证明叠加性,输入x3是输入x1与x2的叠加---------------------------------------------
clear all
n=10;
a=2;
x1=random('norm',0,1,[1,n]);
x2=random('norm',0,1,[1,n]);
x3=x1+x2;
y1=zeros(1,n);
y2=zeros(1,n);
y3=zeros(1,n);
y1(1)=1;
y2(1)=1;
y3(1)=y1(1)+y2(1);
for i=2:1:n
y1(i)=a*y1(i-1)+x1(i);
y2(i)=a*y2(i-1)+x2(i);
y3(i)=a*y3(i-1)+x3(i);
end
t=1:1:n;
figure
plot(t,y1,'b',t,y2,'g',t,y3,'k');
figure
plot(t,y1+y2,'*',t,y3,'k');
运行结果:
曲线一曲线二分别是两次仿真系统的输出y1,y2
曲线一乘以3倍与曲线二对比
说明系统满足齐次性;
下图三条曲线是输入为x1,x2,x1+x2时,系统的输出y1,y2,y3
将y1+y2与y3作对比
曲线吻合,说明系统具有叠加性.
综上,该系统满足齐次性和叠加性,是线性系统.