hann_series_pwc
The Boulder Opal Toolkits are currently in beta phase of development. Breaking changes may be introduced.
- hann_series_pwc(duration, segment_count, coefficients, *, name=None)
Create a Pwc representing a sum of Hann window functions.
The piecewise-constant function is sampled from Hann functions that start and end at zero.
- Parameters:
duration (float) – The duration of the signal, \(T\).
segment_count (int) – The number of segments in the PWC.
coefficients (np.ndarray or Tensor) – The coefficients for the different Hann window functions, \(c_n\). It must be a 1D array or Tensor and it can’t contain more than segment_count elements.
name (str, optional) – The name of the node.
- Returns:
The sampled Hann window functions series.
- Return type:
See also
signals.cosine_pulse_pwc()
Create a Pwc representing a cosine pulse.
signals.sinusoid_pwc()
Create a Pwc representing a sinusoidal oscillation.
signals.hann_series()
Function to create a Signal object representing a sum of Hann window functions.
signals.hann_series_stf()
Corresponding operation with Stf output.
Notes
The series is defined as
\[\mathop{\mathrm{Hann}}(t) = \sum_{n=1}^N c_n \sin^2 \left( \frac{\pi n t}{T} \right) ,\]where \(N\) is the number of coefficients.
Examples
Define a simple Hann series.
>>> graph.signals.hann_series_pwc( ... duration=5.0, ... segment_count=50, ... coefficients=np.array([0.5, 1, 0.25]), ... name="hann_series", ... ) <Pwc: name="hann_series", operation_name="pwc_signal", value_shape=(), batch_shape=()> >>> result = qctrl.functions.calculate_graph( ... graph=graph, output_node_names=["hann_series"] ... ) >>> result.output["hann_series"] [ {'value': 0.0067, 'duration': 0.1}, {'value': 0.0590, 'duration': 0.1}, ... {'value': 0.0590, 'duration': 0.1}, {'value': 0.0067, 'duration': 0.1}, ]
Define a Hann series with optimizable coefficients.
>>> coefficients = graph.optimization_variable( ... count=8, lower_bound=-3.5e6, upper_bound=3.5e6, name="coefficients" ... ) >>> graph.signals.hann_series_pwc( ... duration=2.0e-6, ... segment_count=128, ... coefficients=coefficients, ... name="hann_series", ... ) <Pwc: name="hann_series", operation_name="pwc_signal", value_shape=(), batch_shape=()>