A leap into quantum computing
Welcome to Quantum Leap, the blog where I will be sharing some of the current work being done, and challenges in the field of quantum computing. I will also use this soap box to attempt to intrigue fellow electrical engineers into considering the field as a viable area of research, as many of the challenges currently plaguing the field fall under engineering disciplines.
Now before I get too far into technical challenges around quantum computing, it seems prudent to give a quick run-through of the basics. Since there are already countless books, papers, and videos that offer a much better introduction and explanation of quantum computing than I would be able to, I will make it brief. I will focus on the Quantum Circuit Model, as it is much more relatable to classical computing, and can easily simulate most other quantum computing models.
Quantum Information Theory
The smallest unit of a quantum computer is the qubit, the quantum equivalent of the classical bit. As with the classical bit, a qubit can be in states 0 or 1, or more accurately represented as |0> or |1>, using bra-ket notation (these are the basis states or basis vectors of the qubit, as can be seen below). One of the properties that makes the qubit unique, and more powerful than a classical bit, is that it can also be in a superposition of the two states, α|0> + β|1>, where |α|2, |β|2 represent the probabilities of each state being measured.
You can also consider the states of the qubit through the use of the Bloch Sphere (or the Poincaré Sphere for those in optics) as seen in Figure 1.
Figure 1 The Bloch Sphere 
This is basically a sphere of radius = 1 in the three dimensional Cartesian plane, but with the y-axis being imaginary. Any pure state can now be represented as a point on this sphere (I specify pure state, as qubits can also be in mixed states, which is different from a superposition, but that is a topic for another time). If we are measuring in the Z basis, we can have |0> be +1 on the z-axis, and |1> be -1 on the z-axis, with the x- and y-axis representing superposition and phase.
The amount of time a qubit will remain in a given state before succumbing to noise and loss from the environment is called the decoherence time (as an example, how long a qubit will stay in |1> before it flips to |0>). Different physical implementations have different decoherence times, but the very nature of the qubit results in there always being some decoherence. This all might be starting to sound a little odd by now, but the important thing to remember is the qubit can be in a superposition of |0> and |1> and it will stay in a given state for a limited amount of time.
We can control a qubit by applying single qubit gates. These are equivalent to rotating our point on the Bloch sphere around one of the axes. One of the simplest is a Pauli-X gate (the quantum equivalent of a NOT gate), which rotates the point around the x-axis by π radians. If you are in the |0> state, the gate would change the qubit to the |1> state. This is not enough to do any useful computations, so gates that allow interactions between qubits are also required – such as the C-NOT gate – which operates in the same manner as the classical equivalent. One can see numerically how this works through representing the gates as matrices, as shown below.
How such a gate is physically accomplished is dependent on which physical implementation of a quantum computer is being used, as analysis of the system’s Hamiltonian (think of the Hamiltonian as an equation representing the total energy of the system) is required. However, we are in luck, as many of the engineering issues in the field can be understood without ever looking at a Hamiltonian.
As I mentioned earlier, much of how these gates are physically accomplished is dependent on which implementation is being used. The list of implementations is actually quite large, as it is not only the physical quantum object that must be chosen (such as a photon, electron, or molecule), but also which property of said object is being used as your basis state (as in, which physical change means your qubit has gone from |0> to |1>, such as polarization or spin). My personal favourite implementation is the transmon, which is a type of superconducting charge qubit. This is not only because it seems very promising for scalability, but because much of my electrical engineering background is applicable in their design.
Microwave engineering is extensively used with superconducting qubits, as their transition frequency (the energy to go from |0> to |1>) is in the L to X-bands (approx. 1GHz - 10GHz). Careful design of your on chip coplanar-waveguide (CPW) circuitry is critical to optimally performing qubits, and end up looking similar to those seen in Figure 2.
Figure 2 Josephson Quantum Processor from Martinis Group at UCSB 
Signal processing and telecommunications engineering also play a role, as those qubit gates I mentioned earlier are actually implemented by wrapping carefully designed pulse envelopes around, essentially, a Quadrature Amplitude Modulated signal (Correct! The gates aren’t physical, but are actually microwave pulses). Micro & electronics engineering is also vitally important, as all communication between the qubits and the outside world must be handled through extremely high quality mixers, amplifiers, circulators, and other components, operating at various temperatures (from 10mK to room temperature) and power levels (from -130dBm to around 0dBm).
I did earlier claim I would be brief, so before diving too far into the realms of information overload, I will draw to a close. All of these applications of engineering in quantum computing research, and more specifically current research problems surrounding them, will be my targets for future posts. I will continue to focus on superconducting implementations, but later expand to alternatives and other areas of quantum computing research.
I do hope this bit of an appetizer has whetted the appetite of some EEs out there who may be spinning qubits of their own in the near future.
2. R. Barends, J. Kelly, A. Megrant, A. Veitia, D. Sank, E. Jeffrey, T.C. White, J. Mutus, A. G. Fowler, B. Campbell, Y. Chen, Z. Chen, B. Chiaro, A. Dunsworth, C. Neill, P. O’Malley, P. Roushan, A. Vainsencher, J. Wenner, A. N. Korotkov, A.N. Cleland, John M. Martinis. Superconducting Quantum Circuits at the Surface Code Threshold for Fault Tolerance. Nature 508, 500–503 (2014) doi:10.1038/nature13171