# Volterra series

The Volterra series is a model for non-linear behavior similar to the Taylor series. It differs from the Taylor series in its ability to capture 'memory' effects. The Taylor series can be used for approximating the response of a nonlinear system to a given input if the output of this system depends strictly on the input at that particular time. In the Volterra series the output of the nonlinear system depends on the input to the system at all other times. This provides the ability to capture the 'memory' effect of devices like capacitors and inductors.

It has been applied in the fields of medicine (biomedical engineering) and biology, especially neuroscience. It is also used in electrical engineering to model intermodulation distortion in many devices including power amplifiers and frequency mixers. Its main advantage lies in its generality: it can represent a wide range of systems. Thus it is sometimes considered a non-parametric model.

In mathematics, a Volterra series denotes a functional expansion of a dynamic, nonlinear, time-invariant functional. Volterra series are frequently used in system identification. The Volterra series, which is used to prove the Volterra theorem, is an infinite sum of multidimensional convolutional integrals.

## History

The Volterra series is a modernized version of the theory of analytic functionals due to the Italian mathematician Vito Volterra in work dating from 1887.[1] Norbert Wiener became interested in this theory in the 1920s from contact with Volterra's student Paul Lévy. He applied his theory of Brownian motion to the integration of Volterra analytic functionals. The use of Volterra series for system analysis originated from a restricted 1942 wartime report[2] of Wiener, then professor of mathematics at MIT. It used the series to make an approximate analysis of the effect of radar noise in a nonlinear receiver circuit. The report became public after the war.[3] As a general method of analysis of nonlinear systems, Volterra series came into use after about 1957 as the result of a series of reports, at first privately circulated, from MIT and elsewhere.[4] The name Volterra series came into use a few years later.

## Mathematical theory

The theory of Volterra series can be viewed from two different perspectives: either one considers an operator mapping between two real (or complex) function spaces or a functional mapping from a real (or complex) function space into the real (or complex) numbers. The latter, functional perspective is in more frequent use, due to the assumed time-invariance of the system.

### Continuous time

A continuous time-invariant system with x(t) as input and y(t) as output can be expanded in Volterra series as:

$y(t) = h_{0}+\sum_{n=1}^{N}{H_{n}x(t)},$

$H_{n}x(t) = \int_{a}^{b}\cdots\int_{a}^{b} {h_{n}(\tau_{1},.\,.\,,\tau_{n})\prod^{n}_{j=1}{x(t - \tau_{j}) d\tau_{j}}},$

where $a,b \in R \cup\{-\infty,+\infty\}$ and $N \in \{0,1,2,...\}\cup\{+\infty\}$.

The function $h_{n}(\tau_{1},.\,.\,,\tau_{n})$, $h_{0}$ is called the n-th order Volterra kernel. It can be regarded as a higher-order impulse response of the system.

If N is finite, the series is said to be truncated. If a,b, and N are finite, the series is called doubly-finite.

Sometimes the n-th order term is divided by n!, a convention which is convenient when taking the output of one Volterra system as the input of another ('cascading').

The causality condition: Since in any physically realizable system the output can only depend on previous values of the input, the kernels $h_n(t_1, t_2, \ldots, t_n)$ will be zero if any of the variables $t_1, t_2, \ldots, t_n$ are negative. The integrals may then be written over the half range from zero to infinity. So if the operator is causal, $a \geq 0$.

Fréchet's approximation theorem: The use of the Volterra series to represent a time-invariant functional relation is often justified by appealing to a theorem due to Fréchet. This theorem states that a time-invariant functional relation (satisfying certain very general conditions) can be approximated uniformly and to an arbitrary degree of precision by a sufficiently high finite order Volterra series. Among other conditions, the set of admissible input functions $x(t)$ for which the approximation will hold is required to be compact. It is usually taken to be an equicontinuous, uniformly bounded set of functions, which is compact by the Arzelà–Ascoli theorem. In many physical situations, this assumption about the input set is a reasonable one. The theorem, however, gives no indication as to how many terms are needed for a good approximation, which is an essential question in applications.

### Discrete time

