TD-SCDMA系统中AMR语音编码器的实现

  • A+
所属分类:音频杂谈

  语音编码方案的选取对移动通信系统的通话质量、信道容量等有重要影响。讨论了TD-SCDMA系统中AMR语音编码的自适应机制,分析了AMR中代数码本线性预测(ACELP)算法及实现过程。该方案可以在一块TMS320C5510上实现,通过在TD-SCDMA系统的硬件平台上自环测试,结果是理想的。

        引 言

  在语音编码领域中,随着传输、处理、存储等各种信息量的巨增,信息的压缩处理已成为迫切的要求,基于新的网络和新的要求,无论是从节省传输频带资源,还是保持线路通信的高效率等方面来看,研究采用各种可变速率语音编码技术的系统都有重要意义。目前为了适应此需要提出了AMR(adaptivemulti-rate)概念,即自适应话音编码器。基于带宽的考虑可分为AMR- NB(AMRNarrowband)和AMR-WB(AMRwideband)。对于AMR-NB,语音通道带宽限制为3.7 MHz,采样频率为8 kHz,而AMR-WB为7 MHz的带宽,采样频率为16 kHz,但考虑语音的短时相关性,每帧长度均为20 ms。这2种编码器根据带宽的要求虽然选用了不同的速率,但有异曲同工之处,以下着重介绍在TD-SCDMA中AMR-NB的实现。此编码器运用了代数码本线性预测(ACELP)混合编码方式,也就是数字语音信号中既包括若干语音特征参数又包括部分波形编码信息,再运用这些特征信息重新合成语音信号的过程。控制这些参数的提取数目,根据速率要求对信息进行取舍而得到了以下8种速率,混合组成如表1所示的自适应语音编码器。表1中模式AMR-12.20就提取出244比特的参数信息,而模式AMR-4.70却只提取了95比特信息。根据这些比特所含的信息量可以将其分为3类比特class 0,1,2。在信道编码时class0和1都将会使用循环冗余校验码进行差错检验,对于class 2则根据上一帧进行恢复。

  语音编码或语音压缩编码研究的基本问题,就是在给定编码速率的条件下,如何能得到尽量好的重建语音质量。主观评定方法符合人类听话时对语音质量的感觉得到了广泛应用。常用的方法有平均得分意见(mean opinion score,简称MOS)判定法,表2说明了AMR话音编码器各模式的话音质量。

TD-SCDMA系统中AMR语音编码器的实现

TD-SCDMA系统中AMR语音编码器的实现

       1 AMR模式选择的自适应机制

  自适应的基本概念是以更加智能的方式解决信源和信道编码的速率分配问题,使得无线资源的配置和利用更加灵活和高效。实际的语音编码速率取决于信道的条件,它是信道质量的函数。而这部分的工作是解码器根据噪声等测量参数协助基站来完成的,选择模式,决定速率快慢。原则上在信道很差的时候采用速率比较低的编码器,这样就能分配给信道编码更多的比特数来实现纠错,实现更可靠的差错控制,从而有效地抑制错误发生,提高话音质量[1]。

  在TD-SCDMA系统实现方面为了便于量化比较而采用了C/I(载干比)这一概念,取其滑动平均值,再将此值与一预先定义好的门限值进行比较,来决定速率的选择。由于不同的特性,全速率信道和半速率信道就应有不同的定义值。在全速率信道,当C/I≥13时,MR122的MOS值可以达到4以上,可以提供很好的性能;9≤C/I<13时,MR122、MR102、MR795都是可以选择的,速率越低,误帧率越低;当6≤C/I<9时,最好选择MR74、 MR67、MR59;而当C/I<6时就应尽量选择越低的速率,随着信道质量的下降,误帧率都会增加,但相对选择的速率低,就能提供相对较好的话音质量。对于半速率信道,与上述类似,不再累述。下面进一步说明自适应速率选择的实现过程。图1是完整的说明图。自适应要求有2类信息需要传输:在下行信道上,需要基站发送给移动台1模式选择测量命令,而在上行信道上,移动台将信道测量信息传送给基站。这种模式要求传送信息准确、可靠、及时,才能有效达到自适应的目的。基站每帧发送1测量命令,得到返回信息,通过比较选择,选择1模式用于下一帧。这样就可以实现速率间的转换,达到自适应的目的,在速率间的切换会有一定功率损耗,并且不同速率间的损 耗是不同的,这是在实现过程中应该考虑的[2,3]。

TD-SCDMA系统中AMR语音编码器的实现

        2 AMR编码器算法

  AMR编码器算法是基于代数码本线性预测(ACELP)的混合编码算法[4,5]。基本原理是原始语音按帧输入,根据使合成语音与原始语音的加权均方误差最小的准则,从随机码本和固定码本中挑选合适的码矢以代替残差信号,并将码矢地址和增益及各滤波器的参数量化编码后传送到接收端;接收端恢复各滤波器时,采用与发送端相同的码本,按照码矢地址找到该码矢乘上增益,激励合成滤波器,得到合成语音。在编码部分需要抽取下列典型参数:线性预测滤波器系数(LP),自适应码本(ACB)和固定码本(FCB)索引以及2种码本的增益( 见图2)。下面将分别从编码和解码 的角度阐述AMR编解码方案。

