8 const double PI = 3.141592654;
14 for (j = 1, k = 0; j <= numPoints >> 2; j = j << 2) {
15 for (i = 0; i < numPoints >> 2; i += j) {
17 pW[k] = (
FFTLIB_F32) cos(2 * PI * i / numPoints);
18 pW[k + 1] = (
FFTLIB_F32) -sin(2 * PI * i / numPoints);
19 pW[k + 2 * t] = (
FFTLIB_F32) cos(4 * PI * i / numPoints);
20 pW[k + 2 * t + 1] = (
FFTLIB_F32) -sin(4 * PI * i / numPoints);
21 pW[k + 4 * t] = (
FFTLIB_F32) cos(6 * PI * i / numPoints);
22 pW[k + 4 * t + 1] = (
FFTLIB_F32) -sin(6 * PI * i / numPoints);
34 const double PI = 3.141592654;
38 for (i = 0; i < numPoints >> 1; i++) {
39 pSf[2 * i] = (
FFTLIB_F32) (0.5 * (1 - sin(2 * PI * i / numPoints)));
40 pSf[2 * i + 1] = (
FFTLIB_F32) (0.5 * (-cos(2 * PI * i / numPoints)));
47 pSf[2 * numPoints - 2 * i - 2] = (
FFTLIB_F32) (0.5 * (1 + sin(2 * PI * i / numPoints)));
48 pSf[2 * numPoints - 2 * i - 2 + 1] = (
FFTLIB_F32) (0.5 * (cos(2 * PI * i / numPoints)));
float FFTLIB_F32
Single precision floating point.
void tw_gen_r2c(FFTLIB_F32 *pW, int32_t numPoints)
This function generates twiddle factors required for the N/2-point FFT.
void split_factor_gen_r2c(FFTLIB_F32 *pSf, int32_t numPoints)
This function generates the split factors required to post process the N/2-point FFT output.