【发布时间】:2018-07-16 21:05:09
【问题描述】:
我正在尝试对音频文件进行傅立叶变换。到目前为止,我已经设法在this 答案的帮助下读取了文件的标题。 This 是输出。
音频格式为 1,这意味着 PCM,我应该很容易能够处理数据。然而,这是我想不通的。
数据是二进制的,我应该将它转换为浮点数还是我无法理解的其他东西?
【问题讨论】:
-
我试图不对 PCM 样本使用库。不回答我的问题数据是什么。
我正在尝试对音频文件进行傅立叶变换。到目前为止,我已经设法在this 答案的帮助下读取了文件的标题。 This 是输出。
音频格式为 1,这意味着 PCM,我应该很容易能够处理数据。然而,这是我想不通的。
数据是二进制的,我应该将它转换为浮点数还是我无法理解的其他东西?
【问题讨论】:
是的,它是二进制的。具体来说,它是有符号的 16 位整数。 您可能需要根据您的 FFT 需求将其转换为浮点数或双精度数。
【讨论】:
我建议您使用单声道输入音频文件...您展示的样本有两个声道(立体声),这会使数据稍微复杂...对于单声道 PCM 文件,其结构是
two-bytes-sample-A immediately followed by two-bytes-sample-B ... etc.
在 PCM 中,每个这样的样本直接对应于模拟音频曲线上的一个点,因为麦克风振膜(或您的耳膜)会摆动……注意正确使用数据的字节序,每个样本都会产生一个整数使用所有 16 位,因此无符号整数的值从 0 到 (2^16 - 1),即 0 到 65535 .... 确认您的样本保持在此范围内(如果它们是无符号的)
【讨论】: