sech_pulse

The Boulder Opal Toolkits are currently in beta phase of development. Breaking changes may be introduced.

sech_pulse(duration, amplitude, width=None, center_time=None)

Create a Pulse 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, 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, optional) – The time at which the pulse peaks, \(t_\mathrm{peak}\). Defaults to \(T/2\).

Returns

The hyperbolic secant pulse.

Return type

Pulse

See also

pulses.cosine_pulse()

Create a Pulse object representing a cosine pulse.

pulses.gaussian_pulse()

Create a Pulse object representing a Gaussian pulse.

pulses.sech_pulse_pwc()

Graph operation to create a Pwc representing a hyperbolic secant pulse.

pulses.sech_pulse_stf()

Graph operation to create a Stf representing a hyperbolic secant pulse.

pulses.square_pulse()

Create a Pulse 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 = qctrl.pulses.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])