pwc_signal
Graph.pwc_signal(values, duration, *, name=None)
Create a piecewise-constant signal (scalar-valued function of time).
Use this function to create a piecewise-constant signal in which the constant segments all have the same duration.
Parameters
- values (np.ndarray or Tensor) – The values {αn} of the N constant segments. These can represent either a single sequence of segment values or a batch of them. To create a batch of B1×…×Bn signals, represent these values as a tensor of shape B1×…×Bn×N.
- duration (float) – The total duration τ of the signal.
- name (str or None , optional) – The name of the node.
Returns
The piecewise-constant function of time α(t), satisfying α(t)=αn for tn−1≤t≤tn, where tn=nτ/N (where N is the number of values in {αn}). If you provide a batch of values, the returned Pwc represents a corresponding batch of B1×…×Bn functions α(t).
Return type
SEE ALSO
Graph.complex_pwc_signal
: Create complex Pwc signals from their moduli and phases.
Graph.pwc
: Corresponding operation with support for segments of different durations.
Graph.pwc_operator
: Create Pwc operators.
Graph.pwc_sum
: Sum multiple Pwcs.
Graph.symmetrize_pwc
: Symmetrize Pwcs.
Notes
For more information on Pwc nodes see the Working with time-dependent functions in Boulder Opal topic.
Examples
Create a piecewise-constant signal with uniform segment duration.
>>> graph.pwc_signal(duration=0.1, values=np.array([2, 3]), name="signal")
<Pwc: name="signal", operation_name="pwc_signal", value_shape=(), batch_shape=()>
>>> result = bo.execute_graph(graph=graph, output_node_names="signal")
>>> result["output"]["signal"]
{
'durations': array([0.05, 0.05]),
'values': array([2., 3.]),
'time_dimension': 0
}
See more examples in the Get familiar with graphs tutorial.