一种回声延时定位的实现方法

文档序号:2829352阅读:377来源:国知局
专利名称:一种回声延时定位的实现方法
技术领域
本发明涉及通信领域的移动通信基站系统,特别是涉及一种基于话音业务的较长回声延时下的回声定位实现方法。
背景技术
在现行的移动通信基站系统中,对于移动台和固定电话之间通话,在固定电话侧由于4/2线转换产生的回声消除的基本处理能力都是在64ms的回声延时范围内。由于通信系统变得越来越复杂,从传统的电路数据交换到IP软交换,回声延时会变得来越来越长,最低要求也需要有128ms的处理能力。在传统方法中通过加大缓冲区中的长度让回声抵消算法在收敛的过程中自动实现延时定位和回声抵消已不是理想之选。因为在回声延时成倍增加的同时,收敛算法中需要的乘累加个数会平方倍的增加。在现有的硬件处理能力下要保证同样通道数的回声处理能力是不大可能的。如果进行系统DSP(数字信号处理)芯片的升级势必会加大系统设备的成本。
图1和图2为产生回声的原理示意图,其中图1中的Rin端输入的是原始语音信号,先在电学回声抵消中进行存贮作为参考信号,通过传输在2/4线转换器中产生回声结合固定电话侧的话音形成电学回声抵消中需要进一步处理的信号Sin。通过回声抵消算法和参考信号Rin,模仿出近端产生的回声。把混有回声的信号减去估计的回声值输出Sout。如果在没有近端说话的情况下,这个Sout的值越小,则说明抵消的效果越好。其中图1为发送原始信号的示意图,图2为图1所发送的响应信号示意图。对于图1中的Rin信号,如果在2/4线端没有人说话,则会在Sin中产生如图2所示的响应,其中Tr是纯延时部分,Tp是净回声部分。从中可以看出,净回声部分同延时部分相比是占比较小的部分,现有的回声抵消算法一般都是从Tp+Tr的整段作为算法的输入矢量让自适应滤波器进行收敛得到最佳的冲激函数,如果回声延时较长,则需要自适应滤波器的系数越大,计算量则会几何平方倍的增加。如果能够事先找到回声部分,然后将净回声消除器的窗函数直接加在Tp部分,则将会极大的降低计算量,自适应滤波器系数也就不需要随着回声延时的加长而增多。为了降低资源占用率和降低成本,需要对回声抵消算法预先进行延时估计。

发明内容
本发明所要解决的技术问题是提供一种回声延时定位的实现方法及装置,解决现有技术在回声延时较长时,自适应滤波器系数增多,计算量会几何平方倍的增加产生的资源占用的技术问题。
为达到上述目的,本发明提供了一种回声延时定位的实现方法,其特点在于,对来自通信系统远端和近端的输入信号进行低通滤波和降采样处理,对降采样处理后的输入信号进行互相关计算,取得两个最大互相关能量值及相应位置,从而降低估计回声延时的计算量。
上述的方法,其特点在于,具体包括如下步骤步骤一,对远端和近端的输入信号分别进行低通滤波;步骤二,进行对远端语音信号的话音激活判决;步骤三,对当前的远端和近端的输入信号分别进行降采样处理;步骤四,进行基于降采样处理后的远端和近端输入信号的互相关计算;步骤五,计算互相关的能量值,以1ms为一个能量值计算单位,取互相关值的平方和;步骤六,搜索最大两个互相关能量值及相应位置;步骤七,进行近端的“双向通话”检测,根据近端输入信号判决是否近端说话,是则提前结束当前搜索,更新输入信号进行下一次搜索,否则进入下一步骤;步骤八,进行回声延时精度调整,设定多个判决门限决定是否需要再次搜索。
上述的方法,其特点在于,所述步骤七进一步包括针对临时检测出来的回声时延对应的近端输入信号的能量,与远端输入信号的能量进行比较,如果比较的差值达不到一定的损失范围则判决为“双向通话”状态,需要更新输入重新搜索并再次判决,如果差值超过所述损失范围则判决为“单向通话”状态,进入下一步骤。
上述的方法,其特点在于,所述损失范围为3dB。
上述的方法,其特点在于,所述步骤八进一步包括,针对当前搜索为第一次搜索、第二次搜索或第三次搜索,来进行所述精度调整。
上述的方法,其特点在于,在当前搜索为第一次搜索的条件下,所述步骤八进一步包括如下步骤步骤A1,取得第一次搜索的两个最大能量值M11和M12,并提供两个判决因子F1和F2;步骤A2,判断M11是否大于F1与M12的乘积,是则执行步骤A3,否则执行步骤A4;步骤A3,M11对应的位置D1即为回声延时,输出D1,结束;步骤A4,如果M11大于F2与M12的乘积,记录所述位置D1用以同下一次搜索的结果进行比较。
上述的方法,其特点在于,在当前搜索为第二次搜索的条件下,所述步骤八还包括如下步骤步骤B1,取得第二次搜索的两个最大能量值M21和M22,并提供两个判决因子F1和F2;步骤B2,判断M21是否大于F1与M22的乘积,是则执行步骤B3,否则执行步骤B4;步骤B3,M21对应的位置D2即为回声延时,输出位置D2,结束;步骤B4,如果M21大于F2与M22的乘积,并且位置D1与位置D2的差值小于设定值,则执行步骤B5,否则执行步骤B6;步骤B5,将D1与D2的平均值作为回声延时输出,结束;步骤B6,记录所述位置D2用以同下一次搜索的结果进行比较。
上述的方法,其特点在于,在当前搜索为第三次搜索的条件下,所述步骤八还包括如下步骤步骤C1,取得第三次搜索的两个最大能量值M31和M32,并提供两个判决因子F1和F2;步骤C2,判断M31是否大于F1与M32的乘积,是则执行步骤C3,否则执行步骤C4;
步骤C3,M31对应的位置D3即为回声延时,输出位置D3,结束;步骤C4,如果M31大于F2与M32的乘积,并且D1与D3的差值小于设定值,则执行步骤C5,否则执行步骤C6;步骤C5,将D1与D3的平均值作为回声延时输出,结束;步骤C6,如果M31大于F2与M32的乘积,并且D2与D3的差值小于设定值,则执行步骤C7,否则执行步骤C8;步骤C7,将D2与D3的平均值作为回声延时输出,结束;步骤C8,取D1、D2、D3中最相近的两个值,将所述两个值的平均值作为回声延时输出,结束。
本发明的技术效果在于采用本发明所述的系统及其实现方法,与现有技术相比,极大的降低计算量,应用于回声抵消器中,自适应滤波器系数不需要随着回声延时的加长而增多。在降低资源占用率和降低成本的情况下能够确保准确估计回声延时。通过灵活配置参数,可以扩大延时估计长度,极大地促进了回声抵消器的应用范围。


