Main Content

Wavelet network function for nonlinear ARX and Hammerstein-Wiener models

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*) =
[*x*(*t*_{1}),*x*_{2}(*t*),…,*x _{m}*(

$$y(t)={y}_{0}+{({\rm X}(t)-\overline{X})}^{T}PL+W({\rm X}(t))+S({\rm X}(t))$$

Here:

*X*(*t*) is an*m*-by-1 vector of inputs, or*regressors*, with mean $$\overline{{\rm X}}$$.*y*is the output offset, a scalar._{0}*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*d*and scaling functions_{w}*d*is referred to as the_{s}*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.

creates a
`W`

= idWaveletNetwork`idWaveletNetwork`

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`

)

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 in`nlarxOptions`

.If the

`Focus`

option is set to`'prediction'`

, then`idWaveletNetwork`

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'`

, then`idWaveletNetwork`

uses an iterative technique to estimate parameters.To always use either an iterative or a noniterative algorithm, specify the

`IterativeWavenet`

property of`nlarxOptions`

as`'on'`

or`'off'`

, respectively.

In a Hammerstein-Wiener model,

`idWaveletNetwork`

uses iterative minimization to determine the parameters.

[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.

`nlhw`

| `nlarx`

| `idLinear`

| `idPolynomial1D`

| `idTreePartition`

| `idSigmoidNetwork`

| `idSaturation`

| `idPiecewiseLinear`

| `idUnitGain`

| `idDeadZone`

| `idFeedforwardNetwork`

| `idCustomNetwork`

| `idnlhw`

| `idnlarx`

| `evaluate`