当前位置:文档之家› G.726标准ADPCM编码方法研究与仿真

G.726标准ADPCM编码方法研究与仿真

G.726标准ADPCM编码方法研究与仿真
G.726标准ADPCM编码方法研究与仿真

G.726标准ADPCM编码方法研究与仿真

摘要

摘要本设主要利用MATLAB,设计一个ADPCM编码系统,使其符合G.726标准。自适应差分脉冲编码调制(Adaptive Differential Pulse Code Modultion)采用自适应量化方法和自适应预测方法,对PCM语音信号进行再压缩,是一种有效的语音信号波形编码压缩方案。而本设计从自适应差分脉冲编码调制编码基础理论出发,实现了G.726标准语音压缩编码算法,并在该算法的基础上实现了自适应差分脉冲编码调制解码器程序。

本文重点叙述标准中的各个算法模块的实现。该设计将编码算法从整体上划分为自适应量化和自适应预测两个模块:在自适应量化模块中,分别实现了输入PCM格式转换、差分信号计算、量化定标因子自适应、自适应速度控制、单音信号和转移(瞬变)检测以及自适应量化6个子算法;在自适应预测模块中,实现了反向自适应量化以及自适应预测和重建信号子算法。

关键词:G.726标准;ADPCM;自适应量化;自适应预测

G.726 STANDARD ADPCM CODING AND SIMULATION

ABSTRACT

Adaptive Differential Pulse Code Modulation (ADPCM) is an effective algorithm of speech coding.It adopts the method of adaptive quantization and adaptive prediction to compress pulse code modulation (PCM) signal.In this thesis, we implemented the algorithm of speech compression coding in recommendation G.726 and a program of ADPCM encoder.Otherwise,this thesis discussed the implementation of ADPCM decoder.

Each algorithm module in the recommendation algorithm has been implemented.This part is the key point in this thesis.We divide the algorithm into two modules.One is adaptive quantization,and another is adaptive prediction.In adaptive quantization algorithm,six sub-modules have been implemented.They are Input PCM Format Conversion,Difference Signal Computation,Quantizer Scale Factor Adaptation,Adaptation Speed Control,Tone And Transition Detector and Adaptive Quantizer.In adaptive prediction algorithm,two sub-modules,Inverse Adaptive Quantizer,and Adaptive Predictor And Reconstructed Signal Calculator,are implemented.

Key words:G.726 Standard; ADPCM;Adaptive Quantization ;Adaptive Predic

目录

1 引言 (1)

1.1 课题背景及目的 (1)

1.2 国内外研究状况 (2)

1.3 课题研究方法 (2)

1.4 本文的仿真软件Matlab (6)

1.5 G.726标准简介 (6)

1.6 内容安排 (7)

2 ADPCM编码器的原理 (8)

2.1 G.726编码器算法总体概述 (8)

2.2 自适应预测语音波形编码器的设计 (8)

3 ADPCM编码器自适应量化模块的原理 (8)

3.1 输入PCM格式转换 (9)

3.2 差分信号计算 (12)

3.3 自适应量化器 (12)

3.4 量化器定标因子自适应 (13)

3.5自适应速度控制 (14)

3.6 单音和转移检测器 ................................................................... 错误!未定义书签。

4 ADPCM编码器自适应预测模块的原理

4.1 自适应预测器和重建信号计算器 (17)

4.2 逆自适应量化器 ....................................................................... 错误!未定义书签。

5 程序流程以及分析 (18)

5.1 encode()编码函数 (18)

5.2 输入PCM格式转换 (19)

5.3 差分信号计算 (20)

5.4 自适应量化器 (20)

5.5 逆自适应量化器 (23)

5.6 量化器定标因子自适应 (24)

5.7 自适应速度控制 (25)

5.8 自适应预测器和重建信号计算器 (27)

5.9 单音和转移检测器 (30)

5.10 decoder()解码函数 (30)

6 结束语 (33)

7 参考文献 (34)

8 致谢 (36)

9 附录 ...................................................................................................... 错误!未定义书签。附录1 ................................................................................................... 错误!未定义书签。附录2 ................................................................................................ 4错误!未定义书签。附录3 .. (48)

附录4 (53)

1 引言

1.1 课题背景及目的

当今社会的人们生活在一个信息时代,多媒体技术的发展更是日新月异。随着计算机技术的发展及其和通信技术的结合,现代多媒体技术和通信手段有了长足的进步。

语音信号处理领域也是这样,新的技术和方法层出不穷。

