1、1G.723.1前言:所谓ITU-T,就是电信标准部门,它是国际电联的一个永久性的机构。ITU-T本着在全球基础上规范电信的原则,负责学习关于电信的技术,操作,以及回答问题,发行协议。国际电信标准委员会(WTSC),每四年开一次会,达成学习的一些课题,而 ITU-T则关于这些课题提出建议。ITU-T 成员对建议的看法会在WTSC所编写的程序中有所反映。ITU-T的G.723.1协议是 ITU-T15研究小组开发的,并且编写进1996.4.19 WTSC一号解决方案的程序中。摘要:这个协议详细说明了一个编码再现过程,即以低速率压缩多媒体服务中的语音信号或者其它音频信号,整个协议作为H.324标准
2、系列的一部分。这个编码器有两种适合它的比特速率,即5.3和6.3kbit/s。6.3kbit/s的比特速率质量更好,而5.3kbit/s的比特速率在给出好质量的同时,也使系统设计师有更大的灵活性。两个速率都是编码和解码不可缺少的部分。在任何帧之间可以实现两种比特速率之间的转换,同样,可以选择以不同速率进行断点传输,在没有语音信号传送的时候,填入噪声。这个编码器简单的实现了在以上两种速率下最优地再现高质量语音。它以帧为单位,用线性预测分析编码器来编码语音及其它音频信号。高速率编码器的激励信号是用多激励最大可能量化器(MP-MLQ)来量化,而低速率编码器的激励信号则是用码本激励线性预测(ACELP
3、)来量化。每帧的长度是30ms,,另外有额外的7.5ms的帧头开销,所以总的算法时延是37.5ms.这个编码器中所有额外的延时都是因为在通信链路中执行以及传输时延的处理,以及多路技术协议的缓冲时延。这个协议的介绍是针对精确比特,定点的数学操作的。ANSI C(美国国家标准学会) 认为,第五条款包含了这个协议的一个重要的部分,所以在数学描述之前应该先介绍以免发现有区别。一个详细的测试序列用于C码节点在ITU是可行的。多媒体通信的双速率(5.3和6.3kbit/s)语音编码Recommendation G.723.1 (03/96) (Geneva, 1996)21 介绍1.1 领域这个协议说明了
4、一个以低速率压缩多媒体服务中的语音或者其它音频信号的编码过程。至于设计这个编码器,首先考虑的应用是作为整个H.324 标准系列的一部分的低速率可视电话。1.2 比特速率这个编码器自身有两种比特速率,即5.3和6.3kbit/s。6.3kbit/s的比特速率质量更好,而5.3kbit/s的比特速率在给出好质量的同时,也使系统设计师有更大的灵活性。两个速率都是编码和解码不可缺少的部分。两个速率都是编码和解码不可缺少的部分。在任何帧之间可以实现良种比特速率之间的转换,同样,可以选择以不同速率进行断点传输,在没有语音信号传送的时候,填入噪声。1.3 可能的输入信号这个编码器简单的实现了在以上两种速率下
5、最优地重现高质量语音。音乐和其它音频信号并不像语音信号那样如实地描绘,但是也可以用这个编码器来压缩和解压缩。1.4 时延这个编码器以30ms每帧来编码语音信号或者其它音频信号。另外有额外的7.5ms的帧头开销,所以总的算法时延是37.5ms. 这个编码器实现和操作中所有额外的延时是因为:i) 在编码和解码过程中处理数据所花费的实际时间;ii) 通信链路中传输时延;iii) 多路技术协议的额外缓冲时延。1.5 语音编码描述这个协议的语音编码算法的描述是针对精确比特的数学操作的。ANSI C(美国国家标准学会) 认为,第五条款包含了这个协议的一个重要的部分,反映了精确比特定点描述的路径。编解码的数
6、学描述,分别在第二和第三章给出,它能在几个其他的模型中实现,有可能导致一个编码的执行,而不是简单的复制这个协议。因此,第五章中C编码器的算法描述应该优先于第二章和第三章的数学描述。C编码其中用于节点的一个并不详尽的测试序列可以在ITU中找到。32 编码原理2.1 基本描述这个编码器设计来操作来自模拟信号经过第一电话带宽滤波器后的数字信号,然后对这个数字信号以8000HZ频率采样,再转换成16bit线性PCM,作为编码器的输入。解码器的输出应该以同样的方式转换为模拟信号。其它的输入输出特性,如G.711 协议中的64kbit/S 的PCM数据,在编码前应该转换成16bit 线性PCM ,或者在编
7、码后从16bit线性PCM转换成适合格式的数据。从编码器到解码器的比特流在这个协议中有所定义 。这个编码器是基于线性预测分析编码原理,并且使感知加权误差最小。编码器以240样点为一帧,即8KHZ采样频率下30ms一帧。每帧信号首先经过高通滤波器除去直流成分,然后分成四个子帧,每个子帧60个采样点。对于每个子帧,第十阶线性预测滤波器(LPC )对未经处理的输入进行计算。对于最后的子帧,LPC滤波器用预测分裂矢量量化器(PSVQ)进行量化,而未经量化的LPC系数用来构筑短期视觉加权滤波器,这个滤波器用来过滤整个帧,从而得到视觉加权语音信号。对于任何两个子帧(120采样点),用加权信号可以计算得到开
8、环基音周期(LOL).这个基音预测是以120采样点为单位进行的。基音周期分布在18-142采样点之间。从这个点来看,语音信号是在60采样点的子帧基础上进行处理的。用之前计算出来的预测基因周期来构造一个和谐噪音成型滤波器。LPC分析滤波器,共振峰加权滤波器,以及和谐噪音成型滤波器组合形成激励响应,此激励响应用于将来的计算。用预测基音周期,LOL,和激励响应,一个闭环基音预测器就形成了,我们用的是第五阶基音预测器。计算出来的基音周期和开环基音预测有微小的不同。基音预测器的输出然后减去原始目标向量。基音周期和微小不同的值都被传输给解码器。最后激励的非周期成分是大致相同的。对于高比特速率,用多激励最大
9、可能量化激励(MP-MLQ),而低比特速率,用码本激励(ACELP) .这个编码器的结构图如图1所示。42.2帧编码器通过缓冲连续语音信号采样点,yn,把语音转换成240采样点的帧sn。为了基因预测计算,每帧分成两部分,每部分120采样点。每部分再分成两部分,所以每帧最后被分成四个60采样点的子帧。2.3高通滤波器这个模块从输入信号sn中除去直流成分,滤波器的函数是:5(1)这个滤波器的输出是:xnn=0239.2.4 LPC分析LPC分析用第十阶线性预测分析对信号xn进行处理。对于每个子帧,一个180样点的汉明窗函数分布于子帧中央。用窗信号计算出十一个自相关系数,用公式R0 = R0(1 +
10、 1/1024)添加一个白噪声修正系数(1024/1025)。其它十个自相关系数和二项式窗系数相乘(这个表的数值和所有其它的都在C编码器中给出)。LPC用传统的德宾递归算法计算。对于每个输入帧,四个LPC的系数对应于每个子帧。这些LPC系数用来构造短期加权滤波器。LPC的综合滤波器被定义为:其中i是子帧标引,在0-3之间。2.5 LSP量化器首先,需要一个额外的小带宽花费(7.5KHZ)。然后LP滤波器的输出A3(Z)用一个预测分裂矢量量化器来量化。量化过程如下:1)LP 系数ajj = 110,转换成 LSP系数pjj = 110,通过寻找单元环和为零交点修改新语句。2)长期直流分量,pDC
11、,从LSP 系数p,中减去得到,并且一个新的直流减去 LSP量化系数,从而得到p。3)第一阶固定预测器,b = (12/32), 适用于以前编码LSP矢量pn-1,直流分量减去预测LSP矢量,残余的LSP误差矢量,en,以单位n表示。pTn = p1, n p2, n.p10, n (3.1)pn = 1, n2, n . 10, n (3.2)4)未量化的LSP矢量pn, 量化后的LSP 矢量p n,残余误差矢量 en,分别是三维,三维,四维的三个子矢量。每个第m个子矢量是用8比特码本来量化的。使误差标准 El,m最小6的子矢量码本输入的数标用l表示。其中el,m是第m个分裂残余LSP码本的
12、第l个输入,Wn是一个对角加权矩阵,未经量化的LSP系数矢量p决定了矩阵, W被定义为:5)选择的指数传输到信道中去。2.6 LSP 解码器LSP解码的系数用以下的方法得到:1)首先,这三个子矢量,em,nm = 02,解码形成一个第十阶矢量, en.2)预测矢量 pn,加上解码矢量en,和直流矢量pDC,来形成解码LSP 矢量pn.3)稳定性的检测在解码LSP矢量pn中进行,以确保解码 LSP矢量是以以下的规则进行的。min 是31.25KHZ.如果稳定性检测不符合pi 和 pi + 1,那么pj and pj + 1则以以下方式修正:7只有第六种情况发生的时候才可以修正。如果在第十次反复后
13、情况还不稳定,那么就用以前的LSP矢量。2.7LSP内插线性内插在每个子帧的解码LSP矢量pn和之前的 LSP矢量pn 1之间起作用,。四个内插的LSP矢量, pii = 03,转换成LPC矢量aii = 03。量化的LPC综合滤波器 Ai(z),用来产生解码语音信号,被定义为2.8共振峰加权滤波器对于每个子帧用未量化的LPC系数aijj = 1,10构造一个共振峰加权滤波器,滤波器的传输函数是:8其中1 0.9, 2 0.5.输入语音帧 xnn 0239,被分成四个子帧,每个子帧用Wi(z)滤波器,得到加权输出信号f nn = 02392.9基音预测每帧计算两个基音预测,其中一个是为了前两个
14、子帧,另一个是为了后两个子帧。用加权语音信号f n计算开环基音周期预测LOL 。一个互相关标准COL( j) ,用最大化的方法来计算基音周期,有以下的公式:指数j使互相关COL ( j)最大,选择作为开环基音预测从而适合两个子帧。当寻找最佳的指数,小的基音周期给予优先来避免选择重复的基音。COL ( j)的最大值从j=18 开始寻找。对于找到的每个最大的COL ( j),它的值和之前的最大值COL ( j) 相比较,如果j和j之间的差值小于18并且COL ( j) COL ( j),那么,选择新的最大值。如果j 和j之间的差值大于或等于18,那么只有在COL ( j)比 COL ( j)大1.
15、25DB 时才选择新的最大值。2.10子帧处理从这个点开始,所有的计算模块都是在子帧的基础上进行的。2.11和谐噪声成形为了改善编码语音的质量,需要构造一个和谐噪声成形滤波器。这个滤波器函数是:Pi (z) = 1 - bz -L (13) 这个滤波器的最佳的延迟L是当只考虑确定相干系数值之后计算:9使CPW ( j)标准最大的延迟。其中L1 = LOL - 3且 L2 = LOL + 3。最大的值被定义为CL.最佳的滤波器所得值Gopt是:Gopt被限制在0-1之间。加权语音信号f nn = 059的能量E,定义为:然后和谐噪声成形滤波器P(z)的系数为:在计算完和谐噪声成形滤波器的系数后,
16、共振峰的加权语音f n,用P(z)滤波器,然后得到目标矢量wn :wn = f n - bf n - L , 0 n 59 (18)2.12 脉冲响应计算器用联合滤波器Si(z) 来进行闭环分析:Si(z) = Ai (z) Wi(z) Pi(z), 0 i 3 (19)其中Si(z) 的组成部分用公式 10,11,12来表示,这个滤波器的脉冲响应被计算出hinn = 059, i = 03。2.13 零输入响应和响铃减少联合滤波器Si(z) 的零输入响应,当输入全都是零值信号时通过计算滤波器的输出得到。零输入响应表示为znn = 059.响铃减少通过从和谐加权语音矢量 wnn = 059中减
17、去零输入响应得到。结果得到的矢量是tn = wn - zn。102.14 基音预测器基音预测输出作为传统的自适应码本输出。基音预测器是一个第五阶预测器(见公式41.2)。对于子帧0和2闭环基音延迟是在-1和+1之间,并且用7比特编码(开环基音延迟并不传输)。对于子帧1和3,闭环基音延迟以2比特编码,并且可能和之前的子帧延迟有多不同,它的取值只有-1, 0, +1 或者 +2.经量化和解码的基音延迟取值从这个点定义为Li。在高比特率段,用85 或者 170输入的两个码本来量化,在低比特率段,用170输入的两个码本来量化,从而得到基音预测值。对于两个速率来说,170输入码本是相同的。对于高比特率,
18、如果子帧0和1的L0小于 58或者子帧2和3的L2 小于58,那么就用85输入码本来量化基音值,否则,就用170输入码本。目标矢量tnn = 059减去基音预测的输出pnn = 059得到残差信号rnn = 059. rn = tn - pn (20)2.15高比特率激励(MP-MLQ)残差信号rnn = 059作为一个新的目标矢量传给MP-MLQ单元。这个单元执行这个矢量的量化。量化处理得到的rn和目标矢量rn相似。其中vn和激励响应 hn是作为联合滤波器 S(z)的激励,被定义为:其中G是确值因子,dn 是单位脉冲函数, akk = 0M - 1 和mkk = 0M 1分别是符号因子(1)
19、和单位脉冲函数的位置,M是脉冲的个数,对于偶数子帧,它是 6,奇数子帧,它是5。脉冲的位置有个约束,它或者全是偶数,或者全部是奇数。这可以用一个格比特来标示。所以,问题就变成了如何来估计未知的参量G, akk = 0M - 1, 和 mkk = 0M - 1,从而使均方误差errn最小。量化和参数估计过程基于综合分析方法。参数Gmax 用以下的方法进行估计和量化。首先脉冲响应hn 和新的目标矢量rn 的互相关系数 d j:这个估计的值是由以下公式给出:11然后估计的值Gmax 由一个对数量化器进行量化。梯状数值量化器对于两种比特率来说都是一样的,都包括24个阶梯,每个3.2dB。围绕着这个量化
20、值Gmax,在范围Gmax - 3.2,Gmax + 6.4内选择额外的数值。这些数值中的每一个对应的符号和脉冲的位置相应地得到优化。这个过程对于奇偶数帧都适用。最后选择产生最小均方误差的量化参数。最优化的脉冲位置和数值一起被系统传输。(30M)组合编码用来传输脉冲位置。另外,固定码本中码字数量并不是许多个2,3个额外比特,这样的事实通过联合四个子帧的组合码的四个最显著的比特被保留下来,从而形成一个13比特的索引。C码提供了这个信息是如何压缩的详细过程。为了用短基音周期来改善语音信号的质量,需要用以下额外的程序。如果子帧0和1的L0小于 58或者子帧2和3的L0小于58,那么用一个有着基音指数
21、L0或者L2 为周期的冲击函数系列来定位第m个位置,而不是用以上量化程序中的单个冲击函数。冲击函数系列和单个冲击函数之间选择其一来重现残余信号,这个选择是基于均方误差计算的。产生最小均方误差的数值被选出来,它的参数指数也经系统传输。2.16低比特率激励(ACELP)固定码本激励vn 用一个17比特的代数码本。每个固定的码矢量至多包含了四个非零脉冲。这四个脉冲如表1所示可以表示符号和位置信息。表一 ACELP激励码书所有脉冲的位置能够同时被转移以得到旧的位置,这个过程需要一个额外的比特。值得注意的是,最后两个脉冲任意一个的最后的位置不在子帧范围内,这个范围表示脉冲不存在。每个脉冲位置用3比特来编
22、码,每个脉冲符号用1比特编码。所以四个脉冲总共用16比特编码,此外,在17比特码本中还需要1比特的额外开销用来编码转移结果。在加权语音信号rn和加权综合语音之间通过使均方误差最小得到码本。均方误差由下式表示:12其中r是目标矢量,它包含减去了通过加权合成滤波器后的零输入响应后的加权语音信号和基音输出,G是码本数值,vx是以x为指数的代数码字, H是低阶三角函数回环矩阵,对角线元素h(0) , h(1),., h(L - 1), h(n)是加权综合滤波器Si(z)的脉冲响应。使下式最大的码字是最优的。其中d = HT r是目标矢量信号 rn和激励响应h(n)之间的相关系数,F = HT H是脉冲
23、响应的协方差矩阵。矢量d和矩阵F在搜索码本之前就开始计算,矢量d用下式计算:对称矩阵(i, j)用下式计算:注意:只有在(i, j)真正需要时才进行计算,需要设计一个有效的存储空间以使搜索速度变快。因为激励矢量vx只包含了4个非零脉冲,码本的这种代数结构使快速搜索成为可能。搜索是在嵌套环基础上进行的,相应于每个脉冲位置,在每个环中加上新的脉冲输出。式子27中的相关系数由下式给出:其中mk是第k个脉冲的位置,ak是它的符号(1)。在27式中的第偶数个脉冲位置码矢量的能量如下:对于奇数脉冲位置码矢量,在公式27给出的能量近似等于偶数位置脉冲码矢量的能量。这些偶数位置脉冲码矢量通过尽早把奇数位置脉冲
24、转移到一个样点中得到。为了简化搜索过程,改进了函数d j 和 F(m1, m2)。简化过程如下进行(在码本搜索之前)。首先,定义信号sj,然后构造信号d j。并且信号d是通过d j = d js j给出的。第二,矩阵 F通过包含信号信息而得到修正,也就是说,F(i, j) = sis jF(i, j)。式子30的相关系数现在给出如下:C= d + d + d + d (33)0am12am313式子31的能量为:e = F(m 0, m 0)+ F(m1, m1) + 2F(m 0, m1)+ F(m2, m2) + 2F(m 0, m2) + F(m1, m2)+ F(m3, m3) + 2
25、F(m 0, m3) + F(m1, m3) + F(m2, m3) (34)再用一个可行的搜索方法来简化搜索过程。在这个方法中,一个预先计算好的初值在到达最后的循环之前已经经过测试,只有超过这个预先的值才达到最后的循环。循环的最大次数是固定的,所以只要搜索小部分的码本就可以了。初始值是根据相关系数C 来计算的,在码本搜索之前就应该寻找基于最先三个脉冲的最大相关max3和平均相关av3。初始值设置为:thr3 = av3 + (max3 - av3) / 2 (35)只有基于前三个脉冲的完全相关系数超过初始值时,才进入第四个循环。为了进一步控制搜索,到达最后一次循环时的次数(对于四个子帧而言)
26、不允许超过600。(每个子帧的平均最坏情况是150次。这也可以认为只是搜索了150个8输入的码本,而忽视了头三个循环的开端。)码本的一个特征是,对于少于60的基音延迟,基音输出取决于LTP 基音预测输出矢量的指数PGIndi,这个基音输出加到码字中。这就是说,在决定了最优代数码字 vn之后,通过修正vn vn b(PGIndi)vn Li e(PGIndi), 值b(PGIndi)和e(PGIndi)制成表格,Li 是整数基音周期。值得注意的是,在码本搜索之前,如果Li小于60的话,激励响应该以同样的方式进行修正。在得到vn序列后,最后一步是量化输出G 。就像在高速率激励一样,输出以同样的方式
27、量化。这个步骤通过搜索量化表和选择指数MGIndi来实现,其中指数MGIndi使下式最小:2.17 激励解码脉冲解码如下进行:1)首先指数最大值Gmax以下式得到:MGIndi = GIndi - PGIndi GSize (36)其中GSize = 24是G表格的大小, PGIndi在2.18可以得到。2)脉冲位置用(30M)组合解码,其中高频段的M是6或者5,对于低频段,进行位置指数的直接解码。3)脉冲位置(奇/偶)从格比特中得到。4)脉冲符号从符号比特中得到。5)对高速率比特编码器,只有在Li 58时才进行脉冲比特的解码。6)然后用解码参量来重新构造矢量vn。7)最后,基音输出un 和脉
28、冲输出vn 加起来形成激励矢量en。2.18基音信息的解码基音信息的解码如下述来进行:1) 首先,偶数子帧基音预测器的延迟用下式来解码:Li = PIndi + 18, i = 0,2 (37)142) 奇数子帧的基音预测器的延迟如下解码:Li = Li - 1 + Di, i = 1,3 (38)其中Di -1,0,+1,+2.3) 在第i个子帧基音预测器的输出矢量从输出指数 GIndi得到。对于低比特速率这个指数包含了基音预测矢量和脉冲序列输出指数的信息。在这个情况下,基音输出指数PGIndi由下式得到;PGIndi = GIndi / GSize , i 03 (39)其中x 表明小于x
29、最大的整数 对于高比特速率在 L58时,这个指数和式子39以同样的方式得到。在以上的情况下,对于170样点码本来说,PGIndi 是一个点。否则,这个指数是85样点码本的一个点并且包含一个额外的激励比特的信息。在这个情况下,基音输出指数从下式中得到:PGIndi GIndi &0x7FF / GSize , i 03 (40)这个基音预测器延迟和输出矢量从这些指数中解码,并且以以下方式应用于基音输出un。首先,一个信号en定义如下:e 0 = e-Li - 2e 1 = e-Li - 1e n = e(n mod Li) - Li, 2 n 63 (41.1)其中取模表示模数操作。那么:2.1
30、9存储升级在第i个子帧编码成下一个子帧之前,最后的任务是升级综合滤波器 A i(z),感知加权滤波器Wi(z) 和和谐噪声成形滤波器Pi(z) 的存储单元。为了达到这个目的,使重构造的激励通过联合滤波器Si(z),这样可以计算出完全响应。在激励滤波的最后,联合滤波器的存储被保存下来,在编码下一个语音矢量时将会被用于计算零输入响应。2.20比特分配这个子单元表示了两个比特速率的比特分配表格。两种比特速率的最大的不同在于脉冲位置和幅度编码。同样,低比特170输入码本总是用于输出矢量的长期预测。见表2.3和4。2.21 编码器初始化所有的静态编码变量应该初始化为0,除了之前的LSP矢量,它们应该初始
31、化为LSP直流矢量Pdc。3 解码原理153.1基本描述解码操作仍然是在帧的基础上进行的。首先,编码量化LPC指数,然后解码器构造LPC综合滤波器。对于每个子帧,自适应码本激励和固定码本激励同时被解码,并且输入进综合滤波器。自适应滤波器组成一个共振峰和前向后向基音滤波器。激励信号是基音滤波器的输入,它的输出反过来是综合滤波器的输入,而综合滤波器的输出是共振峰滤波器的输入。一个数值缩放单元保持了共振峰滤波器输入端的能量。图二 解码器框图3.2 LSP解码器此单元和2.6中一样。3.3LSP内插器此单元和2.7中一样。3.4基音信息解码此单元和2.18一样。3.5激励解码此单元和2.17一样。3.
32、6基音后置滤波器一个基音后置滤波器用来改变综合信号的质量。值得提出的是,基音滤波器是对由于每个子帧而言的,为了实现它,要求产生和保存整个帧激励信号enn = 0239。通过增加基音周期的信噪比来改变语音质量,这个过程如下过程进行。滤波器信号ppf nn = 059从解码激励信号中得到,滤波器信号从下式中得到:16其中en是解码激励信号。数值gp, gf, gb和延迟Mf, Mb的计算都是基于一个前向后向互相关分析。加权wf, wb可以有如下的值: (0,0), (0,1), 和(1,0)。通过最大化互相关系数来选择延迟。前向基音延迟的互相关系数如下:后向基音延迟的互相关系数如下:其中M1 =
33、Li - 3 , M2 = Li + 3 和 Lii = 0.2是第一和第三个子帧的接收基音延迟。L0 用于最先两个子帧,L2用于最后两个子帧。如果其中一个最大的相关系数是负数或者n 0.59其中有些数值并没有样本与之对应,那么相应的加权和延迟被设置为0。这可能有四种情况:(0)两个最大值都是负数,没有基音滤波加权需要计算;(1)只有前向最大值是正数,所以就选择它;(2)只有后向最大值是正数,所以选择它;(3)两个最大值都是正数,则选择使输出最大的值。这个过程表述如下。对于情况1,2,3,最优基音延迟(Mf或者Mb)的相关信号能量(Ten, Df 或者 Db)的计算是根据式子(44.1), (
34、44.2) 和 (44.3):前向能量是:后向能量是:17E是使C2/D最大的最小值。在第3种情况下,通过选择 Cf2/Df 和 Cb2/Db最大值率来进行前后向之间的选择。预测值等于 。如果这个值小于1.25dB,那么忽视输出值,不使用基音滤波器。如果使用了基音滤波器,那么最优的输出为: g =C/D (46)根据语音编码比特速率,最优输出与一个加权因数gltp相乘,在高频段gltp等于0.1875,低频段等于0.25。最后缩放数值gp为:如果47式中的分母小于分子那么数值设置为1。3.7 LPC综合滤波器第10阶LPC综合滤波器 A i(z)用来合成语音信号syn,而此信号从解码基音滤波器
35、残余信号ppf n中得到:3.8共振峰滤波器通常使用一个常规的ARMA滤波器。短期滤波器的传输函数是:18其中1 0.65 , 2 0.75,k是第一个自相关系数,它是从合成语音信号syn中得到的,k1old是从之前的子帧中得到的k1的值。滤波器信号 pf n作为共振峰滤波器的输出,此共振峰滤波器的输入为syn。3.9输出缩放单元这个单元接收了两个输入矢量,合成信号矢量synn = 059和滤波器输出矢量pf nn = 059。首先计算幅度比gs:如果分母等于0,gs设置为1。然后输出矢量qn通过缩放滤波器信号pf n得到,输出 gn用下式进行升级:gn = (1 - a)gn - 1 + a
36、gs (51)qn = pf n gn (1 + a) (52)其中a 等于 1/16.3.10帧修正处理这个编码器设计来使程序健壮,以备删除不需要的帧。这个编码器包含了帧删除的误差隐藏措施。但是,只有在当前帧的比特流已经被删除这个提示下,这个措施单元才会被激活。因为这个编码器是为区间误差设计的,对于随机错误并没有任何措施可供修正。如果删除了一帧,解码器将从常规解码转到帧删除隐藏模式。帧修正过程对于LSP 系数和残差信号是独立进行的。3.10.1 LSP修正帧修正模式下的LSP系数的解码如下进行:1) 矢量en设置为0。2) 预测矢量pn加到矢量en和直流矢量pDC 上,来形成解码LSP 矢量
37、pn。用一个不同的固定预测器(be = 23/32)产生p-n。从这个点往后,LSP 解码就如2.6种的19一样继续,除了Dmin = 62.5 Hz, 而不是 31.25 Hz。3.10.2残余修正残余修正以两种方式进行,最后一个之前的好帧优先于删除的帧,依赖于这样的准则进行修正。帧是按语音或者非语音这样的分类来检测的。分类方法基于一个互相关最大函数。帧的最后120个样点是互相关的,相关系数为L2 3。达到最大相关值的指数选择作为候选修正指数。然后检测最佳矢量的预测值。如果这个值大于0.58dB,此帧被认为是语音信号,否则认为是非语音信号。如果是非语音信号,则分类归0,如果是语音信号,则设置
38、为预测基音值。对于非语音帧,保存子帧2和3的输出指数的平均值。如果当前帧标示为一删除并且之前的帧被认为是非语音,则用一个随机数值产生器来产生当前帧激励。随机数值产生器的输出用之前计算的输出数值来缩放。在语音信号的情况下,用周期激励信号重新产生当前帧,这个周期激励信号的周期和分类器提供的数值相等。如果帧删除状态在接下来两个帧持续保持,那么重新产生的矢量每帧将被削弱2.5dB,在修正了三个帧后,输出完全静音了。3.11解码器初始化所有的静态解码变量应该被初始化为0,除了:1) 之前的LSP矢量,他们应该被初始化为 LSP得直流矢量,pDC。2) 滤波器输出g-1应该被初始化为1。4比特流封装注意:
39、传输参量的每个比特被命名为PAR(x)_By:其中PAR是参量的名字,x表明相关的子帧指数,y代表从0开始的LSB比特位置,以备维修使用( MSB)。PARx_ByPARx_Bz代表了从比特 y到比特z之间的传输比特范围。未经使用的比特命名为UB(数值为0) ,RATEFLAG_B0表明当前帧是语音信号(0)或者是非语音信号(1)。RATEFLAG和VADFLAG的联合同时被设置为1,并且被保存下来以供将来使用。八位字节顺次被传输,而这个顺序可以从表5和6。在每个八个字节, MSB的字节在左边,LSB的字节在右边。5 ANSI C码在16比特定点算术中ANSI C码模拟双速率编码/解码在ITU-T中是可行的。表7中包含了这个编码器的所有的文件。6术语表这个术语表包含了用于本协议中的数学符号,这是一个这些符号所代表意思的简单的描述。