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