Senior Fitness - Exercise and Nutrition for Aging Men and Women
FREE Article Feed for your website.
Home Ownership Magazine
Party Planning Information
Article Marketing Resources
Bio-Medical Research Article Database
Informative Articles on Life, Love and Happiness
Tutorials on Business to Writing
Famous Quotes from Famous People
Song Lyric Information
New US Patent Information
Comprehensive List of Content by Category
Online Auctions and Shopping Related Articles
Article Search
Most Recent Articles
 

Pregnancy and Diabetes What You Should Know
Category:
Health / Fitness  

Chew slowly and digest the rules
Category:
Business  

An Introduction to CD Mastering
Category:
Hobbies / Pastimes  

WiMAX to constitute a major share of wireless broadband market
Category:
Marketing  

Acne Products The Different Categories
Category:
Home And Family  

Trading the Forex Markets with the Forex Trading Machine
Category:
Finance / Investment  

Energy Savings by Use of the Correct Spray Nozzle
Category:
Business  

Digging Deep To Get The Most From RSS Technology for Marketing
Category:
Marketing  

If You Want To Be Successful in Trading There s Only One Thing Y...
Category:
Finance / Investment  

Choosing the Right Wedding Music
Category:
Home And Family  

The Truth About Vitamin Deficiencies
Category:
Health / Fitness  

Online Casino Gamble
Category:
Hobbies / Pastimes  

Plasma Television Myths and Facts
Category:
Home And Family  

Generate MEANINGFUL Traffic to Your Site
Category:
Marketing  

Understanding Legal Advice
Category:
Real Estate  

Where adsense should appear
Category:
Marketing  

The process of buying a new home from a home builder
Category:
Real Estate  

How to sell property to overseas property buyers
Category:
Finance / Investment  

SELLING INFORMATION PRODUCTS What Sells What Doesn t
Category:
Marketing  

How To Make Your Own Baby Cosmetics
Category:
Home And Family  

Mother Nature Rules
Category:
Health / Fitness  

Create Powerful Decisions From Your Vague Intentions
Category:
Self Help  

Ever Wondered If There Exists The Premature Ejaculation Cure
Category:
Health / Fitness  

Diabetic Glucose Level Maintenance
Category:
Health / Fitness  

Vioxx Lawsuits Abound Where does This Leave the Arthritis Suffer...
Category:
Health / Fitness  

Chatting your Way to Increased Website Traffic
Category:
Marketing  

Checking Accounts For Couples
Category:
Business  

How To Get In Shape Quickly
Category:
Health / Fitness  

How Do You Get Paid For Submitting Survey Forms
Category:
Business  

Answers To Three Frequently Asked Questions On Network Marketing...
Category:
Business  

Invite Your Personality Into Your Sales Letter
Category:
Marketing  

Alzheimer s Family Caregiver Support Perfectionism Can Be Bad fo...
Category:
Self Help  

A Specialist Solution to Buy to Let Financing for up to 20 Milli...
Category:
Finance / Investment  

The Evil Spirits Will Return
Category:
Self Help  

How To Become A Wealthy Piano Teacher
Category:
Business  

Simple sure ways to make money with your website
Category:
Business  

Increase your Sales Lead List using Myspace
Category:
Business  

Motivating Your Employees Toward Success
Category:
Business  

Important tips for buying a Laptop or Notebook Computer
Category:
Computers  

Extreme Wedding Cake Makeover Ideas
Category:
Home And Family  

Teeth Bleaching Kits Provide a Whiter Brighter Smile
Category:
Health / Fitness  

Boost Your Business With Blogging
Category:
Marketing  

Choosing the Best Times to Travel to Europe
Category:
Finance / Investment  

Promotions How Innovative Can They Really Get
Category:
Business  

Hand Held Vacuum Cleaners Don t Clean Home Without It
Category:
Home And Family  

How to Grow Your email list using Doorway pages
Category:
Marketing  

Easy Inexpensive Kid Snacks
Category:
Home And Family  

Rising Interest Rates Can Work to Your Advantage
Category:
Business  

Spray On Tanning Booths Just Moments to a Great Tan
Category:
Health / Fitness  

Surprise your partner with Cialis magic
Category:
Health / Fitness  

Duplicate Content is History
Category:
Marketing  

Christmas shouldn t need to be expensive
Category:
Entertainment / Television  

Jargon Buster Finance in Plain English
Category:
Finance / Investment  

China sets technical standard for mobile TV
Category:
Business  

Selling Your Home is Easier if You Prepare First
Category:
Real Estate  

Discover How Government Protected Tax Certificate Profits Can Ma...
Category:
Business  

Why Are Your Visitors Not Turning Into Clients
Category:
Marketing  

Gambling equipment guide
Category:
Hobbies / Pastimes  

Jarhead DVD Review
Category:
Marketing  

Teaching to Build Your Opt in List
Category:
Marketing  

Online payday loans associate technology to get an instant loan ...
Category:
Finance / Investment  

Making your website search engine friendly
Category:
Marketing  

Getting All Of The Discounts Available On A Car Insurance Policy...
Category:
Home And Family  

Home Security How to Spot Suspicious Activity
Category:
Home And Family  

The Easy Way To Avoid Discouragement And Confusion While Trainin...
Category:
Pets  

Alternative Mass Loaded Vinyl Installations for soundproofing
Category:
Home And Family  

Online Internet Advertising Reach Your Full Potential
Category:
Marketing  

Credit Cards And You
Category:
Business  

How To Avoid Loan Sharks
Category:
Business  

The Benefits of Bagless Vacuum Cleaners
Category:
Home And Family  

High cost of Not doing
Category:
Business  

Desk Clocks For Your Home Or Office
Category:
Home And Family  

Incorporation Is It Right For My Business
Category:
Business  

A brief history of dreams and their interpretation
Category:
Self Help  

Health And Hygiene For A Better World
Category:
Health / Fitness

Adaptive filtering using fast affine projection adaptation Number:7,436,880 from the United States Patent and Trademark Office (PTO) owispatent

Home    Author Login    Submit Article    Article Search    Add Your Link    Edit Your Link    Contact Us    Advertising    Disclaimer

   

 
Web LinkGrinder.com

Top Breaking News
     Greek, Cypriot Leaders Resume Unification Talks in Nicosia by Nathan Morley
     Indonesia Tobacco Sales Grow, Raising Health Fears
     South Korea Allows Top Defector to Travel Overseas by VOA News

Title: Adaptive filtering using fast affine projection adaptation

Abstract: A method of adaptive filtering using fast affine projection (FAP) that allows for direct solution of the projected error vector from the autocorrelation matrix using a backward and forward recursion technique or LDL.sup.T factorization of the autocorrelation matrix followed by forward substitution, scaling and backward substitution. The method results in less computational complexity in the implementation, while still having good stability and fast convergence.

Patent Number: 7,436,880 Issued on 10/14/2008 to Ding


Inventors: Ding; Heping (Ottawa, CA)
Assignee: National Research Council of Canada (Ottawa, Ontario, CA)
Appl. No.: 10/919,267
Filed: August 17, 2004


Current U.S. Class: 375/232 ; 375/229
Current International Class: H03K 5/159 (20060101)
Field of Search: 375/232,229 379/406.06,406.08 381/66,71.11 455/67.15 708/301,322,426


References Cited [Referenced By]

U.S. Patent Documents
5428562 June 1995 Gay
6137881 October 2000 Oh et al.
6754340 June 2004 Ding
6788785 September 2004 Ding
Foreign Patent Documents
WO 00/38319 Nov., 1999 WO

Other References