时代的进步使得信息的传输与存储成为人们生活中不可缺少的一部分。而语音作为人们传递信息、交流思想最方便快捷的手段,在高速发达的信息社会中占有重要的地位。

现代的综合业务数字网(ISDN)、卫星通信、移动通信、微波接力通信和信息高速公路等均涉及数字化语音的传输与存储。然而,过多的语音信号数据量会消耗大量的通信频率带宽和存储空间。而且,通信事业的不断发展,使得有限的频率带宽资源越来越宝贵,这就向语音压缩编码技术提出了越来越高的要求。语音编码追求:用尽可能低的比特率,尽可能小的复杂度,尽可能短的时延,获得尽可能好的语音质量。这些追求之间存在着或多或少的矛盾,语音编码技术一直是在平衡这些矛盾中发展的。

在现今的电子信息技术领域,音频信号数字化之后,其数字信号在存储、传输、抗噪等方面较之于模拟信号有明显的优势。但是它所面临的一个问题是巨大的数据量。

数字化的多媒体信息尤其是数字视频、音频信号的数据量特别庞大。巨大的数据量为存储和传输带来了压力,为了降低传输或存储的费用,就必须对数字音频信号进行编码压缩,以使得多媒体信息得到更广泛的应用。现代通信中,科学技术的飞速发展,图像、数据等非话音信息在通信信息总量中所占的比例大大提高,而且这种提高的趋势仍然会继续下去。因此,数据压缩技术亦已成为当今数字通信、广播、存储和多媒体娱乐中的一项关键的共性技术。同时也取得了不少好的成果。目前,国内语音压缩编码技术主要有两个努力方向:一方面是中低速率的语音编码的实用化,及如何使用化过程中进一步减低编码速率和提高它的抗干扰、抗噪声能力;另一方面是如何进一步地降低语音压缩的编码速率——目前的数据压缩技术已经能够在5kbps~6kbps的速率上获得较高质量的重建语音,下一个目标则是要在4kbps的速率上获得短延时、高质量的重建语音。

到目前为止,音频信号经压缩后的数码率降低到32 kbps至256kbps,语音低至8kbps 以下,个别甚至到2kbps。但码率不一,于斯,为使编码后的音频信息可被广泛地使用,进行音频信息编码时需要采用标准的算法。因而,需要对音频编码进行标准化。

G.726有四种码率:40 kbps、32kbps、24kbps和16kbps ADPCM (Adaptive Differential Pulse Code Modulation),最为常用的是32kbps。

1.2 国内外研究现状

经过多年的努力,业界在语音编码领域取得了很多重要的进展。目前在语音编码领域的研究焦点,一方面是在保证语音质量的前提下,降低比特率。在采用的技术方面从基于线性预测,使用合成一分析法向采用参数编码技术方向转变。主要的应用目标是蜂窝电话和应答机。另一方面是对传统的语音编码器进行全频带扩展,使其适应音频的应用。例如,AMR从NB发展到WB,再到最新的WB+,现正在进行全频带的扩展工作;

G.729已发展到G.729.1,目前也在启动全频带的扩展工作;G.722.1也已发展到G.722.1 Annex E,已经完成了全频带的扩展工作。

除此之外,为适应在Internet上传送语音的需要,ITU-T SG 16(国际电信联盟标准化部)组已经研究和制定可变速率的语音编码标准。变速率的语音编码将是近期语音编码发展的一个趋势。同时近年来,随着移动通信的发展,尤其是第四代移动通信的发展,对语音压缩编码算法提出了更高的要求,不但要求编码速率较低以增加系统容量,而且要求合成语音音质较高以保证通话质量。用传统的压缩编码方式,很难同时满足这两个要求,在这种形势下,提出了变速率语音压缩编码的方法。在移动通信系统中采用变速率语音压缩编码,可以根据需要动态地调整编码速率,在合成语音质量和系统容量中取得灵活的折衷,最大限度地发挥系统的效能。

在当前应用广泛、前景广阔的码分多址(Code Division Multiple Access)移动通信系统中,采用的变速率语音编码算法对于系统的容量和通话质量有非常重要的影响。由于移动通信市场竞争异常激烈,对变速率语音编码的研究已经成为一个热点,近几年来变速率语音编码技术发展得十分迅速,并不断有新的国家和国际标准公布出来。随着技术的成熟,它的应用领域也越来越广阔,不仅限于移动通信系统,在IP电话、互联网等方面也有很好的应用前景。

1.3 课题研究方法

