sech_pulse

boulderopal.signals.sech_pulse(duration, amplitude, width=None, center_time=None)

Create a Signal object representing a hyperbolic secant pulse.

Parameters

  • duration (float) – The duration of the signal, TT
  • amplitude (float or complex) – The amplitude of the pulse, AA
  • width (float or None , optional) – The characteristic time for the hyperbolic secant pulse, tpulset_\mathrm{pulse}. Defaults to T/12T/12, giving the pulse a full width at half maximum (FWHM) of 0.22T0.22 T
  • center_time (float or None , optional) – The time at which the pulse peaks, tpeakt_\mathrm{peak}. Defaults to T/2T/2

Returns

The hyperbolic secant pulse.

Return type

Signal

SEE ALSO

boulderopal.signals.cosine_pulse : Create a Signal object representing a cosine pulse.

boulderopal.signals.gaussian_pulse : Create a Signal object representing a Gaussian pulse.

Graph.signals.sech_pulse_pwc : Graph operation to create a Pwc representing a hyperbolic secant pulse.

Graph.signals.sech_pulse_stf : Graph operation to create a Stf representing a hyperbolic secant pulse.

boulderopal.signals.square_pulse : Create a Signal object representing a square pulse.

Notes

The hyperbolic secant pulse is defined as

Sech(t)=Acosh((ttpeak)/tpulse). \mathop{\mathrm{Sech}}(t) = \frac{A}{\cosh\left((t - t_\mathrm{peak}) / t_\mathrm{pulse} \right)} .

The FWHM of the pulse is about 2.634tpulse2.634 t_\mathrm{pulse}

Examples

Define a displaced sech pulse.

>>> pulse = bo.signals.sech_pulse(duration=1, amplitude=1, center_time=0.4)
>>> pulse.export_with_time_step(time_step=0.1)
array([0.02998441, 0.09932793, 0.32180487, 0.84355069, 0.84355069,
   0.32180487, 0.09932793, 0.02998441, 0.00903298, 0.00272073])

Was this useful?