SignalUtils::Goertz Function

Overload List

#SignatureDescription
1TCplx Goertz(TVec *Src, double Freq, TGoertzPhaseCorrection PhaseCorrection = TGoertzPhaseCorrection::gpcBonzanigo);The Discrete Fourier transformation (DFT) for a given frequency.
2TCplx Goertz(TVec *Src, double Freq, const int SrcIndex, int srcLen = - 1, TGoertzPhaseCorrection PhaseCorrection = TGoertzPhaseCorrection::gpcBonzanigo);The Discrete Fourier transformation (DFT) for a given frequency.
3void Goertz(TVec *Src, TVec *Freq, TVec *Dst, TGoertzPhaseCorrection PhaseCorrection = TGoertzPhaseCorrection::gpcBonzanigo);The Discrete Fourier transformation (DFT) for vector of frequencies.
4void Goertz(TVec *Src, TVec *Freq, TVec *Dst, const int SrcIndex, int srcLen, TGoertzPhaseCorrection PhaseCorrection = TGoertzPhaseCorrection::gpcBonzanigo);The Discrete Fourier transformation (DFT) for vector of frequencies.

Overload 1: TCplx Goertz(TVec *Src, double Freq, TGoertzPhaseCorrection PhaseCorrection = TGoertzPhaseCorrection::gpcBonzanigo);

The Discrete Fourier transformation (DFT) for a given frequency.

#NameTypeDescription
1SrcTVec *
2Freqdouble
3PhaseCorrection = TGoertzPhaseCorrection::gpcBonzanigoTGoertzPhaseCorrection
Remarks:

Calculates the Discrete Fourier transformation (DFT) for a given frequency. Goertz returns the DFT at the Frequency. Each value of the DFT computed by the Goertzel algorithm takes 2N+2 real multiplications and 4N real additions. FFT computes the DFT with N*log2(N) of real multiplications and additions.

The Goertz method is faster, than direct DFT, if we need values at consecutively different frequencies. At every call the Freq parameter is different.

If the frequencies, at which we need to evalute the spectrum are fixed, then the direct DFT method is faster than Goertz.

The function applies Bonzanigo's phase correction. This means, that phase information is reliable and correct also when computed at an arbitrary non-integer frequency. An "integer frequency" is such that an (exact) integer number of periods fits in to the data (signal) of the specific length.

See Also: SignalUtils::GoertzTwo
Declared in Dew::Signal::Units::SignalUtils · Dew.Signal/Units.SignalUtils.h · Cross-compiler

Overload 2: TCplx Goertz(TVec *Src, double Freq, const int SrcIndex, int srcLen = - 1, TGoertzPhaseCorrection PhaseCorrection = TGoertzPhaseCorrection::gpcBonzanigo);

The Discrete Fourier transformation (DFT) for a given frequency.

#NameTypeDescription
1SrcTVec *
2Freqdouble
3SrcIndexconst int
4srcLen = - 1int
5PhaseCorrection = TGoertzPhaseCorrection::gpcBonzanigoTGoertzPhaseCorrection
Remarks:

SrcIndex and srcLen define the sub-range of Src on which to compute the function.

Declared in Dew::Signal::Units::SignalUtils · Dew.Signal/Units.SignalUtils.h · Cross-compiler

Overload 3: void Goertz(TVec *Src, TVec *Freq, TVec *Dst, TGoertzPhaseCorrection PhaseCorrection = TGoertzPhaseCorrection::gpcBonzanigo);

The Discrete Fourier transformation (DFT) for vector of frequencies.

#NameTypeDescription
1SrcTVec *
2FreqTVec *
3DstTVec *
4PhaseCorrection = TGoertzPhaseCorrection::gpcBonzanigoTGoertzPhaseCorrection
Remarks:

Calculates the Discrete Fourier transformation (DFT) for an array of frequencies defined in the Freq parameter. Goertz returns the DFT of the frequencies pass as a parameter in the Dst variable. Each value of the DFT computed by the Goertzel algorithm takes 2N+2 real multiplications and 4N real additions. FFT computes the DFT with N*log2(N) of real multiplications and additions.

The Goertz method is faster, than direct DFT, if we need values at consecutively different frequencies. If at every call the values in Freq parameter are different. If the frequencies, at which we need to evalute the spectrum are fixed between calls, then the direct DFT method is faster.

See Also: SignalUtils::Goertz
Declared in Dew::Signal::Units::SignalUtils · Dew.Signal/Units.SignalUtils.h · Cross-compiler

Overload 4: void Goertz(TVec *Src, TVec *Freq, TVec *Dst, const int SrcIndex, int srcLen, TGoertzPhaseCorrection PhaseCorrection = TGoertzPhaseCorrection::gpcBonzanigo);

The Discrete Fourier transformation (DFT) for vector of frequencies.

#NameTypeDescription
1SrcTVec *
2FreqTVec *
3DstTVec *
4SrcIndexconst int
5srcLenint
6PhaseCorrection = TGoertzPhaseCorrection::gpcBonzanigoTGoertzPhaseCorrection
Remarks:

SrcIndex and srcLen define the sub-range of Src on which to compute the function.

Declared in Dew::Signal::Units::SignalUtils · Dew.Signal/Units.SignalUtils.h · Cross-compiler