1.3.1 PCM的基本原理

波形编码是人们应用最早、人们最熟悉的语音编码技术。因此,波形编码是一种经典的语音编码技术。波形编码通常包括时域波形编码、频域波形编码以及变换域波形编码三种类型。

以PCM为代表的时域波形编码是出现的最早和应用最广泛的一种语音编码技术,

对于数字通信的发展和普及曾经起过极为重要的作用,也是现代语音编码的技术发展的起点和基础。

在很长的一段时间里,例如从二十世纪五十年代末至八十年代初的几十年间,PCM 一直在语音编码中占据统治地位,对于通信的数字化起过极为重要的推动作用。近年来语音编码技术取得一系列突破性进展,出现了许多崭新的编码算法和技术,已经动摇了PCM的这种统治地位,但是在通信和信息系统中,PCM的应用依然相当普遍。

PCM的基本原理课描述为:在编码端,输入模拟信号经过取样、量化和编码,实现模数转换,变换成为数字信号;到了译码端,再将接收到的数字信号通过译码、低通平滑滤波实现数模转换,恢复为模拟信号。

输入的语音信号是随时间连续变化的模拟信号,要将它转换为数字信号,就必须首先通过取样,将它变换为时间上不连续的信号,取样的目的就是为了使模拟信号在时间上离散化。

模拟信号经过取样后,虽然在时间上已离散化了,但是取样制信号的脉冲幅度值仍然是取决于输入的模拟信号,这种PAM信号仍然是属于模拟信号。所以依旧需要对PAM 信号进行变换,使其在幅度上取值离散化。量化的目的,是为了使取样值在幅度取值上离散化,使之变为取值状态有限的离散信号。

语音信号通过量化已经变换为在时间上、幅度取值上都已经离散化的数字信号,模拟信号数字化的过程基本已经完成。

量化样值信号虽然已经是数字信号,但是它是一种多进制信号,一般来说,它并不适合在数字通信线路中传输,所以还必须将它转换为二进制信号。编码的目的就是为了将这种多进制信号转换为二进制信号。

编码器输出的二进制数字信号,经过数字通信信道传输到接收端,还必须恢复为模拟信号,才能送给用户。译码的目的就是为了将接收到的数字信号还原为发送端发送的量化样值脉冲序列。这个量化样值脉冲序列再经过低通滤波平滑滤波,取出该脉冲序列的包络,就得到了非常接近于发送端原始输入语音信号的模拟信号。

1.3.2 DPCM的基本原理

语音信号之间有很强的相关性。分析表明,当取样频率为8kHz时,相邻样值之间的相关系数通常在0.85以上。在波形编码中,利用这种相关性,可以降低编码熟虑,一个非常明显的事实是,相邻样值之间的差值远小于取样值本身。据此,可以设计一种新的波形编码方法,对相邻样值之间的差值进行编码,而不是对取样值本身进行编码,这

样就能降低编码速率,这种编码方法称为差分脉冲调制(Differential Pulse Code Modulation)。

实现DPCM的最简单的方法,是存储前一次的取样值,然后用本次取样值去相减,产生差值,再对差值进行量化编码。在译码端前则进行相反的变换恢复出原信号。

由于量化器产生的量化噪声积累起来并且叠加到下一次的输出中。如果量化器噪声始终是同一方向,那么输出信号就会愈来愈偏离正常信号。为避免这一问题,编码器应当用前一次译码器的取样值代替前一次的取样值,用来生成差分信号:即,若一个取样点的量化噪声信号为正,重构的取样值必须大于取样点,在下一时刻,由于用重构的取样值计算查分,使得差分信号变小,从而抵消上一次量化噪声的影响。这种方法消除了量化噪声的积累。

而上所讨论的是一种简单的DPCM形式,即它仅仅利用了两个相邻样值之间的相关性。实际上,当前的取样值不仅与上一时刻的取样值相关,而且与前面若干个取样值都想关。只有充分利用这些相关性,才能更好的压缩编码速率。这可以通过用过去的一些取样值的线性组合来预测和推断当前的取样值,得到一组线性预测系数以及预测误差信号。预测的阶数越高,预测误差就越小,相应的编码速率就可以降低。

DPCM由于是对预测误差信号进行编码,而预测误差信号的能量比输入信号的能量小得多,因此量化限幅电平也可以小得多。这样,在量化电平数不变的条件下,量化器的量化间隔就比输入信号的量化间隔小得多,使得量化噪声减小。而在保持信噪比不变的情况下,DPCM就可以通过减少量化比特数,降低编码速率。

