FFT倒序算法——Rader算法

本文介绍了如何使用Rader算法来求解倒序二进制数,通过判断最高位来决定位移,并通过示例代码展示了如何在C语言中实现这一算法,最终输出倒序排列的整数序列。
摘要由CSDN通过智能技术生成
在实现FFT计算的时候,第一步要做的就是实现倒位序的实现,这里有一种算法,叫做雷德(Rader)算法。
下面假如使用A[I]存的是顺序位序,而B[J]存的是倒位序。I<J的时候需要变序,I>J的时候就不用,避免重复而做无用功。
例如   N = 8 的时候,
倒位序 顺序          二进制表示      倒位序 顺序
0 0                                       000           000
4 1                                     100         001
2 2                                     010           010           
6 3                                     110           011
1 4                                     001                 100
5 5                                     101         101
3 6                                     011         110
7 7                                     111         111

自然序排列的二进制数,其下面一个数总比上面的数大1,而倒序二进制数的下面一个数是上面一个数在最高位加1并由高位向低位仅为而得到的。 若已知某数的倒序数是J,求下一个倒序数,应先判断J的最高位是否为0,与k=N/2进行比较即可得到结果。如果k>J,说明最高位为0,应把其变成1,即J+N/2,这样就得到倒序数了。如果J<=k,即J的最高位为1,将最高位化为0,即J-N/2,再判断次高位;与k=N/4进行比较,若为0,将其变位1,即J+N/4

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值