基2 DIF-FFT 实现
书本上说基2 DIF-FFT 实现也能输入倒序,输出顺序我向问下,在DIF 时,如果对于旋转因子 按照输入倒位,输出自然的方式的 旋转因子变化规律是怎么杨的 ??
书本上是将地址 k除以 m-1 (m为基2蝶形运算的级次,既第m级的基2蝶形运算)
然后位序颠倒,但是我实际发现,把 地址 k除以 m-1 后,旋转因子地址就是 0了
(因为k除以 m-1 后为0,倒序后仍来是 0)
for(l=1;l<=STAGE;l++)
{
lei = 1<<(l-1); /* 间隔:这里用的是L而不是1 */
le = lei<<1 ;
e = 1<<(l-1) ; //
for(j=0;j<lei;j++)
{
int a = (j/e)%N;
a = inverse(a,STAGE,2); // 位序颠倒
v.x=rom[a*2]; v.y=-rom[a*2+1];
for(i=j;i<N;i=i+le)
{
ip=i+lei ;
t=EE(xin[ip],v); // 两个复数相乘
t.x=xin[i].x-xin[ip].x ; t.y=xin[i].y-xin[ip].y ;
xin[i].x=xin[i].x+xin[ip].x ; xin[i].y=xin[i].y+xin[ip].y ;
xin[ip]=EE(t,v);
}
}
}
难道我的理解有错误吗 ?