PCM的编码原理比较直观和简单,如(1)所示。它的输入是模拟信号,首先经过时间采样,然后对每一样值都进行量化,作为数字信号的输出,即PCM样本序列x(0),x(1),…,x(n)。图中的“量化,编码”可理解为“量化阶大小(step-size)”生成器或者称为“量化间隔”生成器。
如果采用相等的量化间隔处理采样得到的信号值,那么这种量化称为均匀量化。均匀量化就是采用相同的“等分尺”来度量采样得到的幅度,也称为线性量化,如(2)所示。量化后的样本值Y和原始值X的差 E=Y-X 称为量化误差或量化噪声。
非均匀量化
用均匀量化方法量化输入信号时,无论对大的输入信号还是小的输入信号一律都采用相同的量化间隔。为了适应幅度大的输入信号,同时又要满足精度要求,就需要增加量化间隔,这将导致增加样本的位数。但是,有些信号(例如话音信号),大信号出现的机会并不多,增加的样本位数就没有充分利用。为了克服这个不足,就出现了非均匀量化的方法,这种方法也叫做非线性量化。
非线性量化的基本想法是,对输入信号进行量化时,大的输入信号采用大的量化间隔,小的输入信号采用小的量化间隔,这样就可以在满足精度要求的情况下用较少的位数来表示。量化数据还原时,采用相同的规则。
在语音信号的非线性量化中,采样输入信号幅度和量化输出数据之间定义了两种对应关系,一种称为m律压扩(m-law companding)算法,另一种称为A律(A-law)压扩算法。
1.m 律压扩
G.711标准建议的m律压扩主要用在北美和日本等地区的数字电话通信中,按下面的式子(归一化)确定量化输入和输出的关系:
式中:x为输入信号幅度,规格化成 -1≤< /SPAN> x≤ 1;
sgn(x)为x的极性,x<0时为-1,否则为1;
m为确定压缩量的参数,它反映最大量化间隔和最小量化间隔之比,取100≤ m≤ 500,多取 m =255。
由于m律压扩的输入和输出关系是对数关系,所以这种编码又称为对数PCM。具体计算时,用m=255,可以把对数曲线变成8条折线以简化计算过程。
2.A律压扩
G.711标准建议的A律压扩主要用在中国大陆和欧洲等地区的数字电话通信中,按下面的式子确定量化输入和输出的关系:
0 ≤ | x| ≤ 1/A
1/A < |x| ≤ 1
式中:x为输入信号幅度,规格化成 -1 ≤< /SPAN > x ≤ 1;
sgn(x)为x的极性,x<0时为-1,否则为1;
A为确定压缩量的参数,它反映最大量化间隔和最小量化间隔之比,通常取A=87.6。
A律压扩的前一部分是线性的,其余部分与m律压扩相同。A律压扩具有与m律压扩相同的基本性能(在大信号区信噪比高于m律量化器,但在小信号区不如m律量化器)和实现方面的优点,尤其是还可以用直线段很好地近似,以便于直接压扩或数字压扩,并易于与线性编码格式相互转换。具体计算时,A=87.56,为简化计算,同样把对数曲线部分变成13条折线。
对于采样频率为8 kHz,样本精度为13比特、14比特或者16比特的输入信号,使用m率压扩编码或者使用A率压扩编码,经过PCM编码器之后每个样本的精度为8比特,输出的数据率为64 kbps。这个数据就是CCITT推荐的G.711标准:话音频率脉冲编码调制(Pulse Code Modulation (PCM) of Voice Frequencies)。通常的听觉主观感觉认为8位压扩量化有不低于12位均匀量化A/D的信噪比及动态范围。