对混合信号进行降噪的方法和装置与流程

文档序号:15836978发布日期:2018-11-07 07:58阅读:356来源:国知局
对混合信号进行降噪的方法和装置与流程

本公开总体上涉及信号处理领域,并且具体地涉及一种对混合信号进行降噪的方法和装置。

背景技术

通常,可以通过在单通道上降低稳态噪声、进行波束形成等方式来提高信号的信噪比。然而,通过这些方式所获得的信噪比的提高可能仍然十分有限,例如,仍然可能存在大量噪声残留,甚至可能由于无法获得参考信号而根本无法执行用于降噪的滤波处理(例如,自适应滤波)。



技术实现要素:

根据本公开的一方面,提供了一种对混合信号进行降噪的方法,该方法包括:分离混合信号以获得第一信号和第二信号;选择第一信号和第二信号中的一个作为当前参考信号,另一个作为当前期望信号;以及基于所选择的当前参考信号和当前期望信号执行自适应滤波。

根据本公开的另一方面,提供了一种非临时性存储介质,在其上存储有程序指令,该程序指令在被执行时执行上述方法。

根据本公开的又一方面,提供了一种对混合信号进行降噪的装置,该装置包括被配置为执行上述方法的一个或多个处理器。

根据本公开的又一方面,提供了一种对混合信号进行降噪的装置,该装置包括:信号分离器,被配置为分离所述混合信号以获得第一信号和第二信号;信号选择器,被配置为选择第一信号和第二信号中的一个作为当前参考信号,另一个作为当前期望信号;以及自适应滤波器,被配置为基于所选择的当前参考信号和当前期望信号执行自适应滤波。

通过根据本公开的实施例的方法和装置,即使在无法直接从硬件获得有效的参考信号的情况下,也能够有效地消除残留噪声并显著地提高信噪比。

附图说明

图1示出根据本公开的实施例的对混合信号进行降噪的方法的流程图。

图2示出根据本公开的实施例的对混合信号进行降噪的装置的结构图。

具体实施方式

在本文中以处理语音信号为例来描述根据本公开的实施例的方法和装置的原理。然而,根据本公开的实施例的方法和装置还能够适用于处理诸如生物医学信号、阵列信号、图像信号、移动通信信号等其他类型的信号。

例如,通过声音采集装置(例如,包括一个或多个麦克风的麦克风阵列、一个或多个模拟数字转换器等)采集到的信号可以是一个混合信号,该混合信号可能包括一个或多个用户的语音以及环境中的噪声。

例如,在环境中存在诸如电视噪声、空调噪声等具有方向性的噪声的情况下,通过诸如在单通道上降低稳态噪声、进行波束形成、信号盲处理等通常的信号处理方式所能够获得的信噪比的提高十分有限;另外,由于缺少有效的参考信号,也无法使用诸如自适应滤波这样的能够用于系统辨识、信道均衡、信号增强和预测的技术手段。

在根据本公开的实施例的方法和装置中,分离所采集到的混合信号,并且从分离出的信号中选择当前参考信号和当前期望信号,然后基于所选择的当前参考信号和当前期望信号进行自适应滤波。由此,即使在无法直接从硬件获得有效的参考信号的情况下,也能够有效地消除残留噪声并显著地提高信噪比。

如图1所示,根据本公开的实施例的对混合信号进行降噪的方法可以包括步骤s10至s30。

在步骤s10中,可以分离混合信号以获得第一信号和第二信号。然后,在步骤s20中,可以从所获得的第一信号和第二信号中选择当前参考信号和当前期望信号。然后,在步骤s30中,可以基于所选择的当前参考信号和当前期望信号来执行自适应滤波。

根据不同的实施例,在步骤s10中,可以采用不同的算法或方法来分离混合信号。例如,可以基于独立分量分析对混合信号执行盲源分离。通常,独立分量分析可能要求事先知道源的确定数量。相应地,在一个实施例中,可以根据例如麦克风阵列中的工作麦克风中数量来确定源的数量。在另外的实施例中,在采用盲源分离或者其他方式分离混合信号的过程中,也可以将混合信号分离成固定数量(例如,两个或者大于2的任何其他固定数量)的信号,而不考虑实际的源的数量如何。

在一个实施例中,针对包括一个或多个帧的一个混合信号,可以在步骤s10中将整体混合信号分离成至少两个分离信号。在另一个实施例中,可以分别针对该混合信号的每个帧执行步骤s10,例如,在接收到每个帧时实时地针对所接收到的一个帧执行步骤s10,从而每次仅分离该混合信号的一部分。在另一个实施例中,可以针对混合信号的一部分(例如连续的一个或多个帧)执行步骤s10。

