如何从WAV样本数据中提取频率?

时间:2011-11-16 15:24:41

标签: c wav pcm riff

我正在用c开发一个应用程序来读取简单的PCM WAV文件。我的问题是,我应该如何解释数据块中的样本,以便我可以提取样本的频率?

鉴于WAV示例,原始数据如何表示频率。例如。这个数据块,24 17 1e f3,对于立体声,16位,左声道样本是,0x1724 = 5924d,表示5924Hz?对于签名的样本或人类听不到的频率,怎么可能呢?

2 个答案:

答案 0 :(得分:11)

您的假设不正确。 样本数据只是实际声波的数字表示。数字代表波幅,数组偏移代表时间。

具体而言,我建议阅读How Audio is Represented PCM

要将此数据(幅度与时间)转换为频率数据,您需要了解The Fourier Transform

的基本概念

我真的建议在尝试进行任何音频处理之前花时间阅读这些内容。

答案 1 :(得分:0)

您可以在WAV标题中提取采样率,但是如果您需要记录的音频的实际频率数据,即200Hz时的能量,2kHz时的多少,8kHz时的多少等等,则需要进行FFT,或通过频谱图运行。