Doubt on data of a SISO system

Hello all,
How can I know if the relationship between these data is linear or nonlinear?
u=[0.158 0.105 0.158 0.158 0.158 0.158 0.105 0.158 0.105 0.105 0.158 0.158 0.158 0.158 0.211 0.211 0.158 0.105 0.158 0.211 0.158 0.105 0.105 0.105 0.158 0.158 0.158 0.158 0.158 0.158]
y=[0.760 0.759 0.757 0.759 0.763 0.763 0.763 0.767 0.770 0.771 0.770 0.770 0.766 0.758 0.758 0.758 0.757 0.757 0.756 0.753 0.750 0.749 0.749 0.754 0.756 0.756 0.756 0.756 0.755 0.755]
Where, u is the input and y is the output, and 0.158 really indicate the same location. Consider that there are no errors in the measured signals.
In fact, I want to know if the relationship between u and y is linear or nonlinear.
Does anyone have any suggestions?
Thanks.
[Information merged from answer]
I found this paper:
S.A. Billings, W.S.F. Voon (1983), Structure detection and model validity tests in the identification of nonlinear systems, IEE Proceedings, Vol. 130, No. 4, JULY 1983.
In Section 4 the authors use a high-order correlation function applied to the response signal performed in a linear identification. Then, if the result is within the confidence inteval of 95% means that the system is linear.
How can I implement the function described by Billings e Voon in matlab? If I'm not mistaken ,I will need to use a FIR model, is not it?
Can you help me with this?
Thanks

답변 (1개)

Walter Roberson
Walter Roberson 2012년 1월 27일

0 개 추천

If one accepts that there are errors in the measurement of the values, then you cannot prove that the relationship is non-linear: the best you could do would be to calculate an error term.
The multiple occurrences of 0.158 in u (or is it x?): are those intended to represent the exact same location, or are they intended to indicate locations that are certainly different but are the same to within 3 decimal places?

댓글 수: 6

Walter Roberson
Walter Roberson 2012년 1월 27일
If there are no errors in the measurements, then the fact that there are multiple copies of the same x but which have different y, establishes that y is not any deterministic function of x; likewise one can easily establish that x is not any deterministic function of y.
Linear systems are always bijective, but your system is not either "one-to-one" _or_ "onto".
The non-linear relationship of your data becomes quite clear if you
scatter(x,y)
Emanuel
Emanuel 2012년 1월 27일
This is true, but for longer periods of data, the cross- correlation function indicates a significant relationship.
How can I measure how much linearity or nonlinearity have these data ?
Walter Roberson
Walter Roberson 2012년 1월 27일
[ux, ua, ub] = unique(x);
[P,S] = polyfit(x, y, 1);
[Y, delta] = polyval(P, ux, S);
%Y are the mean y at the unique x positions, and delta are one standard deviation for each Y.
%visual representation
plot(ux, Y, 'b', ux, Y + delta, 'g--', ux, Y - delta, 'g--', x, y, 'c*')
or if you have the stats toolbox and just want the visual representation,
[ux, ua, ub] = unique(x);
xlab = cellstr(num2str(ux.'));
boxplot(y, xlab(ub));
Walter Roberson
Walter Roberson 2012년 1월 29일
In the above, if the measurements are considered to be exact, then a non-zero standard deviation for any unique x point establishes that the system is non-linear.
Walter Roberson
Walter Roberson 2012년 1월 29일
Emanual, I have not read that paper, and I have not studied system identification and I have not studied digital filters. I would have to do a fair bit of reading to figure out how to implement an algorithm such as that. I do not have the resources for doing that.
Emanuel
Emanuel 2012년 1월 29일
Walter, I think the CRA algorithm calculates the correlation functions of high order.
Thanks for helping me!

댓글을 달려면 로그인하십시오.

카테고리

도움말 센터File Exchange에서 Linear Model Identification에 대해 자세히 알아보기

질문:

2012년 1월 27일

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by