Page 48 - 《应用声学》2025年第3期
P. 48

582                                                                                  2025 年 5 月


             1.2 FxCLLMA算法                                     增 加 了 一 项 标 量 的 四 则 运 算, 即 式 (8) 中 的
                 定义代价函数如式(4)所示:                                λ(|e(n)| + 2) − 1 sgn(e(n)) 项,具体而言,每次迭
                                                                  |e(n)| + 1
                J[e(n)] = λ|e(n)| − (1 − λ) ln(1 + |e(n)|),  (4)
                                                               代比FxLMS算法多出以下标量计算:2次加法、1 次
             其中,0 < λ < 1 为加权系数,用于调整 |e(n)| 与                  减法、1 次乘法、1 次除法、1 次取绝对值和一次取符
             ln(1 + |e(n)|) 在整个代价函数中的权重。图 2 给出                 号。不需要额外的存储器。
             了三种不同 λ 取值的代价函数与 FxLMS 算法的代                           FxCLLMA 算法对突发性的冲击噪声的鲁棒
             价函数J[e(n)] = e (n)的对比。                            性可以从图 2 的代价函数对比中看出,当 |e(n)| 较
                             2
                                                               大时,通常是实际系统中的异常突发信号,FxLMS
                                      FxLMS
                                      λ=0.9                    算法的代价函数曲线在 FxCLLMA 算法之上,即
                                      λ=0.7
                                      λ=0.5                    FxLMS 算法对异常值的敏感性要大于 FxCLLMA
                                                               算法。另一方面,现有的凸组合有源控制算法大
                  J♭e↼n↽♯                                      多采用两种自适应算法的线性加权和,而式 (4) 是

                                                               线性加权差,采用麦克劳林展开式 (4),并取一阶
                                                               近似得

                                                                  J[e(n)] = λ|e(n)| − (1 − λ) ln(1 + |e(n)|)
                                                                                          [
                                                                                                   1  2
                                   e↼n↽                                  = λ|e(n)| − (1 − λ) |e(n)| − |e (n)|
                                                                                                   2
                                                                              1           ]
                                                                                 3
                    图 2  不同加权系数的代价函数曲线对比                                   + |e (n)| − · · ·
                                                                              3
                Fig. 2 Cost functions with different weighting pa-                         1 − λ
                                                                                                2
                rameters                                                 ≈ (2λ − 1)|e(n)| +    e (n).    (10)
                                                                                            2
                 为便于讨论式(4)的凸性,令式(4)中|e(n)| = ε                 可以看出 FxCLLMA 算法的代价函数可以近似看
             (ε > 0),求式(4)一阶、二阶导数可得                            作 e(n) 的一阶矩和二阶矩的加权混合,当 λ 取值
                               (ε + 2)λ − 1                    接近 1 时,式 (10) 变为 e(n) 的一阶矩占主导,此时
                          ′
                        J [ε] =            ,            (5)
                                   1 + ε                       FxCLLMA 算法对异常突发信号的鲁棒性增强;当
                                             2
                          ′′
                        J [ε] = (1 − λ)/(1 + ε) .       (6)    λ 取值接近 0.5 时,式 (10) 变为 e(n) 的二阶矩占主
             可知,式 (6) 在 0 < λ < 1 时永远大于 0,式 (5) 为正             导,此时 FxCLLMA 算法的性能与 FxLMS 算法接
             的条件是                                              近。需要说明的是,FxCLLMA 算法每次迭代只需
                                                               要采用式 (8) 更新一套滤波器 w(n),而现有凸组合
                             λ > 1/(ε + 2).             (7)
                                                               方法如文献[17–20] 中,每次迭代需要更新两套滤波
             取 0.5 < λ < 1 时,可确保式 (4) 为凸函数。与                   器,每套滤波器输出相加作为最终的次级信号,因
             FxLMS 算法的导出类似,由式 (4)、式 (1)、式 (2) 可                此 FxCLLMA 算法与已有的凸组合算法的优势是
             得,FxCLLMA算法的滤波器更新公式为                              只需要维持一套滤波器的运行。
                                 λ(|e(n)| + 2) − 1)
             w(n + 1) = w(n) + µ                 sgn (e(n))
                                    (|e(n)| + 1)               2 仿真分析
                        × [x(n) ∗ ˆ s(n)],              (8)
                                                                   仿真采用的初级路径 P(z) 和次级路径 S(z) 分
             其中,sgn(e(n))为符号函数,即
                                                               别是 4096 阶和 512 阶的有限长脉冲响应滤波器,其
                                 
                                 1,     e(n) > 0,             频率响应如图 3 所示,P(z) 是在混响时间为 0.6 s
                                 
                                 
                      sgn(e(n)) =  0,    e(n) = 0,      (9)    的房间中,声源距参考传声器的距离为 2 m 情景
                                 
                                 
                                  −1, e(n) < 0.               下测得的,S(z) 是在混响时间为 0.6 s 的房间中,
             对 比 式 (3) 与 式 (8) 可 以 看 出, FxCLLMA 算 法            次级源距误差传声器的距离为 0.1 m 情景下测得
             的 运 算 量 与 FxLMS 算 法 相 当, 每 次 迭 代 仅                的。仿真中假定次级路径的估计值是无偏差的,即
   43   44   45   46   47   48   49   50   51   52   53