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) – 要重建的信号的 STFT。
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是信号时间的 Array,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.]