2014-09-19 85 views
1

我跟随python挑战谜语,现在我需要分析一个wav文件。我知道有一个python模块可以读取这些帧,并且这些帧是16bit或8bit。WAV文件中的实际数据是什么?

我不明白,这是什么代表?这些值是否直接转化为施加于扬声器的电压(通过分解)?

回答

3

这些位表示特定时刻电波形的电压电平。

要的声波的电表示(模拟信号)转换成数字数据,则sample the waveform at regular intervals,像这样:

enter image description here

每个蓝点的表示一个四比特的值表示模拟信号在该时间点的高度(X轴是时间,Y轴是电压)的数字。在.WAV文件中,这些点由8位数字(具有256个不同的可能值)或16位数字(具有65536个不同的可能值)表示。每个数字中的位数越多,数字采样的准确性就越高。

+0

我在某处读到16位版本已签名,是否意味着样本的瞬时高度会自动移位? – Yotam 2014-09-19 19:41:56

+1

这意味着零点位于X轴的中心(波的中心),而负数表示轴下方的值。 – 2014-09-19 19:42:33

3

WAV文件实际上可以包含各种各样的东西,但它最典型的是linear pulse-code modulation (LPCM)。每个框架包含每个通道的样本。如果您正在处理单声道文件,那么每个帧都是单个样本。采样率指定每个通道每秒有多少个采样。 CD音质是每秒44,100次的16位采样。

这些样本实际上是测量该时间点的压力水平。设想一个扬声器压缩它前面的空气来创造声音,来回振动。对于这个例子,你可以将样本水平等同于扬声器锥体的位置。