gpt4 book ai didi

python - 如何在 SciPy 的短时傅立叶变换中设置频率网格?

转载 作者:太空宇宙 更新时间:2023-11-03 14:24:24 25 4
gpt4 key购买 nike

我按照描述执行短时傅立叶变换 here .

from scipy.signal import stft
f, t, Zxx = stft(data)
据我所知,我得到以下对象:(1)一个包含频率值的一维数组,(2)一个包含时间值的一维数组,以及(3)一个包含给定频率的强度的二维数组给定的时间。

我的问题是关于如何控制/修改频率网格。默认情况下,我得到了 129 个频率的网格。我想做的第一件事是增加频率数量(以获得更细粒度的网格)。

除此之外,如果能够指定应使用的频率范围就好了。

最佳答案

正如 Uvar 所说,可观测频率的范围受到参数 nperseg 的限制。给定 n 个样本,只能观察到 n/2 + 1 频率,即 fs*k/nk = 0,1,2,。 ..,n/2 其中,fs 是采样频率,nnperseg。由于aliasing,任何更高的值都会丢失。 。这是一个数学限制,SciPy 对此无能为力。要获得足够细化的频率列表,请增加nperseg。默认值 nperseg = 256 给出 (256/2) + 1 = 129 个频率。

离散傅里叶变换一次为您提供所有可观察的频率,无法选择自定义范围。当然,您可以对输出 f 进行切片来选择感兴趣的频率范围。

关于python - 如何在 SciPy 的短时傅立叶变换中设置频率网格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47729060/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com