THE GAUSS-SEIDEL FAST AFFINE PROJECTION ALGORITHM Felix Albu 1 , Milan Tichy 2 , Nick Coleman 3 , Anthony Fagan 1 1 DSP Group, UCD, Belfield 4, Dublin, Ireland, felix_albu@ieee.org 2 UTIA, Pod vodarenskou vezi 4, 182 08 Prague 8, Czech Republic, tichy@utia.cas.cz 3 Dept EE, The University, Newcastle, NE1 7RU, UK, j.n.coleman@ncl.ac.uk ABSTRACT In this paper we propose a new stable Fast Affine Projection algorithm based on Gauss-Seidel iterations (GSFAP). We investigate its implementation using the logarithmic number system (LNS) and compare it with other two FAP algorithms. A method to simplify its implementation is also proposed. We show that the 32-bit or 20-bit LNS implementation of the GSFAP algorithm is superior to those of other FAP algorithm. Its application for acoustic echo cancellation is also investigated. 1. INTRODUCTION Adaptive filtering is widely used in echo cancellation, noise cancellation, system identification, active noise control, channel equalization and in products like data communications systems, network echo cancellers, acoustic echo cancellers for hands-free telephones. The performance of a specific adaptive filtering system is affected by the choice of its adaptation algorithm. The well-known normalized LMS (NLMS) algorithm has been widely used but it has slow asymptotic convergence. The affine projection algorithm (APA) [1] can be considered as a generalization of the NLMS algorithm. However, its fast version [2], when implemented with an embedded FRLS (Fast Recursive Least Squares) algorithm suffers from numerical instability [2]. The complexity of this algorithm is N L 20 2 , where L is the length of the filter and N is the projection order. Other difficulties are its memory requirements and code overhead. Because of these disadvantages using an FRLS procedure instead of the standard RLS procedure do not necessarily represent the most economical solution. Other forms of the standard FAP that use sliding-window RLS type approach have been proposed in [3] and [4]. These alternate FAP algorithms lead to a more accurate estimation of the auto- correlation matrix inverse but have no feedback incorporated. If the estimations deviate from the accurate value, the errors propagate to the next iterations, causing the adaptive filter to fail sometimes [5]. A frequently proposed remedy is to re-start periodically a new inversion process. Even so, the numerical errors accumulate so fast sometimes that the re-starting period would have to be made very small. Therefore the complexity associated with this procedure is high. Another improved FAP algorithm using the conjugate gradient (CG) method to do the matrix inversion was proposed in [5]. It was called CGFAP and it was proved that it is stable and easy to implement in comparison with other FAP algorithms. It uses a feedback scheme so that the numerical errors do not accumulate. CG is a non-linear programming method that seeks the minimum of a quadratic cost function iteratively [6]. It has been verified on floating point and fixed-point DSP platforms including 16 and 24 bits ones [5]. In this paper we study the behaviour of 20-bit or 32-bit LNS or FLOAT implementations of the classical FAP algorithm [4], the CGFAP algorithm and our new proposed GSFAP algorithm (Gauss-Seidel Fast Affine Projection) algorithm. Also, we propose a version for multi-input system and a filtered-x system version of the GSFAP algorithm. We investigate its performances for an acoustic echo cancellation and we present the multi-input case and the filtered-x version. In section 2 we briefly review the development of the GSFAP algorithm. The logarithmic number system is presented in section 3. The results of the implementation of GSFAP algorithms using logarithmic arithmetic and conventional 32-bit floating-point are provided in section 4. Section 5 concludes this work. 2. GSFAP ALGORITHM We will use most of the notations and the definitions presented in [5]. It is shown there that the matrix inversion problem implied by FAP algorithms reduce to solving a set of N linear equations   b n P n R , where b is a N vector with only one non-zero element, which is unity at the top and  n R is symmetric and positive definite. Compared with the Jacobi method for the same class of problem, the Gauss-Seidel method offers faster