具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
图1是根据本发明的一个实施例的确定自适应滤波器的稳定因子的方法100的示意性流程图。图1可以由确定自适应滤波器的稳定因子的装置来执行,如图1所示的方法100,包括:
110,根据输入到自适应滤波器的第一输入信号,确定该第一输入信号的参考输入矩阵;
120,根据参考输入矩阵,确定第一输入信号的稳定性参数;
130,根据稳定性参数,确定自适应滤波器的稳定因子。
具体地,在本发明实施例中,确定自适应滤波器的稳定因子的装置可以获取当前时刻输入到自适应滤波器的第一输入信号和多个历史时刻输入到自适应滤波器的第一输入信号,构建参考输入矩阵,并根据参考输入矩阵确定第一输入信号的稳定性参数,该装置可以根据稳定性参数确定自适应滤波器的稳定因子。
因此,本发明实施例提供的确定自适应滤波器的稳定因子的方法,通过根据自适应滤波器的第一输入信号的参考输入矩阵确定的该第一输入信号的稳定性参数,确定该自适应滤波器的稳定因子,能够实现根据第一输入信号的稳定性特点自适应的获取自适应滤波器的稳定因子,从而能够使得自适应滤波器在收敛速度与稳态误差性能上达到平衡。
具体地,在本发明实施例中,在110中,自适应滤波器可以获取的当前时刻输入到自适应滤波器的第一输入信号和多个历史时刻输入到自适应滤波器的第一输入信号,该第一输入信号可以以信号向量的形式输入到自适应滤波器,并且可以根据自适应滤波器采用的自适应滤波算法,利用该第一输入信号构建参考输入矩阵。
应理解,在本发明实施例中,由于自适应滤波器可以采用不同的算法,所以根据第一输入信号构建的参考输入矩阵包括L×1维的向量或L×p维的矩阵。也就是说,参考输入矩阵可以是向量,也可以是矩阵,本发明对此不做限定。
例如:自适应滤波器可以采用归一化最小均方(Normalized Least MeanSquares,NLMS)算法,可以根据第一输入信号,构建参考输入矩阵x(n):
x(n)=[x(n),x(n-1),...,x(n-L+1)]T,
其中,x(n)为第n时刻的第一输入信号,L为自适应滤波器的长度。即:可以根据第n时刻的第一输入信号和从第n时刻起之前的L-1个时刻的L-1个第一输入信号,构建参考输入矩阵,该参考输入矩阵为L×1的参考输入向量。换句话说,在NLMS算法中,可以根据第n时刻和第n时刻之前的L-1个时刻的L-1个第一输入信号,构建参考输入向量x(n),并根据该参考输入向量x(n),确定第一输入信号的稳定性参数,再根据确定的该稳定性参数,确定第n时刻的自适应滤波器的稳定因子。
再如:自适应滤波器可以采用基于仿射投影(Affine ProjectionAlgorithm,APA)算法,可以根据第一输入信号,构建参考输入矩阵X(n):
其中,x(n)为第n时刻的第一输入信号,L为自适应滤波器的长度,p为自适应滤波器的阶数,是参考输入矩阵X(n)的列数。
可选地,作为一个实施例,在120中,可以对参考输入矩阵进行转置,得到转置矩阵;将该转置矩阵与参考输入矩阵相乘,得到第一矩阵;将该第一矩阵的行列式的值确定为稳定性参数。
在本发明实施例中,可以将根据第一输入信号构建的参考输入矩阵与该参考输入矩阵的转置矩阵的乘积确定为第一矩阵,再将该第一矩阵的行列式的值确定为该第一输入信号的稳定性参数α,并根据确定的稳定性参数α,确定自适应滤波器的稳定因子。
可替代地,也可以将参考输入矩阵进行转置,得到转置矩阵;将该转置矩阵与参考输入矩阵相乘的结果与一个正实数的和,确定为第一矩阵;将该第一矩阵的行列式的值确定为当前时刻的第一输入信号的稳定性参数,从而可以使得该行列式的值是一个非零的正数。
例如:自适应滤波器采用NLMS算法时,可以根据以下等式确定第一输入信号的稳定性参数α,即:稳定性参数α是表征根据第一输入信号构建的参考输入向量x(n)的自相关特性的一个参数,
α=|x(n)T·x(n)|
或者,可以根据以下等式确定第一输入信号的稳定性参数α,
α=|x(n)T·x(n)+δ|
其中,x(n)为第n时刻的参考输入向量,x(n)T为参考输入向量x(n)的转置向量,δ为一实数,且δ的取值可以在1-105范围内,例如:δ可以取105。
再如:自适应滤波器采用APA算法时,可以根据以下等式确定第一输入信号的稳定性参数α,即:稳定性参数α是表征根据第一输入信号构建的参考输入矩阵X(n)的自相关特性的一个参数,
α=|X(n)T·X(n)|
或者,可以根据以下等式确定第一输入信号的稳定性参数α,
α=|X(n)T·X(n)+δ|
其中,X(n)为第n时刻的参考输入矩阵,X(n)T为参考输入矩阵X(n)的转置矩阵,δ为一实数,且δ的取值可以在1-105范围内,例如:δ可以取105。
可选地,作为另一实施例,在120中,可以将参考输入矩阵进行转置,得到转置矩阵;将该转置矩阵与参考输入矩阵相乘,得到第二矩阵;将该第二矩阵的行列式的值取对数后确定为稳定性参数。
在本发明实施例中,可以将根据第一输入信号构建的参考输入矩阵与该参考输入矩阵的转置矩阵的乘积确定为第二矩阵;将该第二矩阵的行列式的值取对数得到的结果确定为该第一输入信号的稳定性参数α,并根据确定的稳定性参数α,确定自适应滤波器的稳定因子。从而根据确定的稳定性参数α,确定自适应滤波器的稳定因子。
因此,根据本发明实施例的方法,在对数域确定第一输入信号的稳定性参数α,可以有效的缩小稳定性参数α的取值范围,从而能更容易地确定自适应滤波器的稳定因子的取值。
可替代地,也可以将参考输入矩阵进行转置,得到转置矩阵;将该转置矩阵与参考输入矩阵相乘的结果与一个正实数的和,确定为第二矩阵;将该第二矩阵的行列式的值取对数得到的结果确定为第一输入信号的稳定性参数,从而可以使得该行列式的值是一个非零的正数。
例如:自适应滤波器采用NLMS算法时,可以根据以下等式确定第一输入信号的稳定性参数α,即:稳定性参数α是表征根据第一输入信号构建的参考输入向量x(n)的自相关特性的一个参数,
α=log|x(n)T·x(n)|
或者,可以根据以下等式确定第一输入信号的稳定性参数α,
α=log|x(n)T·x(n)+δ|
其中,x(n)为第n时刻的参考输入向量,x(n)T为参考输入向量x(n)的转置向量,δ为一实数,且δ的取值可以在1-105范围内,例如:δ可以取105。
应理解,在本发明实施例中,对数的底数可以为10,即:α=lg|x(n)T·x(n)|,也可以为e,即:α=ln|x(n)T·x(n)|,还可以为其他常数,本发明实施例对此并不做限定。
再如:自适应滤波器采用APA算法时,可以根据以下等式确定第一输入信号的稳定性参数α,即:稳定性参数α是表征根据第一输入信号构建的参考输入矩阵X(n)的自相关特性的一个参数,
α=log|X(n)T·X(n)|
或者,可以根据以下等式确定第一输入信号的稳定性参数α,
α=log|X(n)T·X(n)+δ|
其中,X(n)为第n时刻的参考输入矩阵,X(n)T为参考输入矩阵X(n)的转置矩阵,δ为一实数,且δ的取值可以在1-105范围内,例如:δ可以取105。
应理解,在本发明实施例中,对数的底数可以为10,即:α=lg|X(n)T·X(n)|,也可以为e,即:α=ln|X(n)T·X(n)|,还可以为其他常数,本发明实施例对此并不做限定。
可选地,作为另一实施例,在130中,可以根据稳定因子与稳定性参数的递减函数关系,确定稳定因子。换句话说,稳定因子的取值随着稳定性参数的取值的增加而减小。
可替换地,也可以根据稳定因子与稳定性参数的反比关系,确定自适应滤波器的稳定因子。换句话说,当稳定性参数的取值大时,稳定因子的取值小;当稳定性参数的取值小时,稳定因子的取值大。当稳定性参数的取值大时,第一输入信号的相关性就高,稳定性较好,可以选取一个相对较小的稳定因子来提升收敛速度;而当稳定性参数的取值小时,第一输入信号的相关性较低,稳定性相对较差,可以选取一个相对较大的稳定因子,从而能够避免由于自适应滤波器系数的更新速率过快造成的自适应滤波器发散的问题。
应理解,在本发明实施例中,可以确定稳定因子为该稳定性参数的线性递减函数,或者,也可以确定稳定因子为该稳定性参数的反比关系的函数,例如:kδ=B·A-Cα,其中,kδ为稳定因子,α为稳定性参数,且kδ和α均为正数,A、B、C均为常数,但本发明实施例并不仅限于此,还可以是其他形式的递减函数关系式。
可选地,作为另一实施例,在130中,当稳定性参数大于或者等于第一阈值,且小于或者等于第二阈值时,可以根据以下函数关系式确定稳定因子kδ,
kδ=Aα+B,
其中,α为所述稳定性参数,A为小于0的实数,B为大于0的实数。
具体地,在本发明实施例中,当稳定性参数大于或者等于第一阈值α1,且小于或者等于第二阈值α2时,可以确定稳定因子kδ为该稳定性参数α的线性递减函数。由于稳定因子kδ为稳定性参数α的线性递减函数,因此,使得确定稳定因子kδ的算法更加简单且容易实现。
应理解,在本发明实施例中,第一阈值和第二阈值可以根据经验值确定,第一阈值α1可以在0到10或1到1010范围内,第二阈值α2可以在0到10或1到1010范围内。
可选地,作为另一实施例,在130中,当稳定性参数小于或者等于第三阈值时,确定稳定因子为第一常数;当稳定性参数大于或者等于第四阈值时,确定稳定因子为第二常数,其中,第三阈值小于第四阈值,所述第一常数和所述第二常数均为大于0的数,且所述第一常数大于所述第二常数。
具体地,在本发明实施例中,自适应滤波器接收第一输入信号,当第一输入信号的稳定性参数小于或者等于第三阈值α3时,可以确定稳定因子为C1;当该第一输入信号的稳定性参数大于或者等于第四阈值α4时,确定稳定因子为C2,其中,C1、C2均为大于0的数,且C1大于C2;当该第一输入信号的稳定性参数大于第三阈值α3小于第四阈值α4时,也可以根据下列线性关系式确定稳定因子kδ,稳定因子kδ为稳定性参数α的线性递减函数,
kδ=Aα+B,
其中,A为小于0的实数,且A的取值为C2和C1的差值与第四阈值α4和第三阈值α3的差值的比值,即:B为大于0的实数,且B的取值为第四阈值α4与第三阈值α3和A的乘积的差值,即:B=α4-A·α3。
应理解,在本发明实施例中,C1和C2可以根据经验值确定,C1可以在105-1010范围内,C2可以在105-1010范围内。第三阈值和第四阈值也可以根据经验值确定,第三阈值α3可以在0到10或1到1010范围内,第四阈值α4可以在0到10或1到1010范围内。
可选地,作为另一实施例,如图2所示,方法100还包括:
140,根据输入到自适应滤波器的第二输入信号,确定该第二输入信号的输入向量;
150,根据输入向量和参考输入矩阵,确定当前时刻的输出信号;
160,根据参考输入矩阵、输出信号、稳定因子和自适应滤波器的更新步长,确定自适应滤波器的滤波系数。
具体地,在本发明实施例中,确定自适应滤波器的稳定因子的装置还可以获取当前时刻输入到自适应滤波器的第二输入信号和多个历史时刻输入到自适应滤波器的第二输入信号构建输入向量,并根据该输入向量确定当前时刻的输出信号,该装置可以再根据参考输入矩阵、输出信号和稳定因子,以及自适应滤波器的更新步长确定自适应滤波器的系数。
因此,本发明实施例提供的确定自适应滤波器的稳定因子的方法,通过根据自适应滤波器的第一输入信号的参考输入矩阵确定的该第一输入信号的稳定性参数,确定该自适应滤波器的稳定因子,能够实现根据第一输入信号的稳定性特点自适应的获取自适应滤波器的稳定因子,从而能够使得自适应滤波器在收敛速度与稳态误差性能上达到平衡。
应理解,在本发明实施例中,可以根据当前时刻确定的稳定因子,为自适应滤波器确定新的滤波系数,或者也可以根据当前时刻确定的稳定因子,对当前时刻的自适应滤波器的滤波系数进行更新,本发明实施例并不局限于此。
例如:自适应滤波器可以采用NLMS算法,可以根据以下等式确定第n时刻的输出信号e(n),
e(n)=d(n)-x(n)Th(n)
其中,d(n)为根据第二输入信号构建的输入向量,x(n)T为第n时刻的参考输入向量x(n)的转置向量,h(n)为第n时刻的自适应滤波器系数,且
h(n)=[hn(0),...,hn(L-1)]T,
其中,L为自适应滤波器的长度。
根据参考输入向量x(n)、输出信号e(n)、稳定因子kδ和自适应滤波器的更新步长μ,确定第n+1时刻的自适应滤波器系数h(n+1),可以根据以下等式确定自适应滤波器的滤波系数h(n+1),
或者,可以根据参考输入向量x(n)、输出信号e(n)、稳定因子kδ和自适应滤波器的更新步长μ,更新第n时刻的自适应滤波器系数h(n),可以根据上述等式确定更新后的自适应滤波器的滤波系数h(n+1)。
其中,h(n)为第n时刻的自适应滤波器系数,h(n+1)为第n+1时刻的自适应滤波器系数,μ为自适应滤波器的更新步长,kδ为自适应滤波器的稳定因子,||x(n)||2为第n时刻的参考输入向量x(n)的2-范数的平方,e(n)为输出信号。
再如:自适应滤波器可以采用APA算法,可以根据以下等式确定第n时刻的输出信号e(n),
e(n)=[e(n),e(n-1),...,e(n-p+1)]T,且e(n)=d(n)-X(n)Th(n)
其中,X(n)T为第n时刻的参考输入矩阵X(n)的转置矩阵,d(n)为根据第二输入信号构建的输入向量,h(n)为第n时刻的自适应滤波器系数,且
h(n)=[hn(0),...,hn(L-1)]T,
其中,L为自适应滤波器的长度。
根据参考输入矩阵X(n)、输出信号e(n)、稳定因子kδ和适应滤波器的更新步长μ,确定第n+1时刻的自适应滤波器系数h(n+1),可以根据以下等式确定自适应滤波器的滤波系数h(n+1),
h(n+1)=h(n)+μX(n)[X(n)TX(n)+kδI]-1·e(n),
或者,可以根据参考输入矩阵X(n)、输出信号e(n)、稳定因子kδ和适应滤波器的更新步长μ,更新第n时刻的自适应滤波器系数h(n),可以根据上述等式确定更新后的自适应滤波器的滤波系数h(n+1)。
其中,h(n)为第n时刻的自适应滤波器系数,h(n+1)为第n+1时刻的自适应滤波器系数,μ为自适应滤波器的更新步长,kδ为自适应滤波器的稳定因子,X(n)为第n时刻的参考输入矩阵,e(n)为输出信号,I为单位矩阵,[]-1表示对矩阵进行逆运算。
下面结合图3和图4以确定自适应滤波器的滤波系数为例,更加详细地描述根据本发明实施例的确定自适应滤波器的稳定因子的方法的技术方案。
图3示出了根据本发明实施例的确定自适应滤波器的滤波系数的方法300的示意性流程图。自适应滤波器可以为采用APA算法的回声消除算法中的自适应滤波器,如图3所示的方法300包括:
310,根据输入到自适应滤波器的第一输入信号,确定该第一输入信号的参考输入矩阵。
具体地,在根据输入到自适应滤波器的第一输入信号,确定该第一输入信号的参考输入矩阵之前,获取输入到自适应滤波器的第K帧第一输入信号R。第K帧第一输入信号R可以表示为:
R=[R((k-1)*Lf),...,R((k-1)*Lf+Lf-1)]
其中,Lf表示每帧第一输入信号的帧长,例如,可以取Lf=320,但本发明实施例并不仅限于此,Lf还可以取其他正整数。需要说明的是,在第K帧第一输入信号R中,Lf是第K帧第一输入信号包括的第一输入信号的采样个数,即:第一输入信号R为Lf×1的一个向量。
APA算法中的仿射投影阶数为p,则可以将第K帧第一输入信号R分为Lf/p个子帧,例如:可以取p=8,第K帧第一输入信号R可以包括40个子帧的第一输入信号,但本发明实施例并不仅限于此,仿射投影阶数p可以根据APA算法的设计需要选取适当的正整数。
在本发明实施例中,可以将第K帧第一输入信号R的第m子帧第一输入信号Rm作为第n时刻的第一输入信号。第m子帧第一输入信号Rm可以表示为:
可以根据第K帧第一输入信号R的第m子帧第一输入信号Rm和多个历史时刻输入自适应滤波器的第一输入信号,构建第一输入信号的参考输入矩阵X(n):
其中,n=(k-1)*Lf+(m-1)*p,L为自适应滤波器的长度,p为自适应滤波器的阶数,是参考输入矩阵X(n)的列数,例如:自适应滤波器的阶数可以设置成8,自适应滤波器的长度可以设置成200,则根据第1帧第一输入信号的第1子帧的第一输入信号以及历史时刻输入自适应滤波器的第一输入信号,构建的参考输入矩阵可以表示为:
320,根据310中确定的参考输入矩阵,确定第一输入信号的稳定性参数。
具体地,可以对参考输入矩阵进行转置,得到转置矩阵,并将该转置矩阵与该参考输入矩阵相乘,得到第一矩阵,将该第一矩阵的行列式确定为稳定性参数α。例如:可以根据以下等式确定第一输入信号的稳定性参数α,即:稳定性参数α是表征根据第一输入信号构建的参考输入矩阵X(n)的自相关特性的一个参数,
α=|X(n)T·X(n)|
其中,X(n)为第n时刻的参考输入矩阵,X(n)T为参考输入矩阵X(n)的转置矩阵。
可替代地,也可以将参考输入矩阵进行转置,得到转置矩阵,并将该转置矩阵与参考输入矩阵相乘的结果与一个实数的和,确定为第一矩阵,将该第一矩阵的行列式的值确定为第一输入信号的稳定性参数,从而可以使得该行列式的值是一个非零的正数。例如:可以根据以下等式确定第一输入信号的稳定性参数α,
α=|X(n)T·X(n)+δ|
其中,δ为一实数,且δ的取值可以在1-105范围内,例如:δ可以取105。
可替换地,还可以将参考输入矩阵进行转置,得到转置矩阵,并将该转置矩阵与该参考输入矩阵相乘,得到第二矩阵,将该第二矩阵的行列式取对数得到的结果确定为稳定性参数α。例如:可以根据以下等式确定第一输入信号的稳定性参数α,即:稳定性参数α是表征根据第一输入信号构建的参考输入矩阵X(n)的自相关特性的一个参数,
α=log|X(n)T·X(n)|
其中,X(n)为第n时刻的参考输入矩阵,X(n)T为参考输入矩阵X(n)的转置矩阵。
应理解,在本发明实施例中,对数的底数可以为10,即:α=lg|X(n)T·X(n)|,也可以为e,即:α=ln|X(n)T·X(n)|,还可以为其他常数,本发明实施例对此并不做限定。
可替代地,也可以将参考输入矩阵进行转置,得到转置矩阵,并将该转置矩阵与参考输入矩阵相乘的结果与一个实数的和,确定为第二矩阵,将该第二矩阵的行列式的值取对数得到的结果确定为第一输入信号的稳定性参数,从而可以使得该行列式的值是一个非零的正数。例如:可以根据以下等式确定第一输入信号的稳定性参数α,
α=log|X(n)T·X(n)+δ|
其中,δ为一实数,且δ的取值可以在1-105范围内,例如:δ可以取105。
330,根据320中确定的稳定性参数,确定自适应滤波器的稳定因子。
具体地,当稳定性参数小于或者等于第三阈值α3时,确定稳定因子为第一常数C1;当稳定性参数大于或者等于第四阈值α4时,确定稳定因子为第二常数C2,其中,α3小于α4,C1、C2均为大于0的数,且C1大于C2。当稳定性参数大于第三阈值α3小于第四阈值α4时,可以根据稳定因子与稳定性参数的递减函数关系和稳定性参数,确定稳定因子。例如:可以根据以下函数关系式确定稳定因子kδ,
kδ=Aα+B
其中,α为稳定性参数,A为小于0的实数,B为大于0的实数。
应理解,在本发明实施例中,当第一输入信号的稳定性参数大于第三阈值小于第四阈值时,也可以确定稳定因子为该稳定性参数的反比关系的函数,例如:kδ=B·A-Cα,其中,kδ为稳定因子,α为稳定性参数,A、B、C均为常数,但本发明实施例并不仅限于此。
综上所述,在本发明实施例中,可以根据以下关系式,确定稳定因子kδ,
其中,α3表示第三阈值,α4表示第四阈值,且,α3<α4,B=α4-A·α3。
应理解,在本发明实施例中,C1和C2可以根据经验值确定,C1可以在105-1010范围内,C2可以在105-1010范围内,例如,C1可以取106,C2可以取5×107。
还应理解,在本发明实施例中,第三阈值和第四阈值可以根据经验值确定,当α=|X(n)T·X(n)|或α=|X(n)T·X(n)+δ|时,第三阈值α3可以在0到1010范围内,第四阈值α4可以在0到1010范围内,且α3<α4;当α=log|X(n)T·X(n)|或α=log|X(n)T·X(n)+δ|时,第三阈值α3可以在1到10范围内,第四阈值α4可以在1到10范围内,且α3<α4,例如,α3可以取1.5,α4可以取2.5,δ可以取105。
340,根据输入到自适应滤波器的第二输入信号,确定该第二输入信号的输入向量。
具体地,在根据输入到自适应滤波器的第二输入信号,确定该第二输入信号的输入向量之前,获取输入到自适应滤波器的第K帧第二输入信号S。第K帧第二输入信号S可以表示为:
S=[S((k-1)*Lf),...,S((k-1)*Lf+Lf-1)]
其中,Lf表示每帧第二输入信号的帧长,例如,可以取Lf=320,但本发明实施例并不仅限于此,Lf还可以取其他正整数。需要说明的是,在第K帧第二输入信号S中,Lf是第K帧第二输入信号包括的第二输入信号的采样个数,即:第二输入信号S为Lf×1的一个向量。
APA算法中的仿射投影阶数为p,则可以将第K帧第二输入信号S分为Lf/p个子帧,例如:可以取p=8,第K帧第二输入信号S可以包括40个子帧的第二输入信号,但本发明实施例并不仅限于此,仿射投影阶数p可以根据APA算法的设计需要选取适当的正整数。
在本发明实施例中,可以将第K帧第二输入信号S的第m子帧第二输入信号Sm作为第n时刻的第二输入信号。第m子帧第二输入信号Sm可以表示为:
Sm=[S((k-1)*Lf+(m-1)*p),...,S((k-1)*Lf+m*p-1)]。
可以根据第K帧第二输入信号S的第m子帧第二输入信号Sm,构建输入向量d(n):
d(n)=[S(n),…,S(n-p+1)]T,
其中,n=(k-1)*Lf+(m-1)*p,p为自适应滤波器的阶数,是输入向量d(n)的行数。例如:自适应滤波器的阶数可以设置成8,自适应滤波器的长度可以设置成200,则根据第1帧第二输入信号的第1子帧的第二输入信号以及历史时刻输入自适应滤波器的第二输入信号,构建的输入向量可以表示为:
d(0)=[S(0),S(-1),…,S(-7)]T
350,根据310中确定的参考输入矩阵和340中确定的输入向量,以及当前时刻的自适应滤波器系数,确定当前时刻的输出信号。
具体地,可以根据参考输入矩阵X(n)和输入向量d(n),以及当前时刻的自适应滤波器系数,确定第n时刻的输出信号e(n)。例如:可以根据以下等式来确定输出信号e(n),
e(n)=[e(n),e(n-1),...,e(n-p+1)]T,
且有,e(n)=d(n)-X(n)Th(n),
其中,X(n)T为第n时刻的参考输入矩阵X(n)的转置矩阵,d(n)为第n时刻的输入向量,h(n)为第n时刻自适应滤波器的系数,且
h(n)=[hn(0),...,hn(L-1)]T
其中,L为自适应滤波器的长度。
360,根据310中确定参考输入矩阵、330中确定的稳定因子和350中确定的输出信号,以及自适应滤波器的更新步长,确定自适应滤波器的滤波系数。
具体地,可以根据输出信号e(n)和稳定因子kδ,以及自适应滤波器的更新步长,确定第n+1时刻的自适应滤波器系数h(n+1),可以根据以下等式确定自适应滤波器的滤波系数h(n+1),
h(n+1)=h(n)+μX(n)[X(n)TX(n)+kδI]-1·e(n),
其中,h(n)为第n时刻的自适应滤波器系数,h(n+1)为第n+1时刻的自适应滤波器系数,μ为自适应滤波器的更新步长,kδ为自适应滤波器的稳定因子,X(n)为第n时刻的参考输入矩阵,e(n)为输出信号向量,I为单位矩阵,[]-1表示对矩阵进行逆运算。
因此,本发明实施例提供的确定自适应滤波器的稳定因子的方法,通过根据自适应滤波器的第一输入信号的参考输入矩阵确定的该第一输入信号的稳定性参数,确定该自适应滤波器的稳定因子,能够实现根据第一输入信号的稳定性特点自适应的获取自适应滤波器的稳定因子,从而能够使得自适应滤波器在收敛速度与稳态误差性能上达到平衡。
应理解,在本发明实施例中,第一输入信号可以是从远端传输而来,被扬声器播放的信号,第二输入信号可以是近端的麦克风实际采集到的信号,但本发明实施例并不仅限于此,例如:当自适应滤波器采用APA算法,且应用于其他场景时,第一输入信号可以是参考信号,第二输入信号可以是期望信号。
图4示出了根据本发明另一实施例的确定自适应滤波器的滤波系数的方法400的示意性流程图。自适应滤波器可以为采用NLMS算法的回声消除算法中的自适应滤波器,如图4所示的方法400包括:
410,根据输入到自适应滤波器的第一输入信号,确定该第一输入信号的参考输入向量。
具体地,在根据输入到自适应滤波器的第一输入信号,确定该第一输入信号的参考输入向量之前,获取输入到自适应滤波器的第K帧第一输入信号R。第K帧第一输入信号R可以表示为:
R=[R((k-1)*Lf),...,R((k-1)*Lf+Lf-1)]
其中,Lf表示每帧第一输入信号的帧长,例如,可以取Lf=320,但本发明实施例并不仅限于此,Lf还可以取其他正整数。需要说明的是,在第K帧第一输入信号R中,Lf是第K帧第一输入信号R包括的第一输入信号的采样个数,即:第一输入信号R为Lf×1的第一输入信号向量。
第K帧第一输入信号R的帧长可以取Lf=320,第K帧第一输入信号R包括320个采样点。在本发明实施例中,可以将第K帧第一输入信号R的第m个采样点对应的第一输入信号向量Rm作为第n时刻的第一输入信号。第m个采样点的第一输入信号向量Rm可以表示为:
Rm=[R((k-1)*Lf+m,...,R((k-1)*Lf+m+Lf-1)]
可以根据第K帧第一输入信号R的第m个采样点对应的第一输入信号Rm和多个历史时刻输入自适应滤波器的第一输入信号,构建第一输入信号的参考输入矩阵x(n):
x(n)=[x(n),x(n-1),...,x(n-L+1)]T
其中,n=(k-1)*Lf+m,L为自适应滤波器的长度。例如:自适应滤波器的长度可以设置成200,则根据第1帧第一输入信号的第1个采样点对应的第一输入信号以及历史时刻输入自适应滤波器的第一输入信号,构建的参考输入向量可以表示为:
x(0)=[x(0),x(-1),...,x(-199)]T。
420,根据410中确定的参考输入向量,确定第一输入信号的稳定性参数。
具体地,可以将参考输入向量进行转置,得到转置向量,并将该转置向量与该参考输入向量相乘,得到第一矩阵,将该第一矩阵的行列式确定为第n时刻的第一输入信号的稳定性参数α。例如:可以根据以下等式确定第n时刻的第一输入信号的稳定性参数α,即:稳定性参数α是表征根据第一输入信号构建的参考输入向量x(n)的自相关特性的一个参数,
α=|x(n)T·x(n)|
其中,x(n)为第n时刻的参考输入向量,x(n)T为参考输入向量x(n)的转置向量。
可替代地,也可以将参考输入向量进行转置,得到转置向量,并将该转置向量与参考输入向量相乘的结果与一个实数的和,确定为第一矩阵,将该第一矩阵的行列式的值确定为第一输入信号的稳定性参数,从而可以使得该行列式的值是一个非零的正数。例如:可以根据以下等式确定第一输入信号的稳定性参数α,
α=|x(n)T·x(n)+δ|
其中,δ为一实数,且δ的取值可以在1-105范围内,例如:δ可以取105。
可替换地,还可以将参考输入向量进行转置,得到转置向量,并将该转置向量与该参考输入向量的乘积确定为第二矩阵,将该第二矩阵的行列式取对数得到的结果确定为第一输入信号的稳定性参数α。例如:可以根据以下等式确定第一输入信号的稳定性参数α,即:稳定性参数α为第n时刻的第一输入信号的自相关参数,
α=log|x(n)T·x(n)|
其中,x(n)为第n时刻的参考输入向量,x(n)T为参考输入向量x(n)的转置向量。
应理解,在本发明实施例中,对数的底数可以为10,即:α=lg|x(n)T·x(n)|,也可以为e,即:α=ln|x(n)T·x(n)|,还可以为其他常数,本发明实施例对此并不做限定。
可替代地,也可以将参考输入向量进行转置,得到转置向量,并将该转置向量与参考输入向量相乘的结果与一个实数的和,确定为第二矩阵,将该第二矩阵的行列式的值取对数得到的结果确定为第一输入信号的稳定性参数,从而可以使得该行列式的值是一个非零的正数。例如:可以根据以下等式确定第一输入信号的稳定性参数α,
α=log|x(n)T·x(n)+δ|
其中,δ为一实数,且δ的取值可以在1-105范围内,例如:δ可以取105。
430,根据420中确定的稳定性参数,确定自适应滤波器的稳定因子。
具体地,当稳定性参数小于或者等于第三阈值α3时,确定稳定因子为第一常数C1;当稳定性参数大于或者等于第四阈值α4时,确定稳定因子为第二常数C2,其中,α3小于α4,C1、C2均为大于0的数,且C1大于C2。当稳定性参数大于第三阈值α3小于第四阈值α4时,可以根据稳定因子与稳定性参数的递减函数关系和稳定性参数,确定稳定因子。例如:可以根据以下递减函数关系式确定稳定因子kδ,
kδ=Aα+B
其中,α为稳定性参数,A为小于0的实数,B为大于0的实数。
应理解,在本发明实施例中,当第一输入信号的稳定性参数大于第三阈值小于第四阈值时,也可以确定稳定因子为该稳定性参数的反比关系的函数,例如:kδ=B·A-Cα,其中,kδ为稳定因子,α为稳定性参数,A、B、C均为常数,但本发明实施例并不仅限于此。
综上所述,在本发明实施例中,可以根据以下关系式,确定稳定因子kδ,
其中,α3表示第三阈值,α4表示第四阈值,且,α3<α4,B=α4-A·α3。
应理解,在本发明实施例中,C1和C2可以根据经验值确定,C1可以在105-1010范围内,C2可以在105-1010范围内,例如,C1可以取106,C2可以取5×107。
还应理解,在本发明实施例中,第三阈值和第四阈值可以根据经验值确定,当α=|X(n)T·X(n)|或α=|X(n)T·X(n)+δ|时,第三阈值α3可以在0到1010范围内,第四阈值α4可以在0到1010范围内,且α3<α4;当α=log|X(n)T·X(n)|或α=log|X(n)T·X(n)+δ|时,第三阈值α3可以在1到10范围内,第四阈值α4可以在1到10范围内,且α3<α4,例如,α3可以取1.5,α4可以取2.5,δ可以取105。
440,根据输入到自适应滤波器的第二输入信号,确定该第二输入信号的输入向量。
具体地,在根据输入到自适应滤波器的第二输入信号,获取该第二输入信号的输入向量之前,获取输入到自适应滤波器的第K帧第二输入信号S。第K帧第二输入信号S可以表示为:
S=[S((k-1)*Lf),...,S((k-1)*Lf+Lf-1)]
其中,Lf表示每帧第二输入信号的帧长,例如,可以取Lf=320,但本发明实施例并不仅限于此,Lf还可以取其他正整数。需要说明的是,在第K帧第二输入信号S中,Lf是第K帧第二输入信号包括的第二输入信号的采样个数,即:第二输入信号S为Lf×1的第二输入信号向量。
第K帧第一输入信号R的帧长可以取Lf=320,第K帧第一输入信号R包括320个采样点。在本发明实施例中,可以将第K帧第一输入信号S的第m个采样点对应的第一输入信号向量Sm作为第n时刻的第一输入信号。第m个采样点对应的第一输入信号向量Sm可以表示为:
Sm=[S((k-1)*Lf+m,...,S((k-1)*Lf+m+Lf-1)]
可以根据第K帧第一输入信号S的第m个采样点对应的第一输入信号Sm,构建输入向量d(n):
d(n)=[S(n)]T,
其中,n=(k-1)*Lf+m。
450,根据410中确定的参考输入向量和440中确定的输入向量,以及当前时刻的自适应滤波器系数,确定当前时刻的输出信号。
具体地,可以根据参考输入向量x(n)和输入向量d(n),以及当前时刻的自适应滤波器系数,确定第n时刻的输出信号e(n)。例如:可以根据以下等式来确定输出信号e(n),
e(n)=d(n)-x(n)Th(n),
其中,x(n)T为第n时刻的参考输入矩阵x(n)的转置矩阵,d(n)为第n时刻的输入向量,h(n)为第n时刻自适应滤波器的系数,且
h(n)=[hn(0),...,hn(L-1)]T
其中,L为自适应滤波器的长度。
460,根据410中确定参考输入矩阵、430中确定的稳定因子和450中确定的输出信号,以及自适应滤波器的更新步长,确定自适应滤波器的系数。
具体地,可以根据输出信号e(n)和稳定因子kδ,以及自适应滤波器的更新步长,确定第n+1时刻的自适应滤波器系数h(n+1),可以根据以下等式确定自适应滤波器的滤波系数h(n+1),
其中,h(n)为第n时刻的自适应滤波器系数,h(n+1)为第n+1时刻的自适应滤波器系数,μ为自适应滤波器的更新步长,kδ为自适应滤波器的稳定因子,||x(n)||2为第n时刻的参考输入向量x(n)的2-范数的平方,e(n)为输出信号。
因此,本发明实施例提供的确定自适应滤波器的稳定因子的方法,通过根据自适应滤波器的第一输入信号的参考输入矩阵确定的该第一输入信号的稳定性参数,确定该自适应滤波器的稳定因子,能够实现根据第一输入信号的稳定性特点自适应的获取自适应滤波器的稳定因子,从而能够使得自适应滤波器在收敛速度与稳态误差性能上达到平衡。
应理解,在本发明实施例中,第一输入信号可以是从远端传输而来,被扬声器播放的信号,第二输入信号可以是近端的麦克风实际采集到的信号,但本发明实施例并不仅限于此,例如:当自适应滤波器采用NLMS算法,且应用于其他场景时,第一输入信号可以是参考信号,第二输入信号可以是期望信号。
上文中结合图1至图4,详细描述了根据本发明实施例的确定自适应滤波器的稳定因子的方法,下面将结合图5至图8,详细描述根据本发明实施例的确定自适应滤波器的稳定因子的装置。
图5是根据本发明的一个实施例的确定自适应滤波器的稳定因子的装置500的结构性框图。如图5所示的装置500,包括:第一确定模块510、第二确定模块520、第三确定模块530,其中:
第一确定模块510,用于根据输入到自适应滤波器的第一输入信号,确定该第一输入信号的参考输入矩阵。
第二确定模块520,用于根据第一确定模块510确定的参考输入矩阵,确定第一输入信号的稳定性参数。
第三确定模块530,用于根据第二确定模块520确定的稳定性参数,确定自适应滤波器的稳定因子。
因此,本发明实施例提供的确定自适应滤波器的稳定因子的装置,通过根据输入到自适应滤波器的第一输入信号的参考输入矩阵确定的该第一输入信号的稳定性参数,确定该自适应滤波器的稳定因子,能够实现根据第一输入信号的稳定性特点自适应的获取自适应滤波器的稳定因子,从而能够使得自适应滤波器在收敛速度与稳态误差性能上达到平衡。
可选地,作为一个实施例,第三确定模块530,具体用于根据稳定因子与稳定性参数的递减函数关系和稳定性参数,确定稳定因子。换句话说,稳定因子的取值随着稳定性参数的取值的增加而减小。
应理解,在本发明实施例中,可以确定稳定因子为该稳定性参数的线性递减函数,或者,也可以确定稳定因子为该稳定性参数的反比关系的函数,例如:kδ=B·A-Cα,其中,kδ为稳定因子,α为稳定性参数,且kδ和α均为正数,A、B、C均为常数,但本发明实施例并不仅限于此,还可以是其他形式的递减函数关系式。
可选地,作为另一实施例,第三确定模块530包括第一确定单元531,用于当第二确定模块520确定的稳定性参数大于或者等于第一阈值,且小于或者等于第二阈值时,根据以下函数关系式确定稳定因子,
kδ=Aα+B,
其中,kδ为稳定因子,α为稳定性参数,A为小于0的实数,B为大于0的实数。
具体地,在本发明实施例中,当第一输入信号的稳定性参数大于或者等于第一阈值α1,且小于或者等于第二阈值α2时,可以确定稳定因子kδ为该稳定性参数α的线性递减函数。由于稳定因子kδ为稳定性参数α的线性递减函数,因此,确定稳定因子kδ的算法更加简单且容易实现。
应理解,在本发明实施例中,第一阈值和第二阈值可以根据经验值确定,第一阈值α1可以在0到10或1到1010范围内,第二阈值α2可以在0到10或1到1010范围内。
可选地,作为另一实施例,如图6所示,第三确定模块530包括:第二确定单元532和第三确定单元533,其中:
第二确定单元532,用于当第二确定模块520确定的稳定性参数小于或者等于第三阈值时,确定稳定因子为第一常数。
第三确定单元533,用于当第二确定模块520确定的稳定性参数大于或者等于第四阈值时,确定稳定因子为第二常数,其中,第三阈值小于第四阈值,第一常数和第二常数均为大于0的数,且第一常数大于第二常数。
可选地,作为另一实施例,第二确定模块包括:第一确定单元,用于对参考输入矩阵进行转置,得到转置矩阵;乘法单元,用于对第一确定单元得到的转置矩阵与参考输入矩阵相乘,得到第一矩阵;第二确定单元,用于将乘法单元得到的第一矩阵的行列式的值确定为稳定性参数。
可替代地,第一确定单元也可以用于将参考输入矩阵的转置矩阵与参考输入矩阵的乘积与一个正实数的和确定为第一矩阵;第二确定单元,用于将第一确定单元确定的第一矩阵的行列式的值确定为当前时刻的第一输入信号的稳定性参数,从而可以使得该行列式的值是一个非零的正数。
可选地,作为另一实施例,第二确定模块包括:第一确定单元,用于对参考输入矩阵进行转置,得到转置矩阵;乘法单元,用于对第一确定单元得到的转置矩阵与参考输入矩阵相乘,得到第二矩阵;第三确定单元,用于将乘法单元确定的第二矩阵的行列式的值取对数得到的结果确定为稳定性参数。
在本发明实施例中,在对数域确定第一输入信号的稳定性参数α,可以有效的缩小稳定性参数α的取值范围,从而能更容易地确定稳定因子的取值。
可替代地,第一确定单元也可以用于将参考输入矩阵的转置矩阵与参考输入矩阵的乘积与一个正实数的和确定为第二矩阵;第三确定单元,用于将第一确定单元确定的第二矩阵的行列式的值取对数得到的结果确定为第一输入信号的稳定性参数,从而可以使得该行列式的值是一个非零的正数。
可选地,作为另一实施例,如图7所示,装置500还包括:第四确定模块540、第五确定模块550和第六确定模块560,其中:
第四确定模块540,用于根据自适应滤波器的第二输入信号,确定该第二输入信号的输入向量;
第五确定模块550,用于根据当前时刻的自适应滤波器系数、第四确定模块540确定的输入向量和第一确定模块510确定的参考输入矩阵,确定当前时刻的输出信号,
第六确定模块560,用于根据第一确定模块510确定的参考输入矩阵、第五确定模块550确定的输出信号、第三确定模块530确定的稳定因子和自适应滤波器的更新步长,确定自适应滤波器的滤波系数。
应理解,在本发明实施例中,根据本发明实施例的装置500,可对应于根据本发明实施例的方法的执行主体,并且该装置500中的各个模块的上述和其它操作和/或功能分别为了实现图1至图4中的各个方法的相应流程,为了简洁,在此不再赘述。
因此,本发明实施例提供的确定自适应滤波器的稳定因子的装置,通过根据自适应滤波器的第一输入信号的参考输入矩阵确定的该第一输入信号的稳定性参数,确定该自适应滤波器的稳定因子,能够实现根据第一输入信号的稳定性特点自适应的获取自适应滤波器的稳定因子,从而能够使得自适应滤波器在收敛速度与稳态误差性能上达到平衡。
图8示出了根据本发明一个实施例的确定自适应滤波器的稳定因子的装置600的示意性框图。如图8所示,该装置600包括处理器610,存储器620、接收器630和总线640。其中,处理器610、存储器620和接收器630通过总线系统640相连,该存储器620用于存储指令,该处理器610用于执行该存储器620存储的指令。其中,
接收器630用于:接收第一输入信号。
处理器610用于:根据输入到自适应滤波器的第一输入信号,确定第一输入信号的参考输入矩阵;根据参考输入矩阵,确定第一输入信号的稳定性参数;根据稳定性参数,确定自适应滤波器的稳定因子。
因此,本发明实施例提供的确定自适应滤波器的稳定因子的装置,通过根据自适应滤波器的第一输入信号的参考输入矩阵确定的该第一输入信号的稳定性参数,确定该自适应滤波器的稳定因子,能够实现根据第一输入信号的稳定性特点自适应的获取自适应滤波器的稳定因子,从而能够使得自适应滤波器在收敛速度与稳态误差性能上达到平衡。
应理解,在本发明实施例中,该处理器610可以是中央处理单元(CentralProcessing Unit,CPU),该处理器610还可以是其他通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
该存储器620可以包括只读存储器和随机存取存储器,并向处理器610提供指令和数据。存储器620的一部分还可以包括非易失性随机存取存储器。例如,存储器620还可以存储设备类型的信息。
该总线系统640除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线系统640。
在实现过程中,上述方法的各步骤可以通过处理器610中的硬件的集成逻辑电路或者软件形式的指令完成。结合本发明实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器620,处理器610读取存储器620中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
可选地,作为一个实施例,处理器610具体用于:
根据稳定因子与稳定性参数的递减函数关系和稳定性参数,确定稳定因子。
可选地,作为另一实施例,处理器610具体用于:
当稳定性参数大于或者等于第一阈值,且小于或者等于第二阈值时,根据以下函数关系式确定稳定因子,
kδ=Aα+B,
其中,kδ为稳定因子,α为稳定性参数,A为小于0的实数,B为大于0的实数。
可选地,作为另一实施例,处理器610具体用于:
当稳定性参数小于或者等于第三阈值时,确定稳定因子为第一常数;
当稳定性参数大于或者等于第四阈值时,确定稳定因子为第二常数,其中,第三阈值小于第四阈值,第一常数和第二常数均为大于0的数,且第一常数大于第二常数。
可选地,作为另一实施例,处理器610具体用于:
对参考输入矩阵进行转置,得到转置矩阵;将该转置矩阵与参考输入矩阵相乘,得到第一矩阵;将该第一矩阵的行列式的值确定为稳定性参数。
可选地,作为另一实施例,处理器610具体用于:
对参考输入矩阵进行转置,得到转置矩阵;将该转置矩阵与参考输入矩阵相乘,得到第二矩阵;将该第二矩阵的行列式的值取对数得到的结果确定为稳定性参数。
可选地,作为另一实施例,接收器630用于:接收第二输入信号。
处理器610还用于:根据输入到自适应滤波器的第二输入信号,确定第二输入信号的输入向量;根据当前时刻的自适应滤波器系数、输入向量和参考输入矩阵,确定当前时刻的输出信号,并根据参考输入矩阵、输出信号、稳定因子和自适应滤波器的更新步长,确定自适应滤波器的滤波系数。
应理解,在本发明实施例中,根据本发明实施例的终端600,可对应于根据本发明实施例的方法的执行主体,还可以对应于装置500,并且该装置600中的各个模块的上述和其它操作和/或功能分别为了实现图1至图4中的各个方法的相应流程,为了简洁,在此不再赘述。
因此,本发明实施例提供的确定自适应滤波器的稳定因子的装置,通过根据自适应滤波器的第一输入信号的参考输入矩阵确定的该第一输入信号的稳定性参数,确定该自适应滤波器的稳定因子,能够实现根据第一输入信号的稳定性特点自适应的获取自适应滤波器的稳定因子,从而能够使得自适应滤波器在收敛速度与稳态误差性能上达到平衡。
本领域普通技术人员可以意识到,结合本文中所公开的实施例中描述的各方法步骤和单元,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各实施例的步骤及组成。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域普通技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
结合本文中所公开的实施例描述的方法或步骤可以用硬件、处理器执行的软件程序,或者二者的结合来实施。软件程序可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述,但本发明并不限于此。在不脱离本发明的精神和实质的前提下,本领域普通技术人员可以对本发明的实施例进行各种等效的修改或替换,而这些修改或替换都应在本发明的涵盖范围内。