比方说,我使用wave
模块从声音文件中获取原始PCM数据。我如何计算特定样本的包含频率的幅度?后来我想画一个频率图这样对每一帧:从PCM数据获取频率信息
如何在每个频率的幅度来计算?
如果可能,我宁愿选择不需要numpy
的解决方案。在此操作所需的计算背景下,学习资源的链接也会很有帮助。
比方说,我使用wave
模块从声音文件中获取原始PCM数据。我如何计算特定样本的包含频率的幅度?后来我想画一个频率图这样对每一帧:从PCM数据获取频率信息
如何在每个频率的幅度来计算?
如果可能,我宁愿选择不需要numpy
的解决方案。在此操作所需的计算背景下,学习资源的链接也会很有帮助。
对于计算来自每个频率的幅度,采用原始PCM文件,必须执行Fast Fourier Transform (FFT)。由于您不想使用numpy
,因此可以使用pylab
作为替代as can be seen here。试一试!
更新:pylab.specgram
文档are here。
Pylab取决于Numpy,不是吗? – heltonbiker 2014-10-03 14:40:14
@heltonbiker是的。 – SonicARG 2014-10-03 14:44:16
答案是尽可能快地减轻对'numpy'的恐惧(除非你有一个非常有说服力的理由),并且使用'numpy.fft.rfft()'。 – heltonbiker 2014-10-03 14:38:33
如果您需要资源,请查看优秀的“了解数字信号处理”手册。使用FFT无法更好地解释频率分析。 – heltonbiker 2014-10-03 14:39:22
[Steven W. Smith,Ph.D.的科学家和工程师指南数字信号处理](http://www.dspguide.com/pdfbook.htm)是一个很好的资源恕我直言。花时间从头开始,即使它看起来很简陋。 – wwii 2014-10-03 14:59:51