 Research
 Open Access
 Published:
A reducedrank approach for implementing higherorder Volterra filters
EURASIP Journal on Advances in Signal Processingvolume 2016, Article number: 118 (2016)
Abstract
The use of Volterra filters in practical applications is often limited by their high computational burden. To cope with this problem, many strategies for implementing Volterra filters with reduced complexity have been proposed in the open literature. Some of these strategies are based on reducedrank approaches obtained by defining a matrix of filter coefficients and applying the singular value decomposition to such a matrix. Then, discarding the smaller singular values, effective reducedcomplexity Volterra implementations can be obtained. The application of this type of approach to higherorder Volterra filters (considering orders greater than 2) is however not straightforward, which is especially due to some difficulties encountered in the definition of higherorder coefficient matrices. In this context, the present paper is devoted to the development of a novel reducedrank approach for implementing higherorder Volterra filters. Such an approach is based on a new form of Volterra kernel implementation that allows decomposing higherorder kernels into structures composed only of secondorder kernels. Then, applying the singular value decomposition to the coefficient matrices of these secondorder kernels, effective implementations for higherorder Volterra filters can be obtained. Simulation results are presented aiming to assess the effectiveness of the proposed approach.
Introduction
The first challenge in filtering applications involving nonlinear systems is to choose an adequate model of the nonlinear filter [1]. To meet this challenge, one important filter characteristic that needs to be considered is the tradeoff between implementation complexity and approximation capability. The wellknown Volterra filter [1] represents one extreme of this tradeoff, since its universal approximation capability [2–4] comes at the cost of a high computational complexity (which is due to the large number of coefficients required for the implementation) [1, 5–9]. In this context, one topic that has drawn attention from researchers in the last decades is the development of Volterra implementations having an enhanced tradeoff between computational complexity and approximation capability.
Several different approaches have been proposed in the open literature aiming to obtain reducedcomplexity implementations of Volterra filters. Some of these approaches are based on sparse Volterra implementations that are obtained by zeroing the less significant filter coefficients [9]. Examples of these implementations are the Volterra delay filter [10], the power filter [11], and general diagonallypruned implementations [12–14]. Other approaches combine interpolation and sparse implementations for the sake of performance [15–17]. Frequencydomain approaches also have been used for obtaining effective reducedcomplexity Volterra implementations [18, 19]. All aforementioned approaches are, in some sense, based on the use of predefined forms of basis vectors for identifying and discarding the less significant coefficients of a Volterra filter. In contrast, the approaches from [20–25] involve the identification of particular basis vectors that can then be exploited aiming to reduce the complexity of a Volterra filter. These approaches are typically based on the definition of coefficient matrices, which are decomposed aiming to obtain the basis vectors. The singular value decomposition is often used for carrying out such a matrix decomposition and, as a result, the obtained basis vectors are singular vectors of the coefficient matrix considered. Thus, discarding the singular vectors related to the smaller singular values, effective reducedcomplexity reducedrank Volterra implementations are obtained.
The first reducedrank approaches used for implementing Volterra filters are focused on secondorder Volterra kernels [20–22]. This is due to the fact that the secondorder Volterra coefficients have two indices, which makes the definition of a secondorder coefficient matrix a straightforward task. For higherorder filters, matrixbased reducedrank approaches are usually obtained by considering nontrivial definitions of (often rectangular) coefficient matrices [24], which occasionally lead to ineffective reducedrank implementations. In this context, the present paper is focused on the development of a novel reducedrank approach for implementing higherorder Volterra filters. This approach is based on a new form of Volterra kernel implementation that allows converting a higherorder Volterra kernel into a structure composed of secondorder kernels. Then, applying secondorder reducedrank implementation strategies to such a structure, effective reducedrank implementations for higherorder Volterra filters can be achieved.
The remainder of this paper is organized as described in the following. Section 2 revisits the Volterra filters, discussing the redundancyremoved and matrixform representations of kernel inputoutput relationships. Also, in Section 2, the reducedrank implementations of Volterra filters are briefly described. Section 3 is dedicated to the contributions of this paper, comprising a new form of kernel implementation and the description of the proposed approach for implementing reducedrank Volterra filters. Finally, Sections 4 and 5 are dedicated to present the experimental results and the concluding remarks, respectively.
The mathematical notation considered in this paper is based on the standard practice of using lowercase boldface letters for vectors, uppercase boldface letters for matrices, and both italic Roman and Greek letters for scalar quantities. Moreover, superscript T stands for transpose, ⊗ represents the Kronecker product, and ·_{2} denotes a quadratic norm. Additionally, underbars specify variables related to the redundancyremoved Volterra representation and overbars indicate variables related to the proposed approach.
Volterra filters and reducedrank implementations
A truncated Pthorder Volterra filter is composed of P kernels, each corresponding to a certain order of polynomial nonlinearity [1]. The output y(n) of such a filter is obtained from
with y _{ p }(n) representing the output of the pthorder kernel. In its standard form, the inputoutput relationship of the pthorder kernel is given by
with x(n) denoting the input signal and \(h_{p(m_{1},m_{2},\dots,m_{p})}\), the pthorder coefficients. In this work, the standard kernels are assumed to be symmetric, which means that \(h_{p(m_{1},m_{2},\dots,m_{p})} = h_{p(m_{2},m_{1},\dots,m_{p})} = \cdots = h_{p(m_{p},m_{p1},\dots,m_{1})}\) (i.e., all pthorder coefficients with permutated indices have identical values). This assumption is used without loss of generality, since any standard Volterra kernel can be represented in symmetric form [1, 25].
The firstorder kernel of the Volterra filter is a linear kernel whose inputoutput relationship
is that of a standard finite impulse response (FIR) filter with N coefficients. Thus, (3) can be rewritten in a vector form as
with
and
The other kernels (with p≥2) are nonlinear kernels whose outputs depend on cross products of samples of the input signal. As described in [1], the inputoutput relationships of the nonlinear kernels can also be expressed in vector form. Thus, for the pthorder kernel, one has
where h _{ p } is the pthorder coefficient vector (composed of coefficients \(h_{p(m_{1},m_{2},\dots,m_{p})}\) with m _{1},…,m _{ p } ranging from 0 to N−1) and x _{ p }(n)=x _{1}(n)⊗x _{ p−1}(n) is the pthorder input vector.
Note, from (2) and (7), that the standard pthorder Volterra kernel has one coefficient for each pthorder cross product of input samples, resulting in a number of coefficients given by
This number increases exponentially with both the memory size and the order of the kernel. As a consequence, the computational cost for implementing a Volterra filter may become prohibitive even in applications involving kernels with relatively small memory size.
Redundancyremoved implementation
The large number of coefficients required to implement Volterra filters can be reduced by exploiting the redundancy of part of the coefficients of the standard nonlinear kernels [1, 15]. Such redundancy arises from the fact that coefficients with permutated indices (e.g., h _{2(0,1)} and h _{2(1,0)}) are multiplied by the same cross product of the input signal (e.g., x(n)x(n−1) in the case of h _{2(0,1)} and h _{2(1,0)}) when the kernel output is evaluated. Thus, merging redundant coefficients into a single coefficient, the inputoutput relationship of the pthorder kernel, given by (2), can be rewritten as
with \(\underline {h}_{p(m_{1},m_{2},\dots,m_{p})}\) denoting the pthorder coefficients of the redundancyremoved kernel. Such representation of the kernel inputoutput relationship, known as triangular [1] or even redundancyremoved [15] representation, results in a number of coefficients given by
Moreover, it is important to highlight that the reduction in the number of coefficients from (8) to (10) obtained by using the redundancyremoved implementation comes without loss of generality (i.e., a given kernel can be equivalently implemented by using either the standard or the redundancyremoved implementation).
As in the case of the standard Volterra kernels, the inputoutput relationship of the redundancyremoved ones can also be represented in vector form. Thereby, we have [9]
where \(\underline {\mathbf {h}}_{p}\) is the pthorder redundancyremoved coefficient vector, which is composed of coefficients \(\underline {h}_{p(m_{1},m_{2},\dots,m_{p})}\), and \(\underline {\mathbf {x}}_{p}(n) = \mathbf {L}_{p} [\mathbf {x}_{p1}(n) \otimes \mathbf {x}_{1}(n)] \) is the pthorder redundancyremoved input vector with L _{ p } denoting the pthorder elimination matrix [9]. For instance, considering the secondorder kernel, (9) results in
whereas (11) results in
with
and
Matrixform kernel representation
The inputoutput relationship of nonlinear Volterra kernels can also be formulated as a function of coefficient matrices instead of coefficient vectors. This type of representation is especially suited for the development of reducedrank implementations, as will be shown in the next section. For the standard secondorder kernel, a matrixform representation can be obtained by considering m _{1} and m _{2} as coordinates of a Cartesian space to define the following secondorder coefficient matrix:
Then, from (16), the inputoutput relationship of the secondorder kernel can be written as
In the case of the redundancyremoved secondorder kernel, the following coefficient matrix can be defined:
Now, considering (18), (13) can be rewritten as
The approach presented in [24] generalizes the matrixform representations from (16) to (19) for higherorder kernels. Such an approach is based on defining an \({\underline {N}_{p_{1}} \times \underline {N}_{p_{2}}}\) pthorder coefficient matrix \(\hat {\mathbf {H}}_{p,p_{1},p_{2}}\) with p=p _{1}+p _{2}. This matrix contains the \(\underline {N}_{p}\) coefficients of the pthorder redundancyremoved kernel arranged in such a way that the kernel output can be written as
where \(\underline {\mathbf {x}}_{p_{1}}(n)\) and \(\underline {\mathbf {x}}_{p_{2}}(n)\) are the redundancyremoved input vectors with orders p _{1} and p _{2}, respectively. It is important to mention that the number of coefficients \(\underline {N}_{p}\) of the pthorder kernel is smaller than the number of entries (\(\underline {N}_{p_{1}} \times \underline {N}_{p_{2}}\)) of \(\hat {\mathbf {H}}_{p,p_{1},p_{2}}\). As a result, several elements of \(\hat {\mathbf {H}}_{p,p_{1},p_{2}}\) are in fact equal to zero [24].
Reducedrank implementations
As described in [20–22, 24], approaches based on lowrank approximations can be used for obtaining effective reducedcomplexity Volterra implementations. Most of these approaches are based on using the singular value decomposition along with matrixform representations of Volterra kernels. For instance, the approach used for implementing secondorder kernels described in [22] is based on the application of the singular value decomposition to the standard secondorder coefficient matrix H _{2} given by (16). Since this matrix is symmetric, its left singular vectors are equal to its right singular vectors and, as a result, one obtains
where λ _{ k } and \(\tilde {\mathbf {h}}_{2,k}\) are, respectively, the kth singular value and the kth singular vector of H _{2}. Now, substituting (21) into (17), one gets
Note that \(\mathbf {x}_{1}^{\mathrm {T}}(n) \tilde {\mathbf {h}}_{2,k}\) corresponds to the inputoutput relationship of an FIR filter with coefficient vector given by \(\tilde {\mathbf {h}}_{2,k}\). Thus, (22) is in fact the inputoutput relationship of the structure shown in Fig. 1, which is a parallel structure of N FIR filters with their squared outputs multiplied by the singular values of H _{2}. Moreover, since the singular vectors \(\tilde {\mathbf {h}}_{2,k}\) (with k=0,…,N−1) are unit vectors, the branches of the structure from Fig. 1 involving small values of λ _{ k } can be disregarded, resulting in a reduction of computational complexity with low impact on the implementation precision.
The implementation depicted in Fig. 1 is based on the standard matrixform representation of the inputoutput relationship of the secondorder kernel. The redundancyremoved matrixform representation given by (19) can also be used for obtaining a reducedrank implementation. In this case, since the left and right singular vectors are not the same (due to the fact that \(\underline {\mathbf {H}}_{2}\) is not symmetric), the resulting inputoutput relationship is
with \(\tilde {\mathbf {h}}_{2\mathrm {l},k}\) representing the kth left singular vector of H _{2} and \(\tilde {\mathbf {h}}_{2\mathrm {r},k}\) denoting the kth right singular vector. By comparing (22) and (23), one can notice that the latter (which is based on the redundancyremoved implementation) results in a structure with higher computational cost than the structure resulting from the former (based on the standard representation). Thus, one verifies that the standard representation is in fact more advantageous than the less costly redundancyremoved one for obtaining this type of reducedrank implementations of secondorder kernels.
In the case of higherorder kernels (with p≥3), one appealing approach for obtaining reducedrank implementations is the one used in [24] to obtain the socalled parallelcascade Volterra structures. Such an approach is based on the application of the singular value decomposition to the coefficient matrix of the general matrixform kernel representation given by (20). For instance, considering the case of a thirdorder kernel, (20) becomes
with \(\underline {\mathbf {x}}_{1}(n) = \mathbf {x}_{1}(n)\). By applying the singular value decomposition to \(\hat {\mathbf {H}}_{3,1,2}\), one obtains
where σ _{ k } is the kth singular value of \(\hat {\mathbf {H}}_{3,1,2}, \hat {\mathbf {h}}_{3,1,k}\) is the kth left singular vector, and \(\hat {\mathbf {h}}_{3,2,k}\) is the kth right singular vector. Then, substituting (25) into (24) and manipulating the resulting expression, one gets
From (4), one can notice that \(\hat {\mathbf {h}}_{3,1,k}^{\mathrm {T}} \underline {\mathbf {x}}_{1}(n)\) corresponds to the filtering of the input signal by a firstorder kernel (FIR filter) with coefficient vector \(\hat {\mathbf {h}}_{3,1,k}\). Similarly, considering (13), one notices that \(\hat {\mathbf {h}}_{3,2,k}^{\mathrm {T}} \underline {\mathbf {x}}_{2}(n)\) corresponds to the filtering of the input signal by a secondorder kernel with coefficient vector \(\hat {\mathbf {h}}_{3,2,k}\). Thus, (26) in fact corresponds to the structure depicted in Fig. 2, which is composed of a set of N branches, with the output of the kth branch given by the product of the outputs of two kernels (a firstorder kernel and a secondorder one), weighted by the kth singular value σ _{ k } of \(\hat {\mathbf {H}}_{3,1,2}\). As in the case of the structure of Fig. 1, reducedcomplexity reducedrank Volterra implementations can be obtained from the parallelcascade structure of Fig. 2, removing the branches related to the smallest singular values of \(\hat {\mathbf {H}}_{3,1,2}\). In addition, as mentioned in [24], the secondorder blocks of the structure of Fig. 2 can be further decomposed by using reducedrank approaches, which allows a more detailed singularvaluedependent kernel pruning. However, this pruning is not a straightforward task due to the hierarchical nature of the resulting structure (i.e., it involves reducedrank decompositions with different levels of importance).
Novel reducedrank approach for implementing Volterra filters
This section is devoted to the development of a novel reducedrank approach for implementing Volterra filters. To this end, a new strategy for implementing higherorder kernels using a parallel structure composed of lowerorder kernels is first discussed. Then, such a strategy is exploited along with the singular value decomposition to obtain the proposed reducedrank implementation approach.
Kernel implementation redesigned
In this section, the aim is to develop a new form of Volterra kernel implementation that allows factorizing higherorder kernels in terms of lowerorder ones. For the secondorder kernel, such a type of implementation is obtained by rewriting the secondorder redundancyremoved inputoutput relationship as
The rightmost summation term in (27) corresponds to the inputoutput relationship of a firstorder kernel (an FIR filter) with memory size N−m _{1}, coefficient vector
and input vector
Thus, (27) can be rewritten as
Note that, in (30), the output of the secondorder kernel is evaluated by summing the outputs of N firstorder kernels multiplied by delayed samples of the input signal. Therefore, (30) can be seen as a decomposition of the secondorder kernel into a parallel structure composed of firstorder kernels.
In the case of the thirdorder kernel, the redundancyremoved inputoutput relationship can be written as
Now, considering (12), one can notice that the double summation in (31) corresponds to the output of a secondorder kernel with coefficient vector
and input vector
Consequently, from (13), (31) can be rewritten as
which corresponds to the decomposition of the thirdorder kernel into a structure composed of secondorder kernels.
Similarly to (30) and (34), for the pthorder kernel, the following inputoutput relationship can be obtained:
where the product \(\bar {\mathbf {h}}_{p,m_{1}}^{\mathrm {T}} \bar {\mathbf {x}}_{p,m_{1}}(n)\) corresponds to the inputoutput relationship of a (p−1)thorder kernel with memory size N−m _{1}. Thus, from (35), we can infer that any pthorder kernel can be decomposed into N kernels with order p−1, as illustrated in Fig. 3.
Proposed approach
Aiming to develop the proposed reducedrank approach for implementing Volterra filters, we first consider that the kernel implementation strategy introduced in Section 3.1 can be used to decompose any higherorder kernel (with p≥3) into a parallel structure composed exclusively of secondorder kernels. This decomposition is straightforward for the thirdorder kernel, since, by using p=3 in (35), one obtains a structure composed of N secondorder kernels, as described by (31)–(34). In the case of the fourthorder kernel, (35) can be used first for obtaining a structure composed of N thirdorder kernels and then for decomposing each of these thirdorder kernels into secondorder kernels. As a result, a structure composed of N ^{2} secondorder kernels is obtained for the implementation of the fourthorder kernel. Following this rationale, one can notice that, by using (35) to carry out successive kernel decompositions, an implementation composed of N ^{(p−2)} secondorder kernels can always be obtained for a pthorder kernel.
Now, the idea behind the proposed reducedrank approach for implementing Volterra filters is to exploit the fact that any pthorder kernel can be decomposed into a parallel structure of secondorder kernels as previously described. Taking into account this fact, a reducedrank implementation for the pthorder kernel can be obtained by applying, to each secondorder kernel resulting from the kernel decomposition, the strategy used for obtaining the reducedrank implementation of Fig. 1 (see Section 2.3). Thus, one obtains a structure composed of N ^{(p−2)} blocks, each having the form of the structure of Fig. 1. Then, disregarding the branches of these blocks related to the smaller singular values, a reducedcomplexity reducedrank kernel implementation is obtained. In this context, the proposed approach can be summarized as follows:

