Overview
SciPy 1.13, released on April 27, 2024, improves STFT (Short-Time Fourier Transform) and the optimize module.
Main Features
Improved STFT
The ShortTimeFFT class provides a more flexible API for time-frequency analysis.
python
from scipy.signal import ShortTimeFFT
from scipy.signal.windows import gaussian
import numpy as np
T_x, N = 1/20, 1000
t = np.arange(N) * T_x
x = np.sin(2 * np.pi * 5 * t)
win = gaussian(50, std=8, sym=True)
SFT = ShortTimeFFT(win, hop=10, fs=1/T_x)
Sx = SFT.stft(x)
Optimize module
New methods and improved performance for minimization and curve fitting.
python
from scipy.optimize import minimize
import numpy as np
def rosenbrock(x):
return sum(100*(x[1:]-x[:-1]**2)**2 + (1-x[:-1])**2)
x0 = np.array([0.0, 0.0])
result = minimize(rosenbrock, x0, method='L-BFGS-B')
print(f'Minimum: {result.fun:.6f}')
