UP | HOME

Ping's Quantum Computing Notes

量子傅里叶变换详解 (2) 逆傅里叶变换

Ping Zhou, 2021-05-26

既然有『量子傅立叶变换』,那么自然也有它的逆变换,今天就来聊聊这个话题。

量子傅立叶变换和逆变换

前文说过,对于任意状态 \(|\psi\rangle\) :

\begin{matrix} |\psi\rangle = \sum_{j=0}^{N-1}f(j)|j\rangle & (N=2^n) \end{matrix}

对它进行量子傅立叶变换QFT后,会得到一个新状态:

\begin{matrix} |\tilde\psi\rangle = QFT|\psi\rangle = \sum_{k=0}^{N-1}\tilde f(k)|k\rangle, \\\ \\\ \tilde f(k) = \frac{1}{\sqrt{N}} \sum_{j=0}^{N-1} e^{2\pi ijk/N} f(j) \\\ = \frac{1}{\sqrt{N}} \sum_{j=0}^{N-1} \omega^{jk} f(j) & (\omega=e^{2\pi i/N}) \\\ \end{matrix}

那么量子傅里叶逆变换 \(QFT^{-1}\) 是什么样的?

很简单,其实就是把e的指数加个负号:

\begin{matrix} |\phi\rangle = \sum_{k=0}^{N-1} \tilde f(k) |k\rangle \\\ \\\ QFT^{-1} |\phi\rangle = \sum_{j=0}^{N-1} g(j) |j\rangle \\\ \\\ g(j) = \frac{1}{\sqrt{N}} \sum_{k=0}^{N} \omega^{-jk} \tilde f(k) \\\ \end{matrix}

可以看到,量子傅立叶逆变换和QFT非常相似,唯一的区别就是e的指数上多了个负号。

为什么多个负号就变成逆变换了呢?下面我们来验证一下。

量子傅立叶逆变换的验证

假如我们对一个状态 \(|\psi\rangle\) 作了QFT:

\begin{matrix} |\psi\rangle = \sum_{j=0}^{N-1}f(j)|j\rangle & (N=2^n)\\\ \\\ QFT|\psi\rangle = \sum_{k=0}^{N-1}\tilde f(k)|k\rangle \\\ \tilde f(k) = \frac{1}{\sqrt{N}} \sum_{m=0}^{N-1} e^{2\pi imk/N} f(m) \\\ = \frac{1}{\sqrt{N}} \sum_{m=0}^{N-1} \omega^{mk} f(m) & (\omega = e^{2\pi i/N}) \end{matrix}

那么对它作逆变换的话:

\begin{matrix} QFT^{-1} QFT|\psi\rangle = \sum_{j=0}^{N-1} g(j) |j\rangle \\\ \end{matrix}

所以我们验证的目标,是要证明 \(g(j) = f(j)\) ,也就是逆变换后回到最初的状态。

qft_inverse.png

把 \(\tilde f(k)\) 代入到前面的公式里:

\begin{matrix} g(j) = \frac{1}{\sqrt{N}} \sum_{k=0}^{N-1} \omega^{-jk} \tilde f(k) \\\ = \frac{1}{\sqrt{N}} \sum_{k=0}^{N-1} \omega^{-jk} \left[ \frac{1}{\sqrt{N}} \sum_{m=0}^{N-1} \omega^{mk} f(m) \right] \\\ = \frac{1}{N} \sum_{k=0}^{N-1} \omega^{-jk} \sum_{m=0}^{N-1} \omega^{mk} f(m) \end{matrix}

这里面, \(j\) 是 \(g(j)\) 的参数,对每个 \(g(j)\) 来说是确定的,然后里面有2个嵌套的求和,分别遍历 \(k, m\) ,我们把两层求和项展开成二维的表就能看清楚:

  m=0 m=1 m=N-1
k=0 \(\omega^{0(0-j)}\) \(\omega^{0(1-j)}\) \(\omega^{0(N-1-j)}\)
k=1 \(\omega^{1(0-j)}\) \(\omega^{1(1-j)}\) \(\omega^{1(N-1-j)}\)
k=N-1 \(\omega^{(N-1)(0-j)}\) \(\omega^{(N-1)(1-j)}\) \(\omega^{(N-1)(N-1-j)}\)
  f(0) f(1) f(N-1)

这个二维表里面,每一列对应求和项里的一个 \(f(m)\) 的系数,而 \(g(j)\) 就是整个二维表之和。

然后分清况讨论:

如果某一列(例如第m列)有 \(m \ne j\) ,那么该列 \(f(m)\) 的系数就是:

\begin{matrix} \sum_{k=0}^{N-1} \omega^{k(m-j)} = \sum_{k=0}^{N-1} a^k && (a = \omega^{m-j} = e^{2\pi i(m-j)k/N}) \\\ \end{matrix}

根据几何级数性质, \(\sum_{k=0}^{N-1} a^k=\frac{a^N-1}{a-1}\) ,以及 \(a^N = e^{2\pi i(m-j)}=1\) ,可知:

\begin{matrix} \sum_{k=0}^{N-1} \omega^{k(m-j)} = \sum_{k=0}^{N-1} a^k = 0 \end{matrix}

所以当 \(m \ne j\) 的时候, \(f(m)\) 的系数是0。也就是说,这个二维表里面,除了第 \(j\) 列以外,其他的所有列系数之和都是0!

接下来看,如果 \(m=j\) ,也就是第 \(j\) 列的系数之和:

\begin{matrix} \sum_{k=0}^{N-1} \omega^{k(m-j)} = \sum_{k=0}^{N-1} \omega^0 = N \end{matrix}

综上所述, \(g(j)\) 的这个二维表里面,只有第 \(j\) 列,对应 \(f(j)\) 的系数加起来是非0,所以:

\begin{matrix} g(j) = \frac{1}{N} N f(j) = f(j) \end{matrix}

因此经过逆变换后又回到了最初的状态 \(|\psi\rangle=\sum_{k=0}^{N-1} f(j)|j\rangle\) ,我们验证了量子傅立叶逆变换的作用。