这篇文章主要是为了实现量子傅里叶变换(Quantum Fourier Transform, QFT)的programming做准备,对QFT的算法以及它和在传统计算机上运行的FFT进行比较。
目录
1 FFT
FFT快速傅里叶变换是一种快速计算离散傅里叶变换(DFT)以及其逆变换(IDFT)的方法。简单起见,这里我们只对其正变换进行讨论。
1.1 DFT与FFT
DFT | FFT | |
定义式 | |
|
时间复杂度 | |
|
1.2 FFT原理
FFT能够大幅度对传统的DFT提速的原因在于,利用了傅里叶变换的对称性。
根据上面表格里的DFT定义式,用N+k代替k,我们不难得到:
这说明Xk是每N个loop后一重复的,即:
利用这种对称性,Cooley-turkey算法证明了,我们可以将DFT分为两部分,如下:
同理,上图中的拆分可以继续进行下去(代码体现为一个递归函数),因此我们不难发现最终的算法复杂度降低为了