理论教育 如何进行位码倒置?实现高效率蝶形算法的关键

如何进行位码倒置?实现高效率蝶形算法的关键

时间:2023-06-23 理论教育 版权反馈
【摘要】:依靠计算机运行时间抽取FFT计算,从而获得高效率的蝶形算法,输入的值必须重新排列成众所周知的位码倒置形式。对位码倒置来说,数据矩阵元素的二进制索引号在输入端是左右倒置的。在蝶形图中惟一的区别是,对于频率抽取FFT来说蝶形部分的顺序是倒置的,旋转因子交换位置,并且输出值早于输入值出现在位码倒置的顺序中。位码倒置确保不会让输入元素被输出元素的值所覆盖,除非不再需要执行更多的FFT运算。

如何进行位码倒置?实现高效率蝶形算法的关键

在蝶形图左边输入值的顺序对你来说也许有些陌生。依靠计算机运行时间抽取FFT计算,从而获得高效率的蝶形算法,输入的值必须重新排列成众所周知的位码倒置形式。你知道为了给一个N=2n的FFT输入矩阵N值指出地址(或索引),就需要n比特(如果这个索引值展开成二进制形式)。对位码倒置来说,数据矩阵元素的二进制索引号在输入端是左右倒置的。例如,在图8.5中,你可以认为第二个输入元素是x[1]。有索引号扩展为一个3比特二进制值就是x[001],导致索引号的比特值就是x[100],它在十进制符号表示中是x[4]。这是实际的第二个输入元素在位码倒置后的位置。时间抽取FFT的对偶操作是频率时间抽取FFT。在蝶形图中惟一的区别是,对于频率抽取FFT来说蝶形部分的顺序是倒置的,旋转因子交换位置,并且输出值早于输入值出现在位码倒置的顺序中。这并不是说本质上时间抽取FFT优于频率抽取FFT,并且实际的选择是具有典型地随机性。

978-7-111-33881-9-Part01-204.jpg

图8.3 时间抽取基2的FFT蝶形图,N=2,未标注支路的增益+1

978-7-111-33881-9-Part01-205.jpg

图8.4 时间抽取基2的FFT蝶形图,N=4,未标注支路的增益+1(www.daowen.com)

978-7-111-33881-9-Part01-206.jpg

图8.5 时间抽取基2的FFT蝶形图,N=8,未标注支路的增益+1

当我们在蝶形算法的任何一个输入边或者输出边使用位码倒置时,我们能够执行叫作“in-place”的运算。这意味着相同的矩阵保存输入数据也用于保存输出数据。位码倒置确保不会让输入元素被输出元素的值所覆盖,除非不再需要执行更多的FFT运算。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