# Tensor-Based Approaches for Nonlinear and Multilinear Systems Modeling and Identification
## 5 Tensor-Based Approaches for Nonlinear Systems
### Volterra-PARAFAC Models
The EKF equations are then derived from the Kalman filter associated with the linearized state space equations  
\[h_{m_{1},\cdots,m_{p}}^{(p)}=\prod_{q=1}^{p}a_{m_{q}}^{(p)}\,\ m_{q}=1,\cdots M \tag{16}\]0 \[h_{m_{1},\cdots,m_{p}}^{(p)}=\prod_{q=1}^{p}a_{m_{q}}^{(p)}\,\ m_{q}=1,\cdots M \tag{16}\]1  
where \(n(t)\) is assumed to be a white Gaussian noise, with variance \(\sigma_{n}^{2}\), including both the measurement noise and the modeling error. The innovation process associated with the linearized Equation (26) is equal to  
\[h_{m_{1},\cdots,m_{p}}^{(p)}=\prod_{q=1}^{p}a_{m_{q}}^{(p)}\,\ m_{q}=1,\cdots M \tag{16}\]2 \[h_{m_{1},\cdots,m_{p}}^{(p)}=\prod_{q=1}^{p}a_{m_{q}}^{(p)}\,\ m_{q}=1,\cdots M \tag{16}\]3  
with variance \(s(t)=E[e^{2}(t)]=\mathbf{h}^{T}(t)\mathbf{P}(t|t-1)\mathbf{h}(t)+\sigma_{n}^ {2}\), where \(\mathbf{P}(t|t-1)\) is the covariance matrix of the prediction error \(\boldsymbol{\theta}-\hat{\boldsymbol{\theta}}(t-1)\), and  
\[h_{m_{1},\cdots,m_{p}}^{(p)}=\prod_{q=1}^{p}a_{m_{q}}^{(p)}\,\ m_{q}=1,\cdots M \tag{16}\]4  
The Kalman gain is given by  
\[h_{m_{1},\cdots,m_{p}}^{(p)}=\prod_{q=1}^{p}a_{m_{q}}^{(p)}\,\ m_{q}=1,\cdots M \tag{16}\]5  
and the recursive equation for calculating the parameter vector estimate is  
\[h_{m_{1},\cdots,m_{p}}^{(p)}=\prod_{q=1}^{p}a_{m_{q}}^{(p)}\,\ m_{q}=1,\cdots M \tag{16}\]6  
Finally, the equation for updating the covariance matrix of the one-step prediction error is  
\[h_{m_{1},\cdots,m_{p}}^{(p)}=\prod_{q=1}^{p}a_{m_{q}}^{(p)}\,\ m_{q}=1,\cdots M \tag{16}\]7  
The EKF algorithm is summarized in Algorithm 1. **Example 1**. : _In this example, we consider a memory \(M=5\) third-order Volterra model with rank one second-order and third-order kernels. Each kernel acts on a specific bandwidth, making the nonlinear distortion frequency selective. Precisely:_  
* _First-order kernel_ \(h_{m_{1}}^{(1)}=a_{m_{1}}^{(1)}\)_, with_ \(a_{m_{1}}^{(1)}\) _the_ \(m_{1}\)_th entry of_ \(\textbf{A}_{1}^{(1)}=\left[ \begin{array}{cccc}0.0284&0.2370&0.4692&0.2370&0.0 284\end{array} \right]^{T}\)_, which represents a low pass FIR filter with normalized cut-off frequency_ \(0.2\)_._
* _Second-order kernel_ \(h_{m_{1},m_{2}}^{(2)}=a_{m_{1}}^{(2)}a_{m_{2}}^{(2)}\) _with_ \(a_{m_{l}}\)_,_ \(i=1,2\) _the entries of_ \(\textbf{A}_{1}^{(2)}=\left[ \begin{array}{cccc}-0.0568&0.0708&0.8698&0.0708&- 0.0568\end{array} \right]^{T}\)_, which stands for a bandpass filter with normalized frequencies_ \(0.3\) _and_ \(0.5\)_._
* _Third-order kernel_ \(h_{m_{1},m_{2},m_{3}}^{(2)}=a_{m_{1}}^{(3)}a_{m_{2}}^{(3)}a_{m_{3}}^{(3)}\) _with_ \(a_{m_{l}}\)_,_ \(i=1,2,3\) _the entries of_ \(\textbf{A}_{.1}^{(3)}=\left[ \begin{array}{cccc}0.0302&-0.3463&0.7471&-0.3463&0. 0302\end{array} \right]^{T}\)_, a high-pass filter with normalized frequency_ \(0.9\)_._  
_We first analyze the output reconstruction capability of Volterra-PARAFAC with parameters estimated by an EKF. Then, we evaluate the transient behavior of the algorithm in the noiseless case in comparison with PCWS. Eventually, the steady state results in the noisy case are evaluated. The considered PCWS has three branches, each branch being a Wiener system of order 3 and memory 5. The parameters of PCWS were estimated using an EKF. The simulation results given hereafter were obtained by implementing the algorithms with MATLAB R2018b. The code is provided as Supplementary Material._  
**Output reconstruction:** _We consider the composite signal_ \(u(t)=0.5 sin(0.01\pi t)+0.5 sin(0.9\pi t)\) _as input. Figure 2 depicts output reconstruction obtained with the proposed EKF filter from a noisy signal. One can note a very good reconstruction after convergence of the filter._  
**Transient behavior evaluation in the noiseless case:** \(R=100\) _Monte Carlo runs are considered for this analysis. For each run \(\rho\), the square error \(e_{\rho}(t)=\left(y(t)-\hat{y}_{\rho}(t)\right)^{2}\), with \(\hat{y}_{\rho}(t)\) the reconstructed output at the \(\rho\)-th run, is computed.