Estimate the power spectral density (PSD) of noise processes affecting a quantum system.
Use this function to obtain noise PSDs from measurements performed on
your quantum system. You must provide the measurements as filter functions,
which describe the controls applied to the system, and operational
infidelities.
- Parameters
noises (List[qctrl.dynamic.types.noise_reconstruction.Noise], optional) – A list of length \(N_{\mathrm{noise}}\) that describes noises to be
reconstructed. You can omit this field, in which case the function
deduces the number of noises from the measurement information, and
automatically generates names for all noises.
measurements (List[qctrl.dynamic.types.noise_reconstruction.Measurement]) – The measurements used to reconstruct the noises. It includes \(M\)
measurement records of infidelities \(\{{\mathcal I}_j\}\) and
uncertainties (optional). For each noise channel \(j\), the number
of filter function samples is \(K_j\).
method (qctrl.dynamic.types.noise_reconstruction.Method, optional) – The method used to perform the reconstruction. If omitted then defaults
to the singular value decomposition method with an entropy truncator
using rounding threshold 0.5.
- Returns
Estimation \(S_{k, \mathrm{est}}\) of noise PSD at frequencies that
you provide in filter function samples.
- Return type
qctrl.dynamic.types.noise_reconstruction.Result
Notes
From the filter function theory , the operational infidelity for a given control sequence
applied on a weak-noise-perturbed quantum system is the overlap between the noise power
spectral density (PSD) and the corresponding filter functions:
\[{\mathcal I}_j = \sum_{k = 1}^{N_{\mathrm{noise}}} \int {\mathrm d}f \, F_{jk}(f) S_k(f) ,\]
where \(S_k(f)\) is the PSD for the noise channel \(k\), \(F_{jk}(f)\) is the filter
function corresponding to the control sequence \(j\) and the noise channel \(k\),
and \({\mathcal I}_j\) is the measured infidelity after the control \(j\) is applied to the
system. Discretizing the integrals for all \(M\) measurements gives the following linear
equation:
\[F'{\mathbf S} = {\mathbf I} ,\]
where \(F' = [F'_1, \dots, F'_j, \dots, F'_{N_{\mathrm{noise}}}]\)
is a \(M \times K\) matrix and each element \(F'_j\) is a \(M \times K_j\) matrix representing
the sampled filter functions weighted by discretized frequency step for the noise channel \(j\)
and \(K \equiv \sum_{j=1}^{N_\mathrm{noise}} K_j\);
noise PSD \({\mathbf S} = [{\mathbf S}_1, \dots, {\mathbf S}_j \dots, {\mathbf S}_K]^\top\)
is a \(K \times 1\) vector and each element \({\mathbf S}_j\) is a \(K_j \times 1\) vector for
noise channel \(j\); infidelity vector
\({\mathbf I} = [{\mathcal I}_1, {\mathcal I}_2, \dots, {\mathcal I}_M]^\top\)
is a \(M \times 1\) vector. Given sampled filter functions and infidelities,
this function gives an estimation of the noise PSD \({\mathbf S}_{\mathrm{est}}\).
If uncertainties are provided with infidelities, this function also returns the
uncertainties in estimation.
You can use two different methods to perform the estimation, namely the singular value
decompositions (SVD) method and the convex optimization (CVX) method. The SVD method first finds
a low rank approximation of matrix \(F'\):
\[F' \approx U \Sigma V ,\]
where \(\Sigma\) is a diagonal matrix of \(n_{\mathrm{sv}}\) truncated singular values and
\(n_{\mathrm{sv}}\) is determined by the truncation method you choose; matrices \(U\)
and \(V\) satisfy that
\(U^\dagger U = VV^\dagger = \mathbb{I}_{n_{\mathrm{sv}} \times n_{\mathrm{sv}}}\).
It then estimates the noise PSD as:
\[{\mathbf S}_{\mathrm{est}} = V^\dagger\Sigma^{-1}U^\dagger{\mathbf I} .\]
This method calculates the uncertainties in estimation using error propagation if you provide
measurement uncertainties.
The CVX method finds the estimation of \({\mathbf S}\) by solving the optimization problem:
\[{\mathbf S}_{\mathrm{est}} = \mathrm{argmin}_{\textbf S} (\| F'{\mathbf S} - {\mathbf I} \|_2^2 + \lambda \| L_1 {\mathbf S} \|_2^2) ,\]
where \(\| \bullet \|_2\) denotes the Euclidean norm and \(L_1\) is the first-order derivative
operator defined as
\[\begin{split}\begin{align}
L_1 =
\begin{bmatrix}
-1 & 1 & & \\
& \ddots & \ddots & \\
& & -1 & 1 \\
\end{bmatrix}_{(K - 1) \times K} .
\end{align}\end{split}\]
\(\lambda\) is a positive regularization hyperparameter which determines the smoothness of
\({\mathbf S}_{\mathrm{est}}\). If you provide uncertainties in measurements, this method
calculates the uncertainties in estimation using a Monte Carlo method.
References
Examples
See the How to perform noise spectroscopy on arbitrary noise channels
user guide.