ABSTRACT (original article): The characterization of a quantum device is a crucial step in the development of quantum experiments. This is accomplished via Quantum Process Tomography, which combines the outcomes of different projective measurements to deliver a possible reconstruction of the underlying process. The tomography is typically performed by processing an overcomplete set of measurements and extracting the process matrix from maximum-likelihood estimation. Here, we introduce Fourier Quantum Process Tomography, a technique which requires a reduced number of measurements, and benchmark its performance against the standard maximum-likelihood approach. Fourier Quantum Process Tomography is based on measuring probability distributions in two conjugate spaces for different state preparations and projections. Exploiting the concept of phase retrieval, our scheme achieves a complete and robust characterization of the setup by processing a near-minimal set of measurements. We experimentally test the technique on different space-dependent polarization transformations, reporting average fidelities higher than 90% and significant computational advantage. CITATION (original article): Di Colandrea, F., Dehghan, N., D’Errico, A. et al. Fourier Quantum Process Tomography. npj Quantum Inf 10, 49 (2024). https://doi.org/10.1038/s41534-024-00844-7
1D Fourier Quantum Process Tomography
Data files are available at: https://github.com/FraDiColandrea/Fourier_Quantum_Process_Tomography

Experimental parameters

We set the physical parameters of our experiment, specifically the size of each pixel of our detection system (pixelsize), the spatial period Λ of our optical devices, and the number of pixels in a single period.
In[]:=
pixelsize=5.2*10^-6(*inmeters*);​​Λ=2.5*10^-3(*spatialperiod,inmeters*);
In[]:=
pixels=Round[Λ/pixelsize](*howmanypixelsinaperiod*)
Out[]=
481

Algorithm parameters

We set the parameters of the Gerchberg-Saxton (GS) phase retrieval algorithm, specifically the number of global phase shifts to explore in the range [0,2π] (see Eqs. (5)-(6) of the main paper), the number of independent executions, and the number of iterations within a single execution.
In[]:=
offsets=64(*globalshiftstoexplore*);​​globalphase=Subdivide[0,2N[Pi],offsets-1](*globaloffsetsforreconstructedphases*);​​trials=100(*howmanyindependentexecutionsoftheGSalgorithm*);​​iterations=1000(*howmanyiterationswithinasingleexecution*);

Import experimental data

We import the polarimetric data ⟨H∣U∣H⟩, ⟨D∣U∣D⟩, and ⟨L∣U∣L⟩ from the one-dimensional experiment. The total probability distribution (probtot) is also imported to solve the phase ambiguity (see Eq. (7) of the main paper).
In[]:=
SetDirectory[NotebookDirectory[]<>"Data/1D"](*Filestringformattingmayneedtobechangeddependingonoperatingsystem*)
Out[]=
C:\Users\franc\Desktop\postdoc\research\QPT_GS\github - FQPT2\Data\1D
HHnear=Import["HH_near.txt","List"](*nearfield*);​​HHfar=Import["HH_far.txt","List"](*farfield*);
DDnear=Import["DD_near.txt","List"](*nearfield*);​​DDfar=Import["DD_far.txt","List"](*farfield*);
LLnear=Import["LL_near.txt","List"](*nearfield*);​​LLfar=Import["LL_far.txt","List"](*farfield*);
probtot=Import["far_total.txt","List"](*totalfarfield*);

HH

The phase retrieval algorithm is executed on the ⟨H∣U∣H⟩ measurement, taken in both the near field and the far field. The SU(2) parameters E and
n
1
are extracted from Eqs. (6a)-(6b) using the best phase reconstruction, which is the one yielding the minimum error.

Phase retrieval

In[]:=
{ListPlot[HHnear,PlotStyle->Red,Joined->True,PlotRange->{0,1},ImageSize->250],ListPlot[HHfar,PlotRange->All,PlotStyle->Red,Joined->False,Filling->Axis,ImageSize->250]}
Out[]=

0
100
200
300
400
0.2
0.4
0.6
0.8
1.0
,

In[]:=
HHfar=ArrayPad[HHfar,(pixels-Length[HHfar])/2](*array-paddingneededforimplementingtheFFT*);
In[]:=
{ListPlot[HHnear,PlotStyle->Red,Joined->True,PlotRange->{0,1},ImageSize->250],ListPlot[HHfar,PlotRange->All,PlotStyle->Red,Joined->False,Filling->Axis,ImageSize->250]}
Out[]=

0
100
200
300
400
0.2
0.4
0.6
0.8
1.0
,