在一个实施例中,可以将混合信号分离成一对分离信号,或者可以例如针对源的数量或者根据随后要在步骤s30中执行的自适应滤波的数量,将混合信号分离成与源的数量或自适应滤波的数量相对应的数量的多对分离信号。然后,可以在步骤s20中,分别从每对分离信号中选择当前参考信号和当前期望信号,并在步骤s30中基于所选择的当前参考信号和当前期望信号执行相应的自适应滤波。

在另外的实施例中,可以根据需要将混合信号分离为至少两个分离信号。然后,可以根据所获得的一个或多个分离信号来获得或生成第一信号,使得第一信号对应于一个或多个分离信号的集合,或者对应于一个或多个分离信号的组合信号,或者对应于在对前述的集合或组合信号进行进一步处理之后所获得的信号。类似地,可以根据所获得的一个或多个分离信号来获得或生成第二信号,使得第二信号对应于一个或多个分离信号的集合,或者对应于一个或多个分离信号的组合信号,或者对应于在对前述的集合或组合信号进行进一步处理之后所获得的信号。

根据不同的实施例,分别用于生成第一信号和第二信号的一个或多个分离信号可以不完全相同,并且可以具有或者不具有分离信号的交集。

也就是说,根据不同的实施例,与步骤s30中的自适应滤波相对应的每对信号中的每个信号可以包括从混合信号分离出的多个信号中一个或多个信号或者来自于从混合信号分离出的多个信号中一个或多个信号;并且从总体上看,步骤s10中的第一信号的数量可以是一个或多个,并且第二信号的数量也可以是一个或多个。

例如,假设通过包括三个麦克风的麦克风阵列获得混合信号并且无法直接通过硬件获得参考信号,则在期望分别针对每个麦克风所采集到的信号(或者每个各个源的信号)进行去噪或降噪的情况下,可以将所获得的混合信号分离为多个信号,例如2个、3个或者更多。

然后,可以分别针对每个麦克风,根据一个信号或一组信号(例如,被判断为与该麦克风相关的一个或多个信号的组合信号,或者一个或多个信号的集合)来获得或形成第一信号,并且可以根据另外的一个信号或一组信号(例如,被用作第一信号的信号或被用于形成第一信号的信号之外的其他所有信号的集合或组合信号)来获得或形成第二信号,从而针对每个麦克风获得一对相应的第一信号和第二信号,并且从总体上获得一个或多个第一信号以及一个或多个第二信号。

在下文中,为了描述上的方便,以将混合信号分离成两个信号s1(n)和s2(n)为例,来描述根据本公开的实施例的方法的原理。

在步骤s10之后,可以以信号的每个帧为单位来执行步骤s20和s30,即,假设在步骤s10中例如通过盲源分离获得两个信号s1(n)和s2(n),其中,1≤n≤kn,k是信号s1(n)和s2(n)中的每一个中的帧的数量(如果在步骤s10中针对混合信号的每个帧执行盲源分离,则k=1),n是每个帧中的采样点的数量,则对于从1计数到k的每个k(即,每个当前帧),可以针对每对s1(nk)和s2(nk)(其中,(k-1)n+1≤nk≤kn)执行步骤s20和s30。

根据本公开的实施例,在步骤s20中,可以根据与s1(nk)和s2(nk)相关联的能量信息,来确定当前可以选择s1(n)和s2(n)中的哪一个作为用于自适应滤波的参考信号。

在一个实施例中,可以根据信号s1(n)或s2(n)的当前帧s1(nk)或s2(nk)中的所有采样点的幅度的平方和来确定当前帧s1(nk)或s2(nk)的当前能量。

例如,可以先根据下面的等式分别计算出信号s1(n)或s2(n)的当前帧s1(nk)或s2(nk)的当前能量e1(k)或e2(k):

其中,sa1(i)或sa2(i)表示信号s1(n)或s2(n)的当前帧s1(nk)或s2(nk)中的采样点i的幅度。

然后,可以根据当前帧s1(nk)或s2(nk)的当前能量e1(k)或e2(k)与信号s1(n)或s2(n)在当前帧s1(nk)或s2(nk)之前的一段预定时间段内的先前长时能量之间的加权和,来确定信号s1(n)或s2(n)的与当前帧s1(nk)或s2(nk)有关的当前长时能量。在一个实施例中,用于当前能量e1(k)或e2(k)的权重与用于先前长时能量的权重之和可以是1。

在一个实施例中,先前长时能量可以是信号s1(n)或s2(n)在当前帧s1(nk)或s2(nk)之前的一段预定时间段内的平均能量。

