从波形中获取声音功率

时间:2013-06-21 11:25:38

标签: java android audio fft waveform

我使用ringdroid应用程序(http://code.google.com/p/ringdroid/)来获取波形,但是如果我需要获得声音功率(类似均衡器),我必须使用傅立叶变换,否则它没有FT?请你能告诉我这个暗示吗?我试图在很多页面中找到解决方案,但没有很好的结果。 谢谢你的回答

1 个答案:

答案 0 :(得分:0)

如果您只想要总功率,则无需进行FFT。您可以将平方振幅相加,然后除以总时间。

要记住的一些事项:1)确保在之前取得放大的的平方。 2)重要的是0在这里,并且振幅需要从0偏转,即在没有声音的情况下从读数偏转;因此,如果您的值范围为0到1024,则无声音值可能为512,这需要从之前的每个值中减去你取正方形。

另外,顺便说一下,如果您正在为听觉信号制作电平表,您可能需要取log的功率,因为​​感知的响度会随着日志而不是总功率而变化。但这是一个感知问题,取决于你想要代表什么。

最后,值得注意的是,以这种方式计算的功率(即,直接来自波形)将给出与使用FFT计算功率的结果完全相同的结果。这称为Parseval's Theorem