i)
Exploit the strategy described in Section 3.1 (see Fig. 3) to obtain an implementation of the pthorder kernel of interest in the form of a parallel structure composed of secondorder kernels.

ii)
Use the standard matrixform representation (see Section 2.2) to represent all secondorder kernels that compose the kernel of interest.

iii)
Obtain reducedrank implementations of such secondorder kernels by using the singular value decomposition as described in Section 2.3.

iv)
Remove (prune) the branches of the resulting structure related to the smaller singular values of the involved secondorder coefficient matrices.
The proposed reducedrank approach for implementing Volterra filters consists of the application of these four steps to all kernels, which allows obtaining effective reducedcomplexity Volterra filter implementations.
Simulation results
This section aims to assess the effectiveness of the proposed reducedrank approach for obtaining reducedcomplexity implementations of Volterra filters. To this end, the proposed approach is compared with the parallelcascade (PC) one from [24] in the context of the implementation of thirdorder and forthorder kernels whose coefficients are known in advance. The effectiveness of these approaches is assessed in terms of normalized misalignment [26], which is defined as
with \(\underline {\mathbf {h}}_{\mathrm {k}}\) denoting the coefficient vector of the kernel to be implemented, and \(\underline {\mathbf {h}}_{\text {rr}}\), the coefficient vector obtained by using the reducedrank approach. A hierarchical branchlevel pruning is applied to the parallel structures obtained by using the approaches considered, which means that one branch is removed at a time, with the branches related to the smallest singular values removed first. After the removal of each branch, both the normalized misalignment and the number of required arithmetic operations are evaluated, resulting in the curves used here for comparing the different approaches. Markers are presented along these curves, indicating each evaluated pair of normalized misalignment and number of operations per sample.
Example 1: modeling of a thirdorder kernel
The thirdorder kernel considered in this example is obtained from a system modeling experiment in which a diode limiter circuit used in guitar distortion pedals [27, 28] is modeled using an LMSadapted Volterra filter (with memory size N _{a}=10, sampling rate of f _{s}=44.1 kHz, and white input signal). The PC and the proposed reducedrank approaches are used here for implementing the thirdorder kernel of the Volterra model obtained in such an experiment. As a result, the curves of normalized misalignment as a function of the number of operations per sample shown in Fig. 4 are obtained. A vertical dotted line pointing out the number of operations per sample required by the corresponding redundancyremoved Volterra implementation (around 495 operations) is also included in this figure aiming to establish a limit after which it is no longer interesting to use reducedrank implementations. One can notice from Fig. 4 that the proposed approach outperforms the PC one for the case considered here; since, a smaller normalized misalignment is obtained for any given number of operations per sample. For instance, if a misalignment below −15 dB is desired, a PCbased implementation would require at least 280 operations per sample (i.e., a reduction of about 43% with respect to the number of coefficients of the redundancyremoved Volterra kernel), whereas an implementation based on the proposed approach would require only 139 operations per sample (a reduction of almost 72%).
Example 2: modeling of a fourthorder kernel
The kernel considered in this example is similar to the fourthorder satellitesystem model used in [24]. Such a model is obtained by using a cascade of a Butterworth lowpass filter with a memoryless fourthpower nonlinearity and a Chebyshev lowpass filter. For the sake of simplicity, we consider a version of this model in which the Butterworth and Chebyshev IIR filters are replaced by FIR versions obtained by truncating their impulse responses to 30 samples. Then, a fourthorder kernel with memory size 59 is obtained, which is again truncated to memory size 30. As a result, this kernel has a total of \(\underline {N}_{4}=40,920\) coefficients in its redundancyremoved representation, requiring around 86,800 operations per sample for its implementation. It is important to mention that this kernel admits a symmetric representation for its coefficient matrix \(\hat {\mathbf {H}}_{4,2,2}\). Consequently, the branches of PCbased structures will be composed of a single secondorder kernel with its squared output multiplied by one of the singular values of \(\hat {\mathbf {H}}_{4,2,2}\). The results obtained for this example are shown in Fig. 5. For a better visualization (due to the high density of the obtained points), we have used one marker for each 30 points in the curve of the proposed approach. From such results, one notices that the reducedrank approaches are capable of modeling the considered fourthorder kernel with very good accuracy. For instance, −60 dB of misalignment is obtained through the proposed approach with around 12,520 operations per sample, which corresponds to almost 86% of complexity reduction. Moreover, Fig. 5 also shows that the proposed approach outperforms the PC approach in terms of tradeoff between performance and complexity either for the range of computational cost from 0 to almost 27,000 operations per sample or for the range of misalignment from 0 to about −120 dB.
Conclusions
In this paper, a novel reducedrank approach for implementing higherorder Volterra filters was introduced. Such an approach is based on a new form of kernel implementation that allows converting any higherorder kernel into a structure composed exclusively of secondorder kernels. Then, exploiting the singular value decomposition along with the coefficient matrices of these secondorder kernels, a reducedrank implementation for the higherorder Volterra filter can be achieved. Numerical simulation results were shown, confirming the effectiveness of the proposed approach in obtaining reducedcomplexity implementations of Volterra filters.
References
 1
VJ Mathews, GL Sicuranza, Polynomial Signal Processing (John Wiley & Sons, Inc., New York, 2000).
 2
S Boyd, LO Chua, Fading memory and the problem of approximating nonlinear operators with Volterra series. IEEE Trans. Circ. Syst. CAS32(11), 1150–1161 (1985).
 3
IW Sandberg, R+ fading memory and extensions of inputoutput maps. IEEE Trans. Circ. Syst. I, Reg. Papers. 49(11), 1586–1591 (2002).
 4
S Orcini, Improving the approximation ability of Volterra series identified with a crosscorrelation method. Nonlinear Dyn. 78(4), 2861–2869 (2014).
 5
A Carini, GL Sicuranza, in IEEE Int. Conf. Acoust. Speech Signal Process. Even mirror Fourier nonlinear filters (IEEEVancouver, 2013), pp. 5608–5612.
 6
A Carini, GL Sicuranza, Fourier nonlinear filters. Signal Process. 94:, 183–194 (2014).
 7
A Carini, S Cecchi, L Romoli, GL Sicuranza, Legendre nonlinear filters. Signal Process. 109:, 84–94 (2015).
 8
A Carini, GL Sicuranza, A study about Chebyshev nonlinear filters. Signal Process. 122:, 24–32 (2016).
 9
