我对编程和Python很陌生。我正在做一个项目,在这个项目中,我用两组伽玛通滤波器构建了一个听觉滤波器组。现在我得到了一个39x10x8545的矩阵。我想计算rms能量在时间轴上的平均值(在8545上),以降低信号的维数。有谁能给我一个更好的方法在Python中有效地做到这一点吗?因为由于音频信号非常大,我负担不起太多的内存。提前感谢。
该信号的均方根为均方根,与均值不同。因此,您需要执行均方根计算。
math.sqrt(numpy.mean(x*x))
本网站还有其他几个页面对此进行了进一步的讨论:这里,这里,这里
我想根据Djmoffat的回答自己回答这个问题。我尝试了他的答案,但发现numpy.pow()给了我非常慢的结果。所以我尝试使用
math.sqrt(numpy.mean(x**2))
这给了我更快的结果。我知道math.pow()
是缓慢的,因为它必须考虑许多其他的东西,比如分数幂和其他这里明确讨论过的东西。上下文很重要,因为我确信我将只有整数幂,更准确地说是'2'。