Gay et al., "The Fast Affine Projection Algorithm", Proceedings of the International Conference on Acoustics, Speech and Signal Processing, May 1995, pp. 3023-3026. cited by other .
Tanaka et al., "Fast Projection Algorithm and Its Step Size Control", Proceedings of the International Conference on Acoustics, Speech and Signal Processing, May 1995, pp. 945-948. cited by other .
Ding, "A Stable Fast Affine Projection Adaptation Algorithm Suitable for Low-Cost Processors", Proceedings of the International Conference on Acoustics, Speech and Signal Processing, Jun. 2000, pp. I-360-I-363. cited by other .
Oh et al., "A Fast Affine Projection Algorithm for An Acoustic Echo Cancellation Using a Fixed-Point DSP Processor", Proceedings of the International Conference on Acoustics, Speech and Signal Processing, vol. 5, 1997, pp. 4121-4124. cited by other .
Albu et al., "Analysis of the LNS Implementation of the Fast Affine Projection Algorithms", Proceedings of the ISSC 2002, Jun. 2002, pp. 251-255. cited by other .
Albu et al. "Fast Affine Projections Algorithm using the Successive Over-Relaxation Method", Proceedings of the Benelux IT conference, May 2002, pp. 147-154. cited by other .
Albu et al., "The Gauss-Seidel Fast Affine Projection Algorithm", IEEE Workshop on Signal Processing Systems (SIPS 2002), Oct. 2002, pp. 109-114. cited by other .
Ding, "Performance of Two Novel Fast Affine Projection Adaptation Algorithms", EEE International Symposium on Circuits and Systems, vol. 6, May 23-26, 2005, pp. 2279-2282. cited by other .
Ding, "A Stable Fast Affine Projection Adaptation Algorithm Suitable for Low-Cost Processors", IEEE International Conferene on Acoustics, Speech, and Signal Processing, vol. 1, pp. 360-363, Jun. 5-9, 2000. cited by other .
Liu et al., "On the Use of A Modified Fast Affine Projection Algorithm in Subbands for Acoustic Echo Cancellation", Proceedings IEEE Digital Signal Processing Workshop, Loen, Norway, Sep. 1-4, 1996, pp. 354-357. cited by other .
Oh et al., "A Fast Affine Projection Algorithm for An Acoustic Echo Canceller Using a Fixed-Point DSP Processor", IEEE International Conference on Acoustics, Speech, and Signal Processing, vol. 5, Apr. 21-24, 1997, pp. 4121-4124, ISBN: 0-8186-7919-0. cited by other.

Primary Examiner: Tran; Khai
Attorney, Agent or Firm: Kinsman; Anne Borden Ladner Gervais LLP

Claims



What is claimed is:

1. A method of adaptive filtering using a fast affine projection adaptive filter, comprising steps of: (a) initializing adaptive filter coefficients of the filter; (b) updating the adaptive filter coefficients by: (i) setting a normalized step size; (ii) determining autocorrelation matrix coefficients of an autocorrelation matrix R.sub.N from a reference input signal; (iii) directly determining a projected error vector .epsilon..sub.N(n+1) by solving an N-th order positive-definite system of linear equations R.sub.N.epsilon.(n+1)=e.sub.N (n+1) using a backward recursion, followed by a forward recursion, on a known projected error vector .epsilon..sub.N (n), where e.sub.N (n+1) is a prefixed, one position down shifted version of a current output signal vector e.sub.N (n) scaled in accordance with the normalized step size; (iv) updating the adaptive filter coefficients in accordance with coefficients of the projected error vector; and (c) repeating step (b) until convergence of the adaptive filter coefficients is achieved.

2. The method of claim 1, wherein solving the N-th order positive-definite system of linear equations includes solving an (N-1)-th order Yule-Walker system.

3. The method of claim 2, wherein solving the Yule-Walker system is repeated at a reduced rate.

4. The method of claim 3, wherein the Yule-Walker system is solved once in every N sampling intervals.

5. A method of claim 1, wherein determining the auto-correlation matrix coefficients is performed recursively.

6. The method of claim 1, wherein the normalized step size is greater than or equal to 0 and less than or equal to 1.

7. The method of claim 1, wherein when the normalized step size is substantially equal to 1, the backward and forward recursion steps can be eliminated.

8. The method of claim 1, wherein the steps are performed with complex valued numbers.

9. The method of claim 1, the method being used for echo cancellation.

10. The method of claim 1, the method being used for noise cancellation.

11. The method of claim 1, the method being used for channel equalization.

12. A method of adaptive filtering using a fast affine projection adaptive filter, comprising steps of: (a) initializing adaptive filter coefficients of the filter; (b) updating the adaptive filter coefficients by: (i) determining autocorrelation matrix coefficients of an autocorrelation matrix R.sub.N from a reference input signal; (ii) directly determining a projected error vector .epsilon..sub.N (n) by solving an N-th order positive-definite system of linear equations R.sub.N.epsilon.(n)=e.sub.N (n) using an LDL.sup.T factorization of the autocorrelation matrix and solving the system of linear equations by forward substitution, scaling and back substitution; (iii) updating the adaptive filter coefficients in accordance with the projected error vector; and (c) repeating step (b) until convergence of the adaptive filter coefficients is achieved.

13. The method of claim 12, wherein the LDL.sup.T factorization is repeated at a reduced rate.

14. The method of claim 13, wherein the LDL.sup.T factorization is repeated once in every N sampling intervals.

15. A method of claim 12, wherein determining the auto-correlation matrix coefficients is performed recursively.

16. The method of claim 12, wherein the normalized step size is greater than or equal to 0 and less than or equal to 1.

17. The method of claim 12, wherein the steps are performed with complex value numbers.

18. The method of claim 12, the method being used for echo cancellation.

19. The method of claim 12, the method being used for noise cancellation.

20. The method of claim 12, the method being used for channel equalization.
Description



FIELD OF THE INVENTION

The present invention relates generally to adaptive filtering. More particularly, the present invention relates to a fast affine projection method for adaptive filtering.

BACKGROUND OF THE INVENTION

Adaptive filtering is a digital signal processing (DSP) technique widely used in technical areas such as echo cancellation, noise cancellation, channel equalization, and system identification, and in telecom products, such as network echo cancellers, acoustic echo cancellers for full-duplex hands-free telephones and audio conferencing systems, active noise control, data communications systems, hearing aids, etc.

An adaptive filter can be characterized by its topology and its adatation algorithm or method. The choice of the adaptation algorithm in a specific adaptive filtering system directly affects the performance of the system.

Simple and stable, the normalized least mean square (NLMS) adaptation algorithm is now most widely used as the work horse in the industry. While used with a certain degree of success, the NLMS intrinsically converges slowly with colored training signals, like speech, which are most frequently encountered in telecommunications.

Thus, the search for adaptation algorithms that converge quickly and remain robust, stable, and simple is a very active research area. Of those that have been proposed, the recursive least squares (RLS) adaptation algorithm (see e.g. Simon Haykin, Adaptive Filter Theory, Fourth Edition, Prentice Hall, September 2001) converges most quickly, but is in most cases too complicated to be implemented on a commercial low-cost digital signal processor (DSP) and suffers from numerical problems.

In 1995, a very promising adaptation algorithm, the fast affine projection (FAP), was proposed (see e.g. Gay et al. (Acoustic Research Department, AT&T Bell Laboratories), "The Fast Affine Projection Algorithm", Proceedings of the International Conference on Acoustics, Speech, and Signal Processing, pp. 3023-3026, May 1995; and Tanaka et al. (NTT Human Interface Laboratories), "Fast Projection Algorithm and Its Step Size Control", Proceedings of the International Conference on Acoustics, Speech, and Signal Processing, pp. 945-948, May 1995). FAP is a simplified version of the more complicated affine projection algorithm (APA), and offers a user-selectable trade-off between the RLS and the NLMS algorithms. With colored training signals such as speech, the FAP converges almost as quickly as the RLS and can be only marginally more complex than the NLMS.

However, the originally proposed FAP algorithm has an intrinsic numerical issue--it collapses within a short period of time, even with floating-point calculations. As discussed by the present inventor in "A Stable Fast Affine Projection Adaptation Algorithm Suitable for Low-Cost Processors," Proceedings of the International Conference on Acoustics, Speech, and Signal Processing, pp. I-360-I-363, June 2000, this results from the accumulation of finite precision numerical errors in a linear system solving process associated with the FAP.

Thus, a key element in a FAP algorithm is the method used to solve the linear system; the choice of which determines the stability and robustness of the whole FAP algorithm. Many researchers in the academic world have been looking for stable, robust, yet simple approaches ever since the FAP algorithm was proposed. However, no completely satisfactory solutions have been found so far. The proposed approaches are either impractical to implement, give approximate solutions, are too complicated, or are not generally applicable.

