(57)【特許請求の範囲】
【請求項１】
受信信号のエコー信号が送信側に戻ることを防止するために、該エコー信号に加算され、該エコー信号を減衰させる擬似エコー信号を生成する適応フィルタを有するエコーキャンセラにおいて、
受信信号のパワーと擬似エコー信号の加算されたエコー信号のパワーとからエコー信号の減衰量を一定の時間間隔毎に計算する第１の手段と、
前記第１の手段により計算された減衰量の最大値を追跡し、保持する第２の手段と、
前記第２の手段の保持する減衰量の最大値からエコー信号の減衰量の現在値を差し引いた値が第１の閾値を超えたときに、該第２の手段から出力された減衰量の最大値を前記一定の時間間隔毎に一定の比率で減少させ、その値を保持する第３の手段と、
前記第２の手段の保持する減衰量の最大値と前記第３の手段の保持する値の乖離幅を前記一定の時間間隔で計算する第４の手段とを備え、
前記第４の手段が計算した乖離幅が第２の閾値を超えたときに、前記第２の手段の保持する減衰量の最大値と前記第３の手段の保持する値の両方をエコー信号の減衰量の現在値にリセットするとともに、前記適応フィルタのフィルタ係数更新動作を開始することを特徴とするエコーキャンセラ。
【請求項２】
前記第２の手段の保持する減衰量の最大値が更新されたか否かを検出する第５の手段を備え、前記第２の手段の保持する減衰量の最大値が更新されたことを該第５の手段が出したときに前記適応フィルタのフィルタ係数更新動作を開始し、前記第２の手段の保持する減衰量の最大値が一定の期間に渡り更新されなかったことを該第５の手段が検出したときに前記適応フィルタのフィルタ係数更新動作を停止することを特徴とする請求項１に記載のエコーキャンセラ。
【請求項３】
ダブルトーク状態にあるか否かを検出する第６の手段を備え、ダブルトーク状態が該第６の手段により検出されたときに前記適応フィルタのフィルタ係数更新動作を停止し、該第６の手段がダブルトーク状態を検出しなくなったときに前記適応フィルタのフィルタ係数更新動作を開始することを特徴とする請求項２に記載のエコーキャンセラ。
【請求項４】
前記適応フィルタのフィルタ係数更新動作の開始及び停止の制御が、前記第４の手段の出力＞前記第５の手段の出力＞前記第６の手段の出力の順の優先順位で行われることを特徴とする請求項３に記載のエコーキャンセラ。
【請求項５】
前記第１の手段は、該第１の手段に入力される受信信号及び擬似エコー信号の加算されたエコー信号のそれぞれについて、
入力信号のパワーを一定の時間間隔毎に計算するパワー計算手段と、
計算されたパワーの最大値を保持するとともに、該保持された最大値が更新されないとき、該保持する最大値を前記一定の時間間隔毎に一定の比率で減少させる最大値追跡／リーク手段とを備え、
該最大値追跡／リーク手段の出力する最大値に基づいてエコー信号の減衰量を計算することを特徴とする請求項１から４のいずれか一項に記載のエコーキャンセラ。
【請求項６】
受信信号のエコー信号が送信側に戻ることを防止するために、該エコー信号に加算され、該エコー信号を減衰させる擬似エコー信号を生成する適応フィルタを有するエコーキャンセラにおいて、
受信信号のパワーと擬似エコー信号の加算されたエコー信号のパワーとからエコー信号の減衰量を一定の時間間隔毎に計算する第１の手段と、
前記第１の手段により計算された減衰量の最大値を追跡し、保持する第２の手段と、
前記第２の手段の保持する減衰量の最大値からエコー信号の減衰量の現在値を差し引いた値が所定の閾値を超えたときに、前記第２の手段から出力された減衰量の最大値を前記一定の時間間隔毎に一定の比率で減少させ、その値を保持する第３の手段と、
前記第２の手段の保持する減衰量の最大値と前記第３の手段の保持する値とが乖離し始めてから経過した時間の長さを計測する第４の手段とを備え、
前記第４の手段が計測した時間が所定の値に達したときに、前記第２の手段の保持する減衰量の最大値と前記第３の手段の保持する値の両方をエコー信号の減衰量の現在値にリセットするとともに、前記適応フィルタのフィルタ係数更新動作を開始することを特徴とするエコーキャンセラ。
【請求項７】
前記第２の手段の保持する減衰量の最大値が更新されたか否かを検出する第５の手段を備え、前記第２の手段の保持する減衰量の最大値が更新されたことを該第５の手段が出したときに前記適応フィルタのフィルタ係数更新動作を開始し、前記第２の手段の保持する減衰量の最大値が一定の期間に渡り更新されなかったことを該第５の手段が検出したときに前記適応フィルタのフィルタ係数更新動作を停止することを特徴とする請求項６に記載のエコーキャンセラ。
【請求項８】
ダブルトーク状態にあるか否かを検出する第６の手段を備え、ダブルトーク状態が該第６の手段により検出されたときに前記適応フィルタのフィルタ係数更新動作を停止し、該第６の手段がダブルトーク状態を検出しなくなったときに前記適応フィルタのフィルタ係数更新動作を開始することを特徴とする請求項７に記載のエコーキャンセラ。
【請求項９】
前記適応フィルタのフィルタ係数更新動作の開始及び停止の制御が、前記第４の手段の出力＞前記第５の手段の出力＞前記第６の手段の出力の順の優先順位で行われることを特徴とする請求項８に記載のエコーキャンセラ。
【請求項１０】
前記第１の手段は、該第１の手段に入力される受信信号及び擬似エコー信号の加算されたエコー信号のそれぞれについて、
入力信号のパワーを一定の時間間隔毎に計算するパワー計算手段と、
計算されたパワーの最大値を保持するとともに、該保持された最大値が更新されないとき、該保持する最大値を前記一定の時間間隔毎に一定の比率で減少させる最大値追跡／リーク手段とを備え、
該最大値追跡／リーク手段の出力する最大値に基づいてエコー信号の減衰量を計算することを特徴とする請求項６から９のいずれか一項に記載のエコーキャンセラ。
【請求項１１】
受信信号のエコー信号が送信側に戻ることを防止するために、該エコー信号に加算され、該エコー信号を減衰させる擬似エコー信号を生成する適応フィルタを有するエコーキャンセラにおいて、
受信信号のパワーとび擬似エコー信号の加算されたエコー信号のパワーとからエコー信号の減衰量を一定の時間間隔で計算する第１の手段と、
前記第１の手段により計算された減衰量の最大値を追跡し、保持する第２の手段と、
前記第２の手段の保持する減衰量の最大値からエコー信号の減衰量の現在値を差し引いた値が第１の閾値を超えたときに、該第２の手段から出力された減衰量の最大値を前記一定の時間間隔で一定の比率で減少させ、その値を保持する第３の手段と、
前記第２の手段の保持する減衰量の最大値と前記第３の手段の保持する値の乖離幅を前記一定の時間間隔毎に計算し、且つ該第２の手段の保持する減衰量の最大値と前記第３の手段の保持する値とが乖離し始めてから経過した時間の長さを計測する第４の手段とを備え、
前記第４の手段が計算した乖離幅が第２の閾値を超えるかあるいは該第４の手段が計測した時間が所定の値を超えたときに、前記第２の手段の保持する減衰量の最大値と前記第３の手段の保持する値の両方をエコー信号の減衰量の現在値にリセットするとともに、前記適応フィルタのフィルタ係数更新動作を開始することを特徴とするエコーキャンセラ。
【請求項１２】
前記第２の手段の保持する減衰量の最大値が更新されたか否かを検出する第５の手段を備え、前記第２の手段の保持する減衰量の最大値が更新されたことを該第５の手段が出したときに前記適応フィルタのフィルタ係数更新動作を開始し、前記第２の手段の保持する減衰量の最大値が一定の期間に渡り更新されなかったことを該第５の手段が検出したときに前記適応フィルタのフィルタ係数更新動作を停止することを特徴とする請求項１１に記載のエコーキャンセラ。
【請求項１３】
ダブルトーク状態にあるか否かを検出する第６の手段を備え、ダブルトーク状態が該第６の手段により検出されたときに前記適応フィルタのフィルタ係数更新動作を停止し、該第６の手段がダブルトーク状態を検出しなくなったときに前記適応フィルタのフィルタ係数更新動作を開始することを特徴とする請求項１２に記載のエコーキャンセラ。
【請求項１４】
前記適応フィルタのフィルタ係数更新動作の開始及び停止の制御が、前記第４の手段の出力＞前記第５の手段の出力＞前記第６の手段の出力の順の優先順位で行われることを特徴とする請求項１３に記載のエコーキャンセラ。
【請求項１５】
前記第１の手段は、該第１の手段に入力される受信信号及び擬似エコー信号の加算されたエコー信号のそれぞれについて、
入力信号のパワーを一定の時間間隔毎に計算するパワー計算手段と、
計算されたパワーの最大値を保持するとともに、該保持された最大値が更新されないとき、該保持する最大値を前記一定の時間間隔毎に一定の比率で減少させる最大値追跡／リーク手段とを備え、
該最大値追跡／リーク手段の出力する最大値に基づいてエコー信号の減衰量を計算することを特徴とする請求項１１から１４のいずれか一項に記載のエコーキャンセラ。
【請求項１６】
受信信号のエコー信号が送信側に戻ることを防止するために、該エコー信号に加算され、該エコー信号を消去する擬似エコー信号を生成する適応フィルタを有するエコーキャンセラにおいて、
エコー信号のパワーと擬似エコー信号の加算されたエコー信号のパワーとからエコー信号の消去量を一定の時間間隔毎に計算する第１の手段と、
前記第１の手段により計算された消去量の最大値を追跡し、保持する第２の手段と、
前記第２の手段の保持する消去量の最大値からエコー信号の消去量の現在値を差し引いた値が第１の閾値を超えたときに、該第２の手段から出力された消去量の最大値を前記一定の時間間隔毎に一定の比率で減少させ、その値を保持する第３の手段と、
前記第２の手段の保持する消去量の最大値と前記第３の手段の保持する値の乖離幅を前記一定の時間間隔で計算する第４の手段とを備え、
前記第４の手段が計算した乖離幅が第２の閾値を超えたときに、前記第２の手段から出力された消去量の最大値と前記第３の手段の保持する値の両方をエコー信号の消去量の現在値にリセットするとともに、前記適応フィルタのフィルタ係数更新動作を開始することを特徴とするエコーキャンセラ。
【請求項１７】
前記第２の手段の保持する消去量の最大値が更新されたか否かを検出する第５の手段を備え、前記第２の手段の保持する消去量の最大値が更新されたことを該第５の手段が出したときに前記適応フィルタのフィルタ係数更新動作を開始し、前記第２の手段の保持する消去量の最大値が一定の期間に渡り更新されなかったことを該第５の手段が検出したときに前記適応フィルタのフィルタ係数更新動作を停止することを特徴とする請求項１６に記載のエコーキャンセラ。
【請求項１８】
ダブルトーク状態にあるか否かを検出する第６の手段を備え、ダブルトーク状態が該第６の手段により検出されたときに前記適応フィルタのフィルタ係数更新動作を停止し、該第６の手段がダブルトーク状態を検出しなくなったときに前記適応フィルタのフィルタ係数更新動作を開始することを特徴とする請求項１７に記載のエコーキャンセラ。
【請求項１９】
前記適応フィルタのフィルタ係数更新動作の開始及び停止の制御が、前記第４の手段の出力＞前記第５の手段の出力＞前記第６の手段の出力の順の優先順位で行われることを特徴とする請求項１８に記載のエコーキャンセラ。
【請求項２０】
受信信号のエコー信号が送信側に戻ることを防止するために、該エコー信号に加算され、該エコー信号を消去する擬似エコー信号を生成する適応フィルタを有するエコーキャンセラにおいて、
エコー信号のパワーと擬似エコー信号の加算されたエコー信号のパワーとからエコー信号の消去量を一定の時間間隔毎に計算する第１の手段と、
前記第１の手段により計算された消去量の最大値を追跡し、保持する第２の手段と、
前記第２の手段の保持する消去量の最大値からエコー信号の消去量の現在値を差し引いた値が所定の閾値を超えたときに、前記第２の手段から出力された消去量の最大値を前記一定の時間間隔毎に一定の比率で減少させ、その値を保持する第３の手段と、
前記第２の手段の保持する消去量の最大値と前記第３の手段の保持する値とが乖離し始めてから経過した時間の長さを計測する第４の手段とを備え、
前記第４の手段が計測した時間が所定の値に達したときに、前記第２の手段の保持する消去量の最大値と前記第３の手段の保持する値の両方をエコー信号の消去量の現在値にリセットするとともに、前記適応フィルタのフィルタ係数更新動作を開始することを特徴とするエコーキャンセラ。
【請求項２１】
前記第２の手段の保持する消去量の最大値が更新されたか否かを検出する第５の手段を備え、前記第２の手段の保持する消去量の最大値が更新されたことを該第５の手段が出したときに前記適応フィルタのフィルタ係数更新動作を開始し、前記第２の手段の保持する消去量の最大値が一定の期間に渡り更新されなかったことを該第５の手段が検出したときに前記適応フィルタのフィルタ係数更新動作を停止することを特徴とする請求項２０に記載のエコーキャンセラ。
【請求項２２】
ダブルトーク状態にあるか否かを検出する第６の手段を備え、ダブルトーク状態が該第６の手段により検出されたときに前記適応フィルタのフィルタ係数更新動作を停止し、該第６の手段がダブルトーク状態を検出しなくなったときに前記適応フィルタのフィルタ係数更新動作を開始することを特徴とする請求項２１に記載のエコーキャンセラ。
【請求項２３】
前記適応フィルタのフィルタ係数更新動作の開始及び停止の制御が、前記第４の手段の出力＞前記第５の手段の出力＞前記第６の手段の出力の順の優先順位で行われることを特徴とする請求項２２に記載のエコーキャンセラ。
【請求項２４】
受信信号のエコー信号が送信側に戻ることを防止するために、該エコー信号に加算され、該エコー信号を消去する擬似エコー信号を生成する適応フィルタを有するエコーキャンセラにおいて、
エコ信号のパワーと擬似エコー信号の加算されたエコー信号のパワーとからエコー信号の消去量を一定の時間間隔で計算する第１の手段と、
前記第１の手段により計算された消去量の最大値を追跡し、保持する第２の手段と、
前記第２の手段の保持する消去量の最大値からエコー信号の消去量の現在値を差し引いた値が第１の閾値を超えたときに、該第２の手段から出力された消去量の最大値を前記一定の時間間隔で一定の比率で減少させ、その値を保持する第３の手段と、
前記第２の手段の保持する消去量の最大値と前記第３の手段の保持する値の乖離幅を前記一定の時間間隔毎に計算し、且つ前記第２の手段の保持する消去量の最大値と前記第３の手段の保持する値とが乖離し始めてから経過した時間の長さを計測する第４の手段とを備え、
前記第４の手段が計算した乖離幅が第２の閾値を超えるかあるいは該第４の手段が計測した時間が所定の値を超えたときに、前記第２の手段の保持する消去量の最大値と前記第３の手段の保持する値の両方をエコー信号の減衰量の現在値にリセットするとともに、前記適応フィルタのフィルタ係数更新動作を開始することを特徴とするエコーキャンセラ。
【請求項２５】
前記第２の手段の保持する消去量の最大値が更新されたか否かを検出する第５の手段を備え、前記第２の手段の保持する消去量の最大値が更新されたことを該第５の手段が出したときに前記適応フィルタのフィルタ係数更新動作を開始し、前記第２の手段の保持する消去量の最大値が一定の期間に渡り更新されなかったことを該第５の手段が検出したときに前記適応フィルタのフィルタ係数更新動作を停止することを特徴とする請求項２４に記載のエコーキャンセラ。
【請求項２６】
ダブルトーク状態にあるか否かを検出する第６の手段を備え、ダブルトーク状態が該第６の手段により検出されたときに前記適応フィルタのフィルタ係数更新動作を停止し、該第６の手段がダブルトーク状態を検出しなくなったときに前記適応フィルタのフィルタ係数更新動作を開始することを特徴とする請求項２５に記載のエコーキャンセラ。
【請求項２７】
前記適応フィルタのフィルタ係数更新動作の開始及び停止の制御が、前記第４の手段の出力＞前記第５の手段の出力＞前記第６の手段の出力の順の優先順位で行われることを特徴とする請求項２６に記載のエコーキャンセラ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、通信ラインのインピーダンス不整合等により発生するエコー信号を除去するために電話システム等に使用されるエコーキャンセラに関する。
【０００２】
【従来の技術】
エコーキャンセラに呼制御用の周期信号（例えば、呼び出し信号ＲＢＴ）が入力するとき、該周期信号の擬似エコー信号を生成し、該周期信号のエコーをキャンセルするために適応フィルタのフィルタ係数を更新するようにすると、次に音声信号が入力されたとき、適応フィルタは再びフィルタ係数を更新して行く必要があるのでエコーは直ちには除去されず、通話品質が低下するという問題がある。
【０００３】
この問題に対処するため、エコーキャンセラに入力される信号が周期信号か音声信号かを判別し、周期信号であれはエコーキャンセラの適応フィルタの係数更新を停止し、音声信号であればエコーキャンセラの適応フィルタの係数更新を行うことが例えば特開２００１-０２４７７８号公報に開示されている。
【０００４】
図１２を参照して、この公報に開示されたエコーキャンセラの動作を簡単に説明する。図１２は、インターネット電話(Ｖｏｉｐ)にエコーキャンセラを使用する例を示している。ここでは、近端者話者側のエコーキャンセラ１０１について説明する。近端話者Ａが遠端話者Ｂに電話をかける場合、まず、呼び出し信号ＲＢＴが遠端話者Ｂに送られる。
【０００５】
この呼び出し信号ＲＢＴは、近端話者側のエコーキャンセラ１０１とインターネット回線との間のゲートウェイ１０３、あるいは遠端話者側の不図示のゲートウェイまたは遠端話者側の不図示のＰＢＸが発生する。この呼び出し信号は近端話者Ａにも送られ、近端話者Ａは「プルルー」というような呼び出し音を聞くことができる。
【０００６】
この時、遠端話者Ｂが不在等の理由により電話に出ないとき、近端話者Ａは通話をあきらめ受話器を下ろすが、この時、一般には、近端話者側のＰＢＸ１０６はこれを検知して、話中信号ＢＴを出力する。この話中信号ＢＴは、エコーキャンセラ１０１を通過し、ゲートウェイ１０３に入力する。ゲートウェイ１０３がこの話中信号ＢＴを検出すると、近端話者Ａが回線の確立を放棄したとみなし、回線を開放する。
【０００７】
【発明が解決しようとする課題】
しかし、上記したようにこのエコーキャンセラ１０１は、周期信号が入力された時点でフィルタ係数の更新を停止しているので、周期信号のエコーを打ち消す能力が無い。そのため、近端話者Ａがダイヤルし終えた時点でゲートウェイ１０３から近端話者側に送られる呼び出し信号ＲＢＴのエコーはエコーキャンセラ１０１によって除去されることなく、そのままゲートウェイ１０３の送信側入力端子に入る。その後、近端話者Ａが通話をあきらめて受話器を置くと、例えばＰＢＸ１０６が生成した話中信号ＢＴはハイブリッドトランス１０４及びエコーキャンセラ１０１を経由してゲートウェイの送信側入力端子に入る。従ってこの時点では、ゲートウェイ１０３の送信側入力端子には呼び出し信号ＲＢＴのエコー信号と話中信号ＢＴの２種類の信号が重畳されて到来することになる。
【０００８】
話中信号ＢＴと呼び出し信号ＲＢＴは周波数が同ーであるシステムも多い。例えば日本国内では、話中信号ＢＴ及び呼び出し信号ＲＢＴは信号の断続周期こそ異なっているが、周波数はともに４００Ｈｚの周期信号である。また信号の最大振幅もほぼ等しい。このような場合、ゲートウェイ１０３は両者が混在した信号から話中信号ＢＴを見つけることができず、回線を開放することができないので回線を新たな通信に使用することができなくなるという問題がある。
【０００９】
一方、この問題に対処するため、周期信号が入力されたときにもフィルタ係数を更新するようにすると以下のような別の問題が発生することになる。
【００１０】
即ち、エコーキャンセラ１０１には、周期信号で学習するエコー経路の様子(伝達経路波形)と、音声信号のようなある程度の周波数帯域を有する信号で学習するエコー経路の様子は異なるものとして観測される。回線接続初期の周期信号のやり取り時の学習を優先させる場合、エコーキャンセラ１０１は周期信号の周波数成分(例えば４００Ｈｚ)のエコー経路成分を良く学習するが、他の周波数成分に関してはまったくの未学習状態となる。例えば呼び出し信号ＲＢＴ信号に応答し、遠端話者が受話器を取り上げると、次に始まるのは音声信号による会話であるが、音声信号は電話回線上では、３４０Ｈｚ-４０００Ｈｚ程度の周波数的広がりを持つ信号である。この時、エコーキャンセラ１０１にとっては、エコー経路の様子が急に変化することになる。特に音声信号の周波数成分のうちの未学習の周波数成分に関しては、どのような推定アルゴリズムを用いても、エコーを十分に除去できるようになるまでには学習時間が必要であり、通話品質が低下する。
【００１１】
この問題は、ほとんどのエコーキャンセラには簡単なダブルトーク検出器が実装されているという理由からより大きくなる。ダブルトークとは、遠端話者の音声信号と近端話者の音声信号が同時に存在する状態を意味し、通常、この状態ではエコー信号と伝送すべき音声信号とを区別することが困難であり適応フィルタの係数更新を停止する。例えば、周期信号のエコーを除去する期間が終ると、エコーキャンセラ１０１は遠端話者の音声信号のエコー除去する期間に入るが、上に述べたように、エコーキャンセラ１０１は音声信号エコーを消す為の正しいエコー経路の波形を学習していないので遠端話者の音声信号のエコーを除去することができない。そのため、送信側出力端子Ｓｏｕｔに観測されるエコー信号のレベルが高くなるので、特に、受信側入力端子Ｒｉｎに入る音声信号のレベルと送信側出力端子Ｓｏｕｔから出る音声信号のレベルとを比較してダブルトークを検出する通常のエコーキャンセラの場合、ダブルトーク状態と誤判定し、適応フィルタ係数更新を停止してしまうケースが多くなる。このとき、エコーキャンセラは継続的に適応フィルタの係数更新を停止したままとなり、話者はエコーの多い劣悪な通話を強いられることになる。
【００１２】
以上説明したように、上記の従来の構成のエコーキャンセラでは、周期信号入力時にフィルタ係数の更新を停止するようにすれば、呼び出し信号のエコーと話中信号とが混在した場合、話中信号を検出できなくなるので回線を開放することができず、一方、周期信号のエコー除去を優先すると、肝心の会話中のエコー感を残してしまうという問題がる。
【００１３】
それに加え、上記の従来のエコーキャンセラは、呼制御信号(周期信号)と音声信号が連続するような時はエコーを除去するためにエコーキャンセラを複雑に制御する必要があり、装置規模、あるいはソフトウェア規模が大きく、周期信号と音声信号の判別の為に複雑な信号検出器を必要とするので製造コストが高いという問題もある。
【００１４】
本発明は、上記の問題に鑑みなされたものであり、周期信号と音声信号の両方のエコーを除去することのできるエコーキャンセラを低コストで提供することを課題とする。
【００１５】
【課題を解決するための手段】
上記課題を解決すべく、請求項１に記載の発明は、受信信号のエコー信号が送信側に戻ることを防止するために、該エコー信号に加算され、該エコー信号を減衰させる擬似エコー信号を生成する適応フィルタを有するエコーキャンセラにおいて、
受信信号のパワーと擬似エコー信号の加算されたエコー信号のパワーとからエコー信号の減衰量を一定の時間間隔毎に計算する第１の手段と、
前記第１の手段により計算された減衰量の最大値を追跡し、保持する第２の手段と、
前記第２の手段の保持する減衰量の最大値からエコー信号の減衰量の現在値を差し引いた値が第１の閾値を超えたときに、該第２の手段から出力された減衰量の最大値を前記一定の時間間隔毎に一定の比率で減少させ、その値を保持する第３の手段と、
前記第２の手段の保持する減衰量の最大値と前記第３の手段の保持する値の乖離幅を前記一定の時間間隔で計算する第４の手段とを備え、
前記第４の手段が計算した乖離幅が第２の閾値を超えたときに、前記第２の手段の保持する減衰量の最大値と前記第３の手段の保持する値の両方をエコー信号の減衰量の現在値にリセットするとともに、前記適応フィルタのフィルタ係数更新動作を開始することを特徴とする。
【００１６】
請求項２に記載の発明は、請求項１に記載の発明において、前記第２の手段の保持する減衰量の最大値が更新されたか否かを検出する第５の手段を備え、前記第２の手段の保持する減衰量の最大値が更新されたことを該第５の手段が出したときに前記適応フィルタのフィルタ係数更新動作を開始し、前記第２の手段の保持する減衰量の最大値が一定の期間に渡り更新されなかったことを該第５の手段が検出したときに前記適応フィルタのフィルタ係数更新動作を停止することを特徴とする。
【００１７】
請求項３に記載の発明は、請求項２に記載の発明において、ダブルトーク状態にあるか否かを検出する第６の手段を備え、ダブルトーク状態が該第６の手段により検出されたときに前記適応フィルタのフィルタ係数更新動作を停止し、該第６の手段がダブルトーク状態を検出しなくなったときに前記適応フィルタのフィルタ係数更新動作を開始することを特徴とする。
【００１８】
請求項４に記載の発明は、請求項３に記載の発明において、前記適応フィルタのフィルタ係数更新動作の開始及び停止の制御が、前記第４の手段の出力＞前記第５の手段の出力＞前記第６の手段の出力の順の優先順位で行われることを特徴とする。
【００１９】
請求項５に記載の発明は、請求項１から４のいずれか一項に記載の発明において、前記第１の手段は、該第１の手段に入力される受信信号及び擬似エコー信号の加算されたエコー信号のそれぞれについて、
入力信号のパワーを一定の時間間隔毎に計算するパワー計算手段と、
計算されたパワーの最大値を保持するとともに、該保持された最大値が更新されないとき、該保持する最大値を前記一定の時間間隔毎に一定の比率で減少させる最大値追跡／リーク手段とを備え、
該最大値追跡／リーク手段の出力する最大値に基づいてエコー信号の減衰量を計算することを特徴とする。
【００２０】
上記課題を解決すべく、請求項６に記載の発明は、受信信号のエコー信号が送信側に戻ることを防止するために、該エコー信号に加算され、該エコー信号を減衰させる擬似エコー信号を生成する適応フィルタを有するエコーキャンセラにおいて、
受信信号のパワーと擬似エコー信号の加算されたエコー信号のパワーとからエコー信号の減衰量を一定の時間間隔毎に計算する第１の手段と、
前記第１の手段により計算された減衰量の最大値を追跡し、保持する第２の手段と、
前記第２の手段の保持する減衰量の最大値からエコー信号の減衰量の現在値を差し引いた値が所定の閾値を超えたときに、前記第２の手段から出力された減衰量の最大値を前記一定の時間間隔毎に一定の比率で減少させ、その値を保持する第３の手段と、
前記第２の手段の保持する減衰量の最大値と前記第３の手段の保持する値とが乖離し始めてから経過した時間の長さを計測する第４の手段とを備え、
前記第４の手段が計測した時間が所定の値に達したときに、前記第２の手段の保持する減衰量の最大値と前記第３の手段の保持する値の両方をエコー信号の減衰量の現在値にリセットするとともに、前記適応フィルタのフィルタ係数更新動作を開始することを特徴とする。
【００２１】
請求項７に記載の発明は、請求項６に記載の発明において、前記第２の手段の保持する減衰量の最大値が更新されたか否かを検出する第５の手段を備え、前記第２の手段の保持する減衰量の最大値が更新されたことを該第５の手段が出したときに前記適応フィルタのフィルタ係数更新動作を開始し、前記第２の手段の保持する減衰量の最大値が一定の期間に渡り更新されなかったことを該第５の手段が検出したときに前記適応フィルタのフィルタ係数更新動作を停止することを特徴とする。
【００２２】
請求項８に記載の発明は、請求項７に記載の発明において、ダブルトーク状態にあるか否かを検出する第６の手段を備え、ダブルトーク状態が該第６の手段により検出されたときに前記適応フィルタのフィルタ係数更新動作を停止し、該第６の手段がダブルトーク状態を検出しなくなったときに前記適応フィルタのフィルタ係数更新動作を開始することを特徴とする。
【００２３】
請求項９に記載の発明は、請求項８に記載の発明において、前記適応フィルタのフィルタ係数更新動作の開始及び停止の制御が、前記第４の手段の出力＞前記第５の手段の出力＞前記第６の手段の出力の順の優先順位で行われることを特徴とする。
【００２４】
請求項１０に記載の発明は、請求項６から９のいずれか一項に記載の発明において、前記第１の手段は、該第１の手段に入力される受信信号及び擬似エコー信号の加算されたエコー信号のそれぞれについて、
入力信号のパワーを一定の時間間隔毎に計算するパワー計算手段と、
計算されたパワーの最大値を保持するとともに、該保持された最大値が更新されないとき、該保持する最大値を前記一定の時間間隔毎に一定の比率で減少させる最大値追跡／リーク手段とを備え、
該最大値追跡／リーク手段の出力する最大値に基づいてエコー信号の減衰量を計算することを特徴とする。
【００２５】
上記課題を解決すべく、請求項１１に記載の発明は、受信信号のエコー信号が送信側に戻ることを防止するために、該エコー信号に加算され、該エコー信号を減衰させる擬似エコー信号を生成する適応フィルタを有するエコーキャンセラにおいて、
受信信号のパワーとび擬似エコー信号の加算されたエコー信号のパワーとからエコー信号の減衰量を一定の時間間隔で計算する第１の手段と、
前記第１の手段により計算された減衰量の最大値を追跡し、保持する第２の手段と、
前記第２の手段の保持する減衰量の最大値からエコー信号の減衰量の現在値を差し引いた値が第１の閾値を超えたときに、該第２の手段から出力された減衰量の最大値を前記一定の時間間隔で一定の比率で減少させ、その値を保持する第３の手段と、
前記第２の手段の保持する減衰量の最大値と前記第３の手段の保持する値の乖離幅を前記一定の時間間隔毎に計算し、且つ該第２の手段の保持する減衰量の最大値と前記第３の手段の保持する値とが乖離し始めてから経過した時間の長さを計測する第４の手段とを備え、
前記第４の手段が計算した乖離幅が第２の閾値を超えるかあるいは該第４の手段が計測した時間が所定の値を超えたときに、前記第２の手段の保持する減衰量の最大値と前記第３の手段の保持する値の両方をエコー信号の減衰量の現在値にリセットするとともに、前記適応フィルタのフィルタ係数更新動作を開始することを特徴とする。
【００２６】
請求項１２に記載の発明は、請求項１１に記載の発明において、前記第２の手段の保持する減衰量の最大値が更新されたか否かを検出する第５の手段を備え、前記第２の手段の保持する減衰量の最大値が更新されたことを該第５の手段が出したときに前記適応フィルタのフィルタ係数更新動作を開始し、前記第２の手段の保持する減衰量の最大値が一定の期間に渡り更新されなかったことを該第５の手段が検出したときに前記適応フィルタのフィルタ係数更新動作を停止することを特徴とする。
【００２７】
請求項１３に記載の発明は、請求項１２に記載の発明において、ダブルトーク状態にあるか否かを検出する第６の手段を備え、ダブルトーク状態が該第６の手段により検出されたときに前記適応フィルタのフィルタ係数更新動作を停止し、該第６の手段がダブルトーク状態を検出しなくなったときに前記適応フィルタのフィルタ係数更新動作を開始することを特徴とする。
【００２８】
請求項１４に記載の発明は、請求項１３に記載の発明において、前記適応フィルタのフィルタ係数更新動作の開始及び停止の制御が、前記第４の手段の出力＞前記第５の手段の出力＞前記第６の手段の出力の順の優先順位で行われることを特徴とする。
【００２９】
請求項１５に記載の発明は、請求項１１から１４のいずれか一項に記載の発明において、前記第１の手段は、該第１の手段に入力される受信信号及び擬似エコー信号の加算されたエコー信号のそれぞれについて、
入力信号のパワーを一定の時間間隔毎に計算するパワー計算手段と、
計算されたパワーの最大値を保持するとともに、該保持された最大値が更新されないとき、該保持する最大値を前記一定の時間間隔毎に一定の比率で減少させる最大値追跡／リーク手段とを備え、
該最大値追跡／リーク手段の出力する最大値に基づいてエコー信号の減衰量を計算することを特徴とする。
【００３０】
上記課題を解決すべく、請求項１６に記載の発明は、受信信号のエコー信号が送信側に戻ることを防止するために、該エコー信号に加算され、該エコー信号を消去する擬似エコー信号を生成する適応フィルタを有するエコーキャンセラにおいて、
エコー信号のパワーと擬似エコー信号の加算されたエコー信号のパワーとからエコー信号の消去量を一定の時間間隔毎に計算する第１の手段と、
前記第１の手段により計算された消去量の最大値を追跡し、保持する第２の手段と、
前記第２の手段の保持する消去量の最大値からエコー信号の消去量の現在値を差し引いた値が第１の閾値を超えたときに、該第２の手段から出力された消去量の最大値を前記一定の時間間隔毎に一定の比率で減少させ、その値を保持する第３の手段と、
前記第２の手段の保持する消去量の最大値と前記第３の手段の保持する値の乖離幅を前記一定の時間間隔で計算する第４の手段とを備え、
前記第４の手段が計算した乖離幅が第２の閾値を超えたときに、前記第２の手段から出力された消去量の最大値と前記第３の手段の保持する値の両方をエコー信号の消去量の現在値にリセットするとともに、前記適応フィルタのフィルタ係数更新動作を開始することを特徴とする。
【００３１】
請求項１７に記載の発明は、請求項１６に記載の発明において、前記第２の手段の保持する消去量の最大値が更新されたか否かを検出する第５の手段を備え、前記第２の手段の保持する消去量の最大値が更新されたことを該第５の手段が出したときに前記適応フィルタのフィルタ係数更新動作を開始し、前記第２の手段の保持する消去量の最大値が一定の期間に渡り更新されなかったことを該第５の手段が検出したときに前記適応フィルタのフィルタ係数更新動作を停止することを特徴とする。
【００３２】
請求項１８に記載の発明は、請求項１７に記載の発明において、ダブルトーク状態にあるか否かを検出する第６の手段を備え、ダブルトーク状態が該第６の手段により検出されたときに前記適応フィルタのフィルタ係数更新動作を停止し、該第６の手段がダブルトーク状態を検出しなくなったときに前記適応フィルタのフィルタ係数更新動作を開始することを特徴とする。
【００３３】
請求項１９に記載の発明は、請求項１８に記載の発明において、前記適応フィルタのフィルタ係数更新動作の開始及び停止の制御が、前記第４の手段の出力＞前記第５の手段の出力＞前記第６の手段の出力の順の優先順位で行われることを特徴とする。
【００３４】
上記課題を解決すべく、請求項２０に記載の発明は、受信信号のエコー信号が送信側に戻ることを防止するために、該エコー信号に加算され、該エコー信号を消去する擬似エコー信号を生成する適応フィルタを有するエコーキャンセラにおいて、
エコー信号のパワーと擬似エコー信号の加算されたエコー信号のパワーとからエコー信号の消去量を一定の時間間隔毎に計算する第１の手段と、
前記第１の手段により計算された消去量の最大値を追跡し、保持する第２の手段と、
前記第２の手段の保持する消去量の最大値からエコー信号の消去量の現在値を差し引いた値が所定の閾値を超えたときに、前記第２の手段から出力された消去量の最大値を前記一定の時間間隔毎に一定の比率で減少させ、その値を保持する第３の手段と、
前記第２の手段の保持する消去量の最大値と前記第３の手段の保持する値とが乖離し始めてから経過した時間の長さを計測する第４の手段とを備え、
前記第４の手段が計測した時間が所定の値に達したときに、前記第２の手段の保持する消去量の最大値と前記第３の手段の保持する値の両方をエコー信号の消去量の現在値にリセットするとともに、前記適応フィルタのフィルタ係数更新動作を開始することを特徴とする。
【００３５】
請求項２１に記載の発明は、請求項２０に記載の発明において、前記第２の手段の保持する消去量の最大値が更新されたか否かを検出する第５の手段を備え、前記第２の手段の保持する消去量の最大値が更新されたことを該第５の手段が出したときに前記適応フィルタのフィルタ係数更新動作を開始し、前記第２の手段の保持する消去量の最大値が一定の期間に渡り更新されなかったことを該第５の手段が検出したときに前記適応フィルタのフィルタ係数更新動作を停止することを特徴とする。
【００３６】
請求項２２に記載の発明は、請求項２０に記載の発明において、ダブルトーク状態にあるか否かを検出する第６の手段を備え、ダブルトーク状態が該第６の手段により検出されたときに前記適応フィルタのフィルタ係数更新動作を停止し、該第６の手段がダブルトーク状態を検出しなくなったときに前記適応フィルタのフィルタ係数更新動作を開始することを特徴とする。
【００３７】
請求項２３に記載の発明は、請求項２２に記載の発明において、前記適応フィルタのフィルタ係数更新動作の開始及び停止の制御が、前記第４の手段の出力＞前記第５の手段の出力＞前記第６の手段の出力の順の優先順位で行われることを特徴とする。
【００３８】
上記課題を解決すべく、請求項２４に記載の発明は、受信信号のエコー信号が送信側に戻ることを防止するために、該エコー信号に加算され、該エコー信号を消去する擬似エコー信号を生成する適応フィルタを有するエコーキャンセラにおいて、
エコ信号のパワーと擬似エコー信号の加算されたエコー信号のパワーとからエコー信号の消去量を一定の時間間隔で計算する第１の手段と、
前記第１の手段により計算された消去量の最大値を追跡し、保持する第２の手段と、
前記第２の手段の保持する消去量の最大値からエコー信号の消去量の現在値を差し引いた値が第１の閾値を超えたときに、該第２の手段から出力された消去量の最大値を前記一定の時間間隔で一定の比率で減少させ、その値を保持する第３の手段と、
前記第２の手段の保持する消去量の最大値と前記第３の手段の保持する値の乖離幅を前記一定の時間間隔毎に計算し、且つ前記第２の手段の保持する消去量の最大値と前記第３の手段の保持する値とが乖離し始めてから経過した時間の長さを計測する第４の手段とを備え、
前記第４の手段が計算した乖離幅が第２の閾値を超えるかあるいは該第４の手段が計測した時間が所定の値を超えたときに、前記第２の手段の保持する消去量の最大値と前記第３の手段の保持する値の両方をエコー信号の減衰量の現在値にリセットするとともに、前記適応フィルタのフィルタ係数更新動作を開始することを特徴とする。
【００３９】
請求項２５に記載の発明は、請求項２４に記載の発明において、前記第２の手段の保持する消去量の最大値が更新されたか否かを検出する第５の手段を備え、前記第２の手段の保持する消去量の最大値が更新されたことを該第５の手段が出したときに前記適応フィルタのフィルタ係数更新動作を開始し、前記第２の手段の保持する消去量の最大値が一定の期間に渡り更新されなかったことを該第５の手段が検出したときに前記適応フィルタのフィルタ係数更新動作を停止することを特徴とする。
【００４０】
請求項２６に記載の発明は、請求項２５に記載の発明において、ダブルトーク状態にあるか否かを検出する第６の手段を備え、ダブルトーク状態が該第６の手段により検出されたときに前記適応フィルタのフィルタ係数更新動作を停止し、該第６の手段がダブルトーク状態を検出しなくなったときに前記適応フィルタのフィルタ係数更新動作を開始することを特徴とする。
【００４１】
請求項２７に記載の発明は、請求項２６に記載の発明において、前記適応フィルタのフィルタ係数更新動作の開始及び停止の制御が、前記第４の手段の出力＞前記第５の手段の出力＞前記第６の手段の出力の順の優先順位で行われることを特徴とする。
【００４２】
【発明の実施の形態】
第１の実施形態
図１は本発明の第１の実施形態のエコーキャンセラの構成を示すブロック図であり、同図においてＲｉｎは受信側入力端子（以下、Ｒｉｎ端子と呼ぶ）、Ｒｏｕｔは受信側出力端子（以下、Ｒｏｕｔ端子と呼ぶ）、Ｓｉｎは送信側入力端子（以下、Ｓｉｎ端子と呼ぶ）、Ｓｏｕｔは送信側出力端子（以下、Ｓｏｕｔ端子と呼ぶ）、５及び７はパワー計算機、６はエコー減衰量計算機、９は最大値追跡器、８は最大値更新判定器、１０は最大値リーク計算機、１１は乖離幅判定器、１２はダブルトーク検出器、１３は適応フィルタ係数更新制御回路である。以下にこのエコーキャンセラの動作を説明する。ここでは、最初に受信側入力端子Ｒｉｎに周期信号である呼び出し信号ＲＢＴ（以下、ＲＢＴ信号と呼ぶ）が入力されるものと仮定する。
【００４３】
Ｒｉｎ端子からエコーキャンセラに入るＲＢＴ信号はパワー計算機５及び７、ダブルトーク検出器１２、適応フィルタ１５に入力される。この時、Ｓｉｎ端子には信号は入力されない。パワー計算機７はＲｉｎ端子から入力された信号のレベルを計算し、計算結果をエコー減衰量計算機６に出力する。Ｒｉｎ端子から入力された信号はダブルトーク検出器１２にも入力されるが、Ｓｉｎ端子に入力する信号は無いのでダブルトーク検出器１２は何の信号も出力しない。
【００４４】
適応フィルタ１５は、「学習同定法」等の公知のアルゴリズムを用い、やがてＳｉｎ端子に到来するであろうエコーｙの反対信号(疑似エコー)ｙ'を生成する。Ｓｉｎ端子に到来したエコーyは加算器１４で疑似エコーy'と加算され相殺される。加算器１４の出力する信号（Ｒｅｓ信号と呼ぶ）はダブルトーク検出器１２、適応フィルタ１５,パワー計算機５に出力される。
【００４５】
ダブルトーク検出器１２は、Ｒｉｎ端子から入る信号（以下、Ｒｉｎ信号と呼ぶ）のレベルと、加算器１４の出力するＲｅｓ信号のレベルとを比較し、例えば、Ｒｅｓ信号レベル×２＞Ｒｉｎ信号レベル
であれば、ダブルトーク状態であると判定する。ダブルトーク検出器１２がダブルトーク状態を検出すると、適応フィルタ係数更新制御回路１３は適応フィルタ１５の係数更新を停止する。ダブルトーク検出器１２のダブルトーク状態の検出には、上記の信号レベルの比較以外の任意の公知の方法を用いることができる。
【００４６】
一方、パワー計算機５はＲｅｓ信号のレベルを計算し、エコー減衰量計算機６に出力する。また、パワー計算機７はＲｉｎ信号のレベルを計算しエコー減衰量計算機６に出力する。パワー計算機５及び７のそれぞれは、例えば入力信号のレベルxを下記の式から求める。
【００４７】
x(k) = x(k−１) × (１-δ)+｜x（ｋ）｜ × δ1    …(１)
ここでｋはサンプル番号１，２，３,…,ｎ、x(0)は０である。δ1は平滑定数（0< δ1 < １）であり、本実施形態ではδ1 = 2-7 である。δ1の値を大きくすると信号の大まかな変化をよく表すことができ、一方、小さくすると信号レベルの変化に敏感となる。
【００４８】
エコー減衰量計算機６はパワー計算機５，７からの２つの信号のレベルからエコー減衰量を計算する。具体的にはＲｉｎ信号のレベルをL_rin(k)、Ｒｅｓ信号のレベルをL_res(k)とするとき、エコー減衰量iacom(k)を下記の式に従って計算する。
【００４９】
iacom(k) = 20 × LOG１０ (L_rin(k))/L_res(k))    …(２)
（２）式の計算は、Ｒｉｎ端子に信号入力があるときに実行される。Ｒｉｎ端子への信号入力の有無は、レベル測定回路などの公知の手段を用いて行うことができる。
【００５０】
エコー減衰量iacom(k)は最大値追跡器９に入力され、最大値追跡器９はiacom(k)が、その時点までに計算したエコー減衰量の中で最大であれば、最大値追跡変数imax_iacom(k)を
imax_iacom(k) = iacom(k)    …(３)
とし、そうでなければ、
imax_iacom(k) = imax_iacom(k-１)    …(４)
として以前の値を保持する。但し、iacom(0) = 0 である。
【００５１】
最大値追跡器９は最大値追跡変数imax_iacom(k)を最大値更新判定器８と最大値リーク計算機１０とに出力する。最大値リーク計算機１０の動作に関しては後述する。最大値更新判定器８はimax_iacom(k-１)とimax_iacom(k)とを比較し、
imax_iacom(k-１) < imax_iacom(k)    …(５)
であれば適応フィルタ係数更新制御回路１３に係数更新信号adp(k)を出力し、係数更新動作を実行させる。一方、
imax_iacom(k-１) ≧ imax_iacom(k)    …(６)
の時は、最大値更新判定器８は最大値が上昇していないと判断し、不図示の最大値上昇なしカウンタimax_iacom_sgc_comp_counterのカウンタ値を１だけ増加させる。そして
imax_iacom_sgc_comp_counter < K    …(７)
である間は適応フィルタ係数更新制御回路１３に係数更新信号adp(k)を出力し、係数更新動作を実行させる。また、
imax_iacom_sgc_comp_counter ≧ K    …(８)
になった時には適応フィルタ係数更新制御回路１３に係数更新信号not_adp(k)を出力し、係数更新動作を停止させる。本実施形態ではK = 8000としたが、これに限定されるものではない。
【００５２】
次に最大値リーク計算機１０の動作を説明する。最大値リーク計算機１０は、
iacom(k) < imax_iacom(k) - α    …(９)
のとき、最大値リーク変数imax_iacom_sgc_save(k)を下記の式に従い計算する。ここでαは定数であり、本実施形態では１０ｄＢであるが、これに限定されるものではない。
【００５３】
imax_iacom_sgc_save(k) = imax_iacom_sgc_save(k-1) × δ2    …(１０)
但しimax_iacom_sgc_save(0) = 0であり、また、（９）式が成立しない場合は、（１０）式の動作は実行しない。（即ち、imax_iacom_sgc_save(k)を以前の値に保持する）。本実施形態ではδ2 = 0.99しているがこれに限定されるものではない。
【００５４】
乖離幅判定器１１には、最大値追跡変数imax_iacom(k)が最大値追跡器９から供給され、また最大値リーク変数imax_iacom_sgc_save(k)が最大値リーク計算機１０から供給される。乖離幅判定器１１は、
imax_iacom_sgc_save(k) × δ3 < imax_iacom(k)
となった時、適応フィルタ係数更新制御回路１３に係数更新信号adpを出力し、適応フィルタ１５の係数の更新を開始させる。本実施形態ではδ3=2.0倍(dB表示では6dB)としているが、これに限定されるものではない。尚、倍率A1とdB表示A2との間にはA2(dB) = 20 × LOG１OA1（倍）の関係がある。
【００５５】
また、最大値追跡器９はこのとき、最大値追跡変数imax_iacom(k)及び最大値リーク変数imax_iacom_sgc_save(k)を下記の式に従い、その時点のエコー減衰量iacom(k)にリセットする。
【００５６】
imax_iacom_sgc-save(k) = imax_iacom(k) = iacom(k)    …(１１)
最大値更新判定器８、ダブルトーク検出器１２、乖離幅判定器１１のいずれかから係数更新信号が入力されると適応フィルタ係数更新制御回路１３は適応フィルタ１５の係数更新を開始または停止するが、その優先度は、
乖離幅判定器１１＞最大値更新判定器８＞ダブルトーク検出器１２
の順である。即ち、乖離幅判定器１１からの係数更新の開始または停止の指示が最も優先され、次に最大値更新判定器８からの係数更新の開始または停止の指示が優先される。
【００５７】
次に、上記構成のエコーキャンセラにおける、エコー減衰量iacom(k)、最大値追跡変数imax_iacom(k)、最大値リーク変数imax_iacom_sgc_save(k)の時間的変化の例を図２を参照して説明する。図２は、最初にＲｉｎ端子にＲＢＴ信号が入力され、その後、音声信号が入力されたときのエコー減衰量iacom(k)、最大値追跡変数imax_iacom(k)、係数更新信号adp、最大値リーク変数imax_iacom_sgc_save(k)、δ3（乖離度）の変化の様子を示している。
【００５８】
時刻Ｔ１において、imax_iacom_sgc_comp_counter = 8000が成立し、一旦、係数更新が完全に停止される。この後、時刻Ｔ２においてエコーキャンセラに入力する信号がＲＢＴ信号から音声信号に変化すると、エコー減衰量iacom(k)は急激に減少する。なぜならエコーキャンセラは音声帯域におけるエコーパスを学習していないからである。そのため、このとき、エコー減衰量iacom(k)と最大値追跡変数imax_iacom(k)との差は閾値αを超え、上記（１０）式の動作により最大値リーク変数imax_iacom_sgc_save(k)も徐々に減少して行く。最大値追跡変数imax_iacom(k)と最大値リーク変数imax_iacom_sgc_save(k)の乖離がδ3に達した時点で係数更新信号adpが乖離幅判定器１１から適応フィルタ係数更新制御回路１３に出力されるとともに、最大値追跡変数imax_iacom(k)及び最大値リーク変数imax_iacom_sgc_save(k)がその時点のエコー減衰量iacom(k)にリセットされる。この後、最大値追跡変数の更新が行われている間はフィルタ係数が更新される。
【００５９】
以上説明したように、本発明のエコーキャンセラは、周期信号と音声信号とを判別する特段の検出器を用いること無しに、エコーキャンセラに入力する信号が周期信号から音声信号に変化すると再学習を自動的に開始することができる。
【００６０】
また、本発明のエコーキャンセラは、話中信号ＢＴ及び呼び出し信号ＲＢＴのエコーが同時にエコーキャンセラに入力している状態でも話中信号ＢＴを検出することができ、従来のように話中信号ＢＴが検出できず、回線が開放されなくなるという問題も生じない。その理由を以下に説明する。
【００６１】
前述したように、遠端話者が電話に出ず、近端話者が呼び出し音（ＲＢＴ信号）を聞いている状態で電話を切った場合、ＢＴ信号（話中信号）が生成されエコーキャンセラに入力される。この場合、エコーキャンセラのＲｉｎ端子にＲＢＴ信号が数回入力されたあと、Ｓｉｎ端子にＢＴ信号が入力されることになる。図２を参照して説明したようにＲＢＴ信号受信中の時刻Ｔ１でエコーキャンセラの係数更新は停止され、その時点でＲＢＴ信号についてのエコー経路の学習は完全に終了しているので時刻Ｔ１以降、ＲＢＴ信号のエコーはほぼ完全に除去される。従って、時刻Ｔ１以降にＳｉｎ端子からＢＴ信号（話中信号）が入力されたとしても、ＲＢＴ信号のエコーだけがほぼ完全に除去されるので、ＢＴ信号は打ち消されることなくＳｏｕｔ端子から出力される。なぜなら、時刻Ｔ１において、エコーキャンセラの学習動作が停止しており、エコーキャンセラはもはやＲＢＴ信号のエコーを打ち消す信号以外の信号を生成しないからである。
【００６２】
以上、説明したように、本発明の第１の実施形態では、
Ｒｉｎ端子、Ｓｉｎ端子から入力する信号のパワーを計算するパワー計算機５,７を設け、
計算されたパワーからエコー減衰量を計算するエコー減衰量計算機６を設け、
エコー減衰量計算機６の出力の最大値を追跡する最大値追跡器９を設け、
最大値が新たな最大値に更新されているかどうかを判定する最大値更新判定器８を設け、
最大値が更新されないとき、保持している最大値をリークして徐々に減少させる最大値リーク計算機１０を設け、
最大値リーク計算機１０の出力と最大値追跡器９の出力との乖離を計算する乖離幅判定器１１を設け、
適応フィルタ１５の係数更新の開始及び停止の制御を行う適応フィルタ１５係数制御回路１３を設け、
最大値更新判定器８が、あらかじめ定めた回数だけ最大値が更新されないときに適応フィルタ１５の係数更新を停止し、ＲＢＴエコー信号の除去を確実に行いＢＴ信号を打ち消すことなく透過できるようにし、
最大値更新判定器８が適応フィルタ１５の係数更新を停止した後でも、乖離幅判定器１１の判定結果によって、入力信号がＲＢＴ信号から音声信号に変化した際には自動的にエコーキャンセラが学習を再開できるようにしたので、
回線を開放できなくなる従来の問題を解決し、なおかつ、周期信号と音声信号とを判別するための複雑な装置を用いなくても、周期信号、音声信号両方のエコーを除去できる。
【００６３】
第２の実施形態
図３は本発明の第２の実施形態のエコーキャンセラの構成を示すブロック図である。第２の実施形態は、乖離幅判定器１１に代えて乖離時間判定器２０を用いる点で第１の実施形態と異なり、その他の構成は同じである。従って以下では乖離時間判定器２０と適応フィルタ係数更新制御回路１３の動作について説明し、その他に関しては説明を省略する。
【００６４】
最大値追跡器９での最大値更新の停止後、エコー減衰量iacom(k)と最大値追跡変数imax_iacom(k)との差が閾値αを超えるときは、最大値リーク計算機１０が出力する最大値リーク変数imax_iacom_sgc_save(k)が徐々に低下するのは第１の実施形態と同じである。図４に示すように、乖離時間判定器２０は最大値追跡器９の出力が最大値リーク計算機１０の出力から乖離した状態が時間t１に渡って続いたとき、係数更新信号adpを適応フィルタ係数更新制御回路１３に出力する。適応フィルタ係数更新制御回路１３は係数更新信号adpに応答し、第１の実施形態と同様、適応フィルタ１５の係数更新を再開し、エコー経路の再学習を開始させる。
【００６５】
第２の実施形態は、エコー減衰量が一定の値まで低下するのを待つことなく、エコー経路の再学習開始タイミングを時間で制御することを可能にする。尚、実施の形態２では、乖離時間判定器２０は最大値追跡器９の出力が最大値リーク計算機１０の出力から乖離した状態が時間t１に渡って続いたとき、係数更新信号adpを適応フィルタ係数更新制御回路１３に出力するが、必ずしも両者が完全に一致している状態でなく、両者の差が所定の閾値内に入らない状態が時間t１に渡って続いたとき係数更新信号adpを適応フィルタ係数更新制御回路１３に出力するようにしてもよい。
【００６６】
以上説明したように第２の実施形態は、乖離時間判定器２０を設け、最大値追跡器９の出力が最大値リーク計算機１０の出力から乖離した状態が時間t１に渡って続いたとき、係数更新信号adpを適応フィルタ係数更新制御回路１３に出力するように構成したので、第１の実施形態と同じ効果を奏するエコーキャンセラを、エコー経路の再学習開始タイミングをエコー減衰量の劣化でなく時間で制御する構成とすることができる。
【００６７】
第３の実施形態
図５は本発明の第３の実施形態のエコーキャンセラの構成を示すブロック図である。第３の実施形態は、乖離時間判定器２０に代えてが乖離幅／乖離時間判定器３０を用いた点で第２の実施形態と異なり、その他の構成は同じである。従って以下では乖離幅／乖離時間判定器３０の動作についてのみ説明する。
【００６８】
乖離幅／乖離時間判定器３０は、第１の実施形態と同様、最大値リーク変数imax_iacom_sgc_save(k)と最大値追跡変数imax_iacom(k)との乖離幅がδ3に達したとき、あるいは、第２の実施形態と同様、最大値リーク変数imax_iacom_sgc_save(k)が最大値追跡変数imax_iacom(k)から乖離した状態が一定の時間t１に渡って続いたときの少なくとも一方が成立したときに、適応フィルタ係数更新制御回路１３に係数更新信号adpを出力し、適応フィルタ１５の係数更新を再開する。
【００６９】
第３の実施形態によれば、第１及び第２の実施形態よりもより精緻に適応フィルタ１５の係数更新タイミングを制御することができる。なぜなら、エコー除去量が急速に劣化する時でも、一定時間が経過すれば自動的にエコー経路の再学習が開始されるからであり、これにより通話品質の低下を防止することができる。
【００７０】
第４の実施形態
図６は本発明の第４の実施形態のエコーキャンセラの構成を示すブロック図である。第４の実施形態は、エコー減衰量計算機６とパワー計算機５との間、及びエコー減衰量計算機６とパワー計算機７との間に、最大値検出／リーク計算機４０及び４２をそれぞれ設けた点で第１の実施形態と異なる。本実施形態で最大値検出／リーク計算機４０及び４２を設けた理由を以下に説明する。
【００７１】
第１の実施形態において、エコー減衰量を計算するには比較的長い時間の平滑定数を用いなければならない。なぜなら、エコー経路は一般的に初期遅延を含み、この初期遅延のために、エコー信号がエコーキャンセラに入力するタイミングと参照信号(エコーの元になる信号)がエコーキャンセラに入力するタイミングとの間にずれがあるからである。例えば、エコー経路が次のような特性であったとする。すなわち、遅延時間が１００サンプル、減衰量が６dB(振幅で０.５倍に相当する)のエコー経路を考えよう。エコーキャンセラに常にトーン信号のような一定のレベル、ー定の周期の信号が入力されるとき、エコーは常に１００サンプル遅延後に観測され、その振幅は０.５倍になるので、観測したエコーが参照信号のどの部分のエコーであるのかを見出し、エコー信号と参照信号の冒頭部分を正しくタイミング合わせすることは容易である。
【００７２】
しかし、参照信号がトーン信号からが音声信号に切り替わったとき、困難が発生する。なぜなら、音声信号はその振幅がランダムに変化するので、エコーを観測したとき、それが参照信号のどの部分のエコーであるのか分からず、エコー信号と参照信号の冒頭部分を正しくタイミング合わせすることができなくなる。エコー信号と参照信号の冒頭部分を正しくタイミング合わせしない限り、参照信号の振幅がどれだけ減少しているかを求めることができない。すなわちエコー減衰量を正確に求めることはできない。
【００７３】
このように、周期信号から音声信号への切り替わり時、エコー経路は未学習であることからエコー信号と参照信号の冒頭部分を正確にタイミング合わせすることができない。従って、実施の形態１では、エコー信号の大局的な変化からエコー減衰量を求めるようにしており、そのため上述の式（１）では比較的大きな平滑定数でパワーを計算している。しかしながら、平滑定数を大きくするとエコーキャンセラの動作が緩慢になり応答速度が低下することは避けられない。第４の実施形態では、最大値検出／リーク計算機４０及び４２を設けることにより応答速度を速くしている。
【００７４】
以下に第４の実施形態のエコーキャンセラのパワー計算機５，７及び最大値検出／リーク計算機４０,４２の動作を説明する。他の素子の動作は第１の実施形態と同じであるので、その説明は省略する。
【００７５】
パワー計算機５，７は第１の実施形態と同様の方法でパワーを計算するが、第４の実施形態では平滑定数はδ1 = 2-3に小さくし、変化に対する応答性を高めている。
【００７６】
例えば、パワー計算機７では、Ｒｉｎ信号のレベルL_rin(k)を、
L_irin(k) = L_irin(k-１) × (１-δ1) + ｜L_irin(k)｜ × δ1    …(１２)
として計算する。
【００７７】
パワー計算機５，７で計算された信号レベルは最大値検出／リーク計算機４０，４２にそれぞれ入力される。例えば、Ｒｉｎ端子側の最大値検出／リーク計算機４２は、Ｒｉｎ信号のパワーの最大値imax_irinを下記の式(１３)に従って計算し、最大値を追跡する。
【００７８】
L_rin(k)がその時点までに計算したパワーの中で最大であれば、
imax_irin(k) = L_irin(k)    …(１３)
もしそうでなければ、
imax_irin(k) ＝ imax_irin(k-1)    …(１４)
但しimax_irin(０) = ０である。
【００７９】
上記同様に、加算器１４の出力信号Ｒｅｓについても、最大値検出/リーク計算機４０がimax_ires(k)を計算し、その最大値を追跡する。本実施形態では、追跡した最大値が更新されないときにはその値をリークさせ、徐々に減少させる。
【００８０】
エコー減衰量計算機６では、最大値検出/リーク計算機４０，４２から出力される最大値imax_irin(k)及びimax_ires(k)を第１の実施形態におけるＲｉｎ信号レベルL_rin(k)及びＲｅｓ信号レベルL_res(k)と同様に扱い、エコー減衰量を計算する。以降の動作は第１の実施形態と同様であるのでここでは説明しない。
【００８１】
本実施形態は、参照信号が極大となるときには、通常そのエコーも極大となるという性質を利用したものであり、この性質を用いる限り、信号の時間軸合わせを行う必要がなくなる。以上説明したように、本発明の第４の実施形態によれば、平滑したパラメータ同士を比較するのでなく、瞬時に検出でき、しかも遅延の影響を受けにくいパラメータ即ち、送信信号（参照信号）及び受信信号（エコー信号）のそれぞれの「最大振幅部分」のパワーをパラメータとしてエコー減衰量を計算するようにしたので、応答速度の速いエコーキャンセラが得られる。
【００８２】
第５の実施形態
図７は本発明の第５の実施形態のエコーキャンセラの構成を示すブロック図である。第５の実施形態は、第４の実施形態の構成と第２の実施形態の構成とを組み合わせたものであり、乖離幅判定器１１に代えて乖離時間判定器２０を用いた点で実施の形態４と異なる。乖離時間判定器２０の動作に関してはすでに説明した通りであるのでここでは説明しない。第５の実施形態によれば、第４の実施形態の適応フィルタ１５の再学習タイミングをエコー減衰量の劣化ではなく、時間で制御することが可能になる。
【００８３】
第６の実施形態
図８は本発明の第６の実施形態のエコーキャンセラの構成を示すブロック図である。第６の実施形態は、第４の実施形態と第３の実施形態とを組み合わせたものであり、乖離幅判定器１１に代えて乖離幅/乖離時間判定器３０を用いる点で第４の実施形態と異なる。乖離幅/乖離時間判定器３０の動作に関してはすでに説明した通りであるのでここでは説明しない。
【００８４】
第６の実施形態によれば、第４の実施形態の利点に加え、第３の実施形態の利点、即ち、より精緻にエコーキャンセラの再学習タイミングを制御できるという利点を有するエコーキャンセラが得られる。
【００８５】
第７の実施形態
図９は本発明の第７の実施形態のエコーキャンセラの構成を示すブロック図である。第７の実施形態は、Ｒｉｎ端子に接続されるパワー計算機７に代えてＳｉｎ端子に接続されるパワー計算機７０を用いる点、及びエコー減衰量計算機６に代えてエコー消去量計算機７１を用いる点で第１の実施形態と異なる。以下に、パワー計算機７０とエコー消去量計算機７１の動作を説明する。他の素子の動作は第１の実施形態と同じであるのでその説明は省略する。
【００８６】
パワー計算機７０はＳｉｎ端子から加算器１４に入力する信号のパワーL_Sin(k)を式(１５)に従って計算し、パワー計算機５は、加算器１４から出力される信号のパワーL_Res(k)を式(１６)に従って計算する。
【００８７】
L_Sin(k) = L_Sin(k-１) × (１-δ) + ｜Sin(k)｜ × δ4    …(１５)
L_Res(k) = L_Res(k-１) × (１-δ) + ｜Res(k)｜ × δ4    …(１６)
ここでδ4 = 2-3である。δ4は第１の実施形態よりも大きな値(応答が速い)に設定してもよい。計算されたパワーL_Sin(k)及びL_Res(k)はエコー消去量計算機７１に出力される。エコー消去量計算機７１は式(１７)に従いエコー消去量iacanc(k)を計算する。
【００８８】
iacanc(k) = 20 × LOG１O (L_Sin(k)/L_Res(k))    …(１７)
エコー消去量計算機７１はiacanc(k)を最大値追跡器９に出力する。最大値追跡器９はこのエコー消去量iacanc(k)をエコー減衰量iacom(k)と同様に扱って最大値を追跡する。最大値追跡器９以降の素子の動作は第１の実施形態と同様であるのでここでは説明しない。
【００８９】
第７の実施形態では、パワー計算機７０及びパワー計算機５を加算器１４の入力側及び出力側にそれぞれ設けたので、エコー消去量の計算はエコー経路の遅延の影響を一切受けない。そのため、小さい平滑定数を用いることによりＳｉｎ端子に入る信号の最大値及びＲｅｓ信号の最大値を検出しなくても応答速度を向上させることができる。更に、最大値検出機構が不要な分、ソフト、ハードの規模を小さくすることができる。
【００９０】
第８の実施形態
図１０は本発明の第８の実施形態のエコーキャンセラの構成を示すブロック図である。第８の実施形態は、乖離幅判定器１１に代えて乖離時間判定器２０を用いる点で第７の実施形態と異なる。乖離時間判定器２０と乖離幅判定器１１の動作の違いについては第２の実施形態で説明した通りであるのでここでは説明しない。
【００９１】
第８の実施形態によれば、第７の実施形態の利点に加え、エコー経路の再学習タイミングを、エコー減衰量でなく時間的に制御できるという利点を有するエコーキャンセラが得られる。
【００９２】
第９の実施形態
図１１は本発明の第９の実施形態のエコーキャンセラの構成を示すブロック図である。第９の実施形態は、乖離幅判定器１１に代えて乖離幅／乖離時間判定器３０を用いる点で第７の実施形態と異なる。乖離幅／乖離時間判定器３０と乖離幅判定器１１の動作の違いについては第３の実施形態で説明した通りであるのでここでは説明しない。
【００９３】
第９の実施形態によれば、第７の実施形態の利点に加え、エコー経路の再学習タイミングを時間、及びエコー減衰量の劣化の両方で制御できるという利点を有するエコーキャンセラが得られる。
【００９４】
以上、本発明のエコーキャンセラをインターネット電話に使用した例について説明したが、本発明のエコーキャンセラの用途はこれに限定されるものではなく、一般の電話回線、移動電話、自動車電話、テレビ会議装置等、エコーを除去する必要のある任意の装置及びシステムに適用できる。
【００９５】
【発明の効果】
本発明によれば、周期信号と音声信号の両方のエコーを除去することのできるエコーキャンセラを低コストで提供することができる。
【図面の簡単な説明】
【図１】  本発明の第１の実施形態のエコーキャンセラの構成を示すブロック図である。
【図２】  第１の実施形態のエコーキャンセラにおけるエコー減衰量、最大値追跡変数及び最大値リーク変数の時間的変化の例を示す図である。
【図３】  本発明の第２の実施形態のエコーキャンセラの構成を示すブロック図である。
【図４】  第２の実施形態のエコーキャンセラにおけるエコー減衰量、最大値追跡変数及び最大値リーク変数の時間的変化の例を示す図である。
【図５】  本発明の第３の実施形態のエコーキャンセラの構成を示すブロック図である。
【図６】  本発明の第４の実施形態のエコーキャンセラの構成を示すブロック図である。
【図７】  本発明の第５の実施形態のエコーキャンセラの構成を示すブロック図である。
【図８】  本発明の第６の実施形態のエコーキャンセラの構成を示すブロック図である。
【図９】  本発明の第７の実施形態のエコーキャンセラの構成を示すブロック図である。
【図１０】  本発明の第８の実施形態のエコーキャンセラの構成を示すブロック図である。
【図１１】  本発明の第９の実施形態のエコーキャンセラの構成を示すブロック図である。
【図１２】  従来のエコーキャンセラの動作を説明する図である。
【符号の説明】
１０１  エコーキャンセラ、  １０２  エコーキャンセラ、  １０３  ゲートウェイ、  １０４  ハイブリッドトランス、  １０５  ハイブリッドトランス、１０６  ＰＢＸ、  ５  パワー計算機、  ６  エコー減衰量計算機、  ７  パワー計算機、  ８  最大値更新判定器、  ９  最大値追跡器、  １０  最大値リーク計算機、  １１  乖離幅判定器、  １２  ダブルトーク検出器、  １３  適応フィルタ係数更新制御回路、  １４  加算器、  １５  適応フィルタ、  ２０乖離時間判定器、  ３０  乖離幅／乖離時間判定器、  ４０  最大値検出／リーク回路、  ４２  最大値検出／リーク回路、  ７０  パワー計算機、  ７１  エコー消費量計算機。
【図１】
0003862548.tif 000002
【図２】
0003862548.tif 000003
【図３】
0003862548.tif 000004
【図４】
0003862548.tif 000005
【図５】
0003862548.tif 000006
【図６】
0003862548.tif 000007
【図７】
0003862548.tif 000008
【図８】
0003862548.tif 000009
【図９】
0003862548.tif 000010
【図１０】
0003862548.tif 000011
【図１１】
0003862548.tif 000012
【図１２】
0003862548.tif 000013