作业帮 > 综合 > 作业

如何用matlab编程判断 y(n)-a(y(n-1))=x(n); y(0)=1 是否为线性系统?快哭了.

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/01 05:06:20
如何用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作对比
 

曲线吻合,说明系统具有叠加性.
综上,该系统满足齐次性和叠加性,是线性系统.