$y(n) = h_{0}+\sum_{p=1}^{P}{H_{p}x(n)},$

$H_{p}x(n) = \sum_{\tau_1=a}^{b}\cdots\sum_{\tau_p=a}^{b} {h_{p}(\tau_{1},.\,.\,,\tau_{p})\prod^{p}_{j=1}{x(n - \tau_{j})}},$

where $a,b \in Z\cup\{-\infty,+\infty\}$ and $P \in N\cup\{+\infty\}$.

$h_{p}(\tau_{1},.\,.\,,\tau_{p})$, $h_{0}$ are called Volterra kernels.

If P is finite, the series operator is said truncated.

If a,b and P are finite the series operator is called doubly-finite Volterra series.

If $a \geq 0$ the operator is causal.

We can always consider, without loss of the generality, the kernel $h_{p}(\tau_{1},.\,.\,,\tau_{p})$ as symmetrical. In fact, for the commutativity of the multiplication it is always possible to symmetrize it without changing $H_{p}x(n)$.

So for a causal system with symmetrical kernels we can write $H_{p}x(n) = \sum_{\tau_1=0}^{M}\sum_{\tau_2=\tau_1}^{M}\cdots\sum_{\tau_p=\tau_{p-1}}^{M} {h_{p}(\tau_{1},.\,.\,,\tau_{p})\prod^{p}_{j=1}{x(n - \tau_{j})}} .$

## Methods to estimate the kernel coefficients

Estimating the Volterra coefficients individually is complicated since the basis functionals of the Volterra series are correlated. This leads to the problem of simultaneously solving a set of integral-equations for the coefficients. Hence, estimation of Volterra coefficients is generally performed by estimating the coefficients of an orthogonalized series, e.g. the Wiener series, and then recomputing the coefficients of the original Volterra series. The Volterra series main appeal over the orthogonalized series lies in its intuitive, canonical structure, i.e. all interactions of the input have one fixed degree. The orthogonalized basis functionals will generally be quite complicated.

An important aspect, with respect to which the following methods differ is whether the orthogonalization of the basis functionals is to be performed over the idealized specification of the input signal (e.g. gaussian, white noise) or over the actual realization of the input (i.e. the pseudo-random, bounded, almost-white version of gaussian white noise, or any other stimulus). The latter methods, despite their lack of mathematical elegance, have been shown to be more flexible (as arbitrary inputs can be easily accommodated) and precise (due to the effect that the idealized version of the input signal is not always realizable).

### Crosscorrelation method

This method, developed by Lee & Schetzen, orthogonalizes with respect to the actual mathematical description of the signal, i.e. the projection onto the new basis functionals is based on the knowledge of the moments of the random signal.

To allow identification orthogonalization, Volterra series must be rearranged in terms of orthogonal non-homogeneous G operators (Wiener series):

$y(n) = \sum_{p}{H_p x(n)} \equiv \sum_{p}{G_p x(n)}$

The G operators can be defined by the following

$E\{H_i x(n) G_j x(n)\} = 0;\qquad i < j$

$E\{G_i x(n) G_j x(n)\} = 0;\qquad i\neq j$

whenever $H_i x(n)$ is arbitrary omogeneous Volterra, x(n) is a Stationary white noise with zero mean and variance A.

Recalling that every Volterra functional is orthogonal to all Wiener functional of greater order, and considering the following Volterra functional

$H^*_{\overline{p}}x (n) = \prod^{\overline{p}}_{j=1}{x(n - \tau_{j})}$

we can write

$E\left\{y(n)H^*_{\overline{p}}x (n) \right\} = E\left\{\sum_{p=0}^\infty{G_p x(n)H^*_{\overline{p}}x (n)}\right\}$

If x is SWN, $\tau_1 \neq \tau_2 \neq \ldots \neq \tau_P$ and by letting $A=\sigma^2_x$, we have:

