InterpolatedWaveform
- class pulser.waveforms.InterpolatedWaveform(duration, values, times=None, interpolator='PchipInterpolator', **interpolator_kwargs)
Bases:
Waveform
A waveform created from interpolation of a set of data points.
- Parameters:
duration (
int
|Parametrized
) – The waveform duration (in ns).values (ArrayLike |
Parametrized
) – Values of the interpolation points. Must be a list of castable to float or a parametrized object.times (ArrayLike |
Parametrized
|None
, default:None
) – Fractions of the total duration (between 0 and 1), indicating where to place each value on the time axis. Must be a list of castable to float or a parametrized object. If not given, the values are spread evenly throughout the full duration of the waveform.interpolator (
str
, default:'PchipInterpolator'
) – The SciPy interpolation class to use. Supports “PchipInterpolator” and “interp1d”.**interpolator_kwargs (
Any
) – Extra parameters to give to the chosen interpolator class.
Attributes
Points (t[ns], value[arb.
The duration of the pulse (in ns).
The first value in the waveform.
Integral of the waveform (in [waveform units].µs).
The interpolating function.
The last value in the waveform.
The value at each time step that describes the waveform.
Methods
Returns a new waveform with modified duration.
Draws the waveform.
The waveform samples as output of a given channel.
The minimal buffers needed around a modulated waveform.
Signatures
- change_duration(new_duration)
Returns a new waveform with modified duration.
- Parameters:
new_duration (
int
) – The duration of the new waveform.- Return type:
- Returns:
The new waveform with the same coordinates for interpolation but a new duration.
- draw(output_channel=None, ylabel=None)
Draws the waveform.
- Parameters:
output_channel (
Channel
|None
, default:None
) – The output channel. If given, will draw the modulated waveform on top of the input one.ylabel (
str
|None
, default:None
) – An optional label for the y-axis of the plot.
- Return type:
None
- modulated_samples(channel, eom=False)
The waveform samples as output of a given channel.
This duration is adjusted according to the minimal buffer times.
- Parameters:
channel (
Channel
) – The channel modulating the waveform.eom (
bool
, default:False
) – Whether to modulate for the EOM.
- Return type:
AbstractArray
- Returns:
The array of samples after modulation.
- modulation_buffers(channel, eom=False)
The minimal buffers needed around a modulated waveform.
- Parameters:
channel (
Channel
) – The channel modulating the waveform.eom (
bool
, default:False
) – Whether to calculate the modulation buffers with the EOM bandwidth.
- Return type:
tuple
[int
,int
]- Returns:
The minimum buffer times at the start and end of the samples, in ns.
- property data_points: ndarray
Points (t[ns], value[arb. units]) that define the interpolation.
- property duration: int
The duration of the pulse (in ns).
- property first_value: float
The first value in the waveform.
- property integral: float
Integral of the waveform (in [waveform units].µs).
- property interp_function: PchipInterpolator | interp1d
The interpolating function.
- property last_value: float
The last value in the waveform.
- property samples: AbstractArray
The value at each time step that describes the waveform.
- Returns:
A numpy array with a value for each time step.