ELO Batista, R Seara, On the performance of adaptive pruned Volterra filters. Signal Process. 93(7), 1909–1920 (2013).
 10
L Tan, J Jiang, An adaptive technique for modeling secondorder Volterra systems with sparse kernels. IEEE Trans. Circ. Syst. II: Analog Digit. Sig. Proc. 45(12), 1610–1615 (1998).
 11
F Kuech, W Kellermann, Orthogonalized power filters for nonlinear acoustic echo cancellation. Signal Process. 86(6), 1168–1181 (2006).
 12
A Fermo, A Carini, GL Sicuranza, Lowcomplexity nonlinear adaptive filters for acoustic echo cancellation in GSM handset receivers. Eur. Trans. Telecommun. 14(2), 161–169 (2003).
 13
M Zeller, W Kellermann, in Proc. Int. Work. Acoustic Echo and Noise Control (IWAENC). Coefficient pruning for higherorder diagonals of Volterra filters representing WienerHammerstein models (Seattle, 2008).
 14
M Zeller, LA AzpicuetaRuiz, J ArenasGarcia, W Kellermann, Adaptive Volterra filters with evolutionary quadratic kernels using a combination scheme for memory control. IEEE Trans. Signal Process. 59(4), 1449–1464 (2011).
 15
ELO Batista, OJ Tobias, R Seara, A sparseinterpolated scheme for implementing adaptive Volterra filters. IEEE Trans. Signal Process. 58(4), 2022–2035 (2010).
 16