$E\left\{y(n) \prod^{\overline{p}}_{j=1}{x(n - \tau_{j})} \right\} = E\left\{ G_{\overline{p}} x(n)\prod^{\overline{p}}_{j=1}{x(n - \tau_{j})}\right\} = \overline{p}! A^{\overline{p}} k_{\overline{p}} (\tau_1 ,.\,.\, ,\tau_{\overline{p}} )$

So if we exclude the diagonal elements, ${\tau_i\neq \tau_j,\, \forall i,j}$, it is

$k_p (\tau _1 , .\,.\, ,\tau _p ) = \frac{E\left\{ {y(n)x(n-\tau_1)\cdots x(n-\tau_p)} \right\}}{{p!A^p }}.$

If we want to consider the diagonal points, the solution proposed by Lee and Schetzen is:

$k_p (\tau _1 ,.\,.\, ,\tau _p)\!=\!\frac{E\left\{ {\left( {y(n)\!-\!\!\!\sum\limits_{m = 0}^{p - 1} {\!G_m x(n)} }\!\!\right)\! x(n-\tau_1)\cdots x(n-\tau_p)}\right\} }{p!A^p }$

Efficient formulas and references for diagonal kernel point estimation can be found in [5] and .[6]

In the traditional orthogonal algorithm, using inputs with high $\sigma_x$ has the advantage of stimulating high order nonlinearity, so as to achieve more accurate high order kernel identification. As a drawback, the use of high $\sigma_x$ values causes high identification error in lower order kernels, as shown in ,[7] mainly due to nonideality of the input and truncation errors.

On the contrary the use of lower $\sigma_x$ in the identification process can lead to a better estimation of lower order kernel, but can be insufficient to stimulate high order nonlinearity.

This phenomenon, that can be called locality of truncated Volterra series, can be revealed by calculating the output error of a series as a function of different variances of input. This test can be repeated with series identified with different input variances, obtaining different curves, each with a minimun in correspondence of the variance used in the identification.

To overcome this limitation, a low $\sigma_x$ value should be used for the lower order kernel and gradually increased for higher order kernels. This is not a theoretical problem in Wiener kernel identification, since the Wiener functional are orthogonal to each other, but an appropriate normalization is needed in Wiener to Volterra conversion formulas for taking into account the use of different variances. Furthermore new Wiener to Volterra conversion formulas are needed.

The traditional Wiener kernel identification should be changed as follows:[7]

$k_0^{(0)} = E\{y^{(0)}(n)\}$

$k_1^{(1)}(\tau_1) = \frac{1}{A_1}E\left\{y^{(1)}(n)\,x^{(1)}(n-\tau_1)\right\}$

$k_2^{(2)}(\tau_1,\tau_2)=\frac{1}{2!A_2^2}\,\left\{E\left\{y^{(2)}(n)\,\prod_{i=1}^{2}{x^{(2)}(n-\tau_i)}\right\} - A_2k_0^{(2)}\delta_{\tau_1\tau_2}\right\}$

$k_3^{(3)}(\tau_1,\tau_2,\tau_3) = \frac{1}{3!A_3^3}\left\{E\left\{y^{(3)}(n)\,\prod_{i=1}^{3}{x^{(3)}(n-\tau_i)}\right\} - A_3^2\left[k_1^{(3)}(\tau_1)\delta_{\tau_2\tau_3} + k_1^{(3)}(\tau_2)\delta_{\tau_1\tau_3}+k_1^{(3)}(\tau_3)\delta_{\tau_1\tau_2}\right]\right\}$ In the above formulas the impulse functions are introduced for the identification of diagonal kernel points. If the Wiener kernels are extracted with the new formulas, the following Wiener to Volterra formulas (explicited up the fifth order) are needed:

$h_5 =\, k_5^{(5)}$

$h_4 =\, k_4^{(4)}$

$h_3 =\, k_3^{(3)} - 10A_3\sum_{\tau_4} {k_5^{(5)} (\tau_1 ,\tau_2 ,\tau_3 ,\tau_4 ,\tau_4 )}$

$h_2 =\, k_2^{(2)} - 6A_2\sum_{\tau_3}{k_4^{(4)} (\tau_1 ,\tau_2 ,\tau_3 ,\tau_3 )}$

