经典离散傅立叶变换简介:
DFT变换N复数的序列:= x 0,x 1,x 2,...。。。,x N - 1{xn}:=x0,x1,x2,...,xN−1成另一个复数序列{Xk}:=X0,X1,X2,...由我们可以根据需要乘以合适的归一化常数。此外,是否在公式中采用加号或减号取决于我们选择的约定。
Xk=∑n=0N−1xn.e±2πiknN
假设给定且x = (1 2 − i − i − 1 + 2 i)。N=4x=⎛⎝⎜⎜⎜12−i−i−1+2i⎞⎠⎟⎟⎟
我们需要找到列向量。通用方法已显示在Wikipedia页面上。但是我们将为此开发矩阵表示法。通过将x乘以矩阵可以很容易地获得X:XXx
M=1N−−√⎛⎝⎜⎜⎜11111ww2w31w2w4w61w3w6w9⎞⎠⎟⎟⎟
其中是ë - 2 π 我w。矩阵的每个元素基本上都是wij。1个e−2πiNwij只是一个归一化常数。1N√
最终,变为:1X。12⎛⎝⎜⎜⎜2−2−2i−2i4+4i⎞⎠⎟⎟⎟
现在,坐一会儿,注意一些重要的属性:
- 矩阵所有列彼此正交。M
- 所有列的大小均为1。M1
- 如果您将乘以具有很多零(较大扩展)的列向量,则最终将得到只有几个零(窄扩展)的列向量。反之亦然。(校验!)M
可以很简单地注意到,经典DFT的时间复杂度为。这是因为获得的每一行X,ñ需要执行的操作。X中有N行。O(N2)XNNX
快速傅立叶变换:
现在,让我们看一下快速傅立叶变换。快速傅立叶变换利用傅立叶变换的对称性来减少计算时间。简而言之,我们将大小为的傅里叶变换重写为大小为N / 2的两个傅里叶变换-奇数和偶数项。然后,我们一次又一次地重复此操作,以成倍地减少时间。为了详细了解其工作原理,我们转向傅立叶变换的矩阵。在我们进行此操作的过程中,将DFT 8摆在您面前可能会有所帮助。请注意,由于w 8 = 1,所以指数以8为模。NN/2DFT88w8=1
请注意,第行与第j + 4行非常相似。另外,请注意第j
列与第j + 4列非常相似。因此,我们将傅立叶变换分为偶数和奇数列。jj+4jj+4
在第一帧中,我们通过描述第行和第k列来表示整个傅里叶变换矩阵:w j k。在下一帧中,我们将奇数列和偶数列分开,并类似地将要转换的向量分开。您应该说服自己,第一个平等确实是平等。在第三帧中,我们注意到w j + N / 2 = − w j(因为w n / 2 = − 1),从而增加了一些对称性
。jkwjkwj+N/2=−wjwn/2=−1
注意,奇数侧和偶数侧都包含项。但是,如果w是原始的第N个根,则w 2是原始的第N / 2个根。因此,第j,k个项为w 2 j k的矩阵实际上就是DFT (N / 2 )!现在我们可以用新的方式写DFT N:现在假设我们正在计算函数f (x )的傅立叶变换。w2jkww2N/2jkw2jkDFT(N/2)DFTNf(x)。我们可以写上面的操作为计算第j项的方程式˚F(Ĵ )。f^(j)
注意:在此情况下,图像中的QFT代表DFT。另外,M表示我们所说的N。
这将我们对的计算转换为DFT (N / 2 )的两个应用。我们可以将其转换为DFT (N / 4 )的四个应用程序,依此类推。只要ñ = 2 ñ一些ñ,我们可以打破我们的计算DFT ň到ň
的计算DFT 1 = 1。这大大简化了我们的计算。DFTNDFT(N/2)DFT(N/4)N=2nnDFTNNDFT1=1
在快速傅立叶变换的情况下,时间复杂度降低为(尝试自己证明)。这是对经典DFT的巨大改进,几乎是在现代音乐系统(如iPod)中使用的最新算法!O(Nlog(N))
具有量子门的量子傅立叶变换:
FFT的优势在于我们能够利用离散傅立叶变换的对称性来发挥我们的优势。QFT的电路应用使用相同的原理,但是由于叠加的能力QFT甚至更快。
QFT受FFT激励,因此我们将遵循相同的步骤,但是由于这是一种量子算法,因此步骤的实现将有所不同。也就是说,我们首先对奇数和偶数部分进行傅立叶变换,然后将奇数项乘以相位。wj
在量子算法中,第一步非常简单。奇数和偶数项叠加在一起:奇数项是最低有效位为那些,而偶数为0的那些。因此,我们可以将QFT (N / 2 )一起应用于奇数和偶数项。通过应用,我们将简单地将QFT (N / 2 )应用于n - 1个最高有效位,并通过对最低有效位应用Hadamard来重新组合奇数甚至适当地做到这一点。10QFT(N/2)QFT(N/2)n−1
Now to carry out the phase multiplication, we need to multiply each odd
term j by the phase wj . But remember, an odd number in binary ends with a 1 while an even ends with a 0. Thus we can use the controlled phase shift, where the least significant bit is the control, to multiply only the odd terms by the phase without doing anything to the even terms. Recall that the controlled phase shift is similar to the CNOT gate in that it only applies a phase to the target if the control bit is one.
Note: In the image M refers to what we are calling N.
The phase associated with each controlled phase shift should be equal to
wj where j is associated to the k-th bit by j=2k.
Thus, apply the controlled phase shift to each of the first n−1 qubits,
with the least significant bit as the control. With the controlled phase shift
and the Hadamard transform, QFTN has been reduced to QFT(N/2).
Note: In the image, M refers to what we are calling N.
Example:
Lets construct QFT3. Following the algorithm, we will turn QFT3 into QFT2
and a few quantum gates. Then continuing on this way we turn QFT2 into
QFT1 (which is just a Hadamard gate) and another few gates. Controlled
phase gates will be represented by Rϕ. Then run through another iteration to get rid of QFT2. You should now be able to visualize the circuit for QFT on more qubits easily. Furthermore, you can see that the number of gates necessary to carry out QFTN it takes is exactly
∑i=1log(N)i=log(N)(log(N)+1)/2=O(log2N)
Sources:
https://en.wikipedia.org/wiki/Discrete_Fourier_transform
https://en.wikipedia.org/wiki/Quantum_Fourier_transform
Quantum Mechanics and Quantum Computation MOOC (UC BerkeleyX) - Lecture Notes : Chapter 5
P.S: This answer is in its preliminary version. As @DaftWillie mentions in the comments, it doesn't go much into "any insight that might give some guidance with regards to other possible algorithms". I encourage alternate answers to the original question. I personally need to do a bit of reading and resource-digging so that I can answer that aspect of the question.