Modulation
Modulation module for the simulation package.
Modulation
Modulation base class and Gaussian modulation.
- class qosst_sim.modulation.modulation.Modulation(va: float)
Base class for modulation.
Abstract class, meant for subclassing
- Parameters:
va (float) – variance of the modulation over the complex plan. The variance is scalar beacuse the covariance matrix of the modulation are always of the form VA*Id. The real and imaginary parts of the modulation are indentically and independantly distributed. VA = 2*<N> : <N> average number of photons
- w: float
Number defined in Denys, A., Brown, P., & Leverrier, A. (2021)
- va: float
Alice’s modulation variance.
- class qosst_sim.modulation.modulation.GaussianModulation(va: float)
Gaussian modulation.
w : number (defined in Denys, A., Brown, P., & Leverrier, A. (2021). Explicit asymptotic secret key rate of continuous-variable quantum key distribution with an arbitrary modulation. Quantum, 5, 540.) that quantifies how much weight from a random input coherent state of the modulaytion tau is mapped by a_tau, onto a subspace orthogonal from the input coherent state. In the particular case of a Gaussian modulation, since a_tau is proportional to a, each coherent state is eigen vector for a_tau, and is thus mapped by a_tau on its own linear span. Thus w = 0.
- Parameters:
va (float) – variance of the modulation over the complex plan. The variance is scalar beacuse the covariance matrix of the modulation are always of the form VA*Id. The real and imaginary parts of the modulation are indentically and independantly distributed. VA = 2*<N> : <N> average number of photons.
QAM
QAM modulation.
- class qosst_sim.modulation.qam.QAM(dim: int, va: float)
Quadrature and Amplitude Modulation (QAM).
Child class from modulation, defining the subset of QAM modulation, which corresponds to a finite set of accessible complex values, distributed on a regular square grid {x + i*y | x, y = = (-m + 1), (-m + 3), … , (m - 1) }. The coherent states corresponding to these complexe numbers are element of the Fock space Span({| n >, n >= 0 }), but one need to truncate the dimension of the space to dim.
- Parameters:
dim (int) – dimension of the Fock space.
va (float) – variance of the modulation over the complex plan. The variance is scalar beacuse the covariance matrix of the modulation are always of the form VA*Id. The real and imaginary parts of the modulation are indentically and independantly distributed. VA = 2*<N> : <N> average number of photons
- distribution: ndarray
Distribution of probability over the constellation.
- constellation: ndarray
Sqaare constellation of qam points.
- dim: int
Dimension of the Fock space.
- tau_half: ndarray
Matrix defined in Denys, A., Brown, P., & Leverrier, A. (2021).
- a_tau: ndarray
Matrix defined in Denys, A., Brown, P., & Leverrier, A. (2021).
- coherent_state(alpha: complex) ndarray
- Parameters:
alpha (complex) – eigenvalue of the coherent state for the anihilation operator a.
- Returns:
vector of the alpha coherent state in the truncated Fock basis of size dim.
- Return type:
np.ndarray
Gaussian QAM
Gaussian QAM modulation.
- class qosst_sim.modulation.gaussian_qam.GaussianQAM(dim: int, size: int, va: float, nu: float)
QAM approximating a Gaussian distribution.
- Parameters:
dim (int) – dimension of truncation of the Fock basis.
m (int) – side length of the QAM.
va (float) – variance of the modulation over the complex plan. The variance is scalar beacuse the covariance matrix of the modulation are always of the form va*Id. The real and imaginary parts of the modulation are indentically and independantly distributed. va = 2*<n> : <n> average number of photons
nu (float) – positive number meant to be optimised according to certain cost function.
Binomial QAM
Binomial QAM modulation.
- class qosst_sim.modulation.binomial_qam.BinomialQAM(dim: int, size: int, va: float)
Binomial QAM modulation.
- Parameters:
dim (int) – dimension of truncation of the Fock basis
m (int) – side length of the QAM
va (float) – variance of the modulation over the complex plan. The variance is scalar beacuse the covariance matrix of the modulation are always of the form va*Id. The real and imaginary parts of the modulation are indentically and independantly distributed. va = 2*<n> : <n> average number of photons