$h_1 =\, k_1^{(1)} - 3A_1\sum_{\tau_2}{k_3^{(3)} (\tau _1 ,\tau _2 ,\tau _2 )} + 15A_1^2 \sum_{\tau2}{\sum_{\tau_3}{k_5^{(5)} (\tau _1 ,\tau _2 ,\tau _2 ,\tau _3 ,\tau _3 )}}$

$h_0 = \, k_0^{(0)} - A_0\sum_{\tau_1}{k_2^{(2)} (\tau _1 ,\tau _1 )} + 3A_0^2 \sum_{\tau_1}{\sum_{\tau_2}{k_4^{(4)} (\tau _1 ,\tau _1 ,\tau _2 ,\tau _2 )} }$

As can be seen, the drawback with respect to the classic formula is that for the identification of the n-order kernel, all lower kernels must be identified again with the higher variance. However an outstanding improvement in the output MSE will be obtained if the Wiener and Volterra kernels are obtained with the new formulas, as can be seen in.[7]

### Exact orthogonal algorithm

This method and its more efficient version (Fast Orthogonal Algorithm) were invented by Korenberg .[8] In this method the orthogonalization is performed empirically over the actual input. It has been shown to perform more precisely than the Crosscorrelation method. Another advantage is that arbitrary inputs can be used for the orthogonalization and that fewer data-points suffice to reach a desired level of accuracy. Also, estimation can be performed incrementally until some criterion is fulfilled.

### Linear regression

Linear regression is a standard tool from linear analysis. Hence, one of its main advantages is the widespread existence of standard tools for solving linear regressions efficiently. It has some educational value, since it highlights the basic property of Volterra series: linear combination of non-linear basis-functionals. For estimation the order of the original should be known, since the volterra basis-functionals are not orthogonal and estimation can thus not be performed incrementally.

### Kernel method

This method was invented by Franz & Schölkopf and is based on statistical learning theory. Consequently, this approach is also based on minimizing the empirical error (often called empirical risk minimization). Franz and Schölkopf proposed that the kernel method could essentially replace the Volterra series representation, although noting that the latter is more intuitive.

### Differential sampling

This method was developed by van Hemmen and coworkers and utilizes Dirac delta functions to sample the Volterra coefficients.

## References

1. ^ Vito Volterra. Theory of Functionals and of Integrals and Integro-Differential Equations. New York: Dover Publications, 1959.
2. ^ Wiener N: Response of a nonlinear device to noise. Radiation Lab MIT 1942, restricted. report V-16, no 129 (112 pp). Declassified Jul 1946, Published as rep. no. PB-1-58087, U.S. Dept. Commerce. URL: http://www.dtic.mil/dtic/tr/fulltext/u2/a800212.pdf
3. ^ Ikehara S: A method of Wiener in a nonlinear circuit. MIT Dec 10 1951, tech. rep. no 217, Res. Lab. Electron.
4. ^ Early MIT reports by Brilliant, Zames, George, Hause, Chesler can be found on dspace.mit.edu.
5. ^ M. Pirani, S. Orcioni, and C. Turchetti, Diagonal kernel point estimation of n-th order discrete Volterra-Wiener systems,EURASIP Journal on Applied Signal Processing, vol. 2004, no. 12, pp. 1807--1816, Sept. 2004.
6. ^ S. Orcioni, M. Pirani, and C. Turchetti, Advances in Lee-Schetzen method for Volterra filter identification,Multidimensional Systems and Signal Processing, vol. 16, no. 3, pp. 265--284, 2005.
7. ^ a b c Simone Orcioni. Improving the approximation ability of Volterra series identified with a cross-correlation method, Nonlinear Dynamics, 2014, DOI: 10.1007/s11071-014-1631-7. URL http://link.springer.com/content/pdf/10.1007%2Fs11071-014-1631-7.pdf
8. ^ Korenberg, M.J., Bruder, S.B., McIlroy, P.J.: Exact orthogonal kernel estimation from finite data records: extending Wiener’s identification of nonlinear systems. Ann. Biomed. Eng.16, 201–214 (1988)