|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
<html>
|
|
Packit |
0652a1 |
<head>
|
|
Packit |
0652a1 |
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
|
Packit |
0652a1 |
<title>GstFFTF32: GStreamer Base Plugins 1.0 Library Reference Manual</title>
|
|
Packit |
0652a1 |
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
|
|
Packit |
0652a1 |
<link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
|
|
Packit |
0652a1 |
<link rel="up" href="gstreamer-ffft.html" title="FFT Library">
|
|
Packit |
0652a1 |
<link rel="prev" href="gst-plugins-base-libs-GstFFTS32.html" title="GstFFTS32">
|
|
Packit |
0652a1 |
<link rel="next" href="gst-plugins-base-libs-GstFFTF64.html" title="GstFFTF64">
|
|
Packit |
0652a1 |
<meta name="generator" content="GTK-Doc V1.28 (XML mode)">
|
|
Packit |
0652a1 |
<link rel="stylesheet" href="style.css" type="text/css">
|
|
Packit |
0652a1 |
</head>
|
|
Packit |
0652a1 |
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
Top |
|
|
Packit |
0652a1 |
Description
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
GstFFTF32
|
|
Packit |
0652a1 |
GstFFTF32 — FFT functions for 32 bit float samples
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
Functions
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
GstFFTF32 *
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
gst_fft_f32_new ()
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
void
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
gst_fft_f32_fft ()
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
void
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
gst_fft_f32_inverse_fft ()
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
void
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
gst_fft_f32_window ()
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
void
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
gst_fft_f32_free ()
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
Types and Values
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
GstFFTF32
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
struct
|
|
Packit |
0652a1 |
GstFFTF32Complex
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
Includes
|
|
Packit |
0652a1 |
#include <gst/fft/fft.h>
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
Description
|
|
Packit |
0652a1 |
GstFFTF32 provides a FFT implementation and related functions for
|
|
Packit |
0652a1 |
32 bit float samples. To use this call gst_fft_f32_new() for
|
|
Packit |
0652a1 |
allocating a GstFFTF32 instance with the appropriate parameters and
|
|
Packit |
0652a1 |
then call gst_fft_f32_fft() or gst_fft_f32_inverse_fft() to perform the
|
|
Packit |
0652a1 |
FFT or inverse FFT on a buffer of samples.
|
|
Packit |
0652a1 |
After use free the GstFFTF32 instance with gst_fft_f32_free() .
|
|
Packit |
0652a1 |
For the best performance use gst_fft_next_fast_length() to get a
|
|
Packit |
0652a1 |
number that is entirely a product of 2, 3 and 5 and use this as the
|
|
Packit |
0652a1 |
len
|
|
Packit |
0652a1 |
parameter for gst_fft_f32_new() .
|
|
Packit |
0652a1 |
The len
|
|
Packit |
0652a1 |
parameter specifies the number of samples in the time domain that
|
|
Packit |
0652a1 |
will be processed or generated. The number of samples in the frequency domain
|
|
Packit |
0652a1 |
is len
|
|
Packit |
0652a1 |
/2 + 1. To get n samples in the frequency domain use 2*n - 2 as len
|
|
Packit |
0652a1 |
.
|
|
Packit |
0652a1 |
Before performing the FFT on time domain data it usually makes sense
|
|
Packit |
0652a1 |
to apply a window function to it. For this gst_fft_f32_window() can comfortably
|
|
Packit |
0652a1 |
be used.
|
|
Packit |
0652a1 |
Be aware, that you can't simply run gst_fft_f32_inverse_fft() on the
|
|
Packit |
0652a1 |
resulting frequency data of gst_fft_f32_fft() to get the original data back.
|
|
Packit |
0652a1 |
The relation between them is iFFT (FFT (x)) = x * nfft where nfft is the
|
|
Packit |
0652a1 |
length of the FFT. This also has to be taken into account when calculation
|
|
Packit |
0652a1 |
the magnitude of the frequency data.
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
Functions
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
gst_fft_f32_new ()
|
|
Packit |
0652a1 |
GstFFTF32 *
|
|
Packit |
0652a1 |
gst_fft_f32_new (gint len ,
|
|
Packit |
0652a1 |
gboolean inverse );
|
|
Packit |
0652a1 |
This returns a new GstFFTF32 instance with the given parameters. It makes
|
|
Packit |
0652a1 |
sense to keep one instance for several calls for speed reasons.
|
|
Packit |
0652a1 |
len
|
|
Packit |
0652a1 |
must be even and to get the best performance a product of
|
|
Packit |
0652a1 |
2, 3 and 5. To get the next number with this characteristics use
|
|
Packit |
0652a1 |
gst_fft_next_fast_length() .
|
|
Packit |
0652a1 |
[skip]
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
Parameters
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
len
|
|
Packit |
0652a1 |
Length of the FFT in the time domain
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
inverse
|
|
Packit |
0652a1 |
TRUE if the GstFFTF32 instance should be used for the inverse FFT
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
Returns
|
|
Packit |
0652a1 |
a new GstFFTF32 instance.
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
gst_fft_f32_fft ()
|
|
Packit |
0652a1 |
void
|
|
Packit |
0652a1 |
gst_fft_f32_fft (GstFFTF32 *self ,
|
|
Packit |
0652a1 |
const gfloat *timedata ,
|
|
Packit |
0652a1 |
GstFFTF32Complex *freqdata );
|
|
Packit |
0652a1 |
This performs the FFT on timedata
|
|
Packit |
0652a1 |
and puts the result in freqdata
|
|
Packit |
0652a1 |
.
|
|
Packit |
0652a1 |
timedata
|
|
Packit |
0652a1 |
must have as many samples as specified with the len
|
|
Packit |
0652a1 |
parameter while
|
|
Packit |
0652a1 |
allocating the GstFFTF32 instance with gst_fft_f32_new() .
|
|
Packit |
0652a1 |
freqdata
|
|
Packit |
0652a1 |
must be large enough to hold len
|
|
Packit |
0652a1 |
/2 + 1 GstFFTF32Complex frequency
|
|
Packit |
0652a1 |
domain samples.
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
Parameters
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
self
|
|
Packit |
0652a1 |
GstFFTF32 instance for this call
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
timedata
|
|
Packit |
0652a1 |
Buffer of the samples in the time domain
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
freqdata
|
|
Packit |
0652a1 |
Target buffer for the samples in the frequency domain
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
gst_fft_f32_inverse_fft ()
|
|
Packit |
0652a1 |
void
|
|
Packit |
0652a1 |
gst_fft_f32_inverse_fft (GstFFTF32 *self ,
|
|
Packit |
0652a1 |
const GstFFTF32Complex *freqdata ,
|
|
Packit |
0652a1 |
gfloat *timedata );
|
|
Packit |
0652a1 |
This performs the inverse FFT on freqdata
|
|
Packit |
0652a1 |
and puts the result in timedata
|
|
Packit |
0652a1 |
.
|
|
Packit |
0652a1 |
freqdata
|
|
Packit |
0652a1 |
must have len
|
|
Packit |
0652a1 |
/2 + 1 samples, where len
|
|
Packit |
0652a1 |
is the parameter specified
|
|
Packit |
0652a1 |
while allocating the GstFFTF32 instance with gst_fft_f32_new() .
|
|
Packit |
0652a1 |
timedata
|
|
Packit |
0652a1 |
must be large enough to hold len
|
|
Packit |
0652a1 |
time domain samples.
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
Parameters
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
self
|
|
Packit |
0652a1 |
GstFFTF32 instance for this call
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
freqdata
|
|
Packit |
0652a1 |
Buffer of the samples in the frequency domain
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
timedata
|
|
Packit |
0652a1 |
Target buffer for the samples in the time domain
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
gst_fft_f32_window ()
|
|
Packit |
0652a1 |
void
|
|
Packit |
0652a1 |
gst_fft_f32_window (GstFFTF32 *self ,
|
|
Packit |
0652a1 |
gfloat *timedata ,
|
|
Packit |
0652a1 |
GstFFTWindow window );
|
|
Packit |
0652a1 |
This calls the window function window
|
|
Packit |
0652a1 |
on the timedata
|
|
Packit |
0652a1 |
sample buffer.
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
Parameters
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
self
|
|
Packit |
0652a1 |
GstFFTF32 instance for this call
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
timedata
|
|
Packit |
0652a1 |
Time domain samples
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
window
|
|
Packit |
0652a1 |
Window function to apply
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
gst_fft_f32_free ()
|
|
Packit |
0652a1 |
void
|
|
Packit |
0652a1 |
gst_fft_f32_free (GstFFTF32 *self );
|
|
Packit |
0652a1 |
This frees the memory allocated for self
|
|
Packit |
0652a1 |
.
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
Parameters
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
self
|
|
Packit |
0652a1 |
GstFFTF32 instance for this call
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
Types and Values
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
GstFFTF32
|
|
Packit |
0652a1 |
typedef struct _GstFFTF32 GstFFTF32;
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
struct GstFFTF32Complex
|
|
Packit |
0652a1 |
struct GstFFTF32Complex {
|
|
Packit |
0652a1 |
gfloat r;
|
|
Packit |
0652a1 |
gfloat i;
|
|
Packit |
0652a1 |
};
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
Data type for complex numbers composed of
|
|
Packit |
0652a1 |
32 bit float.
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
Members
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
gfloat r ;
|
|
Packit |
0652a1 |
Real part
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
gfloat i ;
|
|
Packit |
0652a1 |
Imaginary part
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
|
|
Packit |
0652a1 |
Generated by GTK-Doc V1.28
|
|
Packit |
0652a1 |
</body>
|
|
Packit |
0652a1 |
</html>
|