paraqeet.signal.iq_mixer.IQMixer#
- class paraqeet.signal.iq_mixer.IQMixer(envelopes, frequency=None, phase=None)#
Bases:
GeneratorControl signal generation.
Waveforms of envelopes (low bandwidth) are mixed with a local oscillator (high bandwidth) to apply a desired control field to the system.
- Parameters:
- __init__(envelopes, frequency=None, phase=None)#
Methods
__init__(envelopes[, frequency, phase])get_gradient_at_timestep(time)Return the gradients from all devices at the given time.
Return a list of parameters.
get_value(times)Generate a signal for time(s).
get_value_and_gradient(times)Collect and returns the gradients from all devices.
set_all_optimizable_parameters(all_params)Set all optimizable parameters in the optimization.
set_optimizable_parameters(params)Set specified parameters to be optimized.
Attributes
Get the optimizable parameters
Get the name of the parameter.
Get the optimizable parameters
- property all_optimizable_parameters: list[Quantity]#
Get the optimizable parameters
- Returns:
The list of all the optimizable parameters considered in the optimization
- Return type:
list[Quantity]
- get_gradient_at_timestep(time)#
Return the gradients from all devices at the given time.
Since the
\[signal = \Re(\epsilon(t)^* \exp(i \omega t) \exp(-i \phi))\]Derivative of the signal wrt optimizable parameter of envelope would be
\[0.5 * \Re(\partial \epsilon(t)^* \exp(i \omega t) \exp(-i \phi))\](TODO - Check the envelope derivatives)
And derivative of signal wrt parameter of LO would be
\[0.5 i t \epsilon(t)^* \exp(i \omega t) \exp(-i \phi))\]And derivative of signal wrt phase would be
\[-0.5 i \epsilon(t)^* \exp(i \omega t) \exp(-i \phi))\]The 0.5 are due to the Wirtinger derivatives due to Re part.
- Parameters:
time (Array) – Single timestamp.
- Returns:
Return the gradients from all devices at one time.
- Return type:
Array
- get_parameters()#
Return a list of parameters.
Collects and returns a list of parameters from the tone, generator and the carrier signal.
- Returns:
All Parameters describing the signal.
- Return type:
list[Quantity]
- get_value(times)#
Generate a signal for time(s).
- Parameters:
t (Array) – One-dimensional vector of timestamps.
times (Array | float)
- Returns:
Returns the signal vector.
- Return type:
Array
- get_value_and_gradient(times)#
Collect and returns the gradients from all devices.
Since the
\[signal = \Re(\epsilon(t)^* \exp(i \omega t) \exp(-i \phi))\]Derivative of the signal wrt optimizable parameter of envelope would be
\[0.5 * \Re(\partial \epsilon(t)^* \exp(i \omega t) \exp(-i \phi))\](TODO - Check the envelope derivatives)
And derivative of signal wrt parameter of LO would be
\[0.5 i t \epsilon(t)^* \exp(i \omega t) \exp(-i \phi))\]And derivative of signal wrt phase would be
\[-0.5 i \epsilon(t)^* \exp(i \omega t) \exp(-i \phi))\]The 0.5 are due to the Wirtinger derivatives due to Re part.
- Parameters:
t (Array) – One-dimensional vector of timestamps.
- Returns:
Returns the signal gradient vector.
- Return type:
Array
- property name: str | None#
Get the name of the parameter.
- Returns:
Name of the parameter.
- Return type:
str | None
- property optimizable_parameters: list[Quantity]#
Get the optimizable parameters
- Returns:
The list of optimizable parameters associated with the object.
- Return type:
list[Quantity]
- set_all_optimizable_parameters(all_params)#
Set all optimizable parameters in the optimization.