在另一个实施例中,可以根据下面的等式来递归地计算出信号s1(n)或s2(n)的与当前帧s1(nk)或s2(nk)相关的当前长时能量el1(k)或el2(k):

el1(k)=a1el1(k-1)+b1e1(k)(3)

el2(k)=a2el2(k-1)+b2e2(k)(4)

其中,el1(k-1)或el2(k-1)是在当前帧s1(nk)或s2(nk)之前的先前长时能量,el1(0)和el2(0)可以被预先设置为一个初始值(例如,0或者某个经验值)。对于el1(k),a1和b1分别为用于el1(k-1)和e1(k)的权重。在一个实施例中,a1和b1可以均大于或等于0。在一个实施例中,a1和b1之和可以等于1。根据不同的实施例,针对不同帧(即,不同的k值)的el1(k),所选择的权重a1和b1可以相同,也可以不同。类似地,对于el2(k),a2和b2分别为用于el2(k-1)和e2(k)的权重。在一个实施例中,a2和b2可以均大于或等于0。在一个实施例中,a2和b2之和可以等于1。根据不同的实施例,针对不同帧(即,不同的k值)的el2(k),所选择的权重a2和b2可以相同,也可以不同。

然后,可以根据当前能量e1(k)或e2(k)和当前长时能量el1(k)或el2(k)来计算信号s1(n)或s2(n)的当前能量比。在一个实施例中,可以根据下面的等式计算出s1(n)或s2(n)的当前能量比r1(k)或r2(k):

r1(k)=e1(k)/(el1(k)+δ1)(5)

r2(k)=e2(k)/(el2(k)+δ2)(6)

其中,δ1或δ2为相应的调整量,其可以是任意常数(包括0),例如可以是任意很小的正数(例如,10-6),只要确保在执行除法运算时不会出现除零错误即可。根据不同的实施例,δ1和δ2可以相同,也可以不同。

然后,可以根据所得到的s1(n)的当前能量比r1(k)和s2(n)的当前能量比r2(k)来确定在第k帧时选择s1(n)和s2(n)中的哪一个作为当前的参考信号。

在一个实施例中,可以根据下面的表格1来确定在第k帧时选择s1(n)和s2(n)中的哪一个作为当前的参考信号。

表格1

根据表格1,先分别将当前能量比r1(k)和r2(k)与阈值th进行比较(条件1)。在不同的实施例中,阈值th可以根据所处理的信号的类型和实际需要来预先设置。例如,对于经归一化的音频信号,阈值th可以为9*10-6

在r1(k)≥th并且r2(k)≥th的情况下,可以进一步地比较r1(k)和r2(k)(条件2),从而根据进一步的比较结果来选择将s1(n)和s2(n)中的哪一个选择为当前参考信号。

在不满足条件“r1(k)≥th并且r2(k)≥th”的情况下,可以选择s1(n)和s2(n)中的任何一个作为当前参考信号,或者可以根据在前一帧(即,第k-1帧)时的选择来确定当前参考信号。例如,如果在前一帧时s1(n)被选择为参考信号,则对于当前帧,可以继续使用s1(n)作为当前参考信号,否则可以使用s2(n)作为当前期望信号。在另外的示例中,如果在前一帧时s1(n)被选择为参考信号,则对于当前帧,也可以根据需要改用s2(n)作为当前参考信号,并且改用s1(n)作为当前期望信号。

在根据前一帧的选择来确定在当前帧时将s1(n)和s2(n)中的哪一个选择为当前参考信号的情况下,如果s1(n)的当前帧和s2(n)的当前帧分别是s1(n)和s2(n)的初始帧,即,当前帧的索引值k为1,则初始地,可以将s1(n)和s2(n)中的任何一个设置为当前参考信号。在一个实施例中,这样的初始化设置可以在针对s1(n)和s2(n)的初始帧(k=1)执行表格1中的检查之前(例如,在系统初始化时)完成。

在另外的实施例中,可以在处理s1(n)和s2(n)的初始帧时或者在系统的初始化时,固定地选择s1(n)和s2(n)中的一个作为当前参考信号。例如,固定地选择s1(n)作为当前参考信号。

当s1(n)和s2(n)中的一个被选择为当前参考信号时,s1(n)和s2(n)中的另一个相应地成为当前期望信号。

在选择出作为第k帧(当前帧)时的当前参考信号和当前期望信号之后,方法可以继续到步骤s30,从而根据所选择的当前参考信号和当前期望信号来执行自适应滤波。

例如,可以采用m维的自适应滤波器进行时域自适应滤波,其中,该滤波器的系数可以是w(j)=[w1,w2,…,wm]t,相应的初始值w(0)=[0,0,…,0]t,t为转置操作。

