异星工厂吧 关注:62,318贴子:399,132
  • 2回复贴,共1

发点不一样的,FFT位反转均衡器

取消只看楼主收藏回复

前排提醒,这玩意不能用来混料,而且比同功能的均衡器复杂,实用性可谓脱裤子放屁,这里只是因为有趣才做
首先,快速傅里叶变换(Fast Fourier Transform)是快速计算离散傅里叶变换的算法。
算法里的核心操作叫蝴蝶变换,可以理解为把两个数字拿出来做运算,然后把得到的两个结果存储到这两个数字原版的位置上,在游戏中我们可以将蝴蝶变换理解为分流器。
FFT的结果的每一个元素和输入的每一个元素有关,也就是说仅修改输入序列的一个元素,整个结果序列都会被影响,所以在游戏里恰恰就是均衡器的功能。
但是这个算法的实现使得我们用原数据算出的结果序列的位置是位反转的,也就是说,原数据长度是16,那么我们得到的答案的第2(0010)个元素会存储在第4(0100)个位置上。所以把分流器去掉就成了位反转序列
下面我会解释一下实现上的细节


IP属地:湖北来自iPhone客户端1楼2023-12-06 18:44回复
    这是传送带部分的基础单元,功能是交换两路的顺序,像最简单的交换变量代码一样,我们还需要一路来作为暂时缓冲区,图中的最上面一路是缓冲区,交换二三路的位置
    和编程中通过异或运算省去缓冲变量的做法相似地,其实也可以用分流器卡一个特殊的状态来使得两路交换,但是这个状态极不稳定,所以我们还是用这种结构
    这个基础结构的不对称造成了最终无法做到对称


    IP属地:湖北来自iPhone客户端3楼2023-12-06 19:17
    回复
      2025-07-20 13:30:21
      广告
      这里为了可以完全用黄带,并且不超过八路的空间,做成了全部由交换单元堆砌成的结构,其实存在更高效的结构,但是会更不美观


      IP属地:湖北来自iPhone客户端5楼2023-12-06 19:46
      回复