View source on GitHub |
Computes the Short-time Fourier Transform of signals
.
tf.signal.stft(
signals, frame_length, frame_step, fft_length=None,
window_fn=tf.signal.hann_window, pad_end=False, name=None
)
Implemented with TPU/GPU-compatible ops and supports gradients.
signals
: A [..., samples]
float32
/float64
Tensor
of real-valued
signals.frame_length
: An integer scalar Tensor
. The window length in samples.frame_step
: An integer scalar Tensor
. The number of samples to step.fft_length
: An integer scalar Tensor
. The size of the FFT to apply.
If not provided, uses the smallest power of 2 enclosing frame_length
.window_fn
: A callable that takes a window length and a dtype
keyword
argument and returns a [window_length]
Tensor
of samples in the
provided datatype. If set to None
, no windowing is used.pad_end
: Whether to pad the end of signals
with zeros when the provided
frame length and step produces a frame that lies partially past its end.name
: An optional name for the operation.A [..., frames, fft_unique_bins]
Tensor
of complex64
/complex128
STFT values where fft_unique_bins
is fft_length // 2 + 1
(the unique
components of the FFT).
ValueError
: If signals
is not at least rank 1, frame_length
is
not scalar, or frame_step
is not scalar.