TD-SCDMA系统中AMR语音编码器的实现

(1)线性预测计算。LPC滤波器表征语音信号发生模型中的声道模型.其中,A(z)为声道传输函数,ai随语音帧的变化不断改变(ai具有短时稳定性)。因此,在每个语音帧中,需要提取LPC系数。按其预测值与实际值最小 化均方误差原则,可得下式:

TD-SCDMA系统中AMR语音编码器的实现

上述正则方程[6]采用Durbin算法进行线性预测便可得到参数ak。考虑到线谱频率(LSF)误差的相对独立性及有序有界性质,与线性预测参数(LP)是一一对应的,采用Chebyshev多项式估计方法是可以相互转换的,因此在考虑传输时用LSF参数代替LP参数,将其进行矢量量化,在解码部分再对LP进行恢复。在12.2 kbit/s模式下采用分裂矩阵(SMQ)的方式进行矢量量化,在其它模式下采用分裂矢量(SVQ)的方式进行矢量量化。由于在12.2kbit/s中,每一帧需要进行2次线性预测编码(LPC)分析,所以会得到2组LSF系数。AMR在TD-SCDMA系统的具体实现过程中将这2组系数进行联合量化。也就是将矩阵(r(1),r(2))分为5个2×2的子阵,分别进行矢量量化,维数为4,码本容量分别为128(子阵1),64(子阵5),256(子阵 2,3,4),失真  测度选择计算量最小也有主观评价意义的欧式距离,在码本搜索过程中采用了全搜索算法。同样,对于其它的编码速率,有相同的思路和操作步骤,最大的差别就是对LSF矢量的子阵划分,它们的划分方法是采用维数为3,3和4的3个子阵(子矢量)。

  (2)码本搜索[4]。TD- SCDMA系统中,AMR自适应码本搜索和代数码本搜索是语音合成的关键,它们都是在子帧的基础上完成的,其中,每个子帧长为5 ms,对应4个样点。自适应码本表征语音信号发生模型中的周期性结构,自适应码本搜索通过一个长时预测滤波器(LTP),去除信号中存在的长时相关,使残差信号频谱更加平坦,以便于形成白噪声激励信号,同时提取基音延迟和对应的基音增益。再经过基音开环和闭环分析得到分数基音延迟决定后,自适应码本矢量v (n)通过在最佳的整数延迟kopt和相位(分数延迟)t处内插就得到

TD-SCDMA系统中AMR语音编码器的实现

代数码本表示语音信号发生模型中的随机信号,根据感觉加权均方误差最小的原则,最终获得[2]。代数码本结构是基于交织单脉冲序列(ISPP)的,其脉冲幅度和位置的取值都要受到一定的限制以满足一定的代数结构和比特分配要求,对于不同速率,脉冲位置和个数都选择不同。而且在系统中,码本设计上改进了以前的高斯随机码本结构,构造了中心削波的重叠码本。经稀疏后,码本中就会产生90%的零值。这样是可以简化搜索过程的。通过最大化下式可?量,d=Htx2表示目标信号x2(n)和冲激响应h′w(n)之间的相关性。在得到以上参数后,AMR中系统总共设计了3种量化器。AMR-12.2代数码本增益的量化是采用6比特标量量化器,AMR -4.75是将自适应码本增益和代数码本增益进行联合量化,而对于其他速率则是按原始语音与合成语音的加权误差最小找出目标矢量。由于考虑多速率的公用,所以码本容量较大,这与其他编码器是不同的。

  (3)AMR解码原理。解码器分为3大部分:译码部分、语音合成和后滤波。在解码器输入端,从接收的比特流中获得LSP矢量、自适应码本和代数码本参数(索引和增益)等。LSP线谱对参数还需要转化为线性预测滤波器系数,再根据LP系数内插得到各子帧的合成滤波器系数。激励矢量由自适应码本和代数码本经各自的增益加权后获得,将激励矢量输入合成滤波器得到重建的语音信号。最后,重建的语音信号还需要经过后滤波处理。ACELP编码器编码的语音可看成是包含了高斯噪声的原始语音。使用后滤波可以减少合成语音中包含的噪声信号,从而有效地提高合成语音的语音质量。后处理包括两部分功能:自适应后滤波和信号放大。自适应增益控制用于补偿合成语音和经过后滤波的合成语音之间的失真。将信号通过以下滤波器,就可得到修正的后滤波合成语音。

        3 结束语

  AMR的提出能提供高质量的语音,增强抗信道误差的能力,通过低编码速率灵活配置提高了系统容量,编码速率根据无线环境和本地容量需求动态选择不同模式。笔者围绕AMR语音编码算法进行分析和研究。该算法已在TI公司的TMS320 C5510DSP上采用定点C语音和汇编语言的混合编程实现,并用于TD-SCDMA系统中,运算量能降低到20 MIPS左右,通过在TD-SCDMA系统的硬件平台上自环测试,可得到良好的通话语音质量,结果是很理想的。

小众声学

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: