Xmipp  v3.23.11-Nereus
Functions
IIR Convolve
Collaboration diagram for IIR Convolve:

Functions

int IirConvolveCanonicProgressive (double InputData[], double OutputData[], long SignalLength, double Kernel[], double RightInit[], long KernelLength)
 
int IirConvolveCanonicRegressive (double InputData[], double OutputData[], long SignalLength, double Kernel[], double LeftInit[], long KernelLength)
 
int IirConvolvePoles (double InputData[], double OutputData[], long SignalLength, double RealPoles[], long PoleNumber, enum TBoundaryConvention Convention, double Tolerance)
 
int IirConvolvePolesVolume (double *VolumeSource, double *VolumeDestination, long Nx, long Ny, long Nz, double RealPoles[], long PoleNumber, enum TBoundaryConvention Convention, double Tolerance, int *Status)
 

Detailed Description

Function Documentation

◆ IirConvolveCanonicProgressive()

int IirConvolveCanonicProgressive ( double  InputData[],
double  OutputData[],
long  SignalLength,
double  Kernel[],
double  RightInit[],
long  KernelLength 
)

Canonic progressive. Computes OutputData[i] = InputData[i] + SUM(k): OutputData[i + k + 1] * Kernel[k]. The input and the output have the same length. The kernel and the initial output values have the same length.

success: return(!ERROR); failure: return(ERROR)

◆ IirConvolveCanonicRegressive()

int IirConvolveCanonicRegressive ( double  InputData[],
double  OutputData[],
long  SignalLength,
double  Kernel[],
double  LeftInit[],
long  KernelLength 
)

Canonic regressive. Computes OutputData[i] = InputData[i] + SUM(k): OutputData[i - k - 1] Kernel[k]. The input and the output have the same length. The kernel and the initial output values have the same length.

success: return(!ERROR); failure: return(ERROR)

◆ IirConvolvePoles()

int IirConvolvePoles ( double  InputData[],
double  OutputData[],
long  SignalLength,
double  RealPoles[],
long  PoleNumber,
enum TBoundaryConvention  Convention,
double  Tolerance 
)

The filter is defined by its poles (1D). The input and the output have the same length. In-place processing is allowed. No more than two poles are allowed for a finite support boundary.

success: return(!ERROR); failure: return(ERROR)

◆ IirConvolvePolesVolume()

int IirConvolvePolesVolume ( double *  VolumeSource,
double *  VolumeDestination,
long  Nx,
long  Ny,
long  Nz,
double  RealPoles[],
long  PoleNumber,
enum TBoundaryConvention  Convention,
double  Tolerance,
int *  Status 
)

The filter is defined by its poles (3D). No more than two poles are allowed for a finite support boundary. VolumeSource is a (double)volume of size (Nx x Ny x Nz). OutputData is a (double)volume of size (Nx x Ny x Nz).

success: return(!ERROR); failure: return(ERROR)