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)[源代码][源代码]#
执行逆短时傅里叶变换(ISTFT)。
JAX 实现的
scipy.signal.istft()
; 计算jax.scipy.signal.stft()
的逆。- 参数:
Zxx (Array) – 待重建信号的短时傅里叶变换。
fs (ArrayLike) – 时间序列的采样频率(默认值:1.0)
window (str) – 应用于每个片段的数据锥形窗口。可以是窗口函数名称、指定窗口长度和函数的元组,或是一个数组(默认值:
'hann'
)。nperseg (int | None) – STFT 中每个段的数据点数。如果为
None``(默认),则该值根据 ``Zxx
的大小确定。noverlap (int | None) – 段落之间重叠的点数(默认值:
nperseg // 2
)。nfft (int | None) – STFT 中使用的 FFT 点数。如果为
None``(默认),则该值根据 ``Zxx
的大小确定。input_onesided (bool) – 如果为 True(默认),将输入解释为单边 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.]