void tw_gen (float *w, int n)
{
int i, j, k;
// const double PI = 3.141592654;
for (j = 1, k = 0; j <= n>> 2; j = j << 2)
{
for (i = 0; i < n>> 2; i += j)
{
#ifdef _LITTLE_ENDIAN
w[k] = (float) sin (2 * 3.141592654 * i / n);
w[k + 1] = (float) cos (2 * 3.141592654 * i / n);
w[k + 2] = (float) sin (4 * 3.141592654 * i / n);
w[k + 3] = (float) cos (4 * 3.141592654 * i / n);
w[k + 4] = (float) sin (6 * 3.141592654 * i / n);
w[k + 5] = (float) cos (6 * 3.141592654 * i / n);
#else
w[k] = (float) cos (2 * 3.141592654 * i / n);
w[k + 1] = (float) -sin (2 * 3.141592654 * i / n);
w[k + 2] = (float) cos (4 * 3.141592654 * i / n);
w[k + 3] = (float) -sin (4 * 3.141592654 * i / n);
w[k + 4] = (float) cos (6 * 3.141592654 * i / n);
w[k + 5] = (float) -sin (6 * 3.141592654 * i / n);
#endif
k += 6;
}
}
}
我查看了例程中的FFT产生旋转因子的代码如上所示,我想请问这个旋转因子为什么都是以6为周期的?是否针对任意2的整数幂的N,都可以用该函数产生旋转因子?