Every fft class written within the CUORE framework should inherit from this class
Public Types | |
enum | WindowType { WT_None = 0, WT_Welch = 1, WT_Rect = 2, WT_Hann = 3, WT_Hamming = 4, WT_Cosinus = 5, WT_BlackmanHarris = 6, WT_Kaiser3 = 7 } |
window type | |
Public Member Functions | |
QFFT (const int size) | |
constructor with its size | |
QFFT () | |
empty constructor with its size | |
virtual | ~QFFT () |
destructor | |
virtual int | Transform (const QVector &data, QVector &result)=0 |
virtual method. Must be implemented by daughter classes. | |
virtual void | Resize (int s)=0 |
virtual method. Must be implemented by daughter classes | |
virtual void | SetWindowType (WindowType wt, bool coherent=false)=0 |
virtual method. Must be implemented by daughter classes set the window type. | |
void | SetForward (bool isForward) |
virtual method. Must be implemented by daughter classes set the direction of the transform. | |
void | SetNormalized (bool isNormalized) |
virtual method. Must be implemented by daughter classes set the normalization of the transform. | |
int | GetWindow () |
virtual method. Must be implemented by daughter classes set the direction of the transform. | |
Static Public Member Functions | |
static QVector | FFTAntiSym (const QVector &input) |
antisimmetrize time domain vector | |
static QVector | FFTSym (const QVector &input) |
simmetrize time domain vector | |
static QVector | ZeroPad (const QVector &input, size_t n_zeros, bool isSym=false, double zeroVal=0.) |
add n_zeros in the middle of input | |
static WindowType | StrToWindowType (const std::string &winName) |
Convert string to window type. | |
static QVector | GetWindow (WindowType wt, size_t size, size_t zeros=0, bool coherent=false) |
create window and add zeros/2 to the left and zeros/2 to the right | |
static QVector | CutSides (const QVector &input, size_t ncut, bool isSym) |
cut left and right sides by ncut/2 | |
Protected Member Functions | |
void | IsPowerOf2 () |
Protected Attributes | |
int | fSize |
bool | fForward |
bool | fNormalized |
bool | fIsPowerOf2 |
double * | fData |
double * | fWindow |
int | fWindowSize |
WindowType | fWindowType |
Q_BEGIN_NAMESPACE QFFT::QFFT | ( | const int | size | ) |
constructor with its size
size | is the number of entries of the vector to be transformed |
virtual method. Must be implemented by daughter classes.
data | references the vector of data to be transformed | |
result | references the vector holding the result |
Implemented in QRealComplexFFT.
virtual void QFFT::Resize | ( | int | s | ) | [pure virtual] |
virtual method. Must be implemented by daughter classes
s | is the size of the vector to be transformed |
Implemented in QRealComplexFFT.
virtual void QFFT::SetWindowType | ( | WindowType | wt, | |
bool | coherent = false | |||
) | [pure virtual] |
virtual method. Must be implemented by daughter classes set the window type.
t | is the type of window applied |
Implemented in QRealComplexFFT.
void QFFT::SetForward | ( | bool | isForward | ) | [inline] |
virtual method. Must be implemented by daughter classes set the direction of the transform.
isForward | is true when the direction is forward |
Referenced by QRealComplexFFT::TransformFromFreq(), and QRealComplexFFT::TransformToFreq().
void QFFT::SetNormalized | ( | bool | isNormalized | ) | [inline] |
virtual method. Must be implemented by daughter classes set the normalization of the transform.
isNormalized | is true when the fft is normalized |
Referenced by QRealComplexFFT::TransformFromFreq(), and QRealComplexFFT::TransformToFreq().
int QFFT::GetWindow | ( | ) | [inline] |
virtual method. Must be implemented by daughter classes set the direction of the transform.
Referenced by QRealComplexFFT::SetWindowType().