// 基-4蝶形运算核心代码(伪代码)
void butterfly_4(float *x, float *w, int n) {
for (int k=0; k<n/4; k++) {
float t0 = x[k];
float t1 = x[k+n/4];
float t2 = x[k+n/2];
float t3 = x[k+3*n/4];
// 蝶形运算
x[k] = t0 + t1 + t2 + t3;
x[k+n/4] = t0 - j*t1 - t2 + j*t3;
x[k+n/2] = t0 - t1 + t2 - t3;
x[k+3*n/4] = t0 + j*t1 - t2 - j*t3;
// 应用旋转因子
apply_twiddle_factors(x, w, k, n);
}
}
|