1.3.3 ADPCM的基本原理

DCPM的编码速率能够降低到何种程度,主要取决于其预测精度,也就是取决于其预测误差的大小。根据前面所述的DCPM的基本原理可知,由于DPCM采用的是固定预测系数的预测器,当输入语音信号起伏变化时,无法保证与测试中处于最佳预测状态,使得误差为最小。解决这一问题的比较好的方法,一是采用自适应技术动态的调整预测系数,以便保证预测器始终处于最佳预测状态;二是采用自适应量化技术对差分信号(即预测误差信号)进行量化,以便进一步降低编码速率。这种采用自适应量化以及高阶自适应预测技术的DPCM称为自适应差分脉冲调制,即ADPCM。

自适应线性预测以帧为单位进行,根据本帧语音波形的时间相关性确定预测系数,使得预测误差信号的方差为最小。

据上可知,自适应差值脉冲调制(ADPCM)中的量化器与预测器均采用自适应方

式,即量化器与预测器的参数能根据输入信号的统计特性以自适应于最佳参数状态。通常,人们把低于64kbps数码率的语音编码方法称为语音压缩编码技术,语音压缩编码方法很多,自适应差值脉冲调制(ADPCM)是语音压缩编码中复杂程度较低的一种方法。它能在32kbps数码率上达到符合64kbps数码率的语音质量要求,也就是符合长途电话的质量要求。

ADPCM编码首先将输入的A率或 率PCM 信号转换成14位线性PCM码,然后与预测信号相减产生差分信号,再对差分信号进行自适应量化,产生2~5比特ADPCM 码;一方面将产生的ADPCM 码送至解码器,另一方面利用ADPCM 码进行本地解码以获得量化后的差分信号,编码器将量化之后的差分信号与预测信号相加得到本地重建信号。在G.726编码器中使用的自适应预测器为二阶极点、六阶零点混合模型(Auto Regressive Moving Average模型),利用本地重建信号和量化之后的差分信号产生预测信号。为了使量化器能适应语音带内数据及信令等具有不同统计特性以及不同幅度的输入信号,自适应量化器要依输入信号的特性自动改变自适应速度参数以控制量化阶。这一功能由量化器定标因子自适应、自适应速度控制、单音及转移(过渡)音检测等三个功能单元完成。

据上知G.726有四种码率:40 kbps、32kbps、24kbps和16kbps Adaptive Differential Pulse Code Modulation (ADPCM),最为常用的方式是32 kbps(G.721标准中倡导),但由于其只是G.711速率的一半,所以可将网络的可利用空间增加了一倍。G.726具体规定了一个64 kbps A律或μ律PCM 信号是如何被转化为40 kbps、32kbps、24kbps和16 kbps的ADPCM 通道的。在这些通道中,16 kbps 的通道被用于数字电路倍增设备(DCME)中的语音传输,而40 kbps 通道则被用于DCME 中的数据解调信号(尤其是4800 kbps 或更高的调制解调器)。

G.726 encoder 输入一般都是G.711 encoder的输出:64kbps A律或者u律.其算法实质就是一个ADPCM,自适应量化算法。

1.4 本文的仿真软件Matlab

MATLAB 是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。

MATLAB是矩阵实验室(Matrix Laboratory)的简称,和Mathematica、Maple 并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB

可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。

MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完相同的事情简捷得多,并且mathwork也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C++,JA V A的支持。可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用。

1.5 G.726标准简介

1984年国际电报电话咨询委员会(Consultative Committee for International Telegraph and Telephone)公布了G.721建议,这一建议规定了关于高音质的32 kbps ADPCM 语音编解码的国际标准。这种算法十分接近G.711 A律或u律64 kbpsPCM的语音质量,其抗误码性能优于PCM,带内数据传输率能达到4800 bps,其音频带宽为200~3400 Hz,采样频率为8 kHz,每一样点用4 bit编码。

国际电报电话咨询委员会公布了G.721建议的高质量的32 kbps ADPCM之后,1990年在G..726 标准中扩充编码速率到16kbps,形成了从16 kbps到40 kbps的一套完整速率ADPCM 算法。

G.726标准扩充后的编码算法同语音插空技术相结合,采用变速率ADOCM可以使得原有PCM信道扩容到8~10倍,这成为数字化路倍增设备(Digital Circuit Multiplication Equipment)。这种设备使用与点到点之间的固定线路扩容,例如卫星或者海缆的数字化路倍增设备系统(Digital Circuit Multiplication Equipment System)。而后CCITT通过的G.727标准是在G.726标准的基础之上,采用语音包装传输系统——它不仅具有DCME 系统的扩容能力,并且适合交换,便于成网,于此就不再细述(具体内容可参考有关书籍)。

