Replaced by SPRU167 ACOUSTIC ECHO CANCELLATION ALGORITHMS ... · PDF fileAcoustic Echo...

download Replaced by SPRU167 ACOUSTIC ECHO CANCELLATION ALGORITHMS ... · PDF fileAcoustic Echo Cancellation Algorithms and Implementation on the TMS320C8x David Qi Digital Signal Processing

If you can't read please download the document

Transcript of Replaced by SPRU167 ACOUSTIC ECHO CANCELLATION ALGORITHMS ... · PDF fileAcoustic Echo...

  • ApplicationReport

    1996 Digital Signal Processing Solutions

  • Printed in U.S.A., May 1996 SPRA063

  • Acoustic Echo Cancellation

    Algorithms and Implementationon the TMS320C8x

    David Qi Digital Signal Processing Solutions

    SPRA063May 1996

    Printed on Recycled Paper

  • IMPORTANT NOTICE

    Texas Instruments (TI) reserves the right to make changes to its products or to discontinue anysemiconductor product or service without notice, and advises its customers to obtain the latestversion of relevant information to verify, before placing orders, that the information being reliedon is current.

    TI warrants performance of its semiconductor products and related software to the specificationsapplicable at the time of sale in accordance with TIs standard warranty. Testing and other qualitycontrol techniques are utilized to the extent TI deems necessary to support this warranty.Specific testing of all parameters of each device is not necessarily performed, except thosemandated by government requirements.

    Certain applications using semiconductor products may involve potential risks of death,personal injury, or severe property or environmental damage (Critical Applications).

    TI SEMICONDUCTOR PRODUCTS ARE NOT DESIGNED, INTENDED, AUTHORIZED, ORWARRANTED TO BE SUITABLE FOR USE IN LIFE-SUPPORT APPLICATIONS, DEVICESOR SYSTEMS OR OTHER CRITICAL APPLICATIONS.

    Inclusion of TI products in such applications is understood to be fully at the risk of the customer.Use of TI products in such applications requires the written approval of an appropriate TI officer.Questions concerning potential risk applications should be directed to TI through a local SCsales office.

    In order to minimize risks associated with the customers applications, adequate design andoperating safeguards should be provided by the customer to minimize inherent or proceduralhazards.

    TI assumes no liability for applications assistance, customer product design, softwareperformance, or infringement of patents or services described herein. Nor does TI warrant orrepresent that any license, either express or implied, is granted under any patent right, copyright,mask work right, or other intellectual property right of TI covering or relating to any combination,machine, or process in which such semiconductor products or services might be or are used.

    Copyright 1996, Texas Instruments Incorporated

  • iii

    ContentsTitle Page

    Introduction 1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Algorithm Overview 2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    Adaptive Transversal Filter 3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Adaptive FIR Filter 3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . FIR Filter Equations 3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    LMS Adaptive Filter Implementation 5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Basic Operations 5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Improving Performance 7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    Signal Power Estimation 8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Block Sample Signal Power Estimate 8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Sample-By-Sample Signal Power Estimate 10. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    Speech Detection 11. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Far-End Speech Detection 12. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Double-Talk Detection 12. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Near-End Speech Detection 13. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Hangover Counters 13. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    AEC Program Flow 13. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . MP Tasks 13. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PP Tasks 15. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    Hardware Setup 20. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Summary 22. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . References 22. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

  • iv

    AppendicesTitle Page

    APPENDIX AVariables Used in the AEC Algorithms 23. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . APPENDIX BQ16 unsigned Divi Instructions 24. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . APPENDIX CAEC Software Files 26. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    File: audinit.c 27. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . File: main.c 28. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . File: pp3func.c 33. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . File: aec.h 35. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . File: main.h 36. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . File: pp3func.h 38. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . File: echan.i 39. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . File: ckmem.p 42. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . File: detector.p 45. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . File: echan.p 54. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . File: lms.p 63. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . File: power.p 67. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . File: aec_vars.s 73. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . File: einit.s 75. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . File: init.cmd 81. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . File: echan.lnk 83. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

  • v

    List of IllustrationsFigure Title Page

    1 Echo Canceller Configuration 2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    2 Echo Replication Using an Adaptive FIR Filter 3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    3 Updating Coefficients and Shifting Memory 6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    4 Speech Detection Block Diagram 11. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    5 Flowchart of the AEC Program Running on the MP 15. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    6 Flowchart of the AEC Program Running on the PP 18. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    7 Flowchart of the Speech Detection Function 19. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    8 AEC Real-Time Testing on an SDB 20. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    List of TablesTable Title Page

    1 Hangover Counters and LMS Mode Bit Settings 13. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    2 Prototype for the AEC Initialization Task 14. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    3 Prototype for the AEC Task 14. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    4 Prototype for the Adaptive Filter Function 16. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    5 Prototype for the Power Estimate Function 16. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    6 Prototype for the Speech Detection Function 16. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .