scipy 1.8.0 Pypi GitHub Homepage
Other Docs
NotesParametersReturnsBackRef
zoom_fft(x, fn, m=None, *, fs=2, endpoint=False, axis=-1)

Notes

The defaults are chosen such that signal.zoom_fft(x, 2) is equivalent to fft.fft(x) and, if m > len(x) , that signal.zoom_fft(x, 2, m) is equivalent to fft.fft(x, m) .

To graph the magnitude of the resulting transform, use:

plot(linspace(f1, f2, m, endpoint=False), abs(zoom_fft(x, [f1, f2], m)))

If the transform needs to be repeated, use ZoomFFT to construct a specialized transform function which can be reused without recomputing constants.

Parameters

x : array

The signal to transform.

fn : array_like

A length-2 sequence [`f1`, :None:None:`f2`] giving the frequency range, or a scalar, for which the range [0, :None:None:`fn`] is assumed.

m : int, optional

The number of points to evaluate. The default is the length of x.

fs : float, optional

The sampling frequency. If fs=10 represented 10 kHz, for example, then :None:None:`f1` and :None:None:`f2` would also be given in kHz. The default sampling frequency is 2, so :None:None:`f1` and :None:None:`f2` should be in the range [0, 1] to keep the transform below the Nyquist frequency.

endpoint : bool, optional

If True, :None:None:`f2` is the last sample. Otherwise, it is not included. Default is False.

axis : int, optional

Axis over which to compute the FFT. If not given, the last axis is used.

Returns

out : ndarray

The transformed signal. The Fourier transform will be calculated at the points f1, f1+df, f1+2df, ..., f2, where df=(f2-f1)/m.

Compute the DFT of x only for frequencies in range :None:None:`fn`.

See Also

ZoomFFT

Class that creates a callable partial FFT function.

Examples

To plot the transform results use something like the following:

>>> from scipy.signal import zoom_fft
... t = np.linspace(0, 1, 1021)
... x = np.cos(2*np.pi*15*t) + np.sin(2*np.pi*17*t)
... f1, f2 = 5, 27
... X = zoom_fft(x, [f1, f2], len(x), fs=1021)
... f = np.linspace(f1, f2, len(x))
... import matplotlib.pyplot as plt
... plt.plot(f, 20*np.log10(np.abs(X)))
... plt.show()
See :

Back References

The following pages refer to to this document either explicitly or contain code examples using this.

scipy.signal._czt.CZT scipy.signal._czt.zoom_fft scipy.signal._czt.ZoomFFT

Local connectivity graph

Hover to see nodes names; edges to Self not shown, Caped at 50 nodes.

Using a canvas is more power efficient and can get hundred of nodes ; but does not allow hyperlinks; , arrows or text (beyond on hover)

SVG is more flexible but power hungry; and does not scale well to 50 + nodes.

All aboves nodes referred to, (or are referred from) current nodes; Edges from Self to other have been omitted (or all nodes would be connected to the central node "self" which is not useful). Nodes are colored by the library they belong to, and scaled with the number of references pointing them


GitHub : /scipy/signal/_czt.py#504
type: <class 'function'>
Commit: