专利名称::失帧的隐蔽的制作方法
技术领域:
:本发明涉及通信系统(例如无线电通信系统)中失帧的隐蔽,更具体地说,涉及改进这类系统中背景音译码过程的一种设备和方法。
背景技术:
:瑞典专利申请9300290-5和9301798-6中介绍了主要供数字蜂窝式电话系统用的改进背景音编码/译码过程的一些装置。这些装置主要为处理语音编码器与语音译码器之间的联系达到最理想的情况而设计,其意义在于,任何帧都没有一个丢失。但在例如美国数字蜂窝式通信标准IS-54中,快速相关控制信道(FACCH)是通过从业务信道(在欧洲GSM技术规范中也有类似的信道)窃取语音帧建立起来的。在这种情况下,可能需要修改上述瑞典专利申请中所述的那些方法。在分组交换网中,当分组(帧)丢失或迟到以致不能用来实时产生语音(各分组可取发射机与接收机之间的不同路由)时,也会产生上述类似情况。本发明的目的是一种将所谓失帧隐蔽原理应用到收到的信号从而使语音译码过程更能抗拒失帧的影响或对失帧不敏感的设备和方法。发明概述按照本发明,上述的是通过以帧为基本传输单元的通信系统的接收机中的一个用以隐蔽语音译码器中失帧的影响的设备实现的,该语音译码器是源滤波器式的,且由内部状态变量逐帧更新、供调节所收到的表示背景音的描述滤波器的参数的装置控制的。所述设备的特征在于,它包括下列装置(a)失帧检测装置;(b)失帧影响隐蔽装置,通过限制对至少一个所述内部状态变量的更新隐蔽失帧的影响。此外,按照本发明,上述目的还通过以帧为基本传输单元的通信系统接收机中隐蔽语音译码器中失帧影响的一种方法来实现,该语音译码器是源滤波器式的,且有一个内部状态变量逐帧更新供调节所收到的表示背景音的描述滤波器的参数的装置,所述方法的特征在于,它包括下列步骤(a)检测失帧;(b)通过限制对至少其中一个所述内部状态变量的更新隐蔽失帧的影响。瑞典专利申请9302025-3介绍了隐蔽传输误差的类似的方法。附图简介结合附图参看下面的说明可以最好地了解本发明连同其其它目的和优点。附图是无线电通信系统装有本发明的设备的接收机各部分的原理方框图。最佳实施例的详细说明为理解本发明的工作情况,简单复习一下一般数字蜂窝式无线电联系的工件情况、一般失帧隐蔽技术,并复习一下上述瑞典专利申请的一些算法,还是有好处的。在数字蜂窝式电话系统的通信链路中,声频信号首先经过数字化,然后对其运用语音编码算法(参看例如B.S.Atal、V.Cuperman和A.Gersho等人编写的“语音编码的进展”一书,Kluwer学术出版社,1991年版)。该算法将语音信号压缩并将其转换成一系列经量化的参数(通常逐帧转换)。然后用信道编码法通过加上编码冗余码加以保护得出的位(参看例如G.C.Clark和J.B.Cain写的“数字通信的纠错编码”一书,Plenum出版社,1991年版)。接着对得出的位流进行调制(参看例如J.G.Proakis写的“数字通信”一书,McGraw-Hill出版社,1989年第2版),再采用例如TDMA(时分多路存取)技术进行传输。在接收机处,信号经过解调。可能有的时间和多路径扩散可以用各种均衡法计算,例如,维特比均衡法或判定反馈均衡法(参看例如上述J.G.Proakis的参考文献)。然后用信道译码(参看例如上述G.C.Clark和J.B.Cain的参考文献)对形成语音译码器重现所传输的信号所需要的经量化的参数进行译码。从以上的论述可知,失帧会影响再现的语音信号,从而降低该信号的质量。例如,在符合IS-54标准的美国数字蜂窝式系统中,失窃的FACCH帧可能会使接收机语音译码器的语音帧丢失。语音译码器通过“充填”适当的信息解决这个问题。通常用来自上一帧的相应信息代替丢失的帧。但若译码器对背景音有所谓的反回荡作用(这下面将进一步说明),则若采用这个方法,得出的声频信号的质量可能会是不可接受的。在这个背景资料的基出上,现在参看图1说明本发明的内容。图1示出了移动无线电通信系统的接收机说明本发明时所需要知道的各部分。天线10接收传来的信号,将其传送到解调器12。解调器12对所收到的信号进行解调,然后将其传送给均衡器13(例如维特比均衡器),由均衡器13将所收到的经解调器的信号转换成一股或多股位流,传送到判定装置14。判定装置14判定所收到的帧含有来自业务信道的二进制抑或来自快速相关控制信道(FACCH)的二进制位。瑞典专利9102611-2介绍了适用的判定装置,这里把该专利也包括进来,以供参考。若所收到的帧含来自业务信道的二进制位,位流就传送到信道译码器16。信道译码器16将位流转换成语音译码用的滤波参数流和激励参数流。另一方面,若收到的帧含来自FACCH的二进制位,位流就不传送给信道译码器16。这时就通知隐蔽装置18当前的帧不含语音数据。接收机还装有语音检测器20(也叫做话音活动检测器或VAD)。英国电信PLC公司写的世界知识产权组织专利文献WO89/08910介绍了适用的语音检测器。语音检测器20根据所述滤波参数和激励参数确定所收到的帧主要含语音或背景音。语音检测器20的判定结果可能传送给可设可不设的信号鉴别器22,由该鉴别器使用某些激励参数确定所收到的表示背景音的信号是否静止。若某帧被宣判为含有静止背景音,信号鉴别器22的输出就控制参数调节器24调节所收到的滤波参数。这个调节过程瑞典专利申请9300290-5中有详细介绍,这里也把该专利申请包括进来,以供参考。此外,信号鉴别器22检测静止性的过程,以及语音检测器20、信号鉴别器22和参数调节器24三者之间的相互作用,瑞典专利申请9301789-6和9303613-5中有详细介绍。这里也把该专利申请包括进来,以供参考。可能有的经调节的滤波参数(若所收到的信号表示静止背景音)和激励参数传送到语音译码器26,由该译码器在输出线28上输出声频信号。为了说明本发明的误差隐蔽法,有必要简单说明(FACCH帧代替语音帧时产生的)失帧对上述两瑞典专利申请中的所谓反回荡算法的影响。这些影响大致可分为以下几个方面1.用来控制反回荡算法的话音活动或语音检测器20通常是自适应式的(1991年GSM06.32建议书“语音活动检测”;英国电信PLC公司写的WO89/08910专利文献)。这意味着存在着在话音活动检测器中采用经测定的语音信号或在如这里的作法那样应用在接收机中时采用来自信道译码器经译码的参数自动内部更新的阈值或相应状态。有失帧发生时,所需用的参数就得在接收机中产生。处理这种情况的一个方法是采用与前一帧相同的参数,但这会产生未经妥善更新的阈值或内部状态变量,从而引起判定错误。可能的后果是再现的声频信号质量下降了。2.话音活动或语音检测器20是采用进来的滤波和激励参数而且还采用经内部更新的状态(即旧的进来的参数)另外还采用先验信息作出其对语音/背景音的判定的。因此,失帧就会在接收机中即刻产生错误的判定,从而降低再现声频信号的质量。此外,由于当前的判定也依赖于旧的进来的参数,因而失帧也可能会影响未来的判定。3.信号鉴别器22(这可以是本发明最佳实施例中系统的一部分)探测进来的统计动差,最好是表示各帧平均信号能量的能量值。这里需要储存大量的这些能量,供一个或若干缓冲器中的现行帧和旧帧用(详细情况上述瑞典专利申请9301798-6中有介绍)。若这些进来的能量中有误差,这些误差也会存入各缓冲器中,从而使错误判定持续很长的一段时间。其后果可能是再现背景音信号质量下降。4.因出现失帧而作出错误的判断时,背景音信号静止的情况下为反回荡而采取的行动在几个方面受损。错检静止背景音并开始采取反回荡措施时产生的一个影响是语音遭破坏。此外还可能产生相反的误判断(当真正有静止背景音出现时为语音),从而使背景音的特性瞬时变化,这使人感到有点困扰。反复在表明语音/静止背景音的判断之间转换,也是我们不希望有的,因为时间常数在两状态之间的转变过程中都在起作用。万一出现过度的上述转换情况,这会令人感到非常困扰。5.参数调节器24中实际的反回荡作用(主要是频谱低通滤波再加上带宽扩展,如上述瑞典专利申请93002290-5中所详述的那样)因失帧而受损。由于语音或话音活动检测器20或信号鉴别器22作出错误判断,产生了一个影响。在这些情况下,可以开始或停止更新低通滤波器,从而比无任何帧丢失的情况下多个一个偏差。另一个影响是因失帧影响着馈送给低通滤波器的频谱信息和带宽扩展引起的。这两个影响都会使质量下降。6.语音译码器26的后置滤波器(每当采用时)具有与上述第5项所述同样的问题。此外,所谓频谱波动也可以觉察出来是非常敏感的,由于它可用反回荡算法加以控制,因而失败会使再现语音信号的质量大幅度下降。7.上述诸影响可能共同起作用,而且彼此相互影响。举例说,语音检测器20中的错误判断可能会阻止对信号鉴别器22的各缓冲器更新的过程。这依次又会影响信号鉴别器22很长一段时间,从而降低反回荡作用的质量。从上面的讨论可知,失帧会导致对语音检测器20、信号鉴别器22、或参数调节器24的内部变量的分别更新或同时更新出错。按照本发明,这些问题是通过修正检测出失帧时的更新过程减少或解决掉的。现在详细说明这个经修改的更新过程。检测出失帧时,隐蔽装置18就会控制语音检测器20、信号鉴别器22和参数调节器24中相应内部状态变量更新处理的操作过程,分别如图中控制线30、32和34所示。这些修正包括-检测出失帧时,停止更新语音检测器20的内部状态变量(例如阈值)。这意味着语音检测器20的内部变量被锁定在与上一帧相同的值上,或者限制了对这些状态变量的更新(只能以比平时更少的量更新状态变量)。-另一项措施是检测失帧时将对语音检测器20中的判定锁定在根据上一帧作出的判定上。-若已检测出失帧,则可以停止或限制对信号鉴别器22中各缓冲器的更新过程。-另一个可能的作法是将对信号鉴别器22的判定锁定在对上一帧的判定上。-若已检测出失帧,则可以停止或限制对控制着低通滤波和/或带宽扩展的参数调节器24的内部滤波系数的更新过程。-可能有的后置滤波器的频谱波动可以锁定到上一帧的波动。鉴于不同参数影响着图中不同的方框(语音检测器20、信号鉴别器22、参数调节器和可能有的后置滤波器),因而不言而喻发生失帧时可以采取其中一个或若干个这些措施。从上述讨论可以理解到,若失帧持续若干连续帧的时间,则可以将接收机的内部状态变量锁定到(或基本上锁定到)相应于最后收到的帧的值上。上面是就各帧有时从业务信道“窃取”用作其它用途的以帧为基本传输单元的无线电通信系统来说明本发明的内容。但同样的原理也可应用到帧因其它原因而丢失的情况,例如,在分组交换网中,各分组(这可以视为整个帧或帧的各部分)采用从发射机至接收机的不同路由且可能会因在转移的过程中分组迟到或真实丢失而“丢失”的情况。本说明书所附附录中的两个PASCAL程序模块详细说明了本发明方法的一个最佳实施例。本
技术领域:
的行家们都知道,在不脱离本发明在本说明书所附的权利要求书中所述的精神实质和范围的前提下,是可以对本发明进行种种修改和更改的。附录[INHERIT('spd$def')]MODULEvad_dtx_rx(input,output);CONSTnr_sub_blocks=4;nr_acf_lags_in=10;nr_acf_lags_used=8;burstconst=3;hangconst=5;frames_av0=4;VARadaptcount:[STATIC]INTEGER;{Forthreshold}thvad:[STATIC]DOUBLE;{Forthreshold}rvad:[STATIC]ARRAYOFREAL;burstcount:[STATIC]INTEGER;{Foroverhang}hangcount:[STATIC]INTEGER;{Foroverhang}n:[STATIC]ARRAY[-1..nr_sub_blocks-1]OFINTEGER;last_dm:[STATIC]REAL;{ForVAD}old_lag_count:[STATIC]INTEGER;very_old_lag_count:[STATIC]INTEGER;thresh:[STATIC]REAL;lthresh:[STATIC]INTEGER;nthresh:[STATIC]INTEGER;acf_old,av0:[STATIC]ARRAY[-frames_av0..0,0..nr_acf_lags_used]OFREAL;aav1,rav1,av1:[STATIC]ARRAYOFREAL;elapsed_frames:[STATIC]INTEGER;sp_hangover:[STATIC]INTEGER;speech_dtx:[STATIC]BOOLEAN;sp_old:[STATIC]BOOLEAN;PROCEDUREschur_pas(acf:ARRAY[A1..A2:INTEGER]OFREAL;VARrc:ARRAY[B1..B2:INTEGER]OFREAL;mdim:INTEGER);EXTERNAL;PROCEDUREstepup_pas(rc:ARRAY[A1..A2:INTEGER]OFREAL;VARa:ARRAY[B1..B2:INTEGER]OFREAL;mdim:INTEGER);EXTERNAL;PROCEDUREFlstat_det_rx(pow:REAL;sp_1:BOOLEAN;VARsp:BOOLEAN);EXTERNAL;PROCEDUREFlstat_det_rx_init;EXTERNAL;PROCEDUREFLvad_init;{MUSTbecalledfromstart}VARi,j:INTEGER;BEGIN{threshold}adaptcount:=0;thvad:=1000000;rvad:=6;rvad[1]:=-4;rvad[2]:=1;FORi:=3TOnr_acf_lags_usedDOBEGINrvad[i]:=0;END;{endthreshold}{vad}old_lag_count:=0;very_old_lag_count:=0;n[3]:=19;hangcount:=-1;burstcount:=0;last_dm:=0;thresh:=0.05;lthresh:=2;nthresh:=4;FORi:=-frames_av0TO-1DOBEGINFORj:=0TOnr_acf_lags_usedDOBEGINacf_old[i,j]:=0;av0[i,j]:=0;END;END;{endvad}elapsed_frames:=24;sp_hangover:=0;speech_dtx:=TRUE;sp_old:=TRUE;Flstat_det_rx_init;END;{init_vad_dtx}PROCEDUREvad_thresh(acf0:REAL;{Input}rav1:ARRAY[A1..A2:INTEGER]OFREAL;{Input}stat:BOOLEAN;{Input}ptch:BOOLEAN;{Input}pvad:DOUBLE{Output});{Commonvariablesused:(alloutput)adaptcountinitiallysetto0thvadinitiallysetto1000000rvadinitiallysettorvad:6rvad[1]:-4rvad[2]:1rvad[3-8]:0}CONSTpth=300000;plev=800000;fac=3;adp=8;inc=16;dec=32;margin=80000000;VARi:INTEGER;BEGINIFacf0<pthTHENBEGINthvad:=plev;ENDELSEBEGINIFNOT(statANDNOTptch)THENBEGINadaptcount:=0;ENDELSEBEGINadaptcount:=adaptcount+1;IFadaptcount>adpTHENBEGINthvad:=thvad-thvad/dec;IFthvad<pvad*facTHENBEGINthvad:=MIN(thvad+thvad/inc,pvad*fac);END;IFthvad>pvad+marginTHENBEGINthvad:=pvad+margin;END;FORi:=0TOnr_acf_lags_usedDOBEGINrvad[i]:=ravl[i];END;adaptcount:=adp+1;END;END;END;END;{Procedure}PROCEDUREFLvad_rx_1(acf_in:realACFType;{Input}ltp_lags:integersubframeltptype;{Input}VARvad:BOOLEAN);{Output}{Commonvariablesused:n[-1..3]:ltp_lagsInput/Outputoldlagcount:Input/Outputveryoldlagcount:Input/Outputthvad:threshold}VARptch,vvad,stat:BOOLEAN;lag_count,smallag,i,j,k:INTEGER;acf0,dm,difference:REAL;pvad:DOUBLE;rc:ARRAY[1..nr_acf_lags_used]OFREAL;BEGINn[-1]:=n[3];FORi:=0TO3DOBEGINn[i]:=ltp_lags[i];END;FORi:=-frames_av0TO-1DOBEGINFORk:=0TOnr_acf_lags_usedDOBEGINacf_old[i,k]:=acf_old[i+1,k];av0[i,k]:=av0[i+1,k];END;END;FORk:=0TOnr_acf_lags_usedDOBEGINacf_old:=acf_in[k];END;{Adaptivefilteringandenergycomputation.}pvad:=rvad*acf_old;FORk:=1TOnr_acf_lags_usedDOBEGINpvad:=pvad+2.0*rvad[k]*acf_old;END;{ACFaveraging}FORk:=0TOnr_acf_lags_usedDOBEGINav0:=0;FORj:=0TOframes_av0-1DOBEGINav0:=av0+acf_old[-j,k];END;av1[k]:=av0[-frames_av0,k];END;{Solvetheequationssystem}schur_pas(av1,rc,nr_acf_lags_used);stepup_pas(rc,aav1,nr_acf_lags_used);FORi:=0TOnr_acf_lags_usedDOBEGINravl[i]:=0;FORk:=0TOnr_acf_lags_used-iDOBEGINrav1[i]:=rav1[i]+aav1[k]*aav1[k+i];END;END;IFav0<=0THENBEGINdm:=0;ENDELSEBEGINdm:=ravl*av0;FORi:=1TOnr_acf_lags_usedDOBEGINdm:=dm+2*rav1[i]*av0;END;dm:=dm/av0;END;difference:=dm-last_dm;stat:=ABS(difference)<thresh;last_dm:=dm;ptch:=((old_lag_count+very_old_lag_count)>=nthresh);acf0:=acf_in;vad_thresh(acf0,rav1,stat,ptch,pvad);vvad:=(pvad>thvad);IFvvadTHENBEGINburstcount:=burstcount+1;ENDELSEBEGINburstcount:=0;END;IFburstcount>=burstconstTHENBEGINhangcount:=hangconst;burstcount:=burstconst;END;vad:=vvadOR(hangcount>=0);IFhangcount>=0THENBEGINhangcount:=hangcount-1;END;lag_count:=0;FORj:=0TO3DOBEGINIFn[j]>19THENBEGINsmallag:=MAX(n[j],n[j-1])MODMIN(n[j],n[j-1]);lthreshTHENBEGINlag_count:=lag_count+1;END;END;END;very_old_lag_count:=old_lag_count;old_lag_count:=lag_count;END;PROCEDUREFLdtx_hand_rx_1(vad:BOOLEAN;{Input}VARsp:BOOLEAN);{Output}BEGINIFelapsed_frames<24THENBEGINelapsed_frames:=elapsed_frames+1;END;IFspeech_dtxTHENBEGINIFvadTHENBEGINsp:=TRUE;ENDELSEBEGINsp_hangover:=1;IFelapsed_frames=23THENBEGINelapsed_frames:=22;END;sp:=(elapsed_frames>23);speech_dtx:=FALSE;END;ENDELSEBEGINIFvadTHENBEGINsp:=TRUE;speech_dtx:=TRUE;ENDELSEBEGINIFsp_hangover<5THENBEGINsp_hangover:=sp_hangover+1;IFelapsed_frames=23THENBEGINelapsed_frames:=22;END;END;IFsp_hangover>4THENBEGINelapsed_frames:=0;sp:=FALSE;ENDELSEBEGINsp:=(elapsed_frames>23);END;END;END;END;PROCEDUREFLvad_rx(acf_in:realACFType;{Input}ltp_lags:integersubframeltptype;{Input}FllostFrame:BOOLEAN;{Input}VARsp:BOOLEAN);{Output}VARvad:BOOLEAN;spl:BOOLEAN;BEGINIFNOTFllostFrameTHENBEGINFLvad_rx_1(acf_in,ltp_lags,vad);FLdtx_hand_rx_1(vad,sp1);FLstat_det_rx(acf_in,spl,sp);IFNOTuse_stat_detTHENBEGINsp:=sp1;END;sp_old:=sp;ENDELSEBEGINsp:=sp_old;END;END;END.MODULEas_actions_rx(input,output);{"Global"(forthemodule)variables}VARFLfilter_filter_state:[STATIC]realArray10Type;FLfilter_filter_coeff:[STATIC]REAL;FLfilter_filter_gain:[STATIC]REAL;FLfilter_post_state:[STATIC]realArray10Type;FLfilter_post_coeff:[STATIC]REAL;FLfilter_post_gain:[STATIC]REAL;FLfilter_my_state:[STATIC]REAL;FLfilter_my_coeff:[STATIC]REAL;FLfilter_my_gain:[STATIC]REAL;FLexpand_factor:[STATIC]REAL;first_sp:[STATIC]BOOLEAN;{Externalroutines}PROCEDUREstepdn_unstable_special_pas(a:realArray10Type;{Input}VARrc:RealArray10Type;{Output}VARunstable:BOOLEAN);{Output}EXTERNAL;PROCEDUREstepdn_special_pas(a:realArray10Type;{Input}VARrc:RealArray10Type);{Output}EXTERNAL;PROCEDUREFLpostCoeffCalculation(ZFLacfW:realACFType;VARZFLetaCurr:realArray10Type);EXTERNAL;PROCEDUREFLcalculateACF(FLalphaCurr:realArray10Type;VARFLacfW:realACFType);EXTERNAL;PROCEDUREFLcalculateautocorrfunction(FLalphaCurr:realArray10Type;VARFLacfW:realACFType);EXTERNAL;PROCEDUREFLas_actions_rx_init;{MUSTbecalledfirsttoinitilize}{somethings.}VARm:INTEGER;{NOTEFLbw_expistransferredasCOMMON}BEGINFORm:=1TOnrCoeffDOBEGINFLfilter_filter_state[m]:=0;FLfilter_post_state[m]:=0;END;FLfilter_my_state:=0;first_sp:=TRUE;{ThefollowingcouldbeplacedinROM}FLfilter_filter_coeff:=EXP(-1.0/(4.0*50.0));FLfilter_my_coeff:=EXP(-1.0/(0.25*50.0));FLfilter_post_coeff:=FLfilter_my_coeff;FLfilter_filter_gain:=1-FLfilter_filter_coeff;FLfilter_post_gain:=1-FLfilter_post_coeff;FLfilter_my_gain:=1-FLfilter_my_coeff;IFFLbw_exp>=0THENBEGINFLexpand_factor:=EXP(-FLpi*FLbw_exp/8000.0);ENDELSEBEGINFLexpand_factor:=1;END;{FLexpand_factor:=EXP(-FLpi*100.0/8000.0);}{FLexpand_factor:=EXP(-FLpi*400.0/8000.0);}{###}{###}WRITELN('FLfilter_filter_coeff:',FLfilter_filter_coeff);WRITELN('FLfilter_filter_gain:',FLfilter_filter_gain);WRITELN('FLfilter_my_coeff:',FLfilter_my_coeff);WRITELN('FLfilter_my_gain:',FLfilter_my_gain);WRITELN('FLfilter_post_coeff:',FLfilter_post_coeff);WRITELN('FLfilter_post_gain:',FLfilter_post_gain);WRITELN('FLbw_exp:',FLbw_exp);WRITELN('FLexpand_factor:',FLexpand_factor);WRITELN('FLv_post:',FLv_post);{###}END;PROCEDUREFLas_actions_rx(sp:BOOLEAN;{In}FLa_in:realArray10Type;{In}FLrc_in:realArray10Type;{In}FllostFrame:BOOLEAN;{In}VARFLa_pres:realArray10Type;{Out}VARFLrc_pres:realArray10Type;{Out}VARFLa_post_pres:realArray10Type;{Out}VARFLetacurr:realArray10Type;{In/Out}VARFLmy_use:REAL);{Out}VARm:INTEGER;FLdum:REAL;FLRC_temp:realArray10Type;unstable:BOOLEAN;FLacfw:realACFType;i_ab:INTEGER;{###}eta_temp:realArray10Type;{###}BEGINFORm:=1TOnrCoeffDOBEGINFLa_post_pres[m]:=FLa_in[m]*FLnyweight[m];END;IFspTHENBEGIN{FLfilter_my_state:=FLfilter_my_coeff*FLfilter_my_state+FLfilter_my_gain*FLmy;}{###}FLmy_use:=FLmy;FORm:=1TOnrCoeffDOBEGINFLa_pres[m]:=FLa_in[m];FLrc_pres[m]:=FLrc_in[m];END;IFfirst_spTHENBEGINFLdum:=FLexpand_factor;FORm:=1TOnrCoeffDOBEGINFLfilter_filter_state[m]:=FLa_in[m]*FLdum;FLfilter_post_state[m]:=FLa_post_pres[m]*FLdum;FLdum:=FLdum*Flexpand_factor;END;END;ENDELSEBEGINIFNOTFllostFrameTHENBEGINFLfilter_my_state:=FLfilter_my_coeff*FLfilter_my_state+FLfilter_my_gain*FLmy_off;END;FLmy_use:=FLfilter_my_state;FLdum:=FLexpand_factor;FORm:=1TOnrCoeffDOBEGINIFNOTFllostFrameTHENBEGINFLfilter_filter_state[m]:=FLfilter_filter_state[m]*FLfilter_filter_coeff+FLfilter_filter_gain*FLa_in[m]*FLdum;FLfilter_post_state[m]:=FLfilter_post_state[m]*FLfilter_post_coeff+FLfilter_post_gain*FLa_post_pres[m]*FLdum;END;FLa_pres[m]:=FLfilter_filter_state[m];FLa_post_pres[m]:=FLfilter_post_state[m];FLdum:=FLdum*FLexpand_factor;END;{Checkforstability}stepdn_unstable_special_pas(FLa_pres,{In}FLRC_pres,{Out}unstable);{Out}IFunstableTHENBEGINWRITELN('Unstablea-parameter(as_actions_rx)');FORm:=1tonrCoeffDOBEGINFLa_pres[m]:=FLa_in[m];FLrc_pres[m]:=FLrc_in[m];END;END;stepdn_unstable_special_pas(FLa_post_pres,{In}FLRC_temp,{Out}unstable);{Out}IFunstableTHENBEGINWRITELN('Unstablepost_filter(as_actions_rx)');FLdum:=FLexpand_factor;FORm:=1TOnrCoeffDOBEGINFLa_post_pres[m]:=FLa_in[m]*FLnyweight[m]*Fldum;FLdum:=FLdum*FLexpand_factor;END;END;FLcalculateACF(FLa_post_pres,FLACFw);{Flcalculateautocorrfunction(FLa_pres,FLACFw);}FLpostCoeffCalculation(FLACFw,FLetaCurr);END;first_sp:=(spANDfirst_sp);END;END.权利要求1.以帧为基本传输单元的通信系统的接收机中用以隐蔽语音译码器(24)中的失帧影响的一种设备,所述语音译码器是源滤波器式的,且由内部状态变量逐帧更新供调节所收到的描述滤波器表示背景音的各参数的装置(20,22,24)控制,所述设备的特征在于,它包括下列装置(a)失帧检测装置(14);(b)失帧检测隐蔽装置(18),用以通过限制对至少其中一个所述内部状态变量的更新隐蔽失帧的影响。2.如权利要求1所述的设备,其特征在于,所述滤波参数调节装置包括一个具有至少一个供判断语音/背景音的阈值的话音活动检测器(20),所述陷蔽装置(18)在失帧情况下限制对所述阈值的更新。3.如权利要求1所述的设备,其特征在于,所述滤波参数调节装置包括一个用以逐帧判定语音/背景音的活动检测器(20),所述隐蔽装置(18)在失帧情况下阻止更新根据上一帧获得的对语音/背景音的判断结果。4.如权利要求2或3所述的设备,其特征在于,所述滤波参数调节装置还包括一个与所述话音活动检测器(20)的输出端相连接用以鉴别静止与非静止背景音的静止性检测器(22),所述静止性检测器包括至少一个存储背景音占优势的供判断静止性的、最新各帧统计动差估算值的缓冲器,所述隐蔽装置在失帧情况下限制对所述缓冲器的更新。5.如权利要求2或3所述的设备,其特征在于,所述滤波参数调节装置还包括一个与所述话音活动检测器(20)的输出端相连接用以鉴别静止和非静止背景音的静止性检测器(22),所述隐蔽装置(18)在失帧的情况下阻止更新根据上一帧获得的对静止/非静止的判断结果。6.如权利要求2、3、4或5所述的设备,其特征在于,所述滤波参数调节装置包括用以对描述滤波器的参数进行低通滤波的装置(24),所述隐蔽装置(18)在失帧情况下限制对低通滤波过程各滤波系数的更新。7.如权利要求2、3、4、5或6所述的设备,其特征在于,所述滤波参数调节装置包括用以扩展所述描述滤波器参数所代表的滤波器的带宽的装置(24),所述隐蔽装置(18)在失帧情况下限制对滤波系数的更新。8.如权利要求6或7所述的设备,其特征在于用以调节经译码信号频谱波动的后置滤波器,所述隐蔽装置(18)在失帧的情况下限制对波动信息的更新。9.以帧为基本传输单元的无线电通信系统的接收机中供隐蔽语音译码器中失帧的影响的一种方法,所述语音译码器是源滤波器式的,且包括一个内部状态变量逐帧更新供调节所收到的表示背景音的描述滤波器的各参数的装置,所述方法的其特征在于,它包括下列步骤(a)检测失帧;(b)通过限制对至少其中一个所述内部状态变量的更新隐蔽失帧的影响。10.如权利要求9所述的方法,所述滤波参数调节装置包括一个具有至少一个供判定语音/背景音的阈值的话音活动检测器(20),其特征在于,所述隐蔽步骤包括在失帧情况下限制对所述阈值的更新。11.如权利要求9所述的方法,所述滤波参数调节装置包括一个用以逐帧判断语音/背景音的话音活动检测器(20),其特征在于,所述隐蔽步骤包括在失帧情况下阻止对根据上一帧得出的语音/背景音判断结果进行更新。12.如权利要求10或11所述的方法,所述滤波参数调节装置还包括与所述话音活动检测器(20)的输出端相连接用以鉴别静止与非静止背景音的静止性检测器(22),所述静止性检测器包括至少一个存储着背景占优势的最新帧供判断静止性的统计动差的估算值的缓冲器,其特征在于,所述隐蔽步骤包括在失帧情况下限制对所述缓冲器进行更新的过程。13.如权利要求10或11所述的方法,所述滤波参数调节装置还包括与所述话音活动检测器(20)的输出端相连接用以鉴别静止与非静止背景音的静止性检测器(22),其特征在于,所述隐蔽步骤包括在失帧情况下阻止对根据上一帧获得的静止性/非静止性判断结果进行更新的过程。14.如权利要求10、11、12或13所述的方法,所述滤波参数调节装置包括用以对各滤波参数进行低通滤波的装置(24),其特征在于,在失帧情况下限制对低通滤波过程各滤波系数更新的过程。15.如权利要求10、11、12、13或14所述的方法,所述滤波参数调节装置包括一个用以扩展这些参数所代表的滤波器的带宽的装置(24),其特征在于,在失帧情况下限制对滤波系数更新的过程。16.如权利要求14和15所述的方法,其中经译码信号频谱的波动由一个后置滤波器加以调节,其特征在于,在失帧情况下限制对波动信息更新的过程。全文摘要以帧为基本传输单元的无线电通信系统的一种接收机,有一个源滤波器式的语音译码器由装置(20,22,24)控制,装置(20,22,24)的内部状态变量逐帧更新,该装置用以调节所收到的表示传输在通信信道上的背景音、描述滤波器的参数。所述接收机有一个失帧检测装置(14)和一个失帧影响隐蔽装置(18),后者用以通过限制对至少其中一个内部状态变量的更新隐蔽失帧的影响。文档编号G10L25/78GK1110884SQ9419036公开日1995年10月25日申请日期1994年6月2日优先权日1993年6月11日发明者W·K·托比约恩,B·R·安德斯申请人:艾利森电话股份有限公司