Available Nonlinearity Estimators for Hammerstein-Wiener Models
A Hammerstein-Wiener Model consists of three sequential blocks—a static input nonlinearity block, a dynamic linear block, and a static output nonlinearity block. Each nonlinearity block contains one or more nonlinearity estimators, also known as mapping objects. Each nonlinear estimator object maps a scalar input signals into a scalar output signal, and typically includes a nonlinear function, a linear function, and an offset. For more information about Hammerstein-Wiener model structure, see What Are Hammerstein-Wiener Models?.
The System Identification Toolbox™ software provides a set of nonlinearity estimators for Hammerstein-Wiener models. These nonlinearity estimators are available for both the input and output nonlinearities f and h, respectively. For more information about f and h, see Structure of Hammerstein-Wiener Models. When you estimate Hammerstein-Wiener models in the System Identification app or at the command line, the software creates and configures the nonlinear estimators that you specify. You can also create and configure nonlinear estimators independently at the command line and then specify these customized objects when you perform estimation.
Some nonlinear estimators represent simple nonlinear functions, such as a dead zone or a saturation limit. Others represent more complex nonlinear functions, such as a summed series of nonlinear units in a wavelet or sigmoid network. Another nonlinear estimator draws on a machine learning algorithm. One mapping object contains simply a unit gain, and serves to exclude an input or output nonlinearity from the model structure. The following table lists the available nonlinearity estimator objects. For a detailed description of an estimator object, see the corresponding reference page.
Nonlinearity | Object | Description | Comments |
---|---|---|---|
Piecewise linear | idPiecewiseLinear | A piecewise linear function parameterized by breakpoint locations. | Default |
One layer sigmoid network | idSigmoidNetwork | Sum of dilated and translated sigmoid unit functions. | |
Wavelet network | idWaveletNetwork | Sum of dilated and translated wavelets in a wavelet network. | |
Saturation | idSaturation | Parameterize hard limits on the signal value as upper and lower saturation limits. | Use to model known saturation effects on signal amplitudes. |
Dead zone | idDeadZone | Parameterize dead zones in signals as the duration of zero response. | Use to model known dead zones in signal amplitudes. |
One-dimensional polynomial | idPolynomial1D | Single-variable polynomial of a degree that you specify. | |
Unit gain | idUnitGain | Excludes the input or output nonlinearity from the model structure to achieve a Wiener or Hammerstein configuration, respectively. Note that excluding both the input and output nonlinearities reduces the Hammerstein-Wiener structure to a linear transfer function. | Useful for configuring multi-input, multi-output (MIMO) models to exclude nonlinearities from specific input and output channels. |
Custom network | idCustomNetwork | Similar to sigmoid network but with a user-defined unit function. | User Defined. For advanced use. |
Gaussian process (GP) regression model | idGaussianProcess | Kernel-based zero-mean Gaussian random process regression model. Use for output nonlinearities only. | Useful when measurement data is limited. Requires Statistics and Machine Learning Toolbox™. |
Multilayered neural network | idNeuralNetwork | Neural network that can be a regression neural network (RegressionNeuralNetwork (Statistics and Machine Learning Toolbox)), a deep neural network (dlnetwork (Deep Learning Toolbox)), or a
shallow neural network (network (Deep Learning Toolbox)). | Requires Statistics and Machine Learning Toolbox or Deep Learning Toolbox™. |