我发现了一篇关于适用于原地FFT的比特反转算法的非常有趣的论文:“一个简单的比特反转置换算法”,作者是Urszula Rutkowska,发表于1990年(doi.org/10.1016/0165-1684(91)90008-7)。
然而,她的G1算法似乎不起作用,因为对于
请问是否有任何关于该论文的勘误或如何修复算法的信息?
该论文的伪代码:
注:本段内容无需翻译,已是中文。
然而,她的G1算法似乎不起作用,因为对于
N1 = L << 1
和swap(a + 1, a + N1);
,第一次迭代的结果超出了边界。我假设L
表示输入向量的长度。请问是否有任何关于该论文的勘误或如何修复算法的信息?
该论文的伪代码:
G1(L)
{int i,j,L1
N1,N2,a,b;
unsigned k;
j=0; L1=L-1;
N1=L<<1;N2=N1+1;
for(i=0;i<L1;i++)
{if(i<j)
{ a=i<<1;
b=j<<1;
swap(a,b);
swap(a+N2,b+N2);
swap(a+1,b+N1);
swap(b+1,a+N1);
}
else
if(i==j)
{ a=i<<1;
swap(a+1,a+N1);
}
k=L>>1;
while(k<=j){ j=j-k;
k=k>>1;
}
j+=k;
}
i<<=1;
swap(i+1,i+N1);
}
论文截图:
注:本段内容无需翻译,已是中文。
n = 2 ^ t
)。[免责声明:Elster是我的导师。] - Aasmund Eldhuset