(57)【要約】【課題】残留エコーを消去するエコーキャンセラおよびその残留エコー抑制方法を提供。【解決手段】エコーキャンセラ10は、エコーキャンセラ本体12が残留エコーを含む送信信号112から残差信号114を得て、非線形処理部16が、受信信号104に基づく有無音判定164と、送信信号112および残差信号114に基づくエコー消去量170とを得て、エコー消去量170にマージン172を加算して加算結果174を得て、乗算器制御部70が、加算結果174が乗算器制御閾値よりも小さくかつ有無音判定164が有音の場合、または有無音判定164が無音の場合には乗算器72を透過制御して残差信号114をそのまま送信信号128として出力し、それ以外の場合には乗算器72を減衰制御して残差信号114に減衰量178を掛けた値を送信信号128として出力することにより、残留エコーを抑制することができる。【選択図】図１
2008263336.tif 000002
【特許請求の範囲】
【請求項１】
受信信号によりエコー経路にて発生した残留エコーとともに送信信号を送信する際に、前記エコー経路の特性を推定して擬似エコーを生成し、前記送信信号から前記擬似エコーを減算して残差信号を生成する適応フィルタを含むエコーキャンセラにおいて、該エコーキャンセラは、
前記受信信号が有音か無音かを判定し、有音から無音への判定を検出した場合には、それから一定時間の間、有音判定を維持する有無音判定手段と、
前記残留エコーを含む前記送信信号および前記残差信号に基づいてエコー消去量を決定するエコー消去量決定手段と、
前記エコー消去量にマージンを加算するマージン加算手段と、
前記マージン加算手段の加算結果および前記有無音判定手段の判定結果に応じて、透過制御または減衰制御を行う乗算器制御手段と、
該乗算器制御手段に制御されて、前記透過制御に応じて前記残差信号を透過し、また前記減衰制御に応じて前記残差信号に所定の減衰量を掛けて前記残差信号の前記残留エコーを抑制する乗算手段とを含むことを特徴とするエコーキャンセラ。
【請求項２】
請求項１に記載のエコーキャンセラにおいて、前記乗算器制御手段は、前記加算結果と乗算器制御閾値とを比較して、前記有無音判定手段が無音判定する場合、または前記有無音判定手段が有音判定し、かつ前記加算結果が前記乗算器制御閾値よりも大きい場合には、前記乗算手段に前記透過制御をし、それ以外の場合には、前記乗算手段に前記減衰制御をすることを特徴とするエコーキャンセラ。
【請求項３】
請求項２に記載のエコーキャンセラにおいて、前記乗算器制御手段は、０より大きく１より小さい第１の定数および第２の定数を有し、
前記有無音判定手段が無音判定する場合には、現行の前記乗算器制御閾値をそのまま維持して次回の前記乗算器制御閾値として更新し、
前記有無音判定手段が有音判定し、かつ前記加算結果が前記現行の乗算器制御閾値よりも小さい場合には、前記現行の乗算器制御閾値から前記加算結果を減算した結果に第１の定数を掛けて第１の乗算結果を求め、前記現行の乗算器制御閾値から第１の乗算結果を減算してその減算結果を前記次回の乗算器制御閾値として更新し、
それ以外の場合には、前記現行の乗算器制御閾値に第２の定数を掛けて第２の乗算結果を求め、１から第２の定数を減算した値を前記エコー消去量に掛けて第３の乗算結果を求め、第２および第３の乗算結果を加算してその加算結果を前記次回の乗算器制御閾値として更新することを特徴とするエコーキャンセラ。
【請求項４】
請求項１に記載のエコーキャンセラにおいて、前記乗算手段は、前記乗算器制御手段による制御が、前記透過制御から前記減衰制御へと、または前記減衰制御から前記透過制御に切り替わったときに、前記所定の減衰量を少しずつ変化させて、透過と減衰との切り替わりを滑らかに変化させることを特徴とするエコーキャンセラ。
【請求項５】
請求項１に記載のエコーキャンセラにおいて、前記乗算手段は、前記乗算器制御手段による制御をONガードタイマまたはOFFガードタイマを介して入力して、透過と減衰とを切り替えることを特徴とするエコーキャンセラ。
【請求項６】
請求項１に記載のエコーキャンセラにおいて、前記乗算器制御手段は、前記乗算器制御閾値に、上限値および下限値を設けて制限処理をすることを特徴とするエコーキャンセラ。
【請求項７】
請求項１に記載のエコーキャンセラにおいて、前記乗算器制御手段は、前記エコー消去量が所定の負の閾値よりも小さい場合には、前記乗算手段に前記減衰制御をすることを特徴とするエコーキャンセラ。
【請求項８】
請求項１に記載のエコーキャンセラにおいて、前記乗算器制御手段は、前記有無音判定手段が有音判定したとき、有音判定を示すサンプリング回数が所定の有音判定回数未満の場合には、強制的に前記乗算手段に前記減衰制御をすることを特徴とするエコーキャンセラ。
【請求項９】
受信信号によりエコー経路にて発生した残留エコーとともに送信信号を送信する際に、前記エコー経路の特性を推定して擬似エコーを生成し、前記送信信号から前記擬似エコーを減算して残差信号を生成するエコーキャンセラの残留エコー抑制方法において、該方法は、
前記受信信号が有音か無音かを判定し、有音から無音への判定を検出した場合には、それから一定時間の間、有音判定を維持する有無音判定工程と、
前記残留エコーを含む前記送信信号および前記残差信号に基づいてエコー消去量を決定するエコー消去量決定工程と、
前記エコー消去量にマージンを加算するマージン加算工程と、
前記マージン加算工程の加算結果および前記有無音判定工程の判定結果に応じて、透過制御または減衰制御を行う乗算器制御工程と、
該乗算器制御工程に制御されて、前記透過制御に応じて前記残差信号を透過し、また前記減衰制御に応じて前記残差信号に所定の減衰量を掛けて前記残差信号の前記残留エコーを抑制する乗算工程とを含むことを特徴とする残留エコー抑制方法。
【請求項１０】
請求項９に残留エコー抑制方法において、前記乗算器制御工程は、前記加算結果と乗算器制御閾値とを比較して、前記有無音判定工程が無音判定する場合、または前記有無音判定工程が有音判定し、かつ前記加算結果が前記乗算器制御閾値よりも大きい場合には、前記乗算工程に前記透過制御を行い、それ以外の場合には、前記乗算工程に前記減衰制御を行うことを特徴とする残留エコー抑制方法。
【請求項１１】
請求項１０に記載の残留エコー抑制方法において、前記乗算器制御工程は、０より大きく１より小さい第１の定数および第２の定数を有し、
前記有無音判定工程が無音判定する場合には、現行の前記乗算器制御閾値をそのまま維持して次回の前記乗算器制御閾値として更新し、
前記有無音判定工程が有音判定し、かつ前記加算結果が前記現行の乗算器制御閾値よりも小さい場合には、前記現行の乗算器制御閾値から前記加算結果を減算した結果に第１の定数を掛けて第１の乗算結果を求め、前記現行の乗算器制御閾値から第１の乗算結果を減算してその減算結果を前記次回の乗算器制御閾値として更新し、
それ以外の場合には、前記現行の乗算器制御閾値に第２の定数を掛けて第２の乗算結果を求め、１から第２の定数を減算した値を前記エコー消去量に掛けて第３の乗算結果を求め、第２および第３の乗算結果を加算してその加算結果を前記次回の乗算器制御閾値として更新することを特徴とする残留エコー抑制方法。
【請求項１２】
請求項９に記載の残留エコー抑制方法において、前記乗算工程は、前記乗算器制御工程による制御が、前記透過制御から前記減衰制御へと、または前記減衰制御から前記透過制御に切り替わったときに、前記所定の減衰量を少しずつ変化させて、透過と減衰との切り替わりを滑らかに変化させることを特徴とする残留エコー抑制方法。
【請求項１３】
請求項９に記載の残留エコー抑制方法において、前記乗算工程は、前記乗算器制御工程による制御をONガードタイマまたはOFFガードタイマを介して入力して、透過と減衰とを切り替えることを特徴とする残留エコー抑制方法。
【請求項１４】
請求項９に記載の残留エコー抑制方法において、前記乗算器制御工程は、前記乗算器制御閾値に、上限値および下限値を設けて制限処理をすることを特徴とする残留エコー抑制方法。
【請求項１５】
請求項９に記載の残留エコー抑制方法において、前記乗算器制御工程は、前記エコー消去量が所定の負の閾値よりも小さい場合には、前記乗算工程に前記減衰制御を行うことを特徴とする残留エコー抑制方法。
【請求項１６】
請求項９に記載の残留エコー抑制方法において、前記乗算器制御工程は、前記有無音判定工程が有音判定したとき、有音判定を示すサンプリング回数が所定の有音判定回数未満の場合には、強制的に前記乗算工程に前記減衰制御を行うことを特徴とする残留エコー抑制方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、回線エコーおよび音響エコーなどによる残留エコーを消去するエコーキャンセラおよびその残留エコー抑制方法に関するものである。
【背景技術】
【０００２】
従来から、エコーキャンセラは、電話回線の２線・４線部で発生する回線エコーや、ハンズフリーシステムのスピーカ・マイクロホン部で発生する音響エコーなどの残留エコーを消去するために用いられるもので、最近では、回線エコーキャンセラおよび音響エコーキャンセラの両方を備え、または両方に対応可能な装置も製品化されつつある。
【０００３】
エコーキャンセラは、たとえば、遠端側からのアナログ受信信号をアナログ・ディジタル（A/D）変換器でサンプリングしてディジタル受信信号に変換し、エコーキャンセラ本体に入力するもので、さらにそのディジタル受信信号をディジタル・アナログ（D/A）変換器でアナログ受信信号に変換して電話回線やスピーカを含むエコー経路に供給して近端側へと伝送する。
【０００４】
また、エコーキャンセラは、エコー経路における電話回線の２線４線変換部、ならびにスピーカおよびマイクロホン部で残留エコーが発生すると、近端側からのアナログ送信信号にこのエコーを重畳して送信し、この重畳後のアナログ送信信号をA/D変換器でサンプリングしてディジタル送信信号に変換し、エコーキャンセラ本体に入力するもので、エコーキャンセラ本体でこのディジタル送信信号をエコー消去処理し、また非線形処理部で非線形処理して、さらにそのディジタル送信信号をD/A変換器でアナログ受信信号に変換して遠端側へと伝送する。
【０００５】
このエコーキャンセラ本体は、たとえば、擬似エコーを生成する適応FIRフィルタ（AFF：Adaptive FIR Filter）およびダブルトークを検出するダブルトーク検出器（DTD：Double Talk Detector）を含み、エコー経路からのディジタル送信信号から擬似エコーを減算してディジタル残差信号を生成する。
【０００６】
AFFは、エコー経路の特性を推定し、この推定された特性とディジタル受信信号との畳み込み演算によって擬似エコーを生成するもので、フィードバックされるディジタル残差信号が最小になるようにエコー経路の推定動作を行う。AFFは、LMS（Least Mean Square）アルゴリズム、NLSM（Normalized LMS）アルゴリズム、またはRLS（Recursive Least Square）アルゴリズムなどの推定アルゴリズムを用いてエコー経路の特性を推定する。
【０００７】
このようなエコー経路の推定動作は、受信信号が無音のとき、または遠端側および近端側の音声が同時に存在するダブルトークのときに乱れることがある。DTDは、ディジタル残差信号およびディジタル受信信号の信号レベルを比較して、その比較結果がダブルトークを示す場合、AFFに対して推定動作禁止信号を出力してAFFにエコー経路の推定動作を停止させる。このとき、AFFは擬似エコーの生成のみを行う。
【０００８】
また、非線形処理部は、エコーキャンセラ本体で消去できない残留エコーを抑制する、ノンリニアプロセッサ（NLP：Non-Linear Processor）を有する。
【０００９】
NLPは、DTDがダブルトークを検出してDTDから推定動作禁止信号が供給されると、線形の入出力特性を示して、残差信号に比例する送信信号を出力し、近端側からの音声が途切れないようにする。他方、NLPは、DTDがシングルトークを検出したときは、非線形の入出力特性を示して、残差信号のレベル、たとえば短時間パワー平均が、所定のクリップレベルの範囲内、たとえば-CL以上で+CL以下である場合に強制的に０を示す送信信号を出力し、すなわちセンタクリップを行って残留エコーを抑制する。
【００１０】
たとえば、特許文献１に記載のエコーキャンセラは、クリップレベルを可変制御してセンタクリップ動作時の送話の違和感を防止することができる。
【特許文献１】特開平1-119121号
【発明の開示】
【発明が解決しようとする課題】
【００１１】
しかしながら、従来のエコーキャンセラでは、センタクリップの制御がDTDの検出特性に依存するので、最適なDTD検出特性を設定することが困難である。とくに、音響エコーによって生じるエコー経路の変動は、回線エコーよりも比較的大きく、DTDがシングルトークをダブルトークと誤判定し易いので、エコー経路の変動に応じた残留エコーが発生し易い。また、エコー経路の変動がある程度生じてもシングルトークと判定するようにDTD検出特性を設定すると、エコー推定動作が乱れ易くなる。
【００１２】
また、従来のエコーキャンセラでは、NLPのクリップレベルをあらかじめ設定する必要があるが、エコー消去量や近端側の背景ノイズ量が未知の場合に、最適なクリップレベルを設定することは困難である。エコー消去量が小さい場合や背景ノイズ量が大きい場合はクリップレベルを大きく設定する必要があるが、不必要にクリップレベルを大きくすると、送話の途切れが増して通話に違和感を与えることになる。とくに、音響エコーに対するエコー消去量は、設置場所、ならびにスピーカおよびマイクロホンの特性によって大きく異なり、また、音響エコーには背景ノイズが混入し易いので、この問題が顕著である。
【００１３】
さらに、DTDがダブルトークを検出して推定動作禁止信号を出力し、センタクリップを制御する従来の方法では、受信信号が無音になってセンタクリップが解除されると、エコー遅延時間と残響時間との和に相当する時間の残留エコーが発生する。とくに、音響エコーは、残響時間が数十〜数百msと長く、この問題が顕著である。
【００１４】
本発明は、このような従来技術の欠点を解消し、残留エコーを効果的に消去するエコーキャンセラおよびその残留エコー抑制方法を提供することを目的とする。
【課題を解決するための手段】
【００１５】
本発明は上述の課題を解決するために、受信信号によりエコー経路にて発生した残留エコーとともに送信信号を送信する際に、このエコー経路の特性を推定して擬似エコーを生成し、この送信信号からこの擬似エコーを減算して残差信号を生成する適応フィルタを含むエコーキャンセラは、この受信信号が有音か無音かを判定し、有音から無音への判定を検出した場合には、それから一定時間の間、有音判定を維持する有無音判定手段と、この残留エコーを含むこの送信信号およびこの残差信号に基づいてエコー消去量を決定するエコー消去量決定手段と、このエコー消去量にマージンを加算するマージン加算手段と、このマージン加算手段の加算結果およびこの有無音判定手段の判定結果に応じて、透過制御または減衰制御を行う乗算器制御手段と、この乗算器制御手段に制御されて、この透過制御に応じてこの残差信号を透過し、またこの減衰制御に応じてこの残差信号に所定の減衰量を掛けてこの残差信号のこの残留エコーを抑制する乗算手段とを含むことを特徴とする。
【００１６】
また、受信信号によりエコー経路にて発生した残留エコーとともに送信信号を送信する際に、このエコー経路の特性を推定して擬似エコーを生成し、この送信信号からこの擬似エコーを減算して残差信号を生成するエコーキャンセラの残留エコー抑制方法は、この受信信号が有音か無音かを判定し、有音から無音への判定を検出した場合には、それから一定時間の間、有音判定を維持する有無音判定工程と、この残留エコーを含むこの送信信号およびこの残差信号に基づいてエコー消去量を決定するエコー消去量決定工程と、このエコー消去量にマージンを加算するマージン加算工程と、このマージン加算工程の加算結果およびこの有無音判定工程の判定結果に応じて、透過制御または減衰制御を行う乗算器制御工程と、この乗算器制御工程に制御されて、この透過制御に応じてこの残差信号を透過し、またこの減衰制御に応じてこの残差信号に所定の減衰量を掛けてこの残差信号のこの残留エコーを抑制する乗算工程とを含むことを特徴とする。
【発明の効果】
【００１７】
本発明のエコーキャンセラによれば、残留エコーを含む送信信号と残差信号とのレベルの差、すなわちエコー消去量にマージンを加算し、その加算結果と乗算器制御閾値とを比較して、前者が後者よりも小さくかつ有無音判定結果が有音判定の場合、または有無音判定結果が無音判定の場合には、残差信号をそのまま送信信号として出力し、それ以外の場合には、残差信号に減衰量を掛けた値を送信信号として出力することにより、残留エコーのみを抑制することができる。
【００１８】
また、本発明のエコーキャンセラは、エコー消去量にマージンを加算した加算結果と乗算器制御閾値とを比較するので、エコー経路の変動が多少生じても乗算器が解除されることなく残留エコーを抑制することができる。また、エコー経路の変動が比較的小さな回線エコーに対してはマージンを小さくし、またエコー経路の変動が比較的大きな音響エコーに対してはマージンを大きくして設定してもダブルトーク検出器の検出特性には影響を与えないので、エコー経路の変動に応じた残留エコーの発生を抑え、シングルトークを判定し易いDTD検出特性を設定してもエコー推定動作が乱れ難くなる。
【００１９】
さらに、本発明のエコーキャンセラは、乗算器制御閾値をエコー消去量に基づいて変化させ、すなわちエコーキャンセラが使用される環境に応じて自動的に変化させるので、NLPのクリップレベルをあらかじめ設定する必要がなく、エコー消去量が未知の場合でも、不必要に大きなクリップレベルを設定することによる通話の違和感をなくすことができる。
【００２０】
また、本発明のエコーキャンセラは、エコー消去量とマージンとの加算結果に追従させて乗算器制御閾値を低下させるので、エコー経路の急激な変動に伴ってエコー消去量が急激に低下して乗算器が解除されても、乗算器は一定時間後には再び動作するので、残留エコーが抑制されない状態が継続するのを防ぐことができる。
【００２１】
さらに、本発明のエコーキャンセラは、受話信号が有音から無音に変化したとき、OFFガードタイマが一定時間は有音判定を保持するので、受話信号が無音に変化してもエコーが送信側に回り込んでいる間、すなわちエコーキャンセラがエコーを消去している間は乗算器が解除されず、残留エコーを抑制することができる。
【発明を実施するための最良の形態】
【００２２】
次に添付図面を参照して、本発明によるエコーキャンセラの実施例を詳細に説明する。たとえば、エコーキャンセラ10は、図１に示すように、遠端側からの受信信号をエコーキャンセラ本体12に入力しつつエコー経路14にも供給して近端側へと伝送し、また近端側からの送信信号をエコーキャンセラ本体12でエコー消去処理してから非線形処理部16で非線形処理して遠端側へと伝送するもので、本実施例ではとくに、非線形処理部16におけるノンリニアプロセッサ18が、受信信号に基づいて有無音判定し、送信信号およびエコーキャンセラ本体12でこの送信信号から得た残差信号に基づいてエコー消去量を得て、さらに有無音判定結果およびエコー消去量に基づいて出力用送信信号を決定するものである。なお、本発明の理解に直接関係のない部分は、図示を省略し、冗長な説明を避ける。
【００２３】
本実施例において、エコーキャンセラ10は、遠端側、すなわち送話者側から入力されるアナログ受信信号102を所定のサンプリング時間ごとにサンプリングしてディジタル受信信号104に変換するアナログ・ディジタル（A/D）変換器22と、エコーキャンセラ本体12から得られるディジタル受信信号104に基づいて、近端側、すなわち受話者側に供給するアナログ受信信号106を生成するディジタル・アナログ（D/A）変換器24とを含む。
【００２４】
また、エコーキャンセラ10は、近端側から入力されるアナログ送信信号110を所定のサンプリング時間ごとにサンプリングしてディジタル送信信号112に変換するA/D変換器26と、非線形処理部16から得られるディジタル送信信号128に基づいて遠端側に供給されるアナログ送信信号130を生成するD/A変換器28とを含む。
【００２５】
エコーキャンセラ本体12は、擬似エコー116を生成する適応FIRフィルタ（AFF：Adaptive FIR Filter）32、ダブルトークを検出するダブルトーク検出器（DTD：Double Talk Detector）34、およびA/D変換器26からのディジタル送信信号112から擬似エコー116を減算してディジタル残差信号114を生成する加算器36を含んで構成される。
【００２６】
AFF 32は、エコー経路14の特性を推定し、またA/D変換器22からディジタル受信信号104を入力して、この推定された特性と受信信号104とを畳み込み演算することにより擬似エコー116を生成するものである。本実施例のAFF 32は、エコー経路14の推定アルゴリズムとして、たとえば、LMS（Least Mean Square）アルゴリズム、NLSM（Normalized LMS）アルゴリズム、またはRLS（Recursive Least Square）アルゴリズムなどを用いてよい。
【００２７】
また、本実施例のAFF 32は、フィードバックされるディジタル残差信号114を入力して、この残差信号114が最小になるようにエコー経路の推定動作を行う。さらに、AFF 32は、DTD 34からの推定動作禁止信号118に応じて、エコー経路14の推定動作を停止し、本実施例では、擬似エコー116の生成のみ行う。
【００２８】
DTD 34は、A/D変換器22および加算器36からディジタル受信信号104およびディジタル残差信号114をそれぞれ入力して、受信信号104および残差信号114の間の信号レベルを比較し、その比較結果がダブルトークであると判断できる場合にAFF 32に対して推定動作禁止信号118を出力して、AFF 32におけるエコー経路14の推定動作を停止させる。
【００２９】
エコー経路14は、図示しないが、電話回線の２線４線変換部、スピーカおよびマイクロホンを含む、近端側の通信経路を総括的に示すものである。エコー経路14は、D/A変換器24から入力して伝播するアナログ受信信号106をエコー信号106として出力するもので、このエコー信号106と、近端側からの送話信号108とを加算器38で加算してアナログ送信信号110を生成し、この送信信号110をA/D変換器26へと出力する。
【００３０】
非線形処理部16におけるノンリニアプロセッサ（NLP：Non-Linear Processor）18は、ディジタル受信信号104に基づいて有無音判定し、ディジタル送信信号112およびディジタル残差信号114に基づいてエコー消去量を得て、さらに有無音判定結果およびエコー消去量に基づいて出力用送信信号128を決定して、残留エコーを抑制するものである。
【００３１】
本実施例のNLP 18は、図２に示すように、パワー計算器52、54および56、比較器58、OFFガードタイマ60、対数変換器62および64、加算器66および68、乗算器制御部70、ならびに乗算器72を含んで構成される。
【００３２】
パワー計算器52、54および56は、それぞれ、ディジタル受信信号104、ディジタル送信信号112およびディジタル残差信号114をパワー演算してパワー受信信号152、パワー送信信号154およびパワー残差信号156を生成し、比較器58、対数変換器62および64に供給するものである。
【００３３】
本実施例のパワー計算器52、54および56は、それぞれ、所定のサンプル時刻kにおける受信信号Rin(k)、送信信号Sin(k)および残差信号Res(k)を入力するとき、たとえば、０より大きく１より小さい定数αを用いて、パワー受信信号RinP(k)、パワー送信信号SinP(k)およびパワー残差信号ResP(k)を以下の数式(1)、(2)および(3)で算出する。
RinP(k)＝α・RinP(k−1)＋（1−α）・｜Rin(k)｜      ・・・(1)
SinP(k)＝α・SinP(k−1)＋（1−α）・｜Sin(k)｜      ・・・(2)
ResP(k)＝α・ResP(k−1)＋（1−α）・｜Res(k)｜      ・・・(3)
比較器58は、パワー受信信号152に基づいて有音・無音判定を行うもので、本実施例では、パワー受信信号152を有無音判定閾値158と比較して、その比較結果を示す制御信号160を出力する。比較器58は、たとえば、パワー受信信号152が有無音判定閾値158よりも小さい場合に０を示し、それ以外の場合に１を示す制御信号160を出力するとよい。
【００３４】
OFFガードタイマ60は、受話信号が有音から無音に変化したときに一定時間は有音判定を保持するもので、本実施例では、初期値０の内部カウンタを有し、比較器58からの制御信号160に応じて、内部カウンタのカウンタ値およびカウンタ閾値162に基づいて制御信号164を生成し、この制御信号164を乗算器制御部70に供給する。OFFガードタイマ60は、カウンタ閾値162をAFF 32のタップ係数長程度に設定するとよい。
【００３５】
本実施例のOFFガードタイマ60における内部カウンタは、たとえば、制御信号160が０を示すとき、カウンタ値を更新し、すなわちカウンタ値に１を加算し、１を示すとき、カウンタ値をリセットし、すなわちカウンタ値に0を設定する。
【００３６】
また、OFFガードタイマ60は、制御信号164として、所定のサンプル時刻kにおける制御信号RinPdet(k)を生成するもので、たとえば、制御信号160が０を示すとき、内部カウンタ値がカウンタ閾値162より大きい場合には制御信号RinPdet(k)に０を設定し、内部カウンタ値がそれ以外の場合には制御信号RinPdet(k)に前回の制御信号RinPdet(k-1)を設定し、制御信号160が１を示すとき、内部カウンタ値に拘らず制御信号RinPdet(k)に１を設定する。
【００３７】
対数変換器62および64は、それぞれ、パワー送信信号154およびパワー残差信号156を対数領域のdBレベルの信号に変換して、dB送信信号166およびdB残差信号168を生成し、加算器66に供給するものである。
【００３８】
加算器66は、対数変換器62からのdB送信信号166から、対数変換器64からのdB残差信号168を減算してエコー消去量170を算出するもので、エコー消去量170を加算器68および乗算器制御部70に供給する。
【００３９】
また、加算器68は、加算器66で算出したエコー消去量170にマージン172を加算して、その加算結果174を乗算器制御部70に供給する。本実施例のエコーキャンセラ10では、マージン172の設定値を変更してもDTD 34の検出特性には影響を与えないので、エコー経路の変動が比較的小さな回線エコーに対してはマージン172を小さく、また、エコー経路の変動が比較的大きな音響エコーに対してはマージン172を大きく設定することができる。
【００４０】
乗算器制御部70は、OFFガードタイマ60からの制御信号164に応じて、エコー消去量170および加算結果174に基づいて乗算器制御信号176を生成し、この制御信号178を乗算器72に供給する。
【００４１】
本実施例の乗算器制御部70は、たとえば、所定のサンプル時刻kにおいて、乗算器制御閾値CANCth(k)を用いて乗算器制御信号ATTon(k)を生成するもので、制御信号RinPdet(k)が０の場合、または乗算器制御閾値CANCth(k)が加算結果CANCad(k)より大きい場合には乗算器制御信号ATTon(k)に０を設定し、それ以外の場合には乗算器制御信号ATTon(k)に１を設定する。
【００４２】
また、乗算器制御部70は、エコー消去量（CANC(k)）170を基に変化するパラメータとして乗算器制御閾値CANCth(k)を決定するもので、エコーキャンセラ10がエコーを十分に消去できる環境であればCANCth(k)が大きくなり、またエコーキャンセラ10がエコーをあまり消去できない環境であればCANCth(k)が小さくなるように自動的に調整される。
【００４３】
乗算器制御部70は、たとえば、０より大きく１より小さい定数βおよびγを用いて次回の乗算器制御閾値CANCth(k+1)を決定するもので、制御信号RinPdet(k)が０の場合には次回の閾値CANCth(k+1)に今回の乗算器制御閾値CANCth(k)をそのまま設定し、制御信号RinPdet(k)が０でなく今回の閾値CANCth(k)が加算結果CANCad(k)より大きい場合には次回の閾値CANCth(k+1)を以下の数式(4)により算出し、それ以外の場合には次回の閾値CANCth(k+1)を以下の数式(5)により算出する。
CANCth(k＋1)＝CANCth(k)−β・(CANCth(k)−CANCad(k))       ・・・(4)
CANCth(k＋1)＝γ・CANCth(k)＋(1−γ)・CANC(k)      ・・・(5)
乗算器72は、エコーキャンセラ本体12からディジタル残差信号114を入力し、この残差信号114を減衰させる送話アッテネータであり、乗算器制御信号176に応じて、残差信号114および減衰量178に基づいて出力用送信信号128を生成する。
【００４４】
本実施例の乗算器72は、たとえば、０以上１以下の定数である減衰量178を用いて、乗算器制御信号176が０の場合には残差信号114をそのまま出力用送信信号128に設定し、それ以外の場合には残差信号114に減衰量178を乗算して出力用送信信号128を決定する。乗算器72は、たとえば、残留エコーを無音にする場合は減衰量178に０を設定し、約６dB減衰する場合は0.5を設定するとよい。
【００４５】
次に、本実施例におけるエコーキャンセラ10のNLP 18による残留エコー抑制動作の例を図３のフローチャートを参照しながら説明する。
【００４６】
本実施例のエコーキャンセラ10では、まず、A/D変換器22にて所定のサンプル時刻kでサンプリングされたディジタル受信信号104としてRin(k)が、A/D変換器26にてサンプル時刻kでサンプリングされたディジタル送信信号112としてSin(k)が、ならびにエコーキャンセラ本体12にてエコー成分が消去されたディジタル残差信号114としてRes(k)が、NLP 18に入力する（S202）。
【００４７】
NLP 18において、ディジタル受信信号（Rin(k)）104、ディジタル送信信号（Sin(k)）112およびディジタル残差信号（Res(k)）114は、それぞれ、パワー計算器52、54および56で、上記の数式(1)〜(3)によってパワー演算されて、パワー受信信号（RinP(k)）152、パワー送信信号（SinP(k)）154およびパワー残差信号（ResP(k)）156が生成される（S204）。
【００４８】
このパワー受信信号152は、比較器58およびOFFガードタイマ60に供給されて有音・無音判定がなされる（SUB1）。
【００４９】
次に、この有無音判定（SUB1）について、図４のフローチャートを参照しながら説明する。
【００５０】
パワー受信信号152は、比較器58で有無音判定閾値158と比較され（S222）、この受信信号152が閾値158よりも小さい場合には０を示す制御信号160が出力されてステップS224に進み、それ以外の場合に１を示す制御信号160が出力されてステップS226に進む。
【００５１】
ステップS224では、０を示す制御信号160に応じて、OFFガードタイマ60の内部カウンタが更新され、さらにそのカウンタ値がカウンタ閾値162と比較される（S228）。
【００５２】
このステップS228の比較結果に応じて、制御信号164としてサンプル時刻kにおける制御信号RinPdet(k)が決定し、内部カウンタ値が閾値162よりも大きい場合には無音と判定されて制御信号RinPdet(k)に０が設定され（S230）、それ以外の場合には制御信号RinPdet(k)に前回の制御信号RinPdet(k-1)が設定され（S232）、すなわち前回の判定結果が採用される。
【００５３】
また、ステップS226では、１を示す制御信号160に応じて、OFFガードタイマ60の内部カウンタがリセットされ、さらに有音と判定されて制御信号RinPdet(k)に１が設定される（S234）。
【００５４】
ステップS230、S232およびS234のいずれの場合も、制御信号164は、乗算器制御部70に供給され、その後、図３に戻りステップS206に進む。
【００５５】
ステップS206では、エコー消去量決定が行われ、ここではまず、パワー送信信号154およびパワー残差信号156が、それぞれ対数変換器62および64で対数変換され、dB送信信号（SinL(k)）166およびdB残差信号（ResL(k)）168が生成される。
【００５６】
次に、加算器66で、このdB送信信号166からdB残差信号168が減算されて、エコー消去量（CANC(k)）170が生成され、さらに、加算器68で、エコー消去量170にマージン172が加算されて、加算結果（CANCad(k)）174が得られる。
【００５７】
これらのエコー消去量170および加算結果174は、乗算器制御部70に供給され、ここで、制御信号164に応じて乗算器制御信号176が決定される（SUB2）。
【００５８】
次に、この乗算器制御信号決定（SUB2）について、図５のフローチャートを参照しながら説明する。
【００５９】
乗算器制御部70では、まず、有無音判定結果が無音判定か否か、すなわち制御信号164が０か否かが判定され（S242）、制御信号164が０を示して無音判定である場合にステップS244に進み、それ以外の場合にステップS246に進む。
【００６０】
ステップS244では、乗算器制御部70において、サンプル時刻kにおける今回の乗算器制御閾値CANCth(k)が、次回の乗算器制御閾値CANCth(k+1)にそのまま設定されて次回の制御閾値が更新される。この場合、サンプル時刻kにおける乗算器制御信号（ATTon(k)）176に０が設定される（S248）。
【００６１】
また、ステップS246では、乗算器制御部70において、今回の乗算器制御閾値CANCth(k)が、エコー消去量170に基づく加算結果（CANCad(k)）174と比較され、この制御閾値が加算結果174より大きい場合にステップS250に進み、それ以外の場合にステップS252に進む。
【００６２】
ステップS250では、次回の乗算器制御閾値CANCth(k+1)が、定数βを用いて上記の数式(4)により算出され、さらに、乗算器制御信号（ATTon(k)）176に０が設定される（S254）。
【００６３】
また、ステップS252では、次回の乗算器制御閾値CANCth(k+1)が、定数γを用いて上記の数式(5)により算出され、さらに、乗算器制御信号（ATTon(k)）176に１が設定される（S256）。
【００６４】
ステップS248、S254およびS256のいずれの場合も、乗算器制御信号176は、乗算器72に供給され、その後、図３に戻りステップS208に進む。
【００６５】
ステップS208では、乗算器72において、乗算器制御信号176が０か否かが判定され、この制御信号176が０の場合にステップS210に進み、それ以外の場合にステップS212に進む。
【００６６】
ステップS210では、乗算器72において、ディジタル残差信号（Res(k)）114がそのままサンプル時刻kにおける出力用送信信号（Sout(k)）128に設定される。
【００６７】
また、ステップS212において、出力用送信信号（Sout(k)）128は、残差信号（Res(k)）114に減衰量178が乗算されて決定される。
【００６８】
ステップS210およびS212のいずれの場合も、出力用送信信号128は、D/A変換器28に供給されてディジタル・アナログ変換され、ここでアナログ送信信号130が生成されて遠端側に供給される（S214）。
【００６９】
本実施例のエコーキャンセラ10は、たとえば図６の前半部分に示すように、ディジタル送信信号Sin(k)にエコーのみが含まれる時刻t302〜t304の範囲では、乗算器制御信号ATTon(k)が１になって残留エコーを抑制し、図６の後半部分に示すように、ディジタル送信信号Sin(k)にエコーおよび近端側音声の両方が含まれる時刻t306〜t308および時刻t310〜t312の範囲では、乗算器制御信号ATTon(k)が０になってとなり近端側音声の途切れを防いでいる。また、図７および図８は、図６の前半部分および後半部分をそれぞれ拡大した図である。
【００７０】
ところで、本実施例のNLP 18は、乗算器72にて、ディジタル残差信号114の透過と減衰とを、乗算器制御信号176に応じて瞬時に切り換えているが、この切り替えを滑らかに変化させてもよく、減衰量を少しずつ変化させ、たとえば0.1 dB/sampleずつ変化させてもよい。また、NLP 18は、乗算器制御部70からの乗算器制御信号176を、ONガードタイマまたはOFFガードタイマを介して乗算器72に供給するように構成されてもよい。
【００７１】
また、本実施例のエコーキャンセラ10において、乗算器制御部70は、乗算器制御閾値CANCth(k)に上限および下限を設けて、この制御閾値の制限処理をすることができる。
【００７２】
この乗算器制御部70は、乗算器制御閾値が所定の上限値LIMIT_Hを超えた場合にこの制御閾値に上限値LIMIT_Hを設定し、制御閾値が所定の下限値LIMIT_Lを下回った場合に制御閾値に下限値LIMIT_Lを設定して制限処理を行う。制御部70は、これらの上限値LIMIT_Hおよび下限値LIMIT_Lをあらかじめ有しておくとよく、この上限値LIMIT_Hを下限値LIMIT_Lよりも大きな値にしておくとよい。
【００７３】
乗算器制御部70は、たとえば、図３に示す乗算器制御信号決定（SUB2）を実行する前に、またはその実行後に乗算器制御閾値の制限処理を行う。
【００７４】
この制御部70は、乗算器制御信号決定を実行する前に制御閾値の制限処理を行う場合、今回の乗算器制御閾値CANCth(k)と上限値LIMIT_Hおよび下限値LIMIT_Lとを比較して、その比較結果に応じて制限が必要であれば、今回の制御閾値CANCth(k)に対して上限値または下限値を設定する。
【００７５】
また、制御部70は、乗算器制御信号決定を実行した後に制御閾値の制限処理を行う場合、次回の乗算器制御閾値CANCth(k+1)と上限値LIMIT_Hおよび下限値LIMIT_Lとを比較して、その比較結果に応じて制限が必要であれば、次回の制御閾値CANCth(k+1)に対して上限値または下限値を設定する。
【００７６】
さらに、本実施例のエコーキャンセラ10は、エコー消去量（CANC(k)）170が負の値となるとき、エコーキャンセラ本体12が誤った擬似エコー116を減算していると判断し、乗算器制御部70は、制御信号（RinPdet(k)）164が０でなく、かつ乗算器制御閾値CANCth(k)が加算結果（CANCad(k)）174より大きい場合に、エコー消去量（CANC(k)）170に応じて乗算器制御信号（ATTon(k)）176を決定することができる。
【００７７】
乗算器制御部70は、たとえば、エコー消去量（CANC(k)）170を所定の負の閾値ATTthと比較して、エコー消去量170が閾値ATTthより小さい場合には乗算器制御信号（ATTon(k)）176に１を設定し、それ以外の場合にはこの制御信号176に０を設定する。
【００７８】
本実施例のエコーキャンセラ10において、乗算器制御部70は、有音判定を示す制御信号（RinPdet(k)）164が所定の有音判定回数未満であるとき、エコーキャンセラが初期収束過程にあると判断し、制御信号（ATTon(k)）176を強制的に１に設定して乗算器72にディジタル残差信号114を減衰させることができる。
【００７９】
本実施例の乗算器制御部70は、所定のサンプル時刻kにおいて、制御信号（RinPdet(k)）164が有音判定になってから、サンプリング回数が有音判定回数に達するまで制御信号176を強制設定するものでよい。
【００８０】
この制御部70は、たとえば、初期値０の内部カウンタを有し、制御信号164が有音判定である場合にそのカウンタ値を更新し、すなわちカウンタ値に１を加算して、制御信号164が無音判定である場合にカウンタ値をリセットして０を設定する。制御部70は、カウンタ値が所定のカウンタ閾値ATTonGT、すなわち有音判定回数より小さい場合に、制御信号176に強制的に１に設定する。
【００８１】
本発明によるエコーキャンセラ10は、エコー遅延時間と残響時間との和に相当する時間の残留エコーが無音の受信信号に対して発生することを抑制するために、上記実施例では、送信信号と残差信号とのレベル差をエコー消去量として用いることにより乗算器を制御している。しかし、音響エコーの残響時間が短く、この場合の残留エコーが顕著でない場合には、エコーキャンセラ10は、受信信号と残差信号とのレベル差をエコー消去量として用いて乗算器を制御することにより残留エコーを抑制することができる。
【００８２】
また、エコーキャンセラ10は、有音判定回数以外にも、AFFのタップ係数更新回数またはDTDのシングルトーク検出回数を用いて初期収束過程であることを判断することもできる。
【００８３】
また、本発明のエコーキャンセラ10は、当然、上記実施例を多様に組み合わせて構成することもできる。
【図面の簡単な説明】
【００８４】
【図１】本発明に係るエコーキャンセラの一実施例を示すブロック図である。
【図２】図１に示す実施例のエコーキャンセラにおけるノンリニアプロセッサを示すブロック図である。
【図３】図１に示す実施例のエコーキャンセラにおける動作手順を説明するフローチャートである。
【図４】図１に示す実施例のエコーキャンセラにおける動作手順を説明するフローチャートである。
【図５】図１に示す実施例のエコーキャンセラにおける動作手順を説明するフローチャートである。
【図６】図１に示す実施例のエコーキャンセラにおける残留エコー抑制を示す波形図である。
【図７】図６に示す波形図の前半部分を拡大した図である。
【図８】図６に示す波形図の後半部分を拡大した図である。
【符号の説明】
【００８５】
10  エコーキャンセラ
12  エコーキャンセラ本体
14  エコー経路
16  非線形処理部
18  ノンリニアプロセッサ
22、26  アナログ・ディジタル変換器
24、28  ディジタル・アナログ変換器
32  適応FIRフィルタ
34  ダブルトーク検出器
36、38  加算器
52、54、56  パワー計算器
58  比較器
60  OFFガードタイマ
62、64  対数変換器
66、68  加算器
70  乗算器制御部
72  乗算器
【図１】
2008263336.tif 000003
【図２】
2008263336.tif 000004
【図３】
2008263336.tif 000005
【図４】
2008263336.tif 000006
【図５】
2008263336.tif 000007
【図６】
2008263336.tif 000008
【図７】
2008263336.tif 000009
【図８】
2008263336.tif 000010