一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

主动噪声控制方法、装置、存储介质和计算机设备与流程

2021-10-16 00:56:00 来源:中国专利 TAG:噪声控制 装置 主动 计算机 方法


1.本发明涉及噪声控制技术领域,尤其涉及一种主动噪声控制方法、装置、存储介质和计算机设备。


背景技术:

2.噪声问题是全世界都普遍关注的,长期暴露在噪声环境下,对人的生理和心理健康都有严重的危害,而且影响人们正常的工作和生活。目前处理噪声问题的主要技术方法包括被动降噪和主动降噪两种。
3.在主动降噪方面,通常采用fxlms算法实现,但fxlms算法必须对次级通路进行建模,但是在线建模通常会对系统产生干扰,不易实现快速且精准的建模,建模误差也会影响降噪的性能。


技术实现要素:

4.基于此,有必要针对上述问题,提供一种能够在次级通路模型未知的情况下实现主动降噪的主动噪声控制方法、装置、存储介质和计算机设备。
5.一种主动噪声控制方法,所述方法包括:
6.获取多组初始的候选滤波器系数;
7.分别按各组候选滤波器系数运行,以确定每组候选滤波器系数对应的适应度;所述适应度用于反映主动降噪系统中滤波器采用所述滤波器系数时的降噪效果;
8.对候选滤波器系数进行迭代更新,每次迭代后分别按更新的各组候选滤波器系数运行,确定更新的每组候选滤波器系数对应的适应度,以对候选滤波器系数进行迭代调整,直至达到迭代终止条件;
9.从达到迭代终止条件时调整后的多组候选滤波器系数中选取目标滤波器系数,将所述目标滤波器系数应用于所述主动降噪系统中进行主动噪声控制。
10.在一个实施例中,所述分别按各组候选滤波器系数运行,以确定每组候选滤波器系数对应的适应度,包括:
11.遍历多组初始的候选滤波器系数;
12.按照遍历至的候选滤波器系数运行,获取遍历至的候选滤波器系数对应的误差样本;所述误差样本由误差麦克风采集,遍历至的候选滤波器系数的运行时间与所述误差样本的数据长度以及参考麦克风到所述误差麦克风之间的距离相关;
13.根据遍历至的候选滤波器系数对应的误差样本,计算遍历至的候选滤波器系数对应的适应度。
14.在一个实施例中,所述根据遍历至的候选滤波器系数对应的误差样本,计算遍历至的候选滤波器系数对应的适应度,包括:
15.根据遍历至的候选滤波器系数对应的误差样本和遗忘因子,计算遍历至的候选滤波器系数对应的收敛观测值;
16.根据遍历至的候选滤波器系数对应的收敛观测值,计算遍历至的候选滤波器系数对应的适应度。
17.在一个实施例中,所述对候选滤波器系数进行迭代更新,每次迭代后分别按更新的各组候选滤波器系数运行,确定更新的每组候选滤波器系数对应的适应度,以对候选滤波器系数进行迭代调整,直至达到迭代终止条件,包括:
18.对每组候选滤波器系数进行全局更新,分别按全局更新的各组候选滤波器系数运行,确定全局更新的每组候选滤波器系数对应的适应度,根据每组候选滤波器系数全局更新前后分别对应的适应度,全局调整候选滤波器系数;
19.对全局调整后的候选滤波器系数进行局部更新,分别按局部更新的各组候选滤波器系数运行,确定局部更新的每组候选滤波器系数对应的适应度,根据每组候选滤波器系数局部更新前后分别对应的适应度,局部调整候选滤波器系数;
20.判断当前是否满足迭代终止条件;
21.当不满足迭代终止条件时,返回对每组候选滤波器系数进行全局更新,分别按全局更新的各组候选滤波器系数运行,确定全局更新的每组候选滤波器系数对应的适应度,根据每组候选滤波器系数全局更新前后分别对应的适应度,全局调整候选滤波器系数的步骤;
22.当满足迭代终止条件时,执行所述从达到迭代终止条件时调整后的多组候选滤波器系数中选取目标滤波器系数,将所述目标滤波器系数应用于所述主动降噪系统中进行主动噪声控制的步骤。
23.在一个实施例中,所述对全局调整后的候选滤波器系数进行局部更新,分别按局部更新的各组候选滤波器系数运行,确定局部更新的每组候选滤波器系数对应的适应度,根据每组候选滤波器系数局部更新前后分别对应的适应度,局部调整候选滤波器系数,包括:
24.根据全局调整后的各组候选滤波器系数对应的适应度,从全局调整后的候选滤波器系数选取部分组候选滤波器系数;
25.对筛选出的各组候选滤波器系数进行更新,分别按更新的各组候选滤波器系数运行,确定更新的每组候选滤波器系数对应的适应度,根据筛选出的各组候选滤波器系数更新前后分别对应的适应度,调整筛选出的各组候选滤波器系数。
26.在一个实施例中,所述方法还包括:
27.当存在一组或多组候选滤波器系数经过多次迭代后仍不满足滤波器系数优化目标时,去除所述候选滤波器系数,并新增相应组数的初始的候选滤波器系数;
28.对新增的所述初始的候选滤波器系数执行所述分别按各组候选滤波器系数运行,以确定每组候选滤波器系数对应的适应度的步骤。
29.在一个实施例中,所述方法还包括:
30.从全局调整后的候选滤波器系数选取最优组候选滤波器系数;
31.根据所述最优组候选滤波器系数、参考麦克风接收的参考信号以及误差麦克风采集的误差信号优化全局调整后的候选滤波器系数中剩余的候选滤波器系数。
32.一种主动噪声控制装置,所述装置包括:
33.初始化模块,用于获取多组初始的候选滤波器系数;分别按各组候选滤波器系数
运行,以确定每组候选滤波器系数对应的适应度;所述适应度用于反映主动降噪系统中滤波器采用所述滤波器系数时的降噪效果;
34.迭代模块,用于对候选滤波器系数进行迭代更新,每次迭代后分别按更新的各组候选滤波器系数运行,确定更新的每组候选滤波器系数对应的适应度,以对候选滤波器系数进行迭代调整,直至达到迭代终止条件;
35.降噪模块,用于从达到迭代终止条件时调整后的多组候选滤波器系数中选取目标滤波器系数,将所述目标滤波器系数应用于所述主动降噪系统中进行主动噪声控制。
36.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
37.获取多组初始的候选滤波器系数;
38.分别按各组候选滤波器系数运行,以确定每组候选滤波器系数对应的适应度;所述适应度用于反映主动降噪系统中滤波器采用所述滤波器系数时的降噪效果;
39.对候选滤波器系数进行迭代更新,每次迭代后分别按更新的各组候选滤波器系数运行,确定更新的每组候选滤波器系数对应的适应度,以对候选滤波器系数进行迭代调整,直至达到迭代终止条件;
40.从达到迭代终止条件时调整后的多组候选滤波器系数中选取目标滤波器系数,将所述目标滤波器系数应用于所述主动降噪系统中进行主动噪声控制。
41.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
42.获取多组初始的候选滤波器系数;
43.分别按各组候选滤波器系数运行,以确定每组候选滤波器系数对应的适应度;所述适应度用于反映主动降噪系统中滤波器采用所述滤波器系数时的降噪效果;
44.对候选滤波器系数进行迭代更新,每次迭代后分别按更新的各组候选滤波器系数运行,确定更新的每组候选滤波器系数对应的适应度,以对候选滤波器系数进行迭代调整,直至达到迭代终止条件;
45.从达到迭代终止条件时调整后的多组候选滤波器系数中选取目标滤波器系数,将所述目标滤波器系数应用于所述主动降噪系统中进行主动噪声控制。
46.上述主动噪声控制方法、装置、存储介质和计算机设备,分别获取多组初始的候选滤波器系数作为备选,以分别按各组候选滤波器系数运行,这样可以确定每组候选滤波器系数对应的适应度,不断对候选滤波器系数进行迭代更新以及迭代调整,以优化出一组目标滤波器系数来应用于主动降噪系统中进行主动噪声控制。这样以适应度来量化反映主动降噪系统中滤波器采用滤波器系数时的降噪效果,通过迭代更新优化的方式来寻找最优的滤波器系数,可以在次级通路模型未知的情况下实现主动降噪。
附图说明
47.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
48.其中:
49.图1为一个实施例中基于人工蜂群算法的主动噪声控制方法的原理框图;
50.图2为一个实施例中主动噪声控制方法的流程示意图;
51.图3为一个实施例中主动噪声控制装置的结构框图;
52.图4为一个实施例中计算机设备的内部结构图。
具体实施方式
53.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
54.本技术提出了一种基于人工蜂群算法(artificial bee colony algorithm,abc算法)的主动噪声控制方法,可以在主动降噪(active noise cancellation,anc)系统的次级通路模型未知的情况下实现主动降噪。
55.人工蜂群算法是模仿蜜蜂行为提出的一种优化算法,可使蜜蜂群体展现集体智慧的最小模型包含三个基本组成要素:蜜源,雇佣蜂和非雇佣蜂,模型定义了两种主要的行为方式:为蜜源招募蜜蜂和放弃某个蜜源。
56.1)蜜源:相当于问题的可行解,在本技术中一个蜜源认为是一组fir滤波器的系数。为了简单起见,蜜源的“收益率”通常用一个数值来表示,本技术中以适应度值来表示,这样适应度值的大小可直接反映fir滤波器的系数应用于主动降噪中降噪效果的好坏。
57.2)雇佣蜂:这些蜜蜂不断地开采蜜源,他们携带蜜源的收益率信息,并以一定的概率共享这些信息。
58.3)非雇佣蜂:这些蜜蜂不断地寻找蜜源,有两种类型的非雇佣蜂:侦查蜂,在蜂巢附近寻找新的蜜源;跟随蜂,在蜂巢里面等待并通过观察雇佣蜂分享的信息来找寻蜜源,一般情况下,侦查蜂的平均数量是蜂群的5%