在该示例中,对于在每个当前帧(即,第k帧)中的每个采样点p(1≤n≤n),通过自适应滤波获得的相应的误差值为e(p)=d(p)-w(p-1)tx(p),其中,x(p)=[x(p),x(p-1),…,x(p-m+1)],d(·)和x(·)分别表示当前参考信号和当前期望信号中的采样点。如果x(p)中的某个x(·)的索引值小于或等于0,则该x(·)的值可以为0。例如,如果m=4,p=2,则x(2)=[x(2),x(1),x(0),x(-1)]=[x(2),x(1),0,0]。可以将自适应滤波器的系数调整为w(p)=w(p-1)+μe(p)x(p-1),其中,μ为调整系数,例如单次调节的步长。

由此,在第k帧时,可以根据当前参考信号和当前期望信号(以及可能地,所有的先前参考信号)来确定与误差信号的第k帧,进而根据所获得的误差信号来实现降噪。

在上述的示例中,在步骤s30中采用时域自适应滤波。然而,本公开并不局限于自适应滤波的类型和实现方式。例如,在另外的实施例中,可以采用频域自适应滤波,并且可以采用线性或非线性的自适应滤波。另外,本公开也不局限于所采用的自适应滤波器的维度以及系数的调整方式。

通过根据本公开的实施例的方法,即使在无法直接从硬件获得有效的参考信号的情况下,也能够有效地消除残留噪声。实验数据表明,根据本公开的实施例的方法能够显著地提高信噪比。

图2示出根据本公开的实施例的能够实现上述方法的装置的结构图。如图2所示,根据本公开的装置可以包括信号分离器ss、信号选择器sel和自适应滤波器af。

信号分离器ss可以被配置为分离所接收的混合信号y(n)以获得信号s1(n)和s2(n),即执行上述方法的步骤s10。在一个实施例中,信号分离器ss可以被配置为基于独立分量分析对混合信号执行盲源分离,并且相应地可以包括混合矩阵电路、学习网络和被配置为执行学习算法的算法处理器。在另外的实施例中,信号分离器ss可以包括一个或多个处理器(例如,通用处理器),以执行上述方法的步骤s10。

信号选择器sel可以被配置为例如以帧为单位来选择信号s1(n)和s2(n)中的一个作为当前参考信号x(n),并相应地将s1(n)和s2(n)中的另一个作为当前期望信号d(n),即,执行上述方法的步骤s20。在一个实施例中,信号选择器sel可以包括:能量检测器(未示出),其被配置为检测每个采样点的能量并计算步骤s20中所需的能量信息;比较器(未示出),其被配置为比较来自能量检测器的能量比信息;以及信号切换开关,其被配置为根据比较器的输出结果,建立和切换s1(n)和s2(n)与自适应滤波器af的参考信号输入端和期望信号输入端之间的连接。在另外的实施例中,信号选择器sel可以包括一个或多个处理器(例如,通用处理器),以执行上述方法的步骤s20。

自适应滤波器af的数量可以是一个或多个,并且每个自适应滤波器af可以被配置为根据来自参考信号输入端的当前参考信号x(n)、来自期望信号输入端的当前期望信号d(n)以及从自身的误差信号输出端反馈回来的误差信号e(n),来执行自适应滤波。在另外的实施例中,自适应滤波器af可以包括一个或多个处理器(例如,通用处理器),并且可通过这样的一个或多个处理器来实现虚拟的自适应滤器或者执行自适应滤波算法。

根据另外的实施例中,能够实现根据本公开的实施例的方法的装置可以包括一个或多个处理器(例如,通用处理器),并且可以将这样的一个或多个处理器可以被配置为执行根据本公开的实施例的方法的步骤。

在一个实施例中,装置还可以包括存储器。存储器可以包括各种形式的计算机可读写存储介质,例如易失性存储器和/或非易失性存储器。易失性存储器例如可以包括随机存取存储器(ram)和/或高速缓冲存储器(cache)等。非易失性存储器例如可以包括只读存储器(rom)、硬盘、闪速存储器等。可读写存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。存储器可以包括在被执行时可执行根据本公开的实施例的方法的程序指令。

另外,装置还可以输入/输入接口以及诸如麦克风阵列或模拟数字转换器这样的信号采集装置或部件。

已经描述了本公开的一些实施例,但是这些实施例仅作为示例而呈现,而不打算限制本公开的范围。实际上,在本文中所描述的方法和装置可以采用多种其他形式来实施。另外,可以在不脱离本公开的范围的情况下,在本文中所描述的方法和装置的形式上做出各种省略、替换和改变。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1