计算信号中的噪声电平的方法技术

技术编号:3565906 阅读:316 留言:0更新日期:2012-04-11 18:40
一种计算信号中噪声电平的方法,包括以下步骤:对信号的两个采样窗口进行累加,计算每个采样窗口内的信号能量,计算每个采样窗口内信号能量的差值,根据差值修正方差参数,在方差参数小于采样窗口中最近一个内的信号能量的一个预定倍数的情况下,则表明存在噪声,并将噪声电平参数设定为采样窗口中最近一个内的信号能量的函数,在方差参数大于或等于采样窗口中最近一个的信号能量的预定倍数的情况下,则表明在最近的采样窗口内不存在噪声,在噪声电平参数超出采样窗口中最近一个内信号能量的情况下,将噪声电平参数设定等于采样窗口中最近一个内信号的能量。(*该技术在2021年保护过期,可自由使用*)

【技术实现步骤摘要】

一般地说,本专利技术涉及远程通信系统,具体的说,本专利技术涉及在电话线路回波消除器中检测噪声的噪声电平计算器。对于判断加到自适应滤波器上的参考信号是噪声还是非噪声部分,噪声电平计算也是很有用的。如果检测到噪声,则可以禁止对滤波系数进行更新。优选实施例概述根据本专利技术,提供了一种监测加到NLP上的误差信号的噪声电平以及加到自适应滤波器上的参考信号的噪声电平的噪声电平计算器,以实现前面所述的目的。对比现有技术的噪声检测器,其不仅跟踪噪声部分,也跟踪信号电平,并推断噪声电平是直接地等比于最低累积信号能量,本专利技术的噪声电平计算器使用信号能量的方差来确定背景噪声电平。因而,本专利技术的噪声电平计算器实际上取噪声周期,并适应这些周期中噪声能量方差的变化。图2是显示根据该优选实施例进行噪声电平计算的步骤的流程图。优选实施例详述参照附图说明图1,显示的是从线路回波路径(在Sin-line和Rin-line之间)消除回波信号的线路回波消除器(LEC)。在控制逻辑单元9中运用了自适应滤波算法(典型地为众所周知的自适应LMS算法),以实现回波消除的功能。在累加单元3中,从输入线路信号(Sin-line)中减去自适应滤波输出,以生成误差信号(ein)。如上所述,提供了NLP5以消除因非线性、失真、附加信号噪声等引起的残余回波信号。还有双向通话检测器11,用以在双向通话的情况下(例如,当近端开始说话时,这种情况下信号变为近端语音加远端回音)禁止NLP5。根据本专利技术,提供了噪声电平计算器13以连续地为误差信号ein和参考信号Rin-line监测噪声电平。NLP单元5使用误差信号的噪声电平来判断采样是噪声还是残余回波。如果检测到噪声,则原样传送出去,但如果检测到残余回波,则NLP5生成噪声采样。在控制单元9中,自适应滤波算法使用参考信号的噪声电平来判断信号是语音还是噪声。如果是噪声,则不更新回波消除系数。参照图2,显示的是实现本专利技术的噪声电平计算器的优选算法。图2中的方程能在C编译器中具有最佳的性能。运行中需要两个输入,即输入信号xin和声音判断参数tone-decision。噪声电平计算器的内部状态和它的局部变量保存在局部工作区中(即以下说明的NoiseLevel结构)。使用相同的函数计算图1中LEC的参考信号Rin_line和误差信号ein的噪声电平。在每次噪声计算器的运行中,输入采样xin被选择作为ein或Rin-line。参照图2,以下是NoiseLevel结构和每次这样的运行所需的局部变量Structure(*NoiseLevel)(*NoiseLevel).count采样窗口计数器(*NoiseLevel).level这代表NoiseLevel(*NoiseLevel).accum当前输入信号累加值(*NoiseLevel).accum先前输入信号累加值(*NoiseLevel).variance累加值方差(*NoiseLeve.flag_no_update无效窗口标志,不更新NoiseLevelxin输入采样diff先前累加值与当前累加值的差异tone_decision如果信号是语音,标志为1nlevel_countNoiseLevel更新之前的累加次数本专利技术的算法是基于噪声部分的能量方差远比语音部分的能量方差小的假设基础之上。断定没有语音后(步骤A),将包含256个采样(32msec)的窗口内的采样进行累加(即将窗口内的信号能量进行计算)。(步骤B中,(*NoiseLevel).accum=(*NoiseLevel).accum+abs(xin))。当窗口完成后(步骤D中,(*NoiseLevel).coun>Window_size?),更新噪声电平,将结果保存在内存中。为了保证方差和噪声电平计算不出错,采样累加值不超出一个最大电平是重要的(步骤C中,将(*NoiseLevel).accum限定在Max_limit)。在累加值无效的情况下(步骤D中,Yes(accum无效)),对接下来的两个窗口不计算Noise Level(这作为步骤C中标志被设为(*NoiseLevel).flag_no_update=2的结果,然后在步骤D中减两次(*NoiseLevel).flag_no_update-=1)。在启动时,以及达到Max_limit时,也将两个窗口认作为无效。它们不被使用,分别填充或清除累加记录。当有两个有效的采样累加值时,计算它们的差值,差值用来将这些累加值的方差更新为差值和方差参数先前值的加权平均值,(即(*NoiseLevel).variance+=(diff-(*NoiseLevel).variance)>>3将方差参数调整为现有的(即先前的)方差参数加上差值(diff)减先前方差参数所得值的一个倍数(÷8),(*NoiseLevel).variance=diff将方差参数调整为先前方差参数)。因而,在图2的实施例中,以增高比例1和衰减比例8(即步骤E中,>>3)对方差进行计算/更新。这些增高和衰减比例根据经验选择以在低能量(例如语音部分中的摩擦音引起的)的短时期内不对噪声电平进行更新。也可以选用其它的增高和衰减比例以适应不同的应用场合。因而,增高比例强劲,而衰减比例比增高比例慢。当方差减小至累加值电平除以预定的比例系数时(步骤E中,(*NoiseLevel).variance<(*NoiseLevel).accum>>3?),当前累加值就被当作噪声部分。这个系数(步骤E中,>>3=8)是比较不同的噪声电平和相应的累加值方差之间的比率后选择的。当判定累加值是噪声时(步骤F),用衰减比例8(即步骤F中的>>3)计算/更新噪声电平。在不同的应用中可以选用不等于8的衰减比例。在噪声电平大于累加值的情况下,噪声电平被重置为当前累加值(步骤G)。这是保证噪声电平计算器偏向尽可能低的噪声电平。最后,对于下一个累加窗口,重新初始化某些变量(步骤H)。应当注意,对于ein信号,在与实际采样比较之前,将噪声电平乘以系数0.013(即3.3/256,256是窗口尺寸)。对于Rin_line信号,将噪声电平乘以系数0.2(50/256),这是位于噪声阈的高端。本专利技术的替换和改变是可能的。例如,在步骤B中可以不用采样绝对值,而使用能量实值计算,可以使用不同的窗口尺寸,可以指定不同的增高和衰减比例来修正方差(步骤E)。另外,本专利技术的算法也可以用于检测语音(即不存在噪声),也可以适用于抑制静音的舒适噪声产生器的运行中。相信所有这些替换实施例和应用都处于所附的权利要求所限定的本专利技术的范围内。权利要求1.一种计算信号中的噪声电平的方法,包括以下步骤对所述信号的两个采样窗口进行累加;计算每个所述的采样窗口内所述信号的能量;计算每个所述的采样窗口内所述信号的所述能量的差值;根据所述的差值更新一个方差参数;在所述方差参数小于所述采样窗口中最近的一个内所述信号能量的一个预定的倍数的情况下,则表明存在噪声,将一个噪声电平参数设定为所述采样窗口中所述最近的一个内所述信号能量的函数,以及,在所述方差参数大于或等于所述采样窗口中所述的最近一个内所述信号能量的所述的预定倍数的情况下,则表明在所述最近的采样窗口内不存在噪声;以及在所述的噪声电平参本文档来自技高网...

【技术保护点】
一种计算信号中的噪声电平的方法,包括以下步骤: 对所述信号的两个采样窗口进行累加; 计算每个所述的采样窗口内所述信号的能量; 计算每个所述的采样窗口内所述信号的所述能量的差值; 根据所述的差值更新一个方差参数; 在所述方差参数小于所述采样窗口中最近的一个内所述信号能量的一个预定的倍数的情况下,则表明存在噪声,将一个噪声电平参数设定为所述采样窗口中所述最近的一个内所述信号能量的函数,以及,在所述方差参数大于或等于所述采样窗口中所述的最近一个内所述信号能量的所述的预定倍数的情况下,则表明在所述最近的采样窗口内不存在噪声;以及 在所述的噪声电平参数超出所述采样窗口中所述的最近一个内所述信号能量的情况下,将所述噪声电平参数设定等于所述采样窗口中所述的最近一个内所述信号的能量。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:迪特尔舒尔茨雷内约翰斯顿
申请(专利权)人:扎利克半导体公司
类型:发明
国别省市:CA[加拿大]

相关技术
    暂无相关专利
网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利