Python中3D音频信号的平均RMS值

时间:2014-08-15 09:45:47

标签: python audio rms energy

我是编程和Python的新手。我正在开发一个项目,在其中我用两组Gammatone过滤器构建了一个Auditory过滤器库。现在我最终得到了一个39x10x8545矩阵。我想计算时间轴(超过8545)的均方根能量的平均值,以减少信号的维数。任何人都可以建议我一个更好的方法来在Python中有效地做到这一点,因为由于音频信号非常大,我无法承受太多的内存。提前致谢。

2 个答案:

答案 0 :(得分:1)

信号的RMS是均方根,与平均值不同。所以你需要执行RMS计算。

math.sqrt(numpy.mean(x*x))

此网站上还有其他几个页面可进一步讨论此问题:hereherehere

答案 1 :(得分:0)

我想根据Djmoffat的回答自己回答这个问题。我尝试了他的答案,但发现numpy.pow()给了我很慢的结果。所以我尝试使用

math.sqrt(numpy.mean(x**2)) 

这给了我更快的结果。我理解math.pow()很慢,因为它必须考虑许多其他事情,例如分数权力和其他明确讨论过的事情here。上下文很重要,因为我确信我只有整数幂,更确切地说是'2'。