1mlib_SignalIFFTW_3(3MLIB) mediaLib Library Functions mlib_SignalIFFTW_3(3MLIB)
2
3
4
6 mlib_SignalIFFTW_3, mlib_SignalIFFTW_3_S16_S16_Mod, mlib_Sig‐
7 nalIFFTW_3_S16C_S16C_Mod, mlib_SignalIFFTW_3_S16_S16C_Mod, mlib_Sig‐
8 nalIFFTW_3_S16_Mod, mlib_SignalIFFTW_3_S16C_Mod, mlib_Sig‐
9 nalIFFTW_3_F32_F32, mlib_SignalIFFTW_3_F32C_F32C, mlib_Sig‐
10 nalIFFTW_3_F32_F32C, mlib_SignalIFFTW_3_F32, mlib_SignalIFFTW_3_F32C -
11 signal Inverse Fast Fourier Transform with windowing (IFFTW)
12
14 cc [ flag... ] file... -lmlib [ library... ]
15 #include <mlib.h>
16
17 mlib_status mlib_SignalIFFTW_3_S16_S16_Mod(mlib_s16 *dstr, mlib_s16 *dsti,
18 const mlib_s16 *srcr, const mlib_s16 *srci, const mlib_s16 *window,
19 mlib_s32 order);
20
21
22 mlib_status mlib_SignalIFFTW_3_S16C_S16C_Mod(mlib_s16 *dstc,
23 const mlib_s16 *srcc,
24 const mlib_s16 *window, mlib_s32 order);
25
26
27 mlib_status mlib_SignalIFFTW_3_S16_S16C_Mod(mlib_s16 *dstr,
28 const mlib_s16 *srcc,
29 const mlib_s16 *window, mlib_s32 order);
30
31
32 mlib_status mlib_SignalIFFTW_3_S16_Mod(mlib_s16 *srcdstr,
33 mlib_s16 *srcdsti,
34 const mlib_s16 *window, mlib_s32 order);
35
36
37 mlib_status mlib_SignalIFFTW_3_S16C_Mod(mlib_s16 *srcdstc,
38 const mlib_s16 *window,
39 mlib_s32 order);
40
41
42 mlib_status mlib_SignalIFFTW_3_F32_F32(mlib_f32 *dstr,
43 mlib_f32 *dsti,
44 const mlib_f32 *srcr, const mlib_f32 *srci, const mlib_f32 *window,
45 mlib_s32 order);
46
47
48 mlib_status mlib_SignalIFFTW_3_F32C_F32C(mlib_f32 *dstc,
49 const mlib_f32 *srcc,
50 const mlib_f32 *window, mlib_s32 order);
51
52
53 mlib_status mlib_SignalIFFTW_3_F32_F32C(mlib_f32 *dstr,
54 const mlib_f32 *srcc,
55 const mlib_f32 *window, mlib_s32 order);
56
57
58 mlib_status mlib_SignalIFFTW_3_F32(mlib_f32 *srcdstr,
59 mlib_f32 *srcdsti,
60 const mlib_f32 *window, mlib_s32 order);
61
62
63 mlib_status mlib_SignalIFFTW_3_F32C(mlib_f32 *srcdstc,
64 const mlib_f32 *window,
65 mlib_s32 order);
66
67
69 Each of the functions in this group performs Inverse Fast Fourier
70 Transform with windowing (IFFTW).
71
72
73 The FFTW functions use the following equation:
74
75 1 N-1
76 dst[k] = ---- SUM {src[n] * window[n] * exp(-j2*PI*n*k/N)}
77 C1 n=0
78
79
80
81 and the IFFTW functions use the following equation:
82
83 1 N-1
84 dst[n] = ---- SUM {src[k] * window[k] * exp(j2*PI*n*k/N)}
85 C2 k=0
86
87
88
89 where
90
91 k = 0, 1, ..., (N - 1)
92 n = 0, 1, ..., (N - 1)
93 N = 2**order
94
95
96
97 The signal FFTW/IFFTW functions can be categorized into four groups
98 according to the ScaleMode in the function names in the following form:
99
100 mlib_Signal[FFTW|IFFTW]_ScaleMode_OutType_InType_OpMode()
101 mlib_Signal[FFTW|IFFTW]_ScaleMode_DataType_OpMode()
102
103
104
105 The scaling factors C1 and C2 used in the equations are defined as fol‐
106 lows:
107
108 o For ScaleMode = 1, C1 = 1 and C2 = 2**order.
109
110 o For ScaleMode = 2, C1 = 2**order and C2 = 1.
111
112 o For ScaleMode = 3, C1 = C2 = 2**(order/2) when order is
113 even, or C1 = 2**((order+1)/2) and C2 = 2**((order-1)/2)
114 when order is odd.
115
116 o For ScaleMode = 4, C1 = 2**P and C2 = 2**Q, where P and Q
117 are adaptive scaling factors and are generated by the func‐
118 tions.
119
120
121 For functions with only real parts for the source signal, the imaginary
122 parts are assumed to be all zero. For functions with only real parts
123 for the destination signal, the imaginary parts are discarded. The
124 functions with only one data type in their names perform the operation
125 in place.
126
128 Each function takes some of the following arguments:
129
130 dstr Destination signal array that contains the real parts.
131
132
133 dsti Destination signal array that contains the imaginary parts.
134
135
136 srcr Source signal array that contains the real parts.
137
138
139 srci Source signal array that contains the imaginary parts.
140
141
142 dstc Complex destination signal array. dstc[2*i] contains the
143 real parts, and dstc[2*i+1] contains the imaginary parts.
144
145
146 srcc Complex source signal array. srcc[2*i] contains the real
147 parts, and srcc[2*i+1] contains the imaginary parts.
148
149
150 srcdstr Source and destination signal array that contains the real
151 parts.
152
153
154 srcdsti Source and destination signal array that contains the imagi‐
155 nary parts.
156
157
158 srcdstc Complex source and destination signal array. srcdstc[2*i]
159 contains the real parts, and srcdstc[2*i+1] contains the
160 imaginary parts.
161
162
163 window Window coefficient array with 2**order real elements. The
164 window coefficients are in Q15 format for the S16 data type,
165 or in float format for the F32 data type.
166
167
168 order Order of the transformation. The base-2 logarithm of the
169 number of data samples.
170
171
173 Each function returns MLIB_SUCCESS if successful. Otherwise it returns
174 MLIB_FAILURE.
175
177 See attributes(5) for descriptions of the following attributes:
178
179
180
181
182 ┌─────────────────────────────┬─────────────────────────────┐
183 │ ATTRIBUTE TYPE │ ATTRIBUTE VALUE │
184 ├─────────────────────────────┼─────────────────────────────┤
185 │Interface Stability │Committed │
186 ├─────────────────────────────┼─────────────────────────────┤
187 │MT-Level │MT-Safe │
188 └─────────────────────────────┴─────────────────────────────┘
189
191 mlib_SignalFFTW_1(3MLIB), mlib_SignalFFTW_2(3MLIB), mlib_Sig‐
192 nalFFTW_3(3MLIB), mlib_SignalFFTW_4(3MLIB), mlib_SignalIFFTW_1(3MLIB),
193 mlib_SignalIFFTW_2(3MLIB), mlib_SignalIFFTW_4(3MLIB), attributes(5)
194
195
196
197SunOS 5.11 2 Mar 2007 mlib_SignalIFFTW_3(3MLIB)