ELO Batista, R Seara, in Proc. 19th Eur. Signal Process. Conf. Adaptive NLMS diagonallyinterpolated Volterra filters for network echo cancellation (IEEE/EURASIPBarcelona, 2011), pp. 1430–1434.
 17
ELO Batista, R Seara, A fully LMS/NLMS adaptive scheme applied to sparseinterpolated Volterra filters with removed boundary effect. Signal Process. 92(10), 2381–2393 (2012).
 18
MJ Reed, MOJ Hawksford, Efficient implementation of the Volterra filter. IEE Proc.Vis. Image Signal Process. 147(2), 109–114 (2000).
 19
F Kuech, W Kellerman, Partitioned block frequencydomain adaptive secondorder Volterra filter. IEEE Trans. Signal Process. 53(2), 564–575 (2005).
 20
HH Chiang, CL Nikias, AN Venetsanopoulos, Efficient implementations of quadratic digital filters. Trans. Acoust., Speech, Signal Process. 34(6), 1511–1528 (1986).
 21
Y Lou, CL Nikias, AN Venetsanopoulos, Efficient VLSI array processing structures for adaptive quadratic digital filters. Circuits, Syst. Signal Process. 7(2), 253–273 (1988).
 22
S Marsi, GL Sicuranza, in Conf. Rec. 27th Asilomar Conf. Signals, Syst. Comput, vol. 2. On reducedcomplexity approximations of quadratic filters (IEEEPacific Grove, 1993), pp. 1026–1030.
 23
