Pulse.spectrogram#

Pulse.spectrogram(t_fwhm=None, v_range=None, n_t=None, t_range=None)[source]#

Calculate the spectrogram of the pulse through convolution with a Gaussian window.

Parameters:
t_fwhmfloat, optional

The full width at half maximum of the Gaussian window. The default derives a fwhm from the bandwidth of the power spectrum.

v_rangearray_like of float, optional

The target range of frequencies to sample. This should be given as (min, max) values. The default takes the full range of v_grid.

n_tint or str, optional

The number of sampled delays. Setting to “equal” gives the same number of delays as points in v_grid. The default samples 4 points per fwhm of the Gaussian window.

t_rangearray_like of float, optional

The range of delays to sample. This should be given as (min, max) values. The default takes the full range of the t_grid.

Returns:
v_gridndarray of float

The frequency grid.

t_gridndarray of float

The time grid.

spgndarray of float

The amplitude of the spectrogram. The first axis corresponds to frequency and the second axis to time.

extenttuple of float

A bounding box suitable for use with matplotlib’s imshow function with the origin keyword set to “lower”. This reliably centers the pixels on the v_grid and t_grid coordinates.

Notes

The resolution in both the time and frequency domains is limited by the time-bandwidth product of the Gaussian window. The full width at half maximum of the Gaussian window should be similar to the full width at half maximum of the pulse in order to evenly distribute resolution bandwidth between the time and frequency domains.