Short Time Fourier Transform and its least squares inverse

版本 1.3 (734.0 KB) 作者: Tom Shlomo
Matlab routines for efficient calculation of the Short Time Fourier Transform (STFT) and its inverse (ISTFT)
293.0 次下载
更新时间 2020/9/8

Matlab routines for efficient calculation of the Short Time Fourier Transform (STFT) and its inverse (ISTFT) in the least squares sense. The implementation is fully vectorised, and is faster than MATLAB's built-in function spectrogram. The code also supports multi-channel signals.

It is common in signal processing to manipulate a signal after it has been transformed using the STFT.
In many cases, it is desired to transform the manipulated STFT array back into the time domain.
However, since the STFT is often not surjective, it might be the case that there is no signal whose STFT is equal to the manipulated STFT.
In such cases, we can find the signal whose STFT is as close as possible, in the least squares sense, to the manipulated STFT.
The algorithm to do so efficiently is described in [1].

Note that the least squares ISTFT has perfect reconstruction properties even if the window does not satisfy the constant overlap add condition (COLA)
(meaning: istft(stft(x))=x for any x).

Run "example.mlx" for more details and a demonstration.

[1] Griffin, Daniel, and Jae Lim. "Signal estimation from modified short-time Fourier transform." IEEE Transactions on Acoustics, Speech, and Signal Processing 32.2 (1984): 236-243.

引用格式

Tom Shlomo (2024). Short Time Fourier Transform and its least squares inverse (https://github.com/tomshlomo/stft/releases/tag/v1.3), GitHub. 检索时间: .

MATLAB 版本兼容性
创建方式 R2019b
与 R2016b 及更高版本兼容
平台兼容性
Windows macOS Linux

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

无法下载基于 GitHub 默认分支的版本

版本 已发布 发行说明
1.3

See release notes for this release on GitHub: https://github.com/tomshlomo/stft/releases/tag/v1.3

1.0.2

Fixes some comments

1.0.1

fixed description.

1.0.0

要查看或报告此来自 GitHub 的附加功能中的问题,请访问其 GitHub 仓库
要查看或报告此来自 GitHub 的附加功能中的问题,请访问其 GitHub 仓库