通信系统中用于检测和定性信号的装置和方法

文档序号:5582652阅读:236来源:国知局
专利名称:通信系统中用于检测和定性信号的装置和方法
技术领域
本发明通常是关于通信系统,特别是在一个通信系统中检测和定性信号。
在今天的信息时代,家庭,学校和商业中使用的个人计算机的数量连续的迅速增加并且没有停止的迹象。个人计算机使用的增长促进了将许多应用移到个人计算机上。例如,除了提供标准的计算和网络功能以外,今天的个人计算机常常也包括这样的功能,例如一个调制解调器与其它的计算机交换数据,一个电话(包括扬声器电话),一个电话应答系统,一个传真系统和电话会议和视频会议系统。这样个人计算机能够代替大多数其它单独的装置,常常节省了费用,简化了使用并且与单独的装置相比较还提供了另外的特性。
无论是作为单独的的装置使用还是在个人计算机中一起使用,这些通信应用都具有大量的通用元件。特别是,使用一个处理器来控制装置,使用存储器来存储信息,使用一个信号处理器来生成和处理通信所需要的电信号,并且使用接口部件来与通信系统进行接口和提供附加的信号处理能力。当这些通信应用是包括在个人计算机中的时候,将两个或是更多的应用集成在一起通常是比较方便的,这样不需要重复使用通用元件。这种应用集成也减少了提供这种通信应用所需的费用。
随着个人计算机费用的降低和厂商之间竞争的增加,计算机生产者和第三方厂商都在寻找一种能够提供多种通信应用的效能价格比高的方法。一种解决主要以软件实现所有的应用功能(以特定的硬件实现其余的功能)并且将软件作为一个软件应用在个人计算机的微处理器中运行。根据现代的微处理器提供的处理资源的数量,在今天以软件实现经常性的复杂的信号处理功能是切实可行的。通过去除大多数的专用硬件并且使用个人计算机的处理和存储资源,能够相对便宜地提供通信应用。
这种集成的软件实现的一个问题是通信应用必须与其它的应用软件,例如一个字处理器,电子表格程序或是Internet浏览器,一起共享个人计算机的处理资源。这样,软件实现就消耗了处理资源,否则其它的应用软件就可以使用这些资源。因此当通信应用在运行的时候,其它应用软件的性能就会受到影响。这样,实现通信应用使它们使用尽可能少的处理资源就变得重要,并且最好分散处理需求使通信应用软件不会在过分长的时间内控制处理资源。
多种通信应用中所实现的一种信号处理功能是在声音,单音(tone)和噪音信号之间进行检测和区分。使用包括用于电话会议和视频会议的声音激活的自动增益控制(AGC);用于电话应答系统的声音检测;扬声器电话中的通话重叠检测;DTMF单音检测用于访问特殊的服务例如从电话应答系统中检索消息,访问语音信箱,和其它小键盘控制的服务;和检测特定的调制解调器和传真机单音例如拨号音,应答音,呼叫进行音和忙音。这些信号处理功能都已经被分别实现。当同时运行的时候,这些信号处理功能将消耗大量的处理资源。因此,需要一种装置和方法,提供有效的声音,单音和噪声检测,减少需要的处理资源的数量并且分布处理需求。


