Page 40 - 《应用声学》2022年第1期
P. 40
36 2022 年 1 月
T
e k (n)=[e k (n), e k (n − 1), · · · , e k (n − P +1)] , 差向量,加快收敛速度。可以表示为
(6) ∑ ∑
J
K
ˆ
E(n) = E(n) + S j,k ∗ y j (n)
T
y j (n)=[y j (n), y j (n − 1), · · · , y j (n − M +1)] ,
k=1 j=1
(7) T
− U (n)W (n). (16)
其中,每个元素y j (n)可通过公式(2)获得。
即误差传声器拾取信号 E(n) 之后,不直接去更新
误差信号矩阵e k (n)可表示为
ˆ
滤波器,而是用估计出来的误差信号 E(n) 做运算。
J
∑
e k (n) = d k (n) + S j,k ∗ y j (n) 这个操作消除了次级通路的时延对系统的影响,进
j=1 一步提升了收敛速度 [17] 。由于MFxAP算法对于误
J [ I ]
∑ ∑ 差信号的重构会带来计算量的增加,为了减少运算
T
= d k (n) + S j,k ∗ x (n)w i,j (n)
i 量,前人研究了许多快速 MFxAP 算法 [14] ,其中容
j=1 i=1
易实现的 Fast FxAP 算法。它是在正则化因子 δ 很
I J
∑ ∑
= d k (n) + v i,j,k w i,j (n), (8) 小的时候,对于矩阵求逆进行近似。Fast FxAP 中
i=1 j=1
误差信号向量简单记为
式(8)中,
[ T ] T
e k,0 (n) ≈ e k,0 (n), (1 − µ)˜ e (n − 1) , (17)
k
T
v i,j,k (n) = x (n) ∗ S j,k . (9) [
i
T
式(17)中, ˜ e (n − 1)= e k,0 (n − 1), e k,1 (n − 1), · · · ,
k
T
令 u k (n) = [v T (n), v T (n), · · · , v T (n)] , ] T
1,1,k 1,2,k I,J,k e k,L−2 (n − 1) 为n − 1时刻误差向量e k (n − 1)的
T
T
T
W (n) =[w 1,1 (n), w 1,2 (n), · · · , w T (n)] ,公式 (8) 前 L − 1 个元素,用它来拼凑新的矩阵 E(n),得到
I,J
ˆ
可改写为
ˆ
E(n) 的一个简化估计。可以理解为,这是对于普通
T
e k (n)=d k (n) + u (n)W (n), k=1, 2 · · · K. (10)
k 的FxAP算法旧的误差向量进行了“遗忘”。
为了简便表示,令 算法收敛时间跟滤波 -x 信号相关矩阵的特征
T
T
T
T
D(n) = [d (n), d (n), · · · , d (n)] , 值散度有关 [2] ,特征值散度越大,收敛越慢。FxAP
1 2 K
算法可以加速收敛主要是因为对于滤波 -x 矩阵进
T
T
T
T
E(n) = [e (n), e (n), · · · , e (n)] ,
1 2 K [14]
行求逆,它是一种预白化操作 ,减少了特征值的
U(n) = [u 1 (n), u 2 (n), · · · , u K (n)],
散度,加快了收敛速度。
式(10)可以进一步写为
2.3 计算复杂度分析
T
E(n) = D(n) + U (n)W (n). (11)
本 节 考 虑 硬 件 实 现 复 杂 度 的 问 题, 对
进而目标函数记为 FxNLMS、FxAP、MFxAP、Fast FxAP 算法的运
2
min ||W (n + 1) − W (n)|| , 算量进行分析。
W (n+1) (12) 上述算法实现的时候,需要计算的变量分别是
T
s.t. D(n) = U (n)W (n + 1). −1
y j (n)、E(n)、U(n)、R (n)、W (n + 1),其中 4 种
使用拉格朗日乘子法,可求得 FxAP 算法的更新 算法都需要计算 y j (n)、U(n)、W (n + 1) 三个变量,
公式为 需要 J × IL + IJK × M + IJK × KP 次乘法和
W (n + 1) = W (n) + µU(n) · ε(n). (13) J × I(L − 1) + IJK × (M − 1) + IJK × KP 次加
法,把他们分别记为 C × 和 C + 。总结 4 种算法复杂
式(13)中,
度如表1所示。
ε(n) = [R(n) + δI] −1 e(n), (14)
相比于 FxNLMS 算法,FxAP 算法计算量主要
T
R(n) = U (n)U(n), (15) 增加在矩阵求逆过程中;MFxAP 算法的还需要计
其中,δ 是一小量,用来防止矩阵求逆时出现不稳定 算虚拟误差信号矩阵,这个步骤的计算量非常大,
情况。 Fast FxAP算法是对求解虚拟误差信号矩阵这个过
同样,FxAP 类算法也有很多改进形式,例如 程的一个近似,只是增加了 (L − 1) × P 个乘法,这
MFxAP(Modified FxAP) 算法 [14] ,它通过重构误 个计算量增加是可以接受的。