FFT快速傅里叶变换-倒位序快速生成
2016-11-18 16:54
176 查看
FFT快速傅里叶变换-倒位序快速生成
目录
FFT快速傅里叶变换-倒位序快速生成目录
什么是倒位序
生成原理
代码
吐槽
什么是倒位序?
0 — 000 —> 000 — 01 — 001 —> 100 — 4
2 — 010 —> 010 — 2
3 — 011 —> 110 — 6
4 — 100 —> 001 — 1
5 — 101 —> 101 — 5
6 — 110 —> 011 — 3
7 — 111 —> 111 — 7
[目的]快速生成右侧数列
生成原理
以N=16为例步骤 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
① | 0 | 1 | ||||||||||||||
② | 0 | 2 | 1 | |||||||||||||
③ | 0 | 4 | 2 | 1 | ||||||||||||
④ | 0 | 8 | 4 | 2 | 1 | |||||||||||
⑤ | 0 | 8 | 4 | 4+8 | 2 | 1 | ||||||||||
⑥ | 0 | 8 | 4 | 12 | 2 | 2+8 | 2+4 | 2+12 | 1 | |||||||
⑦ | 0 | 8 | 4 | 12 | 2 | 10 | 6 | 14 | 1 | 1+8 | 1+4 | 1+12 | 1+2 | 1+10 | 1+6 | 1+14 |
⑧ | 0 | 8 | 4 | 12 | 2 | 10 | 6 | 14 | 1 | 9 | 5 | 13 | 3 | 11 | 7 | 15 |
代码
// 快速生成倒位序算法 EErr GenerateBitReversedOrder( int32_t * list, int32_t count ) { if ( !list || CheckPower2( count ) != ERR_NONE ) { log2console( "FFT GenerateBitReversedOrder Error - 参数错误\n" ); return ERR_INVALID_PARAM; } int32_t p, i; list[0] = 0; // 填充2的幂次 for ( p = count >> 1, i = 1; p != 0; p >>= 1, i <<= 1 ) list[p] = i; // 复制迭代 for ( p = 2; p < count; p <<= 1 ) { int32_t base = list[p]; for ( i = 1; i < p; ++i ) { list[p + i] = base + list[0 + i]; } } return ERR_NONE; }
吐槽
还是写算法好装X,随手写个简单程序就能发篇博客。不像写游戏UI,还得装个3D环境才能跑。我相信这个算法,这么简单,不可能是我第一个想出来的,只是,
百度了一下倒位序,一堆博客,都是讲所谓的雷德(Rader)[一句话的原理也能叫算法?],翻了一页百度的查找结果都是雷德,累的。
还有很多期刊论文,各种异想,虽然不错,但没法让我
Ctrl + C和
Ctrl + V。
这么多的文章,都只是一堆无效数据。
什么时候,百度才能实现有效的搜索?而不是掏出一箱子废纸,让用户自己一张张翻。
简单有效的数据分享,数据归类索引,真的这么难么?
或许还是需要有人,来将这遍地繁花,提炼成精油存好,否则就只是一地鸡毛。
相关文章推荐
- 快速傅里叶变换 FFT 【bzoj2194】 快速傅立叶之二
- 快速傅里叶变换 FFT 模板【bzoj2179】 FFT快速傅立叶
- BZOJ 2179 FFT快速傅立叶 快速傅里叶变换
- 2179: FFT快速傅立叶|快速傅里叶变换
- 用org.in2bits.MyXls快速生成excel(即使服务器未安装office也能生成excel)
- JSon实体类快速生成插件 GsonFormat 1.2.2
- shell脚本实现快速生成xml格式sitemap实例分享
- Bootstrap快速生成你网页
- Android Studio快速补全日志及生成TAG
- 如何快速生成100万不重复的8位编号
- 国内app快速生成平台对比
- SYD8801生成蓝牙profile的方法【生成128BIT的UUID】【 复制profile的特性等元素】【快速修改UUID】
- 【基于EF Core的Code First模式的DotNetCore快速开发框架】完成对DB First代码生成的支持
- 使用one-jar-appgen快速生成jar文件嵌套的eclipse工程
- JSon实体类快速生成插件 GsonFormat 1.2.2
- 简单两步快速学会使用Mybatis-Generator自动生成entity实体、dao接口和简单mapper映射(用mysql和oracle举例)
- Python实现快速傅里叶变换的方法(FFT)
- nativefier - 快速把任意网页生成桌面应用程序
- linux 快速生成超大文件
- NTT FFT 数论变换 快速傅里叶变换 模板