Low-Level Nonlinearity Evaluation Using Wavenet (SISO System)
이전 댓글 표시
Hello!
I'm trying to do a low-level nonlinearity evaluation to a NARX model based on wavenet estimator. This manipulation is based on http://www.mathworks.com/help/toolbox/ident/ug/bq5o_xw-1.html#br7139m.
As we see below, only a subset of regressors (in case, [y1(t-2), u1(t-1)]) are input to nonlinear function
M5 = NLARX(estData, [2 2 1], wavenet('Num',5), 'nlr', [2 3],'Focus', 'prediction', 'Display', 'on')
NL = M5.Nonlinearity; NL.Parameters; r = NL.Parameters.RegressorMean; Q=NL.Parameters.NonLinearSubspace; P=NL.Parameters.LinearSubspace; L=NL.Parameters.LinearCoef; as=NL.Parameters.ScalingCoef; aw=NL.Parameters.WaveletCoef; bs=NL.Parameters.ScalingDilation; bw=NL.Parameters.WaveletDilation; cs=NL.Parameters.ScalingTranslation; cw=NL.Parameters.WaveletTranslation; d = NL.Parameters.OutputOffset;
Where am I wrong?
x = [estData.y(1),0,estData.u(1),0]; %regressor(y(t-1) y(t-2) u(t-1) u(t-2)) values that are input in the linear function at t=1.
xnln = [0,0,estData.u(1),0]; %regressor(y(t-2) u(t-1)) values that are input in the nonlinear function at t=1.
% Compute the linear portion of the response (plus offset):
yLinear = (x-r)*P*L+d;
% Compute the nonlinear portion of the response:
f = @(z)(exp(-0.5*z'*z));%scale function (father wavelet)
yNonlinear1 = 0;
for k = 1:length(cs)
finputS = (bs*(xnln-r))*Q - cs(k);
yNonlinear1 = yNonlinear1 + as*f(finputS);
end
g = @(zz)((length(zz)-zz'*zz))*(exp(-0.5*zz'*zz));%wavelet function ("Mexican hat" mother wavelet)
yNonlinear2 = 0;
for k = 1:length(aw)
finputW = (bw(k,:)*(xnln-r))*Q - cw(k);
yNonlinear2 = yNonlinear2 +aw(k)*g(finputW);
end
% Total response y = F(x) = yLinear + yNonlinear1 + yNonlinear2
y = yNonlinear1 + yNonlinear2 + yLinear
In this case, i got the following response: y =
0.1126 0.1127
0.1127 0.1128
I would have to obtain a real number, is not it? the results obtained from the above steps must be equal to evaluate(NL,x)
Thanks
채택된 답변
추가 답변 (0개)
카테고리
도움말 센터 및 File Exchange에서 Modeling and Prediction with NARX and Time-Delay Networks에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!