【发布时间】:2014-03-30 19:20:44
【问题描述】:
我有一个方程式:y(n) = a^x(n)。
在哪里x1(n) ={0,1,2,3}, x2(n)={1,2,3,4}, a1=a2=1, a=2。
那么,我如何编写 MATLAB 代码来测试系统是否是线性的?
【问题讨论】:
我有一个方程式:y(n) = a^x(n)。
在哪里x1(n) ={0,1,2,3}, x2(n)={1,2,3,4}, a1=a2=1, a=2。
那么,我如何编写 MATLAB 代码来测试系统是否是线性的?
【问题讨论】:
只需申请the definition。
考虑一个系统 S,输入信号 x(n) 的输出是 S( x(n) )。 S 是线性的当且仅当
在您的情况下,很明显 1 和 2 都不成立,因此系统 y(n) = S( x(n) ) 不是线性的。
用代码测试它:随机生成x1、x2和b的许多例子,并检查上面的等式是否成立。请注意,这样您将永远无法确定系统是线性的。您只能确定它不是,即当您找到x1、x2、b 时,其中 1 或 2 都不成立。
示例
>> a = 2; n = 3;
>> S = @(x) a*x.^n; %// anonymous function describing your system
>> x1 = 1:4; %// test input signal
>> x2 = 11:14; %// test input signal. Same length
>> S(x1)+S(x2)
ans =
2664 3472 4448 5616
>> S(x1+x2)
ans =
3456 5488 8192 11664
由于结果不同,系统不满足性质1,因此它不是线性的。
【讨论】: