sf.ops.MeasureHomodyne¶
-
class
MeasureHomodyne
(phi, select=None)[source]¶ Bases:
strawberryfields.ops.Measurement
Performs a homodyne measurement, measures one quadrature of a mode.
Position basis measurement: \(\phi = 0\) (also accessible via the shortcut variable
MeasureX
).Momentum basis measurement: \(\phi = \pi/2\). (also accessible via the shortcut variable
MeasureP
)
The measured mode is reset to the vacuum state.
- Parameters
phi (float) – measurement angle \(\phi\)
select (None, float) – (Optional) desired values of measurement result. Allows the post-selection of specific measurement results instead of randomly sampling.
Details and Conventions
Definition
Homodyne measurement is a Gaussian projective measurement given by projecting the state onto the states
\[\ket{x_\phi}\bra{x_\phi},\]defined as eigenstates of the Hermitian operator
\[\hat{x}_\phi = \cos(\phi) \hat{x} + \sin(\phi)\hat{p}.\]In the Gaussian backend, this is done by projecting onto finitely squeezed states approximating the \(x\) and \(p\) eigenstates. Due to the finite squeezing approximation, this results in a measurement variance of \(\sigma_H^2\), where \(\sigma_H=2\times 10^{-4}\).
In the Fock backends, this is done by using Hermite polynomials to calculate the \(\x_\phi\) probability distribution over a specific range and number of bins, before taking a random sample.
Attributes
Extra dependencies due to parameters that depend on measurements.
-
measurement_deps
¶ Extra dependencies due to parameters that depend on measurements.
- Returns
dependencies
- Return type
set[RegRef]
-
ns
= 1¶
Methods
apply
(reg, backend, **kwargs)Ask a backend to execute the operation on the current register state right away.
decompose
(reg, **kwargs)Decompose the operation into elementary operations supported by the backend API.
merge
(other)Merge the operation with another (acting on the exact same set of subsystems).
-
apply
(reg, backend, **kwargs)¶ Ask a backend to execute the operation on the current register state right away.
Like
Operation.apply()
, but also stores the measurement result in the RegRefs.- Keyword Arguments
shots (int) – Number of independent evaluations to perform. Only applies to Measurements.
-
decompose
(reg, **kwargs)¶ Decompose the operation into elementary operations supported by the backend API.
See
strawberryfields.backends.base
.
-
merge
(other)¶ Merge the operation with another (acting on the exact same set of subsystems).
Note
For subclass overrides: merge may return a newly created object, or self, or other, but it must never modify self or other because the same Operation objects may be also used elsewhere.
- Parameters
other (Operation) – operation to merge this one with
- Returns
other * self. The return value None represents the identity gate (doing nothing).
- Return type
Operation, None
- Raises
MergeFailure – if the two operations cannot be merged