JP4445041B2 - Echo cancellation with adaptive dual filter - Google Patents

Echo cancellation with adaptive dual filter Download PDF

Info

Publication number
JP4445041B2
JP4445041B2 JP53758298A JP53758298A JP4445041B2 JP 4445041 B2 JP4445041 B2 JP 4445041B2 JP 53758298 A JP53758298 A JP 53758298A JP 53758298 A JP53758298 A JP 53758298A JP 4445041 B2 JP4445041 B2 JP 4445041B2
Authority
JP
Japan
Prior art keywords
filter
temporary storage
storing
echo canceller
multipliers
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP53758298A
Other languages
Japanese (ja)
Other versions
JP2001513293A (en
Inventor
ハカンソン,ステファン
ハマル,クラエス
トランプ,トヌ
Original Assignee
テレフオンアクチーボラゲツト エル エム エリクソン(パブル)
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by テレフオンアクチーボラゲツト エル エム エリクソン(パブル) filed Critical テレフオンアクチーボラゲツト エル エム エリクソン(パブル)
Publication of JP2001513293A publication Critical patent/JP2001513293A/en
Application granted granted Critical
Publication of JP4445041B2 publication Critical patent/JP4445041B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B3/00Line transmission systems
    • H04B3/02Details
    • H04B3/20Reducing echo effects or singing; Opening or closing transmitting path; Conditioning for transmission in one direction or the other
    • H04B3/23Reducing echo effects or singing; Opening or closing transmitting path; Conditioning for transmission in one direction or the other using a replica of transmitted signal in the time domain, e.g. echo cancellers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • G06F15/7817Specially adapted for signal processing, e.g. Harvard architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/5443Sum of products

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Algebra (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Cable Transmission Systems, Equalization Of Radio And Reduction Of Echo (AREA)
  • Complex Calculations (AREA)
  • Filters That Use Time-Delay Elements (AREA)

Description

発明の背景
発明の技術分野
本発明は、一般的には電気通信の分野に関し、特に電話システムにおけるエコーキャンセレーションに関する。
関連技術の説明
「エコー」は、電話システムにおいて、送信された音声信号エネルギーの一部が送信機へ反射される時に生じうる現象である。これらの反射は、電話ネットワークのアナログ部分におけるインピーダンス不整合により生じる。エコー源には、例えば、公衆電話交換網(PSTN)の加入者インタフェースにおいて4線式線路を2線式線路に変換するハイブリッド回路、または移動体電話機における音響漏話、のような多くの異なるものがありうる。実質的遅延(例えば、物理距離遅延または処理遅延)を伴うエコーの存在は、処理されている音声信号の品質を著しく劣化させる。
エコーキャンセラは、長距離トラヒック内のエコーを抑制または除去するために、電話システムにおいて通常用いられる装置である。例えば、セルラ公衆地上移動電話網(PLMN)においては、エコーキャンセラは、音声トラヒック内のエコーを抑制または除去するために、移動交換局(MSC)において用いられる。エコーキャンセラはまた、移動体電話機および「ハンドフリー」電話装置においても、音響エコーを補償するために用いられる。現存のエコーキャンセレーション技術の一般的説明は、スウェーデン、ルンド(Lund)大学、電気工学およびコンピュータ科学科、信号処理グループ、ゲンスラ

Figure 0004445041
外著の「コヒーレンスに基づくダブルトーク検出器(A Double Talk Detector Based on Coherence)」と題する論文に見出されうる。
図1は、従来のエコーキャンセラ10の、簡単化された概略ブロック図である。そのようなエコーキャンセラの主要部品は、適応有限インパルス応答(FIR)フィルタ12である。(例えば、ソフトウェアにより実行される)適応アルゴリズムの制御を受けて、フィルタ12は、エコー経路のインパルス応答をモデル化する。一般に、フィルタ12は、最小2乗平均(LMS)アルゴリズムを用いて適応せしめられる。非線形プロセッサ(NLP)14は、入力信号の線形処理の後に残りうる残留エコーを除去するために用いられる。
電話コールに含まれる信号の性質は、非定常的である。従って、エコーキャンセラ10は、一般にダブルトーク検出器(DTD)16を含み、これは、エコー信号対「近端」信号の比が、フィルタ12をさらに適応させてもエコー経路推定がさらに改善されえない値を有する時、適応プロセスを制御し禁止するために用いられる。しかし、エコー経路の変化を追跡しうるためには、あまりに頻繁に適応を禁止することは不可能であり、そのような条件下では、もしエコー信号対雑音の比が悪化すればエコー経路推定のある劣化が起こる。18により示されているブロックは、「遠端」信号x(t)および「近端」信号v(t)の関数としての「所望」信号y(t)を発生する電話システムのエコー源を表す。
この劣化問題に対処するために提案されたデュアルフィルタ構造は、1977年6月の、通信に関するIEEE会報(IEEE Transactions on Communications)、第COM−25巻、第6号に所載の、カズオ・オチアイ(Kazuo Ochiai)外著の「2つのエコー経路モデルを有するエコーキャンセラ(Echo Canceller with Two Echo Path Models)」と題する文献に説明されている。図2に一般的に示されているように、この文献に説明されている技術は、エコーキャンセレーションのために固定フィルタ20を、またエコー経路推定のために適応フィルタ22を用いる。もし適応フィルタ22により、十分によいエコー経路推定を得ることができれば、適応フィルタの係数は固定フィルタ20へコピーされる。従って、もしエコー経路推定が悪化すれば、これらのもっと良い経路がキャンセレーションのために用いられうる。
上述したデュアルフィルタ構造のための制御戦略の改善は、ジョニー・カールセン(Johnny Karlsen)外に対する「適応デュアルフィルタによるエコーキャンセレーションの方法(An Adaptive Dual Filter Echo Cancellation Method)」と題する、権利者を共通とするスウェーデン特許第9503640−6号に開示されている。そこに説明されている方法によれば、両フィルタがエコーキャンセレーションのために用いられ、フィルタの係数は両方向へ転送されうる。この特許は、2つのフィルタ出力eaまたはefのいずれがエコーキャンセラのための出力として用いられるべきであるか、またいつ係数が1つのフィルタから他のフィルタへ転送されるべきであるか、を決定するために用いられる、ある条件を説明している。これらの決定は、関係する信号における電力および相関推定の比較に基づくので、用いられるアルゴリズムは高度にデータに依存するものとなる。
たいていの現存のエコーキャンセラは、中央計算素子として、汎用ディジタル信号プロセッサ(DSP)を用いている。図3には、エコーキャンセレーションのための用いられている一般的な汎用DSPアーキテクチャが示されている。例えば、図3を参照すると、エコーキャンセレーションのために用いられているDSP30は、2つのデータメモリセクション32および34および対応するデータバス32aおよび34aと、アドレスアーキテクチャユニット(AAU)36と、乗算器セクション38と、論理演算装置(ALU)40と、シフタ42と、を含む。
また、オチアイ外の文献においては、エコーキャンセラを、上述の適応アルゴリズムの機能ブロックに対応する計算ブロックから組立てることができた(図2)。しかし、そこに説明されているフィルタ適応技術は、最初はフィルタリングプロセスが行われた後にのみ得られうる現在のエラー信号e(t)の使用に基づいているので、オチアイのアルゴリズムにおける機能ブロックに対応する動作は、とにかく直列に実行されなければならず、顕著な効率は得られない。さらに、そのような機能を実現するために必要なハードウェアの実質的な量も、エコーキャンセラの全体的パフォーマンスを顕著には改善しない。
もし適応エコーキャンセレーションのために「長い」フィルタ(例えば、N=512またはそれ以上)が用いられるならば、比較的多数の計算が行われなければならないので、問題が起こる。その場合には、プロセッサのアーキテクチャを、使用されているアルゴリズムの機能に整合するように最適化することが極めて重要である。同時に、使用されているハードウェアリソースの量を、適度な限度内に保つこともまた重要である。
エコーキャンセレーションのために用いられる汎用DSP(例えば、図3のDSP30)は、2つのデータバス(例えば、32a、34a)のみを有する。従って、そのようなDSPは、クロックサイクル毎に最大2回のメモリアクセス(例えば、メモリセクション32および34のそれぞれに対する1回のアクセス)を行いうるのみである。従って、DSPの計算効率を顕著に低下させる、データ転送のボルトネックが存在した。
例えば、そのようなDSPにより実行されるアルゴリズムにおけるLMS更新方程式は、次のように表される。
hn(t+1)=hn(t)+α(t)xn(t) (1)
ただし、もし基本LMS値が用いられればα(t)=μe(t)であり、もし正規化LMS値が用いられれば、
Figure 0004445041
である。いずれにせよ、α(t)は、それぞれのサンプル間隔における定数乗数である。上記方程式1において、xn(t)は時刻tにおけるn番目の信号サンプルであり、hn(t)は時刻tにおけるn番目の適応フィルタ係数であり、e(t)はエラー信号であり、μはサンプルのステップサイズを表す小さい定数である。
たいていの信号プロセッサにおいては、乗数α(t)は乗数レジスタ内に記憶され、全てのフィルタ係数が更新され終わるまでそこに保持されうる。その後、LMS更新方程式(方程式1)は、メモリセクションからの2回の読取り動作と、係数メモリセクションへの1回の書込み動作と、を必要とする。これらの動作は、単一クロックサイクル中に2つのデータバスによっては行われえず、従って、Nのそれぞれの値における更新を行うために2つのクロックサイクルが必要となる。一般にNは、関係するエコー経路のインパルス応答の長さにより決定される。Nの値としては512が、典型的なエコーキャンセレーションアプリケーションのために極めて一般的に用いられる。しかし、音響エコーキャンセレーションアプリケーションのためには、数千という高い値になりうる。
FIRフィルタによる入力信号のフィルタリングのプロセスは、
Figure 0004445041
のように表され、これは明らかに、出力サンプルy(t)を計算するために、Nの値毎に1つのクロックサイクルを必要とする。前述のデュアルフィルタ技術は、2つのFIRフィルタを用いるので、対応する2つの出力サンプルを計算するためには、Nの値毎に2つのクロックサイクルを必要とすることになる。
2つのFIRフィルタの係数は、信号に依存する制御アルゴリズムにより行われる決定により、一方から他方へコピーされる。上で仮定されたように、もしNの値毎に単一クロックサイクルにより、FIRフィルタリングを行うことが所望されるならば、両フィルタの係数は、一方のメモリセクション内に置かれるべきであり、信号サンプルx(t)は、他方のメモリセクション内に置かれるべきである。この構成は、1つのフィルタ係数のコピー動作が同じメモリセクションへの2回のアクセスを必要とするために、係数のコピー動作がNの値毎に2つのサイクルを要することを意味する。
従って、上述のデュアルフィルタアプローチの完全なフィルタリング部分の最高の複雑性は、汎用DSPにおいては6Nとして測定される。換言すれば、汎用DSPは、フィルタ計算を完成するために6Nサイクルを要する。しかし、この複雑性のレベルは、エコーキャンセラアプリケーションにおいて必要とされる大きいNの値に対しては比較的高く、アルゴリズムの制御部分と、他の必要なエコーキャンセラ機能と、のためには、(たとえあるとしても)比較的小さい処理能力が残されるのみである。
発明の要約
従って、本発明は、エコーキャンセレーションのために用いられるディジタル信号プロセッサの計算時間を最小化することを目的とする。
本発明のもう1つの目的は、エコーキャンセレーションのために用いられるディジタル信号プロセッサにおけるデータ転送のボルトネックを最小化することである。
本発明のさらにもう1つの目的は、エコーキャンセレーションのために用いられるディジタル信号プロセッサの最小2乗平均の更新、フィルタリング、および係数をコピーする計算、の速度を最大化することである。
本発明のさらにもう1つの目的は、効率的な適応デュアルフィルタエコーキャンセラを実現することである。
本発明によれば、以上の目的およびその他の目的は、エコーキャンセレーションの計算のために用いられるディジタル信号プロセッサにより達成され、そのディジタル信号プロセッサは、並列乗算器/加算器と、入力信号サンプルメモリと、行われた計算の結果を一時的に記憶するための複数のアキュムレータと、を含む。従って、計算結果の全てが外部データメモリ内へセーブされなければならないわけではなく、このことが、データ転送のボルトネックを最小化し、ディジタル信号プロセッサの計算効率を顕著に増大させる。それにより、適応フィルタ係数の更新は遥かに高速で計算可能となり、その適応フィルタ係数は、一方のフィルタから他方のフィルタへ遥かに高速でコピーされうる。ディジタル信号プロセッサの計算の複雑度は、従来のディジタル信号プロセッサのそれよりも著しく低い。
【図面の簡単な説明】
本発明の方法および装置の、より完全な理解は、添付図面と共に以下の詳細な説明を参照することにより得られうる。添付図面において、
図1は、従来のエコーキャンセラの簡単化された概略ブロック図であり、
図2は、現存のデュアルフィルタエコーキャンセラの簡単化された概略ブロック図であり、
図3は、エコーキャンセレーションのために用いられてきた一般的な汎用ディジタル信号プロセッサのブロック図であり、
図4は、本発明の実施例により機能するように構成された、エコーキャンセレーションに用いるデュアルフィルタディジタル信号プロセッサのブロック図である。
図面の詳細な説明
本発明の実施例およびその利点は、添付図面の図1から図4までを参照することにより最もよく理解され、諸図の同じ部品および対応する部品に対しては同じ番号が用いられている。
図4は、本発明の実施例により機能するように構成された、エコーキャンセレーションに用いるデュアルフィルタDSPのブロック図である。例えば、専用集積回路(ASIC)により実現されうるこの実施例においては、デュアルフィルタDSP100は、3つの基本計算ユニットと、1対の乗算器/加算器ユニット102/104および106/108と、BビットALU/バレルシフタ110と、を含む。好ましくは、1対の乗算器/加算器ユニットのそれぞれの物理的および電気的特性は、(予期される公差内で)同じとする。これらの計算ユニットの全ては、4つのBビットアキュムレータ112、114、116、および118のセットにより、計算結果の処理および一時記憶のために互いに結合せしめられる。好ましくは、この実施例においては4つのアキュムレータが用いられるが、2つより多くの任意の適切な数のアキュムレータが用いられうる。また、入力信号サンプルを記憶するためのN個のワードメモリ位置を有するサンプルメモリ120も含まれている。入力サンプルは、上述のLMS更新方程式(方程式3)内に示されている式x(t)により表される。注意すべきことは、図4に示されている処理アーキテクチャは好ましくはDSPにより実現されるが、本発明はそのように制限されないように意図されていることである。例えば、図4に示されているアーキテクチャは、図4に関連して前述した機能を十分に行いうる任意の適切な処理装置により実現されうる。
サンプルメモリ120は、レジスタ122を経て乗算器102および106の入力に接続されている。1対のアラインメントユニット124および126は、乗算器102および106のそれぞれの出力に接続され、もし所望ならば、それぞれの乗算結果のいずれもが、アラインメントの目的のために左へ1ビットだけシフトされうる。メモリレジスタのそれぞれの対128、130および132、134は、入力/出力レジスタのそれぞれの対129、131および133、135を経てそれぞれの乗算器102および106に接続されている。メモリレジスタ128、130、132、および134は、データバスによりデータメモリ136および138に接続され、該データバスはそれらの間でデータを転送する。2つのデータメモリ136および138は、図4に示されている実施例においてはDSPコアの外部に配置されているが、データメモリをDSPコアの内部に配置することは本発明の範囲内にある。レジスタ(msr0)140は、BビットALU110に接続され、それは、もし指定されたならば、該ALUがシフトすべきビット位置の数を示すために用いられる。
動作に際しては、処理されるべき入力信号サンプル(例えば、N個のワード)がサンプルメモリ120内に記憶される。全ての他のデータ変数は、データメモリ136および138内に記憶される。それぞれのサンプル間隔中において、サンプルメモリ120内の最も古い入力信号サンプルは、得られた最も新しいサンプルにより置換される。好ましくは、サンプルメモリのアクセスには、循環形増加後アドレス指定(circular post−increment addressing)モードを用いる。
メモリレジスタ128、130、132、134内の全てのビットは、データメモリ136および138の双方からロードすることができ、あるいはデータメモリ136および138の双方へ記憶させうる。メモリレジスタとデータメモリとを接続するデータバスは、bビットの幅を有し、このbは、信号サンプルおよびフィルタ係数を適切に表すために必要な数である。この実施例においては、アキュムレータ112、114、116、118およびALU110は、含まれる変数のB≧2b+log2Nビット表示を可能にするように設計されている。このBビットの選択は、使用されているプロセッサが固定小数点演算で動作していることを仮定している。もし浮動小数点計算ユニットが用いられるべきであれば、b=Bを用いることが自然な選択となる。しかし、好ましくは固定小数点装置であるこの実施例(図4)においては、値b=16およびB=40を用いうる。
この実施例においては、基本的に、図4に示されているデュアルフィルタエコーキャンセラDSPにより行われる3つの動作が存在する。すなわち、(1)係数の更新、(2)フィルタリング、および(3)係数のコピーイングである。好ましくは、両フィルタの係数は、2つのデータメモリ136および138へ平等に分割される。例えば、適応フィルタの奇数インデックスを有する係数は、第1のデータメモリ136内へ記憶され、適応フィルタの偶数インデックスを有する係数は、第2のデータメモリ138内へ記憶されることができ、あるいはこの逆に記憶されることができる。この例においては、固定フィルタの偶数インデックスを有する係数は第1のデータメモリ136内へ記憶され、固定フィルタの奇数インデックスを有する係数は第2のデータメモリ138内へ記憶される。入力信号サンプルxnは、サンプルメモリ120内へ記憶される。
DSPが、更新ループを開始する前に係数更新動作を行うためには、定数乗数α(t)を一方のデータメモリ(例えば、136)から検索し、例えば、mx0レジスタ128内に記憶することができる。また、第1係数h0(t)は、そのデータメモリから検索し、アキュムレータの1つ(例えば、ma0すなわち112)に記憶することができる。次に、係数更新ループの第1サイクル中に、第2係数を第2データメモリ(例えば、138)から検索し、もう1つのアキュムレータ(例えば、ma1すなわち114)に記憶することができる。同じサイクル中に、乗算器102は、サンプルメモリ120からの第1データサンプルに、mx0レジスタ128からの定数α(t)を乗算する。Bビット加算器104は、この乗算の積を、アキュムレータ(ma0)112からの第1係数に加算し、結果をその同じアキュムレータに記憶させる。
係数更新ループの第2サイクル中には、第3係数が第1データメモリ136から読取られて、アキュムレータ(例えば、ma2すなわち116)に記憶される。また、同じサイクル中に、乗算器102は、サンプルメモリ120からの第2データサンプルに、レジスタmx0からの定数α(t)を乗算する。Bビット加算器104は、この乗算の積を、アキュムレータ(ma1)114からの第2係数に加算し、結果をその同じアキュムレータに記憶させる。
係数更新ループの第3サイクル中には、第4係数が第2データメモリ138から読取られて、アキュムレータ(例えば、ma3すなわち118)に記憶される。また、同じサイクル中に、乗算器102は、サンプルメモリ120からの第3データサンプルに、レジスタmx0からの定数α(t)を乗算する。Bビット加算器104は、この乗算の積を、アキュムレータ(ma2)116からの第3係数に加算し、結果をその同じアキュムレータに記憶させる。さらに、このサイクル中に、アキュムレータ(ma0)112から第1の更新された係数が、第1のデータメモリ136内の、第1係数の原位置に記憶される。次に、上述の動作が、データメモリ内の全てのフィルタ係数が更新され終わるまで繰返される。
DSPがそれぞれのクロックサイクル中にフィルタリング動作を行うために、1つの固定フィルタ係数および対応する適応フィルタ係数が、それぞれのデータメモリ位置から読取られ、例えば、mx0およびmx1レジスタ内に記憶される。同時に、前に記憶された固定フィルタ係数および適応フィルタ係数が、mx0およびmx1レジスタから読取られ、それぞれの乗算器102および106により、サンプルメモリ120からの対応する信号サンプルと乗算される。それぞれの結果は、2つのアキュムレータ(例えば、ma0およびma1)に格納され、累算される。
従って、本発明によれば、固定フィルタおよび適応フィルタの対応する係数は異なるデータメモリ内に記憶されうるので、これらの係数は、追加の遅延を生じることなく一時に1つコピーされうる。さらに、適応デュアルフィルタによるエコーキャンセレーションアルゴリズムにおける全ての基本動作(すなわち、LMS係数更新、2つのフィルタからの出力信号の計算、および係数のコピーイング)は、図4に示されているDSPアーキテクチャを用い、サンプル毎に1クロックサイクル以内に行われうる。そのようなわけで、図4に示されているDSPアーキテクチャの計算上の複雑性は、現存の汎用エコーキャンセレーションDSPにおける計算上の複雑性が6Nであるのに反し、3Nにすぎない。
注目すべきこととして、図4に示されているような1対の乗算器/加算器の組合せの使用はまた、デュアルフィルタの動作を制御し且つ必要な比較を行うために用いられる、電力および相関の推定を効率的に計算するためのプラットホームをも与える。また、効率の観点から、BビットALU110は、例えば、図1に示されているNLPおよびDTD機能のような、他のエコーキャンセラ機能を処理するために用いられうる。さらに、複数(例えば、4つ)のアキュムレータの使用は、計算動作の中間結果の記憶において、実質的な計算上の柔軟性を与え、これはデータメモリに対して行われるアクセスの数を顕著に減少させる。
本発明の方法および装置の実施例を、添付図面に示し、また以上の詳細な説明において説明したが、本発明は、開示した実施例へ制限されるものではなく、以下の請求の範囲により提示され且つ定められる本発明の精神から逸脱することなく、多くの再構成、改変、および置換が可能であることを理解すべきである。Background of the Invention
TECHNICAL FIELD OF THE INVENTION The present invention relates generally to the field of telecommunications, and more particularly to echo cancellation in a telephone system.
Description of Related Art “Echo” is a phenomenon that can occur in a telephone system when some of the transmitted audio signal energy is reflected back to the transmitter. These reflections are caused by impedance mismatches in the analog part of the telephone network. Echo sources include many different ones such as, for example, a hybrid circuit that converts a 4-wire line to a 2-wire line at a public switched telephone network (PSTN) subscriber interface, or acoustic crosstalk in a mobile telephone. It is possible. The presence of echoes with substantial delay (eg, physical distance delay or processing delay) significantly degrades the quality of the audio signal being processed.
An echo canceller is a device commonly used in telephone systems to suppress or eliminate echoes in long distance traffic. For example, in the cellular public land mobile telephone network (PLMN), echo cancellers are used in mobile switching centers (MSCs) to suppress or remove echoes in voice traffic. Echo cancellers are also used in mobile phones and “hands free” telephone devices to compensate for acoustic echo. A general description of existing echo cancellation techniques can be found in the University of Lund, Sweden, Department of Electrical Engineering and Computer Science, Signal Processing Group, Gensla
Figure 0004445041
It can be found in a paper entitled “A Double Talk Detector Based on Coherence”.
FIG. 1 is a simplified schematic block diagram of a conventional echo canceller 10. The main component of such an echo canceller is an adaptive finite impulse response (FIR) filter 12. Under the control of an adaptive algorithm (e.g., implemented by software), the filter 12 models the impulse response of the echo path. In general, the filter 12 is adapted using a least mean square (LMS) algorithm. A non-linear processor (NLP) 14 is used to remove residual echo that may remain after linear processing of the input signal.
The nature of the signals included in telephone calls is non-stationary. Accordingly, the echo canceller 10 generally includes a double talk detector (DTD) 16 that may further improve the echo path estimation even if the ratio of the echo signal to the “near end” signal further adapts the filter 12. Used to control and inhibit the adaptation process when it has no value. However, in order to be able to track changes in the echo path, it is impossible to prohibit adaptation too often. Under such conditions, if the ratio of the echo signal to noise deteriorates, the echo path estimation Some degradation occurs. The block indicated by 18 represents the echo source of the telephone system that generates the “desired” signal y (t) as a function of the “far end” signal x (t) and the “near end” signal v (t). .
The dual filter structure proposed to deal with this degradation problem is Kazuo Ochiai, described in the June 1977 IEEE Transactions on Communications, Vol. 25, No. 6. (Kazuo Ochiai), described in a document entitled “Echo Canceller with Two Echo Path Models”. As generally shown in FIG. 2, the technique described in this document uses a fixed filter 20 for echo cancellation and an adaptive filter 22 for echo path estimation. If the adaptive filter 22 can obtain a sufficiently good echo path estimate, the coefficients of the adaptive filter are copied to the fixed filter 20. Thus, if the echo path estimation deteriorates, these better paths can be used for cancellation.
The improvement of the control strategy for the dual filter structure described above is common to the right holders entitled “An Adaptive Dual Filter Echo Cancellation Method” outside Johnny Karlsen. Swedish Patent No. 9503640-6. According to the method described there, both filters are used for echo cancellation and the coefficients of the filters can be transferred in both directions. Is this patent, which of the two filter outputs e a or e f should or should be used as an output for the echo canceller, also has time coefficients are transferred from one filter to another filter, Explains certain conditions used to determine. Since these decisions are based on a comparison of power and correlation estimates in the signals involved, the algorithm used is highly data dependent.
Most existing echo cancellers use a general purpose digital signal processor (DSP) as a central computing element. FIG. 3 shows a typical general-purpose DSP architecture that is used for echo cancellation. For example, referring to FIG. 3, the DSP 30 used for echo cancellation includes two data memory sections 32 and 34 and corresponding data buses 32a and 34a, an address architecture unit (AAU) 36, a multiplier. A section 38, an arithmetic logic unit (ALU) 40, and a shifter 42 are included.
Further, in the literature outside Ochiai, an echo canceller could be assembled from calculation blocks corresponding to the functional blocks of the adaptive algorithm described above (FIG. 2). However, the filter adaptation technique described therein is based on the use of the current error signal e (t) that can only be obtained after the filtering process has been performed, so it corresponds to the functional block in the Ochiai algorithm. The operations to be performed must be performed serially anyway, and no significant efficiency is obtained. Furthermore, the substantial amount of hardware required to implement such a function does not significantly improve the overall performance of the echo canceller.
If a “long” filter (eg, N = 512 or higher) is used for adaptive echo cancellation, a problem arises because a relatively large number of calculations must be performed. In that case, it is crucial to optimize the processor architecture to match the function of the algorithm being used. At the same time, it is also important to keep the amount of hardware resources used within reasonable limits.
A general purpose DSP (eg, DSP 30 in FIG. 3) used for echo cancellation has only two data buses (eg, 32a, 34a). Thus, such a DSP can only perform up to two memory accesses (eg, one access to each of memory sections 32 and 34) per clock cycle. Therefore, there has been a data transfer bolt neck that significantly reduces the DSP computational efficiency.
For example, the LMS update equation in an algorithm executed by such a DSP is expressed as follows:
h n (t + 1) = h n (t) + α (t) x n (t) (1)
However, if a basic LMS value is used, α (t) = μe (t), and if a normalized LMS value is used,
Figure 0004445041
It is. In any case, α (t) is a constant multiplier at each sample interval. In Equation 1 above, x n (t) is the n th signal sample at time t, h n (t) is the n th adaptive filter coefficient at time t, e (t) is the error signal, μ is a small constant representing the step size of the sample.
In most signal processors, the multiplier α (t) is stored in the multiplier register and can be held there until all filter coefficients have been updated. The LMS update equation (Equation 1) then requires two read operations from the memory section and one write operation to the coefficient memory section. These operations cannot be performed by two data buses during a single clock cycle, and therefore two clock cycles are required to perform an update at each value of N. In general, N is determined by the length of the impulse response of the relevant echo path. A value of N, 512, is very commonly used for typical echo cancellation applications. However, it can be as high as several thousand for acoustic echo cancellation applications.
The process of filtering the input signal with the FIR filter is:
Figure 0004445041
Which clearly requires one clock cycle for every value of N to compute the output sample y (t). Since the dual filter technique described above uses two FIR filters, it would require two clock cycles for every N values to calculate the corresponding two output samples.
The coefficients of the two FIR filters are copied from one to the other by a decision made by a signal dependent control algorithm. As assumed above, if it is desired to perform FIR filtering with a single clock cycle every N values, the coefficients of both filters should be placed in one memory section; The signal sample x (t) should be placed in the other memory section. This configuration means that the coefficient copy operation requires two cycles for each value of N because a filter coefficient copy operation requires two accesses to the same memory section.
Thus, the highest complexity of the complete filtering portion of the dual filter approach described above is measured as 6 * N in a general purpose DSP. In other words, a general purpose DSP requires 6 * N cycles to complete the filter calculation. However, this level of complexity is relatively high for the large N values required in echo canceller applications, and for the control part of the algorithm and other required echo canceller functions, ( Only relatively little processing power remains (if any).
SUMMARY OF THE INVENTION Accordingly, the present invention aims to minimize the computation time of a digital signal processor used for echo cancellation.
Another object of the present invention is to minimize data transfer bolt necks in digital signal processors used for echo cancellation.
Yet another object of the present invention is to maximize the speed of the least mean square update, filtering, and calculation copying coefficients of the digital signal processor used for echo cancellation.
Yet another object of the present invention is to implement an efficient adaptive dual filter echo canceller.
In accordance with the present invention, these and other objectives are achieved by a digital signal processor used for echo cancellation computation, which comprises a parallel multiplier / adder, an input signal sample memory And a plurality of accumulators for temporarily storing the results of the calculations performed. Thus, not all of the computational results must be saved in the external data memory, which minimizes data transfer bolt necks and significantly increases the computational efficiency of the digital signal processor. Thereby, the update of the adaptive filter coefficient can be calculated much faster, and the adaptive filter coefficient can be copied from one filter to the other filter much faster. The computational complexity of digital signal processors is significantly lower than that of conventional digital signal processors.
[Brief description of the drawings]
A more complete understanding of the method and apparatus of the present invention can be obtained by reference to the following detailed description in conjunction with the accompanying drawings. In the accompanying drawings,
FIG. 1 is a simplified schematic block diagram of a conventional echo canceller,
FIG. 2 is a simplified schematic block diagram of an existing dual filter echo canceller,
FIG. 3 is a block diagram of a general purpose digital signal processor that has been used for echo cancellation,
FIG. 4 is a block diagram of a dual filter digital signal processor for use in echo cancellation configured to function in accordance with an embodiment of the present invention.
DETAILED DESCRIPTION OF THE DRAWINGS Embodiments of the present invention and their advantages are best understood by referring to FIGS. 1-4 of the accompanying drawings, in which like reference numerals refer to like parts and corresponding parts of the figures. It is used.
FIG. 4 is a block diagram of a dual filter DSP used for echo cancellation configured to function according to an embodiment of the present invention. For example, in this embodiment, which may be implemented by a dedicated integrated circuit (ASIC), the dual filter DSP 100 includes three basic computing units, a pair of multiplier / adder units 102/104 and 106/108, and a B bit. ALU / barrel shifter 110. Preferably, the physical and electrical characteristics of each of the pair of multiplier / adder units are the same (within expected tolerances). All of these calculation units are coupled together for processing and temporary storage of calculation results by a set of four B-bit accumulators 112, 114, 116, and 118. Preferably, four accumulators are used in this embodiment, but any suitable number of accumulators greater than two may be used. A sample memory 120 having N word memory locations for storing input signal samples is also included. The input sample is represented by the equation x (t) shown in the above LMS update equation (Equation 3). It should be noted that while the processing architecture shown in FIG. 4 is preferably implemented by a DSP, the present invention is not intended to be so limited. For example, the architecture shown in FIG. 4 may be implemented by any suitable processing device that can fully perform the functions described above in connection with FIG.
The sample memory 120 is connected to the inputs of the multipliers 102 and 106 via a register 122. A pair of alignment units 124 and 126 are connected to the respective outputs of multipliers 102 and 106, and if desired, any of the respective multiplication results are shifted left by one bit for alignment purposes. sell. Each pair of memory registers 128, 130 and 132, 134 is connected to a respective multiplier 102 and 106 via a respective input / output register pair 129, 131 and 133, 135. Memory registers 128, 130, 132, and 134 are connected to data memories 136 and 138 by data buses, which transfer data between them. Although the two data memories 136 and 138 are located outside the DSP core in the embodiment shown in FIG. 4, it is within the scope of the present invention to place the data memory inside the DSP core. . Register (msr0) 140 is connected to a B-bit ALU 110, which, if specified, is used to indicate the number of bit positions that the ALU should shift.
In operation, input signal samples (eg, N words) to be processed are stored in sample memory 120. All other data variables are stored in data memories 136 and 138. During each sample interval, the oldest input signal sample in sample memory 120 is replaced with the newest sample obtained. Preferably, a cyclic post-increment addressing mode is used for accessing the sample memory.
All bits in memory registers 128, 130, 132, 134 can be loaded from both data memories 136 and 138, or can be stored in both data memories 136 and 138. The data bus connecting the memory register and the data memory has a width of b bits, where b is the number necessary to properly represent the signal samples and filter coefficients. In this embodiment, accumulators 112, 114, 116, 118 and ALU 110 are designed to allow B ≧ 2b + log 2 N-bit representation of the included variables. This selection of the B bit assumes that the processor being used is operating in fixed point arithmetic. If a floating point arithmetic unit is to be used, it is a natural choice to use b = B. However, in this embodiment (FIG. 4), which is preferably a fixed point device, the values b = 16 and B = 40 can be used.
In this embodiment, there are basically three operations performed by the dual filter echo canceller DSP shown in FIG. That is, (1) coefficient update, (2) filtering, and (3) coefficient copying. Preferably, the coefficients of both filters are equally divided into two data memories 136 and 138. For example, coefficients having an odd index of the adaptive filter may be stored in the first data memory 136, coefficients having an even index of the adaptive filter may be stored in the second data memory 138, or The reverse can be stored. In this example, coefficients having an even index of the fixed filter are stored in the first data memory 136, and coefficients having an odd index of the fixed filter are stored in the second data memory 138. The input signal sample x n is stored in the sample memory 120.
In order for the DSP to perform the coefficient update operation before starting the update loop, the constant multiplier α (t) may be retrieved from one data memory (eg, 136) and stored in the mx0 register 128, for example. it can. Also, the first coefficient h 0 (t) can be retrieved from its data memory and stored in one of the accumulators (eg, ma0 or 112). Then, during the first cycle of the coefficient update loop, the second coefficient can be retrieved from the second data memory (eg, 138) and stored in another accumulator (eg, ma1 or 114). During the same cycle, multiplier 102 multiplies the first data sample from sample memory 120 by a constant α (t) from mx0 register 128. The B-bit adder 104 adds the product of the multiplication to the first coefficient from the accumulator (ma0) 112, and stores the result in the same accumulator.
During the second cycle of the coefficient update loop, the third coefficient is read from the first data memory 136 and stored in an accumulator (eg, ma2 or 116). Also, during the same cycle, the multiplier 102 multiplies the second data sample from the sample memory 120 by the constant α (t) from the register mx0. The B-bit adder 104 adds the product of the multiplication to the second coefficient from the accumulator (ma1) 114 and stores the result in the same accumulator.
During the third cycle of the coefficient update loop, the fourth coefficient is read from the second data memory 138 and stored in an accumulator (eg, ma3 or 118). Also, during the same cycle, the multiplier 102 multiplies the third data sample from the sample memory 120 by a constant α (t) from the register mx0. The B-bit adder 104 adds the product of the multiplication to the third coefficient from the accumulator (ma2) 116 and stores the result in the same accumulator. Further, during this cycle, the first updated coefficient from accumulator (ma0) 112 is stored in the first data memory 136 at the original position of the first coefficient. The above operation is then repeated until all filter coefficients in the data memory have been updated.
In order for the DSP to perform the filtering operation during each clock cycle, one fixed filter coefficient and the corresponding adaptive filter coefficient are read from the respective data memory locations and stored, for example, in mx0 and mx1 registers. At the same time, previously stored fixed filter coefficients and adaptive filter coefficients are read from the mx0 and mx1 registers and multiplied by corresponding signal samples from the sample memory 120 by respective multipliers 102 and 106. Each result is stored in two accumulators (eg, ma0 and ma1) and accumulated.
Thus, according to the present invention, the corresponding coefficients of the fixed filter and the adaptive filter can be stored in different data memories, so that these coefficients can be copied one at a time without any additional delay. In addition, all basic operations in the echo cancellation algorithm with an adaptive dual filter (ie, LMS coefficient update, calculation of the output signal from the two filters, and coefficient copying) can be performed using the DSP architecture shown in FIG. And can be done within one clock cycle per sample. As such, the computational complexity of the DSP architecture shown in FIG. 4 is 3 * N, whereas the computational complexity of the existing general purpose echo cancellation DSP is 6 * N. Only.
It should be noted that the use of a pair of multiplier / adder combinations as shown in FIG. 4 also controls the operation of the dual filter and the power and power used to make the necessary comparisons. It also provides a platform for efficiently calculating correlation estimates. Also, from an efficiency perspective, the B-bit ALU 110 can be used to process other echo canceller functions, such as, for example, the NLP and DTD functions shown in FIG. In addition, the use of multiple (eg, four) accumulators provides substantial computational flexibility in storing intermediate results of computation operations, which significantly increases the number of accesses made to data memory. Decrease.
While embodiments of the method and apparatus of the present invention have been illustrated in the accompanying drawings and described in the foregoing detailed description, the present invention is not limited to the disclosed embodiments, but is presented by the following claims. It should be understood that many rearrangements, modifications, and substitutions are possible without departing from the spirit of the invention as defined and defined.

Claims (17)

適応フィルタと固定フィルタとを含むデュアルフィルタを用いてエコーキャンセルを行うデュアルフィルタ・エコーキャンセラであって、
前記適応フィルタ及び前記固定フィルタの係数をそれぞれ分割して記憶する複数のデータメモリと、
前記適応フィルタと前記固定フィルタとを実現するディジタル信号プロセッサであって、係数の更新、フィルタリング、前記適応フィルタ-前記固定フィルタ間での係数コピーを含む適応デュアルフィルタ・エコーキャンセル・アルゴリズムにより、1入力信号サンプルを1クロックサイクルで処理するように構成されたディジタル信号プロセッサを備え、
前記ディジタル信号プロセッサは、
前記入力信号サンプルを記憶するためのサンプルメモリと、
複数の乗算器であって、該複数の乗算器のそれぞれの乗算器の第1入力が前記サンプルメモリの出力に結合し、第2入力が前記複数のデータメモリと結合している、複数の乗算器と、
複数の加算器であって、前記複数の乗算器のそれぞれの出力が前記複数の加算器の少なくとも1つに結合している、複数の加算器と、
複数の一時記憶装置であって、該複数の一時記憶装置のそれぞれの入力および出力が、前記複数の乗算器および前記複数の加算器の少なくとも1つに選択的に結合される、複数の一時記憶装置と、
を含み、
前記ディジタル信号プロセッサは、
前記フィルタリング処理の各クロックサイクル中に、前記固定フィルタ及び前記適応フィルタの係数をそれぞれ前記複数のデータメモリから取り出して、前記複数の乗算器で、前記サンプルメモリからの対応する信号サンプルと乗算し、当該乗算結果をそれぞれ前記複数の一時記憶装置に累積格納する
ことを特徴とするデュアルフィルタ・エコーキャンセラ。
A dual filter echo canceller that performs echo cancellation using a dual filter including an adaptive filter and a fixed filter,
A plurality of data memories for storing the coefficients of the adaptive filter and the fixed filter separately;
A digital signal processor that implements the adaptive filter and the fixed filter, with one input by an adaptive dual filter echo cancellation algorithm that includes coefficient updating, filtering, and coefficient copying between the adaptive filter and the fixed filter and a digital signal processor configured to process the signal samples in one clock cycle,
The digital signal processor comprises:
A sample memory for storing the input signal samples;
A plurality of multipliers, wherein a first input of each of the plurality of multipliers is coupled to an output of the sample memory and a second input is coupled to the plurality of data memories. And
A plurality of adders, each output of the plurality of multipliers coupled to at least one of the plurality of adders;
A plurality of temporary storage devices, wherein respective inputs and outputs of the plurality of temporary storage devices are selectively coupled to at least one of the plurality of multipliers and the plurality of adders. Equipment,
Only including,
The digital signal processor comprises:
During each clock cycle of the filtering process, the coefficients of the fixed filter and the adaptive filter are respectively extracted from the plurality of data memories, and the plurality of multipliers multiply the corresponding signal samples from the sample memory, The dual filter / echo canceller characterized by accumulating and storing the multiplication results in the plurality of temporary storage devices .
前記複数のデータメモリは、前記ディジタル信号プロセッサのコアの内部に設けられることを特徴とする請求項1に記載のデュアルフィルタ・エコーキャンセラ。 The plurality of data memory, a dual filter echo canceller according to claim 1, characterized in that the al provided within the core of the digital signal processor. 前記複数のデータメモリは、前記ディジタル信号プロセッサのコアの外部に設けられることを特徴とする請求項1に記載のデュアルフィルタ・エコーキャンセラ。 The plurality of data memory, a dual filter echo canceller according to claim 1, characterized in that the al located outside of the core of the digital signal processor. 前記複数のデータメモリ装置のそれぞれが、前記複数の一時記憶装置の少なくとも1つに結合していることを特徴とする請求項に記載のデュアルフィルタ・エコーキャンセラ。Wherein each of the plurality of data memory devices, dual filter echo canceller according to claim 1, characterized in that attached to at least one of said plurality of temporary memory. 前記ディジタル信号プロセッサは、論理演算装置をさらに含み、該論理演算装置の入力および出力が、前記複数の一時記憶装置と、前記複数の乗算器と、前記複数の加算器とのうちの少なくとも1つに選択的に結合されることを特徴とする請求項1に記載のデュアルフィルタ・エコーキャンセラ。The digital signal processor further includes a logical operation device, and an input and an output of the logical operation device are at least one of the plurality of temporary storage devices, the plurality of multipliers, and the plurality of adders. The dual filter echo canceller according to claim 1, wherein the dual filter echo canceller is selectively coupled. 前記ディジタル信号プロセッサは、前記適応デュアルフィルタ・エコーキャンセル・アルゴリズムの制御部により要求される演算を実行するためのバレルシフタ及び論理演算装置を更に含み、前記バレルシフタ及び論理演算装置はそれぞれ、前記複数の一時記憶装置のうちの少なくとも1つに結合されることを特徴とする請求項1に記載のデュアルフィルタ・エコーキャンセラ。The digital signal processor further includes a barrel shifter and a logical operation device for executing an operation required by the control unit of the adaptive dual filter echo cancellation algorithm, and each of the barrel shifter and the logical operation device includes the plurality of temporary operations. The dual filter echo canceller of claim 1, wherein the dual filter echo canceller is coupled to at least one of the storage devices. 前記複数の一時記憶装置のそれぞれはアキュムレータを含むことを特徴とする請求項1に記載のデュアルフィルタ・エコーキャンセラ。The dual filter echo canceller according to claim 1, wherein each of the plurality of temporary storage devices includes an accumulator. 前記複数の乗算器は2つの乗算器で構成されることを特徴とする請求項1に記載のデュアルフィルタ・エコーキャンセラ。The dual filter / echo canceller according to claim 1, wherein the plurality of multipliers includes two multipliers. 前記複数の加算器は2つの加算器で構成されることを特徴とする請求項1に記載のデュアルフィルタ・エコーキャンセラ。The dual filter / echo canceller according to claim 1, wherein the plurality of adders includes two adders. 前記複数の一時記憶装置は4つのアキュムレータで構成されることを特徴とする請求項1に記載のデュアルフィルタ・エコーキャンセラ。The dual filter echo canceller according to claim 1, wherein the plurality of temporary storage devices include four accumulators. 前記入力信号サンプルは遠端話者の音声信号を含むことを特徴とする請求項1に記載のデュアルフィルタ・エコーキャンセラ。The dual filter echo canceller according to claim 1, wherein the input signal sample includes a voice signal of a far-end speaker. 前記電話システムは、移動通信交換局又は移動電話を含むことを特徴とする請求項1に記載のデュアルフィルタ・エコーキャンセラ。2. The dual filter echo canceller according to claim 1, wherein the telephone system includes a mobile communication switching center or a mobile telephone. 適応フィルタ及び固定フィルタの係数をそれぞれ分割して記憶する複数のデータメモリと、
ディジタル信号プロセッサであって、
入力信号サンプルを記憶するためのサンプルメモリと、
複数の乗算器であって、該複数の乗算器のそれぞれの乗算器の第1入力が前記サンプルメモリの出力に結合し、第2入力が前記複数のデータメモリと結合している、複数の乗算器と、
複数の加算器であって、前記複数の乗算器のそれぞれの出力が前記複数の加算器の少なくとも1つに結合している、複数の加算器と、
複数の一時記憶装置であって、該複数の一時記憶装置のそれぞれの入力および出力が、前記複数の乗算器および前記複数の加算器の少なくとも1つに選択的に結合される、複数の一時記憶装置と、
を含み、適応フィルタ及び固定フィルタをそれぞれ実現し、適応デュアルフィルタ・エコーキャンセル・アルゴリズムによって、1入力信号サンプルを1クロックサイクルで処理するように構成されたディジタル信号プロセッサを含むエコーキャンセラを用いて、エコーをキャンセルする方法であって、
前記適応フィルタの第1の出力信号を計算する計算ステップと、
前記第1の出力信号の出力に応答して、前記適応フィルタの係数を更新する更新ステップと、
前記適応フィルタの前記更新された係数を前記固定フィルタにコピーする、又は、前記固定フィルタの固定の係数を前記適応フィルタにコピーするコピーステップと、
を有し、
前記計算ステップは、各クロックサイクル中に、前記固定フィルタ及び前記適応フィルタの係数をそれぞれ前記第1及び第2データメモリから取り出して、前記第1及び第2乗算器で、前記サンプルメモリからの対応する信号サンプルと乗算し、当該乗算結果をそれぞれ前記複数の一時記憶装置に累積格納するステップを含む
ことを特徴とする方法。
A plurality of data memories for storing the coefficients of the adaptive filter and the fixed filter separately;
A digital signal processor,
A sample memory for storing input signal samples;
A plurality of multipliers, wherein a first input of each of the plurality of multipliers is coupled to an output of the sample memory and a second input is coupled to the plurality of data memories. And
A plurality of adders, each output of the plurality of multipliers coupled to at least one of the plurality of adders;
A plurality of temporary storage devices, wherein respective inputs and outputs of the plurality of temporary storage devices are selectively coupled to at least one of the plurality of multipliers and the plurality of adders. Equipment,
Hints, to achieve an adaptive filter and a fixed filter, respectively, by the adaptive dual filter echo cancellation algorithm, using an echo canceller including a digital signal processor configured to process the first input signal sample in one clock cycle A method of canceling echo,
Calculating a first output signal of the adaptive filter;
An updating step of updating coefficients of the adaptive filter in response to the output of the first output signal;
Copying the updated coefficients of the adaptive filter to the fixed filter, or copying fixed coefficients of the fixed filter to the adaptive filter;
I have a,
The calculating step retrieves the coefficients of the fixed filter and the adaptive filter from the first and second data memories, respectively, in each clock cycle, and responds from the sample memory with the first and second multipliers. And multiplying the signal samples to be accumulated, and accumulating and storing the multiplication results respectively in the plurality of temporary storage devices .
前記更新ステップは、
複数の入力信号サンプルを前記サンプルメモリに格納するステップと、
第1記憶位置に定数乗数値を格納するステップと、
第1データメモリ位置から第1フィルタ係数値を検索するステップと、
前記第1フィルタ係数値を前記複数の一時記憶装置の第1一時記憶位置に格納するステップと、
第2データメモリ位置から第2フィルタ係数値を検索するステップと、
前記第2フィルタ係数値を前記複数の一時記憶装置の第2一時記憶位置に格納するステップと、
前記複数の入力信号サンプルの第1入力信号サンプル値に前記定数乗数値を乗算するステップと、
該乗算の結果を前記第1フィルタ係数値に加算し、該加算の結果を前記第1一時記憶位置に格納するステップと、
を含むことを特徴とする請求項1に記載の方法。
The updating step includes
Storing a plurality of input signal samples in the sample memory;
Storing a constant multiplier value in a first storage location;
Retrieving a first filter coefficient value from a first data memory location;
Storing the first filter coefficient value in a first temporary storage location of the plurality of temporary storage devices;
Retrieving a second filter coefficient value from a second data memory location;
Storing the second filter coefficient value in a second temporary storage location of the plurality of temporary storage devices;
Multiplying a first input signal sample value of the plurality of input signal samples by the constant multiplier value;
Adding the result of the multiplication to the first filter coefficient value and storing the result of the addition in the first temporary storage location;
The method of claim 1 3, characterized in that it comprises a.
前記更新ステップは、
第3フィルタ係数値を第3データメモリ位置から検索するステップと、
前記第3フィルタ係数値を前記複数の一時記憶装置の第3一時記憶位置に格納し、前記複数の入力信号サンプルの第2入力信号サンプルに前記定数乗数値を乗算するステップと、
該乗算の結果を前記第2フィルタ係数値に加算し、該加算の結果を前記第2一時記憶位置に格納するステップと、
をさらに含むことを特徴とする請求項1に記載の方法。
The updating step includes
Retrieving a third filter coefficient value from a third data memory location;
Storing the third filter coefficient value in a third temporary storage location of the plurality of temporary storage devices and multiplying the second input signal sample of the plurality of input signal samples by the constant multiplier value;
Adding the result of the multiplication to the second filter coefficient value, and storing the result of the addition in the second temporary storage location;
The method of claim 1 4, characterized in that it further comprises a.
前記更新ステップは、
第4フィルタ係数値を第4データメモリ位置から検索するステップと、
前記第4フィルタ係数値を前記複数の一時記憶装置の第4一時記憶位置に格納し、前記複数の入力信号サンプルの第3入力信号サンプルに前記定数乗数値を乗算するステップと、
該乗算の結果を前記第3フィルタ係数値に加算し、該加算の結果を前記第3一時記憶位置に格納するステップと、
前記第1一時記憶位置に格納されているデータを前記第1データメモリ位置に格納するステップと、
をさらに含むことを特徴とする請求項1に記載の方法。
The updating step includes
Retrieving a fourth filter coefficient value from a fourth data memory location;
Storing the fourth filter coefficient value in a fourth temporary storage location of the plurality of temporary storage devices, and multiplying a third input signal sample of the plurality of input signal samples by the constant multiplier value;
Adding the result of the multiplication to the third filter coefficient value and storing the result of the addition in the third temporary storage location;
Storing the data stored in the first temporary storage location in the first data memory location;
The method of claim 1 5 further comprising a.
前記第1一時記憶位置、第2一時記憶位置、第3一時記憶位置、および第4一時記憶位置はそれぞれアキュムレータで構成されることを特徴とする請求項1に記載の方法。The method according to claim 16 , wherein each of the first temporary storage position, the second temporary storage position, the third temporary storage position, and the fourth temporary storage position includes an accumulator.
JP53758298A 1997-02-28 1998-02-26 Echo cancellation with adaptive dual filter Expired - Lifetime JP4445041B2 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/810,601 US5933797A (en) 1997-02-28 1997-02-28 Adaptive dual filter echo cancellation
US08/810,601 1997-02-28
PCT/SE1998/000349 WO1998038582A1 (en) 1997-02-28 1998-02-26 Adaptive dual filter echo cancellation

Publications (2)

Publication Number Publication Date
JP2001513293A JP2001513293A (en) 2001-08-28
JP4445041B2 true JP4445041B2 (en) 2010-04-07

Family

ID=25204205

Family Applications (1)

Application Number Title Priority Date Filing Date
JP53758298A Expired - Lifetime JP4445041B2 (en) 1997-02-28 1998-02-26 Echo cancellation with adaptive dual filter

Country Status (8)

Country Link
US (1) US5933797A (en)
JP (1) JP4445041B2 (en)
CN (1) CN1126049C (en)
AU (1) AU6642498A (en)
DE (1) DE19882141B4 (en)
GB (1) GB2341067B (en)
MY (1) MY122103A (en)
WO (1) WO1998038582A1 (en)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2758677B1 (en) * 1997-01-21 1999-04-02 Matra Communication ECHO CANCELLATION METHOD AND ECHO CANCELER IMPLEMENTING SUCH A METHOD
US6279020B1 (en) * 1997-12-23 2001-08-21 U.S. Philips Corporation Programmable circuit for realizing a digital filter
DE69832985T2 (en) * 1998-10-06 2006-08-17 Texas Instruments Inc., Dallas Multiply-accumulator circuits
US6571268B1 (en) 1998-10-06 2003-05-27 Texas Instruments Incorporated Multiplier accumulator circuits
US6687373B1 (en) 1999-08-24 2004-02-03 Nortel Networks Limited Heusristics for optimum beta factor and filter order determination in echo canceler systems
US6557022B1 (en) 2000-02-26 2003-04-29 Qualcomm, Incorporated Digital signal processor with coupled multiply-accumulate units
US6725360B1 (en) * 2000-03-31 2004-04-20 Intel Corporation Selectively processing different size data in multiplier and ALU paths in parallel
US6714956B1 (en) * 2000-07-24 2004-03-30 Via Technologies, Inc. Hardware accelerator for normal least-mean-square algorithm-based coefficient adaptation
US7068780B1 (en) * 2000-08-30 2006-06-27 Conexant, Inc. Hybrid echo canceller
US7346012B2 (en) * 2002-12-13 2008-03-18 Tioga Technologies Ltd. Transceiver with accelerated echo canceller convergence
US20040193668A1 (en) * 2003-03-31 2004-09-30 Patrick Devaney Virtual double width accumulators for vector processing
US7716712B2 (en) * 2003-06-18 2010-05-11 General Instrument Corporation Narrowband interference and identification and digital processing for cable television return path performance enhancement
US20060224652A1 (en) * 2005-04-05 2006-10-05 Nokia Corporation Instruction set processor enhancement for computing a fast fourier transform
GB2439988A (en) * 2005-06-01 2008-01-16 Tecteon Plc Subband coefficient adaptor for adaptive filter
US8078659B2 (en) * 2005-10-31 2011-12-13 Telefonaktiebolaget L M Ericsson (Publ) Reduction of digital filter delay
US9185233B2 (en) * 2010-05-25 2015-11-10 Intel Deutschland Gmbh Audio communication device and method using fixed echo cancellation filter coefficients
DE102012220488A1 (en) * 2012-11-09 2014-05-15 Robert Bosch Gmbh Subscriber station for a bus system and method for improving the reception quality of messages at a subscriber station of a bus system
CN113194378B (en) * 2021-06-30 2021-11-26 深圳市汇顶科技股份有限公司 Noise reduction method for audio signal, audio signal processing device and electronic equipment
WO2023272631A1 (en) 2021-06-30 2023-01-05 深圳市汇顶科技股份有限公司 Noise cancellation method for audio signal, audio signal processing apparatus, and electronic device

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR860700300A (en) * 1984-09-28 1986-08-01 빈센트 죠셉로너 Input memory circuit means and its distribution method
NL8901247A (en) * 1989-05-19 1990-12-17 Philips Nv ADAPTIVE TIME DISCREET TRANSVERSAL FILTER.
US5388092A (en) * 1989-06-27 1995-02-07 Nec Corporation Echo canceller for two-wire full duplex digital data transmission
JPH0344218A (en) * 1989-07-12 1991-02-26 Fujitsu Ltd Adaptive echo canceller
JPH03159423A (en) * 1989-11-17 1991-07-09 Fujitsu Ltd Double talk detecting system in echo cancellor
US5001661A (en) * 1990-01-23 1991-03-19 Motorola, Inc. Data processor with combined adaptive LMS and general multiplication functions
JP2518433B2 (en) * 1990-01-24 1996-07-24 日本電気株式会社 Double talk detection circuit
JP3135902B2 (en) * 1990-05-11 2001-02-19 株式会社日立製作所 Automatic equalizer and semiconductor integrated circuit
EP0466997A1 (en) * 1990-07-18 1992-01-22 International Business Machines Corporation Improved digital signal processor architecture
JPH04302522A (en) * 1991-03-29 1992-10-26 Hitachi Ltd Arithmetic circuit, and adaptive filter and echo canceler using same
US5278872A (en) * 1991-05-28 1994-01-11 North American Philips Corporation System and circuit architecture for echo cancellation and a television receiver comprising same
JP2792311B2 (en) * 1992-01-31 1998-09-03 日本電気株式会社 Method and apparatus for removing multi-channel echo
US5396517A (en) * 1993-03-04 1995-03-07 Adtran Transversal filter useable in echo canceler, decision feedback equalizer applications for minimizing non-linear distortion in signals conveyed over full duplex two-wire communication link
US5381357A (en) * 1993-05-28 1995-01-10 Grumman Corporation Complex adaptive fir filter
JPH07288493A (en) * 1994-04-18 1995-10-31 Fujitsu Ltd Double talk detecting device
US5652903A (en) * 1994-11-01 1997-07-29 Motorola, Inc. DSP co-processor for use on an integrated circuit that performs multiple communication tasks
US5631957A (en) * 1995-03-09 1997-05-20 National Semiconductor Corporation Band-energy near-end echo reducer for tonal signalling detectors
US5745396A (en) * 1995-04-28 1998-04-28 Lucent Technologies Inc. Pipelined adaptive IIR filter
US5721782A (en) * 1996-03-25 1998-02-24 Motorola, Inc. Partitioned echo canceler utilizing decimation echo location

Also Published As

Publication number Publication date
MY122103A (en) 2006-03-31
GB2341067A (en) 2000-03-01
GB2341067B (en) 2001-11-07
CN1126049C (en) 2003-10-29
AU6642498A (en) 1998-09-18
WO1998038582A1 (en) 1998-09-03
DE19882141B4 (en) 2009-01-02
US5933797A (en) 1999-08-03
DE19882141T1 (en) 2000-01-13
JP2001513293A (en) 2001-08-28
GB9920266D0 (en) 1999-10-27
CN1249829A (en) 2000-04-05

Similar Documents

Publication Publication Date Title
JP4445041B2 (en) Echo cancellation with adaptive dual filter
CA1221180A (en) Method of and device for the digital cancellation of the echo generated in connections with time-varying characteristics
JP4104663B2 (en) Echo circuit delay estimation
JP3204151B2 (en) Adaptive filter
JP2778513B2 (en) Echo canceller device
JPH08288890A (en) Method and device for adaptive type filtering
JP2004507922A (en) Partitioned block frequency domain adaptive filter
CA2020804C (en) Adaptive echo canceller
JP2000196507A (en) Method and system for eliminating echo for multiplex channel
US6088445A (en) Adaptive filter system having mixed fixed point or floating point and block scale floating point operators
US6625279B1 (en) Apparatus and method of estimating echo path delay
US7016487B1 (en) Digital echo cancellation device
CA2282567C (en) Adaptive dual filter echo cancellation
JP2888121B2 (en) Method and apparatus for identifying unknown system using adaptive filter
Hillman DSP56200: An algorithm-specific digital signal processor peripheral
JPH09261135A (en) Acoustic echo erasion device
US7386120B2 (en) Echo canceller having a frequency domain active region location estimator
US8499020B2 (en) Method and system for estimating and applying a step size value for LMS echo cancellers
JP4310926B2 (en) Echo canceller
Baghious et al. Realization of block adaptive filters using Fermat number transforms
Chen et al. A zero-delay FFT-based subband acoustic echo canceller for teleconferencing and hands-free telephone systems
US20060210056A1 (en) Estimation method and apparatus
Vardhan et al. Implementation of AEC (Acoustic Echo Cancellation) on Cortex-M4
Park et al. A Nsvel Implementation of Acoustic and Electrical Echo Cancellers for a Full-Duplex Teleconference P
JPH04245810A (en) Method and device for estimating system characteristic

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050222

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20061128

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080311

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080303

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080610

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090623

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20090918

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20091102

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091109

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20091222

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100115

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130122

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term