Therefore, there is a need for improved adaptive filtering methods that are stable and simple, while providing fast convergence and reliable results.

SUMMARY OF THE INVENTION

It is an object of the present invention to obviate or mitigate at least one disadvantage of previous adaptive filtering techniques using fast affine projection.

In a first embodiment, the present invention provides a method of adaptive filtering using a fast affine projection adaptive filter. The method comprises steps of: initializing adaptive filter coefficients of the filter; updating the adaptive filter coefficients; and repeating the updating step as desired. The updating is accomplished by setting a normalized step size; determining autocorrelation matrix coefficients of an autocorrelation matrix R.sub.N from a reference input signal; directly determining a projected error vector .epsilon..sub.N(n+1) by solving an N-th order positive-definite system of linear equations R.sub.N.epsilon.(n+1)=e.sub.N(n+1) using a backward recursion, followed by a forward recursion, on a known projected error vector .epsilon..sub.N(n), where e.sub.N(n+1) is a pre-fixed, one position down shifted version of the current output signal vector e.sub.N(n) scaled in accordance with the normalized step size; and updating the adaptive filter coefficients in accordance with coefficients of the projected error vector.

In a further embodiment, the updating is accomplished by determining autocorrelation matrix coefficients of an autocorrelation matrix R.sub.N from a reference input signal; directly determining a projected error vector .epsilon..sub.N(n) by solving an N-th order positive-definite system of linear equations R.sub.N.epsilon.(n)=e.sub.N(n) using an LDL.sup.T factorization of the autocorrelation matrix and solving the system of linear equations by forward substitution, scaling, and back substitution; and updating the adaptive filter coefficients in accordance with the projected error vector.

The normalized step size can be greater than or equal to 0 and less than or equal to 1. Certain parts of the updating step can be repeated as little as once every N sampling intervals without significantly compromising performance of the adaptive filter. The method is particularly suited for such applications as echo cancellation, noise cancellation, and channel equalization.

Other aspects and features of the present invention will become apparent to those ordinarily skilled in the art upon review of the following description of specific embodiments of the invention in conjunction with the accompanying figures.

BRIEF DESCRIPTION OF THE DRAWINGS

Embodiments of the present invention will now be described, by way of example only, with reference to the attached Figures, wherein:

FIG. 1 is a block diagram of an adaptive echo cancellation system;

FIG. 2 is a block diagram illustrating the FIR transversal topology of an FIR adaptive filter of the present invention;

FIG. 3 is a graph comparing the complexity of FAP algorithms; and

FIG. 4 is a graph comparing the complexity of FAP algorithms.

DETAILED DESCRIPTION

A simplified block diagram of an adaptive echo cancellation system 10 with an embedded adaptive filter 100 is shown in FIG. 1. x(n), a digitally sampled far-end signal, or reference signal, where n-is the time index, is supplied to the adaptive filter 100 and to the echo path 14, producing an unwanted signal u(n) that is the echo of x(n) through the echo path 14. The perceived near-end signal, d(n), is a sum of the wanted near-end signal s(n), an unwanted u(n), and probably some noise, through summer 16. An echo estimate y(n) from the adaptive filter 100 is subtracted from the perceived near end signal at summer 18 to provide the echo canceller's output e(n). The goal is to let the adaptive filter 100 mimic the echo path 14 so that it produces an output y(n) that is very close to u(n). Therefore, the latter is largely cancelled by the former, and e(n) resembles s(n). Since the echo path 14 can vary over time, the adaptive filter 100 must be able to continuously learn, or adapt to, the new echo path.

Note that, depending on the particular applications, the terms "far-end" and "near-end" may need to be interchanged. For example, with a network echo canceller in a telephone terminal, x(n) in FIG. 1 is actually the near-end signal to be transmitted to the far-end, and d(n) is the signal received from the telephone line connected to the far-end. Although the terminology herein is based on the assumption that x(n) is the far-end signal and d(n) is the signal perceived at the near-end, i.e., the case with an acoustic echo cancellation system in a telephone terminal or a network echo cancellation system in a line card, it is solely for convenience and all systems and methods described herein can be applied to applications with the alternate terminology.

The following conventions in linear algebraic representation are used throughout the following description. Single-underscored symbols, such as d(n) and X(n), stand for column vectors, and double-underscored symbols, like R, are matrices. A superscript T stands for the transposition of a matrix or vector. A symbol without an underscore denotes a scalar. A subscript, if any, of a matrix or vector indicates the dimension of the array, e.g. X.sub.N is an N vector and R.sub.N an N.times.N square matrix. Subscripts of scalars are merely indices. If X.sub.N is an N vector, then X.sub.N-1 stands for an N-1 vector consisting of the N-1 upper most elements of X.sub.N and {tilde over (X)}.sub.N-1 stands for an N-1 vector consisting of the N-1 lower most elements of X.sub.N.

The most common topology of the adaptive filter 100 of FIG. 1 is a finite impulse response (FIR) transversal filter, as shown in FIG. 2, where {w.sub.0(n), w.sub.1(n), . . . , w.sub.L-1(n)} are coefficients of the adaptive filter. This structure is assumed thoughout the description.

Expressing FIG. 1 and FIG. 2 mathematically, L-dimensional column vectors

.function..ident..function..function..function..times..times..times..times- ..function..ident..function..function..function. ##EQU00001## are defined as the reference input vector and the adaptive filter coefficient vector, respectively. In Eq. (1), L is the length of the adaptive filter 100. The convolution and subtraction of the signals, which derive the output of the adaptive echo cancellation system 10, can then be expressed as

.function..ident..function..function..function..times..times..function..ti- mes..function..function..function..times..function. ##EQU00002## where the superscript "T" is the transposition of a vector or matrix.

The particular adaptation method chosen determines the manner in which the filter coefficients, i.e., {w.sub.0(n), w.sub.1(n), . . . , w.sub.L-1(n)} or W(n), are determined. Adaptation methods of choice should be stable, robust, fast-learning (or converging), and simple to implement.

Certain well known prior art adaptation methods will be now discussed for comparison to the ones of the present invention.

As the work horse in the telecom industry, the normalized mean square (NLMS) method updates the coefficient vector W(n) based on the knowledge of the current system performance, i.e.

.function..function..times..times..mu..function..times..function..times..f- unction..times..times..mu..function..alpha..function..times..function..del- ta. ##EQU00003## In Eq. (3), the positive number a is the normalized step size, .mu.(n) is an adaptation step size which controls the rate of adjustment to the coefficients, and .delta., being a small positive number, prevents .mu.(n) from becoming too big when there is little or no reference signal x(n). The computations required by an NLMS filter can be as low as 2L+2 multiply and accumulate (MAC) operations and 1 division (DIV) per sampling interval.

A second adaptation method, the affine projection (AP) method is a generalization of the NLMS. With N being the so-called projection order, the following can be defined:

.function..ident..function..function..function..function..ident..function.- .function..function..function..xi..function..ident..function..function..fu- nction..times..times..function..ident..times..function..times..function..t- imes..times..times..times..function..times..xi..function..times..xi..funct- ion..times..times..times..times..xi..function..times..function..function..- function..function..function..function..function..function..function. ##EQU00004## where, d(n) and e(n) are N-dimensional vectors, and X(n) is an L.times.N matrix. Since N is usually much less than the adaptive filter length L, X(n) is a "portrait," rather than "landscape," matrix. Note that e(n) in Eq. (4) is the a priori error vector--all its elements are obtained with the weight vector equal to W(n), as indicated in Eq. (6) below. Thus, the convolution and subtraction according to FIG. 1 results in: e(n)=d(n)-X.sup.T(n)W(n) (6) where W(n) is defined in Eq. (1). Updating is achieved by: R(n)=X.sup.T(n)X(n)+.delta.I .epsilon.(n)=R.sup.-1(n)e(n) W(n+1)=W(n)+.alpha.X(n).epsilon.(n) (7) where I is the N.times.N identity matrix, the input auto-correlation matrix R(n) is symmetric and positive-definite, and .alpha. and .delta. play similar roles as they do in Eq. (3). .alpha. is a normalized step size satisfying .alpha..epsilon.[0,1]. .delta. is a regularization factor that prevents the auto-correlation matrix R(n) from becoming ill-conditioned or even rank-deficient, causing instability of the algorithm. It can be seen that an N.times.N matrix inversion operation, or solving an N-th order symmetric positive-definite linear system, is needed in each sampling interval with the AP filter.

