【问题标题】:Matlab: Test the system is linear or notMatlab:测试系统是否线性
【发布时间】: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 代码来测试系统是否是线性的?

【问题讨论】:

    标签: matlab signal-processing


    【解决方案1】:

    只需申请the definition

    考虑一个系统 S,输入信号 x(n) 的输出是 S( x(n) )。 S 是线性的当且仅当

    1. S( x1(n) + x2(n) ) = S( x1(n) ) + S( x2(n) ) 对于任何输入 x1, x2 (可加性)
    2. S( b * x1(n) ) = b * S( x1(n) ) 对于任何输入 x1 和任何数字 b (同质性)

    在您的情况下,很明显 1 和 2 都不成立,因此系统 y(n) = S( x(n) ) 不是线性的。

    用代码测试它:随机生成x1x2b的许多例子,并检查上面的等式是否成立。请注意,这样您将永远无法确定系统线性的。您只能确定它不是,即当您找到x1x2b 时,其中 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,因此它不是线性的。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-31
    • 2015-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-02
    相关资源
    最近更新 更多