Closed yaelbh closed 2 years ago
From A Quantum Engineer’s Guide to Superconducting Qubits
, I see we need to use two RX(pi/2):
sx and RX(pi/2) are the same up to a global phase: https://qiskit.org/documentation/stubs/qiskit.circuit.library.SXGate.html?highlight=sxgate#qiskit.circuit.library.SXGate, so either one should work. On the IBM backend, sx is more natural but they probably both work the same here (I am not totally sure how transpiling works out since we typically avoid full transpilation in experiments).
Sometime Rx(pi/2) is translated into weird sequence of two sx pulses (with opt level0), so I recommend to directly use sx. And current Ramsey implementation (H-delay-H) counts |0> probabiliity to match with the curve of the standard sx-delay-sx sequence. This part should be corrected.
@nkanazawa1989 Just curious, is Rx(pi/2) more in the "spirit" of qiskit than sx or are they just equivalent? We use sx in a lot of other experiments so it is fine to use it here. I was wondering if it was something we do because we usually target the IBM backends. Would it be more proper to use Rx(pi/2) and transpile it individually with high opt level while keeping level0 for the whole circuit?
I don't remember the details but it does some unitary decomposition, i.e.
from qiskit import QuantumCircuit, transpile
import numpy as np
qc = QuantumCircuit(1)
qc.rx(np.pi/2, 0)
transpile(qc, basis_gates=["sx", "rz"], optimization_level=0).draw()
will give you
global phase: 3π/2
┌─────────┐┌────┐┌──────────┐┌────┐┌──────────┐
q: ┤ Rz(π/2) ├┤ √X ├┤ Rz(3π/2) ├┤ √X ├┤ Rz(5π/2) ├
└─────────┘└────┘└──────────┘└────┘└──────────┘
I agree with using rx(pi/2) is more general, but using sx should be fine because it can be translated into the provided gate set if it is universal. In the context of measurement basis projection we often use ry(pi/2) and in that case I use ry gate with hard-coded transpiler config of optimization_level=1
.
Done
Quoting a discussion that we had: @nkanazawa1989 (slightly edited): I was wondering why T2Ramsey uses H-delay-H and measures P0. I always use SX-delay-SX followed by measuring P1 (both are the same but I guess SX-delay-SX-P1 is more straightforward). I guess this sequence is from Ignis where we didn't have SX gate in the basis and SX-delay-SX had been giving us inefficient decomposition. I think we no longer need to use this sequence (to eliminate cal error probably we can do SX-delay-SXdag). @wshanks: Oh, yes, I am familiar with SX-delay-SX, not H-delay-H
We should perform the suggested modification, probably after #438 is done. After some delay, we can proceed with #438 now.