【问题标题】:Audio signal processing using Python使用 Python 处理音频信号
【发布时间】:2013-06-07 01:16:41
【问题描述】:

我一直在做有关音频信号处理的作业。我读过一些论文,对公式感到困惑:。该公式用于处理 44100Hz、16 位、单声道音频。音频已经过预处理并被分割成 1024 宽的帧。 F(w) 是每帧的 FFT 系数,w with - above 是帧速率的一半,即 22050。

我搜索了很多,最重要的是Analyze audio using Fast Fourier Transform。但我仍然无法清楚地理解它。我得到了 FFT 系数,带有 scipy 和 numpy,一个 1024 宽度的数组。那么我该如何执行公式呢?它是否等于数组的 0 到 512 个值的总和?

希望有人可以帮助我。提前致谢。

【问题讨论】:

  • 你已经尝试过什么?我们通常希望看到您尝试的源代码。
  • F(w) 真的是每一帧的 FFT 系数吗?对我来说似乎是一个功能。查看它的方程式可能很有用。
  • 我在 Google 和 stackoverflow 上搜索了很多。我已经给出了我认为对我最有帮助的资源。我已经读取了音频信号,对其进行了预处理并将其分割成帧。我已经对帧进行了 FFT。看来我得到的是FFT系数。但我不知道如何使用 FFT 系数来执行公式。我也希望F(w) 是一个等式。如果是的话,我就没有必要来这里了。我读过的所有论文都告诉我F(w) 是每一帧的 FFT 系数。 @Marko

标签: python audio signal-processing fft


【解决方案1】:

假设您有一个信号x = [ x_1, x_2, ..., x_N ],那么您将在 python 中计算上面的公式(导入 scipy):

E = sum( abs(fft(x))[:len(x)/2]**2 ) / len(x)

关于标准化因子 N = len(x) 我不是 100% 确定 — 这取决于 fft 的确切实现。

【讨论】:

  • 积分中的dw和limit怎么样?
  • 其实我就是这么想的:我只得到一个数组,所以这里的集成是没有意义的。虽然论文都告诉我这是一个整合,但我确实认为他们的意思实际上是一个总和。
  • 当然,积分只存在于理论上。实际上,在处理真实数据时,您总是在计算总和。
猜你喜欢
  • 2018-03-05
  • 2012-11-01
  • 1970-01-01
  • 2012-11-05
  • 1970-01-01
  • 2018-05-10
  • 2013-01-16
  • 2011-11-12
  • 1970-01-01
相关资源
最近更新 更多