
Convolution Integral for one dimensional data. More...
Functions  
AFAPI array  convolve1 (const array &signal, const array &filter, const convMode mode=AF_CONV_DEFAULT, const convDomain domain=AF_CONV_AUTO) 
C++ Interface for convolution on one dimensional signals. More...  
AFAPI array  fftConvolve1 (const array &signal, const array &filter, const convMode mode=AF_CONV_DEFAULT) 
C++ Interface for convolution on 1D signals using FFT. More...  
AFAPI af_err  af_convolve1 (af_array *out, const af_array signal, const af_array filter, const af_conv_mode mode, af_conv_domain domain) 
C Interface for convolution on one dimensional signals. More...  
AFAPI af_err  af_fft_convolve1 (af_array *out, const af_array signal, const af_array filter, const af_conv_mode mode) 
C Interface for convolution on 1D signals using FFT. More...  
Convolution Integral for one dimensional data.
A convolution is a common operation between a source array, a, and a filter (or kernel) array b. The answer to the convolution is the same as computing the coefficients in polynomial multiplication, if a and b are the coefficients.
Another way to think about it is that the filter kernel is centered on each pixel in a, and the output for that pixel or data point is the sum of the products.
Depending on the size of the signal and the filter, any one of the following batch mode convolutions take place.
For one dimensional signals (lets say m is size of 0th axis), below batch operations are possible.
Signal Size  Filter Size  Output Size  Batch Mode  Description 

\( [m \ 1 \ 1 \ 1] \)  \( [m \ 1 \ 1 \ 1] \)  \( [m \ 1 \ 1 \ 1] \)  No Batch  Output will be a single convolved array 
\( [m \ 1 \ 1 \ 1] \)  \( [m \ n \ 1 \ 1] \)  \( [m \ n \ 1 \ 1] \)  Filter is Batched  n filters applied to same input 
\( [m \ n \ 1 \ 1] \)  \( [m \ 1 \ 1 \ 1] \)  \( [m \ n \ 1 \ 1] \)  Signal is Batched  1 filter applied to n inputs 
\( [m \ n \ p \ q] \)  \( [m \ n \ p \ q] \)  \( [m \ n \ p \ q] \)  Identical Batches  n*p*q filters applied to n*p*q inputs in onetoone correspondence 
\( [m \ n \ 1 \ 1] \)  \( [m \ 1 \ p \ q] \)  \( [m \ n \ p \ q] \)  Nonoverlapping batches  p*q filters applied to n inputs to produce n x p x q results 
There are various other permutations of signal and filter sizes that fall under the category of nonoverlapping batch mode that are not listed in the above table. For any signal and filter size combination to fall under the nonoverlapping batch mode, they should satisfy one of the following conditions.
AFAPI af_err af_convolve1  (  af_array *  out, 
const af_array  signal,  
const af_array  filter,  
const af_conv_mode  mode,  
af_conv_domain  domain  
) 
C Interface for convolution on one dimensional signals.
[out]  out  is convolved array 
[in]  signal  is the input signal 
[in]  filter  is the signal that shall be flipped for the convolution operation 
[in]  mode  indicates if the convolution should be expanded or not(where output size equals input) 
[in]  domain  specifies if the convolution should be performed in frequency os spatial domain 
domain
, AF_CONV_AUTO, heuristically switches between frequency and spatial domain. AFAPI af_err af_fft_convolve1  (  af_array *  out, 
const af_array  signal,  
const af_array  filter,  
const af_conv_mode  mode  
) 
C Interface for convolution on 1D signals using FFT.
[out]  out  is convolved array 
[in]  signal  is the input signal 
[in]  filter  is the signal that shall be used for the convolution operation 
[in]  mode  indicates if the convolution should be expanded or not(where output size equals input) 
AFAPI array af::convolve1  (  const array &  signal, 
const array &  filter,  
const convMode  mode = AF_CONV_DEFAULT , 

const convDomain  domain = AF_CONV_AUTO 

) 
C++ Interface for convolution on one dimensional signals.
[in]  signal  is the input signal 
[in]  filter  is the signal that shall be flipped for the convolution operation 
[in]  mode  indicates if the convolution should be expanded or not(where output size equals input) 
[in]  domain  specifies if the convolution should be performed in frequency os spatial domain 
domain
, AF_CONV_AUTO, heuristically switches between frequency and spatial domain. AFAPI array af::fftConvolve1  (  const array &  signal, 
const array &  filter,  
const convMode  mode = AF_CONV_DEFAULT 

) 
C++ Interface for convolution on 1D signals using FFT.
[in]  signal  is the input signal 
[in]  filter  is the signal that shall be used for the convolution operation 
[in]  mode  indicates if the convolution should be expanded or not(where output size equals input) 