The AP filter offers a very good convergence property but is quite computationally expensive. It needs, in each sampling interval, 2LN+O(N.sup.2) MACs (see e.g. Gay et al. (Acoustic Research Department, AT&T Bell Laboratories), "The Fast Affine Projection Algorithm", Proceedings of the International Conference on Acoustics, Speech, and Signal Processing, pp. 3023-3026, May 1995). For example, choosing N equal to 5 makes the APA more than five times as complex as the NLMS.

Since the AP filter is impractically expensive computationally, certain simplifications have been suggested (see e.g. Tanaka et al. (NTT Human Interface Laboratories), "Fast Projection Algorithm and Its Step Size Control," Proceedings of the International Conference on Acoustics, Speech, and Signal Processing, pp. 945-948, May 1995, and U.S. Pat. No. 5,428,562 to Gay, the contents of which are incorporated herein by reference), to arrive at the so-called fast affine projection (FAP) filter. Note that here the "F," for "fast," means it saves computations or is computationally less expensive, not that it converges faster. In fact by adopting these simplifications, the performance indices, including the convergence speed, will slightly degrade.

Briefly, the FAP filter consists of adopting an approximation

.function..apprxeq..function..alpha..times..function..function..alpha..tim- es..function..alpha..times..alpha..times..function. ##EQU00005## and certain simplifications to reduce the computational load, which are carried through to the present invention. In Eq. (8), e (n) is an N-1 vector consisting of the N-1 upper most elements of the N vector e (n). To reduce the computational load, the approximation Eq. (8) uses a posteriori errors to replace the a priori ones in Eq. (4); and a matrix inversion to solve the N-th order symmetric positive-definite linear system in Eq. (7)

Focus in the prior art has been primarily on the solution to the N-th order symmetric positive-definite linear system as this is a key issue with the FAP filter, and is the focus of the present invention. A number of prior art solutions of the N-th order symmetric positive-definite linear system in Eq. (7) will now be discussed.

The originally proposed FAP filter uses a so-called "sliding windowed" fast recursive least squares (FRLS) approach to solve the N-th order symmetric positive-definite linear system in Eq. (7), as described in U.S. Pat. No. 5,427,562, to recursively find the solution. This requires a total computational load of 2L+20N MACs and 5 DIVs per sampling interval, and is very difficult and memory-intensive to implement (see e.g. Oh et al. (Texas Instruments and The University of Texas), "A Fast Affine Projection Algorithm for an Acoustic Echo Cancellation Using a Fixed-Point DSP Processor," Proceedings of the International Conference on Acoustics, Speech, and Signal Processing, Vol. 5, pp. 4121-4124, 1997; Liu et al. (Bell-Northern Research and INRS-Telecommunications, Universite du Quebec), "On the Use of a Modified Fast Affine Projection Algorithm in Subbands for Acoustic Echo Cancellation," Proceedings of 1996 IEEE Digital Signal Processing Workshop, pp. 354-357, September 1996; and Albu et al. "The Gauss-Seidel Fast Affine Projection Algorithm," IEEE Workshop on Signal Processing Systems (SIPS 2002), ISBN 0-7803-75874, pp. 109-114, October 2002).

In a second method, as discussed in Liu et al., supra, a matrix inversion lemma is used twice to explicitly find R.sup.-1 (n)at each sampling interval n. In particular, it deems an accurate estimate R.sup.-1 (n-1) to start with and recursively derives R.sup.-1 (n) based on this estimate and knowledge of the new data X(n). The total computations needed are 2L+3N.sup.2+12N MACs and 2 DIVs. While slightly more complex than the original FAP filter, this method offers a more accurate estimation for R.sup.-1(n) because a conventional RLS algorithm, instead of a fast version (with inevitable degradations) of it, is used.

The above two approaches have a common problem: there is no feedback in the updating process. An accurate estimate of R.sup.1(n) relies heavily on an accurate starting point R.sup.-1(n-1). If R.sup.1(n-1) deviates from its accurate value, the algorithm has no way of knowing that and will keep using it. As a result, inevitable numerical errors in R.sup.-1(n-1) will very likely be propagated to R.sup.-1(n), R.sup.-1(n+1), R.sup.-1(n+2), . . . , and accumulate to a certain degree to make the whole algorithm collapse. A remedy is to periodically re-start a new inversion process in parallel with the existing one, and to replace the latter so as to get rid of the accumulated numerical errors. While this can be a feasible solution for high-precision DSPs such as a floating-point processor, it is not suitable for fixed-point DSP implementations because, given the low numerical precision of such processors, the numerical errors would accumulate so fast that the re-starting period would have to be made impractically small, not to mention the extra complexity associated with this part of the filter.

The following approaches have been proposed to overcome these disadvantages. The first method assumes that the auto-correlation matrix R(n) is Toeplitz, and, thus, the linear system can be solved relatively efficiently. For example, in U.S. Pat. No. 6,137,881 to Oh et al., the contents of which are incorporated herein by reference, it is believed that a Levinson-Durbin recursion is the method used to solve the Toeplitz linear system. This belief is based on the fact that a Toeplitz assumption is used and a computational complexity of O (2N.sup.2) MACs is asserted. A FAP filter according to this method incurs a total computation load of 2L+2N.sup.2+3N-2 MACs and N DIVs. This approach is stable, but gives an approximate solution because the actual autocorrelation matrix R(n) is not strictly Toeplitz. Furthermore, the computational load is a quite high, because the solution is division-intensive--a single DIV operation typically takes a general purpose DSP the same time as 20 to 30 MAC operations.

In U.S. Pat. No. 6,754,340, the present inventor proposed a conjugate gradient FAP (CGFAP) filter, a FAP filter using a so-called "conjugate gradient" iterative approach to solve the linear system--without the Toeplitz assumption. This filter has a computational complexity of 2L+2N.sup.2+9N+1 MACs and only 1 DIV per sampling interval. While CGFAP is stable, it is only meant for the so-called non-relaxed case, i.e., with a large normalized step size a, being equal or close to unity; therefore, it cannot be extended to the general step size case without drastically increasing the computational requirement. This is a restriction in practical applications.

Another approach to solving the linear system was proposed in Albu et al. supra. It is based on the so-called Gauss-Seidel scheme, which is also referred to as a method of successive displacements. This Gauss-Seidel FAP (GSFAP) filter purports to be stable and the total computational load of it is 2L+N.sup.2/p+(5-1/p)N-1 MACs and 1 DIV per sampling interval, where the rate-reduction factor p can range from 1 to 5, with a larger p resulting in more loss of system performance. However, like the CGFAP filter, this approach is also only suitable for cases where the normalized step size .alpha. is, or is close to, unity.

The present invention uses direct, as opposed to iterative, methods to solve the linear system. Thus, the methods are intrinsically stable and robust. The first embodiment applies an LDL.sup.T factorization technique (see generally Gene H. Golub and Charles F. Van Loan, Matrix Computations, Second Edition, ISBN 0-8018-3772-3, The Johns Hopkins University Press, 1989) to a symmetric matrix, to find an exact solution to the linear system with an acceptable complexity. The second embodiment takes advantage of certain structural properties of the linear system to provide a reasonably accurate approximate solution with a very low complexity. By incorporating FAP filters featuring the proposed methods to solve the linear system in products such as network and acoustic echo cancellers, active noise control, and hearing aid feedback cancellation, users will be able to enjoy significantly improved (over the NLMS) performance with little or no increase in cost. Generally, the FAP filters with the present invention to solve the N-th order symmetric positive-definite linear system in Eq. (7) are stable, robust, simple, and able to take any step size .alpha..epsilon.[0,1].

Taking a closer look at the N-th order symmetric positive-definite linear system reveals certain structural properties, which are taken advantage of in the present invention. As shown in Eq. (7), it is necessary to solve an Nth order symmetric positive-definite system