In[]:=
Dimensions[HHnear]==Dimensions[HHfar]
Out[]=
True
In[]:=
inputbeamHH=Sqrt[HHnear](*intensitytoamplitude*);​​outputbeamHH=RotateLeft[Sqrt[HHfar],(pixels-1)/2](*intensitytoamplitude,RotateLeftimplementstheFFTshiftcommand*);
In[]:=
error=Table[{},{i,trials}];​​phase=Table[{},{i,trials}];​​input=Table[{},{i,trials}];​​output=Table[{},{i,trials}];
In[]:=
(*RepeatedimplementationofGSalgorithm*)​​Monitor[​​Do[​​phaseguess=Table[RandomReal[{0,2N[Pi]}],{i,pixels}];​​inputGSguess=inputbeamHH*Exp[I*phaseguess];​​InputGS=inputGSguess;​​Do[​​outputGS=Fourier[InputGS,FourierParameters{0,1}](*FFT*);​​outputGS=outputGS*Sqrt[Total[Abs[outputbeamHH]^2]]/Sqrt[Total[Abs[outputGS]^2]];​​phaseoutputGS=Arg[outputGS];​​OutputGS=outputbeamHH*Exp[I*phaseoutputGS];​​inputGS=Fourier[OutputGS,FourierParameters{0,-1}](*inverseFFT*);​​phaseinputGS=Arg[inputGS];​​inputGS=inputGS*Sqrt[Total[Abs[inputbeamHH]^2]]/Sqrt[Total[Abs[inputGS]^2]];​​AppendTo[error[[t]],Total[Abs[Abs[inputGS]-inputbeamHH]]];​​InputGS=inputbeamHH*Exp[I*phaseinputGS];,​​{s,iterations}];​​phase[[t]]=phaseinputGS;​​input[[t]]=inputGS;​​output[[t]]=outputGS;​​,{t,trials}],{t,s}]
In[]:=
min=Flatten[Position[error[[All,-1]],Min[error[[All,-1]]]]][[1]];ListPlot[error[[min]]/Max[error],PlotRange->{0,1}]
Out[]=
0
200
400
600
800
1000
0.2
0.4
0.6
0.8
1.0
In[]:=
inputGSHH=input[[min]];​​outputGSHH=output[[min]];​​phaseGSHH=phase[[min]];
In[]:=
{ListPlot[{Abs[inputbeamHH],Abs[inputGSHH]},PlotRange->{0,1},PlotStyle->{Red,Blue},Joined->True,ImageSize->250],w=10;ListPlot[{RotateRight[Abs[outputbeamHH],(pixels-1)/2][[(pixels+1)/2-w;;(pixels+1)/2+w]],RotateRight[Abs[outputGSHH],(pixels-1)/2][[(pixels+1)/2-w;;(pixels+1)/2+w]]},DataRange->{-w,w},PlotRange->{0,1},PlotStyle->{Red,Blue},Joined->False,Filling->Axis,ImageSize->250,PlotLegends->{"Exp.","GS"}]}
Out[]=

0
100
200
300
400
0.2
0.4
0.6
0.8
1.0
,
Exp.
GS


Extracting SU(2) parameters

PhaseGSHH=Table[Mod[phaseGSHH+globalphase[[i]],2N[Pi]],{i,offsets}];​​eGSHH=Table[ArcCos[inputbeamHH*Cos[PhaseGSHH[[i]]]],{i,offsets}](*globalphase-dependentretrievedE*);​​n1GS=Table[-inputbeamHH*Sin[PhaseGSHH[[i]]]/(Sin[eGSHH[[i]]]),{i,offsets}](*globalphase-dependentretrieved
n
1
*);
In[]:=
Manipulate[{ListPlot[PhaseGSHH[[i]],Joined->False,PlotRange->{0,2N[Pi]},PlotStyle->Black,ImageSize200],ListPlot[eGSHH[[i]],PlotStyle->Red,PlotLegends->Automatic,Joined->True,PlotRange->{0,N[Pi]},ImageSize->200],ListPlot[n1GS[[i]],PlotStyle->Blue,PlotLegends->Automatic,Joined->True,PlotRange->{-1,1},ImageSize->200]},{i,1,offsets,1}](*thisallowsdynamicallyplottingthenon-equivalentparameterreconstructionsassociatedwithdifferentglobalshifts*);

DD

Phase retrieval

Extracting SU(2) parameters

LL

Phase retrieval

Extracting SU(2) parameters

Matching the global phase

Finding the unitary

We use the total far-field measurement (probtot) to solve the global phase ambiguity (see Eq. (7) of the main paper).

Reconstructed parameters

Among all possible unitaries, the reconstructed operator is the one minimizing the distance with the measured far-field intensity .
2D Fourier Quantum Process Tomography
Data files are available at: https://github.com/FraDiColandrea/Fourier_Quantum_Process_Tomography

Experimental parameters

We set the physical parameters of our experiment, specifically the size of each pixel of our detection system (pixelsize), the spatial period Λ of our optical devices, and the number of pixels in a single period. Additionally, we set the integration window (integrationpixels) to average over experimental imperfections and optimize computational efficiency in the two-dimensional implementation.

Algorithm parameters

We set the parameters of the Gerchberg-Saxton (GS) phase retrieval algorithm, specifically the number of global phase shifts to explore in the range [0,2π] (see Eqs. (5)-(6) of the main paper), the number of independent executions, and the number of iterations within a single execution.

Import experimental data

We import the polarimetric data ⟨H∣U∣H⟩, ⟨D∣U∣D⟩, and ⟨L∣U∣L⟩ from the two-dimensional experiment. The total probability distribution (probtot) is also imported to solve the phase ambiguity (see Eq. (7) of the main paper).

HH

Phase retrieval

Extracting SU(2) parameters

DD

Phase retrieval

Extracting SU(2) parameters

LL

Phase retrieval

Extracting SU(2) parameters

Matching the global phase

Finding the unitary

We use the total far-field measurement (probtot) to solve the global phase ambiguity (see Eq. (7) of the main paper).

Reconstructed parameters

Among all possible unitaries, the reconstructed operator is the one minimizing the distance with the measured far-field intensity .

CITE THIS NOTEBOOK

Fourier quantum process tomography​
by Francesco Di Colandrea, Nazanin Dehghan, Alessio D’Errico & Ebrahim Karimi
Wolfram Community, STAFF PICKS, June 3, 2024
​https://community.wolfram.com/groups/-/m/t/3187336