自适应差分脉码调制是指具有自适应预测和量化功能的差分脉码调制。其量化器的量化级(阶距)能随信号值变化作自适应调整,以提高量化信噪比;同时其预测器的预测系数能随信号统计特性的变化作自适应调整,以减小预测误差,降低传输误码率。CCITTG.721建议规定了64kb/s和32kb/sADPCM的国际标准。每样值8b的64kb/s话音PCM经转换成线性PCM码后,可被压缩为每差分样值4b的32kb/sDPCM数据。为适应不同统计特性的话音和中、低速率已调话带数据的透明传送,还规定采用双标度因子的自适应等措施。其后CCITTG.723建议将速率扩展到24kb/s和40kb/s;G.726建议则用来代替G.721和G.723,形成了24,32,40kb/sADPCM标准,并建议采用一种称为嵌人式ADPCM的标准化算法;后又演变为CCITTG.727建议,形成了16,24,32和40kb/s的可变速率标准。根据G.727建议,高速率编码可得到与64kb/s话音等效的质量,并可承载高速话带数据;采用暂时降质处理的ADPCM可相应减低速度又减轻电话网的拥塞。ADPCM具有重建信号质量好、编码时延小、工程实现复杂性低等优点,被广泛应用于话音压缩设备和
数字电路倍增设备(DCME)、数字用户环路(DSL)等数字增容设备中。
简介
数字通信系统和传统的模拟通信系统相比较,具有抗干扰性强、保密性好、可靠性高和经济性好等显著优点。尤其是,它便于实现
综合业务数字网(ISDN)。因此,脉码调制(PCM)的数字通信系统已经在大容量数字微波、光纤通信系统以及市话网局间中继传输系统中获得广泛的应用。目前,世界各国的
数字通信网正在得到迅速发展,可以预见,本世纪90年代或21世纪,数字通信将逐步成为主要通信方式。
但是,现有的PCM编码需采用64kibt/s的A律或μ律对数压扩的方法,才能符合长途电话传愉语音的质量指标,其占用频带要比模拟
单边带通信系统宽很多倍。因此,在拥有相同频带宽度的传输系统中,PCM能传送的电话路数要比模拟单边带通信方式传送的电话路数少得多。这样,对于费用昂贵的长途大容量传输系统,尤其是对于卫星通信系统,采用PCM数字通信方式时的经济性能很难和模拟通信相比拟。至于在超短波波段的
移动通信网中,由于其频带有限(每路电话必须小于25kHz),64kbit/s PCM更难于获得应用。因此,几十年来,人们一直致力于研究压缩数字化语音占用领带的工作,也就是努力在相同质量指标的条件下,降低数字化语音数码率,以提高数字通信系统的频带利用率。
通常,人们把低于64kbit/s数码率的语音编码方法称为语音压缩编码技术。语音压缩编码方法很多,如有差分脉码调制(DPCM),子带编码(SBC),变换域编码(ATC),多脉冲激励
线性预测编码(MPLPC),参数或波形矢量编码(VQ),随机码激励统计编码(CELP)等等。多年来大量的研究表明,自适应差分脉码调制(ADPCM)是语音压缩编码中复杂度较低的一种方法,它能在32kbit/s数码率上达到符合64kbit/s数码率的语音质量要求,也就是符合长途电话的质量要求。为此,CCITT国际电报电话咨询委员会,自1981年至1984年经过三年多时间的研究讨论,提出了32kbit/sADPCM语音编码的G.721建议,作为长途传输中的一种新型的国际通用的语音编码方法。1986年6月又对G.721建议进行了适当修正,使32kbit/sADPCM语音编码方法更趋于实用化,得到了进一步的完善。
应当指出,ADPCM编码方法在更低的数码率(如16kibts/~8kibt/s等)上应用时,其语音质量已明显下降,不能达到高质量通信系统的要求。但它可和其他语音编码方法(如子带编码等)组合起来,达到狡高的质量。还应指出,对图象信号也可进行ADPCM编码,以获得高质量的数字化图象信号。下面首先介绍ADPCM的基本原理,接着概述自适应量化与自适应预测的原理。随后,讨论了CCITTG.721建议推荐的32kbit/sADPCM算法的特点。最后,综述了国内外实现32kbit/sADPCM编码器的最新发展动向。
脉冲编码调制(PCM)
模拟信号经过抽样、量化后输出的是一个数字电平序列,这里还要将量化的电平序列进行编码,其相反过程就是译码,并且这里的编解码过程属于信源编码的范畴。
脉冲编码调制的基本原理
PCM是一种波形编码的形式,它将模拟信号进行抽样量化输出数字电平序列,得到二进制信号,再通过并串转换器转换成串行脉冲信号,并且用脉冲对模拟信号的幅度进行编码,这就是
脉冲编码调制。如下,是一个简易的PCM通信系统框图,如图1。
由图2可见,通过对量化PAM信号编码得到了PCM信号,也就是把每一个抽样量化的采样值用一组数据量表示。当然设计者确定了每一个量化级的具体表示代码,如表所示为一个8级量化的并以格雷码表示的3位PCM码的示例。本论文所设计编解码器是对16位PCM码的处理。
为了便于数字运算,在编码器中先将输入的8位PCM码c(n)转换成14位线性码s1(n)。然后,同预测信号sp(n)相减产生差值信号d(n),再对d(n)进行自适应量化,产生4bit ADPCM代码I(n)。一方面把I(n)送给解码器,另一方面把I(n)进行本地解码得到量化后的差值信号dq(n),再同预测信号sp(n)相加得到本地重建信号sr(n),自适应预测器采用二阶极点、六阶零点的混合预测器,它利用sr(n)、dq(n)以及前几个时刻的值,对下一时刻将要的信号s1(n+1)进行预测,计算出sp(n+1)。为了使量化器能适应语音、带内数据及信令等具有不同统计特性以及不同幅度的输入信号,自适应要依输入信号的特性自动改变自适应速度参数来控制量阶。这一功能有量化器定标因子自适应、自适应速度控制、单音及过渡检测3个功能单元完成。它的编码器框图如图3。
自适应差分脉冲编码调制是利用样本与样本之间的高度相关性和量化阶自适应来压缩数据的一种波形编码技术,它综合了的自适应特性和系统的差分特性,是一种性能比较好的波形编码。的核心想法是利用自适应的思想改变量化阶的大小,即使用小的量化阶距一去编码小的差值,使用大的量化阶去编码大的差值,使用过去的样本值估算下一个输入样本的预测值,使实际样本值和预测值之间的差值总是最小。
脉冲编码调制的特性
PCM信号通常是串行传输,其带宽范围如下式
式中 表示抽样频率,n表示PCM编码的位数(量化级数M=2n)。当采用(sinx)/x作为PCM波形的
生成函数时,式中等号成立。如表所示,给出了两种波形编码方式:矩形脉冲抽样和双极形波形编码,列出了采用两种方式的PCM信号最小带宽的情况(采用的是最小抽样频率fs=2B)。可见,PCM波形的频谱与用来生成它的函数波形有密切关系,波形编码的方式也与之有着密切关系。
PCM信号是数字量,在把转换成模拟信号时,通常用信噪比(SNR)来对系统的性能进行评估。表中 为峰值信号功率同平均噪声功率的比值, 为平均信号功率同平均噪声功率的比值,通常情况下以这两个参数来评估系统是否采用了符合抽样定理的采样频率。
式中, 表示PCM传输过程中的误码率,M为量化电平级数。
由表可见,信噪比随着量化级数的增多而增大,但是信道宽度也随之增大。所以通常会使用一些特定的算法来对PCM信号进行压缩后再进行传输,这样来降低传输信号对带宽的要求。本论文主要研究的就是基于ADPCM算法,对PCM语音信号进行压缩的方法。
自适应脉冲编码调制
自适应差分脉冲编码调制(ADPCM),是一种性能很好的波形编码算法,它综合了差分脉冲编码调制(DPCM)的差分特性和自适应脉冲编码调制(APCM)的自适应特性。ADPCM具有算法比较简单、延迟低、重建新号音质高等优点,因而被广泛应用于数字语音处理领域。ADPCM算法将16bit的PCM抽样数据有效压缩成4bit ADPCM数据,用于存储或传输。
ADPCM的核心思想:
ADPCM算法的量化值并不是表示采样点的幅值,而是采样点处的抽样值与前一个采样点预测值的差值。ADPCM是一种波形编码技术,利用输入信号的前后相关性,自适应量化间隔来对PCM数据进行压缩。在实际的体系应用中,一般是根据前面的多个抽样值来预测下一个输入的抽样值,这样才能获得更加准确的预测值,减小了误差。由于每次抽样都会产生非线性的预测误差,因此才称为自适应差分脉冲编码调制。在算法的完成过程当中选用了量化步长索引调整表和索引值对应的量化步长表两个常数表格。量化步长表的作用是以常数的形式确定量化步长值和下标;而索引调整表则是依据表里了的误差值来调整抽样预测值的下标,再以此来调整预测值的大小。
如图4是ADPCM编码器的原理图。输入为16bit抽样PCM信号X(n),它与上一次抽样的预测值X(n-1)相减求差值d(n),然后差值d(n)和当前的量化步长q(n)通过一个编码器,并对该差值进行量化输出得到4bit位宽的ADPCM压缩码L(n)。输出L(n)的同时,用它来调整,更新量化步长q(n+1),并且计算此编码周期的当前抽样的预测值X(n)(也是译码输出值)。下面新一级PCM信号输入进行相同的操作,这样持续的将PCM信号编码成ADPCM信号。
如图5所示为ADPCM译码器的原理图,可见是编码的逆过程,输入为4bitADPCM信号L(n),将它和当前的量化步长(第一个数为初始量化步长)送入一个译码器,求出差值d(n),与此同时输入的L(n)还要用来计算调整得到下一级的量化步长q(n+1)。下面将差值d(n)与上一级预测值X(n-1)相加得到16bit PCM译码输出信号,将此同时将此PCM输出信号作为下一级预测值。
不管是编码还是译码,即无论是PCM信号压缩成ADPCM信号,都需要用ADPCM的值来计算更新量化步长q(n),并且是通过两次查表来实现的。首先,通过量化步长索引调整表(表3.3),查出ADPCM值对应的量化步长索引值,然后将此索引值同之前的索引值相加得到对应的量化步长(表3.4)的下标,通过此下标就查到了新的量化步长。这样就完成了量化步长的调整。