摘要:本文探讨了增量调制算法的进展,介绍了几种实用的ADM算法,,详细论述了CVSD—PCM数码变换。
关键词:增量调制算法,脉冲编码调制,数码变换
一、引 言
现在,虽然中、低速率的语音编码发展很快,有16kbit/s速率的低迟延码激励线性预测(LD—CELP)语音编码(G.728建议),还有8kbit/s共扼结构代数码激励线性预测(CS—ACELP)语音编码(G.729建议)等64kbit/s标准PCM系统仍占有统治地位。它已极为广泛地应用于数字通信、数字交换机及一切语音数字化接口。
增量调制(△M)是继PCM后出现的又一种模拟信号数字化的方法,因其有强抗误码能力,所以,从70年代开始,被广泛用于军事通信网以及航天通信系统中。
PCM编码有统一的国际标准。一般的多媒体计算机都可以听不同速率的PCM话音。因此,使用本文介绍DM—PCM数码变换,由计算机即可听一般的△M话。本文第二部分介绍ADM的主要算法,第三部分详细讨论连续可变斜率增量调制(CVSD)—PCM的数码变换,其方法亦可用于其它的DM—PCM数码变换。 二、自适应增量调制(ADM)的主要算法 PCM编码是对抽样值S(n)直接进行编码。△M是对两个相邻样值的差值进行编码,实际应用的增量调制总是设计成△的大小随信号大小而变的自适应增量调制(ADM)。它的工作特点是:信号斜率变大时,增量△也跟着自动变大;反之,信号斜率变小时,增量△也跟着自动变小。如何从传输的二进制数字码流c(n)中提取对计算△(n)有用的信息,是设计实用算法的关键。c(n)码流传送的是信号的斜率信息,当同符号c(n)连续出现时,则斜率变大;当c(n)交替出现1、0码时,则斜率为零。近年来,在ADM体制上开展了不少研究工作、下面介绍几种较为实用有效的算法。 b(n) b(n-1) b(n-2) M(n) 1 1 1 1.5 0 0 0 1.5 0 0 1 1 1 1 0 1 0 1 1 0.66 1 0 0 0.66 1 0 1 0.66 0 1 0 0.66 5.CVSD算法 三、CVSD—PCM数码变换 CVSD也叫数字检测音节压扩增量调制,进入实用阶段已有十多年的历史。在美国和西欧北约各国的军事通信网中CVSD算法应用为广泛。一般使用16kbit/s或32kbit/s数码率的CVSD调制方式。16kbit/s的CVSD为3连“1”或连“0”的数字检测算法 。而32kbit/s的CVSD为4连“1”或连“0”的数字检测算法。目前商用的ADM多数为32kbit/s的CVSD。所以,下面主要讨论将32kbit/s的CVSD变换为16位的线性PCM的方法。 1.零点的选取与对应的建立 2.抽样频率32~8kHz的变换 3.重新回到零点 4.衰减因子β的计算 5.量阶△与△0的实验测试 综上所述、就可实现从32kHz的CVSD编码到8kHz的16位PCM编码的变换,要进行其它DM编码到不同PCM编码的变换,用以上方法亦不难实现。
1.常因子自适应增量调制(CFDM)算法
式中
2.高信息自适应增量调制(HIDM)算法
3.Song算法
这种算法后来经改进用到了航天飞机中。
4.混合自适应增量调制(HCDM)算法
M(n)的选取见表1。
表1 M(n)的真值表
这种算法应用为广泛。一般是检测3~4个比特有无同极性码,若有,则增加△值,否则,靠滤波器自由衰减△值。算法为:
式中。由下式决定
β为控制量阶衰减的因子,满足τ=T/(1-β)为音节时间常数,一般为5—10 ms。
当传输的二进制数字码流c(n)中交替出现1、0码,则信号的斜率为零。如果某一时隙有m(可定为32、64等)个交替的1、0码,则该时隙对应PCM的零点,即此时隙为变换以后的PCM码的零点,也就是说,有:
CVSD—→PCM
(1010…10)—→0
设k个交替的1、0码之后的比特为c(1),第二比特为c(2),…,第n比特为c(n),…,对应的PCM码值分别为PCM(1),PCM(2), …,PCM(n),…,而PCM(0)=0。这时,
如果c(1)=1,则PCM(1)=PCM(0)+△,
如果c(1)=0,则PCM(1)=PCM(0)-△,
如果c(2)=1,则PCM(2)=PCM(1)+△,
如果c(2)=0,则PCM(2)=PCM(1)-△,
如果c(3)=1,则PCM(3)=PCM(2)+△,
如果c(3)=0,则PCM(3)=PCM(2)-△,
从c(4)开始,考虑 值的变化,如果
c(4) = c(3) = c(2) = c(1) (1)
则△(4)=△ +△o,如果(1)式不成立,则△(4)=β·△ ,这时就可确定PCM(4)的值,
如果c(4)=1,则PCM(4)=PCM(3)+△(4),
如果c(4)=0,则PCM(4)=PCM(3)-△(4);
同样可确定PCM(5),如果
c(5) = c(4) = c(3) = c(2) (2)
则 (5)= (4)+△0,如果(2)式不成立,则△(5)=β·△(4),这时,
如果c(5)=1,则PCM(5)=PCM(4)+△(5),
如果c(5)=0,则PCM(5)=PCM(4)-△(5);
余类推…,这即建立了CVSD码流到PCM码的对应。
在增量调制中,抽样频率不是由抽样定理确定的,而是由量化信噪比决定的,而且数码率与抽样频率在数值上是相等的。即32kbit/s的数码率,其抽样频率为32kHz,16kbit/s的数码率抽样频率为16kHz。为了获得8kHz的PCM抽样频率,对于32kHz的CVSD,可在每4个样点中选择一个作为PCM抽样点。具体地讲,在上面得到的PCM样点PCM(0),PCM(1),PC M(2),…,PCM(n),…中,抽取PCM(0),PCM(4),PCM(8),…,PCM(4n),…,即可得到8kHz的PCM抽样频率。
在进行码变换时,要不断地寻找新零点,即m个交替的1、0码。如果出现新的零点,对应的PCM码值应回到零,否则,经过一定的时隙,PCM的码值即达到饱和状态,从而出现码型变换带来的失真。
在CVSD的算法中,由音节时间常数τ=T/(1-β),可知
β=1—T/τ
一般情况下,τ=5~10ms,对于32kHz与l 6kHz的CVSD,容易计算出β的值。
对于由CVSD变换后的16位PCM码,如果量阶△与△0选择得过大,会出现噪声;△与△0过小,则语图起伏很小,失真较大。经测试△在10的量级较合适,△0可比△小一些,这样即可获得较好的语音质量。
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。