paraqeet.signal.waveform.FlatTopGaussianFilter#

class paraqeet.signal.waveform.FlatTopGaussianFilter(envelopes, t_final)#

Bases: Waveform

A shape filter that forces the pulse to smoothly start and end at zero. This filter multiplies the input pulse with a flat-top Gaussian pulse.

Note - Use filters before the generators. Else Automatic differentiation does not work.

This is similar to PWCGenerator.multiply_flat_top = True.

Parameters:
__init__(envelopes, t_final)#
Parameters:

Methods

__init__(envelopes, t_final)

get_envelopes()

Return envelopes from the FlatTopGaussianFilter.

get_parameters()

Return a list of parameters.

get_time_and_parameter_gradient(times)

Compute the double derivative with respect to parameter and time.

get_time_gradient(times)

Compute a signal envelopes time derivative.

get_value(times)

Evaluate a carrier signal from an input time vector.

get_value_and_gradient(times)

Generate gradient of the signal for an array of time.

set_all_optimizable_parameters(all_params)

Set all optimizable parameters in the optimization.

set_optimizable_parameters(params)

Set specified parameters to be optimized.

Attributes

all_optimizable_parameters

Get the optimizable parameters

name

Get the name of the parameter.

optimizable_parameters

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_envelopes()#

Return envelopes from the FlatTopGaussianFilter.

Return type:

list[Waveform]

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_time_and_parameter_gradient(times)#

Compute the double derivative with respect to parameter and time.

This function computes $\frac{\partial^2 \Omega}{\partial t \partial alpha}$ for a pulse $\Omega(t)$ and parameter $\alpha$.

Parameters:

times (Array) – One-dimensional vector of timestamps.

Returns:

Returns a vector signals time derivative.

Return type:

Array

get_time_gradient(times)#

Compute a signal envelopes time derivative.

Parameters:

times (Array) – One-dimensional vector of timestamps.

Returns:

Returns a vector signals time derivative.

Return type:

Array

get_value(times)#

Evaluate a carrier signal from an input time vector.

Parameters:

times (Array) – One-dimensional vector of timestamps.

Returns:

Returns a vector carrier signal.

Return type:

Array

get_value_and_gradient(times)#

Generate gradient of the signal for an array of time.

Collect and return the parameter gradients from the Tone and the carrier Tone. Compute the gradient of the generator parameters by AD. The order of the gradients should match the order of parameters in self.get_parameter() method

Parameters:

times (Array) – An array of time points.

Returns:

Array of gradients wrt each parameter for each time point.

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.

Parameters:
  • params (List[Quantity]) – List of optimizable parameters to be set.

  • all_params (list[Quantity])

Return type:

None

set_optimizable_parameters(params)#

Set specified parameters to be optimized.

Also add the indices to _grad_arg_nums to compute the gradients.

Parameters:

params (list[Quantity])

Return type:

None