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.
引用格式
José Goulart (2024). Fast Volterra Filtering (https://www.mathworks.com/matlabcentral/fileexchange/32248-fast-volterra-filtering), MATLAB Central File Exchange. 检索时间: .
MATLAB 版本兼容性
平台兼容性
Windows macOS Linux类别
标签
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!版本 | 已发布 | 发行说明 | |
---|---|---|---|
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 |