I was trying to implement a three-qubit bit-flip code for shared entangled state. I was curious to analyze this mathematically, but the problem is I can't calculate the statevector after encoding. Here is the circuit: enter image description here

I used Qiskit to calculate the statevector, but it turns out to be 0's for every qubit. I am very confused because I don't know if this is valid or not!

enter image description here

Could you please guide me a bit? Also, should this circuit have higher fidelity? Please comment on this as well.

  • $\begingroup$ This is certainly not the output that you should be getting for the circuit you've displayed. (It should be $(|000000\rangle+|111111\rangle)/\sqrt{2}$.) I'm not a qiskit expert, but I'm sure the experts on this site would find it helpful to see the whole code that you've written to define bit_flip_qc. $\endgroup$
    – DaftWullie
    Commented Apr 25, 2022 at 6:36
  • $\begingroup$ I have found the solution. Thanks everyone! $\endgroup$ Commented Apr 25, 2022 at 9:40

2 Answers 2


The method Statevector.evolve()[1] returns the evolution result. It does not change the instance it called in. So all what you need is to change your code to become:

av = Statevector.from_label('000000')
result = av.evolve(bit_flip_qc)
  • $\begingroup$ Wow, it's working now. Thanks a lot!! $\endgroup$ Commented Apr 25, 2022 at 9:39

I suggest you make 2 repetition logical qubits first and entangle them with logical CNOT operator. you can check every single steps separately.

  1. Make $|+_L\rangle_{Alice} = {1\over\sqrt{2}} (|000 \rangle + |111 \rangle )$ and $|0_L\rangle_{bob} = |000 \rangle$

  2. Apply three CNOT operators transversally

  3. Final state will be ${1\over\sqrt{2}} (|000_{Alice}000_{bob} \rangle + |111_{Alice}111_{bob} \rangle )$


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.