RD Nowak, BD Van Veen, Tensor product basis approximations for Volterra filters. IEEE Trans. Signal Process. 44(1), 36–50 (1996).
 24
TM Panicker, VJ Mathews, GL Sicuranza, Adaptive parallelcascade truncated Volterra filters. IEEE Trans. Signal Process. 46(10), 2664–2673 (1998).
 25
G Favier, AY Kibangou, T Bouilloc, Nonlinear system modeling and identification using VolterraPARAFAC models. Int. J. Adapt. Control Signal Process. 26(1), 30–53 (2012).
 26
J Benesty, C Paleologu, S Ciochina, Sparse Adaptive Filters for Echo Cancellation (Morgan and Claypool Publishers, San Rafael, CA, 2010).
 27
DT Yeh, JS Abel, JO Smith, in Proc. 10th Conf. on Digital Audio Effects (DAFx07). Simulation of the diode limiter in guitar distortion circuits by numerical solution of ordinary differential equations (Bordeaux, France, 2007).
 28
GCK da Silva, Contribuições para Implementação Digital de um Pedal de Efeito de Áudio do Tipo Overdrive (in Portuguese). Master’s thesis, Federal University of Santa Catarina, Florianópolis, Brazil, 2016.
Acknowledgements
The authors are thankful to Gabriel Celso Kulevicz da Silva for providing the experimental data used in Example 1 of Section 4. Thanks are also due to the editors and the anonymous reviewers for their valuable and constructive comments and suggestions, from which the revision of this paper has benefited significantly.
Competing interests
The authors declare that they have no competing interests.
Author information
Rights and permissions
Open Access This article is distributed under the terms of the Creative Commons Attribution 4.0 International License (http://creativecommons.org/licenses/by/4.0/), which permits unrestricted use, distribution, and reproduction in any medium, provided you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons license, and indicate if changes were made.
About this article
Received
Accepted
Published
DOI
Keywords
 Nonlinear filtering
 Reducedrank implementation
 Volterra filter