idWaveletNetwork
Wavelet network function for nonlinear ARX and Hammerstein-Wiener models
Description
An idWaveletNetwork
object implements a wavelet network
function, and is a nonlinear mapping function for estimating nonlinear ARX and Nonlinear
Hammerstein-Wiener models. The mapping function, which is also referred to as a
nonlinearity, uses a combination of linear weights, an offset and a
nonlinear function to compute its output. The nonlinear function contains wavelet unit
functions that operate on a radial combination of inputs.
Mathematically, idWaveletNetwork
is a function that maps
m inputs X(t) =
[x1(t),x2(t),…,xm(t)]T
to a scalar output y(t) using the following relationship:
Here:
X(t) is an m-by-1 vector of inputs, or regressors.
y0 is the output offset, a scalar.
P is an m-by-p projection matrix, where m is the number of regressors and is p is the number of linear weights. m must be greater than or equal to p.
L is a p-by-1 vector of weights.
W(X) and S(X) together constitute the nonlinear function of the wavelet network. W(X) is a sum of dilated and translated wavelets while S(X) is a sum of dilated and translated scaling functions (also known as scalelets). The total number of wavelet dw and scaling functions ds is referred to as the number of units of the network.
For definitions of the wavelet function term W(X) and the scaling function term S(X), see More About.
Use idWaveletNetwork
as the value of the OutputFcn
property of an idnlarx
model or the
InputNonlinearity
and OutputLinearity
properties
of an idnlhw
object. For example, specify
idWaveletNetwork
when you estimate an idnlarx
model with
the following
command.
sys = nlarx(data,regressors,idWaveletNetwork)
nlarx
estimates the model, it essentially estimates the parameters
of the idWaveletNetwork
function.
You can configure the idWaveletNetwork
function to disable components and
fix parameters. To omit the linear component, set LinearFcn.Use
to
false
. To omit the offset, set Offset.Use
to
false
. To specify known values for the linear function and the offset,
set their Value
attributes directly and set the corresponding
Free
attributes to False
. Use evaluate
to compute the output of the function for a given vector of
inputs.
Creation
Syntax
Description
creates a
W
= idWaveletNetworkidWaveletNetwork
object W
, for which the function
computes the number of units automatically during model estimation.
specifies the number of units W
= idWaveletNetwork(numUnits
)numUnits
. This syntax includes an
option that allows you to interactively assess the relationship between the number of
units and unexplained variance.
specifies whether the function uses a linear function as a subcomponent.W
= idWaveletNetwork(numUnits
,UseLinearFcn
)
specifies whether the function uses an offset term.W
= idWaveletNetwork(numUnits
,UseLinearFcn
,UseOffset
)
Input Arguments
Properties
Examples
More About
Algorithms
You can use idWaveletNetwork
in both nonlinear ARX and Hammerstein-Wiener
models. The algorithms for estimating idWaveletNetwork
parameters depend on
which model you are estimating.
In a nonlinear ARX model,
idWaveletNetwork
uses either a noniterative or an iterative technique for predicting the parameters, depending on option settings innlarxOptions
.If the
Focus
option is set to'prediction'
, thenidWaveletNetwork
uses a fast noniterative technique to estimate parameters [1]. Successive refinements after the first estimation use an iterative algorithm.If the
Focus
option is set to'simulation'
, thenidWaveletNetwork
uses an iterative technique to estimate parameters.To always use either an iterative or a noniterative algorithm, specify the
IterativeWavenet
property ofnlarxOptions
as'on'
or'off'
, respectively.
In a Hammerstein-Wiener model,
idWaveletNetwork
uses iterative minimization to determine the parameters.
References
[1] Qinghua Zhang. “Using Wavelet Network in Nonparametric Estimation.” IEEE Transactions on Neural Networks 8, no. 2 (March 1997): 227–36. https://doi.org/10.1109/72.557660.