This performs the FFT on timedata
and puts the result in freqdata
.
timedata
must have as many samples as specified with the len
parameter while
allocating the #GstFFTF32 instance with gst_fft_f32_new().
freqdata
must be large enough to hold len/
2 + 1 #GstFFTF32Complex frequency
domain samples.
Buffer of the samples in the time domain
Target buffer for the samples in the frequency domain
This frees the memory allocated for self
.
This performs the inverse FFT on freqdata
and puts the result in timedata
.
freqdata
must have len/
2 + 1 samples, where len
is the parameter specified
while allocating the #GstFFTF32 instance with gst_fft_f32_new().
timedata
must be large enough to hold len
time domain samples.
Buffer of the samples in the frequency domain
Target buffer for the samples in the time domain
This calls the window function window
on the timedata
sample buffer.
Time domain samples
Window function to apply
#GstFFTF32 provides a FFT implementation and related functions for 32 bit float samples. To use this call gst_fft_f32_new() for allocating a #GstFFTF32 instance with the appropriate parameters and then call gst_fft_f32_fft() or gst_fft_f32_inverse_fft() to perform the FFT or inverse FFT on a buffer of samples.
After use free the #GstFFTF32 instance with gst_fft_f32_free().
For the best performance use gst_fft_next_fast_length() to get a number that is entirely a product of 2, 3 and 5 and use this as the
len
parameter for gst_fft_f32_new().The
len
parameter specifies the number of samples in the time domain that will be processed or generated. The number of samples in the frequency domain islen/
2 + 1. To get n samples in the frequency domain use 2*n - 2 aslen
.Before performing the FFT on time domain data it usually makes sense to apply a window function to it. For this gst_fft_f32_window() can comfortably be used.
Be aware, that you can't simply run gst_fft_f32_inverse_fft() on the resulting frequency data of gst_fft_f32_fft() to get the original data back. The relation between them is iFFT (FFT (x)) = x * nfft where nfft is the length of the FFT. This also has to be taken into account when calculation the magnitude of the frequency data.