.function..times..function..function..times..times..function..ident..funct- ion..function..function..times..times..times..times..function..ident..func- tion..function..function. ##EQU00006## are N-dimensional solution and given vectors, respectively, where .epsilon.(n) is the projected error vector and e(n) is the current known error vector. Furthermore, e(n) satisfies

.function..function..alpha..times..function..function..alpha..times..funct- ion..alpha..times..function..alpha..times..function. ##EQU00007## which is a duplication of Eq. (8). This reveals a first structural property: e(n) is a pre-fixed and one position down shifted and scaled version of e(n-1) with last element discarded, as expressed in Eq. (11).

Looking now at the auto-correlation matrix R(n), and examining the definitions in Eqs. (7) and (5), results in

.function..ident..function..ident..function..function..function..function.- .function..function..function..function..function. ##EQU00008## which is an N.times.N symmetric positive-definite matrix, i.e. r.sub.ij(n)=r.sub.ji(n), .A-inverted.i,j.epsilon.[0,N-1] (13)

Furthermore, in every sampling interval, the auto correlation matrix R(n) is shifted one position towards the lower right corner. This, together with the symmetry property, enables R(n) to be expressed as:

.function..function..function..function..function..function..function..fun- ction..function..function..function..function..function..function..functio- n..function..function..function..function..function..function..function..f- unction..function..function..function. ##EQU00009## Eqs. (7) and (5) mean that each element in Eq. (14) is a sum of L consecutive samples. With the observation window being of the order of N (N<<L) samples, it is reasonable to assume that the elements do not change much within N sampling intervals. Thus, two more structural properties become apparent. According to the second structural property, the auto-correlation matrix R(n) in Eq. (14) can be approximately regarded as constant over N sampling intervals. According to the third observed structural property, elements on each diagonal of the auto-correlation matrix R(n) can be approximately regarded as equal. In other words, R(n) is nearly Toeplitz. Given the second and third structural properties, for convenience, the time index "n" will be omitted in certain parts of this document, where there is no risk of confusion.

First, a solution to the N-th order symmetric positive-definite system of Eq. (9) without any approximation is presented. This is followed by another solution that offers a sub-optimal solution, but at a lower complexity. As used herein, "sub-optimal" means that the solution results in an approximate solution.

The symmetric (but not necessarily Toeplitz) matrix R can be uniquely factored Into R=LDL.sup.T (15) where D is a diagonal matrix and L is a unit lower triangular matrix--with all elements on the main diagonal being unity. Once R has been so factored, the N-th order symmetric positive-definite system can now be expressed as LDL.sup.T.epsilon.(n)=e(n) (16) and the solution can be found by solving L.epsilon..sup.(L)=e(n)[.epsilon..sup.(L)=DL.sup.T.epsilon.(n)] (17) with forward substitution, then D.epsilon..sup.(D)=.epsilon..sup.(L)[.epsilon..sup.(D)=L.sup.T.epsilon.(n- )] (18) with scaling, and finally L.sup.T.epsilon.(n)=.epsilon..sup.(D) (19) with back substitution. Details of this solution are given in Appendix A: LDLT Factorization and System Solving".

If the LDL.sup.T factorization is performed every sampling interval to factor the auto-correlation matrix, a full-rate version of the approach results. The number of MACs and DIVs required are:

.times..times..times..times..times..times. ##EQU00010## where the superscript "F" stands for "full rate."

However, taking note of the second observed structural property, R changes slowly over time; therefore, LDL.sup.T factorization does not have to be performed every sampling interval, and can be done at a reduced rate. If the LDL.sup.T factorization is done once every N samples and the computational load is evenly distributed over the N-sample period, then on the average for each sampling interval, only

.times..times..times..times..times..times. ##EQU00011## DIV are required to do the LDL.sup.T factorization. In Eqs. (21) and (22), the superscript "R"stands for "reduced rate." Combined with the necessary forward substitution, scaling and back substitution that follow the factorization, only

.times..times..times..times..times..apprxeq..times..times..times..times..t- imes. ##EQU00012## DIV are needed in each sampling interval to find the solution to solve for the linear system.

Thus, the overall complexity figures for the LDL.sup.T FAP filters are

.times..times..times..times..times..times..times. ##EQU00013## for the full-rate LDL.sup.T FAP, and

.times..times..times..times..times..times..times..times. ##EQU00014## for the reduced-rate LDL.sup.T FAP.

To summarize, this approach is based on the LDL.sup.T factorization technique. Its full-rate version finds the exact solution, without taking any approximation, at a complexity slightly higher than that of CGFAP with typical values of N (between 5 and 10) for voice applications. The reduced-rate version gives an approximate solution at a complexity lower than CGFAP and comparable to that of GSFAP with the "rate reduction" factor .rho.=1.However, CGFAP and GSFAP are non-relaxed (.alpha..apprxeq.1), whereas the two versions of the LDL.sup.T FAP can take a general step size .alpha..epsilon.[0,1].

A summary of the steps and computational complexity for fultrate and reduced-rate LDL.sup.T FAP methods according to the present invention are as shown below.

Initialization (n=-1): V(-1)=0, X(-1)=0, .eta.(-1)=0, R(-1)=.delta.I, e(-1)=0 (27) Processing in Sampling Interval n (n=0,1,2, . . . ):

TABLE-US-00001 TABLE 1 (28) LDL.sup.T FAP MAC DIV .function..function..xi..function..times..xi..function..xi..function..tim- es..xi..function. ##EQU00015## 2N .function..function..alpha..eta..function..times..function. ##EQU00016## L .function..function..times..function..alpha..times..times..eta..function..- times..function. ##EQU00017## L + N - 1 e(n) = d(n) - y(n) .function..function..alpha..times..times..function. ##EQU00018## N - 1 .function..function..times..function. ##EQU00019## .times..times..times..times..times. ##EQU00020## N .times..times..times..times. ##EQU00021## 1 .eta..function..eta..function..function. ##EQU00022## Total: .times..times..times..times..times..times..times..times. ##EQU00023## N .times..times..times..times..times..times..times. ##EQU00024## 1

Note: .xi.(n) is defined in Eq. (4), R(n) is the left-most column of R(n), {tilde over (R)} (n) is an N-1 vector consisting of the N-1 lower elements of the Nvector R(n), .eta. (n) is an N-1 vector consisting of the N-1 upper elements of the Nvector .eta. (n), and "F" stands for "full-rate" and "R" for "reduced-rate."

A second embodiment of the present invention assumes that the auto correlation matrix R(n) is Toeplitz, as noted in the third observed structural property. A variation of the Levinson-Durbin recursion is used.

Using a subscript to denote an array's dimension, Eq. (9) can be expressed as:

.function..times..function..function..times..times..function..ident..funct- ion..function..function..times..times..times..times..function..ident..func- tion..function..function. ##EQU00025## are N-dimensional solution and given vectors, respectively.

To apply the Levinson-Durbin recursion, R.sub.N(n) must be constant (not time varying), symmetric and positive-definite Toeplitz. In fact, the auto-correlation matrix R.sub.N(n) varies slowly and can be approximately regarded as constant over N sampling intervals, and R.sub.N can be regarded as nearly Toeplitz. These features permit the N-th order system Eq. (29) to be expressed as R.sub.N.epsilon..sub.N(n)=e.sub.N(n) (31) where R.sub.N is a constant symmetric and positive-definite Toeplitz matrix. A full Levinson-Durbin recursion requires M.sub.MAC,LD=2N.sup.2-N (32) and N.sub.DIV,LD=N (33) MACs and DIVs, respectively, to solve Eq. (31).

In order to simplify the solution of Eq. (31), and thereby bring down the complexity figures, we observe that, as a result of R.sub.N varying slowly, the solution to the corresponding Yule-Walker system (discussed in "Appendix B: Durbin's Recursion for Yule-Walker Systems") also changes slowly over time. In addition, the right-hand side of Eq. (31), e.sub.N(n), is a pre-fixed and one position down shifted and scaled version of e(n-1) with last element discarded, as observed above:

