I'm interested in a quantum operator that returns the phase of some quantized light in the Fock state basis.
That is, if I perform (in a density matrix picture) the expected value of this 'phase operator': $\langle \phi \rangle = \mathrm{Tr}(\rho \phi)= \sum_{nm} \rho_{nm} \phi_{mn}$, I obtain the 'phase' of the light.
In particular, if I give this operator a coherent state $\alpha = |\alpha|e^{i \theta}$ that $\langle \phi \rangle_\alpha = \mathrm{Tr}(\rho_\alpha \phi) = \theta$.
It seems as though there's been a lot of internal debate in the 90's (Although, I have vaguely heard, nowadays, that this is a fairly resolved question.) I have found two operators for phase in the Fock state basis: the Susskind-Glogower operator and the Pegg-Barnett operator. I've attempted to calculate the phase of a coherent state using these operators.
(Note, I'm aware that for a perfect coherent state it's much easier to calculate the phase; you can simply grab the imaginary log of the coherence term between $|0\rangle$ and $|1\rangle$. I am simply using the phase of a coherent state as a test for the phase operator, since the phase is very well defined for a coherent state.)
My attempt at calculating the phase using the Susskind-Glogower operator:
The Susskind-Glogower operator is not unitary, and therefore $\langle \phi \rangle$ is undefined. To remedy this, other operators related to this operator can be calculated, such as $\cos(\phi)$:
\begin{align} (N+I)^{-\frac{1}{2}} a + a^{\dagger}(N+I)^{-\frac{1}{2}} =(a^\dagger a+I)^{-\frac{1}{2}} a + a^{\dagger}(a^\dagger a+I)^{-\frac{1}{2}} \end{align}
But when I try to calculate value for a coherent state, I get results I do not expect. (Which I posted the code for at the end, if anyone is interested.) I've posted a plot for illustrating this (in which I graph the obtained output phase $\langle \phi \rangle$ as I very the input phase $\theta$ for the coherent state $\alpha = |\alpha|e^{i \theta}.$
The output corresponds to the operator for $\langle \cos(\phi) \rangle$, and it varies from $-\pi/2$ to $\pi/2$. Shouldn't this vary from $0$ to $1$ since it is the cosine of the argument? And either way, what use is it to find the cosine of the phase?
My attempt at calculating the phase using the Pegg-Barnett operator:
The Pegg-Barnett operator has been said to resolve the nonunitary issues of the Susskind-Glogower operator. The paper I'm using as a reference doesn't appear to explicitly write the operator in the Fock state basis, although they write what a Fock state is in this phase-operator basis:
$$|n\rangle = U|\phi(n)\rangle = \sum_m \exp(in(\theta + 2m\pi)/(s+1))$$
And thus I can write the phase operator as: $|\phi(n)\rangle \langle \phi(n)| = U^\dagger |n \rangle \langle n| U$ . But when I calculate the expected value of the phase $\langle \phi \rangle$ for coherent states, I get incorrect answers (that also vary as I change the value of $|\alpha|$. Here's a visual of how $\langle \phi \rangle$ varies as I change the input phase of $\alpha = |\alpha|e^{i \theta}$:
Here is the Matlab code I used if anyone is interested in going through it (Note: I just recently added a 3rd part that corrects for an error I made in the Pegg-Barnett method):
% the following script calculates (the cosine of) the phase of the Susskind operator of an input that is a perfect coherent state
% this output phase is plotted as the input phase is varied
N = 30;
a = diag(sqrt(1:N),1);
at = diag(sqrt(1:N),-1);
iden = diag(ones(1, N+1));
perf_p = CoherentStateDensityMatrix(0+pi, 3, 30);
phaseOP = sqrtm(inv(at*a+iden))*a+at*sqrtm(inv(at*a+iden));
close all
phaseout = zeros(5, 1);
phasein = zeros(5, 1);
totaln = 30;
for ii=1:totaln
phasein(ii) = 2*ii*pi/totaln+pi/2;
perf_p = CoherentStateDensityMatrix(phasein(ii), 3, 30);
phaseOP = 1/(2)*((at*a+iden)^(-1/2))*a+at*(at*a+iden)^(-1/2);
phaseout(ii) = trace(perf_p*phaseOP);
end
scatter(wrapToPi(phasein), phaseout)
% the following script calculates the phase of the Pegg-barnett operator of an input that is a perfect coherent state
% this output phase is plotted as the input phase is varied
s = 30;
theta0 = 0;
Umat = zeros(s+1,s+1);
for nnn = 0:s
Umat(nnn+1,:) = 1/(s+1)*exp(1i*nnn*(theta0+2*(0:s)*pi/s+1));
end
phaseOP2= ctranspose(Umat)*diag(0:s)*Umat;
perf_p = CoherentStateDensityMatrix(0+pi, 3, 30);
%I'm assuming this matrix is unitary, consider switching with
%normal inverse if bugs.
for ii=1:totaln
phasein(ii) = 2*ii*pi/totaln+pi/2;
perf_p = CoherentStateDensityMatrix(phasein(ii), 1, 30);
phaseout(ii) = trace(perf_p*phaseOP2);
end
figure
scatter(wrapToPi(phasein), abs(phaseout))
%% Second Attempt at Pegg-barnet
%using: https://arxiv.org/pdf/hep-th/9304036.pdf
% the following script calculates the phase of the Pegg-barnett operator of an input that is a perfect coherent state
% this output phase is plotted as the input phase is varied
s = 30;
theta0 = 0;
rho_n = zeros(s+1, s+1, s+1);
rho_total = zeros(s+1, s+1);
for nnn = 0:s
eig_theta = theta0+2*(nnn)*pi/s+1;
theta_n = 1/(s+1)*exp(1i*nnn*(theta0+2*(0:s)*pi/s+1));
rho_n(:, :, nnn+1) = ctranspose(theta_n)*theta_n*eig_theta;
rho_total(:,:) = rho_total(:,:)+ rho_n(:, :, nnn+1);
end
perf_p = CoherentStateDensityMatrix(0+pi, 3, 30);
%I'm assuming this matrix is unitary, consider switching with
%normal inverse if bugs.
for ii=1:totaln
phasein(ii) = 2*ii*pi/totaln+pi/2;
perf_p = CoherentStateDensityMatrix(phasein(ii), 1, 30);
phaseout(ii) = trace(perf_p*rho_total);
end
figure
scatter(wrapToPi(phasein), abs(phaseout))
function densitymatrix = CoherentStateDensityMatrix(theta, alpha, maxfock)
rows = 0:maxfock;
a = alpha;
single_row = exp(-a^2/2)*a.^rows./sqrt(factorial(rows)).*exp(1j*theta*rows);
single_column = ctranspose(single_row);
densitymatrix = single_column*single_row;
end