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, \(T\).

  • amplitude (float or complex) – The amplitude of the pulse, \(A\).

  • width (float or None, optional) – The characteristic time for the hyperbolic secant pulse, \(t_\mathrm{pulse}\). Defaults to \(T/12\), giving the pulse a full width at half maximum (FWHM) of \(0.22 T\).

  • center_time (float or None, optional) – The time at which the pulse peaks, \(t_\mathrm{peak}\). Defaults to \(T/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

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

The FWHM of the pulse is about \(2.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])