G .726标准利用语音信号的相关性和非平稳性,使用自适应预测和适应量化技术,能够在低比特率上达到网络等级的话音质量,从而在语音存储和语音传输领域得到广泛应用。

G..726语音编码器首先将输入的8位PCM码转换成14位线性码,然后同预测信号相减产生差分信号,再对差分信号进行自适应量化,产生2到5比特ADPCM码;一方面

要把ADPCM码送至解码器,另一方面利用ADPCM码进行本地解码得到量化后的差分信号,将量化之后的差分信号与预测信号相加得到本地重建信号。自适应预测器采用二阶极点、六阶零点混合模型(Auto Regressive Moving Average模型),利用本地重建信号和量化之后的差分信号产生预测信号。为了使量化器能适应语音带内数据及信令等具有不同统计特性以及不同幅度的输入信号,自适应量化器要依输入信号的特性自动改变自适应速度参数来控制量阶。这一功能由量化器定标因子自适应、自适应速度控制、单音及转移(过渡)音检测等三个功能单元完成。

1.6 内容安排

本文第二章主要为ADPCM编码器的原理的总体论述;第三章论述ADPCM编码器中自适应量化模块的算法实现——共包括输入PCM格式转换模块、差分信号计算模块、量化定标因子自适应模块、自适应速度控制模块、单音信号和转移(瞬变)检测模块以及自适应量化模块六个子模块;第四章主要论述自适应预测模块的算法实现——含反向自适应量化模块以及自适应预测模块和重建信号模块;第五章为ADPCM编码器实现的程序流程以及分析;后续章节为结束语、参考文献以及附录程序等。

2 ADPCM 编码器的原理

2.1 G .726编码器算法总体概述

G.726编码器算法主要包括有8个主功能模块:输入PCM 格式转换,差分信号计算,自适应量化,反向自适应量化,自适应预测和重建信号计算器,单音信号和转移检测,自适应速度控制,量化器定标因子自适应。由于ADPCM 编码器主要用来对现有PCM 信道进行扩容,因此输入采用标准A 律或μ律PCM 编码。首先将输入8位PCM 码()k s 转换成14位线性码()k s l ,然后同预测信号()k s e 相减产生差分信号()k d ,自适应量化器以量化定标因子自适应产生的定标因子()k y 来定标,对()k d 进行量化产生5、4、3、2比特的ADPCM 编码()k I 。一方面()k I 作为编码输出,另一方面反向自适应量化器利用()k I 得到量化后的差分信号()k d q ,再同重建信号计算器产生的重建信号()k s r 一起,送到自适应预测器,产生预测信号()k s e ,自适应预测器采用二阶极点、六阶零点的混合预测器,它利用()k s r ,()k d q 以及前几个时刻的值,对下一时刻将要输入的信号()1+k s l 进行预测,计算出预测值()1+k s e 。为了使量化器自适应语音带内数据及信令等具有不同统计特性以及不同幅度的输入信号,自适应还要依输入信号的特性自动改变自适应速度参数来控制量阶。这些功能由量化器标度因子自适应、自适应速度控制、单音信号和转移(瞬变)检测器等三个功能模块来完成。

2.2 自适应预测语音波形编码器的设计

G .726协议是原国际电报电话咨询委员会于1990年提出的关于把64kbps 非线性PCM 信号转换为40kbps 、32kbps 、24kbps 和16kbps 的ADPCM 信号的标准,其中的自适应包含自适应预测和自适应量化。G .726建议的编码器组成框图如图2.1所示。

图2.1 G.726 ADPCM 语音编码器组成框图

ADPCM 编码器的压缩原理是:由于差分信号消除了相邻采样信号的相关性,得到了高阶熵,因此在保证一定信噪比的情况下,可以减小量化器的字长。当采样速率为8kHz 情况时,如果量化器为5位,则得到的编码速率是40kbps ;如果量化器为4位,则得到是32kbps ;如果量化器为3位,则得到24kbps ;如果量化器为2位,则得到16kbps 。与输入的64kbps 的非线性PCM 信号(A 律或μ律)相比,比特率减小了,即压缩了比特率。

同一量化电平用不同字长的量化器进行量化,量化字长短的产生量化误差大,由该码字恢复的语音信号音质差。

ADPCM 编码器的基本工作原理是:输入的A 律或μ律非线性PCM 信号经格式转换后,变成线性PCM 信号,然后把线性PCM 信号与预测信号相减得到二者的差分信号,最后对该差分信号进行量化编码得到ADPCM 码流,其速率由量化器字长决定。图2-1的逆自适应量化器作用是根据输出的I(k)得到差分信号,自适应预测器再根据差分信号和重建信号()k s r 得到预测信号()k S e 。单音和转移(瞬变)检测、自适应速度控制和量化器定标因子自适应这3个单元的作用是使自适应量化器、逆自适应量化器能根据不用的输入信号对自适应速度进行调整,以得到更好的编码质量。下面分别对ADPCM 编码器各组成部分进行具体介绍。

ADPCM 输出

y t (k)

t d (k)

t r (k) a 1(k)

y(k) S e (k) a 2(k)

Sr(k)

d q (k)

I(k)

d(k)

S l (k)

S(k)

转换成均

匀码

差分信号

自适应量

化器

逆自适应

量化器

自适应预

测器

重建信号

计算器

单音和转移检测

自适应速度控制

定标因子自适应量化器

3 ADPCM 编码器自适应量化模块的原理

3.3 输入PCM 格式转换

作用是把输入的A 律或μ律非线性PCM 信号()k s l 。作用是把输入的A 律或μ律非线性PCM 信号()k s 转化为线性PCM 信号()k s l 。ADPCM 编码器的输入和解码器的输出信号都是标准的A 律或μ律64 kbps 采样频率为8kHz ,量化字长是8 bit 的PCM 信号。由于标准64kbps PCM 是经过对数压缩后的数字信号,不能直接进行一般的算术运算,所以,在进入ADPCM 编码前,必须把A 律或μ律PCM 码变换成自然二进制码(便于进行简单运算),即线性PCM 码。其中A 律对数压缩特性为:

表3.1 8位PCM 码排列

M1 M2 M3 M4

M5 M6 M7 M8

极性码

段落码

电平码

表3.2 A 律PCM 与线性PCM 的变换关系 线性PCM

A 律对数PCM b12 b11 b10 b 9

b 8

b 7

b 6

b 5

b 4

b 3

b 2

b 1

b 0 M 1 M 2 M 3 M 4 M 5 M 6 M 7 M 8 0 O O O O O O W X Y Z 1 0 0 0 W X Y Z 0 O O O O O 1 W X Y Z

1

0 0 1 W X Y Z 0 O O O O 1 W X Y Z × ×

0 1 0 W X Y Z 0 O O O 1 W X Y Z × × ×

0 1 1 W X Y Z 0 O O

1 W X Y Z × × × ×

1 0 0 W X Y Z 0 O 1 W X Y Z × × × × × 1 0 1 W X Y Z 0 1

W X Y Z × × × × × ×

1 1 0 W X Y Z

1

W X Y Z × × × × × × ×

1

1

1

W

X

Y

Z

表3.3 μ律PCM 与线性PCM 的变换关系

()?????≤≤+≤≤+=1

1

ln 110ln 1x A Ax

Ax A x A Ax

x f (3.1) 式中常数A 为压缩系数,由上式可知,在A

x 1

0≤

≤范围内,()x f 是一段直线,也就是说相当于均匀量化特性:11

≤≤x A

的范围内,是一条对数特性曲线,A 在国际电报电

话咨询委员会建议中取87.56。

μ律对数压缩特性为: ()()()

10,1ln 1ln ≤≤++=

x x x f μμ (3.2) 其中,μ为压缩系数,μ在国际电报电话咨询委员会建议中取255。8位A 律或μ律

线性PCM

μ律对数PCM

b 1 3 b 1 2 b 1 1 b

1

0 b 9 b

8 b

7 b

6 b

5 b

4 b

3 b

2 b

1 b

M

2 M

2 M

3 M

4 M

5 M

6 M

7 M

8 0 0 0 0 0 0 0 1 W X Y Z 1

0 0 0 W X Y Z 0 0 0 0 0 0 1 W X Y Z 1 × 0 0 1 W X Y Z 0 0 0 0 0 1 W X Y Z 1 × × 0 1 0 W X Y Z 0 0 0 0 1 W X Y Z 1 × × × 0 1 1 W X Y Z 0 0 0 1 W X Y Z 1 × × × × 1 0 0 W X Y Z 0 0 1 W X Y Z 1 × × × × × 1 0 1 W X Y Z 0 1 W X Y Z 1 × × × × × × 1 1 0 W X Y Z