图1是一个检测器的高电平逻辑流程图;图2是示例的更新间隔逻辑的一个高电平逻辑流程图;图3是示例的判定间隔逻辑的一个高电平逻辑流程图;图4是示例的假设间隔逻辑的一个高电平逻辑流程图;图5表示的是在本发明的一种实施方式中所使用的一个双缓冲系统;图6表示的是双缓冲系统中存储的两个采样n和n-K。
如上所述,需要一种装置和方法,提供有效的声音,单音和噪声检测,减少所要求的处理资源的数量并且在时间上分布处理需求。通过将平均值微分函数(AMDF)应用到离散的周期上来估算音调随着时间的变化,本发明提供了有效的声音,音调和噪声检测,允许做出一个信号是否是声音,单音或噪声信号的假设。
对于音调估算(pitch estimation),AMDF是一种熟知的技术,在M.J.Ross,H.L.Shaffer,A.Cohen,R.Freudberg,和H.J.Manley等人的“平均值微分函数音调抽取器”,IEEE Trans.Acoust.,语音和信号处理卷的ASSP-22,353-362页,1974年10月对其进行了描述。在这里将其完全包括进来作为参考。主要是,AMDF技术的基本概念是对于一个真正的周期信号,如果K等于周期,那么两个信号采样x(n)和x(n-K)之间的差值将是零。因为由于噪声的缘故周期的信号可能稍有不同,所以两个信号采样x(n)和x(n-K)之间的差值可能不是零,但是在音调周期K处可能接近零。这样,通过在两个信号采样x(n)和x(n-K)之间的差值接近零的地方,找到值K来估算一个信号的音调。
本发明应用了AMDF技术,但不是为了估算一个音调周期K,而是估算离散的采样周期上音调的变化以确定一个信号是否是一个声音信号,一个单音信号或是一个噪声信号。本发明的技术是基于这样的前提一个单音信号在它基本的音调将保持一个相对恒量的量级,一个声音信号在它的基本音调将保持一个变化的量级,而一个噪声信号将没有可以识别的基本音调。这样,在预定的音调时间间距K的范围上分析所接收到的信号,计算出一系列度量,根据音调和音调的变化信号来定性信号。在优选的实施方式中,K的范围为50到140,大约与人类声音的范围相对应。新的度量允许作出一个信号是否由声音,单音或噪声组成的假设。
优选的实施方式的一个特别的优点是在时域而不是在频域上进行信号分析。频域方式通常是利用快速傅立叶变换(FFT),它由于要求很多乘法操作所以要求的计算量很大。另一方面,本发明的时域方式主要是利用加和减操作,这样计算的复杂度被大大降低。
在一种优选的实施方式中,以软件方式实现的一个检测器被用来估算信号和确定是否信号包括声音,单音或是噪声。在一种优选的实施方式中,以2毫秒的间隔调用检测器并且在每第十三个间隔基于前面的十二个间隔中所作的计算来判定是否存在一个声音,单音或噪声信号。为了方便,作出判定的这13个间隔称为“检测周期”,将检测周期的前12个间隔称为“更新间隔”,检测周期的第十三个间隔称为“判定间隔”。间隔时长和每个检测周期中间隔的数量都是优选的值,在测试中已经证明表现的非常好。
图1中示出了检测器的一个高电平逻辑流程图。在步骤102,当对于检测周期“i”种的一个间隔“m”调用检测器逻辑的时候,在步骤104判定检测器是否在检测周期的前12个更新间隔中(m小于或是等于12)或在检测周期的判定间隔中(m等于13)。如果检测器在检测周期的前12个更新间隔中,那么逻辑继续在步骤106中执行更新间隔逻辑,然后在步骤199中终止对于该间隔的处理。如果检测器在检测周期的判定间隔中,那么逻辑继续在步骤108中执行判定间隔逻辑,然后在步骤199中终止对于间隔的处理。
当检测器运行的时候,信号处理硬件采样和缓冲所接收到的信号。直接从线路(即非AGC校准的)采样输入采样,并且标记为16位的整数,范围为+/-32,767。在优选的实施方式中,采用图5中所示的一个双缓冲系统来存储输入采样。两个缓冲器是相临的并且每个都存储X个输入采样(X>140)。两个缓冲器初始时填充的是零。每个输入采样Sn都存储在每个缓冲器的一个等效空位(equivalent slot)中。这样所存储的采样就间隔了X个空位(slot)。将每个缓冲器都作为一个循环的缓冲器,这是由于每个空位在每X个采样后都用一个新的采样重写。
在每个更新间隔m期间,更新间隔逻辑是在输入采样的缓冲器上进行工作的。在优选的实施方式中,间隔m是2毫秒,采样速率是8KHz,这样更新间隔逻辑在每个更新间隔m是工作在16个输入采样之上的。对于每个音调周期K,检测器计算间隔m上的一个局部的AMDF值。对于每个音调周期K,局部的AMDF值AMDF16m(K)等于AMDF16m(K)= n=116|x(n)-x(n-K)|]]>
其中x(n)是来自缓冲器的采样n,x(n-K)是一个前面的采样,它是采样n前的第K个采样。如图6所示,双缓冲系统(上述的)存储了充足数量的以前的采样,这样对于所有的K值都能够计算出AMDF16m(K)。
对于每个值K,检测器保持一个全局的AMDF值AMDK(K),它是12个更新间隔上的局部AMDF值的运行和AMDF(K)=AMDF(K)+AMDF16m(K)对于间隔M,检测器也确定在所有音调周期K上的最小的局部AMDF值MinAMDF16mMinAMDF16m=min[AMDF16m(K)]注意到对于以前技术中的AMDF音调估测技术,MinAMDF16M最小处的K值表示在间隔m上所估算的音调,尽管K的特定值与本发明无关。
最后,检测器保持最小的AMDF值的一个平均差值AvgDiffAMDF,它是间隔m的最小本地AMDF值与前一个间隔(m-1)的最小本地AMDF值之间差值的运行和。
AvgDiffAMDF=AvgDiffAMDF+|MinAMDF16m-MinAMDF16m-1|当在一个检测周期中对于第一个更新间隔计算AvdDiffAMDF的时候,继续前一个检测周期(i-1)的最后一个更新间隔的最小局部AMDF值,并且作为MinAMDF16m-1的值。
图2中所示的是表示示例的更新间隔逻辑的一个高电平逻辑流程图。当在步骤202中调用该逻辑的时候,对于每个K值,逻辑更新全局的AMDF值AMDF(K)和AvdDiffAMDF,它们是从间隔到间隔继续的游动和。这样对于在步骤204中以等于50的音调周期K开始的每个音调周期K,逻辑执行一个循环,它包括在步骤206计算局部的AMDF值AMDF16m(K),在步骤208更新全局AMDF值AMDF(K),并且在步骤212中检测是否局部的AMDF值AMDF16m(K)小于当前的最小局部AMDF值MinAMDF16m,并且如果AMDF16m(K)小于MinAMDF16m,在步骤212中将AMDF16m(K)存为MinAMDF16m。逻辑然后在步骤214将K加1并且循环回步骤206,如果K小于或是等于140(步骤216中为YES),为下一个K值执行循环。当对于所有音调周期K都已完成了循环的时候(在步骤216中为NO),继续逻辑以在步骤218中更新游动和AvgDiffAMDF。步骤220中将间隔m加1使成为下一个间隔,在步骤299中结束更新间隔逻辑。
当检测器逻辑在判定间隔中的时候,检测器逻辑执行判定间距逻辑。在优选的实施方式中,对于判定间隔,在16个输入采样上不进行任何处理。判定间隔逻辑在更新间隔期间使用所计算的度量,以形成一个假设,是否在检测周期i中存在着一个声音,单音或是噪声信号。在12个更新间隔之后,对于每一个K值全局的AMDF等于AMDF(K)= m=112AMDF16m(K)]]>检测器首先在所有的音调周期K上找到全局的AMDF值中最小的一个AMDFminAMDFmin=min[AMDF(K)]检测器然后计算在所有的音调周期K上的局部AMDF值的一个和AMDFsumAMDFsum= K=50140AMDF(K)]]>检测器计算一个第一个度量AMDFnorm,它是在音调范围上AMDF的最小值与在音调范围上平均的AMDF值之间的比AMDFnorm=AMDFmin/AMDFsum
检测器计算一个第二个度量AvgDiffAMDFnorm,它度量在更新间隔上最小的AMDF的平均变化AvgDiffAMDFnorm=AvgDiffAMDF/AMDFsum注意到通过使用全局AMDF值AMDFsum的和作为除数,而不是计算全局AMDF值的一个平均值,保存了处理资源。也注意到只在AMDFsum是非零的的情况下计算AMDFnorm和AvgDiffAMDFnorm以避免除零的错误。
在计算了两个度量AMDFnorm和AvgDiffAMDFnorm之后,检测器执行它的假设逻辑,目的是判定在检测周期中是否存在一个声音,单音或噪声信号。假设逻辑所应用的通用原则(尽管不是优选的实施方式,但是下面也将对其进行详细的描述)是一个大值的AMDFnorm是一个噪声信号,一个小值的AMDFnorm是一个非噪声(即声音或单音)信号,尽管AMDFnorm不足以单独的确定是否一个非噪声信号是一个声音信号或是一个单音信号。这样,如果AMDFnorm是小的,那么使用AvgDiffAMDFnorm来确定非噪声信号是否是一个声音信号或是一个单音信号。一个大值的AvgDiffAMDFnorm是一个声音信号,而一个小值的AvgDiffAMDFnorm是一个单音信号。
图3中的高电平逻辑流程图示出了一个示例性的判定间隔逻辑。当在步骤302中调用该逻辑的时候,继续逻辑以在步骤304中找到AMDFmin,然后在步骤306中计算AMDFsum。逻辑然后在步骤308中计算AMDFnorm并在步骤310中计算AvgDiffAMDFnorm度量。一旦计算了两个度量,逻辑在步骤312中执行假设逻辑以确定检测周期i中是否存在一个声音,单音或噪声信号。在步骤314中,对于下一个检测周期将间隔m设定回一,然后在步骤399终止判定间隔逻辑。
实际上,已经发现在某些情况下上述的通用假设逻辑可能会带来不准确的判定。特别是,因为两个度量代表在时间上的平均值,从一种类型的信号到另一种信号的立即变化可能不能够在度量上立即反映出来。因此,假设逻辑使用度量和历史数据(即以前的检测周期中的数据)和正确的阈值来进行判定。
假设逻辑应用了一系列规则,它们基于所观察的信号的特性。所观察的第一条特性是一旦检测到一个噪声或是单音信号,如果信号保持是一个噪声或是一个单音信号,则度量很可能会固定在特定的范围之内,因此可以将检测连续的噪声或是单音信号的标准制定的不那么严格。观察到的第二条特性是,当从噪声转换为单音的时候,AvgDiffAMDFnorm达到了一个峰值并且缓慢地衰减为一个表示单音的值。因此,为了在噪声转换之后增加单音检测的速度,在检测到这样一个峰值之后将单音检测阈值增加。第三条观察到的特性是当从单音转移到噪声的时候,两个度量缓慢的移动到它们各自的噪声电平并且因此被误解为声音。因此,对于单音结束之后的两个检测间隔假设逻辑将阻止将信号定性为声音。
图4中是一个高电平逻辑流程图,示出了示例性的假设逻辑。当步骤402中调用逻辑的时候,继续逻辑在步骤404中判定是否信号是一个噪声信号。如果大量的条件中任何数量的条件是正确的,在步骤404,将信号定性为噪声并且逻辑继续到步骤410。首先,如果AMDFsum等于零,那么将信号定性为噪声。这种情况代表了完全无声的检测。第二,如果对于当前的检测周期i,AMDFnorm大于一个阈值N,表示一个大值的AMDFnorm,那么将信号定性为是噪声。最后,如果在前一个检测周期(i-1)中检测到的信号是噪声并且AMDFnorm大于一个阈值N2N,它比起N,N2N不那么严格,将信号定性为是噪声。这个条件应用了从上述所观察的第一条特性得出的规则,特别是检测后续噪声信号的阈值也可以制定的不那么苛刻。
如果在步骤404中没有将信号定性为是噪声,那么逻辑继续在步骤406中判定是否信号是一个单音信号。在步骤406,如果大量的条件中任何数量的条件是真的,那么将信号定性为单音,并且逻辑继续到步骤414。首先,如果对于当前的检测周期i,AvgDiffAMDFnorm小于一个阈值T,那么将信号定性为单音。阈值T是一个相对严格的阈值,用于初始时检测一个单音信号。第二,如果前一个检测周期(i-1)中检测的信号是单音并且当前的检测周期中的AvgDiffAMDFnorm小于一个阈值T2T,那么将信号定性为单音。这个条件应用了从上述观察的第一条特性得出的规则,特别是可以将检测后续单音信号的阈值制定的不那么严格。最后,如果在前一个检测周期(i-1)中检测的信号是噪声并且前一个检测周期(i-1)的AvgDiffAMDFnorm大于一个阈值HI(即上述的峰值)并且当前的检测周期i的AvgDiffAMDFnorm小于一个阈值N2N,那么将信号定性为单音。这个条件应用了从上述观察的第二条特性中得出的规则。
如果在步骤406中没有将信号定性为单音,那么逻辑继续到步骤408,以应用从上述观察的第三条特性中得出的规则,特别是对于在一个单音结束之后的两个检测间隔,防止假设逻辑将信号定性为声音。在步骤408,将信号定性为噪声,并且如果在前两个检测周期(i-1)和(i-2)中的任何一个中检测的信号是单音,逻辑继续到步骤410;否则,将信号定性为声音,逻辑继续到步骤412。
如上所述,度量是平均值,尽管计算度量时无需在进行平均的元素数量上进行标准化。代替的是,正确的定标(scale)阈值以考虑用来进行平均的元素的数量。这个定标技术通过避免除法操作而减少了计算度量的计算复杂性,这样减少了检测器所消耗的处理资源。
将阈值N和N2N应用到AMDFnorm,AMDFnorm只是在范围K上的平均。这样,用用于平均的元素数量来除阈值N和N2N。在优选的实施方式中,阈值N等于0.65/90,并且阈值N2N等于0.5/90。
将阈值T,T2T,N2T和HI应用到AvgDiffAMDFnorm,AvgDiffAMDFnorm是在范围K和12个间隔上的平均。这样,用间隔的数量12来乘,并且用用于平均的元素数量来除 阈值T,T2T,N2T和H1。在优选的实施方式中,阈值T等于0.0015*12/90,阈值T2T等于0.003*12/90,阈值N2T等于0.009*12/90,阈值HI等于0.015*12/90。
值得注意的是在上面描述了阈值,好象度量是对90个元素进行平均的。实际上,是在91个元素上进行平均度量的(50到140,包括边界)。这个因子选择错误并未影响假设逻辑的输出结果,因为是阈值的绝对值来确定输出结果。通过实验来获得绝对的阈值,并且是基于信号特性的实际观察。
虽然在优选的实施方式中将每个检测周期的处理分配在13个间隔中,对于一个熟练的技术人员,显然可以存储每一个更新间隔的输入采样,并且把所有的计算都推迟到判定间隔。对于一个熟练的技术人员,显然还可以将在每个更新间隔中所做的一些或全部中间计算都推迟到判定间隔。
对于一个熟练的技术人员,显然能够将检测周期减短为12个间隔,并且在后续的检测周期(i+1)的第一个间隔期间,检测周期i的判定间隔逻辑进行计算。
对于一个熟练的技术人员很清楚知道对于不同的间隔时长,采样速率和音调频率范围,如何改变更新间隔逻辑和判定间隔逻辑。
也以可以以其它特定的形式实现本发明,而不背离发明的本质或是本质的特性。上述的实施方式从各方面来都只是举例而并不是局限于此。
权利要求
1.一种用于在一个检测周期i上定性一个信号的方法,检测周期i具有多个间隔,每个间隔具有预定数量的输入采样,该方法包括步骤对于在间隔上预定范围中的每个音调频率K,确定一个平均值微分函数(AMDF);确定间隔上的平均微分差值AMDF,等于在每一个间隔m中的第一个最小AMDF值和每一个间隔(m-1)的一个第二个最小AMDF值之间的差值的和;确定间隔上的一个最小AMDF值;确定间隔上的AMDF值的一个和;计算一个第一个度量,等于在间隔上最小的AMDF值除以间隔上AMDF值的和;计算一个第二个度量,等于在间隔上平均差值AMDF除以间隔上AMDF值的和;利用所述的第一个度量和第二个度量以确定是否信号是噪声信号,单音信号和声音信号中的一个。
2.一种用于在一个检测周期i上定性一个信号的装置,检测周期i具有多个间隔,每个间隔具有预定数量的输入采样,该装置包括用于在间隔上对于预定范围中的每个音调频率K,确定一个平均值微分函数(AMDF)的逻辑;用于确定间隔上的平均差值AMDF的逻辑,它等于在每一个间隔m中的第一个最小AMDF值和对于每一个间隔(m-1)的一个第二个最小AMDF值之间的差值的和;用于确定间隔上的一个最小AMDF值的逻辑;用于确定间隔上的AMDF值的一个的逻辑和;用于计算一个第一个度量,等于在间隔上最小的AMDF值除以间隔上的AMDF值的和的逻辑;用于计算一个第二个度量,等于在间隔上平均差值AMDF除以间隔上AMDF值的和的逻辑;用于利用所述的第一个度量和第二个度量以确定是否信号是噪声信号,单音信号和声音信号中的一个的逻辑。
3.一种包括一个计算机可用的介质内的装置,具有用于在一个检测周期i上定性一个信号的计算机可读的程序代码模块,检测周期i具有多个间隔,每个间隔具有预定数量的输入采样,计算机可读的程序代码模块包括计算机可读的程序代码模块,用于对于间隔上预定范围内的每个音调频率K,确定一个平均值微分函数(AMDF);计算机可读的程序代码模块,用于确定间隔上的平均差值AMDF值,它等于在每一个间隔m中的第一个最小AMDF值和对于每一个间隔(m-1)的一个第二个最小AMDF值之间的差值的和;计算机可读的程序代码模块,用于确定间隔上的一个最小AMDF值;计算机可读的程序代码模块,用于确定间隔上的一个AMDF值的和;计算机可读的程序代码模块,用于计算一个第一个度量,等于间隔上最小的AMDF值除以间隔上AMDF值的和;计算机可读的程序代码模块,用于计算一个第二个度量,等于间隔上平均差值AMDF除以间隔上AMDF值的和;计算机可读的程序代码模块,用于利用所述的第一个度量和第二个度量以确定是否信号是噪声信号,单音信号和声音信号中的一个。
全文摘要
一种用于在一个通信系统中检测和定性信号的装置和方法,提供了有效的声音,单音和噪声检测,减少了所消耗的处理资源并且在时间上分布处理需求。本发明通过在离散的周期上应用平均值微分函数来提供这种有效的声音(412),单音(414)和噪声(410)检测,以估算时间上音调的变化,允许做一个信号是否是一个声音,单音或是噪声信号的假设。计算两个新的度量来定性信号,音调和音调上的变化。应用基于规则的逻辑以检测在信号类型之间的变换。
文档编号G10L11/00GK1247621SQ98802504
公开日2000年3月15日 申请日期1998年11月13日 优先权日1997年12月12日
发明者萨提斯·安南塞耶, 埃里克·戴维·伊利亚斯 申请人:摩托罗拉公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1