Main Content

Wavelet network function for nonlinear ARX and Hammerstein-Wiener models

A `wavenet`

object implements a wavelet network function, and is a
nonlinear mapping function for estimating nonlinear ARX and Nonlinear Hammerstein-Weiner
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, a *wavenet* network 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 `wavenet`

as the value of the `OutputFcn`

property
of an `idnlarx`

model or the
`InputNonlinearity`

and `OutputLinearity`

properties
of an `idnlhw`

object. For example, specify
`wavenet`

when you estimate an `idnlarx`

model with the
following
command.

sys = nlarx(data,regressors,wavenet)

`nlarx`

estimates the model, it essentially estimates the parameters
of the `wavenet`

function.
You can configure the `wavenet`

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`

= wavenet`wavenet`

object `W`

, for which the function computes
the number of units automatically during model estimation.

specifies the number of units `W`

= wavenet(`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`

= wavenet(`numUnits`

,`UseLinearFcn`

)

specifies whether the function uses an offset term.`W`

= wavenet(`numUnits`

,`UseLinearFcn`

,`UseOffset`

)

You can use `wavenet`

in both nonlinear ARX and Hammerstein-Wiener models.
The algorithms for estimating `wavenet`

parameters depend on which model you
are estimating.

In a nonlinear ARX model,

`wavenet`

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

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

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,

`wavenet`

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.

`customnet`

| `deadzone`

| `evaluate`

| `idnlarx`

| `idnlhw`

| `linear`

| `neuralnet`

| `nlarx`

| `nlhw`

| `poly1d`

| `pwlinear`

| `saturation`

| `sigmoidnet`

| `treepartition`

| `unitgain`