是否有用于在Python中计算长期平均频谱LTAS的软件包?

问题描述

我在Python 3中搜索类似于https://de.mathworks.com/matlabcentral/fileexchange/55212-long-term-average-spectrum的软件包。 我找到了https://homepage.univie.ac.at/christian.herbst/python/index.html#praatUtilDemo,但是它似乎不适用于Python 3,并且无法运行。 另外,我尝试自己实现它,但是频谱看起来很奇怪。 我的步骤是:

  1. 从wave文件获取SPL。
  2. 将音频序列分为20毫秒间隔(不重叠)
  3. 使用numpy为每个时间范围计算傅立叶变换timeframe = np.fft.rfft(timeframe-np.mean(timeframe))
  4. 使用np.abs(timeframe)处理结果的虚部。
  5. 计算所有间隔的平均光谱。

解决方法

Welch方法可用于计算时间序列的平均频谱。它可以完成您在步骤2-5中要做的事情。

签出SciPy信号包和焊接方法: https://docs.scipy.org/doc/scipy-0.14.0/reference/generated/scipy.signal.welch.html