专利名称:对不连续发送制式下的自适应多速率语音编码的译码方法
技术领域:
本发明涉及通信技术,具体涉及一种在GSM系统中对不连续发送制式下的自适应多速率语音编码的译码方法。
背景技术:
全球移动通信系统(Global system for Mobile communication,以下简称为“GSM”)在其发展到PHASE II后,提供了一种新的语音编解码方式,即自适应多速率语音编码(Adaptive Muti-Rate speech codec,以下简称“AMR”),这种语音编码的业务类型,可根据无线环境来动态改变语音编码速率和信道编码速率,AMR编码器根据信道类型如全速率或半速率信道,实时选择多种码率中的一种,从而达到语音编码和信道编码的最优组合以满足瞬时的无线信道条件和本地容量需求。AMR提供了从4.75kbits/s到12.2kbits/s的8种码率选择。对于一般的语音帧,有卷积编码来实现FEC(前向纠错码)。而在不连续发送制式(discontinuous transmission,以下简称DTX)时,有些特殊的帧并没有FEC,如何对这些帧进行译码,协议中并没有相关描述,因此,也就无法在DTX中实现对AMR的译码。
按照GSM协议,AMR中没有FEC但需要识别的特殊的帧有9种全速率SID_UPDATE、全速率SID_FIRST帧、全速率ON_SET帧、半速率SID_PDATE帧、半速率SID_UPDATE_INH帧、半速率SID_FIRST_P1、半速率SID_FIRST_P2帧、半速率SID_FIRST_INH帧、半速率ONSET帧。在发送上述9种全速率、半速率的这些DTX帧时,包含一个IM(识别模式)如下表所示。
由于编码的缘故,实际在译码的时候,对于SID_UPDATE_INH,SID_FIRST_INH来说,其识别模式已经变为1,1,1,0,0,1,0,1,1,0,0,0,1,1,0,1,0,0和0,0,0,1,1,0,1,0,0,1,1,1,0,0,1,0,1,1;表中的ic和ic1是指下面的4种16bit模式之一,用16进制将4种16位的识别模式分别表示为0x530f,0x3eb8,0x8863,0xe5d4,例如0x530f表示识别模式为0,1,0,1,0,0,1,1,0,0,0,0,1,1,1,1,对表中ic和ic1表示的帧需要进行4次匹配找最大值。无论采用哪种模式,所面临的技术问题是一样的,都需要从被噪声干扰的数据中识别出原先的数据格式。现有技术没有提供对这些帧类型的识别或译码的解决方案。
发明内容
本发明要解决的技术问题在于如何从接收端解调器输出的数据译码出发送方实际发送的帧的类型是以下帧类型的哪一种全速率SID_UPDATE、全速率SID_FIRST帧、全速率ON_SET帧、半速率SID_UPDATE帧、半速率SID_UPDATE_INH帧、半速率SID_FIRST_P1、半速率SID_FIRST_P2帧、半速率SID_FIRST_INH帧、半速率ONSET帧。换言之,本发明的目的是提供一种对不连续发送制式下的自适应多速率语音编码的译码方法。
本发明上述技术问题这样解决,构造一种对不连续发送制式下的自适应多速率语音编码的译码方法,包括以下步骤根据接收端解调器输出的信噪比SNR,计算门限值T;根据所述信噪比SNR对解调器输出的软判决数据模式比特IM_D(n)限幅为IM_D(n)’;将待译码帧类型的识别模式IM负极性化为IM’;将限幅后的含有N个比特的IM_D(n)’的一部分或全部与该帧对应的模式IM’的数据的一部分或全部进行相关运算,计算出相关度R;如果R>=T,则确定解调器输出的帧类型与待译码帧相同;否则确定解调器输出的帧类型与所用模式IM对应的帧无关。
其中,将待译码帧类型的识别模式IM负极性化为IM’,是对组成IM的每个比特进行比特“0”变为“1”、“1”变为“-1”的转换,得到负极性识别模式IM’。
其中,根据接收端解调器输出的信噪比SNR计算门限值T包括以下步骤
1)计算SNR对应的可靠度pp=10SNR/20/172)对计算出的可靠度p进行限幅,即超过0.25时取0.25;3)根据可靠度p和IM_D(n)的位数N计算门限T=N*p*127。
其中,根据所述信噪比SNR对解调器输出的软判决数据模式比特IM_D(n)限幅为IM_D(n)’,包括以下步骤1)设置允许幅度的最高值抖动Δ=p*128;2)如果IM_D(n)>128+Δ,调整IM_D(n)’=128+Δ;3)如果IM_D(n)<128-Δ,调整IM_D(n)’=128-Δ。
其中,所述相关运算为乘法运算。
实施本发明提供的在GSM系统中译码AMR DTX帧的方法,能够实现在GSM中,有效地从被噪声污染的数据中识别出所用的AMR的DTX帧类型。
具体实施例方式
为说明本发明方法的识别或译码的对象,对本发明需要译码/识别的特殊帧及识别模式说明如下1)全速率SID_UPDATE帧,识别模式为0,1,0,0,1,1,1,1,0重复至212比特;2)全速率SID_FIRST帧,识别模式为0,1,0,0,1,1,1,1,0重复至212比特;3)全速率ON_SET帧,四种模式之一,0x530f,0x3eb8,0x8863,0xe5d4,重复至228比特;4)半速率SID_UPDATE帧,识别模式为1,0,1,1,0,0,0,0,1重复至212比特;5)半速率SID_UPDATE_INH帧,识别模式为0,1,0,0,1,1,1,1,0重复至212比特;6)半速率SID_FIRST_P1帧,识别模式为0,1,0,0,1,1,1,1,0重复至212比特;7)半速率SID_FIRST_P2帧,四种模式之一,0x530f,0x3eb8,0x8863,0xe5d4,重复至114比特;8)半速率SID_FIRST_INH帧,识别模式为1,0,1,1,0,0,0,0,1重复至212比特;9)半速率ONSET帧,四种模式之一,0x530f,0x3eb8,0x8863,0xe5d4,重复至114比特。
需要注意的是,识别模式相同的帧,其放置位置不同,这里假定已经从正确位置提取了数据。
下面对按照本发明方法对不连续发送的上述类型的帧进行识别或译码的各个步骤详细说明如下步骤1根据接收端解调器输出的信噪比SNR,计算门限值T。
本发明的判决门限与噪声是关联的,换言之,本发明依据不同的噪声,确定不同的门限,即在门限与噪声关联前提下,在上述9种特殊帧的接收端,解调器可以输出一个用分贝数表示的信噪比SNR,本发明方法确定门限的方法就是根据解调得到的信噪比SNR,计算在这个信噪比下的门限值T。其过程如下1)计算SNR对应的可靠度(此可靠度认为SNR13dB时可靠度约为0.25)p=10SNR/20/172)对计算出的可靠度p进行限幅,即p超过0.25时取0.25;3)根据可靠度p计算门限TT=N*p*127,N为计算的总比特数目在具体实现中,门限的计算也可预先计算SNR与门限之间的关系,设置成一个表,每次需要时,只要用解调输出的SNR作为索引去查这个表,就可以直接得到对应的门限T。这样可以减少计算发明的时间开销。
步骤2计算相关度解调器输出有关帧的软判决数据,一般为一串8bit带符号整数,极性为负极性,-128表示发送符号最接近“1”,127表示发送符号最接近“0”,0表示为“1”和“0”等概;计算相关度的细节如下2-1)对软判决数据模式IMD(n)进行限幅,即根据所述信噪比SNR对解调器输出的软判决数据模式比特IM_D(n)限幅为IM_D(n)’;具体假设允许幅度的最高值抖动为Δ=p*127如果IM_D(n)>128+Δ IM_D(n)’=128+Δ如果IM_D(n)<128-Δ IM_D(n)’=128-Δ否则不变,即IM_D(n)’=IM_D(n)。
2-2)将待译码帧类型的识别模式IM负极性化为IM’,即将待译码帧类型的识别模式IM中的“1”变为“-1”,“0”变为“1”;2-3)将限幅后的含有N个比特的IM_D(n)’的一部分或全部与该帧对应的识别模式IM’的数据的一部分或全部(<=N个)进行相乘,作相关运算,计算出相关度R=IM_D(n)’*IM’;步骤3根据门限和相关度进行DTX帧类型的判决依据前面得到的相关度计算结果R和计算或查表得到的门限T进行比较判决,判决方法如下如果R>=T,则判决为数据和所比较的模式匹配,从而可以确定该帧类型为和该模式对应的帧;否则判决为非,即该帧类型不太可能为所用模式IM对应的帧。
以下说明一个基于本发明方法的通用译码的处理流程1)预先将准备识别的IM进行负极性化处理,识别模式包括0,1,0,0,1,1,1,1,0;1,0,1,1,0,0,0,0,1;1,1,1,0,0,1,0,1,1,0,0,0,1,1,0,1,0,0;0,0,0,1,1,0,1,0,0,1,1,1,0,0,1,0,1,1;以及16进制表示的0x530f,0x3eb8,0x8863,0xe5d4。
2)根据信噪比SNR查表,得到门限值T;3)根据信噪比SNR,对来自解调器输出的软判决数据模式比特IM_D(n)进行限幅,限幅为IM_D(n)’;4)计算相关度R=IM_D(n)’*IM’5)如果R≥T,判断当前IM对应的帧类型为输出数据的帧类型,结束译码程序;否则用另一个IM’回到步骤4),直到全部IM’都计算过,此时说明当前门限值情况下无法译码或识别。
以下以发送的数据帧为全速率SID_UPDATE为例,说明上述处理流程对一个特定编码的译码过程示例。所假定的数据帧为全速率SID_UPDATE,其对应的识别模式IM为0,1,0,0,1,1,1,1,0重复至212比特;假定已经预先将全部9种识别模式IM进行负极性化处理并存储起来;假定收到的部分数据为9个比特模式IM_D(9),每个比特模式为带符号位8位的二进制数,以下用十进制表示IM_D(9)为39 -28 49 26 -46 -43 -42 -31 36;假定解调器输出的信噪比SNR为10dB,根据公式计算出p=0.186,N=9(假定计算9比特),计算出门限T=213(取整数);对模式比特IM_D(9)进行限幅如下
39->32 49->32 46->32 43->32 42->32 36->32,其余不变;得到限位后的IM_D(9)’32 -28 32 26 -32 -32 -32 -31 32对识别模式IM负极性化为IM’=1,-1,1,1,-1,-1,-1,-1,1计算相关度R=IM_D(9)’*IM(9)’=32*1-28*(-1)+32*1+26*1-32*(-1)-32*(-1)-32*(-1)-31*(-1)+32*1=277由于,R>T所以作出收到的帧类型为全速率SID_UPDATE帧的判断。
权利要求
1.一种对不连续发送制式下的自适应多速率语音编码的译码方法,其特征在于,包括以下步骤根据接收端解调器输出的信噪比SNR,计算门限值T;根据所述信噪比SNR对解调器输出的软判决数据模式比特IM_D(n)限幅为IM_D(n)’;将待译码帧类型的识别模式IM负极性化为IM’;将限幅后的含有N个比特的IM_D(n)’的一部分或全部与该帧对应的识别模式IM’的数据的一部分或全部进行相关运算,计算出相关度R;如果相关度R大于等于门限值T,则确定解调器输出的帧类型与待译码帧具有相同的类型;否则确定解调器输出的帧类型与所用模式IM对应的帧无关。
2.根据权利要求1所述方法,其特征在于,将待译码帧类型的识别模式IM负极性化为IM’,是对组成IM的每个比特进行比特“0”变为“1”、“1”变为“-1”的转换,得到负极性识别模式IM’。
3.根据权利要求1所述方法,其特征在于,根据接收端解调器输出的信噪比SNR计算门限值T包括以下步骤1)计算SNR对应的可靠度pp=10SNR/20/172)对计算出的可靠度p进行限幅,即超过0.25时取0.25;3)根据可靠度p和IM_D(n)的位数N计算门限T=N*p*127。
4.根据权利要求1所述方法,其特征在于,根据所述信噪比SNR对解调器输出的软判决数据模式比特IM_D(n)限幅为IM_D(n)’,包括以下步骤1)设置允许幅度的最高值抖动Δ=p*128;2)如果IM_D(n)>128+Δ,调整IM_D(n)’=128+Δ;3)如果IM_D(n)<128-Δ,调整IM_D(n)’=128-Δ。
5.根据权利要求1所述方法,其特征在于,所述相关运算为乘法运算。
6.根据权利要求3所述方法,其特征在于,预先将信噪比SNR与门限值T的对应关系计算并存储在一个表内,每次通过SNR查找该表得到门限值T。
全文摘要
一种对不连续发送制式下的自适应多速率语音编码的译码方法,根据接收端解调器输出的信噪比SNR,计算门限值T并对解调器输出的软判决数据模式比特IM_D(n)限幅为IM_D(n)’;将待译码帧类型的识别模式IM负极性化为IM’;将限幅后的含有N个比特的IM_D(n)’的一部分或全部与该帧对应的模式IM’的数据的一部分或全部进行相关运算,计算出相关度R;如果R>=T,则确定解调器输出的帧类型与待译码帧相同;否则确定解调器输出的帧类型与所用模式IM对应的帧无关。利用本发明的译码方法,可以在GSM系统中,有效地从被干扰的数据中识别出连续发送制式下的自适应多速率语音编码的帧类型。
文档编号H04W28/16GK1805565SQ20051003284
公开日2006年7月19日 申请日期2005年1月14日 优先权日2005年1月14日
发明者郭东风 申请人:华为技术有限公司