PCM(Pulse Code Modulation)也被称为脉码编码调制。PCM中的声音数据没有被压缩,如果是单声道的文件,采样数据按时间的先后顺序依次存入。关于PCM的详细细节可以参考 

       因为PCM没有压缩,它一定满足一个公式:capacity(bit) = time(s)*(16/8 bit/point)*n(point/s)*(L/R),最左边表示容量,位为单位;time单位是音频持续时间,秒为单位;采样位数跟一个点的采样精度有关,为1字节8位,或者2字节16位;n是采样率,即一秒钟才用多少个点;L/R表示是立体声还是单声道,前者是2后者是1。所以当我们对一段音频的采样率不太确定时,根据录制的音频文件的大小,时间,采样率和采样精度等参数,可以反推出采样率的多少。

        分析PCM raw声音文件,可借助PCM分析工具Audacity,声音内容和幅度都可以用波形表现出来 。PCM接口定义(PCM-clock、PCM-sync、PCM-in、PCM-out)脉冲编码调制,模拟语音信号经过采样量化以及一定数据排列就是PCM了。理论上可以传输单声道,双声道立体声和多声道,是数字音频的raw data。

PCM音频 && I2S音频_接收端

===============================I2S音频 ===============

      I2S有3个主要信号:

1.串行时钟SCLK,也叫位时钟(BCLK),即对应数字音频的每一位数据,SCLK都有1个脉冲。SCLK的频率=2×采样频率×采样位数 

2. 帧时钟LRCK,用于切换左右声道的数据。LRCK为“1”表示正在传输的是左声道的数据,为“0”则表示正在传输的是右声道的数据。LRCK的频率等于采样频率。

3.串行数据SDATA,就是用二进制补码表示的音频数据。I2S(Inter-IC Sound Bus)是飞利浦公司为数字音频设备之间的音频数据传输而制定的一种总线标准。在飞利浦公司的I2S标准中,既规定了硬件接口规范,也规定了数字音频数据的格式。有时为了使系统间能够更好地同步,还需要另外传输一个信号MCLK,称为主时钟,也叫系统时钟(Sys Clock),是采样频率的256倍或384倍。

        随着技术的发展,在统一的 I2S接口下,出现了多种不同的数据格式。根据SDATA数据相对于LRCK和SCLK的位置不同,分为左对齐(较少使用)右对齐(也叫日本格式、普通格式)I2S格式(即飞利浦规定的格式)。这些格式如上说描述,综上为了保证数字音频信号的正确传输,发送端和接收端应该采用相同的数据格式和长度。三种信号的概略图如下:

                 PCM音频 && I2S音频_采样频率_02

        对于第三种I2S格式,信号无论有多少位有效数据,数据的最高位总是出现在LRCK变化(也就是一帧开始)后的第2个SCLK脉冲处(如上)。这就使得接收端与发送端的有效位数可以不同。如果接收端能处理的有效位数少于发送端,可以放弃数据帧中多余的低位数据;如果接收端能处理的有效位数多于发送端,可以自行补足剩余的位。这种同步机制使得数字音频设备的互连更加方便,而且不会造成数据错位。