.function..ident..function..function..function..function..alpha..times..fu- nction..alpha..times..function..alpha..times..function..function..alpha..t- imes..function. ##EQU00026## where the scalar (1-.alpha.) satisfies 0.ltoreq.(1-.alpha.).ltoreq.1, and

.function..ident..function..function..function. ##EQU00027## In other words,e.sub.N (n+1) is a scaled and one-position down-shifted version of e.sub.N(n) with the latter's last element discarded and a fresh sample e.sub.0(n+1) prefixed.

The problem can be phrased as: given the solution .epsilon..sub.N(n) to Eq. (31), we need to find the solution .epsilon..sub.N(n+1) to R.sub.N.epsilon..sub.N(n+1)=e.sub.N(n+1) (36) where e.sub.N (n+1) is given by Eq. (34).

The idea behind the proposed approach is to make use of this observation in relation to e.sub.N(n) and the available .epsilon..sub.N(n) in order to obtain .epsilon..sub.N (n+1) with less effort than that with the Levinson-Durbin's recursion, which can solve Eq. (36), but at the cost given above. The filtering method performs backward-recursion to derive from .epsilon..sub.N (n) a vector Z.sub.N-1, solution to R.sub.N-1Z.sub.N-1=e.sub.N-1(n) (37) followed by forward-recursion on Z.sub.N-1 to obtain .epsilon..sub.N (n+1).

Equation (31) can be expressed as

.times..times..function..function..function..function..function. ##EQU00028## where the exchange matrix E.sub.N-1 is an (N-1)-th mirror image of the identity matrix |.sub.N-1, and

.ident. ##EQU00029## Using Eq. (37), Eq. (38) can be partially expanded into R.sub.N-1.epsilon..sub.N-1(n)+.epsilon..sub.N-1(n)E.sub.N-1R.sub.N-1- =e.sub.N-1(n)=R.sub.N-1Z.sub.N-1 (40) and, since R.sub.N-1 is persymmetric (i.e. symmetric about its upper right and lower left diagonal) such that R.sub.N-1E.sub.N-1=E.sub.N-1R.sub.N-1 and (R.sub.N-1E.sub.N-1).sup.-1=(E.sub.N-1R.sub.N-1).sup.-1, then

.function..function..times..times..times..function..function..times..time- s..times..function..function..times..times. ##EQU00030##

Eq. (41) can be solved using an (N-1)-th order Yule-Walker system R.sub.N-Y.sub.N-1=-R.sub.N-1 (42) to find Y.sub.N-1, as is discussed in Appendix B.

Next, at time n+1, Eq. (36) with Eq. (34) substituted in can be expressed as

.function..function..function..function..alpha..times..function..times..ti- mes..function..ident..function..function..function. ##EQU00031##

Expanding Eq. (43) and using Eq. (37) results in r.sub.0.epsilon..sub.0(n+1)+R.sub.N-1.sup.T{tilde over (.epsilon.)}.sub.N-1(n+1)=e.sub.0(n+1) (45) and .epsilon..sub.0(n+1)R.sub.N-1+R.sub.N-1{tilde over (.epsilon.)}.sub.N-1(n+1)=(1-.alpha.)e.sub.N-1(n)=(1-.alpha.)R.sub.N-1Z.s- ub.N-1 (46)

From Eq. (46) and using Eq. (42), part of the projected error vector can be expressed as:

.function..alpha..times..function..times..times..alpha..times..function..t- imes. ##EQU00032## which is then substituted into Eq. (45) so that

.times..function..function..times..function..function..function..alpha..ti- mes..function..times..times..times..function..function..alpha..times..time- s..times. ##EQU00033##

Thus, this embodiment of the present invention recursively finds the solution to Eq. (36) given the solution to Eq. (31), and can be summarized as

.alpha..times..function..function..times..times..times..times..function..f- unction..times..times..times..times..function..function..times. ##EQU00034## where T.sub.N-1 equals (1-.alpha.) Z.sub.N-1 in previous derivations. This approach can be described as "reciprocating recursion with prefixing and shifting;" and is therefore, abbreviated as a "RATCHET approach."

Looking for a simpler way of finding .epsilon..sub.0 (n+1) in Eq. (50). Equation (110) in Appendix B indicates that

.times..rho. ##EQU00035## Since the RATCHET filter relies on an (N-1)-th order Durbin's recursion to provide Y.sub.N-1. .rho..sub.N-2 is already available when Y.sub.N-1 has been found. Thus, Eq. (51) can be found recursively by use of Eq. (112) in Appendix B,

.rho..rho. ##EQU00036## at an expense of N.sub.MAC,RHO=1 and N.sub.DIV,RHO=1 (53) MAC and DIV, respectively. This is less expensive than directly calculating the denominator for .epsilon..sub.0 (n+1) in Eq. (50).

Equation (50) can then be re-written as T.sub.N-1=(1-.alpha.)[.epsilon..sub.N-1(n)-.epsilon..sub.N-1(n)E.sub.N-1Y- .sub.N-1] .epsilon..sub.0(n+1)=.rho..sub.N-1[e.sub.0(n+1)-R.sub.N-1.sup.TT- .sub.N-1] {tilde over (.epsilon.)}.sub.N-1(n+1)=T.sub.N-1+.epsilon..sub.0(n+1)Y.sub.N-1 (54) where it is assumed that Eq. (52) has been appended to the end of the Durbin's recursion process, so that .rho..sub.N-1 is available.

The RATCHET method can, thus, be implemented as

.times..times..times..times..alpha..times..times..times..times..rho..funct- ion..times..times..times..times..times..times..times..times..times..times. ##EQU00037## where {t.sub.0, t.sub.1, . . . , t.sub.N-2} are temporary storage elements. In Eq. (55), we let .epsilon..sub.N (n+1) overwrite .epsilon..sub.N (n) in order to save memory needs.

The numbers of MACs and DIVs needed to implement this solution are N.sub.MAC,RAT=2(N-1)+N+(N-1)=4N-3 (56) and N.sub.DIV,RAT=0 (57) respectively.

If it is desired that the (N-1)-th order Yule-Walker solution be updated every sampling interval, i.e., at a full-rate, then the total numbers of MACs and DIVs for finding .epsilon..sub.N(n+1) given .epsilon..sub.N (n) is

.times..times..times..times..times..times..times..times..times. ##EQU00038## respectively. Thus a full-rate RATCHET filter, which produces the same results as the Levinson-Durbin FAP filter, only requires about half as many MACs.

Furthermore, since R.sub.N-1 changes slowly over time, a full-rate solution need not be implemented. Instead, the computation for the (N-1)-th order Yule-Walker solution can be done once every N sampling intervals and evenly distributed over the N-sample period, resulting in a reduced-rate RACHET filter method. On average for each sampling interval, only

.times..times..times..times..times..times..times..times..times..times..tim- es. ##EQU00039## DIV are needed to recursively solve Eq. (36). Thus, the reduced-rate RATCHET approach offers significant computational savings over the Levinson-Durbin FAP method, the computational requirements of which are given above at Eq. (32) and Eq. (33).

In addition, for the non-relaxed case, i.e. where the normalized step size .alpha. is at, or close to, unity, the RATCHET method Eq. (54) can be further simplified such that:

.function..rho..times..function..times..times..function..function..times..- times..times..function..rho..times..function..function. ##EQU00040## at a cost of only N.sub.MAC,RAT.sup.NX=N MACs and N.sub.DIV,RAT.sup.NX=0 DIVs per sampling interval, where the superscript NX denotes "non-relaxed". This is a further reduction over the complexity given in Eq. (56) and Eq. (57) for the full-rate RATCHET method. The complexity is improved even further in the case of the reduced rate RATCHET method. On average, for each sampling interval only

.times..times..times..times. .times. ##EQU00041## DIV to recursively solve Eq. (36).

