一.声音信号的数字化
我们应该都知道,声音是一种模拟信号,如果想用于计算机,就必须要将模拟信号转换为数字信号,这样,我们就能在计算机上存储声音了,等待用户想播放的时候,再将数字信号转换为模拟信号。声音的数字化需要经历三个阶段:采样、量化、编码。
采样:
是把时间上连续的模拟信号在时间轴上离散化的过程,这里有采样频率和采样周期的概念,采样周期即相邻两个采样点的时间间隔,采样频率是采样周期的倒数。示意图如下图所示:
蓝色代表模拟音频信号,红色的点代表采样得到的量化数值。采样频率越高,红色的间隔就越密集,记录这一段音频信号所用的数据量就越大,同时音频质量也就越高。
量化:
位深度:
位深度,也叫位宽,量化精度,上图中,每一个红色的采样点,都需要用一个数值来表示大小,这个数值的数据类型大小可以是:4bit、8bit、16bit、32bit等等,位数越多,表示得就越精细,声音质量自然就越好,当然,数据量也会成倍增大。常见的位宽有:8bit或者16bit。
声道数:
由于音频的采集和播放是可以叠加的,因此,可以同时从多个音频源采集声音,并分别输出到不同的扬声器,故声道数一般表示声音录制时的音源数量或回放时相应的扬声器数量。单声道(Mono)和双声道(Stereo)比较常见,顾名思义,前者的声道数为1,后者为2。
编码:
编码是整个声音数字化的最后一步,其实声音模拟信号经过采样,量化之后已经变为了数字形式,但是为了方便计算机的储存和处理,我们需要对它进行编码,以减少数据量。常见的音频编码格式有PCM、PDM。
通过采样频率和精度可以计算声音的数据传输率:数据传输率(bps) = 采样频率 × 量化位数 × 声道数。
有了数据传输率我们就可以计算声音信号的数据量:数据量(byte)= 数据传输率 * 持续时间 / 8。
PCM编码:
PCM (Pulse Code Modulation) 是通过等时间隔(即采样率时钟周期)采样将模拟信号数字化的方法。
PCM使用等间隔采样方法,将每次采样的模拟分量幅度表示为N位的数字分量(N = 量化位数),因此PCM方式每次采样的结果都是N bit长的数据。
PDM编码:
PDM(Pulse Density Modulation)是一种用数字信号表示模拟信号的调制方法,同为将模拟量转换为数字量的方法。
PDM使用远高于PCM采样率的时钟采样调制模拟分量,只有1位输出,要么为0,要么为1。因此通过PDM方式表示的数字音频也被称为Oversampled 1-bit Audio。
相比PDM一连串的0和1,PCM的量化结果更为直观简单。
二.数字音频接口
数字音频接口全部是硬件接口,是实实在在的物理连线方式,即同一个PCB板上IC芯片和IC芯片之间的通讯协议。和音频编码格式完全是两回事。
数字音频接口有PCM、I2S、AC97、PDM;
I2S和PCM(TDM)接口传输的数据是PCM编码格式的音频数据;
PDM接口传输的数据是PDM编码格式的音频数据;
为直观的展示,下图简单列举了数字音频接口硬件接线的一般场景,图中AP指的应用处理器。
I2S总线:
I2S总线是一种数字音频数据传输的串行连接,在系统中用于设备之间的音频数据传输,由飞利浦半导体发明,现在被许多半导体厂商广泛使用。
用I2S总线的设备有ADC、DAC、DSP、CPU等。使用I2S接口,我们可以将音频设备和嵌入式SoC平台连接在一起,为系统提供音频接口解决方案。
和 I2C、 SPI 这些常见的通信协议一样, I2S 总线用于主控制器和音频 CODEC 芯片之间传输音频数据。I2S 接口需要3根信号线(如果需要实现收和发,那么就要 4 根信号线,收和发分别使用一根信号线):
I2S总线一般由1根系统时钟线和3根信号线组成:
MCLK:称为主时钟,也叫系统时钟(Sys Clock),一般为了使系统间能够更好地同步时增加MCLK信号,MCLK的频率 = 128或者256或者512 * 采样频率;
SCLK(BCLK):串行时钟SCLK,也叫位时钟(BCLK),即对应数字音频的每一位数据,SCLK都有1个脉冲。SCK的频率 = 声道数 * 采样频率 * 采样位数;
LRCK:帧时钟LRCK,(也称WS),用于切换左右声道的数据。LRCK为“1”表示正在传输的是右声道的数据,为“0”则表示正在传输的是左声道的数据。LRCK的频率等于采样频率;
SDATA(SD):就是用二进制补码表示的音频数据。最高位拥有固定的位置,而最低位的位置则是依赖于数据的有效位数。
PCM/TDM总线:
PCM总线包括4根信号:
PCM_CLK:数据时钟信号;
PCM_SYNC:帧同步时钟信号;
PCM_IN:接收数据信号;
PCM_OUT:发送数据信号;
和I2S接口差不多,PCM接口是4根信号线,通常用于AP处理器和通信MODEM之间传输语音数据(就是双向打电话的数据)。
特点:效率高,多达16路数据;主要传输音乐;传输PCM编码后的音频数据。
PDM总线:
PDM总线只有两根信号线:
PDM_CLK:时钟信号;
PDM_DATA :数据信号;
特点:信号线数量少,只需两根;多用于传输麦克风录音;传输的是PDM编码后的音频数据(不同于I2S接口和PCM接口)。
在数字麦克风领域,应用最广的就是PDM接口,其次为I2S接口。
PDM在诸如手机和平板等对于空间限制严格的场合有着广泛的应用前景。