simplefft

simplefft — simple FFT algorithm

Synopsis




enum        GwyWindowingType;
enum        GwyFFTOutputType;
gint        gwy_fft_hum                     (gint dir,
                                             gdouble *re_in,
                                             gdouble *im_in,
                                             gdouble *re_out,
                                             gdouble *im_out,
                                             gint n);
void        gwy_fft_window                  (gdouble *data,
                                             gint n,
                                             GwyWindowingType windowing);

Description

Details

enum GwyWindowingType

typedef enum {
  GWY_WINDOWING_NONE       = 0,
  GWY_WINDOWING_HANN       = 1,
  GWY_WINDOWING_HAMMING    = 2,
  GWY_WINDOWING_BLACKMANN  = 3,
  GWY_WINDOWING_LANCZOS    = 4,
  GWY_WINDOWING_WELCH      = 5,
  GWY_WINDOWING_RECT       = 6
} GwyWindowingType;

Selection of windowing applied before FFT (if requested).

GWY_WINDOWING_NONEno windowing
GWY_WINDOWING_HANNHann windowing
GWY_WINDOWING_HAMMINGHamming windowing
GWY_WINDOWING_BLACKMANNBlackmann windowing
GWY_WINDOWING_LANCZOSLanczos windowing
GWY_WINDOWING_WELCHWelch windowing
GWY_WINDOWING_RECTRectangular windowing

enum GwyFFTOutputType

typedef enum {
  GWY_FFT_OUTPUT_REAL_IMG   = 0,
  GWY_FFT_OUTPUT_MOD_PHASE  = 1,
  GWY_FFT_OUTPUT_REAL       = 2,
  GWY_FFT_OUTPUT_IMG        = 3,
  GWY_FFT_OUTPUT_MOD        = 4,
  GWY_FFT_OUTPUT_PHASE      = 5
} GwyFFTOutputType;

FFT output.

GWY_FFT_OUTPUT_REAL_IMGreal and imaginary
GWY_FFT_OUTPUT_MOD_PHASEmodule and phase
GWY_FFT_OUTPUT_REALreal
GWY_FFT_OUTPUT_IMGimaginary
GWY_FFT_OUTPUT_MODmodule
GWY_FFT_OUTPUT_PHASEphase

gwy_fft_hum ()

gint        gwy_fft_hum                     (gint dir,
                                             gdouble *re_in,
                                             gdouble *im_in,
                                             gdouble *re_out,
                                             gdouble *im_out,
                                             gint n);

dir:
re_in:
im_in:
re_out:
im_out:
n:
Returns :

gwy_fft_window ()

void        gwy_fft_window                  (gdouble *data,
                                             gint n,
                                             GwyWindowingType windowing);

data:
n:
windowing: