#matlab #scilab
#matlab #scilab
Вопрос:
% P0211a: To prove that the system T1[x(n)] = x(n)u(n) is linear
clear; clc; close all;
n = 0:100; x1 = rand(1,length(n));
x2 = sqrt(10)*randn(1,length(n)); u = stepseq(0,0,100);
y1 = x1.*u; y2 = x2.*u; y = (x1 x2).*u;
diff = sum(abs(y - (y1 y2)));
if (diff < 1e-5)
disp(’ *** System-1 is Linear *** ’);
else
disp(’ *** System-1 is NonLinear *** ’);
end
—Я не могу найти эквивалент команды stepseq для scilab. спасибо
Комментарии:
1. Насколько я знаю, у Scilab нет такого эквивалента. На самом деле
stepseq
это даже не собственная функция MATLAB. Вероятно, вам придется найтиstepseq
, где бы вы ни нашли этот фрагмент кода, и перевести его в Scilab самостоятельно.
Ответ №1:
Вот перевод (код stepseq, найденный с помощью простого поиска в Google). Единственное, что я изменил в вашем коде, это символы комментариев ( //
вместо %
) и вызов randn(..)
(изменен на rand(...,"normal")
)
// P0211a: To prove that the system T1[x(n)] = x(n)u(n) is linear
clear; clc; close all;
function [x,n] = stepseq(n0,n1,n2)
n=n1:n2;
x = [(n-n0)>=0];
end
n = 0:100; x1 = rand(1,length(n));
x2 = sqrt(10)*rand(1,length(n),"normal"); u = stepseq(0,0,100);
y1 = x1.*u; y2 = x2.*u; y = (x1 x2).*u;
diff = sum(abs(y - (y1 y2)));
if (diff < 1e-5)
disp(" *** System-1 is Linear *** ");
else
disp(" *** System-1 is NonLinear *** ");
end
Комментарии:
1. И что? Вы проверяли выше?