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