jax.scipy.signal.istft#
- jax.scipy.signal.istft(Zxx, fs=1.0, window='hann', nperseg=None, noverlap=None, nfft=None, input_onesided=True, boundary=True, time_axis=-1, freq_axis=-2)[source]#
执行逆短时傅里叶变换 (ISTFT)。
JAX 实现的
scipy.signal.istft()
; 计算jax.scipy.signal.stft()
的逆运算。- 参数:
Zxx (Array) – 要重建的信号的 STFT。
fs (ArrayLike) – 时间序列的采样频率(默认值:1.0)
window (str) – 应用于每个段的数据锥形窗口。可以是窗口函数名称、指定窗口长度和函数的元组,或数组(默认值:
'hann'
)。nperseg (int | None | None) – STFT 中每个段的数据点数。如果为
None
(默认值),则该值由Zxx
的大小决定。noverlap (int | None | None) – 段之间重叠的点数(默认值:
nperseg // 2
)。nfft (int | None | None) – STFT 中使用的 FFT 点数。如果为
None
(默认值),则该值由Zxx
的大小决定。input_onesided (bool) – 如果为 Tru`(默认值),则将输入解释为单边 STFT(仅正频率)。如果为 False,则将输入解释为双边 STFT。
boundary (bool) – 如果为 True(默认值),则假定输入信号在其边界处由
stft
扩展。如果为 False,则假定输入信号在边界处被 stft 截断。time_axis (int) – Zxx 中对应于时间段的轴(默认值:-1)。
freq_axis (int) – Zxx 中对应于频率箱的轴(默认值:-2)。
- 返回值:
长度为 2 的数组元组
(t, x)
。t
是信号时间的数组,x
是重建的时间序列。- 返回类型:
另请参见
jax.scipy.signal.stft()
: 短时傅里叶变换。示例
演示这给出了
stft()
的逆运算>>> x = jnp.array([1., 2., 3., 2., 1., 0., 1., 2.]) >>> f, t, Zxx = jax.scipy.signal.stft(x, nperseg=4) >>> print(Zxx) [[ 1. +0.j 2.5+0.j 1. +0.j 1. +0.j 0.5+0.j ] [-0.5+0.5j -1.5+0.j -0.5-0.5j -0.5+0.5j 0. -0.5j] [ 0. +0.j 0.5+0.j 0. +0.j 0. +0.j -0.5+0.j ]] >>> t, x_reconstructed = jax.scipy.signal.istft(Zxx) >>> print(x_reconstructed) [1. 2. 3. 2. 1. 0. 1. 2.]