Jupyter notebook mode
from qutip import * import numpy as np import matplotlib.pyplot as plt plt.rcParams['figure.dpi'] = 150
Lecture 7.2: Wigner functions of mixed states¶
Interactive notebook
In this interactive notebook, we will explore the Wigner quasiprobability distributions of "mixed states" (or, more accurately, of mixed ensembles).
7.2.1. Example: Cat state vs. mixture of coherent states¶
First: a reminder of what the Wigner function of two coherent states at with opposite momentum look like:
N=30 rho1 = coherent_dm(N,3j) rho2 = coherent_dm(N,-3j) fig,ax = plt.subplots(1,2, figsize=(12,6)) plot_wigner(rho1, fig=fig, ax=ax[0]) ax[0].set_title(r"Coherent state $\alpha = 3i$") plot_wigner(rho2, fig=fig, ax=ax[1]) ax[1].set_title(r"Coherent state $\alpha = -3i$") plt.show()
Now, let's compare a cat state and a mixed state.
Reminder:
a cat state is a superposition of the wave functions:
whereas a 50/50 "mixed" state is defined by the sum of the density matrices:
N=30 rho1 = coherent_dm(N,3j) rho2 = coherent_dm(N,-3j) mixed = rho1 + rho2 psi1 = coherent(N,3j) psi2 = coherent(N,-3j) cat = psi1 + psi2 fig,ax = plt.subplots(1,2, figsize=(12,6)) plot_wigner(cat, fig=fig, ax=ax[0]) ax[0].set_title("Wigner function of \n a cat state of $\\alpha$ and $-\\alpha$") plot_wigner(mixed, fig=fig, ax=ax[1]) ax[1].set_title("Wigner function of \n a mixed state of $\\alpha$ and $-\\alpha$") plt.show()
What is the difference? The "fringes" are gone! Similar to the coherences in the off-diagonal entries of the density matrix, the fringes of the cat state above are an indication of the "coherence" of the quantum superposition.
Without this "coherence", the two "wave packets" do not interfere, as you can see if we plot :
# A hack to calculate the probability distribution x = np.linspace(-7.5,7.5,500) wigner_mixed = wigner(mixed,x,x) wigner_cat = wigner(cat,x,x) prob_mixed = np.sum(wigner_mixed,axis=0) prob_cat = np.sum(wigner_cat,axis=0) # Now the plot fig,ax = plt.subplots(1,2, figsize=(12,4)) ax[0].plot(x,prob_cat) ax[0].set_title("Cat state") ax[1].plot(x,prob_mixed) ax[1].set_title("Mixed state") ax[0].set_yticks([]) ax[1].set_yticks([]) ax[0].axhline(0,ls=':', c='grey') ax[1].axhline(0,ls=':', c='grey') ax[0].set_xlabel("$x$") ax[1].set_xlabel("$x$") ax[0].set_ylabel(r"$|\psi(x)|^2$") ax[1].set_ylabel(r"$|\psi(x)|^2$") plt.show()
Of course, the proper interpretation of the lack of interference is, of course, that in the experiment there are not two wave-packets, but instead just one, and then we repeat the experiment over and over again, each time with only one coherent state of either or .
7.2.2. Example: Superposition vs. mixture of 0 and 1 photons¶
N=30 rho1 = fock_dm(N,0) rho2 = fock_dm(N,1) mixed = rho1 + rho2 psi1 = fock(N,0) psi2 = fock(N,1) sup = psi1 + psi2 fig,ax = plt.subplots(1,2, figsize=(12,6)) plot_wigner(sup, fig=fig, ax=ax[0]) ax[0].set_title("Superposition of 0 and 1 photons") plot_wigner(mixed, fig=fig, ax=ax[1]) ax[1].set_title("Mixed state of 0 and 1 photons") plt.show()
And now the "wave function" of the photon.
Reminder: What is the "wave function" of a photon?
A classical electromagnetic wave is a standing wave whose electric field oscillates in time: for example, for a given mode, we may have at a given fixed position in space an electric field with the following component in the z-direction: where is a unit vector in the direction. Note the similarity to the mass-on-a-spring, which oscillates in position: In the mass-spring harmonic oscillator, we have a momentum that oscillates out of phase with the position: In electromagnetism, there is also a magnetic field that also oscillates out of phase with the electric field :
(Note that if the above belongs to a wave propagating in the direction, then the magnetic field points in the direction...) The mapping from the mass-spring harmonic oscillator to the photon harmonic oscillator in this case is then: - position electric field - momentum magnetic field
Using this logic, for a photon, one can interpret the axes of the Wigner plots above as:
- Real part of
- Imaginary part of
The probability distributions of position and momentum are then replaced with probability distributions of and :
# A hack to calculate the probability distribution x = np.linspace(-7.5,7.5,500) wigner_mixed = wigner(mixed,x,x) wigner_sup = wigner(sup,x,x) prob_mixed = np.sum(wigner_mixed,axis=0) prob_cat = np.sum(wigner_sup,axis=0) # Now the plot fig,ax = plt.subplots(1,2, figsize=(12,4)) ax[0].plot(x,prob_cat) ax[0].set_ylabel(r"$|\psi(E_z)|^2$") ax[0].set_title("Superposition of 0 and 1 photons") ax[1].plot(x,prob_mixed) ax[1].set_ylabel(r"Probability density of measuring $E_z$") ax[1].set_title(r"Mixture of 0 and 1 photons") ax[0].set_yticks([]) ax[1].set_yticks([]) ax[0].set_xlabel("$E_z$") ax[1].set_xlabel("$E_z$") ax[0].axhline(0,ls=':', c='grey') ax[1].axhline(0,ls=':', c='grey') plt.show()