快速傅里叶变换与蒙特卡罗方法详解
1. 快速傅里叶变换(FFT)的对称性与优化
在使用FFT时,通常希望有一个有序输入、有序输出的算法。通过对每个递归分解巧妙选择 (P_{\ell}) ,可以实现这样的算法,同时这些算法也体现了数据依赖和内存步长的重要概念。值得注意的是,对按位反转输出进行重新排序的后处理步骤几乎与FFT本身的计算成本相当,这凸显了在当今计算设备中,内存流量是最为重要的考虑因素。
当输入序列具有某些对称性时,可以进一步减少计算量。以下是几种不同对称性情况下的FFT优化方法:
- 输入为实序列 :若 (n) 维输入仅包含实元素,输出 (y = W_nx) 满足复共轭条件,即输出序列 (y) 的后半部分是前半部分按逆序的复共轭。Cooley等人提出的方法可将 (n) 维FFT简化为 (n/2) 维复FFT加上 (O(n)) 操作的后处理步骤。逆操作类似,但有一个预处理步骤,然后进行 (n/2) 维复FFT。这种方法能将操作计数从 (O(n \cdot log (n))) 降低,且 (n/2) 维FFT和 (O(n)) 操作的后(预)处理步骤都可并行化。
- 输入为实对称序列 :若输入序列 (x \in R^n) 为实对称序列,Dollimore方法将 (n) 维FFT拆分为三个部分:(O(n)) 的预处理、(O(n/4)) 维复FFT和 (O(n)) 维的后处理步骤。
- 输入为实反对称序列 :若输入序列为实反对称序列,同样采用Dollimore方法,先进行预处理,再进行 (n/4) 维复FFT,最后进行 (O(n)) 后处理步骤。
超级会员免费看
订阅专栏 解锁全文
440

被折叠的 条评论
为什么被折叠?



