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

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

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

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

我建议阅读有关如何代表音频的内容 ,特别是PCM 。

要将此数据(幅度与时间)转换为频率数据,您需要了解傅立叶变换的基本概念

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

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