SciPy

scipy.signal.sweep_poly

scipy.signal.sweep_poly(t, poly, phi=0)[source]

Frequency-swept cosine generator, with a time-dependent frequency.

This function generates a sinusoidal function whose instantaneous frequency varies with time. The frequency at time t is given by the polynomial poly.

Parameters:

t : ndarray

Times at which to evaluate the waveform.

poly : 1-D array_like or instance of numpy.poly1d

The desired frequency expressed as a polynomial. If poly is a list or ndarray of length n, then the elements of poly are the coefficients of the polynomial, and the instantaneous frequency is

f(t) = poly[0]*t**(n-1) + poly[1]*t**(n-2) + ... + poly[n-1]

If poly is an instance of numpy.poly1d, then the instantaneous frequency is

f(t) = poly(t)

phi : float, optional

Phase offset, in degrees, Default: 0.

Returns:

sweep_poly : ndarray

A numpy array containing the signal evaluated at t with the requested time-varying frequency. More precisely, the function returns cos(phase + (pi/180)*phi), where phase is the integral (from 0 to t) of 2 * pi * f(t); f(t) is defined above.

See also

chirp

Notes

New in version 0.8.0.

If poly is a list or ndarray of length n, then the elements of poly are the coefficients of the polynomial, and the instantaneous frequency is:

f(t) = poly[0]*t**(n-1) + poly[1]*t**(n-2) + ... + poly[n-1]

If poly is an instance of numpy.poly1d, then the instantaneous frequency is:

f(t) = poly(t)

Finally, the output s is:

cos(phase + (pi/180)*phi)

where phase is the integral from 0 to t of 2 * pi * f(t), f(t) as defined above.