IQFT 邏輯閘實作。
邏輯閘實作
根據上一篇 “Quantum Fourier Transform” 的內容,本篇延續相關知識並補充一些實作。
注意到這邊雖然看起來只是利用 $M_{QFT}\times M_{IQFT} = I$ 的特性,不過這是因為目前尚未有比較好的例子可以當作 IQFT 的輸入,所以這邊利用 QFT 先將輸入轉成 phase,接著再利用 IQFT 從這些 phase 分析出規律後輸出各個頻率。另外,為了保留完整性,所以 SWAP 並沒有被省略。
OPENQASM 2.0;
include "qelib1.inc";
qreg q[2];
creg c[2];
// Input
x q[0];
barrier q[0], q[1];
// QFT
h q[1];
cu1(pi / 2) q[0], q[1];
h q[0];
swap q[0], q[1];
// IQFT
swap q[0], q[1];
h q[0];
cu1(-pi / 2) q[0], q[1];
h q[1];
// Output
barrier q[0], q[1];
measure q[0] -> c[0];
measure q[1] -> c[1];
實際使用 IBM QPU 執行結果
資料的 encoding 是 q[0]
為 LSB,q[1]
為 MSB。所以輸出與輸入相同皆為 01
。