本文对 GREGORY A. CLARK 于 1981 年在 IEEE Transactions on Circuits and Systems 上发表的论文进行简单地翻译。如有表述不当之处欢迎批评指正。欢迎任何形式的转载,但请务必注明出处。
论文链接:https://ieeexplore.ieee.org/abstract/document/1085018
实现逐块更新的自适应数字滤波器。
块数字滤波是指一次性输入给滤波器一整块数据,然后一次性得到一整块或有限数量的输出。本文提出了一种块自适应滤波方法,在每得到一整块的输出数据后,该方法才根据广义最小均方(LMS)算法更新一次滤波器系数。通过分析收敛特性和计算复杂度,可以看出块自适应滤波器是广泛所使用的 LMS 自适应滤波器的快速实现,而且其性能与后者相同。
Burrus, Mitra 以及其他学者已经对块数字滤波进行了广泛地讨论。该技术一次性输入一整块数据,并输出一整块数据。数字滤波器的块实现可以高效地使用并行处理器,这可以加快计算速度。此外,在串行处理器上实现滤波器的时候,也可以使用高效的块算法,比如快速傅立叶变换(FFT) 。低功耗大规模集成电路以及并行处理架构的持续发展使得块滤波变得越来越有吸引力。
本文对之前讨论过的块处理技术进行了修改和扩展,以用于非递归的最小均方(LMS)自适应滤波器。首先,定义一个块均方误差(BMSE)性能准则,并由此推导出 BMSE 梯度估计,该估计是误差信号和输入信号的相关(over a block of data)。然后,通过该梯度估计可以得到一个权重调整算法,该算法允许在并行处理器上或在串行处理器上结合 FFT 以块形式来实现。最后,对块实现所带来的计算复杂度的降低进行了分析,结果表明,降低的计算复杂度是非常可观的。
此处讨论的自适应数字滤波是由 Widrow 等人提出的 LMS 类型的滤波技术,其性能指标为均方误差(MSE
=
ξ
=\xi
=ξ)。假定输入均为实数。Widrow 的自适应滤波器是阶数为
N
−
1
N-1
N−1 的有限冲击响应(FIR)数字滤波器,在离散时刻
k
k
k 时,其输出
y
k
y_{k}
yk 由输入
x
k
x_{k}
xk 和滤波器权重
w
l
k
w_{lk}
wlk 的卷积和给出:
y
k
=
∑
l
=
1
N
w
l
k
x
k
−
l
+
1
,
k
=
1
,
2
,
3
,
⋯
.
Widrow-Hoff LMS 算法根据
(
2
)
(2)
(2) 调整滤波器的权重:
W
k
+
1
=
W
k
+
2
μ
ϵ
k
X
k
其中
μ
\mu
μ 是收敛常量,
W
k
\bm W_{k}
Wk 和
X
k
\bm X_{k}
Xk 分别是
N
×
1
N \times 1
N×1 维的权重向量和
N
×
1
N \times 1
N×1 维的输入向量:
W
k
≜
[
w
1
k
w
2
k
⋯
w
N
k
]
T
X
k
≜
[
x
k
x
k
−
1
⋯
x
k
−
N
+
1
]
T
ϵ
k
\epsilon_{k}
ϵk 是
k
k
k 时刻的误差信号,由期望输出
d
k
d_{k}
dk 减去真实输出
y
k
y_{k}
yk 得到:
ϵ
k
≜
d
k
−
y
k
.
本文研究了通过对数据进行分块处理来实现自适应滤波器,以期降低计算复杂度。为了使用高效的块处理,自适应算法必须在不改变滤波器参数的情况下计算输出一整块数据。因此,块自适应滤波器应该逐数据块调整权重。可以看到,传统的逐采样点调整权重的 LMS 自适应滤波器是块自适应滤波器块长为 1 1 1 时的特殊情况。
对于时不变的情况,
(
1
)
(1)
(1) 可被写为以下矩阵形式:
y
k
=
W
T
X
k
=
X
k
T
W
.
令 L L L 表示块长,以下低阶( L = 3 , N = 3 L=3, N=3 L=3,N=3)的例子展示了卷积是如何被写为更方便的块形式的:
在 ( 5 ) (5) (5) 中,将滤波器权重(而不是输入)表示为向量的形式。这与之前所提出的标准块处理公式相反,但却使得块分析变得方便,这是因为它允许对权重进行简单的微分。
通过使用上面的块符号,对于通常
(
L
,
N
)
(L, N)
(L,N) 的情况来说,
(
2
)
(2)
(2) 可以被改写为:
Y
j
=
χ
j
W
(6)
\bm Y_{j} = \chi_{j} \bm W \tag{6}
Yj=χjW(6)
其中
j
j
j 为块索引,
Y
j
\bm Y_{j}
Yj 和
χ
j
\chi_{j}
χj 分别是第
j
j
j 个长为
L
L
L 的输出向量,以及由输入向量组成的
L
×
N
L \times N
L×N 维矩阵:
Y
j
≜
[
y
(
j
−
1
)
L
+
1
y
(
j
−
1
)
L
+
2
⋯
y
j
L
]
T
χ
j
≜
[
X
(
j
−
1
)
L
+
1
X
(
j
−
1
)
L
+
2
⋯
X
j
L
]
T
.
可以使用并行处理器或在串行处理器上结合 FFT 来实现线性卷积。
经典的维纳滤波器可以被扩展到如下所示的块输入情况,可参考图 1。假设所有的输入是平稳的,令
d
j
≜
[
d
(
j
−
1
)
L
+
1
d
(
j
−
1
)
L
+
2
⋯
d
j
L
]
T
(7)
\bm d_{j} \triangleq [d_{(j-1)L+1} \quad d_{(j-1)L+2} \cdots d_{jL}]^{T} \tag{7}
dj≜[d(j−1)L+1d(j−1)L+2⋯djL]T(7)
为第
j
j
j 个块所对应的
L
×
1
L \times 1
L×1 维的期望响应向量,再令
ϵ
j
≜
[
ϵ
(
j
−
1
)
L
+
1
ϵ
(
j
−
1
)
L
+
2
⋯
ϵ
j
L
]
T
(8)
\bm \epsilon_{j} \triangleq [\epsilon_{(j-1)L+1} \quad \epsilon_{(j-1)L+2} \cdots \epsilon_{jL}]^{T} \tag{8}
ϵj≜[ϵ(j−1)L+1ϵ(j−1)L+2⋯ϵjL]T(8)
为第
j
j
j 个块所对应的
L
×
1
L \times 1
L×1 维的误差向量,
ϵ
k
\epsilon_{k}
ϵk 定义在
(
3
)
(3)
(3) 中。性能指标是分析该问题的关键要素,此处使用标准 MSE 以及最小二乘问题中所使用的 sum square error 的组合。BMSE 定义为:
BMSE
=
Ξ
≜
1
L
E
[
ϵ
j
T
ϵ
j
]
=
E
[
1
L
∑
k
=
(
j
−
1
)
L
+
1
j
L
ϵ
k
2
]
.
(9)
\text{BMSE} = \Xi \triangleq \frac{1}{L} E[\bm \epsilon_{j}^{T}\bm \epsilon_{j}] = E[\frac{1}{L} \sum_{k=(j-1)L+1}^{jL} \epsilon_{k}^{2}]. \tag{9}
BMSE=Ξ≜L1E[ϵjTϵj]=E[L1k=(j−1)L+1∑jLϵk2].(9)
很明显,BMSE is the expected value of a smoothed estimate of the squared error over one block. This is appropriate because it combines a block’s worth of error information into one number for each value of the block index
j
j
j. MSE 每次只考虑一个点的误差信息。通过使用
(
6
)
(6)
(6) 和
(
8
)
(8)
(8),
(
9
)
(9)
(9) 可被改写为:
L
Ξ
=
E
{
d
j
T
d
j
}
−
E
{
d
j
T
χ
j
}
W
−
W
T
E
{
χ
j
T
d
j
}
+
W
T
E
{
χ
j
T
χ
j
}
W
L \Xi = E\{\bm d_{j}^{T} \bm d_{j}\} - E\{\bm d_{j}^{T} \chi_{j}\} \bm W - \bm W^{T} E\{\chi_{j}^{T} \bm d_{j}\} + \bm W^{T} E\{\chi_{j}^{T} \chi_{j}\} \bm W
LΞ=E{djTdj}−E{djTχj}W−WTE{χjTdj}+WTE{χjTχj}W
其中 d j \bm d_{j} dj 是第 j j j 个期望输出块。
现定义如下的相关矩阵:
R
=
E
[
X
k
X
k
T
]
P
=
E
[
X
k
d
k
]
R
=
E
[
χ
j
T
χ
j
]
,
P
=
E
[
χ
j
T
d
j
]
.
(10 — 12)
R R R 和 R \mathscr{R} R 分别是 N × N N \times N N×N 维的输入自相关以及块输入相关矩阵。同样地, P P P 是输入和期望响应之间 N × 1 N \times 1 N×1 维的互相关向量, P \mathscr{P} P 是块输入和块期望响应之间 N × 1 N \times 1 N×1 维的互相关向量。
使用上述定义,BMSE 可被改写为:
Ξ
=
1
L
[
E
{
d
j
T
d
j
}
−
P
T
W
−
W
T
P
+
W
T
R
W
]
(13)
\Xi = \frac{1}{L} [E\{\bm d_{j}^{T} \bm d_{j}\} - \mathscr{P}^{T} \bm W - \bm W^{T} \mathscr{P} + \bm W^{T} \mathscr{R} \bm W] \tag{13}
Ξ=L1[E{djTdj}−PTW−WTP+WTRW](13)
使用
(
6
)
(6)
(6) 和
(
12
)
(12)
(12),并利用平稳性,可以证明
R
=
L
R
\mathscr{R} = LR
R=LR 以及
P
=
L
P
\mathscr{P} = LP
P=LP。进一步,
(
13
)
(13)
(13) 可被重写为:
Ξ
=
E
[
d
k
2
]
−
2
P
T
W
−
W
T
R
W
=
ξ
.
(14)
\Xi = E[d_{k}^{2}] - 2P^{T} \bm W - \bm W^{T} R \bm W = \xi. \tag{14}
Ξ=E[dk2]−2PTW−WTRW=ξ.(14)
(笔者注:上式可能是原作笔误,正确公式应该是
Ξ
=
E
[
d
k
2
]
−
2
P
T
W
+
W
T
R
W
=
ξ
.
\Xi = E[d_{k}^{2}] - 2P^{T} \bm W + \bm W^{T} R \bm W = \xi.
Ξ=E[dk2]−2PTW+WTRW=ξ.)因此,当输入是平稳的时候,BMSE 等于 MSE。那么块维纳滤波器的权重最优解集
W
∗
\bm W^{*}
W∗ 与维纳滤波器的相同,即:
W
∗
=
R
−
1
P
.
(15)
\bm W^{*} = R^{-1} P. \tag{15}
W∗=R−1P.(15)
这可以用正交性原理的扩展来证明,该原理是指使 BMSE 最小化的权重向量
W
∗
\bm W^{*}
W∗ 是令误差向量
ϵ
j
\bm \epsilon_{j}
ϵj 和块数据
χ
j
\chi_{j}
χj 正交的向量。BMSE 的最小值(
Ξ
m
i
n
\Xi_{min}
Ξmin)由下式给出:
1
L
E
[
d
j
T
ϵ
j
]
\frac{1}{L} E[\bm d_{j}^{T} \bm \epsilon_{j}]
L1E[djTϵj]
且其等于 ξ m i n \xi_{min} ξmin。 显然,维纳滤波问题是块维纳问题的一种特殊情况( L = 1 L=1 L=1)。
类似于 LMS 自适应滤波,也可以推导出一种分块算法,其利用梯度搜索技术来实时顺序地求解维纳权重向量。因为在处理每个数据块的时候,希望权重值保持不变,因此,权重向量是逐块更新的,而不像 LMS 算法那样是逐点更新的。算法更新公式为:
W
j
+
1
=
W
j
−
μ
B
∇
B
j
(16)
\bm W_{j+1} = \bm W_{j} - \mu_{B} \nabla_{Bj} \tag{16}
Wj+1=Wj−μB∇Bj(16)
其中
μ
B
\mu_{B}
μB 是收敛常量,
∇
B
j
\nabla_{Bj}
∇Bj 是
j
j
j 时刻
N
×
1
N \times 1
N×1 维的 BMSE 梯度,
W
j
\bm W_{j}
Wj 是
j
j
j 时刻
N
×
1
N \times 1
N×1 维的权重向量。
∇
B
j
≜
1
L
∂
E
[
ϵ
j
T
ϵ
j
]
∂
W
∣
W
=
W
j
(17)
\left. \nabla_{Bj} \triangleq \frac{1}{L} \frac{\partial E[\bm \epsilon_{j}^{T} \bm \epsilon_{j}]}{\partial \bm W} \right|_{\bm W = \bm W_{j}} \tag{17}
∇Bj≜L1∂W∂E[ϵjTϵj]
W=Wj(17)
因为计算集总平均(ensemble average)是比较难得,因此使用梯度的估计
∇
^
B
j
\hat \nabla_{Bj}
∇^Bj 来代替
∇
B
j
\nabla_{Bj}
∇Bj。
j
j
j 时刻 BMSE 梯度估计定义为:
∇
^
B
j
≜
1
L
∂
ϵ
j
T
ϵ
j
∂
W
j
=
−
2
L
χ
j
T
ϵ
j
.
(18)
\hat \nabla_{Bj} \triangleq \frac{1}{L} \frac{\partial \bm \epsilon_{j}^{T} \bm \epsilon_{j}}{\partial \bm W_{j}} = - \frac{2}{L} \chi_{j}^{T} \bm \epsilon_{j}. \tag{18}
∇^Bj≜L1∂Wj∂ϵjTϵj=−L2χjTϵj.(18)
在权重调整算法
(
16
)
(16)
(16) 中使用这种无偏块梯度估计,得到块最小均方(BLMS)算法:
W
j
+
1
=
W
j
+
2
μ
B
L
χ
j
T
ϵ
j
=
W
j
+
2
μ
B
L
∑
k
=
(
j
−
1
)
L
+
1
j
L
ϵ
k
X
k
=
W
j
+
2
μ
B
L
Φ
j
.
(19)
当块长
L
=
1
L=1
L=1 时,BLMS 算法等于 LMS 算法。
(
19
)
(19)
(19) 中的权重更新项是对由一块数据所生成的
L
L
L 个类 LMS 项
ϵ
k
X
k
\epsilon_{k} \bm X_{k}
ϵkXk 的平均。Consider
Φ
j
\Phi_{j}
Φj written out for the
i
i
ith weight:
ϕ
i
j
=
∑
k
=
(
j
−
1
)
L
+
1
j
L
ϵ
k
x
k
−
i
+
1
,
i
=
1
,
2
,
⋯
,
N
.
\phi_{ij} = \sum_{k=(j-1)L+1}^{jL} \epsilon_{k} x_{k-i+1}, \quad i=1,2, \cdots, N.
ϕij=k=(j−1)L+1∑jLϵkxk−i+1,i=1,2,⋯,N.
令
n
=
k
−
i
+
1
n=k-i+1
n=k−i+1,上式变为:
ϕ
i
j
=
∑
n
=
(
j
−
1
)
L
−
i
+
2
j
L
−
i
+
1
ϵ
n
+
i
−
1
x
n
=
e
−
i
∗
x
i
,
for
i
=
1
,
2
,
⋯
,
N
其中 ∗ * ∗ 表示卷积操作。很明显,权重更新项是相关操作,可以使用并行处理器或在串行处理器上结合 FFT 以块形式来实现(见图 1)。
从另一个角度来看,注意到 χ j T \chi_{j}^{T} χjT is Toeplitz when square and can therefore be embedded in a circulant matrix. 卷积操作 χ j W j \chi_{j} \bm W_{j} χjWj 和相关操作 χ j T ϵ j \chi_{j}^{T} \bm \epsilon_{j} χjTϵj 就可以很容易地用 FFT 来实现。这很重要,因为这意味着对于 BLMS 自适应滤波来说, ( 6 ) (6) (6) 中的卷积和权重更新都能以块形式实现,而对于 LMS 自适应滤波,两者都不能以块形式实现。
块长度的选择是很重要的。 ( 19 ) (19) (19) 表明对于任意大于或等于 1 1 1 的块长,该算法都是有效的。然而,在大多数应用中, L = N L = N L=N 的情况可能会是首选。这是因为对于 L > N L > N L>N 的情况,在 L L L 个输入样本上计算出来的梯度估计,比滤波器 W \bm W W 使用的输入信息更多,这导致了冗余操作。对于 L < N L < N L<N 的情况,滤波器长度大于正在处理的输入数据块长,这是对滤波器权重的 waste。
自适应滤波过程中的 收敛特性主要包括:收敛常量( μ \mu μ 或 μ B \mu_{B} μB)的边界,自适应速度和自适应精度。 自适应速度是指 MSE 降低到最小 MSE(MMSE or ξ m i n \xi_{min} ξmin) 估计值的速度。用于表示自适应算法求出的解与 ξ m i n \xi_{min} ξmin 接近程度的量(自适应精度)被称为失配,定义为 average excess MSE 除以 ξ m i n \xi_{min} ξmin。(The measure of how close the solution is to ξ m i n \xi_{min} ξmin (adaption accuracy)is called misadjustment and is defined as average excess MSE divided by ξ m i n \xi_{min} ξmin.)图 2 以图形的方式展示了块形式下的自适应速度和 excess MSE。本节对块自适应滤波器的上述收敛特性进行了分析,并与传统 LMS 自适应滤波器的收敛特性进行了比较。
首先,必须证明 BLMS 算法是收敛的,已有文献给出了证明过程。文献所采用的方法是证明随着数据块编号
j
j
j 接近无穷大,权重向量的期望值(
E
[
W
j
+
1
]
E[\bm W_{j+1}]
E[Wj+1])接近维纳权重向量,前提条件是假设
χ
j
\chi_{j}
χj 和
d
j
\bm d_{j}
dj 是各态历经的(ergodic),以及
E
[
χ
j
T
χ
j
+
l
]
≈
0
for
l
≠
0
E[\chi_{j}^{T} \chi_{j+l}] \approx 0 \; \text{for} \; l \neq 0
E[χjTχj+l]≈0forl=0。该证明还表明对收敛常量的要求是相同的(
μ
\mu
μ 用于 LMS,
μ
B
\mu_{B}
μB 用于 BLMS ),也就是说,为了保证相应的自适应算法收敛,
μ
\mu
μ 和
μ
B
\mu_{B}
μB 的取值范围必须一样。收敛常量的边界为:
for LMS:
0
<
μ
<
1
λ
m
a
x
(20)
0 < \mu < \frac{1}{\lambda_{max}} \tag{20}
0<μ<λmax1(20)
for BLMS:
0
<
μ
B
<
1
λ
m
a
x
(21)
0 < \mu_{B} < \frac{1}{\lambda_{max}} \tag{21}
0<μB<λmax1(21)
其中 λ m a x \lambda_{max} λmax 是矩阵 R R R 的最大的特征值。
自适应速度以时间常量的形式给出,该常量表明了权重向量收敛到维纳权重向量的速度(见图 2)。实际上,存在
N
N
N 个时间常量
T
p
M
S
E
T_{pMSE}
TpMSE,每个时间常量对应差分方程的一个(
p
th
p\text{th}
pth)模式,该差分方程用于描述自适应过程。这些时间常量的推导过程可以参考先前的文献。该推导过程遵循相应的 LMS 算法的推导形式,但存在一些非常重要的区别。收敛常量
μ
\mu
μ(用于 LMS)被
μ
B
\mu_{B}
μB(用于 BLMS) 替代。用于 LMS 的时间单元为采样点编号
(
k
)
(k)
(k),而用于 BLMS 的时间单元为数据块编号
(
j
)
(j)
(j)。因此,这两种不同算法的方程具有相同的形式,但却有着不同的意义。This difference is resolved by converting the BLMS time constants to units of sample numbers so comparison with LMS time constants becomes meaningful. 对于输入数据自相关矩阵
R
R
R 的特征值全部相等的特殊情况下,这
N
N
N 个时间长量可以被归为一个,令
τ
M
S
E
\tau_{MSE}
τMSE 用于 LMS,
T
M
S
E
T_{MSE}
TMSE 用于 BLMS。可以得到:
for LMS:
T
p
M
S
E
=
L
4
μ
B
λ
p
,
T
M
S
E
=
N
L
4
μ
B
tr
R
(22)
T_{pMSE} = \frac{L}{4 \mu_{B} \lambda_{p}},\; T_{MSE} = \frac{NL}{4 \mu_{B} \text{tr} R} \tag{22}
TpMSE=4μBλpL,TMSE=4μBtrRNL(22)
for BLMS:
τ
p
M
S
E
=
1
4
μ
λ
p
,
τ
M
S
E
=
N
4
μ
tr
R
(23)
\tau_{pMSE} = \frac{1}{4 \mu \lambda_{p}}, \tau_{MSE} = \frac{N}{4 \mu \text{tr} R} \tag{23}
τpMSE=4μλp1,τMSE=4μtrRN(23)
其中 λ p \lambda_{p} λp 等于 R R R 的第 p th p\,\text{th} pth 个特征值, tr R \text{tr} R trR 是 R R R 的迹,或者说是 R R R 对角线上元素的和。
自适应精度或者说权重噪声的度量,可以通过失配对其进行评估,定义为(见图 2):
for BLMS:
M
≜
Average Excess BMSE
ξ
m
i
n
(24)
\mathfrak{M} \triangleq \frac{\text{Average Excess BMSE}}{\xi_{min}} \tag{24}
M≜ξminAverage Excess BMSE(24)
for LMS:
M
≜
Average Excess MSE
ξ
m
i
n
.
(25)
M \triangleq \frac{\text{Average Excess MSE}}{\xi_{min}}. \tag{25}
M≜ξminAverage Excess MSE.(25)
失配是由 BLMS 或 LMS 算法中的梯度噪声造成的。先前已有文献推导出了 BLMS 算法的失配,其形式为:
for BLMS:
Average Excess BMSE
=
μ
B
L
ξ
m
i
n
tr
R
,
M
=
μ
B
L
tr
R
(26)
\text{Average Excess BMSE} = \frac{\mu_{B}}{L} \xi_{min} \text{tr} R,\quad \mathfrak{M} = \frac{\mu_{B}}{L} \text{tr} R \tag{26}
Average Excess BMSE=LμBξmintrR,M=LμBtrR(26)
for LMS:
Average Excess BMSE
=
μ
ξ
m
i
n
tr
R
,
M
=
μ
tr
R
.
(27)
\text{Average Excess BMSE} = \mu \xi_{min} \text{tr} R,\quad M = \mu \text{tr} R. \tag{27}
Average Excess BMSE=μξmintrR,M=μtrR.(27)
对上述的指标取比值,可得到以下有趣的特性:
T
p
M
S
E
τ
p
M
S
E
=
L
μ
μ
B
and
M
M
=
μ
B
L
μ
.
(28)
\frac{T_{pMSE}}{\tau_{pMSE}} = \frac{L \mu}{\mu_{B}} \quad \text{and} \quad \frac{\mathfrak{M}}{M} = \frac{\mu_{B}}{L \mu}. \tag{28}
τpMSETpMSE=μBLμandMM=LμμB.(28)
可以看到:如果 μ B = L μ \mu_{B} = L \mu μB=Lμ,那么 BLMS 和 LMS 算法就以同样的速率收敛,并达到相同的失配。
In using these relations for design purposes, 必须记得 μ B \mu_{B} μB 和 μ \mu μ 有着同样的收敛边界,因为这一存在的事实限制了可用的块长。比如,一个可能的情况是 μ B = L μ \mu_{B} = L \mu μB=Lμ 且 μ \mu μ 满足 ( 20 ) (20) (20),但是 μ \mu μ 和 L L L 太大,以至于 ( 21 ) (21) (21) 得不到满足。当然,与快速自适应相比,慢速自适应不太可能出现这种情况。
当块长 L = 1 L=1 L=1 时,关于 BLMS 收敛的所有关系都简化为 LMS 的情况。
传统上,自适应滤波器的性能方程是在假设输入数据不相关的基础上导出的,因为这种情况容易处理。正如已有文献中所讨论的那样,BLMS 算法的收敛证明以及收敛参数的推导是基于输入矩阵 χ j \chi_{j} χj 和 χ j + 1 \chi_{j+1} χj+1 不相关的前提假设。而 LMS 算法是基于 X k \bm X_{k} Xk 和 X k + 1 \bm X_{k+1} Xk+1 不相关的前提假设。这些假设使得对于 BLMS 算法来说,认为 W j \bm W_{j} Wj 是独立于 χ j \chi_{j} χj 的,对于 LMS 算法来说,认为 W k \bm W_{k} Wk 是独立于 X k \bm X_{k} Xk 的。这些假设虽然简化了证明过程,但并不是对所有数据类型都是适用的。两种证明都假设输入是平稳的。
有文献讨论了数据相关时的收敛特性,并给出了一些结果,这些结果加强了支持块自适应滤波的论点。基于 Gersho 的工作,Kim and Davisson 使用长为 L L L 的数据块上的样本平均值来估计 MSE 梯度,以调整自适应算法的权重。他们假设输入数据是 M M M-dependent,这基本上意味着 that it is uncorrelated for autocorrelation lags greater than M M M(其中 M M M 是一个正整数)。Kim and Davisson 证明当输入是 M M M-dependent,且每个数据块调整一次滤波器权重时,如果 L ≥ ( M + N − 1 ) L \geq (M+N-1) L≥(M+N−1),那么收敛性分析的问题就被克服了,其中 N N N 是滤波器长度, M M M 是 M M M-dependent 的常量。
Keeler 基于修改了的 LMS 算法研究了自适应预测器,使其每 h h h 个输入样本调整一次权重。他表明如果 h h h 选的足够大,那么可以分析输入数据相关时的收敛特性。
关于上述讨论,需要记住的一点是,当输入数据相关并且满足 M M M-dependent 条件时,块自适应滤波相比 LMS 滤波具有分析上的优势,因为每个数据块只调整一次权重。然而,当输入相关时,在比较 LMS 和 BLMS 的性能之前,还需要更多的工作。
本节通过计算机仿真实验,验证了时间常数和失配的方程。仿真实验的目的是将 LMS 和 BLMS 应用于同一个具有代表性的问题上,并检查 ( 28 ) (28) (28) 是成立的。在所有的实验中,均使用不相关的噪声。
示例问题选自 Widrow 和 McCool 的论文。该问题非常简单,易于分析,是一个很好的比较标准。它是一个系统辨识问题,其目标是建模 a plant consisting of a fixed delay of two sample periods.(见图 3)
自适应滤波器有四个权重。 n 1 k n_{1k} n1k is composed of independent samples of zeros-mean white Gaussian noise of unit power. The measurement noise n 2 k n_{2k} n2k is composed of independent samples of zeros-mean white Gaussian noise with a power of 0.5 0.5 0.5. 在所有情况中,均将权重向量初始化为 0 0 0。
最优权重向量为
W
∗
=
[
0
0
1
0
]
T
\bm W^{*} = [0 \; 0 \; 1 \; 0]^{T}
W∗=[0010]T. 收敛了之后,
ϵ
k
=
n
2
k
\epsilon_{k} = n_{2k}
ϵk=n2k 且
ξ
m
i
n
=
σ
n
2
2
\xi_{min} = \sigma_{n2}^{2}
ξmin=σn22(它表示
n
2
n_{2}
n2 的噪声功率,且值为0.5)。因为
n
1
n_{1}
n1 是白噪声且其功率为
R
=
I
R=I
R=I,因此
R
R
R 所有的特征值均等于
1
1
1。可以证明该示例问题中的 MSE 由下式给出:
ξ
k
=
0.5
+
w
1
k
2
+
w
2
k
2
+
(
w
3
k
−
1
)
2
+
w
4
k
2
.
(29)
\xi_{k} = 0.5 + w_{1k}^{2} + w_{2k}^{2} + (w_{3k} - 1)^{2} + w_{4k}^{2}. \tag{29}
ξk=0.5+w1k2+w2k2+(w3k−1)2+w4k2.(29)
失配和时间常量的理论值是通过 ( 22 ) , ( 23 ) (22), (23) (22),(23) 和 ( 26 ) , ( 27 ) (26), (27) (26),(27) 计算出来的。失配的测量值是通过检查数据并使用 ( 24 ) , ( 25 ) (24), (25) (24),(25) 来完成的。
该实验给出的示例表明当 μ B = μ \mu_{B} = \mu μB=μ 时, T M S E = L τ M S E T_{MSE} = L \tau_{MSE} TMSE=LτMSE 且 M = M / L \mathfrak{M} = M / L M=M/L. 学习曲线如图 4、图 5 所示,表 I 总结出了该实验的结果。可以看到理论结果和实验结果相吻合。
该实验给出的示例表明当 μ B = L μ \mu_{B} = L \mu μB=Lμ 时, T M S E = τ M S E T_{MSE} = \tau_{MSE} TMSE=τMSE 且 M = M \mathfrak{M} = M M=M. 学习曲线如图 6、图 7 所示,表 I 总结出了该实验的结果。再次看到理论结果和实验结果相吻合。
使用上述和其它的 μ B , μ , L \mu_{B}, \, \mu, \, L μB,μ,L 之间的关系进行了更多的实验,均表明 ( 28 ) (28) (28) 成立。
算法实现中涉及的主要计算效率问题是存储(内存),时间(CPU 的机器周期数,输入输出等)以及计算复杂度(以所需的实数乘法和加法次数来衡量)。由于前两个指标与处理器架构有关,因此,本文集中讨论当使用标准串行处理器时,所需的计算复杂度。这是为了方便起见,即使 BLMS 自适应滤波器最有效的实现可能是使用并行处理器。
( 1 ) (1) (1) 中的卷积操作是直接实现的。生成一个输出数据需要 N N N 个实数乘法以及 N − 1 N-1 N−1 个实数加法。因此,生成 L L L 个输出数据需要 L N LN LN 个实数乘法以及 L ( N − 1 ) L(N-1) L(N−1) 个实数加法。
LMS 算法生成 L L L 个输出数据(一个数据块)需要 L N LN LN 次自适应。 在每个数据块上,需要 L ( N + 1 ) L(N+1) L(N+1) 次实数乘法来计算 ( 2 μ ϵ k ) X k (2 \mu \epsilon_{k}) \bm X_{k} (2μϵk)Xk,需要 L N LN LN 次实数加法来完成相加操作,需要 L L L 个实数加法来计算 ϵ k = d k − y k \epsilon_{k} = d_{k} - y_{k} ϵk=dk−yk。对于 LMS 算法来说,计算一个数据块的自适应部分总共需要 L ( N + 1 ) L(N+1) L(N+1) 次实数乘法以及 L ( N + 1 ) L(N+1) L(N+1) 次实数加法。因此,LMS 自适应滤波总的计算复杂度为 L ( 2 N + 1 ) L(2N+1) L(2N+1) 次实数乘法和 2 L N 2LN 2LN 次实数加法。表 II 给出了这些结果。
BLMS 的卷积操作也是直接实现的,因此它与 LMS 算法的情况一样。
从 ( 19 ) (19) (19) 可以看出,对于每个数据块,计算权重更新项 Φ j \bm \Phi_{j} Φj 需要 L N LN LN 次实数乘法以及 N ( L − 1 ) N(L-1) N(L−1) 次实数加法,将 ( 2 μ B / L ) Φ j (2\mu_{B} / L) \bm \Phi_{j} (2μB/L)Φj 与 W j \bm W_{j} Wj 相加需要 N N N 次实数加法,计算 ( 2 μ B / L ) ⋅ Φ j (2\mu_{B}/L) \cdot \bm \Phi_{j} (2μB/L)⋅Φj 需要 N N N 次实数乘法(计算 2 μ B / L 2\mu_{B} / L 2μB/L 需要两次乘法,但这只需要在第一个数据块到来时计算一次就好,因此,忽略其计算复杂度),计算 ϵ k = d k − y k \epsilon_{k} = d_{k} - y_{k} ϵk=dk−yk 需要 L L L 次实数加法。因此,对于每个数据块,标准 BLMS 自适应滤波总的复杂度为 N ( 2 L + 1 ) N(2L+1) N(2L+1) 次实数乘法以及 2 L N 2LN 2LN 次实数加法。表 II 给出了这些结果。
对于 BLMS 自适应滤波来说,可以使用 FFT 以及 overlap-add 或 overlap-save 来实现其卷积操作。在整个分析过程中,假设输入和输出都是实信号,且 FFT used is for complex data。那么就可以使用高效的卷积运算,它通过适当地使用 N ′ / 2 N^{'} / 2 N′/2 点的复数 FFT 算法的实部和虚部来计算 N ′ N^{'} N′ 点实序列的变换。为了进一步降低复杂度,a radix 4 FFT with one radix 2 section is used. FFT 的长度 ( N ′ / 2 ) (N^{'} / 2) (N′/2) 必须是 2 2 2 的整数次幂,其中 N ′ ≥ L + N − 1 N^{'} \geq L+N-1 N′≥L+N−1。附录讨论了 FFT 算法和卷积的复杂度。
BLMS 算法中的梯度估计项 Φ j \bm \Phi_{j} Φj 可以被写成如第 5 5 5 节所示的相关的形式。因此,它可以如上述所述的卷积那样使用 FFT 来实现。唯一的不同之处是在与 x i x_{i} xi 的 FFT 相乘之前,必须对 ϵ i \epsilon_{i} ϵi 的 FFT 取共轭。图 8 展示了该运算过程,附录讨论了其计算复杂度。注意到相关操作输出 N ′ N^{'} N′ 个数据,但只有前 N N N 个数据是有意义的,因为只有 N N N 个权重需要被调整。如图 8 所展示的那样,其余的 N ′ − N N^{'} - N N′−N 个数据将被丢弃(其实是将这些数据赋值为零)。
Once the correlation (gradient estimate) is computed, the BLMS algorithm requires N N N real multiplies and N + L N + L N+L real adds per block of outputs. 表 II 给出了基于 FFT 实现的 BLMS 自适应滤波器的计算复杂度。
使用多维卷积技术也可以高效地完成串行实现。它以增加存储和数据操作为代价,大大节省了乘法运算次数。这样的卷积输出一整块数据需要 ( 3 ) M (3)^M (3)M 次实数乘法,其中 N = 2 M N = 2^{M} N=2M。如表 II 所示,以这种方式实现的 BLMS 自适应滤波器需要 2 ( 3 ) M + N 2(3)^{M} + N 2(3)M+N 次实数乘法。
表 II 中的结果表明 LMS 和直接实现的 BLMS 之间的复杂度差异非常小。因此,感兴趣的点是比较 LMS 和上述讨论的两种快速算法所实现的 BLMS 自适应滤波器。对于这些实现,计算复杂度比率 CR,并通过对块长
L
L
L 取不同值,得到表 III 中的结果。
CR
=
Complexity of LMS Filtering
Complexity of BLMS Filtering
.
(30)
\text{CR} = \frac{\text{Complexity of LMS Filtering}}{\text{Complexity of BLMS Filtering}}. \tag{30}
CR=Complexity of BLMS FilteringComplexity of LMS Filtering.(30)
只对 L = N L=N L=N 的情况进行了分析,因为第五节有讲到这种情况最有效地利用了输入数据。正如附录中所讨论的那样,卷积实现需要的序列长度为 N ′ ≥ L + N − 1 N^{'} \geq L + N - 1 N′≥L+N−1。因为对于表 II 中的方程来说, N ′ N^{'} N′ 必须是 2 2 2 的整数次幂,且已假设 L = N L = N L=N,因此,为了方便起见,在计算 CR 时,令 N ′ = 2 N N^{'} = 2N N′=2N。
表 IV summarizes the conditions under which the BLMS filter is more efficient than the LMS filter for the two implementations discussed. 很明显,串行实现的 BLMS 自适应滤波器对于大多数实际应用所感兴趣的滤波器长度来说都是具有吸引力的。对于较大的滤波器长度以及块长度来说,复杂度的提高是很显著的,达到了十倍甚至更高。使用大型滤波器的例子包含滤波器长达 256 256 256 的房间声学问题。另一个例子是潜艇探测问题,它使用长为 2048 2048 2048 的滤波器来获得更好的谱分辨率和处理增益。
Ferrara 所发表的论文是对 Dentino 等人所讨论的频域自适应滤波技术的扩展和改进。可以证明 Ferrara 的频域滤波器是在串行处理器上使用 FFT 实现的块自适应滤波器的一种特殊情况。这两种技术的主要差异在于基于 FFT 实现的块自适应滤波器是在时域调整权重,而 Ferrara 的滤波器是在频域调整权重。
推导了一种块自适应滤波器,它能够被快速实现,同时保持了与 LMS 自适应滤波器相同的性能。块表达式提供了一个统一的框架,维纳滤波和 LMS 自适应滤波都是该框架下的一种特殊情况(即块长 L = 1 L = 1 L=1 的情况)。比较了 BLMS 和 LMS 自适应滤波器的收敛特性,结果表明两者是一样的。有研究指出,当输入数据相关时,BLMS 相比 LMS 自适应滤波器具有分析上的优势。最后,当在串行处理器上使用高效的卷积算法实现时,BLMS 自适应滤波器可以涉及较低的计算复杂度。如果使用并行处理器,预计可以进一步提升计算速度。研究工作仍在继续以将块自适应滤波技术扩展到其它类型的 FIR 和 IIR 结构。
The FFT algorithm used is for complex data。复数和实数运算之间的关系为:
1
1
1 个复数加法
=
2
= 2
=2 个实数加法
1
1
1 个复数乘法
=
4
= 4
=4 个实数乘法 +
2
2
2 个实数加法
两个长为 L L L 和 N N N 的序列的线形卷积结果是一个长为 L + N − 1 L+N-1 L+N−1 的序列。因此,为了使用 FFT 实现这样的卷积,必须要求序列的长度为 N ′ ≥ L + N − 1 N^{'} \geq L + N -1 N′≥L+N−1,以避免重叠。
只有在蝶形部分的数量
(
log
2
(
N
′
/
2
)
)
(\text{log}_{2}(N^{'}/2))
(log2(N′/2)) 为偶数时,The radix 4 FFT complexity formulas 才有用。当
log
2
(
N
′
/
2
)
\text{log}_{2}(N^{'}/2)
log2(N′/2) 为奇数时,an efficient radix 2 section is used for the first section, and
log
4
(
N
′
/
4
)
\text{log}_{4}(N^{'}/4)
log4(N′/4) radix 4 sections are used for the remainder. Sorting out the results of the efficient procedure for real data requires
2
N
′
2N^{'}
2N′ real multiplies and
5
N
′
5N^{'}
5N′ real adds. 因此,对于每个输出数据块,FFT 的复杂度为
(
3
/
4
)
N
′
Q
−
4
(
N
′
/
2
−
1
)
+
2
N
′
+
b
N
′
(3/4)N^{'}Q - 4(N^{'}/2-1) + 2N^{'} + bN^{'}
(3/4)N′Q−4(N′/2−1)+2N′+bN′ 次实数乘法以及
(
11
/
8
)
N
′
Q
−
2
(
N
′
/
2
−
1
)
+
5
N
′
+
b
(
3
N
′
/
2
)
(11/8)N^{'}Q - 2(N^{'}/2-1) + 5N^{'} + b(3N^{'}/2)
(11/8)N′Q−2(N′/2−1)+5N′+b(3N′/2) 次实数加法,其中:
Q
=
{
log
2
(
N
′
/
2
)
,
log
2
(
N
′
/
2
)
even
log
2
(
N
′
/
4
)
,
log
2
(
N
′
/
2
)
odd
Q=\left\{
且
b
=
{
0
,
log
2
(
N
′
/
2
)
even
1
,
log
2
(
N
′
/
2
)
odd
b=\left\{
卷积需要对输入数据和权重各进行一次 FFT 运算。还需要一次复数乘法和一次 iFFT 运算。对于每个数据块来说,这总共需要 ( 9 / 4 ) N ′ Q − 12 ( N ′ / 2 − 1 ) + 8 N ′ + b ( 3 N ′ ) (9/4)N^{'}Q - 12(N^{'}/2-1) + 8N^{'} + b(3N^{'}) (9/4)N′Q−12(N′/2−1)+8N′+b(3N′) 次实数乘法和 ( 33 / 8 ) N ′ Q − 6 ( N ′ / 2 − 1 ) + 16 N ′ + b ( 9 N ′ / 2 ) (33/8)N^{'}Q - 6(N^{'}/2-1) + 16N^{'} + b(9N^{'}/2) (33/8)N′Q−6(N′/2−1)+16N′+b(9N′/2) 次实数加法。
梯度估计中的相关操作与上述的卷积操作类似,不过前者少计算一次 FFT。这是因为输入数据的变换在卷积运算过程中已经计算过了(见图 8)。对于每个数据块来说,,相关运算总共需要 ( 3 / 2 ) N ′ Q − 8 ( N ′ / 2 − 1 ) + 6 N ′ + b ( 2 N ′ ) (3/2)N^{'}Q - 8(N^{'}/2-1) + 6N^{'} + b(2N^{'}) (3/2)N′Q−8(N′/2−1)+6N′+b(2N′) 次实数乘法和 ( 11 / 4 ) N ′ Q − 4 ( N ′ / 2 − 1 ) + 11 N ′ + b ( 3 N ′ ) (11/4)N^{'}Q - 4(N^{'}/2-1) + 11N^{'} + b(3N^{'}) (11/4)N′Q−4(N′/2−1)+11N′+b(3N′) 次实数加法。
论文从块 LMS 算法入手,介绍了块自适应滤波器。块自适应滤波是研究频域自适应滤波器的基础,也是自适应滤波器版图中的一个重要组成部分。