20%。
59.其中,雇佣蜂的数量与蜜源数量相同,每个雇佣蜂对应一组滤波器系数,并在迭代过程中对蜜源的邻域进行搜索。根据蜜源的收益率,即适应度值的大小。跟随蜂采用轮盘赌的方式跟随雇佣蜂采蜜。跟随蜂选择某一个蜜源的概率与该蜜源对应的适应度值的大小成正比。如果某一蜜源在多次更新后没有改进,则放弃该蜜源,对应的雇佣蜂转化为侦查蜂并随机搜索新的蜜源。
60.每种蜜蜂都有各自的分工和作用,其中雇佣蜂用于维持优良解,跟随蜂用于提高收敛速度,侦查蜂用于增强摆脱局部最优的能力。人工蜂群算法模拟各蜜蜂之间的分工、信息交流以及角色互换等,最终找到最佳蜜源,与主动噪声控制结合后,便是通过这种模拟,最终寻找到最佳的滤波器系数,使目标降噪点处的残余噪声最小,从而达到最佳的降噪效果。
61.anc算法的最终目标是获得一组最佳的滤波器系数,使得误差麦克风处接收到的残余噪声最小,所以主动降噪过程也可看做是一个优化过程。将人工蜂群算法引入进主动噪声控制中,可通过蜂群在搜索域内寻找最佳蜜源的过程来模拟主动噪声控制系统在全局寻找最佳滤波器系数的过程。在蜂群中,雇佣蜂携带着它所开采的蜜源优劣信息,并将这些
信息以摇摆舞的方式分享出去,招募跟随蜂来开采蜜源,蜜源的优劣通过适应度值的大小来衡量,适应度值是由以误差麦克风采集到的误差样本为自变量的适应度函数计算得来。适应度函数的选取非常关键,能直接影响到算法是否收敛,以及收敛速度和收敛效果。
62.由于滤波器系数组数与雇佣蜂的数量相等,所以控制器内需存储多组滤波器系数,且在迭代过程中要按顺序对系数进行评判和更新。如图1所示,其中,x(n)为参考麦克风接收到的参考噪声信号,d(n)为目标降噪点处的原始噪声信号,由参考信号x(n)通过主通路传播得到,p(z)表示主通路传递函数,主要包括从参考麦克风到误差麦克风的声响应。s(z)表示次级通路传递函数,包括次级声通路、电声器件和电子线路的传递函数,电声器件包括次级扬声器、参考麦克风和误差麦克风,电子线路包括a/d转换器、抗混叠滤波器、平滑滤波器、d/a转换器、电压放大器和功率放大器等。y(n)为控制器生成的输出信号,y'(n)为y(n)经过次级通路s(z)后的反噪声信号,e(n)为误差麦克风处的残余噪声。在基于fxlms算法的主动噪声控制系统中,控制器每次的迭代更新只需要误差麦克风的一个采样点数据,但基于人工蜂群的主动噪声控制算法中,蜜源的优劣需要根据适应度值的大小来判断,而适应度值则需要根据误差麦克风的一段采样数据来计算。此外在迭代过程中,控制器是按顺序选择一组系数并运行一段时间来获取误差样本,所以在连续噪声的情况下,对于同一组滤波器系数,相邻两次采集的误差样本是不连续的,为保证算法的收敛性,可在适应度计算中引入遗忘因子。
63.在一次人工蜂群算法的迭代周期中,包括雇佣蜂探索蜜源,适应度值计算,贪婪选择,招募跟随蜂并探索蜜源,和判断雇佣蜂是否放弃蜜源而转换为侦查蜂等过程。同其它群体智能算法不同,角色转换是人工蜂群算法特有的机制。三种蜜蜂之间的转换关系为:当雇佣蜂卸下蜂蜜后去舞蹈区观看其它蜜蜂跳摇摆舞,则该雇佣蜂转化为跟随蜂,当雇佣蜂放弃其对应的蜜源后,该雇佣蜂转换为侦查蜂,当侦查蜂或跟随蜂找到蜜源后,则它们转换为雇佣蜂。
64.可以理解,本技术提供的主动噪声控制方法可应用于需要进行降噪的任何场景中或者任何具有降噪功能的产品中。比如,可应用于降噪耳机或者汽车车厢中进行降噪,还可应用于窗户降噪等需要进行降噪的场景中。
65.如图2所示,在一个实施例中,提供了一种主动噪声控制方法,本实施例以该方法应用于计算机设备进行举例说明,可以理解的是,该计算机设备具体可以是终端。其中,终端可以但不限于是各种智能穿戴设备或者车载终端。本实施例中,该主动噪声控制方法包括以下步骤:
66.步骤202,获取多组初始的候选滤波器系数。
67.具体地,在基于人工蜂群算法的主动噪声控制方法中,一个蜜源认为是一组fir滤波器的系数,初始化蜜源即为初始化滤波器系数。假设蜂群数量设为np,蜜源的数量为sn,sn为np的一半,每个蜜源的维数为l,即主动噪声控制系统中fir滤波器的阶数为l。根据(1)式随机生成sn个可行的滤波器系数,即得到sn组初始的候选滤波器系数。
68.w
ij
=w
min
r1(w
max

w
min
)
ꢀꢀ
(1)
69.其中,w
ij
(i=1,2,...,sn;j=1,2,...,l),w
ij
∈(w
min
,w
max
),w
min
为滤波器系数的下限值,w
max
为滤波器系数的上限值,w
min
和w
max
可据实际场景需要而定。r1∈(0,1)为随机数。
70.步骤204,分别按各组候选滤波器系数运行以确定每组候选滤波器系数对应的适应度;适应度用于反映主动降噪系统中滤波器采用滤波器系数时的降噪效果。
71.在一个实施例中,分别按各组候选滤波器系数运行,以确定每组候选滤波器系数对应的适应度,包括:遍历多组初始的候选滤波器系数;按照遍历至的候选滤波器系数运行,获取遍历至的候选滤波器系数对应的误差样本;误差样本由误差麦克风采集,遍历至的候选滤波器系数的运行时间与误差样本的数据长度以及参考麦克风到误差麦克风之间的距离相关;根据遍历至的候选滤波器系数对应的误差样本,计算遍历至的候选滤波器系数对应的适应度。
72.其中,在初始化蜜源后,计算机设备的控制器中存储了sn个初始蜜源,也就是sn组初始的滤波器系数向量,且系数矩阵可表示为:
[0073][0074]
其中,系数矩阵的每一列都是一组初始滤波器系数。具体地,计算机设备的控制器按顺序依次选择一组滤波器系数并运行一段时间,以获取每组滤波器系数对应的误差样本,并计算出每组滤波器系数对应的适应度值。
[0075]
进一步地,传统的anc算法只需要更新一个控制器的参数,而基于abc算法的主动噪声控制系统需要对多组滤波器系数进行顺序更新,所以为保证该算法在连续噪声信号下的收敛性,在适应度的计算中加入遗忘因子,并在系统运行过程中采用变遗忘因子的方式来提高收敛速度和收敛效果。
[0076]
在一个实施例中,根据遍历至的候选滤波器系数对应的误差样本,计算遍历至的候选滤波器系数对应的适应度,包括:根据遍历至的候选滤波器系数对应的误差样本和遗忘因子,计算遍历至的候选滤波器系数对应的收敛观测值;根据遍历至的候选滤波器系数对应的收敛观测值,计算遍历至的候选滤波器系数对应的适应度。
[0077]
具体地,计算滤波器系数对应的适应度值的公式为:
[0078][0079]
其中,obj(i,g)表示第i组滤波器系数在第g次迭代时的收敛观测值,可反映误差麦克风处残余噪声的大小;e(n)为误差麦克风采集到的误差信号,m为采集的误差样本数据长度;λ为遗忘因子,且0<λ<1,用于增强抗干扰能力,保证系统的收敛;fit(i,g)为第i组滤波器系数在第g次迭代时的适应度值。
[0080]
在一个实施例中,每次计算完适应度值后,都要记录目前为止最大的适应度值及其对应的滤波器系数,以作为当前最佳蜜源,即当前最优滤波器系数。每组滤波器系数的运行时间由误差麦克风采集的误差样本数据长度,和参考麦克风到误差麦克风之间的距离所决定。因为声音在空间中传播需要一定的时间,所以在每次改变滤波器系数后,需等待系统
运行一段时间才能采集误差样本,以保证参考麦克风和误差麦克风接收到的信号是严格对应的,等待时间与参考麦克风到误差麦克风的距离成正比。每组滤波器系数运行时间的选取是十分关键的,如果时间过长则使收敛速度过慢,如果时间过短,则可能导致系统发散。
[0081]
需要说明的是,遗忘因子主要应用于recursive least square(rls)算法中,在误差测度函数中引入遗忘因子,对新数据和历史数据赋予不同的权重,来平衡算法的收敛速度和稳态误差。当遗忘因子较大时,历史数据被赋予的权重较大,使系统对非平稳信号的抗干扰能力更强,稳态误差更小,但收敛速度较慢,当遗忘因子较小时,系统对数据的变化更敏感,抗干扰能力弱,但收敛速度较快。因为本技术所提的基于人工蜂群的主动噪声控制算法是在连续的时变噪声环境下工作的,且同一组滤波器系数在每次适应度值计算时使用的误差样本是不同的,在时间上是不连续的,所以本技术在适应度的计算函数中引入遗忘因子,对历史数据赋予一定的权重,使算法可以对连续且时变的噪声进行消除,保证算法的收敛性。
[0082]
由于遗忘因子会影响到算法的收敛速度和收敛效果,为提高基于人工蜂群的主动噪声控制算法的收敛性能,本技术在适应度函数中引入时变的遗忘因子。在系统运行开始阶段采用较大的遗忘因子,旧误差样本数据被赋予较高权重,使系统的抗干扰能力更强,保证系统朝着收敛的方向运行,随着运行时间的推进,遗忘因子逐渐减小,新误差样本数据被赋予更高的权重,使系统的收敛速度提高。遗忘因子λ的具体计算如下:
[0083][0084]
其中,λ
max
是遗忘因子的上限,λ
min
是遗忘因子的下限,且0<λ
min
<λ
max
<1,iter为当前迭代次数,iterf为设定的遗忘因子变化停止的迭代次数。
[0085]
步骤206,对候选滤波器系数进行迭代更新,每次迭代后分别按更新的各组候选滤波器系数运行,确定更新的每组候选滤波器系数对应的适应度,以对候选滤波器系数进行迭代调整,直至达到迭代终止条件。
[0086]
在一个实施例中,步骤206,包括:对每组候选滤波器系数进行全局更新,分别按全局更新的各组候选滤波器系数运行,确定全局更新的每组候选滤波器系数对应的适应度,根据每组候选滤波器系数全局更新前后分别对应的适应度,全局调整候选滤波器系数;对全局调整后的候选滤波器系数进行局部更新,分别按局部更新的各组候选滤波器系数运行,确定局部更新的每组候选滤波器系数对应的适应度,根据每组候选滤波器系数局部更新前后分别对应的适应度,局部调整候选滤波器系数;判断当前是否满足迭代终止条件;当不满足迭代终止条件时,返回对每组候选滤波器系数进行全局更新,分别按全局更新的各组候选滤波器系数运行,确定全局更新的每组候选滤波器系数对应的适应度,根据每组候选滤波器系数全局更新前后分别对应的适应度,全局调整候选滤波器系数的步骤;当满足迭代终止条件时,执行从达到迭代终止条件时调整后的多组候选滤波器系数中选取目标滤波器系数,将目标滤波器系数应用于主动降噪系统中进行主动噪声控制的步骤。
[0087]
可以理解,对应至人工蜂群算法中,对每组候选滤波器系数进行全局更新可以认为是雇佣蜂探索蜜源的步骤。对全局调整后的候选滤波器系数进行局部更新可以认为是跟随蜂选择雇佣蜂并跟随的步骤。
[0088]
其中,对每组候选滤波器系数进行全局更新,是指会按照特定公式对所有候选滤波器系数中的每组候选滤波器系数分别进行更新。全局调整候选滤波器系数,是指在全局范围内调整候选滤波器系数,但不是每组候选滤波器系数都会调整,候选滤波器系数是否调整由候选滤波器系数更新后对应的适应度值决定。
[0089]
具体地,计算机设备的控制器计算出每组初始的候选滤波器系数后,继续进行雇佣蜂探索蜜源的步骤,即按顺序对每个蜜源的邻域进行搜索,也就是对每组滤波器系数进行更新。每更新完一组滤波器系数后,主动降噪系统在采用该组滤波器系数的情况下运行一段时间,并按照步骤204中同样的方式计算更新后的滤波器系数对应的适应度值。计算机设备再对比滤波器系数更新前后所对应的适应度值,如果更新后的适应度值大于更新前的适应度值,则采用贪婪选择法用新的滤波器系数代替旧的滤波器系数,否则保留原来的滤波器系数,直到最后一组滤波器系数完成贪婪选择。
[0090]
在具体的实施例中,更新滤波器系数的公式为:
[0091][0092]
其中,v
ij
为更新后的第i组滤波器系数中第j个系数,w
ij
为更新前的第i组滤波器系数中第j个系数;k∈{1,2,...,sn},k为随机生成且k≠i,为[

1,1]之间的随机数。蜜源搜索完成后需要按下式进行边界控制:
[0093][0094]
进一步地,对全局调整后的候选滤波器系数进行局部更新,是指对一部分组的候选滤波器系数进行更新,局部调整候选滤波器系数是指会对这部分有更新的候选滤波器系数进行调整,但具体调整哪组候选滤波器系数由候选滤波器系数更新后对应的适应度值决定。
[0095]
在一个实施例中,对全局调整后的候选滤波器系数进行局部更新,分别按局部更新的各组候选滤波器系数运行,确定局部更新的每组候选滤波器系数对应的适应度,根据每组候选滤波器系数局部更新前后分别对应的适应度,局部调整候选滤波器系数,包括:根据全局调整后的各组候选滤波器系数对应的适应度,从全局调整后的候选滤波器系数选取部分组候选滤波器系数;对筛选出的各组候选滤波器系数进行更新,分别按更新的各组候选滤波器系数运行,确定更新的每组候选滤波器系数对应的适应度,根据筛选出的各组候选滤波器系数更新前后分别对应的适应度,调整筛选出的各组候选滤波器系数。
[0096]
可以理解,在对每组滤波器系数进行更新后,再进行跟随蜂选择雇佣蜂并跟随的步骤,也就是筛选出一部分组的候选滤波器系数进行更新和调整。跟随蜂根据雇佣蜂分享的蜜源信息,按照(7)式计算的概率选择是否跟随。
[0097][0098]
其中,fit(i,g)为第g次迭代中第i组滤波器系数对应的适应度值,可以看到适应度值越大的蜜源,被观察蜂选择的概率越大。具体地,计算机设备在得到每组滤波器系数对应的跟随概率后,将该跟随概率与概率阈值进行比较,在跟随概率大于或者达到概率阈值
时,认为观察蜂选择该蜜源,也就是该组滤波器系数被选中进行更新。当观察蜂选择蜜源后,以式(5)和式(6)同样的方式对该蜜源的邻域进行搜索,然后对这些组滤波器系数进行适应度计算和贪婪选择的过程。
[0099]
可以理解,对候选滤波器系数进行一次迭代更新包括全局更新和局部更新两个阶段,在完成一次迭代更新后,可判断当前是否满足迭代终止条件。若满足则执行步骤208,若不满足,则返回对每组候选滤波器系数进行全局更新,分别按全局更新的各组候选滤波器系数运行,确定全局更新的每组候选滤波器系数对应的适应度,根据每组候选滤波器系数全局更新前后分别对应的适应度,全局调整候选滤波器系数的步骤,以再对候选滤波器系数进行一次或者多次迭代,直至满足迭代终止条件。
[0100]
在一个实施例中,本技术提供的主动降噪控制方法还包括:当存在一组或多组候选滤波器系数经过多次迭代后仍不满足滤波器系数优化目标时,去除候选滤波器系数,并新增相应组数的初始的候选滤波器系数;对新增的初始的候选滤波器系数执行分别按各组候选滤波器系数运行,以确定每组候选滤波器系数对应的适应度的步骤。
[0101]
可以理解,对应至人工蜂群算法中,本实施例可以认为是产生侦查蜂的步骤。产生侦查蜂的步骤可以是在每次对候选滤波器系数进行一次迭代更新之后,在判断当前是否满足迭代终止条件之前执行;也可以是在对候选滤波器系数进行连续多次迭代更新之后,在判断当前是否满足迭代终止条件之前执行。
[0102]
具体地,本技术提供的基于人工蜂群的主动噪声控制算法,为防止算法陷入局部最优,当某个蜜源迭代次数超过阈值还没有改进时,便放弃该蜜源,同时该蜜源对应的雇佣蜂转变为侦查蜂,按式(1)随机产生一个新的蜜源,初始化该蜜源,并对该蜜源进行邻域探索,适应度值计算和贪婪选择的过程。新增的蜜源,即新增的候选滤波器参数则加入在前的多组候选滤波器参数中一并进行迭代更新。
[0103]
在一个实施例中,本技术提供的主动降噪控制方法还包括:从全局调整后的候选滤波器系数选取最优组候选滤波器系数;根据最优组候选滤波器系数、参考麦克风接收的参考信号以及误差麦克风采集的误差信号优化全局调整后的候选滤波器系数中剩余的候选滤波器系数。
[0104]
可以理解,由于人工蜂群算法的全局搜索能力很强,但开发能力较弱,所以为提高算法的开发能力,进一步提高收敛速度和减小稳态误差,将lms算法引入人工蜂群算法以对其进行改进,改进后的人工蜂群算法在收敛速和降噪效果方面都有了很大的提升。在更新滤波器系数时,人工蜂群算法每次只改变系数向量中的一个值,所以对优质蜜源的利用率较低。为提高人工蜂群算法对优质蜜源的开发能力,以进一步提高收敛速度和减小稳态误差,将lms算法引入人工蜂群算法中,具体为在每个雇佣蜂搜索新蜜源之前,利用lms算法让当前滤波器系数向最佳滤波器系数按下面的方程式进行学习:
[0105][0106]
其中,x(n)=[x(n)x(n

1)...x(n

l 1)]
t
为参考麦克风接收的参考信号,μ为收敛因子,e(n)为误差信号,根据下式得到:
[0107][0108]
其中,为当前最佳滤波器系数。通过引入lms算法,可使每个蜜源都可获得
最佳蜜源的优质信息,提高了算法对蜜源的开发能力。但利用lms算法进行学习的时间要严格选取,过长的时间会使蜜源丧失个性信息,使算法陷入局部最优,且降低收敛速度。过短的时间不足以使蜜源获得优质信息。
[0109]
更进一步地,计算机设备在对这多组候选滤波器系数全局更新以及调整,以及对这多组候选滤波器系数中的部分组候选滤波器系数进行更新以及调整,进行一次或多次迭代后,判断当前是否满足迭代终止条件。其中,迭代终止条件可以是迭代达到预设次数,也可以是当前迭代后的最佳候选滤波器系数的降噪效果达到预期,等等。
[0110]
步骤208,从达到迭代终止条件时调整后的多组候选滤波器系数中选取目标滤波器系数,将目标滤波器系数应用于主动降噪系统中进行主动噪声控制。
[0111]
具体地,当满足迭代终止条件时,从达到迭代终止条件时调整后的多组候选滤波器系数中选取目标滤波器系数,将目标滤波器系数应用于主动降噪系统中进行主动噪声控制。其中目标滤波器系数是对应的适应度值最高的候选滤波器系数。
[0112]
上述主动噪声控制方法,分别获取多组初始的候选滤波器系数作为备选,以分别按各组候选滤波器系数运行,这样可以确定每组候选滤波器系数对应的适应度,不断对候选滤波器系数进行迭代更新以及迭代调整,以优化出一组目标滤波器系数来应用于主动降噪系统中进行主动噪声控制。这样以适应度来量化反映主动降噪系统中滤波器采用滤波器系数时的降噪效果,通过迭代更新优化的方式来寻找最优的滤波器系数,可以在次级通路模型未知的情况下实现主动降噪。
[0113]
为了说明本技术所提供的基于人工蜂群的主动噪声控制算法的性能,本技术还提供了相关的仿真实验和实验结果。具体地,主动降噪系统所用的主通道和次级通道的传递函数为真实实验环境传递函数的估计值。实验环境包括播放原始噪声的扬声器、次级扬声器以及误差麦克风。仿真实验所用的主通道的传递函数用2000阶的fir滤波器来表示。次级通道的传递函数也以2000阶的fir滤波器系数来表示。
[0114]
为了说明在适应度的计算函数中引入变遗忘因子、引入固定遗忘因子和不使用遗忘因子时,基于人工蜂群的主动噪声控制算法的收敛性能的不同,本技术在使用不同遗忘因子的条件下分别进行了仿真实验。噪声源采用连续的60

