构建一个matlab反例证明y[n]=x^3[n]不是线性的
时间: 2023-11-18 12:06:19 浏览: 80
要证明 $y[n] = x^3[n]$ 不是线性的,需要找到一个反例,即找到两个输入序列 $x_1[n]$ 和 $x_2[n]$,以及对应的系数 $a$ 和 $b$,使得对于输出 $y_1[n] = x_1^3[n]$ 和 $y_2[n] = x_2^3[n]$,有 $y[n] \neq ax_1^3[n] + bx_2^3[n]$。
考虑以下两个输入序列:
$x_1[n] = 1$ 和 $x_2[n] = -1$
对应的输出分别为:
$y_1[n] = 1^3 = 1$ 和 $y_2[n] = (-1)^3 = -1$
假设 $y[n] = ax_1^3[n] + bx_2^3[n]$,则有:
$y[n] = ax_1^3[n] + bx_2^3[n] = a - b$
但是,对于输入序列 $x_3[n] = x_1[n] + x_2[n] = 0$,对应的输出为:
$y_3[n] = x_3^3[n] = 0$
由上式可知,$y_3[n] = 0 \neq y[n] = a - b$,因此 $y[n] = x^3[n]$ 不是线性的。
下面是 MATLAB 代码实现,用于验证 $y[n] = x^3[n]$ 不是线性的:
```matlab
% 定义输入序列 x1[n] 和 x2[n]
n = 0:10;
x1 = ones(1, length(n));
x2 = -ones(1, length(n));
% 计算对应的输出序列 y1[n] 和 y2[n]
y1 = x1.^3;
y2 = x2.^3;
% 假设 y[n] = a*x1[n]^3 + b*x2[n]^3
a = 1;
b = 2;
% 计算输出序列 y[n]
y = a*x1.^3 + b*x2.^3;
% 计算输入序列 x3[n]
x3 = x1 + x2;
% 计算对应的输出序列 y3[n]
y3 = x3.^3;
% 判断是否满足线性性质
if y3 == a*y1 + b*y2
disp('该系统是线性的')
else
disp('该系统不是线性的')
end
```
运行这段代码,输出的结果为“该系统不是线性的”。
阅读全文