1 W X Y Z 1 × × × × × × ×

1 1 1 W X Y Z

PCM 的具体排列如表3.2以及表3.3所示。

A 律PCM 和μ律PCM 与线性PCM 的变换关系分别如表3.2和表3.3所示。在这两个表中,略去了符号位,WXYZ 分别代表相应的M5 M6 M7 M8,×表示为任意值。

3.4 差分信号计算

这部分的作用是通过线性PCM 信号()k s l 和估计信号()k S e 计算差分信号()k d 。其公式如下:

d(k) =Sl(k) – Se(k) (3.3) 由于语音信号具有很大的冗余度,如果在量化和编码之前去掉这些多余的信息量,在量化电平数一定的情况下,量化器的量化阶距要小,因而产生的量化误差也有所减小。这意味着,在保证一定信噪比的条件下,允许减小量化器的字长,即压缩了比特率。

3.5 自适应量化器

自适应量化器是指量阶可以根据输入信号的短时方差进行调整以使其大小能和输入信号电平相匹配的量化器。实现自适应量化时,首先需要解决对输入信号的方差进行估值。根据估值采用的方法,自适应量化可以分为两类,即前向自适应量化(Forward Adaptive Quantiser )和后向自适应量化(Backward Adaptive Quantiser )。如严格根据输入信号方差来确定量化电平和分层电平则称之为前向自适应量化;如根据前一时刻输出数字码()k I 或量化器输出的量化电平来确定当前时刻的量化电平和分层电平,则称之为后向自适应量化。前向自适应量化估值方法不受量化噪声的影响,因而估计值可靠。但它意味着量阶的信息需要用额外的比特传送到解码器,称为边信息。

典型值每个量阶需要用5到8bit 编码,因此估值的频率不能太高,否则总码率增加太多。

前向自适应量化方法的另一个问题是引入较长的编码延时,因此常用于分帧编码处理。它的问题是估值精度受到量化噪声的影响,因此后向自适应量化方法一般用于质量较高的短延时语音编码中。

本编码器中的自适应量化器采用后向自适应量化方法,作用是把差分信号()k d 分别量化成16kbps 的ADPCM 码。由于差分信号()k d 接近于高斯分布,所以采用输入为高斯分布的最佳非均匀量化器。为便于进行自适应运算,采用引入定标因子()k y (由量化器自适应定标因子单元产生)的方法。为避免进行除法运算,将差分信号的归一化运算在对数域上进行,即:

()()()()k y k d k d -=2ln log (3.4)

下面分别对量化结果为40kbps 、32kbps 、24kbps 和16kbps 的情况给以说明G .726建议规定对于ADPCM 情况:

1.用5位二进制数来表示量化电平()k d ln ,则其中4位表示幅度,1位表示符号(2的补码形式)。这5位量化器输出()k I ,形成40kbit/s 输出信号。同时,()k I 也反馈到逆自适应量化器。

2.用4位二进制数来表示量化电平()k d ln ,则其中3位表示幅度,1位表示符号(2的补码形式)。这4位量化器输出()k I ,形成32kbit/s 输出信号。同时,()k I 也反馈到逆自适应量化器。

3.用3位二进制数来表示量化电平()k d ln ,则其中2位表示幅度,1位表示符号(2的补码形式)。这3位量化器输出()k I ,形成24kbit/s 输出信号。同时()k I 也反馈到逆自适应量化器。

4.用2位二进制数来表示量化电平()k d ln ,则其中1位表示幅度,1位表示符号(2的补码形式)。这2位量化器输出()k I ,形成16kbps 输出信号。同时,()k I 也反馈到逆自适应量。

3.6 量化器定标因子自适应

作用是计算量化器和逆量化器的定标因子()k y 。由于数据调制解调器(MODEM )和音频信令信号的功率电平变动范围远小于语音信号功率电平的变动范围,为了使量化器对两种信号都能获得最佳自适应特性,必须采用两种不同定标因子()k y 的自适应算法,即使用双模自适应量化器。自适应算法中,量化器的定标原则是:

1.对短时能量变化较快的语音信号,使用快速自适应;

2.对短时能量变化较慢的数据调制解调或音频信令信号,使用慢速自适应。

对短时能量变化较快的语音信号,量化器的自适应速度需变快,算法是: ()()

()()[]k I W k y k y u 55221--+-= (3.6) 式中,()k y u 称为快速非锁定定标因子,取值范围是:1.06≤()k y u ≤10.00。在式(3.6)中离散函数()k I 是量化间隔调整因子在对数域上的表现形式,取决于量化器输出码字

()k I ,即量化电平等级。根据大量实验,得到40kbps 和16kbps 的ADPCM 信号()k WI 不

同的值。如表3.4~表3.7所示。对短时能量变化较慢的信号,量化器的自适应速度需要变慢,采用的算法是:

()()

()()k y k y k y u l l 662121--+--= (3.7)

式中()k y l 称为锁定定标因子,由对()k y u 再次平滑而得。由()k y u 和()k y l 结合起来形成合成的量化器定标因子()k y ,共同控制自适应速度。

()()()()()111--+-=k y k a k y a k y u l u l (3.8) 式中()k a l 是自适应速度控制参数,其取值范围规定为0≤()k a l ≤1。对于语音信号,

()k a l →1,这样()k y →()1-k y u ,这时为快速自适应;对于MODEM 信号,()k a l →0,这样()k y →()1-k y l ,为慢速自适应。

表3.4 对于40kbit/sADPCM, ()n I W 的定义

()k I 15 14 13 12 11 10 9 8 ()k I W

43.50 33.06 27.50 22.38 17.50 13.69 11.19 8.81 ()k I 7 6 5 4 3 2 1 0 ()k I W

6.25

3.63

2.56

2.50 2.44

1.50

0.88

0.88

表3.5 对于32kbit/sADPCM, ()n I W 的定义

()k I 7 6 5 4 3 2 1 0 ()k I W

70.13

22.19

12.38

7.00

4.00

2.56

1.13

-0.75

表3.6 对于24kbit/sADPCM, ()n I W 的定义

()k I ()n I

3 2 1 0 ()k I W

36.38

8.56

1.88

-0.75

表3.7 对于16kbit/sADPCM, ()n I W 的定义

()k I 1 0 ()k I W

27.44

-1.38

3.7自适应速度控制

作用是计算自适应速度控制参数()k a l 。对于语音信号,()k a l 趋向于1对于MODEM 信号,()k a l 趋向于0。()k a l 是通过比较差分信号的短时平均值()k d ms 和长时平均值

()k d ml 的差异来确定的。()k d ms 和()k d ml 的计算公式如下:

()()

()()k I F k d k d m s m s 552121--+--= (3.9)

()()

()()k I F k d k d m l m l 772121--+--= (3.10) 对于40 kbps 、32kbps 、24kbps 和16 kbps ADPCM 信号,G .726建议给出了()k I F 的不同定义,如表3.8~表3.11所示。

表3.8 对于40kbit/sADPCM, ()k I F 的定义

()k I

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 ()k I F 6

6

5

4

3

2

1

1

1

1

1

表3.9 对于32kbit/sADPCM, ()k I F 的定义

()k I

7 6 5 4 3 2 1 0 ()k I F 7

3

1

1

1

表3.10 对于24kbit/sADPCM, ()k I F 的定义

()k I 3 2 1 0 ()k I F

7

2 1

表3.11 对于16kbit/sADPCM, ()k I F 的定义

()k I 1 0 ()k I F

7

根据()k d ms 和()k d ml ,定义变量()k a p :

()()()()()()

()()()()

()()()()

()????

?

????--==+--=+--≥-+--=--------其他当当当当121111

212112

121221214

343

4334n a k tr k t n a k y n a k d k d k d n a k a p d p p ml ml ms p p (3.11) 其中()k t d 和()k tr 是单音和瞬变音检测单元输出。当()k d ml 和()k d ms 相差较大时,

()k a p →2;当()k d ml 和()k d ms 相差较小时,()k a p →0。上式中()k y <表示输入信号很小,处于无音段或清音段,这种情况也会()k a p →2,以便使量化器处于快速自适应状态,能

够跟得上输入信号突如其来变化。量化器的自适应速度控制参数()k al 是由()k a p 限幅得到的,即:

()()()()??

?

<--≥-=1111

11k a k a k a k a p p p l 当当 (3.12)

这样,量化器从快速自适应状态向慢速自适应转变有延迟效应,这种延迟可以防止自适应速度过早变慢,从而避免脉冲沿畸变太大。

4 ADPCM 编码器自适应预测模块的原理

4.1 逆自适应量化器

作用是根据定标因子()k y ,把()k I 进行逆量化,并把结果从对数域转换到非对数域,得到差分信号()k d q

相关主题
文本预览
相关文档 最新文档