4000hz频带高斯白噪声,采样频率为192khz,滤波器阶数l取150阶,蜂群数量np取20,蜜源数量sn取10,滤波器系数的上限和下限分别取0.1和

0.1,蜜源丢弃的迭代次数阈值limit取100,误差样本长度m取1500,采用下面的观测方程式来衡量算法的收敛效果:
[0115][0116]
其中,iter为迭代次数,e
best
(n)为最佳滤波器系数对应的误差信号,表示为:
[0117][0118]
为当前最佳滤波器系数,s(n)是次级路径在时间n的脉冲响应,*表示线性卷积。k取1500,初始化e(0),e(

1)为5,迭代次数取2000。变遗忘因子的λmax取0.8,λmin取0.5,iterf取200。通过实验证明,采用变遗忘因子的算法在收敛速度和稳态误差方面都是最好的,而不采用遗忘因子的算法收敛性能最差,会过早陷入局部最优。
[0119]
为了提升人工蜂群算法对蜜源的开发能力,加快收敛速度和减小稳态误差。本申
请将lms引入人工蜂群算法,即lms

abc算法。通过仿真实验对比了基于基本的人工蜂群的主动噪声控制算法和引入lms后的算法的性能。在基于基本人工蜂群的主动噪声控制算法中,误差样本长度取1500,观测方程中的k取1200。在基于lms

abc的anc算法中,误差样本数据长度m为1200,收敛因子μ取0.5,观测方程中的k取1200,每个蜜源对应的lms学习时间为300个采样周期,其余参数不变。因为lms学习的过程需要消耗时间,所以为了保证lms

abc算法与基本的人工蜂群算法的每个迭代周期消耗的时间相同,需要减小lms

abc算法中的误差样本数据长度。仿真实验结果表明引入lms的人工蜂群算法收敛速度比基本的人工蜂群算法快的多,且收敛后的稳态误差也更小。
[0120]
为验证基于lms

abc算法的主动噪声控制算法的降噪效果,本技术首先对不同频率的单频波噪声进行了仿真实验,主通路和次级通路的传递函数与前述实验中的相同,滤波器阶数l取150阶,蜂群数量np取20,蜜源数量sn取10,滤波器系数的上限和下限分别取0.1和

0.1,蜜源丢弃的迭代次数阈值limit取100,误差样本长度m取1200,lms学习时间为300个采样周期(sampling period),收敛因子μ为0.5,λmax取0.8,λmin取0.5,iterf取200。在对各频率单频波的仿真降噪效果表明除了低频300hz以外,其余频率的单频波都可以达到20db(a)以上的降噪效果。
[0121]
为进一步验证基于lms

