Blame docs/libs/html/gst-plugins-base-libs-GstFFTF32.html

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
Home
Packit 0652a1
Up
Packit 0652a1
Prev
Packit 0652a1
Next
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>