To summarize, the RATCHET methods of the present invention provide a method for directly solving the linear system involving the auto-correlation matrix R(n) by (1) using a Durbin's recursion to solve an (N-1)-th order Yule-Walker system and (2) by finding the solution to the linear system based on the Yule-Walker solution. Due to the fact that R(n) is nearly Toeplitz and can be considered constant over N sampling intervals, the Durbin's recursion can be performed at a reduced rate--for example, once every N sampling intervals--without significantly affecting the performance. This results in a computational saving from O (N.sup.2) to O (N) for this recursion step; and, due to the fact that the N-dimensional solution vector e(n) is a pre-fixed and one position down shifted and scaled version of e(n-1) with the last element discarded, the Levinson's recursion, which requires N steps to complete, can be replaced by a 2-step reciprocating recursion method. This reduces the computational complexity from O (N.sup.2) to O (4N) for this recursion step.

After initialization steps, as shown in Eq. (66), Eq. (69), and Eq. (72), the full-rate RATCHET FAP, reduced-rate RATCHET FAP, and the non-relaxed version of the reduced-rate RATCHET FAP filtering methods can be summarized as follows in Tables 2, 3, and 4.

Initialization (n=-1)

.function..function..eta..function..function..gamma..alpha..delta. ##EQU00042## Processing in sampling interval n (n=0,1,2. . .):

TABLE-US-00002 TABLE 2 Full-rate RATCHET FAP MAC DIV .function..times..xi..function..function..times..times..xi..function. ##EQU00043## 2N .function..function..alpha..eta..function..times..times..function. ##EQU00044## L .function..function..times..function..alpha..times..times..eta..function..- times..times. ##EQU00045## L + N - 1 e(n) = d(n) - y(n) .rho..rho..times..rho..rho..rho..function..times..times..times..times. ##EQU00046## N.sup.2 - N - 1 N - 1 Durbin'srecursion .rho..rho. ##EQU00047## 1 1 find .rho. .gamma..times..function..function..times..times..times..function..rho..fun- ction..function..times..function..function..times. ##EQU00048## 4N - 3 RATCHET .eta..function..function..eta..function..function. ##EQU00049## Total: 2L + N.sup.2 + 6N - 4 N

Note: .xi.(n) is defined in Eq. (4); the N vector R=[.delta.+r.sub.0 r.sub.1. . . r .sub.n-1].sup.T(67) is the left-most column of R(n), the rest of which does not need to be stored; {tilde over (R)} is an N-1 vector consisting of the N-1 lower elements of R; .eta.(n) is an N-1 vector consisting of the N-1 upper elements of the N vector .eta.(n); the goal of the three boxes marked "Durbin's recursion," "Find .rho.," and "RATCHET," respectively, is to find .epsilon.(n)=R.sup.-1(n)e(n); the vector e(n) does not need to be explicitly calculated; and

##EQU00050## Initialization (n=-1): V(-1)=0,X(-1)=0,e(-1)=0, R=[.delta.0. . . 0].sup.T, ,Y.sup.0.sub.N-1=0,.rho..sup.0=1/.delta., .gamma.=1-.alpha. (69) Processing in sampling interval n(n=0, 1,2. . .):

TABLE-US-00003 TABLE 3 Reduced-rate RATCHET FAP MAC DIV .function..times..xi..function..function..times..times..xi..function. ##EQU00051## 2N .function..function..alpha..eta..function..times..times..function. ##EQU00052## L .function..function..times..function..alpha..times..times..eta..function..- times..times. ##EQU00053## L + N - 1 e(n) = d(n) - y(n) .times..times..times..times..rho..rho. ##EQU00054## Onceevery Nsamples .times..times..times..times..di-elect cons..times..times..rho..rho..times..times..rho..rho..rho..function..time- s..times..times..times. ##EQU00055## ##EQU00056## ##EQU00057## Durbin'srecursion .times..times..times..times..times..times..times..times..di-elect cons..times..rho..rho. ##EQU00058## 1/N 1/N Find .rho. .gamma..times..function..function..times..times..times..function..rho..fun- ction..function..times..function..function..times. ##EQU00059## 4N - 3 RATCHET .eta..function..function..eta..function..function. ##EQU00060## Total: 2L + 8N - 5 1

Note: .xi.(n) is defined in Eq.(4); the N vector R=[.delta.+r.sub.0 r.sub.1 . . . r.sub.N-1].sup.T (70) is the left-most column of R(n), the rest of which does not need to be stored; {tilde over (R)} is an N-1 vector consisting of the N-1 lower elements of R; .eta.(n) is an N-1 vector consisting of the N-1 upper elements of the N vector .eta.(n); the purpose of the three boxes marked "Durbin's recursion," "Find .rho.," and "RATCHET," respectively, is to find .epsilon.(n)=R.sup.-1(n)e(n); the vector e(n) does not need to be explicitly calculated; and

##EQU00061## Initialization (n=-1): V(-1)=0,X(-1)=0,.eta.(-1)=0,e(-1)=0 R=[.delta.0. . . 0].sup.T,Y.sup.0.sub.N-1=0,.rho..sup.0=1/.delta. (72) Processing in sampling interval n (n=0, 1,2, . . .):

TABLE-US-00004 TABLE 4 Reduced-rate RATCHET FAP - non-relaxed MAC DIV .function..times..xi..function..function..times..times..xi..function. ##EQU00062## 2N .function..function..alpha..eta..function..times..times..function. ##EQU00063## L .function..function..times..function..alpha..times..times..eta..function..- times..times. ##EQU00064## L + N - 1 e(n) = d(n) - y(n) .times..times..times..times..rho..rho. ##EQU00065## Onceevery Nsamples .times..times..times..times..di-elect cons..times..times..rho..rho..times..times..rho..rho..rho..function..time- s..times..times..times. ##EQU00066## ##EQU00067## ##EQU00068## Durbin'srecursion .times..times..times..times..times..times..times..times..di-elect cons..times..rho..rho. ##EQU00069## 1/N 1/N Find .rho..sup.0 .function..rho..function..function. ##EQU00070## N RATCHET .eta..function..eta..function..function. ##EQU00071## Total: 2L + 5N - 2 1

Note: .xi.(n) is defined in Eq.(4); the N vector R=[.delta.+r.sub.0r.sub.1. . . r.sub.N-1].sup.T(73) is the left-most column of R(n), the rest of which does not need to be stored; {tilde over (R)}is an N-1 vector consisting of the N=1 lower elements of R; .eta.(n) is an N=1 vector consisting of the N=1 upper elements of the N vector .eta.(n); the purpose of the three boxes marked "Durbin's recursion," "find.rho..sup.0," and "RATCHET," respectively, is to find .epsilon.(n)=R.sup.-1(n)e(n); the vector e(n) does not need to be explicitly calculated; and

##EQU00072##

Stability of the RATCHET filter may be called into question since the projected error vector .epsilon..sub.N (n+1) partially based on the projected error vector .epsilon..sub.N (n); therefore, numerical errors could potentially propagate and accumulate in the sequence of solutions. This should not be an issue because, in each sampling interval n; numerical errors in .epsilon..sub.N(n) and therefore in Z.sub.N-1, if any, are scaled down by a factor (1-.alpha.) [0.ltoreq.(1-.alpha.).ltoreq.1] before being used to construct .epsilon..sub.N (n+1); and even if .alpha.=0 so that (1-.alpha.)=1, i.e., the numerical errors are not attenuated over time, the errors are still shifted one position downwards--towards the end of the vector Z.sub.N-1--in each sampling interval; therefore, they will eventually be discarded and no longer impact subsequent solutions--no matter what the value of (1-.alpha.) is.

Simulation results support the above argument. That is, the FAP featuring the RATCHET method stays stable. Some preliminary simulations have been performed on the two FAP filters presented herein at their respective full and reduced rates. It has been observed so far that both filters stay stable for the entire course of each test case that was run, and in terms of convergence speed, RATCHET FAP is slightly inferior to LDL.sup.T FAP, and the respective reduced-rate versions are slightly worse than their full-rate counterparts. However, both the LDL.sup.T FAP and RATCHET FAP, at full and reduced rates, converge much faster than an NLMS adaptive filter.

A comparison between the FAP filters of the prior art and our present filters is shown in Table 4.

