Claims
- 1. An apparatus comprising:
a first adaptive filter having a first length 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 echo channel having a plurality of sparse multi-path channels; a delay estimator coupled to the adaptive filter to determine a plurality of delays in the echo channel using the estimated channel weight vector; and a second adaptive filter coupled to the delay estimator to estimate a plurality of short weight vectors using the AP update and the plurality of delays, the short weight vectors corresponding to the sparse multi-path channels, each of the short weight vectors having a second length shorter than the first length.
- 2. 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.
- 3. The apparatus of claim 2 wherein the first 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.
- 4. The apparatus of claim 1 wherein the delay estimator comprises:
a peak locator to locate positions of peaks of an impulse response of the echo channel using the estimated channel weight vector, the positions corresponding to the delays; and a peak eliminator to eliminate a false peak in the peaks.
- 5. The apparatus of claim 1 wherein the second adaptive filter comprises:
an input separator to separate the receive input sequence into a plurality of partial input sequences, each of the partial input sequences being delayed by one of the delays provided by the delay estimator and being represented by a sum of a partial random sequence and a past partial input sequence weighted by a partial auto-regressive (AR) coefficient vector; a plurality of partial AR coefficient estimators coupled to the input separator, each of the partial AR coefficient estimators estimating the partial AR coefficient vector at a first update rate using the past partial input sequence and the partial input sequence; a plurality of partial random estimators coupled to the partial AR coefficient estimators, each of the partial random estimators estimating the partial random sequence at a second update rate using the estimated partial AR coefficient vector; an error estimator to estimate an error at the second update rate using the send input sequence, the partial input sequences, and the estimated short weight vectors; and a weight updater coupled to the error estimator and the random estimators to update the short weight vectors at the second update rate using the estimated error and the estimated partial random sequences.
- 6. The apparatus of claim 3 wherein the first update rate is slower than the second update rate.
- 7. The apparatus of claim 5 wherein the first update rate is slower than the second update rate.
- 8. The apparatus of claim 3 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.
- 9. The apparatus of claim 5 further comprising:
a plurality of partial short-term power calculators to calculate partial short-term average powers associated with the partial input sequences; and a plurality of long-term partial power calculators to calculate partial long-term average powers associated with the partial input sequences.
- 10. The apparatus of claim 9 wherein the weight updater freezes the short weight vectors when the associated partial short-term average power is less than the associated partial long-term average power by a threshold power amount.
- 11. A method comprising:
estimating a channel weight vector of an echo channel by a first adaptive filter using an affine projection (AP) update, the echo channel receiving a send input sequence and a receive input sequence, the echo channel having a plurality of sparse multi-path channels; determining a plurality of delays in the echo channel by a delay estimator using the estimated channel weight vector; and estimating a plurality of short weight vectors by a second adaptive using the AP update and the plurality of delays, the short weight vectors corresponding to the sparse multi-path channels, each of the short weight vectors having a second length shorter than the first length.
- 12. 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.
- 13. The method of claim 11 wherein estimating a channel weight vector of an echo channel by a first adaptive filter comprises:
estimating the AR coefficient vector by an AR coefficient estimator 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 by a random estimator coupled to the AR coefficient estimator using the estimated AR coefficient vector; estimating an error at the second update rate by an error estimator 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 by a weight updater coupled to the error estimator and random estimator using the estimated error and the estimated random sequence.
- 14. The method of claim 11 wherein determining the plurality of delays comprises:
locating positions of peaks of an impulse response of the echo channel by a peak locator using the estimated channel weight vector, the positions corresponding to the delays; and eliminating a false peak in the peaks by a peak eliminator.
- 15. The method of claim 11 wherein estimating the channel weight vector comprises:
separating the receive input sequence into a plurality of partial input sequences by an input separator, each of the partial input sequences being delayed by one of the delays provided by the delay estimator and being represented by a sum of a partial random sequence and a past partial input sequence weighted by a partial auto-regressive (AR) coefficient vector; estimating the partial AR coefficient vector at a first update rate using the past partial input sequence and the partial input sequence; estimating the partial random sequence at a second update rate using the estimated partial AR coefficient vector estimating an error at the second update rate by an error estimator using the send input sequence, the partial input sequences, and the estimated short weight vectors; and updating the short weight vectors at the second update rate using the estimated error and the estimated partial random sequences.
- 16. The method of claim 13 wherein the first update rate is slower than the second update rate.
- 17. The method of claim 15 wherein the first update rate is slower than the second update rate.
- 18. The method of claim 13 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.
- 19. The method of claim 15 further comprising:
calculating partial short-term average powers associated with the partial input sequences by a plurality of partial short-term power calculators; and calculating partial long-term average powers associated with the partial input sequences by a plurality of long-term partial power calculators.
- 20. The method of claim 19 wherein updating the channel weight vector comprises freezing the short weight vector when the associated partial short-term average power is less than the associated partial 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:
a first adaptive filter having a first length 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 echo channel having a plurality of sparse multi-path channels, a delay estimator coupled to the adaptive filter to determine a plurality of delays in the echo channel using the estimated channel weight vector, and a second adaptive filter coupled to the delay estimator to estimate a plurality of short weight vectors using the AP update and the plurality of delays, the short weight vectors corresponding to the sparse multi-path channels, each of the short weight vectors having a second length shorter than the first length.
- 22. 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.
- 23. The system of claim 21 wherein the first 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.
- 24. The system of claim 21 wherein the delay estimator comprises:
a peak locator to locate positions of peaks of an impulse response of the echo channel using the estimated channel weight vector, the positions corresponding to the delays; and a peak eliminator to eliminate a false peak in the peaks
- 25. The system of claim 21 wherein the second adaptive filter comprises:
an input separator to separate the receive input sequence into a plurality of partial input sequences, each of the partial input sequences being delayed by one of the delays provided by the delay estimator and being represented by a sum of a partial random sequence and a past partial input sequence weighted by a partial auto-regressive (AR) coefficient vector; a plurality of partial AR coefficient estimators coupled to the input separator, each of the partial AR coefficient estimators estimating the partial AR coefficient vector at a first update rate using the past partial input sequence and the partial input sequence; a plurality of partial random estimators coupled to the partial AR coefficient estimators, each of the partial random estimators estimating the partial random sequence at a second update rate using the estimated partial AR coefficient vector; an error estimator to estimate an error at the second update rate using the send input sequence, the partial input sequences, and the estimated short weight vectors; and a weight updater coupled to the error estimator and the random estimators to update the short weight vectors at the second update rate using the estimated error and the estimated partial random sequences.
- 26. The system of claim 23 wherein the first update rate is slower than the second update rate.
- 27. The system of claim 25 wherein the first update rate is slower than the second update rate.
- 28. The system of claim 23 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.
- 29. The system of claim 25 further comprising:
a plurality of partial short-term power calculators to calculate partial short-term average powers associated with the partial input sequences; and a plurality of long-term partial power calculators to calculate partial long-term average powers associated with the partial input sequences.
- 30. The apparatus of claim 29 wherein the weight updater freezes the short weight vector when the associated partial short-term average power is less than the associated partial long-term average power by a threshold power amount.
- 31. A computer program product comprising:
a machine useable 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 a first adaptive filter using an affine projection (AP) update, the echo channel receiving a send input sequence and a receive input sequence, the echo channel having a plurality of sparse multi-path channels; computer readable program code to determine a plurality of delays in the echo channel by a delay estimator using the estimated channel weight vector; and computer readable program code to estimate a plurality of short weight vectors by a second adaptive filter using the AP update and the plurality of delays, the short weight vectors corresponding to the sparse multi-path channels, each of the short weight vectors having a second length shorter than the first length.
- 32. 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.
- 33. 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 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.
- 34. The computer program product of claim 31 wherein the computer readable program code to determine the plurality of delays comprises:
computer readable program code to locate positions of peaks of an impulse response of the echo channel using the estimated channel weight vector, the positions corresponding to the delays; and computer readable program code to eliminate a false peak in the peaks.
- 35. The computer program product of claim 31 wherein the computer readable program code to estimate the plurality of short weight vectors comprises:
computer readable program code to separate the receive input sequence into a plurality of partial input sequences, each of the partial input sequences being delayed by one of the delays and being represented by a sum of a partial random sequence and a past partial input sequence weighted by a partial auto-regressive (AR) coefficient vector; computer readable program code to estimate the partial AR coefficient vector at a first update rate using the past partial input sequence and the partial input sequence, computer readable program code to estimate the partial random sequence at a second update rate using the estimated partial AR coefficient vector, computer readable program code to estimate an error at the second update rate by an error estimator using the send input sequence, the partial input sequences, and the estimated short weight vectors; and computer readable program code to update the short weight vectors at the second update rate by a weight updater coupled to the error estimator and the random estimators using the estimated error and the estimated partial random sequences.
- 36. The computer program product of claim 33 wherein the first update rate is slower than the second update rate.
- 37. The computer program product of claim 35 wherein the first update rate is slower than the second update rate.
- 38. The computer program product of claim 33 wherein the computer readable program code to update 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.
- 39. The computer program product of claim 35 further comprising:
computer readable program code to calculate partial short-term average powers associated with the partial input sequences; and computer readable program code to calculate partial long-term average powers associated with the partial input sequences.
- 40. The computer program product of claim 39 wherein the computer readable program code to update the short weight vectors comprises computer readable program code to freeze the short weight vector when the associated partial short-term average power is less than the associated partial 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,419 filed on Sep. 8,2000 (Attorney Docket No. 004419.P016Z).
Provisional Applications (1)
|
Number |
Date |
Country |
|
60231419 |
Sep 2000 |
US |