图1是产生电学回声及抵消原理框图;图2是回声效果示意图;图3是回声延时搜索框图;图4是DOUBLETALK检测流程;图5是回声延时第一次搜索流程;图6是回声延时第二次搜索流程;图7是回声延时第三次搜索流程。
具体实施例方式
下面举实施例结合附图对本发明的目的、技术方案和优点做进一步详细的说明。
本发明提供一种快速灵活的回声延时定位方法来找到回声的有效部分,降低自适应滤波器的计算量,加快收敛速度提高效率,节省系统的成本。本发明提供的任意长回声延时估计方法,包括以下步骤1)对远端Rin和近端Sin的的输入信号分别进行低通滤波;2)对远端Rin语音信号的话音激活判决;3)对当前远端Rin和近端Sin的的输入信号分别进行降采样处理;4)基于降采样处理后的远端Rin和近端Sin输入信号的互相关计算;5)计算互相关的能量值,以1ms为一个能量值计算单位,取互相关值的平方和;6)搜索最大两个互相关能量值及其相应位置;7)近端的DOUBLETALK(双向通话)检测,判决近端Sin输入信号,如果近端说话则提前结束当前搜索,更新输入信号进行下一次搜索,否则进入下一步骤;8)回声延时精度调整,设定多个判决门限决定是否需要再次搜索;其中,步骤7)中的DOUBLETALK检测特别用来针对临时检测出来的回声时延对应的近端输入信号的能量计算,并与远端输入信号进行对比,达不到一定的损失范围判决为DOUBLETALK状态,需要更新输入重新搜索并再次判决。
步骤8)中包含了回声延时精度的判决,并考察是否需要再次更新远近端的输入重新搜索来达到精度要求。
由上述方案可以看出,本发明的有效性和实用性关键在于通过低通滤波器和降采样处理降低计算量,并通过特定位置的DOUBLETALK检测和回声延时精度的修正确保了回声延时的可靠性和鲁棒性。
图3显示了本发明回声延时定位的原理框图,基本原理概括为以下的步骤远近端输入低通滤波单元301,首先对输入的远端和近端信号进行低通滤波处理,滤波范围在[20,1000]Hz之间,滤波器取4阶巴特沃兹滤波器。
超过门限的短时远端信号搜索单元302,对滤波后的两种信号存放在缓冲区里等待进一步分析。进行回声定位的首要条件是要保证待分析的远端信号要达到一定的能量门限范围。本算法的最低门限为-35dBmO,即levrin(n)=levrin(n-1)*0.992+rin(n)*0.008一旦远端信号达到该能量门限则开始把当前和以后的一段信号放置到远端输入缓冲区,存储信号的长度可以根据回声延时定位范围来确定。本实施例基于128ms延时定位,所以取跨度为128*9。另外如果在开始存取码流的第一个16ms范围内不能保证全部采样点达到门限则需要重新开始,即保证缓冲区的初始16ms必须有足够的能量值,否则会影响到以后的搜索精度。另外收集的信号应同时包括远端输入和近端输入的信号。
由于语音编解码的处理单位为20ms,所以每一次数据存储最多160个采样点。接下来的每一帧信号都被存放在远端输入缓冲区和近端输入缓冲区中。一旦存满128*9个采样,则开始进行互相关计算处理。在处理以前记下当前160个采样值已经被读取的个数。
降采样单元303和互相关计算单元304。互相关计算的出发点是让远端输入缓冲区中的第一个128个采样点即16ms的数据和近端输入缓冲区的128*9个点进行互相关计算。但由于互相关计算的计算量较大,本算法采用了1/4的降采样处理方法,保证了较小计算量和可靠性。必须注意到降采样处理的2个前提是a.语音信号的频谱能量虽然比较宽,但是实际能量主要集中在1000Hz以下;b.降采样处理以前必须经过低通滤波处理。每次互相关计算由原来的128次乘累加降为32次乘累加。其中1个ms的采样数据经降采样之后实际只利用了2个采样点。基于降采样后的32个点,对每个采样点求取一次互相关值,并对这两个互相关值求取平方和得到一组互相关能量。
基于两个互相关值的平方和计算128个值单元305,由于定位的精度只要控制在1ms范围内就行,所以总的互相关能量值的个数可以控制在128个范围内。也就是说搜索一次回声延迟总的的乘累加次数只需128*32*2次,原先的计算量则需要1024*128,两者是16倍的关系。所有的互相关能量值放在互相关能量数组中。
为了提高精度,对计算出来的互相关能量数组进行分析,如果存在连续8个相同的互相关值则取消本次放在近端输入缓冲区中的延时搜索,等待更新近端输入缓冲区里面的数据之后再进行重新搜索。
最大两个能量值的位置搜索单元306,满足上述条件之后则开始搜索能量值最大的互相关值和能量次之的互相关值,记录最大的互相关值位置为D1。
DOUBLETALK检测单元307,找到两个最大的互相关值之后,则可以进行双人同时说话DOUBLETALK的判断,具体判决见图4。
延时精度判决单元308。为了提高延时定位精度,对当前搜索到的回声延时值进行精度判决,符合条件的输出回声延时值,否则重新搜索。具体条件判决见图5、图6和图7。
图4为本发明用于进行DOUBLETALK的检测原理。包含远端能量获取单元401,最大相关值延时对应的近端能量获取单元402及远端能量门限判决单元403。
判决DOUBLETALK的出发点是在进行回声延时定位的时候如果有近端也在同时说话,这是势必会影响回声定位的精度。为了避免这种状态发生,需要有检测DOUBLETALK的机制,如果检测出DOUBLETALK,则立即中止当前的搜索,重新更新数据。
DOUBLETALK检测的机理是在检测出最大互相关位置的基础上对当前的远端16ms的信号和最大互相关值对应位置的16ms范围的信号能量值进行比较。如果远端16ms信号的能量值两倍于近端的信号能量值,即检测2/4线转换后的回声损耗有3dB,则判断为SINGLETALK;否则判断为当前产生回声的瞬间有近端说话人说话DOUBLETALK。这里必须注意的是计算近端能量的位置必须基于前面搜索出最大互相关值所对应的延时为基准,而不是在搜索延时前进行DOUBLETALK的检测。
如果DOUBLETALK状态判断方法是在每次做互相关计算之前16ms的远端语音和近端语音的8个16ms语音能量比较,计算回声是否足够小。尽管当前没有DOUBLETALK,如果8个16ms的时间段有可能会有不同的远端回声,出现当前的16ms远端能量比8个16ms近端语音中的某一段能量还小,会产生误判。因此,估计DOUBLETALK的方法挪到估计出当前16ms语音延时之后进行。针对当前的估计延时,有针对性的挑一段近端语音进行比较。如果估计出来的延时开始之后的近端语音段能量够大,则说明当前的延时判断错误(估计到别的语音段上了),或者是出现DOUBLETALK,需要下一次重新搜索。这样既减少了计算量又提高了准确度。
由于噪声和近端语音干扰的影响,可能会导致在单次回声延时搜索结果会不可靠,需要做进一步的精度判决看是否需要进行下一次的搜索。
图5为第一次搜索时针对当前暂时得到的回声延时值进行判决,看是否达到要求。在单元501中对取得第一次找到的两个最大互相关能量值M11和M12进行两个因子F1和F2判决。在单元502中,如果M11大于F1*M12,则M11对应的位置即为回声延时,否则在单元503中如果M11大于F2*M12,则在单元504中记下当前M11对应的位置D1和下一次搜索出的回声延时作比较。
如果没有得到回声延时则对远端输入缓冲区和近端输入缓冲区的数据进行更新,具体更新见后。和前一次的搜索方法一致,如图6所示。在单元601中,搜索出来的两个最大能量值首先还是经过两个因子的判决。在单元602中,如果M21大于F1*M22,则M11对应的位置即为回声延时,否则如果M22大于F2*M22,且D1和D2的差值小于某个门限值(如可取5),如单元603所示,则把D1和D2的平均值作为回声延时。如果都不符合上述要求则进行第三次回声延时搜索,并在单元604中记下第二次搜索出来的最大相关能量对应的延时位置D2。
如果第二次没有得到回声延时则对远端输入缓冲区和近端输入缓冲区的数据进行更新。和前两次的搜索方法一致,如图7。在单元701中,搜索出来的两个最大能量值首先还是经过两个因子的判决。在单元702中如果M31大于F1*M32,则M31对应的位置即为回声延时,否则如果M31大于F2*M32,且D3和D1的差值或者D3和D2的差值小于某个门限值,则把D3和D1的平均值或者D3和D2的平均值作为回声延时,如单元703和单元704所示。如果都不符合上述条件,则在单元705中求取D1、D2和D3之间最相近的两个,并计算他们的平均值作为回声延时。
需要注意的是,数据的更新不是简单的获取后来的语音信号。这里需要保留前面一次搜索所用的16ms后的数据,及从旧的远端输入缓冲区数组中第128个点开始直到最后填充到数组的第一个位置开始,并且要做和前面一样的能量判断。如果能量达到要求,则进行下一次的延时定位。
如果发现16ms后的数据中没有足够的连续16ms数据达到要求,则必须从后来输入的语音数据中添加新的数据重新。这是属于异常情况,需要特别注意。
对当前20ms的数据没有放入远端输入缓冲区和近端输入缓冲区,需要逐个判断放进缓冲区,且必须保证最新的远端输入缓冲区前面16ms数据有足够能量。
由上述步骤可见,本发明的这种回声延时估计方法通过有效的减少计算量和提高检测精度能够精确的估计回声延时。本发明中用到的降采样和话音激活检测为快速定位回声提供了保证,降低了系统负担。另外在本发明中还通过低通滤波、DOUBLETALK检测和当前搜索出的最大两个能量值的多个门限的比较来提高检测精度。达不到要求或检测异常需要重新下一次搜索保证了搜索的准确性。还有从本算法中可以看出搜索的时延范围可以进行动态变化,不限于某种极限时延。本发明可以广泛运用于CDMA,WCDMA,GSM,PHS等移动通信系统。
以上所述仅为本发明的较佳实施例,并非用来限定本发明的实施范围;凡是依本发明所作的等效变化与修改,都被本发明的专利范围所涵盖。
权利要求
1.一种回声延时定位的实现方法,其特征在于,对来自通信系统远端和近端的输入信号进行低通滤波和降采样处理,对降采样处理后的输入信号进行互相关计算,取得两个最大互相关能量值及相应位置,从而降低估计回声延时的计算量。
2.根据权利要求1所述的方法,其特征在于,具体包括如下步骤步骤一,对远端和近端的输入信号分别进行低通滤波;步骤二,进行对远端语音信号的话音激活判决;步骤三,对当前的远端和近端的输入信号分别进行降采样处理;步骤四,进行基于降采样处理后的远端和近端输入信号的互相关计算;步骤五,计算互相关的能量值,以1ms为一个能量值计算单位,取互相关值的平方和;步骤六,搜索最大两个互相关能量值及相应位置;步骤七,进行近端的“双向通话”检测,根据近端输入信号判决是否近端说话,是则提前结束当前搜索,更新输入信号进行下一次搜索,否则进入下一步骤;步骤八,进行回声延时精度调整,设定多个判决门限决定是否需要再次搜索。
3.根据权利要求2所述的方法,其特征在于,所述步骤七进一步包括针对临时检测出来的回声时延对应的近端输入信号的能量,与远端输入信号的能量进行比较,如果比较的差值达不到一定的损失范围则判决为“双向通话”状态,需要更新输入重新搜索并再次判决,如果差值超过所述损失范围则判决为“单向通话”状态,进入下一步骤。
4.根据权利要求3所述的方法,其特征在于,所述损失范围为3dB。
5.根据权利要求2所述的方法,其特征在于,所述步骤八进一步包括,针对当前搜索为第一次搜索、第二次搜索或第三次搜索,来进行所述精度调整。
6.根据权利要5所述的方法,其特征在于,在当前搜索为第一次搜索的条件下,所述步骤八进一步包括如下步骤步骤A1,取得第一次搜索的两个最大能量值M11和M12,并提供两个判决因子F1和F2;步骤A2,判断M11是否大于F1与M12的乘积,是则执行步骤A3,否则执行步骤A4;步骤A3,M11对应的位置D1即为回声延时,输出D1,结束;步骤A4,如果M11大于F2与M1 2的乘积,记录所述位置D1用以同下一次搜索的结果进行比较。
7.根据权利要求6所述的方法,其特征在于,在当前搜索为第二次搜索的条件下,所述步骤八还包括如下步骤步骤B1,取得第二次搜索的两个最大能量值M21和M22,并提供两个判决因子F1和F2;步骤B2,判断M21是否大于F1与M22的乘积,是则执行步骤B3,否则执行步骤B4;步骤B3,M21对应的位置D2即为回声延时,输出位置D2,结束;步骤B4,如果M21大于F2与M22的乘积,并且位置D1与位置D2的差值小于设定值,则执行步骤B5,否则执行步骤B6;步骤B5,将D1与D2的平均值作为回声延时输出,结束;步骤B6,记录所述位置D2用以同下一次搜索的结果进行比较。
8.根据权利要求7所述的方法,其特征在于,在当前搜索为第三次搜索的条件下,所述步骤八还包括如下步骤步骤C1,取得第三次搜索的两个最大能量值M31和M32,并提供两个判决因子F1和F2;步骤C2,判断M31是否大于F1与M32的乘积,是则执行步骤C3,否则执行步骤C4;步骤C3,M31对应的位置D3即为回声延时,输出位置D3,结束;步骤C4,如果M31大于F2与M32的乘积,并且D1与D3的差值小于设定值,则执行步骤C5,否则执行步骤C6;步骤C5,将D1与D3的平均值作为回声延时输出,结束;步骤C6,如果M31大于F2与M32的乘积,并且D2与D3的差值小于设定值,则执行步骤C7,否则执行步骤C8;步骤C7,将D2与D3的平均值作为回声延时输出,结束;步骤C8,取D1、D2、D3中最相近的两个值,将所述两个值的平均值作为回声延时输出,结束。
全文摘要
本发明公开了一种回声延时定位的实现方法,其特征在于,对来自通信系统远端和近端的输入信号进行低通滤波和降采样处理,对降采样处理后的输入信号进行互相关计算,取得两个最大互相关能量值及相应位置,从而降低估计回声延时的计算量。本发明与现有技术相比,极大的降低计算量,应用于回声抵消器中,自适应滤波器系数不需要随着回声延时的加长而增多,在降低资源占用率和降低成本的情况下能够确保准确估计回声延时,通过灵活配置参数,可以扩大延时估计长度,极大地促进了回声抵消器的应用范围。
文档编号G10L21/02GK101026659SQ200610011360
公开日2007年8月29日 申请日期2006年2月23日 优先权日2006年2月23日
发明者楼红伟, 赵霞, 董志峰, 辛勤 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1