tf.keras.ops.stft  |  TensorFlow v2.16.1 (original) (raw)

Short-Time Fourier Transform along the last axis of the input.

tf.keras.ops.stft(
    x,
    sequence_length,
    sequence_stride,
    fft_length,
    window='hann',
    center=True
)

The STFT computes the Fourier transform of short overlapping windows of the input. This giving frequency components of the signal as they change over time.

Args
x Input tensor.
sequence_length An integer representing the sequence length.
sequence_stride An integer representing the sequence hop size.
fft_length An integer representing the size of the FFT to apply. If not specified, uses the smallest power of 2 enclosing sequence_length.
window A string, a tensor of the window or None. If window is a string, available values are "hann" and "hamming". If windowis a tensor, it will be used directly as the window and its length must be sequence_length. If window is None, no windowing is used. Defaults to "hann".
center Whether to pad x on both sides so that the t-th sequence is centered at time t * sequence_stride. Otherwise, the t-th sequence begins at time t * sequence_stride. Defaults to True.
Returns
A tuple containing two tensors - the real and imaginary parts of the STFT output.

Example:

x = keras.ops.convert_to_tensor([0.0, 1.0, 2.0, 3.0, 4.0]) stft(x, 3, 2, 3) (array([[0.75, -0.375], [3.75, -1.875], [5.25, -2.625]]), array([[0.0, 0.64951905], [0.0, 0.64951905], [0.0, -0.64951905]]))