abc算法的主动噪声控制算法的降噪效果,本技术对不同频段白噪声进行了仿真实验,参数选取与前述实验相同。实验结果表明,对于各频段白噪声降噪效果,从60hz到4000hz频率范围内都有较好的降噪效果。
[0122]
为了验证本技术所提供技术方案的可行性,可将基于lms

abc算法的主动噪声控制算法在基于fpga的硬件平台中实现,在开放场环境下对单通道结构进行降噪实验。处理器中算法参数的选取与仿真实验相同。从各频率单频波的实验测试降噪效果可以看出本技术所提供的主动噪声控制方法在基于fpga硬件平台的单通道实验环境中,可以对各频率单频波进行降噪,且降噪效果与仿真结果基本一致,下表为各频率单频波仿真和实验测试的降噪效果对比。
[0123]
表1:
[0124]
频率/hz仿真结果/db(a)实验结果/db(a)30017.0319.1750022.5621.20100020.4722.23150021.7320.45200027.1030.55300025.0921.26
[0125]
在基于fpga硬件平台的单通道实验结构中,本技术还对各频率段的白噪声进行了降噪实验,处理器中算法参数的选取与上述实验相同。从各频段白噪声的实测降噪效果可以看出本技术所提供的主动噪声控制方法在基于fpga硬件平台的单通道实验结构中,可以对60hz到4000hz各频段的白噪声进行降噪,降噪效果与仿真结果基本一致,下表为各频段白噪声仿真和实验测试的降噪效果对比。
[0126]
表2:
[0127]
频率/hz仿真结果/db(a)实验结果/db(a)
200

