减小复杂性的信号传输系统 本发明涉及一种由发射机和接收机组成的传输系统。发射机具有一个编码器,用于对发射机的输入信号进行编码,所说的编码器包括从输入信号导出至少一个分析系数(analysis coefficient)的分析装置以及导出代表所说的分析系数的量化电平的一个电平数字的量化装置,发射机被安排用于将包括电平数字的编码信号发送到接收机。接收机包括用于从编码信号导出解码信号的一个解码器。
本发明也涉及发射机、接收机、编码器、解码器、发送方法和接收方法。
依据上面所述的一种传输系统从欧洲电信标准化协会(ETSI)1992年1月公布的GSM建议06.10,GSM全速率语音自动译码中可查知。
这种传输系统可以被用于经由传输媒质诸如无线电信道、同轴电缆或光纤传送例如语音信号。这种传输系统也可以被用于在记录媒质诸如磁带或磁盘上记录(语音)信号。可能的应用场合为自动应答机或口述记录机。
在现代语音传输系统中,被传送的语音信号常由合成技术采用分析编码。在这一技术中,合成信号借助于由许多激励序列激励的合成滤波器产生。合成语言信号由许多激励序列确定,代表合成信号与从输入信号导出的目标信号之间的误差的误差信号被确定。选择引起最小误差的激励序列,并以编码方式传送到接收机。
合成滤波器的特性由分析装置从输入信号的特性性能中导出。通常,分析系统常以所谓预测系数(prediction coefficient)形式从输入信号中导出。这些预测系数被定期更新,以适应输入信号特性的变化。预测系数也被传送到接收机。在接收机中,激励序列被复原,并通过将激励序列应用于合成滤波器产生合成信号。这个合成信号是发射机的输入信号地复制器。
分析系数的更新周期常常大于激励序列的持续时间。多半激励序列的一个整数与分析系数的一个更新周期一致。为了改善在接收机中所合成信号的质量,在公知的传输系统中对每个激励序列计算内插的分析系数。在相邻的分析系数之间内插,涉及相当大的计算量。
采用内插的第二个理由是在一组分析参数被错误接收的情况。所说的错误地接收的一组分析参数的近似值可以通过内插前一组分析参数和后一组分析参数的电平数字来求得。
本发明的目标是为了提供依据上面所述减小计算复杂性的一种传输系统。
因此,依据本发明的传输系统,其特征在于:解码器包括内插装置,用于从至少两个连续接收的相应于所说的分析系数的电平数字中导出一个内插的电平数字;还在于:解码器包括分析系数解码装置,用于导出相应于所说的内插电平数字的解码分析系数的一个值。
通过在通常被限于精密数字的电平数字之间的内插,而不是在具有比电平数字精密度高的预测系数之间的内插,可以获得内插所要求的计算复杂性的大量节省。实验已表明,电平数字之间的内插而不是预测系数值的内插不会降低编码质量。
本发明的一个实施例,其特征在于电平数字相应于第一类分析系数的电平,还在于解码分析系数是第二类分析系数。
本发明可以利用一个表或由计算装置从内插的电平数字直接产生第二类预测系数。在从上面提到的标准所公知的传输系统中,电平数字首先必须转换成第一类预测参数,仅在内插后才能被转换为第二类预测参数。
本发明的另一个实施例,其特征在于分析装置被安排用来从输入信号导出许我分析系数,在于解码器包括从所接收的有关分析系数的电平数字中导出分析系数指数的装置,还在于分析系数解码装置包括公用解码表装置,用于导出相应于所说的分析系数指数的解码分析系数。
通过从所接收的电平数字导出一个适当的指数,有可能使用一个单一表确定所有预测系数的值,而不是对每个预测系数要求一个表。对所有预测系数用一个单一表来替代由每个预测系数一个表构成的许多表的想法也可以应用于编码器。
下面将参照附图来解释本发明:
图1:依据本发明的一个传输系统;
图2:在依据图1的传输系统中所使用的量化器14的一个实施例;
图3:图2中处理器32依据本发明实行量化的一个程序流程图;
图4:在依据图1的传输系统中所使用的内插器22和解码装置24之组合的一个实施例;
图5:图4中处理器92依据本发明实行内插和预测系数解码的一个程序流程图。
在依据图1的传输系统中,输入信号被加到发射机2的输入端。在发射机2中,该输入信号被加到编码器7的输入端。在编码器7中,该输入被连接到此处为线性预分析装置8的分析装置以及激励信号确定装置9的输入端。线性预分析装置8由线性预测器10和系数变换器12级联连接组成,线性预测器10具有代表分析系数的输出信号a[k],系数变换器12具有输出信号r[k]或LAR[k]。
线性预分析装置8的输出被连接到量化装置14的输入端。量化装置14的输出被连接到多路转换器16的输入端以及激励信号确定装置9的输入端。激励信号确定装置9的输出被连接到多路转换器16的第二个输入端。多路转换器16的输出信号被发射机2经由传输媒质4传送到接收机6。
接收机6的输入信号被连接到多路信号分离器20的输入端。多路信号分离器20的第一和第二输出被连接到解码器18的相应输入端。解码器18的第一输入被连接到内插装置22的输入端。内插装置22的输出被连接到分析系数解码装置,此处是预测系数解码装置24。携载输出信号 r[k]的预测系数解码装置的输出被连接到合成滤波器28的输入端。
解码器18的第二输入被连接到激励信号发生器26的输入端。激励信号发生器26的输出被连接到合成滤波器28的第二输入端。接收机的输出信号在合成滤波器28的输出端获得。
在依据图1的传输系统中,假设输入信号被分成帧,每个帧由S子帧组成。线性预分析装置8被安排用来确定每个帧P的预测系数。线性预测器10确定预测系数a[0]……a[P-1],其中选择系数a[k]使预测误差E最小。预测系数a[k]和其它类型的预测系数的确定对本专业技术人员是熟悉的,并在例如Douglas O’shaughessy的“语言通讯”一书第8章pp.336~378中所描述。
系数变换器12把由预测器10确定的预测系数变换为更好地适合于量化和传输的不同类型的预测系数。第一个可能是系数变换器把系数a[k]变换为反射系数r[k]。也可能按照LAR[k]=log(1+r[k]1-r[k])---(1)]]>把反射系数变换为对数区域比(LARs-Log Area Ratios)。
在使用LARs情况下,这些系数被具有量化间隔δ的量化器14均匀地量化。判定电平由±I·δ给出,1为正整数,再现电平为±(1/2+I)δ.对于每个再现电平被赋予一个电平数字,该电平数字被传给多路转换器16。
在使用反射系数情况下,这些系数被量化器14非均匀地量化。判定电平由下式给出D=1-e±(12+l)δ1+e±(12+l)δ---(2)]]>而再现电平由下式给出D=1-e±lδ1+e±lδ---(3)]]>在这种情况下也对每个再现电平赋予一个电平数字,并把电平数字传送到多路转换器16。
激励信号确定装置9确定与接收机中的合成滤波器28一起使用的激励信号。激励信号可以由许多方式,如本专业技术人员熟悉的那样来确定。例如可能用分析滤波器对输入信号滤波,并使用在分析滤波器输出端上剩余信号的编码方案作为激励信号,就象在GSM06.10中规定的那样。也可能由合成的方法利用分析从有限数目的可能激励中确定一个最佳激励信号,就象在采用CELP(编码激励线性预测—Code ExcitedLinear Prediction)编码技术的传输系统中所实现的那样。
编码激励信号与多路转换器16中的预测系数的电平数字一起被多路转换。多路转换器16的输出信号被移送到接收机6。
在接收机6中,多路信号分离器20把编码激励信号与预测系数的电平数字分离开。正如上面所述,对每个S激励子帧,预测系数仅被更新一次。内插器22按照下式为所有预测系数的每个子帧确定一个内插的电平数字I[k]。I[k]=(S-s-1)·Cp[k]+(1+s)·C[k]S---(4)]]>在式(4)中,Cp[k]代表上一组电平数字,C[k]代表被更新组的电平数字。s是所涉及的子帧号码。预测系数解码器24确定解码预测系数r[k]。解码预测系数被加至合成滤波器,该合成滤波器根据由激励发生器产生的激励信号产生一个发射机的输入信号的合成复制品。
在量化器14中,预测系数r[k]被加至处理器32的第一输入端。携载输出信号k的处理器32的第一输出端被连接至存储器单元34。携载输出信号I和N的存储器单元34的输出端被连接至处理器32的第二输入端。携载输出信号I的处理器32的第二输出端被连接至存储器单元30的输入端。存储器单元30的输出端被连接至处理器32的第三输入端。电平数字C[k]在处理器32的第三输出端上获得。
图3示出处理器32执行量化操作的一个程序流程图。在图3中,标注号码的方块之内容具有如下含义: 标号 内容 含义 40 BEGIN 开始执行程序 42 k=0 变量k设置为0 44 READ I,N 从存储器单元34中读取第一个参
考值的指数I和所用参考值的数目 46 ILOW=I 确定最小指数IMIN和最大指数
IHIGH=I+N-1 IMAX 48 READ REF[ILOW] 从存储器单元30读出最小参考值 60 r[k]≤REF[ILOW] r[k]与最小参考值比较 62 READ REF[IHIGH] 从存储器单元30读出最大参考值 64 C[k]=ILOW 使值C[k]等于ILOW 66 C[k]=IHIGH 使值C[k]等于IHIGH 68 r[k]>REF[IHIGH]? 将r[k]与最大参考值相比较 70 INCI I的值被增加1 72 READ REF[I] 从存储器单元30中读取
下一个参考值 74 REF[I-1]<r[k]≤REF[I]? 将r[k]的值与两个连续的参考电
平相比较 76 I<IHIGH? 将I与最大指数IHIGH相比较 78 C[k]=I 使C[k]等于I 80 C[k]=C[k]-ILOW C[k]被减去ILOW 82 INCK k的值增加1 84 k≥P? 将k的值与P相比较 86 END 程序结束
在图3流程图的指令40中,开始该程序并初始化有关的变量。在指令42中,k值设置为0以表示预测系数r[0]。在指令44中,从存储器装置34读取存储在存储器装置30中的第一个参考电平的指数I和量化r[k]所涉及的参考电平数目。存储器装置34存储作为k的函数的I和N值,如下面表1所示。在这个表中只考虑20个预测系数。 k I N k I N 0 13 36 10 18 8 1 0 28 11 17 7 2 16 15 12 19 7 3 12 14 13 17 8 4 16 13 14 19 7 5 13 13 15 18 6 6 16 12 16 19 6 7 14 11 17 17 7 8 18 9 18 19 6 9 16 8 19 18 6表1
在指令46中,根据从存储器装置34中读得的N和I计算与存储器装置30一起使用的最小指数和最大指数值。在指令48中,从存储器装置30中读出在指数ILOW处存储的参考值REF。下面表2给出作为指数I函数的参考值REF。
I REF I REF 0-0.9882 25 0.5098 1-0.9848 26 0.5964 2-0.9806 27 0.6710 3-0.9751 28 0.7341 4-0.9682 29 0.7866 5-0.9593 30 0.8298 6-0.9481 31 0.8649 7-0.9338 32 0.8932 8-0.9158 33 0.9158 9-0.8932 34 0.9338 10-0.8649 35 0.9481 11-0.8298 36 0.9593 12-0.7866 37 0.9682 13-0.7341 38 0.9751 14-0.6710 39 0.9806 15-0.5964 40 0.9848 16-0.5098 41 0.9882 17-0.4116 42 0.9908 18-0.3027 43 0.9928 19-0.1853 44 0.9944 20-0.0624 45 0.9956 21 0.0624 46 0.9966 22 0.1853 47 0.9973 23 0.3027 24 0.4116表2
表2中的值通过用δ=0.25对不同的I值计算式(2)来确定。
在指令60中,将r[k]的值与值REF[ILOW]比较。如果r[k]小于或等于REF[ILOW],则在指令64中使电平数字C[k]等于ILOW。接着程序在指令80上继续进行。如果r[k]大于REF[ILOW],则在指令62中从存储器单元30读取值REF[IHIGH]。在指令68中,r[k]的值与REF[IHIGH]相比较。如果r[k]的值大于REF[IHIGH],则在指令66中使电平数字C[k]等于IHIGH。接着程序在指令80上继续进行。
如果r[k]的值小于或等于REF[IHIGH],则在指令70中I的值增加1。在指令72中,从存储器装置32读取下一个参考值REF[I]。在指令74中,检验r[k]是否具有前一个参考值和当前一个参考值之间的值。如果具有,则在指令78中使电平数字C[k]等于I。否则将I与IHIGH比较。如果I小于IHIGH,则程序在指令70上以下一个参考值继续进行。如果I大于或等于IHIGH,则程序在指令80上继续进行。
在指令80中,电平指数C[k]的值被减去ILOW。这样做为了达到具有值从0直到最大值的电平数字。
在指令82中,k值增加1,以便处理下一个预测参数的量化。在指令84中,将k与预测次序p比较。如果k大于或等于p,则程序在指令44上继续进行下一个预测参数r[k]的量化。否则程序在指令86中被终止。
在按照图4的内插器22与预测系数解码器24的组合中,电平数字c[k]被加到处理器92的第一个输入端。具有输出信号k的处理器92的第一个输出端被连接至存储器单元94。具有输出信号0的存储器单元94的输出端被连接至处理器92的第二个输入端。具有输出信号M的处理器92的第二个输出端被连接至有存储器单元90的输入端。存储器单元90的输出端被连接至处理器92的第三个输入端。在处理器92的第三个输出端可获得解码预测系数 r[k]。
图5示出处理器92执行内插器22和预测系数解码器24的功能的程序流程图。在图5中,标注号码的方块之内容具有如下含义:标号 内容 含义90 BEGIN 开始执行程序92 s=0 子帧指数s设置为094 k=0 变量k设置为096 TMP=((S-s-1)·Cp[k]+ 根据当前的和前一个电平数字以
(1+s)·C[k])/S 及子帧指数s确定内插的电平数字98 READ O 从存储器单元94读出O[k]的值100 M=O+ROUND(TMP) 计算解码的预测系数的指数102 READ r[k] 从存储器装置90读取r[k]的值104 INC k 最大值k被增加1以便处理下一个
预测参数106 k≥P? 将k值与P相比较108 INC s 设置s为表示下一个子帧的值110 s≥S? 将s与S相比较112 END 程序结束
在指令90中,开始图5流程图的程序。在指令92中S被设置为O,表示第一个子帧。在指令96中根据前一组电平数字Cp[k]和当前一组电平数字C[k]计算内插电平数字TMP。
在指令98中,从存储器装置94中读出在存储器装置90中 r[k]的第一值的位置0。存储器装置94保存有一个类似表1的表,但没有N的数字,因为解码不需要它们。
在指令100中,通过将O与TMP取整的值相加计算相应于电平数字ROUND(TMP)的 r[k]值的位置。在指令102,从存储器单元90中读取 r[k]的值。 r的值作为指数M的函数被列于下面表3中。 M r M r 0 -0.9896 25 0.4621 1 -0.9866 26 0.5546 2 -0.9828 27 0.6351 3 -0.9780 28 0.7039 4 -0.9719 29 0.7616 5 -0.9640 30 0.8093 6 -0.9540 31 0.8483 7 -0.9414 32 0.8798 8 -0.9253 33 0.9051 9 -0.9051 34 0.9253 10 -0.8798 35 0.9414 11 -0.8483 36 0.9540 12 -0.8093 37 0.9640 13 -0.7616 38 0.9719 14 -0.7039 39 0.9780 15 -0.6351 40 0.9828 16 0.5546 41 0.9866 17 -0.4621 42 0.9896 18 0.3584 43 0.9919 19 -0.2449 44 0.9937 20 -0.1244 45 0.9951 21 0 46 0.9961 22 0.1244 47 0.9970 23 0.2449 48 0.9977 24 0.3584
表3
表3中的项目通过采用δ=0.25计算式(3)来确定。在指令104中,当准备确定 r[k]的下一个值时k的值被增加1。在指令106中,k与p相比较。如果k小于P,则程序在指令46上继续进行以确定 r[k]的下一个值。否则s的值在指令108中增加1。在指令110中,s的值与S相比较。如果s小于S,则程序在指令94上继续以确定下一个子帧的r[k]的值。否则程序在指令112中结束。
有可能把表2和表3合并为具有项目数字递增的一个单一表。该单一表在下面给出如表4所示。表4的偶数项目保存值 r[k],寄数项目保存参考值REF。 I VALUE I VALUE I VALUE I VALUE 0-0.9896 25-0.7866 50 0.4621 75 0.9682 1-0.9882 26-0.7616 51 0.5098 76 0.9719 2-0.9866 27-0.7341 52 0.5546 77 0.9751 3-0.9848 28-0.7039 53 0.5964 78 0.9780 4-0.9828 29-0.6710 54 0.6351 79 0.9806 5-0.9806 30-0.6351 55 0.6710 80 0.9828 6-0.9780 31-0.5964 56 0.7039 81 0.9848 7-0.9751 32-0.5546 57 0.7341 82 0.9866 8-0.9719 33-0.5098 58 0.7616 83 0.9882 9-0.9682 34-0.4621 59 0.7866 84 0.9896 10-0.9640 35-0.4116 60 0.8093 85 0.9908 11-0.9593 36-0.3584 61 0.8298 86 0.9919 12-0.9540 37-0.3027 62 0.8483 87 0.9928 13-0.9481 38-0.2449 63 0.8649 88 0.9937 14-0.9414 39-0.1853 64 0.8798 89 0.9944 15-0.9338 40-0.1244 65 0.8932 90 0.9951 16-0.9253 41-0.0624 66 0.9051 91 0.9956 17-0.9158 420 67 0.9158 92 0.9961 18-0.9051 430.0624 68 0.9253 93 0.9966 19-0.8932 440.1244 69 0.9338 94 0.9970 20-0.8798 450.1853 70 0.9414 95 0.9973 21-0.8649 460.2449 71 0.9481 96 0.9977 22-0.8483 470.3027 72 0.9540 97 0.9999 23-0.8298 480.3584 73 0.9593 98 24-0.8093 490.4116 74 0.9640 99
表4
为了能寻址表4,图3和图5的程序必须稍加修改。在图3的程序中,在指令48、62、68、72和74中,寻址REF[x]所使用的指数x必须用2x+1代替。例如指令48必须修改为READ REF[2·ILOW2+1]。
合并的表可以通过使用表中存储的参考值也作为 r[k]的值来进行r[k]的更细的内插。为了获得这一结果,图5中指令100必须改为M=2·0+ROUND(2·TMP)。