TABLE-US-00005 TABLE 4 Comparison between various adaptive filters Conver- Relax- Complexity Algorithm gence ability MAC in excess of 2L DIV Comment Non- NLMS Slow Not 2 1 Work horse FAP RLS Fastest Applicable Very High Numerical Issues FAP Prior Original FAP Fast Yes 20N 5 Art Levinson-Durbin FAP 2N.sup.2 + 3N - 2 N Approximate CGFAP No 2N.sup.2 + 9N + 1 1 Only for large GSFAP N.sup.2/p + (5 - 1/p)N - 1, 1 .ltoreq. p .ltoreq. 5 1 step size .alpha. Invented LDL.sup.T Full rate Yes N.sup.3/6 + 2N.sup.2 + 17N/6 - 2 N Exact solution FAP Reduced Rate 7N.sup.2/6 + 5N - 3 1 Approximate RATCHET Full rate N.sup.2 + 6N - 4 N FAP Reduced General 8N - 5 1 Rate Non- No 5N - 2 1 Approximate and relaxed only for large step size .alpha.

The complexity figures in Table 4 are plotted in FIG. 3, where each DIV is counted as 25 MACs, because it takes approximately 20 to 30 cycles for a typical commercial DSP to perform a DIV while it takes only 1 cycle for it to do a MAC. In order to compare the GSFAP and RATCHET FAP clearly, the Y-scale of a portion of FIG. 3 is enlarged and shown in FIG. 4.

The advantages of the present invention will be apparent to those of skill in the art. The RATCHET FAP at the reduced rate provides not only a stable filter, but with complexity in the order of O(N), while other stable FAP filters have a complexity of the order of O(N.sup.2). The reduced rate RATCHET FAP is also simpler than previously proposed FAP filters. With the projection order N between 4 and 18, a range particularly suitable for voice applications, the reduced rate RATCHET FAP has a similar complexity to a GSFAP filter with p=5. However, the reduced rate RATCHET FAP can have a normalized step size in the range of .alpha..quadrature.[0,1], while GSFAP requires a step size at, or close to, unity. With a stationary input x(n), the reduced rate RATCHET FAP is guaranteed to arrive at the solution to the Toeplitz system in N sampling intervals, because it is recursive. By contrast the GSFAP filter can only complete one complete iteration every .rho. sampling intervals, and it may take quite a number of iterations for it to reach the solution. This means that, for a nonstationary input signal x(n), the tracking capability of RATCHET FAP is superior to GSFAP.

While both of the two filtering methods described herein are robust and stable, the LDL.sup.T factorization method can provide an exact solution at an acceptable complexity (the existing stable approaches are all approximate). However, the LDL.sup.T FAP method at the full rate is likely only suitable for cases with small N and where an exact solution is required. Although the RATCHET FAP method is sub-optimal, it is very simple to implement.

Note that although the preceding description is made in the context of echo cancellation, the results are also applicable to other adaptive filtering applications. All data and parameters involved are assumed to be real-valued, as opposed to be more generally complex. This is for simplicity and should not prevent the discussions of the prior art and the invention from being extended to cases involving complex numbers. It is expected that adaptive filters using the LDL.sup.T FAP and RATCHET FAP methods are particularly applicable to telecommunication and other applications of adaptive filtering.

The above-described embodiments of the present invention are intended to be examples only. Alterations, modifications and variations may be effected to the particular embodiments by those of skill in the art without departing from the scope of the invention, which is defined solely by the claims appended hereto.

Appendix A: LDL.sup.T Factorization and System Solving

The goal is to derive the LDL.sup.T factorization algorithm to find L and D where R=LDL.sup.T (75) i.e., Eq. (15).

In Eq. (75), L is a unit lower triangular matrix, with all elements on the main diagonal being unity, i.e.,

.times..times..times..times. ##EQU00073## is a diagonal matrix. Equation (75) can be written as R=L(DL.sup.T) (77) An expanded form of Eq. (77) is

.times..times..times..times..times..times..times..times..times..times..tim- es..times..times..times..times. ##EQU00074## Looking at Eq. (78), we begin by finding d.sub.0 and column 0 of L. Since r.sub.00=d.sub.0 r.sub.k0=l.sub.kd.sub.0, .A-inverted.k.di-elect cons.[1, N-1] (79) d.sub.0 and column 0 of L are found as d.sub.0=r.sub.00 l.sub.k0=r.sub.k0/d.sub.0, .A-inverted.k.epsilon.[1,N-1] (80) Now assuming that, for a certain i.epsilon.(1, N-2), {d.sub.0, d.sub.1, . . . , d.sub.i-1} and columns 0 through i-1 of L have been found, we have

.times..times..times..times..times..times..times..times..times..ltoreq..lt- oreq..times..times..times..times..times..times..times..times..times..times- ..A-inverted..di-elect cons. ##EQU00075## Thus, starting with the quantities in Eq. (80), recursive use of Eqs. (81) and (83) for i=1, 2, . . . , N-2, and use of Eq. (81) for i=N-1 will find all elements of D and all columns of L. The LDL.sup.T factorization studied above can be summarized as

.times..times..times..times..times..times..times..times..times.>.times.- .times..times..times..times..times..times..times..times..times..times..tim- es..times..times..times..times.<.times..times..times..times..times..tim- es..times..times..times..times..times..times..times..times..times..times..- times..times.>.times..times..times..times..times..times. ##EQU00076## where {84 .sub.0, .nu..sub.1, . . . , .nu..sub.N-2} are temporary storage locations. For computational efficiency, Eq. (84) can be implemented as:

.times..times..times..times..times..times..times..times..times..times..tim- es..times..times..times..times..times..times..times..times..times..times..- times..times..times..times..times..times..times..times..times..times..time- s..times..times..times..times..times..times..times..times..function..times- ..times..times..times..times..times..times..times..times..times..times..ti- mes..times..times..times..times..times..times..times..times. ##EQU00077## Note that {a.sub.1, a.sub.2, . . . , a.sub.N-1} are saved for later use in Eq. (90), and the last DIV is performed solely for that purpose. Total numbers of MACs and DIVs for the above LDL.sup.T factorization are

.times..times..times..times..times..times..times..times..times..times. ##EQU00078## respectively. With L and D found, Eq (17) on page 14, i.e., L.epsilon..sup.(L)=e, can be solved by Forward Substitution

.times..times..times..times..times..times..times..times..times..times..tim- es. ##EQU00079## Total number of MACs for the above forward substitution algorithm is

.times..times..times. ##EQU00080## and there is no DIV operation involved in Eq. (88), i.e., N.sub.DIV,FS=0. Next, Eq. (18), i.e. D.epsilon..sup.(D)=e.sup.(L), can be solved by Scaling i=0,1, . . . ,N-1 .epsilon..sub.i.sup.(D)=a.sub.i.epsilon..sub.i.sup.(L) (90) where {a.sub.1, a.sub.2, . . . , a.sub.N-1} are obtained from Eq. (85). Total number of MACs for the above scaling algorithm is N.sub.MAC,S=N (91) and there is no DIV operation involved in Eq. (90), i.e., N.sub.DIV,S=0. Finally, Eq. (19), i.e. L.sup.T.epsilon.=e.sup.(D) is solved by Back Substitution

.times..times..times..times..times..times..times..times..times..times..tim- es..times..times. ##EQU00081## Total number of MACs for the above bac


Free Web Sudoku Puzzles.
Solve with your browser.
4       8        
    1   4   3    
    2       1 5  
        5 4 6   1
    6 7   3 2    
1   4 9 2        
  4 3       8    
    5   7   9    
        9       6
What is it?



Add Your Site · Terms Of Service · Privacy Policy


DISCLAIMER
Linkgrinder is a free service that searches the Internet and indexes all files found so that you may search quickly and easily for shared files. These files are created and made available individually by users whose identity we are not aware of and who we have no control over. In essence we function like a search engine tool; these files ARE NOT STORED OR SERVED BY OUR NETWORK. We are not responsible for any materials obtained by using our service. We do not monitor any of the contents of these files. These files may contain viruses, illegal materials, materials inappropriate for minors, offensive files and the like. BY USING OUR SERVICE, YOU ASSUME FULL RESPONSIBILITY FOR DOWNLOADING THESE MATERIALS AND WILL INDEMNIFY US FOR ANY DAMAGES THAT MAY BE INCURRED.

For More Specific Information VIEW OUR TERMS OF SERVICE.

Thank you and Enjoy!