5006.408.85500

100011.6611.221000

200011.1810.132000

30008.286.3660

200010.7210.8160

30008.908.4660

40008.428.48
[0128]
综上所述,本技术提出了基于人工蜂群算法的在线主动噪声控制方法,该方法应用于anc系统时不需要次级通路模型。本技术为保证算法收敛和提高收敛速度,在适应度的计算中引入变遗忘因子。本技术为进一步提高收敛性能,将lms算法引入人工蜂群算法,提出新的基于lms

abc算法的主动噪声控制算法,改进后的算法具有更快的收敛速度和更小的稳态误差。而且本技术将所提出的基于lms

abc算法的主动噪声控制算法进行了计算机仿真实验。本技术还将所提算法在基于fpga硬件平台的单通道实验结构中实现,对多种频率单频波和多种频段白噪声取得很好的降噪效果,降噪效果与仿真结果基本一致。
[0129]
应该理解的是,虽然图2的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本技术中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
[0130]
在一个实施例中,如图3所示,提供了一种主动噪声控制装置,包括:初始化模块301、迭代模块302和降噪模块303,其中,
[0131]
初始化模块301,用于获取多组初始的候选滤波器系数;分别按各组候选滤波器系数运行,以确定每组候选滤波器系数对应的适应度;适应度用于反映主动降噪系统中滤波器采用滤波器系数时的降噪效果;
[0132]
迭代模块302,用于对候选滤波器系数进行迭代更新,每次迭代后分别按更新的各组候选滤波器系数运行,确定更新的每组候选滤波器系数对应的适应度,以对候选滤波器系数进行迭代调整,直至达到迭代终止条件;
[0133]
降噪模块303,用于从达到迭代终止条件时调整后的多组候选滤波器系数中选取目标滤波器系数,将目标滤波器系数应用于主动降噪系统中进行主动噪声控制。
[0134]
在一个实施例中,初始化模块301还用于遍历多组初始的候选滤波器系数;按照遍历至的候选滤波器系数运行,获取遍历至的候选滤波器系数对应的误差样本;误差样本由误差麦克风采集,遍历至的候选滤波器系数的运行时间与误差样本的数据长度以及参考麦克风到误差麦克风之间的距离相关;根据遍历至的候选滤波器系数对应的误差样本,计算遍历至的候选滤波器系数对应的适应度。
[0135]
在一个实施例中,初始化模块301还用于根据遍历至的候选滤波器系数对应的误差样本和遗忘因子,计算遍历至的候选滤波器系数对应的收敛观测值;根据遍历至的候选滤波器系数对应的收敛观测值,计算遍历至的候选滤波器系数对应的适应度。
[0136]
在一个实施例中,迭代模块302还用于对每组候选滤波器系数进行全局更新,分别
按全局更新的各组候选滤波器系数运行,确定全局更新的每组候选滤波器系数对应的适应度,根据每组候选滤波器系数全局更新前后分别对应的适应度,全局调整候选滤波器系数;对全局调整后的候选滤波器系数进行局部更新,分别按局部更新的各组候选滤波器系数运行,确定局部更新的每组候选滤波器系数对应的适应度,根据每组候选滤波器系数局部更新前后分别对应的适应度,局部调整候选滤波器系数;判断当前是否满足迭代终止条件;当不满足迭代终止条件时,返回对每组候选滤波器系数进行全局更新,分别按全局更新的各组候选滤波器系数运行,确定全局更新的每组候选滤波器系数对应的适应度,根据每组候选滤波器系数全局更新前后分别对应的适应度,全局调整候选滤波器系数的步骤。
[0137]
在一个实施例中,迭代模块302还用于根据全局调整后的各组候选滤波器系数对应的适应度,从全局调整后的候选滤波器系数选取部分组候选滤波器系数;对筛选出的各组候选滤波器系数进行更新,分别按更新的各组候选滤波器系数运行,确定更新的每组候选滤波器系数对应的适应度,根据筛选出的各组候选滤波器系数更新前后分别对应的适应度,调整筛选出的各组候选滤波器系数。
[0138]
在一个实施例中,迭代模块302还用于当存在一组或多组候选滤波器系数经过多次迭代后仍不满足滤波器系数优化目标时,去除候选滤波器系数,并新增相应组数的初始的候选滤波器系数;对新增的初始的候选滤波器系数执行分别按各组候选滤波器系数运行,以确定每组候选滤波器系数对应的适应度的步骤。
[0139]
在一个实施例中,迭代模块302还用于从全局调整后的候选滤波器系数选取最优组候选滤波器系数;根据最优组候选滤波器系数、参考麦克风接收的参考信号以及误差麦克风采集的误差信号优化全局调整后的候选滤波器系数中剩余的候选滤波器系数。
[0140]
上述主动噪声控制装置,分别获取多组初始的候选滤波器系数作为备选,以分别按各组候选滤波器系数运行,这样可以确定每组候选滤波器系数对应的适应度,不断对候选滤波器系数进行迭代更新以及迭代调整,以优化出一组目标滤波器系数来应用于主动降噪系统中进行主动噪声控制。这样以适应度来量化反映主动降噪系统中滤波器采用滤波器系数时的降噪效果,通过迭代更新优化的方式来寻找最优的滤波器系数,可以在次级通路模型未知的情况下实现主动降噪。
[0141]
在一个实施例中,提供了一种计算机设备,其内部结构图可以如图4所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于应用开发相关资源。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种主动噪声控制方法。本领域技术人员可以理解,图4中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0142]
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
[0143]
在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,该计算机
程序被处理器执行时实现上述各方法实施例中的步骤。
[0144]
以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本技术专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文章

  • 日榜
  • 周榜
  • 月榜