InverseRealFFT

class InverseRealFFT : public tsa::BaseFFT

Multichannel inverse real to complex FFT.

This is the implementation of the FFT of a real multichannel buffer

Operations

void operator()(SeqViewComplex &in, SeqViewDouble &out)

Apply the transformation on the data

Parameters:
  • in – a reference to the buffer containing the input data

  • out – a reference to the buffer containing the input data

Returns:

a reference to this instance of the class

void execute(Cmatrix &in, Dmatrix &out)

Execution of the inverse real fft of a multichannel buffer of complex. Input data are organized in a matrix. Each row is a different channel, and the number of data to transform is equal to the number of columns. Both the number of rows and the number of columns can change between each call to this method. If the number of rows changes nothing special will happen, if the number of cols changes the plan is reevaluated with the current flags.

Throws:

bad_matrix_size – the size of the output matrix is wrong

Parameters:
  • in – reference to the input multichannel buffer

  • out – reference to the output multichannel buffer

Pre:

The number of rows of input and output matrix must be the same.

Pre:

The number of columns of the input matrix must be int(n/2)+1, where n is the number of columns of the output matrix.

Post:

the input buffer is changed, unless SetPreserveInput was called with true argument

Post:

the output buffer contain the inverse fft of the input data

void execute(Cvector &in, Dvector &out)

Execution of the inverse real fft of a buffer of complex. If the number of data changes the plan is reevaluated with the current flags.

Throws:

bad_vector_size – the size of the output vector

Parameters:
  • in – reference to the input vector

  • out – reference to the output vector

Pre:

The number of columns of the input matrix must be int(n/2)+1, where n is the number of columns of the output matrix.

Post:

the input buffer is changed, unless SetPreserveInput was called with true argument

Post:

the output buffer contain the inverse fft of the input data

void execute(CmatrixRow &in, DmatrixRow &out)
void execute(CmatrixRow &in, DmatrixRow &out, unsigned int insize)
virtual void MakePlan()

Make a new plan, with the current parameters.

Throws:

std::runtime_error – The new plan cannot be created

Public Functions

InverseRealFFT(int size = 0, enum FFTPlanningMode mode = ESTIMATE, bool PreserveInput = false)

Constructor

Parameters:
  • size – the size of the transform

  • mode – specify the way in which plans are calculated

  • PreserveInput – true if the input buffer must be preserved during the transform, false otherwise

InverseRealFFT(const InverseRealFFT &from)

Copy constructor

Parameters:

from – The instance that must be copied

~InverseRealFFT()

Destructor