Abstract:
The invention is a method and apparatus for performing adaptive filtering, and particularly echo cancellation, utilizing an efficient and effective adaptive algorithm. The invention is particularly useful in connection with network echo cancellation but is more broadly applicable to any situation where an adaptive estimate of a signal must be generated in real-time.  
     The invention includes an improved proportionate normalized least mean squares algorithm for generating an impulse response estimate that is useful for generating an echo cancellation signal to be subtracted from the echo containing signal.

Description:
FIELD OF THE INVENTION  
         [0001]    The invention pertains to network echo cancellation. The invention is particularly suitable for use for hybrid echo cancellation at a two wire to four wire interface in a communications network such as a telephone network.  
         BACKGROUND OF THE INVENTION  
         [0002]    In communications networks, it is possible for an echo of an upstream signal to be coupled onto a downstream signal (directions arbitrary), which echo either corrupts data or decreases the quality of data (e.g., increased noise). For instance, in telephone communications networks, the individual customers usually couple into the main telephone network through a two wire, analog connection in which transmissions in both directions are carried on the same pair of wires (tip and ring). However, the central portion of the network typically is a four wire, digital system in which communications in the upstream and downstream directions are carried on separate wire pairs (i.e., two wires in the receive direction and two wires in the transmit direction).  
           [0003]    The interface between the two wire and the four wire portions of the network are a source of echo. The echos typically result because the impedance of the 2-wire facility is imperfectly balanced in the 4-to-2 wire junction causing the incoming signal to be partially reflected over an outgoing path to the source of incoming signals.  
           [0004]    The circuitry interfacing the two wire and four wire portions of the network is commonly termed a line interface card. The standard components of a line interface card are well known to persons of skill in the related arts. One of those components is a hybrid cancellation circuit, the function of which is to cancel echo signals in order to improve the quality of service. In short, a hybrid cancellation circuit generates an attenuated version of the original receive signal (that is the source of the echo) and subtracts it from the signal lines that carry the transmit signal onto which the echo has been imposed. These hybrid cancellation circuits utilize an adaptive filter to operate on a supplied signal in a prescribed manner such that a desired output signal is generated.  
           [0005]    Typically, adaptive filters generate a transfer function according to an algorithm that includes updating the transfer function characteristic in response to an error signal. In this manner, the filter characteristic is optimized to produce a desired result.  
           [0006]    When used in an echo cancellation circuit, an adaptive filter is used to generate an echo path estimate that is updated in response to an error signal. Adaptive echo cancelers have been employed to mitigate the echoes by adjusting the transfer function (impulse response) characteristic of an adaptive filter to generate an estimate of the reflected signal or echo and, then, subtracting it from the outgoing signal. The filter impulse response characteristic and, hence, the echo estimate is updated in response to the outgoing signal for more closely approximating the echo to be canceled.  
           [0007]    Various designs and algorithms for adaptive filters for echo cancellation are well known. Although prior art arrangements of adaptive filters perform satisfactorily in some applications, often it is impossible to simultaneously achieve both sufficiently fast response to changing echo paths and sufficiently high steady-state estimation quality. Consequently a continuing need is to achieve more rapid response to changing conditions while at the same time maintaining adequate steady-state estimation quality.  
           [0008]    [0008]FIG. 1 is a block diagram illustrating an exemplary network echo cancellation circuit  10 . Input line  12  carries the far-end signal x(n) (i.e., the receive direction signal relative to the transceiver having the echo cancellation circuit) Input line  14  carries the near-end signal v(n) as well as background noise w(n). The far-end signal x(n) is the source of potential echo.  
           [0009]    Block  16  represents the true echo path h which is coupled into the near-end signal on line  14  as represented by summation node  18 . In accordance with an echo cancellation scheme, the far-end signal x(n) is also input into an echo cancellation circuit  20  which generates an estimated echo path h(n). The estimated signal path h(n) is generated using a digital adaptive filter algorithm as illustrated by block  124 . The estimated echo signal is then subtracted at subtraction circuit  26  from the signal path y(n), which includes the true echo h, the near-end signal v(n), and the background noise w(n).  
           [0010]    Other circumstances in which network echo cancellation may be necessary or at least desirable are numerous and would be well known to persons of skill in the related arts.  
           [0011]    Even further, acoustic echo cancellation systems are known in the prior art such as in connection with audio teleconferencing equipment. Particularly, when using a speaker phone, there is a path between the telephone speaker and the telephone microphone through which an echo can be introduced. Particularly, the microphone in a room picks up the sound created in the room. Part of the sound created in the room includes the sound coming from the opposite end of the telephone call that emanates from the telephone speaker. This creates a feedback loop that can result in distortion and, in the worst cases, howling instability.  
           [0012]    Many digital adaptive algorithms for echo cancellation are known in the prior art, including Least Mean Squares (LMS) algorithms, Normalized Least Mean Squares (NLMS) algorithms, and Proportionate Normalized Least Mean Squares (PNLMS) among others.  
           [0013]    U.S. Pat. No. 5,951,626 issued to Duttweiler and assigned to the same assignee as the present application discloses a PNLMS algorithm that has a very fast initial convergence and tracking of the true echo path when the echo path is sparse, i.e., relatively few of the coefficients are non-zero, compared to other methods such as NLMS. However, when the echo path is dispersive, PNLMS converges much more slowly than NLMS. Simulations support the conclusion that the full benefits of PNLMS in terms of fast convergence and tracking of the true echo path are achieved only when the impulse response is close to a delta function.  
           [0014]    Accordingly, it is an object of the present invention to provide an improved adaptive filter.  
           [0015]    It is another object of the present invention to provide and improved echo cancellation method and apparatus.  
           [0016]    It is a further object of the present invention to provide an algorithm particularly adapted for echo cancellation that is has fast convergence and echo path tracking over a broad range of echo paths.  
         SUMMARY OF THE INVENTION  
         [0017]    The invention is a method and apparatus for performing adaptive filtering, and particularly echo cancellation, utilizing an efficient and effective adaptive algorithm. The invention is particularly useful in connection with network echo cancellation but is more broadly applicable to any situation where an adaptive estimate of a signal must be generated in real-time.  
           [0018]    The invention includes an improved proportionate normalized least mean squares algorithm for generating an impulse response estimate that is useful for generating an echo cancellation signal to be subtracted from the echo containing signal. 
       
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0019]    [0019]FIG. 1 is a functional block diagram illustrating the operation of a typical echo cancellation circuit of the prior art.  
         [0020]    [0020]FIG. 2A is a graph illustrating the impulse response of a sparse echo path used in simulations of the present invention.  
         [0021]    [0021]FIG. 2B is a graph illustrating the impulse response of a dispersive echo path used in simulations of the present invention.  
         [0022]    [0022]FIG. 2C is a graph illustrating the impulse response of a quasi-sparse echo path used in simulations of the present invention.  
         [0023]    [0023]FIG. 3 is a graph illustrating an exemplary speech signal used in simulations of the present invention.  
         [0024]    [0024]FIG. 4A is a graph illustrating performance in response to a white noise input and the sparse impulse response of FIG. 2A for a misalignment for an echo cancellation circuit using an NLMS algorithm of the prior art.  
         [0025]    [0025]FIG. 4B is a graph illustrating performance in response to a white noise input and the sparse impulse response of FIG. 2A for a misalignment for an echo cancellation circuit using a PNLMS algorithm of the prior art.  
         [0026]    [0026]FIG. 4C is a graph illustrating performance in response to a white noise input and the sparse impulse response of FIG. 2A for a misalignment for an echo cancellation circuit using an embodiment of the improved PNLMS algorithm of the present invention.  
         [0027]    [0027]FIG. 5A is a graph illustrating performance in response to a white noise input and the dispersive impulse response of FIG. 2B for a misalignment for an echo cancellation circuit using an NLMS algorithm of the prior art.  
         [0028]    [0028]FIG. 5B is a graph illustrating performance in response to a white noise input and the dispersive impulse response of FIG. 2B for a misalignment for an echo cancellation circuit using a PNLMS algorithm of the prior art.  
         [0029]    [0029]FIG. 5C is a graph illustrating performance in response to a white noise input and the dispersive impulse response of FIG. 2B for a misalignment for an echo cancellation circuit using an embodiment of the improved PNLMS algorithm of the present invention.  
         [0030]    [0030]FIG. 6A is a graph illustrating performance in response to a white noise input and the sparse impulse response of FIG. 2A with an echo path change at 3 seconds for a misalignment for an echo cancellation circuit using an NLMS algorithm of the prior art.  
         [0031]    [0031]FIG. 6B is a graph illustrating performance in response to a white noise input and the sparse impulse response of FIG. 2A with an echo path change at 3 seconds for a misalignment for an echo cancellation circuit using a PNLMS algorithm of the prior art.  
         [0032]    [0032]FIG. 6C is a graph illustrating performance in response to a white noise input and the sparse impulse response of FIG. 2A with an echo path change at 3 seconds for a misalignment for an echo cancellation circuit using an embodiment of the improved PNLMS algorithm of the present invention.  
         [0033]    [0033]FIG. 7A is a graph illustrating performance in response to the speech signal of FIG. 3 and the sparse impulse response of FIG. 2A for a misalignment for an echo cancellation circuit using an NLMS algorithm of the prior art.  
         [0034]    [0034]FIG. 7B is a graph illustrating performance in response to the speech signal of FIG. 3 and the sparse impulse response of FIG. 2A for a misalignment for an echo cancellation circuit using a PNLMS algorithm of the prior art.  
         [0035]    [0035]FIG. 7C is a graph illustrating performance in response to the speech signal of FIG. 3 and the sparse impulse response of FIG. 2A for a misalignment for an echo cancellation circuit using an embodiment of the improved PNLMS algorithm of the present invention.  
         [0036]    [0036]FIG. 8A is a graph illustrating performance in response to the speech signal of FIG. 3 and the dispersive impulse response of FIG. 2B for a misalignment for an echo cancellation circuit using an NLMS algorithm of the prior art.  
         [0037]    [0037]FIG. 8B is a graph illustrating performance in response to the speech signal of FIG. 3 and the dispersive impulse response of FIG. 2B for a misalignment for an echo cancellation circuit using a PNLMS algorithm of the prior art.  
         [0038]    [0038]FIG. 8C is a graph illustrating performance in response to the speech signal of FIG. 3 and the dispersive impulse response of FIG. 2B for a misalignment for an echo cancellation circuit using an embodiment of the improved PNLMS algorithm of the present invention.  
         [0039]    [0039]FIG. 9 is a graph illustrating performance in response to a white noise input and the sparse impulse response of FIG. 2A for a misalignment for an echo cancellation circuit using an embodiment of the improved PNLMS algorithm of the present invention using values of α of −1, −0.5, 0, and 0.5, respectively.  
         [0040]    [0040]FIG. 10 is a graph illustrating performance in response to a white noise input and the dispersive impulse response of FIG. 2B for a misalignment for an echo cancellation circuit using an embodiment of the improved PNLMS algorithm of the present invention using values of α of −1, −0.5, 0, and 0.5, respectively.  
         [0041]    [0041]FIG. 11 is a graph illustrating performance in response to a white noise input and the quasi-sparse impulse response of FIG. 2 c  for a misalignment for an echo cancellation circuit using (1) an NLMS algorithm of the prior art, (2) a PNLMS algorithm of the prior art, and (3) an embodiment of the improved PNLMS algorithm of the present invention, respectively. 
     
    
     DETAILED DESCRIPTION OF THE INVENTION  
       [0042]    I. Introduction  
         [0043]    Recently, the proportionate normalized least mean square (PNLMS) algorithm was developed for use in network echo cancelers. D. L. Duttweiler, “Proportionate normalized least mean square adaptation in echo cancelers,”  IEEE Trans. Speech Audio Processing,  vol. 8, pp. 508-518, September 2000. In comparison to the normalized least mean square (NLMS) algorithm, PNLMS has a very fast initial convergence and tracking when the echo path is sparse. The idea behind PNLMS is to update each coefficient of the filter independently of the others by adjusting the adaptation step size in proportion to the estimated filter coefficient. Unfortunately, when the impulse response is dispersive, the PNLMS converges much more slowly than NLMS. This implies that the rule proposed in PNLMS is far from optimal. In many simulations, it seems that one fully benefits from PNLMS only when the impulse response is close to a delta function.  
         [0044]    More recently, the so-called PNLMS++ was proposed in S. L. Gay, “An efficient, fast converging adaptive filter for network echo cancellation,” in  Proc. Of Assilomar,  1998. PNLMS++ partially solves the above-mentioned problem by alternating the update process each sample period between NLMS and PNLMS algorithms. However, this solution is far to be general.  
         [0045]    An optimal rule should better exploit the shape of the estimated echo path and the algorithm should always have better performance (convergence speed) than NLMS with non-dispersive impulse responses and similar performance with highly dispersive impulse responses. In other words, the echo path should not need to be sparse in order to be able to accelerate the convergence rate of the algorithm.  
         [0046]    In this specification, we propose a new rule that is more reliable than the one used in PNLMS. Many simulations show that the obtained algorithm (improved PNLMS) performs better than NLMS and PNLMS, whatever the nature of the impulse response.  
         [0047]    II. The NLMS and PNLMS Algorithms  
         [0048]    In this section, we briefly explain the NLMS and PNLMS algorithms. In derivations and descriptions, the following notations are used for these quantities:  
         [0049]    x(n)=Far-end signal,  
         [0050]    y(n)=Echo and background noise,  
         [0051]    x(n)=[x(n) , . . . , x(n−L+1)] T , Excitation vector,  
         [0052]    h=[h 0 , . . . , h L−1 ] T , True echo path,  
         [0053]    ĥ(n)=[ĥ 0 (n), . . . , ĥ L−1 (n)] T , Estimated echo path.  
         [0054]    Here, L is the length of the adaptive filter, and n is the time index.  
         [0055]    Referring to FIG. 1, the purpose of the adaptive filter is to estimate the echo path so that it can subtract a replica of the returned echo, y(n). Traditionally, the NLMS algorithm has been the work-horse in echo canceler implementation. It therefore serves as a reference algorithm. The coefficient update equation is given by, 
           e ( n )= y ( n )− h   ^      T   ( n− 1) x ( n ),  (1) 
         [0056]    [0056]                   h   ^          (   n   )       =         h   ^          (     n   -   1     )       +       μ           x   T          (   n   )            x        (   n   )         +     δ   NLMS              x        (   n   )            e        (   n   )             ,           (   2   )                                 
         [0057]    Where μ(0&lt;μ&lt;2) is the adaptation step and δ NLMS  is the regularization factor.  
         [0058]    In this algorithm, an adaptive individual step-size is assigned to each filter coefficient. The step-sizes are calculated from the last estimate of the filter coefficients in such a way that a larger coefficient receives a larger increment, thus, increasing the convergence rate of that coefficient. The result is that active coefficients are adjusted faster than non-active coefficients (i.e. small or zero coefficients). Hence, PNLMS converges much faster than NLMS for sparse impulse responses (i.e., responses in which only a small percentage of coefficients is significant). Most impulse responses in the telephone network have this characteristic.  
         [0059]    The PNLMS algorithm is described by the following equations: 
           e ( n )= y ( n )− h   ^      T   ( n− 1) x ( n )  (3) 
         [0060]    [0060]                 h   ^          (   n   )       =         h   ^          (     n   -   1     )       +       μ           x   T          (   n   )            G        (     n   -   1     )            x        (   n   )         +     δ   PNLMS              G        (     n   -   1     )            x        (   n   )            e        (   n   )                   (   4   )                               
  G ( n− 1)=diag{ g   0 ( n− 1), . . . ,  g   L−1 ( n− 1)}  (5) 
         [0061]    Where G(n−1) is a diagonal matrix which adjusts the step-sizes of the individual taps of the filter, μ is the overall step-size parameter (the same as NLMS to achieve the same final misadjustment), and δ PNLMS  is a regularization parameter which prevents division by zero and stabilizes the solution when speech is the input signal. The diagonal elements of G(n) are calculated as follows; 
         γ l ( n )=max{ρmax{δ p,   |ĥ   0 ( n )|, . . . , | ĥ   L−1 ( n )|}, | ĥ   l ( n )|}  (6) 
         [0062]    [0062]                   g   l          (   n   )       =         γ   l          (   n   )           ∑     i   =   0       L   -   1              γ   i          (   n   )             ,                0   ≤   l   ≤     L   -   1               (   7   )                                 
         [0063]    Parameters δ p  and ρ are positive numbers with typical values δ p =0. 01, ρ=5/L. ρ prevents coefficients from stalling when they are much smaller than the largest coefficient and δ p  regularizes the updating when all coefficients are zero at initialization.  
         [0064]    A variant of this algorithm is the PNLMS++, S. L. Gay, “An efficient fast converging adaptive filter for network echo cancellation”, Proc. of ASSILOMAR, November 1998. In this algorithm, for odd-numbered time steps, the matrix G(n) is calculated as above, while, for even-numbered steps, it is chosen to be the identity matrix, 
           G ( n )= I,   (8) 
         [0065]    which results in an NLMS iteration. Alternating between NLMS and PNLMS iterations has the advantage of making the convergence rate not worse than NLMS. As a result, the PNLMS ++ algorithm is less sensitive to the assumption of a sparse impulse response than PNLMS. However, PNLMS++ is not a completely satisfactory solution because it does not truly exploit the structure of the estimated impulse response. Indeed, switching between the two algorithms will work well only in the two extreme cases when the impulse response is spare or highly dispersive. But if the impulse response is something between sparse and dispersive, PNLMS++ will likely converge as fast as NLMS since the rule used in PNLMS does not work for this case.  
         [0066]    III. An Improved PNLMS (IPNLMS) Algorithm  
         [0067]    In this section, we introduce a “true” PNLMS algorithm. Our objective is to derive a rule that better exploits the “proportionate” idea than the original PNLMS. The fact that PNLMS is slower than NLMS with dispersive impulse responses means that (Eq. 6) has to be modified. Intuitively, the brutal choice (maximum) in (Eq. 6) between |ĥ l | and one other positive number can have a disastrous effect on the convergence of the algorithm when the estimation of the coefficients is not accurate. In the following, we propose to change this part and make the choice smoother.  
         [0068]    The 1-norm of the adaptive filter is defined as:  
         ||       h   ^          (   n   )            ||   1       =       ∑     l   =   0       L   -   1            |         h   ^     i          (   n   )       |                             
 
         [0069]    An alternative to (Eq. 6) is:  
                   o   l          (   n   )       =           (     1   -   α     )     ||         h   ^          (   n   )              ||   1     L     +     (     1   +   α     )         |         h   ^     l          (   n   )       |     
        l     =   0       ,   1   ,   …              ,     L   -   1             (   9   )                               
 
         [0070]    where, −1≦α&lt;1. Taking the 1-norm of vector o:  
                     ||     o        (   n   )            ||   1       =       ∑     l   =   0       L   -   1            |       o   l          (   n   )       |                   =       ∑     l   =   0       L   -   1              o   l          (   n   )                       =     2   ||       h   ^          (   n   )            ||   1         ,                 (   10   )                               
 
         [0071]    we deduce the IPNLMS algorithm:  
               e        (   n   )       =       y        (   n   )       -           h   T     ^          (     n   -   1     )            x        (   n   )                   (   11   )                   h   ^          (   n   )       =         h   ^          (     n   -   1     )       +       μ                 x   T          (   n   )              O   1          (     n   -   1     )            x        (   n   )         +               δ   IPNLMS                    O   1          (     n   -   1     )            x        (   n   )            e        (   n   )                   (   12   )                           O   1          (     n   -   1     )       =     diag        {         o     1   ,   0            (     n   -   1     )       ,   …              ,       o     1   ,     L   -   1              (     n   -   1     )         }         ,               =       1            o        (     n   -   1     )            1          diag        {           o   0     (     n   -   1     )                   …                ,       o     L   -   1            (     n   -   1     )         }                     (   13   )             where                                 o     1   ,   l       =         o   l          (   n   )                o        (   n   )            1                     =         1   -   α       2      L       +       (     1   +   α     )                     h   l     ^          (   n   )              2                 h   ^          (   n   )            1               ,     l   =   0     ,   1   ,   …              ,     L   -   1                   (   14   )                               
 
         [0072]    In practice, in order to avoid a division by zero in (Eq. 14), especially at the beginning of the adaptation where all the taps of the filter are initialized to zero, we propose to use a slightly modified form:  
         [0073]    where ε is a very small positive number. At initialization, since all the taps of the filter start with zero, vector x is multiplied by  
           1   -   α       2      L       .                         
 
         [0074]    This suggests that the regularization parameter for the IPNLMS algorithm should be taken as:  
               δ   IPNLMS     =         1   -   α       2      L            δ   NLMS               (   16   )                               
 
         [0075]    For α=−1, it can easily be checked that the IPNLMS and NLMS algorithms are identical. For α close to 1, the IPNLMS behaves like the PNLMS. Equation (9) is the sum of two terms. The first one is an average of the absolute value of the coefficients of the estimated filter and the second one is the absolute value of the coefficient itself. While the second term (“proportionate”) is very important to improve the convergence rate when the impulse response is sparse, it can also be harmful because it is just an approximation of the coefficient and, if this value is far from the true one, it can have just the opposite effect on the gradient. The first term of (Eq. 9) is more accurate, since it is an average, and balances the errors introduced in the second term. In practice, good choices for α are 0 or −0.5. With those choices and in simulations, IPNLMS always behaves better than NLMS and PNLMS, whatever the impulse response.  
         [0076]    IV. Simulations  
         [0077]    As noted above, in telephone connections that involve connection of 4-wire and 2-wire links, an echo is generated at the hybrid that has a disturbing influence on the conversation and must therefore be canceled. Referring again to FIG. 1, the far-end speech signal x(n) goes through the echo path represented by a filter h, then it is added to the near-end talker signal v(n) and ambient noise w(n). The composite signal is denoted y(n). Most often, the echo path is modeled by an adaptive FIR filter, ĥ(n), which subtracts a replica of the echo and thereby achieves cancellation. Here, we do not consider the double-talk situation (i.e., v(n)=0).  
         [0078]    In this section, we wish to compare, by way of simulation, the NLMS, PNLMS, and IPNLMS algorithms in the context of network echo cancellation. As shown in FIG. 2, we use three different echo paths h of length L=512. The same length is used for the adaptive filter ĥ(n). The sampling rate is 8 kHz and the signal-to-noise ratio is equal to 39 dB. The input signal x(n) is either a speech signal (FIG. 3) or a white Gaussian noise. The parameter settings chosen for all the simulations are:  
         [0079]    μ=0.2,  
         [0080]    α=0,  
         [0081]    δ= p 0.01, ρ=0.01,  
                                δ   NLMS     =     σ   x   2       ,       δ   PNLMS     =       δ   NLMS     /   L       ,               δ   IPNLMS     =                  1   -   α       2      L            δ   NLMS                           
 
         [0082]    ĥ(−1)=0  
         [0083]    [0083]FIG. 4 compares the misalignment of the three algorithms: (a) NLMS, (b) PNLMS, and (c) IPNLMS, with a white noise as the far-end signal and the sparse impulse response of FIG. 2 a.  We can see that PNLMS and IPNLMS converge much faster than NLMS with a small advantage for IPNLMS. FIG. 5 shows the same thing but with the dispersive impulse response of FIG. 2 b.  While NLMS and IPNLMS have the same behavior, PNLMS deteriorates. FIG. 6 compares the algorithms in a tracking situation when, after 3 seconds, the impulse response is shifted on the right by 12 samples. The other conditions are the same as in FIG. 4. Both PNLMS and IPNLMS track better than NLMS.  
         [0084]    In FIGS. 7 and 8, the same simulations for FIGS. 4 and 5 are repeated but with the speech signal of FIG. 3 as the far-end signal. We can draw the same conclusions whether the input signal is white noise or speech.  
         [0085]    [0085]FIG. 9 compares the misalignment of the IPNLMS algorithm with different values of the parameter α when the far-end signal is a white noise and the impulse response is sparse (FIG. 2 a ). Note that for α=−1, the IPNLMS and NLMS are the same. The IPNLMS algorithm performs very well with α=0 or α=−0.5. FIG. 10 compares the same algorithm with a dispersive impulse response (FIG. 2 b).  Even in this situation, the IPNLMS algorithm (for α=−0.5) performs a little better than NLMS.  
         [0086]    Finally, in the last simulation with white noise as input signal, we compare again the three algorithms (NLMS, PNLMS, and IPNLMS with α=0) with the quasi-sparse impulse response of FIG. 2 c.  FIG. 11 shows the result of this simulation. It is clear that the propose algorithm outperforms the two others for these simulations.  
         [0087]    V. Conclusions  
         [0088]    While the PNLMS algorithm behaves very nicely and has a very fast initial convergence rate compared to NLMS when the impulse response is very sparse, it has the annoying drawback of deteriorating quickly if the echo path is not sparse enough. It simply means that the rule used in PNLMS is not adequate and does not fully exploit the structure of the impulse response, though the algorithm works well in one particular case. In this specification, we derived a new and simple rule that overcomes this problem. In simulations, the proposed algorithm did no worse than NLMS. For very sparse impulse responses, the IPNLMS converges as well as PNLMS and, for an impulse response that is between sparse and dispersive, it behaves much better than both NLMS and PNLMS. For future work, it will be interesting to evaluate the IPNLMS in the acoustic echo cancellation context, since acoustic impulse responses are quite sparse in general (not as sparse as in the hybrid but not very dispersive either).  
         [0089]    Having thus described a few particular embodiments of the invention, various alterations, modifications, and improvements will readily occur to those skilled in the art. Such alterations, modifications and improvements as are made obvious by this disclosure are intended to be part of this description though not expressly stated herein, and are intended to be within the spirit and scope of the invention. Accordingly, the foregoing description is by way of example only, and not limiting. The invention is limited only as defined in the following claims and equivalents thereto.