1mlib_SignalFFT_3(3MLIB) mediaLib Library Functions mlib_SignalFFT_3(3MLIB)
2
3
4
6 mlib_SignalFFT_3, mlib_SignalFFT_3_S16_S16_Mod, mlib_Sig‐
7 nalFFT_3_S16C_S16C_Mod, mlib_SignalFFT_3_S16C_S16_Mod, mlib_Sig‐
8 nalFFT_3_S16_Mod, mlib_SignalFFT_3_S16C_Mod, mlib_SignalFFT_3_F32_F32,
9 mlib_SignalFFT_3_F32C_F32C, mlib_SignalFFT_3_F32C_F32, mlib_Sig‐
10 nalFFT_3_F32, mlib_SignalFFT_3_F32C, mlib_SignalFFT_3_D64_D64,
11 mlib_SignalFFT_3_D64C_D64C, mlib_SignalFFT_3_D64C_D64, mlib_Sig‐
12 nalFFT_3_D64, mlib_SignalFFT_3_D64C - signal Fast Fourier Transform
13 (FFT)
14
16 cc [ flag... ] file... -lmlib [ library... ]
17 #include <mlib.h>
18
19 mlib_status mlib_SignalFFT_3_S16_S16_Mod(mlib_s16 *dstr, mlib_s16 *dsti,
20 const mlib_s16 *srcr, const mlib_s16 *srci, mlib_s32 order);
21
22
23 mlib_status mlib_SignalFFT_3_S16C_S16C_Mod(mlib_s16 *dstc,
24 const mlib_s16 *srcc,
25 mlib_s32 order);
26
27
28 mlib_status mlib_SignalFFT_3_S16C_S16_Mod(mlib_s16 *dstc,
29 const mlib_s16 *srcr,
30 mlib_s32 order);
31
32
33 mlib_status mlib_SignalFFT_3_S16_Mod(mlib_s16 *srcdstr,
34 mlib_s16 *srcdsti,
35 mlib_s32 order);
36
37
38 mlib_status mlib_SignalFFT_3_S16C_Mod(mlib_s16 *srcdstc,
39 mlib_s32 order);
40
41
42 mlib_status mlib_SignalFFT_3_F32_F32(mlib_f32 *dstr,
43 mlib_f32 *dsti,
44 const mlib_f32 *srcr, const mlib_f32 *srci, mlib_s32 order);
45
46
47 mlib_status mlib_SignalFFT_3_F32C_F32C(mlib_f32 *dstc,
48 const mlib_f32 *srcc,
49 mlib_s32 order);
50
51
52 mlib_status mlib_SignalFFT_3_F32C_F32(mlib_f32 *dstc,
53 const mlib_f32 *srcr,
54 mlib_s32 order);
55
56
57 mlib_status mlib_SignalFFT_3_F32(mlib_f32 *srcdstr,
58 mlib_f32 *srcdsti,
59 mlib_s32 order);
60
61
62 mlib_status mlib_SignalFFT_3_F32C(mlib_f32 *srcdstc,
63 mlib_s32 order);
64
65
66 mlib_status mlib_SignalFFT_3_D64_D64(mlib_d64 *dstr,
67 mlib_d64 *dsti,
68 const mlib_d64 *srcr, const mlib_d64 *srci, mlib_s32 order);
69
70
71 mlib_status mlib_SignalFFT_3_D64C_D64C(mlib_d64 *dstc,
72 const mlib_d64 *srcc,
73 mlib_s32 order);
74
75
76 mlib_status mlib_SignalFFT_3_D64C_D64(mlib_d64 *dstc,
77 const mlib_d64 *srcr,
78 mlib_s32 order);
79
80
81 mlib_status mlib_SignalFFT_3_D64(mlib_d64 *srcdstr,
82 mlib_d64 *srcdsti,
83 mlib_s32 order);
84
85
86 mlib_status mlib_SignalFFT_3_D64C(mlib_d64 *srcdstc,
87 mlib_s32 order);
88
89
91 Each of the functions in this group performs Fast Fourier Transform
92 (FFT).
93
94
95 The following equation is used for forward FFT:
96
97 1 N-1
98 dst[k] = ---- SUM {src[n] * exp(-j2*PI*n*k/N)}
99 C1 n=0
100
101
102
103 and the following equation is used for inverse FFT (IFFT):
104
105 1 N-1
106 dst[n] = ---- SUM {src[k] * exp(j2*PI*n*k/N)}
107 C2 k=0
108
109
110
111 where
112
113 k = 0, 1, ..., (N - 1)
114 n = 0, 1, ..., (N - 1)
115 N = 2**order
116
117
118
119 The signal FFT/IFFT functions can be categorized into four groups
120 according to the ScaleMode in the function names in the following form:
121
122 mlib_Signal[FFT|IFFT]_ScaleMode_OutType_InType_OpMode()
123 mlib_Signal[FFT|IFFT]_ScaleMode_DataType_OpMode()
124
125
126
127 The scaling factors C1 and C2 used in the equations are defined as fol‐
128 lows:
129
130 o For ScaleMode = 1, C1 = 1 and C2 = 2**order.
131
132 o For ScaleMode = 2, C1 = 2**order and C2 = 1.
133
134 o For ScaleMode = 3, C1 = C2 = 2**(order/2) when order is
135 even, or C1 = 2**((order+1)/2) and C2 = 2**((order-1)/2)
136 when order is odd.
137
138 o For ScaleMode = 4, C1 = 2**P and C2 = 2**Q, where P and Q
139 are adaptive scaling factors and are generated by the func‐
140 tions.
141
142
143 For functions with only real parts for the source signal, the imaginary
144 parts are assumed to be all zero. For functions with only real parts
145 for the destination signal, the imaginary parts are discarded. The
146 functions with only one data type in their names perform the operation
147 in place.
148
150 Each function takes some of the following arguments:
151
152 dstr Destination signal array that contains the real parts.
153
154
155 dsti Destination signal array that contains the imaginary parts.
156
157
158 srcr Source signal array that contains the real parts.
159
160
161 srci Source signal array that contains the imaginary parts.
162
163
164 dstc Complex destination signal array. dstc[2*i] contains the
165 real parts, and dstc[2*i+1] contains the imaginary parts.
166
167
168 srcc Complex source signal array. srcc[2*i] contains the real
169 parts, and srcc[2*i+1] contains the imaginary parts.
170
171
172 srcdstr Source and destination signal array that contains the real
173 parts.
174
175
176 srcdsti Source and destination signal array that contains the imagi‐
177 nary parts.
178
179
180 srcdstc Complex source and destination signal array. srcdstc[2*i]
181 contains the real parts, and srcdstc[2*i+1] contains the
182 imaginary parts.
183
184
185 order Order of the transformation. The base-2 logarithm of the
186 number of data samples.
187
188
190 The function returns MLIB_SUCCESS if successful. Otherwise it returns
191 MLIB_FAILURE.
192
194 See attributes(5) for descriptions of the following attributes:
195
196
197
198
199 ┌─────────────────────────────┬─────────────────────────────┐
200 │ ATTRIBUTE TYPE │ ATTRIBUTE VALUE │
201 ├─────────────────────────────┼─────────────────────────────┤
202 │Interface Stability │Committed │
203 ├─────────────────────────────┼─────────────────────────────┤
204 │MT-Level │MT-Safe │
205 └─────────────────────────────┴─────────────────────────────┘
206
208 mlib_SignalFFT_1(3MLIB), mlib_SignalFFT_2(3MLIB), mlib_Sig‐
209 nalFFT_4(3MLIB), mlib_SignalIFFT_1(3MLIB), mlib_SignalIFFT_2(3MLIB),
210 mlib_SignalIFFT_3(3MLIB), mlib_SignalIFFT_4(3MLIB), attributes(5)
211
212
213
214SunOS 5.11 2 Mar 2007 mlib_SignalFFT_3(3MLIB)