Fast Volterra Filtering
Implementation of the algorithm proposed in the paper:
Morhac, M., 1991 - A Fast Algorithm of Nonlinear Volterra Filtering
Basically, the output of each n-homogeneous subsystem is decomposed into a summation of convolutions. Each of these convolutions is performed in the frequency domain, which improves the efficiency of the computation.
The Volterra model must be provided to the algorithm as a structure containing the kernels in the triangular form, i.e., such that
h(t1,...,tn) ~= 0 only if t1<=t2<=...<=tn
A example is given below:
% Building the model
kernels = {k1 k2 k3 ... kP};
% Defining the memory extension of
% each kernel (in samples)
memories = [N1 N2 N3 ... NP];
% Given an input u, the output
% is computed with
y = fastVMcell(u, kernels, memories);
% y is a P x M vector where the p-th
% row is the output of the
% p-th homogeneous nonlinear system,
% i.e., the multidimensional convolution
% of the input with the kernel kp.
% To get the overall output of the
% Volterra filter, use
yP = sum(y,1);
Note: The code provided *does not* compute Volterra kernels for a model. It only computes the output of a Volterra filter, given its kernels and the input.
Cite As
José Goulart (2024). Fast Volterra Filtering (https://www.mathworks.com/matlabcentral/fileexchange/32248-fast-volterra-filtering), MATLAB Central File Exchange. Retrieved .
MATLAB Release Compatibility
Platform Compatibility
Windows macOS LinuxCategories
Tags
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Discover Live Editor
Create scripts with code, output, and formatted text in a single executable document.
Version | Published | Release Notes | |
---|---|---|---|
1.7.0.0 | Fixed the description to match the current version. |
||
1.6.0.0 | Function updated to a version that uses a cell containing the kernels as the argument representing the model. |
||
1.5.0.0 | Fixed error pointed out by Goryn. |
||
1.2.0.0 | Corrected the submission. |
||
1.1.0.0 | Included an example of use in the description. |
||
1.0.0.0 |