Performance Analysis of Adaptive Noise Canceller Employing NLMS Algorithm
Martin Hagmüller - SPSC · Introduction Review - AEC System Control Issues NLMS Convergence...
Transcript of Martin Hagmüller - SPSC · Introduction Review - AEC System Control Issues NLMS Convergence...
Signal Processing and Speech Communication Laboratory
Graz, SS 2010Martin Hagmüller DAT 2 – AEC - p. 1/27
Digitale Audiotechnik 2
Acoustic Echo CancellationControl Strategies
Martin Hagmü[email protected]
Signal Processing and Speech Communication Laboratory
Graz University of Technology – Austria
Introduction
■ Review - AECSystem
■ Control Issues
NLMS Convergence
Detection &Estimation
Double Talk
Signal Processing and Speech Communication Laboratory
Graz, SS 2010Martin Hagmüller DAT 2 – AEC - p. 2/27
Introduction
Introduction
■ Review - AECSystem
■ Control Issues
NLMS Convergence
Detection &Estimation
Double Talk
Signal Processing and Speech Communication Laboratory
Graz, SS 2010Martin Hagmüller DAT 2 – AEC - p. 3/27
Review - AEC System
e(n)+
x(n)
d(n)
s(n)
b(n)d(n)
Echo-
kompen-
sations-
filter
y(n)
h (n)
x(n)
Introduction
■ Review - AECSystem
■ Control Issues
NLMS Convergence
Detection &Estimation
Double Talk
Signal Processing and Speech Communication Laboratory
Graz, SS 2010Martin Hagmüller DAT 2 – AEC - p. 4/27
Control Issues
■ Fast initial convergence ↔ Final missadjustment■ Convergence ↔ Divergence■ Double talk
Introduction
NLMS Convergence
■ LMS
■ System Distance
■ Convergence Speed
■ Summary
■ Variable Stepsize
■ var. µ example
Detection &Estimation
Double Talk
Signal Processing and Speech Communication Laboratory
Graz, SS 2010Martin Hagmüller DAT 2 – AEC - p. 5/27
NLMS Convergence
Introduction
NLMS Convergence
■ LMS
■ System Distance
■ Convergence Speed
■ Summary
■ Variable Stepsize
■ var. µ example
Detection &Estimation
Double Talk
Signal Processing and Speech Communication Laboratory
Graz, SS 2010Martin Hagmüller DAT 2 – AEC - p. 6/27
Least Mean Squares (LMS) Algorithm
■ Minimize error iteratively at every time instance n
min{e2[n]}
■ Update equation:
hi[n + 1] = hi[n] + µ(e[n]x[n − i])
■ Vector notation:h[n + 1] = h[n] + µe[n]x[n]
■ Normalization & Regularization
h[n + 1] = h[n] + µe[n]x[n]
‖x[n]2‖ + ∆
Introduction
NLMS Convergence
■ LMS
■ System Distance
■ Convergence Speed
■ Summary
■ Variable Stepsize
■ var. µ example
Detection &Estimation
Double Talk
Signal Processing and Speech Communication Laboratory
Graz, SS 2010Martin Hagmüller DAT 2 – AEC - p. 7/27
System Distance
■ Definition:◆ ‖h∆[n]‖2 = ‖h[n] − h[n]‖2
■ White exitation signal x[n], no local noise n[n]
◆ ‖h∆[n]‖2 = E{|e[n]2|}E{|x[n]2|}
■ White exitation signal x[n], local noise n[n]
◆ lower bound: limn→0
E{
‖h∆[n]‖2}
∣
∣
∆=0≈ µ
2−µσ2
n
σ2x
◆ Depends on■ SNR■ Stepsize µ
■ Equivalent relations for regularization parameter ∆
Introduction
NLMS Convergence
■ LMS
■ System Distance
■ Convergence Speed
■ Summary
■ Variable Stepsize
■ var. µ example
Detection &Estimation
Double Talk
Signal Processing and Speech Communication Laboratory
Graz, SS 2010Martin Hagmüller DAT 2 – AEC - p. 8/27
Convergence Speed
■ Initial convergence:◆ 10 log10
(
1 − µ(2−µ)N
)
dBiteration
◆ Depends on:■ stepsize µ■ Filter length N
■ Equivalent relations for regularization parameter ∆
Introduction
NLMS Convergence
■ LMS
■ System Distance
■ Convergence Speed
■ Summary
■ Variable Stepsize
■ var. µ example
Detection &Estimation
Double Talk
Signal Processing and Speech Communication Laboratory
Graz, SS 2010Martin Hagmüller DAT 2 – AEC - p. 9/27
Convergence vs. Final Missadjustment (NLMS)
h[n + 1] = h[n] + µe[n]x[n]
‖x[n]2‖ + ∆
■ Fast initial convergence →◆ large stepsize µ◆ small regularization parameter ∆
■ Small final missadjustment (‖h∆[n]‖2 → 0) →◆ small stepsize µ◆ large regularization parameter ∆
■ Conflicting requirements →time-varying stepsize µ[n] & regularization parameter ∆[n].
Introduction
NLMS Convergence
■ LMS
■ System Distance
■ Convergence Speed
■ Summary
■ Variable Stepsize
■ var. µ example
Detection &Estimation
Double Talk
Signal Processing and Speech Communication Laboratory
Graz, SS 2010Martin Hagmüller DAT 2 – AEC - p. 10/27
Variable Stepsize
h∆[n + 1] = h∆[n] − µe[n]x[n]
‖x[n]2‖ + ∆
■ Optimal stepsize:◆ µopt ≈
E{|eu[n]|2}E{|e[n]|2} , where eu[n] . . . undistorted error
◆ e[n] = eu[n] + n[n]
■ Implementation:
◆ µopt =|e2
u[n]|
|e2[n]|
◆ |e2[n]| = γ|e2[n − 1]| + (1 − γ)e2[n]
◆ |e2u[n]| = γ|e2
u[n − 1]| + (1 − γ)(e[n] − n[n])2
■ Problem: eu not directly accessible
Introduction
NLMS Convergence
■ LMS
■ System Distance
■ Convergence Speed
■ Summary
■ Variable Stepsize
■ var. µ example
Detection &Estimation
Double Talk
Signal Processing and Speech Communication Laboratory
Graz, SS 2010Martin Hagmüller DAT 2 – AEC - p. 11/27
Variable Stepsize - Example
Parameters:■ x[n], n[n]
. . . white noise■ SNR = 30dB■ N = 1000■ γ = 0.997
Introduction
NLMS Convergence
Detection &Estimation
■ Power Estimation
■ Power Estimation
■ Power Est. Plot
■ System Distance
■ Coupling
■ Coupling
■ Coupling
■ Single Talk
Double Talk
Signal Processing and Speech Communication Laboratory
Graz, SS 2010Martin Hagmüller DAT 2 – AEC - p. 12/27
Detection & Estimation
Introduction
NLMS Convergence
Detection &Estimation
■ Power Estimation
■ Power Estimation
■ Power Est. Plot
■ System Distance
■ Coupling
■ Coupling
■ Coupling
■ Single Talk
Double Talk
Signal Processing and Speech Communication Laboratory
Graz, SS 2010Martin Hagmüller DAT 2 – AEC - p. 13/27
Short-term Power Estimation
■ First order IIR smoothing:
|x2[n]| = γ|x2[n − 1]| + (1 − γ)x2[n]
γ[n] =
{
γr, if x2[n] ≥ x2[n − 1]
γf , otherwise
Introduction
NLMS Convergence
Detection &Estimation
■ Power Estimation
■ Power Estimation
■ Power Est. Plot
■ System Distance
■ Coupling
■ Coupling
■ Coupling
■ Single Talk
Double Talk
Signal Processing and Speech Communication Laboratory
Graz, SS 2010Martin Hagmüller DAT 2 – AEC - p. 14/27
Short-term Power Estimation
■ Local Background Noise Power
|b2[n]| = min{y2[n], |b2[n − 1]|}(1 + ǫ)
B∆(ǫ) = fs20 log10(1 + ǫ)
Introduction
NLMS Convergence
Detection &Estimation
■ Power Estimation
■ Power Estimation
■ Power Est. Plot
■ System Distance
■ Coupling
■ Coupling
■ Coupling
■ Single Talk
Double Talk
Signal Processing and Speech Communication Laboratory
Graz, SS 2010Martin Hagmüller DAT 2 – AEC - p. 15/27
Short-term Power Estimation Example
1 2 3 4 5 6 7 8 9x 10
5
−1
−0.5
0
0.5
200 400 600 800 1000 1200 1400 1600 1800
−30
−25
−20
−15
−10
−5
var
ypower
y
bg noise y
Introduction
NLMS Convergence
Detection &Estimation
■ Power Estimation
■ Power Estimation
■ Power Est. Plot
■ System Distance
■ Coupling
■ Coupling
■ Coupling
■ Single Talk
Double Talk
Signal Processing and Speech Communication Laboratory
Graz, SS 2010Martin Hagmüller DAT 2 – AEC - p. 16/27
System Distance Estimation
■ Undisturbed error signal:
E{e2u[n]} = E{x2[n]}E
{
‖h∆[n]‖2}
■ Echo coupling:
β[n] = E{
‖h∆[n]‖2}
= E{
‖h[n] − h[n]‖2}
■ Pseudo-optimal stepsize:
µ[n] =E{e2
u[n]}
E{e2[n]}=
E{x2[n]}β[n]
E{e2[n]}
Introduction
NLMS Convergence
Detection &Estimation
■ Power Estimation
■ Power Estimation
■ Power Est. Plot
■ System Distance
■ Coupling
■ Coupling
■ Coupling
■ Single Talk
Double Talk
Signal Processing and Speech Communication Laboratory
Graz, SS 2010Martin Hagmüller DAT 2 – AEC - p. 17/27
Echo Coupling
Introduction
NLMS Convergence
Detection &Estimation
■ Power Estimation
■ Power Estimation
■ Power Est. Plot
■ System Distance
■ Coupling
■ Coupling
■ Coupling
■ Single Talk
Double Talk
Signal Processing and Speech Communication Laboratory
Graz, SS 2010Martin Hagmüller DAT 2 – AEC - p. 18/27
Coupling Factor Estimation
■ βp based on power estimation:
βp[n] =|e2
u[n]|
|x2[n]|
{
γβp[n − 1] + (1 − γ) |e2[n]|
|x2[n]|, if remote single talk
βp[n − 1], otherwise
■ Remote single talk detection necessary■ Power comparison:
βL[n] =
{
γβL[n − 1] + (1 − γ) |y2[n]|
|x2[n]|, if large remote exitation
βL[n − 1], otherwise
■ Thresholding:
y2[n] ≥ KLx2[n]βL[n]
Introduction
NLMS Convergence
Detection &Estimation
■ Power Estimation
■ Power Estimation
■ Power Est. Plot
■ System Distance
■ Coupling
■ Coupling
■ Coupling
■ Single Talk
Double Talk
Signal Processing and Speech Communication Laboratory
Graz, SS 2010Martin Hagmüller DAT 2 – AEC - p. 19/27
System Example - Echo Coupling
Introduction
NLMS Convergence
Detection &Estimation
■ Power Estimation
■ Power Estimation
■ Power Est. Plot
■ System Distance
■ Coupling
■ Coupling
■ Coupling
■ Single Talk
Double Talk
Signal Processing and Speech Communication Laboratory
Graz, SS 2010Martin Hagmüller DAT 2 – AEC - p. 20/27
System Example - Single Talk Detection
Introduction
NLMS Convergence
Detection &Estimation
Double Talk
■ Convergence vs.Divergence
■ Intro
■ Geigel DTD
■ X-Corr DTD
■ Norm. X-Corr DTD
■ VIRE
Signal Processing and Speech Communication Laboratory
Graz, SS 2010Martin Hagmüller DAT 2 – AEC - p. 21/27
Double Talk
Introduction
NLMS Convergence
Detection &Estimation
Double Talk
■ Convergence vs.Divergence
■ Intro
■ Geigel DTD
■ X-Corr DTD
■ Norm. X-Corr DTD
■ VIRE
Signal Processing and Speech Communication Laboratory
Graz, SS 2010Martin Hagmüller DAT 2 – AEC - p. 22/27
Convergence vs. Divergence
0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000−35
−30
−25
−20
−15
−10
−5
0
Iterations
dB
Expected system distance
Convergence time
Double talkFar end single talkSilence
Divergence time
Introduction
NLMS Convergence
Detection &Estimation
Double Talk
■ Convergence vs.Divergence
■ Intro
■ Geigel DTD
■ X-Corr DTD
■ Norm. X-Corr DTD
■ VIRE
Signal Processing and Speech Communication Laboratory
Graz, SS 2010Martin Hagmüller DAT 2 – AEC - p. 23/27
Introduction - DTD
■ Detection statistic ξ using signals x, y, e, h
■ Compare ξ to threshold T : Double-talk if ξ < T
■ Adaptation of h is disabled (for minimum time thold)■ Optimum behaviour:
◆ ξ ≥ T , if n[n] = 0, i.e. no double-talk present◆ ξ < T , if n[n] 6= 0, i.e. double-talk present◆ ξ insensitive to echo path variation
■ Performance evaluation◆ Probability of false alarm◆ Probability of detection◆ Probability of Miss
Introduction
NLMS Convergence
Detection &Estimation
Double Talk
■ Convergence vs.Divergence
■ Intro
■ Geigel DTD
■ X-Corr DTD
■ Norm. X-Corr DTD
■ VIRE
Signal Processing and Speech Communication Laboratory
Graz, SS 2010Martin Hagmüller DAT 2 – AEC - p. 24/27
Geigel DTD
■ Most basic algorithm■ Computationally very simple■ Little memory needed
ξ[n] =max{|x[n], . . . , x[n − Ng + 1]}
|y[n]|< T
Ng . . . Memory, T . . . Threshold
Introduction
NLMS Convergence
Detection &Estimation
Double Talk
■ Convergence vs.Divergence
■ Intro
■ Geigel DTD
■ X-Corr DTD
■ Norm. X-Corr DTD
■ VIRE
Signal Processing and Speech Communication Laboratory
Graz, SS 2010Martin Hagmüller DAT 2 – AEC - p. 25/27
Cross-Correlation DTD
■ Cross-correlation between x[n] and y[n]
cxy =E{x[n]y[n]}
√
E{x2[n]}E{y2[n]}
=rxy
σxσy
= [cxy,0, cxy,1, . . . , cxy,N−1]
■ Decision variable:ξ = ‖cxy‖∞ < T
■ Problem: Statistics of excitation signal
Introduction
NLMS Convergence
Detection &Estimation
Double Talk
■ Convergence vs.Divergence
■ Intro
■ Geigel DTD
■ X-Corr DTD
■ Norm. X-Corr DTD
■ VIRE
Signal Processing and Speech Communication Laboratory
Graz, SS 2010Martin Hagmüller DAT 2 – AEC - p. 26/27
Normalized Cross-Correlation DTD
■ Accounts for statistics of excitation signal
ξ =
√
σ2d
σ2y
=
√
rTxyR
−1xx rxy
σ2y
ξ =
√
hT Rxxh√
hT Rxxh + σn
cxy = (σ2yRxx)−1/2
rxy
■ Equivalent to adaptive pre-whitening filter■ Simplified normalized cross-correlation:
ξ =
√
σ2d[n]
σ2y[n]
Introduction
NLMS Convergence
Detection &Estimation
Double Talk
■ Convergence vs.Divergence
■ Intro
■ Geigel DTD
■ X-Corr DTD
■ Norm. X-Corr DTD
■ VIRE
Signal Processing and Speech Communication Laboratory
Graz, SS 2010Martin Hagmüller DAT 2 – AEC - p. 27/27
Variance Impulse Response (VIRE)
■ Based on variance of adaptive filter■ Near end speech → corrupting adaption → fluctuation of filter
coefficientsξ[n] = γξ[n − 1] + (1 − γ)(κ − κ)2
κ = γκ[n − 1] + (1 − γ)κ
κ = max([h0, h1, . . . , hN−1])
■ Computationally simple■ Sensitive to echo path variations