Annotation Pro API
Public Member Functions | Properties | List of all members
LomontFFT Class Reference

Represent a class that performs real or complex valued Fast Fourier Transforms. Instantiate it and use the FFT or TableFFT methods to compute complex to complex FFTs. Use FFTReal for real to complex FFTs which are much faster than standard complex to complex FFTs. Properties A and B allow selecting various FFT sign and scaling conventions. More...

Public Member Functions

void FFT (double[] data, bool forward)
 Compute the forward or inverse Fourier Transform of data, with data containing complex valued data as alternating real and imaginary parts. The length must be a power of 2. The data is modified in place. More...
 
void RealFFT (double[] data, bool forward)
 Compute the forward or inverse Fourier Transform of data, with data containing real valued data only. The output is complex valued after the first two entries, stored in alternating real and imaginary parts. The first two returned entries are the real parts of the first and last value from the conjugate symmetric output, which are necessarily real. The length must be a power of 2. More...
 
void TableFFT (double[] data, bool forward)
 Compute the forward or inverse Fourier Transform of data, with data containing complex valued data as alternating real and imaginary parts. The length must be a power of 2. This method caches values and should be slightly faster on than the FFT method for repeated uses. It is also slightly more accurate. Data is transformed in place. More...
 

Properties

int A [get, set]
 Determine how scaling works on the forward and inverse transforms. For size N=2^n transforms, the forward transform gets divided by N^((1-a)/2) and the inverse gets divided by N^((1+a)/2). Common values for (A,B) are ( 0, 1) - default (-1, 1) - data processing ( 1,-1) - signal processing Usual values for A are 1, 0, or -1 More...
 
int B [get, set]
 Determine how phase works on the forward and inverse transforms. For size N=2^n transforms, the forward transform uses an exp(B*2*pi/N) term and the inverse uses an exp(-B*2*pi/N) term. Common values for (A,B) are ( 0, 1) - default (-1, 1) - data processing ( 1,-1) - signal processing Abs(B) should be relatively prime to N. Setting B=-1 effectively corresponds to conjugating both input and output data. Usual values for B are 1 or -1. More...
 

Detailed Description

Represent a class that performs real or complex valued Fast Fourier Transforms. Instantiate it and use the FFT or TableFFT methods to compute complex to complex FFTs. Use FFTReal for real to complex FFTs which are much faster than standard complex to complex FFTs. Properties A and B allow selecting various FFT sign and scaling conventions.

Member Function Documentation

◆ FFT()

void FFT ( double []  data,
bool  forward 
)
inline

Compute the forward or inverse Fourier Transform of data, with data containing complex valued data as alternating real and imaginary parts. The length must be a power of 2. The data is modified in place.

Parameters
dataThe complex data stored as alternating real and imaginary parts
forwardtrue for a forward transform, false for inverse transform

◆ RealFFT()

void RealFFT ( double []  data,
bool  forward 
)
inline

Compute the forward or inverse Fourier Transform of data, with data containing real valued data only. The output is complex valued after the first two entries, stored in alternating real and imaginary parts. The first two returned entries are the real parts of the first and last value from the conjugate symmetric output, which are necessarily real. The length must be a power of 2.

Parameters
dataThe complex data stored as alternating real and imaginary parts
forwardtrue for a forward transform, false for inverse transform

◆ TableFFT()

void TableFFT ( double []  data,
bool  forward 
)
inline

Compute the forward or inverse Fourier Transform of data, with data containing complex valued data as alternating real and imaginary parts. The length must be a power of 2. This method caches values and should be slightly faster on than the FFT method for repeated uses. It is also slightly more accurate. Data is transformed in place.

Parameters
dataThe complex data stored as alternating real and imaginary parts
forwardtrue for a forward transform, false for inverse transform

Property Documentation

◆ A

int A
getset

Determine how scaling works on the forward and inverse transforms. For size N=2^n transforms, the forward transform gets divided by N^((1-a)/2) and the inverse gets divided by N^((1+a)/2). Common values for (A,B) are ( 0, 1) - default (-1, 1) - data processing ( 1,-1) - signal processing Usual values for A are 1, 0, or -1

◆ B

int B
getset

Determine how phase works on the forward and inverse transforms. For size N=2^n transforms, the forward transform uses an exp(B*2*pi/N) term and the inverse uses an exp(-B*2*pi/N) term. Common values for (A,B) are ( 0, 1) - default (-1, 1) - data processing ( 1,-1) - signal processing Abs(B) should be relatively prime to N. Setting B=-1 effectively corresponds to conjugating both input and output data. Usual values for B are 1 or -1.


The documentation for this class was generated from the following file: