| stft {gsignal} | R Documentation |
Short-Term Fourier Transform
Description
Compute the short-term Fourier transform of a vector or matrix.
Usage
stft(
x,
window = nextpow2(sqrt(NROW(x))),
overlap = 0.75,
nfft = ifelse(isScalar(window), window, length(window)),
fs = 1
)
Arguments
x |
input data, specified as a numeric or complex vector or matrix. In case of a vector it represents a single signal; in case of a matrix each column is a signal. |
window |
If |
overlap |
segment overlap, specified as a numeric value expressed as a multiple of window or segment length. 0 <= overlap < 1. Default: 0.5. |
nfft |
Length of FFT, specified as an integer scalar. The default is the
length of the |
fs |
sampling frequency (Hertz), specified as a positive scalar. Default: 1. |
Value
A list containing the following elements:
fvector of frequencies at which the STFT is estimated. If
xis numeric, power from negative frequencies is added to the positive side of the spectrum, but not at zero or Nyquist (fs/2) frequencies. This keeps power equal in time and spectral domains. Ifxis complex, then the whole frequency range is returned.tvector of time points at which the STFT is estimated.
sShort-time Fourier transform, returned as a matrix or a 3-D array. Time increases across the columns of
sand frequency increases down the rows. The third dimension, if present, corresponds to the input channels.
Author(s)
Andreas Weingessel, Andreas.Weingessel@ci.tuwien.ac.at.
Conversion to R by Geert van Boxtel, G.J.M.vanBoxtel@gmail.com.
Examples
fs <- 8000
y <- chirp(seq(0, 5 - 1/fs, by = 1/fs), 200, 2, 500, "logarithmic")
ft <- stft (y, fs = fs)
filled.contour(ft$t, ft$f, t(ft$s), xlab = "Time (s)",
ylab = "Frequency (Hz)")