音频-PCM-(Pulse Code Modulation)脉冲编码调制
脉冲编码调制就是把一个时间连续,取值连续的模拟信号变换成时间离散,取值离散的数字信号后在信道中传输。脉冲编码调制就是对模拟信号先抽样,再对样值幅度量化,编码的过程。
实际的编码过程中,直接称这里采集到的PCM编码的音频数据为原始音频数据。
主要参数:
1.采样率 sampleRate
2.位数 bitsperChannel
3.声道 channels
采样率:
在模拟信号向数字信号转换的过程中,对线性信号取值的频率。
单位为hz,hz >>(n/s); 即每秒取值的次数。
位数:
在采集到模拟信号以后,需要对它进行量化,位数就是模拟信号的量化数字域。
划分的越细则细节越明显,越接近真实。单位为位数。
声道:
声道就是采样的时候,在不同的位置存放的取样器采集到的独立的信号。
分为stereo立体声和mono单声道。
双声道的pcm的存放空间位置为:LRLRLRLRLR
单声道的存放空间位置为:LLLLLLLLL
码率:
1S产生的数字信号总量:采样率*位数*声道数
例如:8000hz,16位,mono每秒产生的数据量为:8000hz*16bit*1 = 128000bit/s (bps) = 16000Byte/s.
8bit和16bit取值范围
Format Maximum Value Minimum Value Midpoint Value
8-bit PCM 255 (0xFF) 0 128 (0x80)
16-bit PCM 32767 (0x7FFF) -32768 (-0x8000) 0
其中8bit没有符号位,16bit有符号位。
值的大小直接理解为振幅。
值在转换的过程中,其实来自于模拟信号转换为数字信号时的电压大小,类似0v-5v,其实就是min到max的取值。
换算为声音大小
取得pcm的大小后,可以通过公式换算得到声音大小;
例如,当前取值为x,则PCM转换为分贝大小的公式为:
db=20*lg(x/2^(位数-1))