快速傅里叶变换(FFT)算法详解
1. 傅里叶变换基础
傅里叶变换在信号处理领域有着至关重要的地位。在相关理论中,有公式 (W_{Nl} = C_l \times B_l \times A_l) ,其中 (A_l) 包含输入加法,(B_l) 是带有傅里叶系数的对角矩阵,(C_l) 包含输出加法。不过,这种矩阵表示方式使得短卷积算法的确切步骤定义变得不那么容易,因为输入和输出加法的计算顺序信息丢失了。
Rader 算法和短 Winograd 卷积的结合,也就是 Winograd DFT 算法,后续会和索引映射一起用于引入 Winograd FFT 算法。在已知的所有 FFT 算法中,Winograd FFT 算法的实乘法次数最少。
2. 快速傅里叶变换(FFT)算法概述
FFT 算法的分类依据是 Burrus 提出的输入和输出序列的不同(多维)索引映射。一般来说,将长度为 (N) 的 DFT 变换为多维 (N = \prod_{l} N_l) 表示,通常讨论两因子情况就足够了,因为更高维度可以通过迭代替换其中一个因子来构建。
我们通过以下变换来处理(时间)索引 (n):
(n = An_1 + Bn_2 \mod N),其中 (0 \leq n_1 \leq N_1 - 1),(0 \leq n_2 \leq N_2 - 1),(N = N_1N_2),(A)、(B \in Z) 为待定义常数。利用这个索引变换,可构建数据的二维映射 (f : C^N \to C^{N_1\times N_2}) 。
对输出(频率)域应用另一个索引映射 (k) 可得:
(k = Ck_1 + Dk_2 \mod N)
超级会员免费看
订阅专栏 解锁全文
91

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



