Claims
- 1. An apparatus comprising:
an adaptive filter to estimate a channel weight vector of an echo channel using an affine projection (AP) update, the echo channel receiving a send input sequence and a receive input sequence, the channel weight vector having first and second lengths when the adaptive filter operates in a first adaptation mode and a second adaptation mode, respectively; and a delay estimator coupled to the adaptive filter to determine a delay in the echo channel using the adaptive filter in the first adaptation mode.
- 2. The apparatus of claim 1 wherein the adaptive filter operates in the second adaptation mode based on the delay determined by the delay estimator.
- 3. The apparatus of claim 1 wherein the first length is longer than the second length.
- 4. The apparatus of claim 1 wherein the receive input sequence is represented by a sum of a random sequence and a past receive input sequence weighted by an auto-regressive (AR) coefficient vector.
- 5. The apparatus of claim 4 wherein the adaptive filter comprises:
an AR coefficient estimator to estimate the AR coefficient vector at a first update rate using the past receive input sequence and the receive input sequence; a random estimator coupled to the AR coefficient estimator to estimate the random sequence at a second update rate using the estimated AR coefficient vector; an error estimator to estimate an error at the second update rate using the send input sequence, the receive input sequence, and the estimated channel weight vector; and a weight updater coupled to the error estimator and the random estimator to update the channel weight vector at the second update rate using the estimated error and the estimated random sequence.
- 6. The apparatus of claim 1 wherein the delay estimator comprises:
a peak locator to locate L peaks of an impulse response of the echo channel using the estimated channel weight vector, the L peaks being located within a predetermined distance from one another.
- 7. The apparatus of claim 6 wherein the delay estimator further comprises:
a peak eliminator to eliminate a false peak in one of the L peaks; and a leading edge locator to locate a leading edge of the impulse response, the leading edge being a peak with shortest delay in the L peaks and within a predetermined distance from the delay.
- 8. The apparatus of claim 5 wherein the adaptive filter, when operating in the second adaptation mode, initializes the channel weight vector by the estimated channel weight vector updated in the first adaptation mode.
- 9. The apparatus of claim 5 wherein the first update rate is slower than the second update rate.
- 10. The apparatus of claim 5 wherein the weight updater freezes the channel weight vector when a short-term average power is less than a long-term average power by a threshold power amount.
- 11. A method comprising:
estimating a channel weight vector of an echo channel by an adaptive filter using an affine projection (AP) update, the echo channel receiving a send input sequence and a receive input sequence, the channel weight vector having a first length when the adaptive filter operates in a first adaptation mode and having a second length when the adaptive filter operates in a second adaptation mode; and determining a delay in the echo channel by a delay estimator using the adaptive filter in the first adaptation mode.
- 12. The method of claim 11 wherein estimating the channel weight vector comprises operating in the second adaptation mode based on the delay determined by the delay estimator.
- 13. The method of claim 11 wherein the first length is longer than the second length.
- 14. The method of claim 11 wherein the receive input sequence is represented by a sum of a random sequence and a past receive input sequence weighted by an auto-regressive (AR) coefficient vector.
- 15. The method of claim 14 wherein estimating the channel weight vector comprises:
estimating the AR coefficient vector at a first update rate using the past receive input sequence and the receive input sequence; estimating the random sequence at a second update rate using the estimated AR coefficient vector; estimating an error at the second update rate using the send input sequence, the receive input sequence, and the estimated channel weight vector; and updating the channel weight vector at the second update rate using the estimated error and the estimated random sequence.
- 16. The method of claim 11 wherein determining the delay comprises:
locating L peaks of an impulse response of the echo channel using the estimated channel weight vector by a peak locator, the L peaks being located within a predetermined distance from one another.
- 17. The method of claim 16 wherein determining the delay further comprises:
eliminating a false peak in one of the L peaks; and locating a leading edge of the impulse response, the leading edge being a peak with shortest delay in the L peaks and within a predetermined distance from the delay.
- 18. The method of claim 15 wherein operating in the second adaptation mode comprises initializing the channel weight vector by the estimated channel weight vector updated in the first adaptation mode.
- 19. The method of claim 15 wherein the first update rate is slower than the second update rate.
- 20. The method of claim 15 wherein updating the channel weight vector comprises freezing the channel weight vector when a short-term average power is less than a long-term average power by a threshold power amount.
- 21. A system comprising:
a first decoder coupled to a far end of an acoustic channel to decode a far end signal, the first decoder generating a receive input sequence; a second decoder coupled to a near end of the acoustic channel to decode a near end signal, the second decoder generating a send input sequence; and an echo canceller in an echo channel coupled to the first and second decoders to perform echo cancellation, the echo channel receiving the receive and send input sequences, the echo canceller comprising:
an adaptive filter to estimate a channel weight vector of the echo channel using an affine projection (AP) update, the channel weight vector having first and second lengths when the adaptive filter operates in a first adaptation mode and a second adaptation mode, respectively, and a delay estimator coupled to the adaptive filter to determine a delay in the echo channel using the adaptive filter in the first adaptation mode.
- 22. The system of claim 21 wherein the adaptive filter operates in the second adaptation mode based on the delay determined by the delay estimator.
- 23. The system of claim 21 wherein the first length is longer than the second length.
- 24. The system of claim 21 wherein the receive input sequence is represented by a sum of a random sequence and a past receive input sequence weighted by an auto-regressive (AR) coefficient vector.
- 25. The system of claim 24 wherein the adaptive filter comprises:
an AR coefficient estimator to estimate the AR coefficient vector at a first update rate using the past receive input sequence and the receive input sequence; a random estimator coupled to the AR coefficient estimator to estimate the random sequence at a second update rate using the estimated AR coefficient vector; an error estimator to estimate an error at the second update rate using the send input sequence, the receive input sequence, and the estimated channel weight vector; and a weight updater coupled to the error estimator and the random estimator to update the channel weight vector at the second update rate using the estimated error and the estimated random sequence.
- 26. The system of claim 21 wherein the delay estimator comprises:
a peak locator to locate L peaks of an impulse response of the echo channel using the estimated channel weight vector, the L peaks being located within a predetermined distance from one another.
- 27. The system of claim 26 wherein the delay estimator further comprises:
a peak eliminator to eliminate a false peak in one of the L peaks; and a leading edge locator to locate a leading edge of the impulse response, the leading edge being a peak with shortest delay in the L peaks and within a predetermined distance from the delay.
- 28. The system of claim 25 wherein the adaptive filter, when operating in the second adaptation mode, initializes the channel weight vector by the estimated channel weight vector updated in the first adaptation mode.
- 29. The system of claim 25 wherein the first update rate is slower than the second update rate.
- 30. The system of claim 25 wherein the weight updater freezes the channel weight vector when a short-term average power is less than a long-term average power by a threshold power amount.
- 31. A computer program product comprising:
a machine readable medium having program code embedded therein, the program code comprising: computer readable program code to estimate a channel weight vector of an echo channel by an adaptive filter using an affine projection (AP) update, the echo channel receiving a send input sequence and a receive input sequence, the channel weight vector having a first length when the adaptive filter operates in a first adaptation mode and a second length when the adaptive filter operates in a second adaptation mode; and computer readable program code to determine a delay in the echo channel by a delay estimator using the adaptive filter in the first adaptation mode.
- 32. The computer program product of claim 31 wherein the computer readable program code to estimate the channel weight vector comprises computer readable program code to operate in the second adaptation mode based on the delay determined by the delay estimator.
- 33. The computer program product of claim 31 wherein the first length is longer than the second length.
- 34. The computer program product of claim 31 wherein the receive input sequence is represented by a sum of a random sequence and a past receive input sequence weighted by an auto-regressive (AR) coefficient vector.
- 35. The computer program product of claim 34 wherein the computer readable program code to estimate the channel weight vector comprises:
computer readable program code to estimate the AR coefficient vector at a first update rate using the past receive input sequence and the receive input sequence; computer readable program code to estimate the random sequence at a second update rate using the estimated AR coefficient vector; computer readable program code to estimate an error at the second update rate using the send input sequence, the receive input sequence, and the estimated channel weight vector; and computer readable program code to update the channel weight vector at the second update rate using the estimated error and the estimated random sequence.
- 36. The computer program product of claim 31 wherein the computer readable program code to determine the delay comprises:
computer readable program code to locate L peaks of an impulse response of the echo channel using the estimated channel weight vector by a peak locator, the L peaks being located within a predetermined distance from one another.
- 37. The computer program product of claim 36 wherein the computer readable program code to determine the delay further comprises:
computer readable program code to eliminate a false peak in one of the L peaks; and computer readable program code to locate a leading edge of the impulse response, the leading edge being a peak with shortest delay in the L peaks and within a predetermined distance from the delay.
- 38. The computer program product of claim 35 wherein the computer readable program code to operate in the second adaptation mode comprises computer readable program code to initialize the channel weight vector by the estimated channel weight vector updated in the first adaptation mode.
- 39. The computer program product of claim 35 wherein the first update rate is slower than the second update rate.
- 40. The computer program product of claim 35 wherein the computer readable program code to update comprises computer readable program code to freeze the channel weight vector when a short-term average power is less than a long-term average power by a threshold power amount.
RELATED APPLICATION
[0001] This application claims the benefit of U.S. Provisional Patent Application No. 60/231,420 filed on Sep. 8, 2000 (Attorney Docket No. 004419.P015Z).
Provisional Applications (1)
|
Number |
Date |
Country |
|
60231420 |
Sep 2000 |
US |