Patent Document ID: 6137881
Application ID: 09032528
Patent Flag: 1

Claim One:
1. A method for echo cancellation of a portion of a distant signal acoustically coupled to a near signal comprising the steps of: sampling the distant signal at a predetermined sampling rate, thereby producing a series of sampled distant signals x(n) with n corresponding to a sample number; sampling the near signal at said predetermined sampling rate, thereby producing a series of sampled near signals d(n); selecting a delay parameter L whereby the product of L and a time between consecutive samples at said predetermined sampling rate corresponds to a longest expected echo delay time; selecting a projection order p much smaller than said delay parameter L; selecting a small regularization constant .delta.; selecting an adaptation constant .mu., wherein 0.ltoreq..mu..ltoreq.2; initializing a filter approximation vector z.sub.L (0) as a zero vector of dimension L; initializing an auto-correlation vector r.sub.p (0) of dimension L as follows ##EQU15## initializing an error vector e.sub.p (0) as a zero vector of dimension p; initializing a pre-filtering coefficient vector s.sub.p (n) as a zero vector of dimension p; initializing an input vector x.sub.p (n) as a vector of dimension p as follows: ##EQU16## following said initializing steps, for each n starting with n=1 the algorithm (1) updating said auto-correlation vector as follows EQU r.sub.p (n)=r.sub.p (n-1)+x(n)x.sub.p (n)-x(n-L)x.sub.p (n-L) (2) calculating a prediction error d(n) as follows EQU d(n)=[r.sub.p-1 (n)].sup.T s.sub.p-1 (n-1)+[x.sub.L (n)].sup.T z.sub.L (n-1 ) where: r.sub.p-1 (n) is a vector of dimension p-1 as follows ##EQU17## [a].sup.T is a transpose of the vector a; (3) calculating an error signal e(n) as follows EQU e(n)=d(n)-d(n); (4) calculating an error vector e.sub.p (n) as follows ##EQU18## where: e.sub.p-1 (n) is a vector of dimension p-1 as follows ##EQU19## (5) forming a Toeplitz auto-correlation matrix R.sub.p (n) as follows ##EQU20## (6) calculating a pre-filtering vector g.sub.p (n) as follows EQU g.sub.p (n)=[R.sub.p (n)].sup.-1 e.sub.p (n) where: [A].sup.-1 is an inversion of the matrix A; (7) updating said pre-filtering coefficients vector s.sub.p (n) as follows ##EQU21## where: s.sub.p-1 (n) is a vector of dimensions p-1 as follows ##EQU22## (8)updating said filter approximation vector z.sub.L (n) as follows EQU z.sub.L (n)=z.sub.L (n-1)+[x.sub.L (n-p+1)[s.sub.p (n)].sub.p where: [s.sub.p (n)].sub.p is the p-th element of s.sub.p (n), i.e. s.sub.p-1 (n); and (9) outputting said output error signal e(n).