(57)【要約】【課題】ダブルトークやノイズのために、適応フィルタ係数ｈｂ（ｋ）が大きく乱れても、適切なエコー消去処理を施す。【解決手段】受話信号をＦＧフィルタ係数でフィルタ処理して、ＦＧ推定信号を求め、収音信号から上記ＦＧ推定信号を減算して、ＦＧ誤差信号を求め、受話信号を適応フィルタ係数でフィルタ処理してＢＧ推定信号を生成して、ＦＧ誤差信号からＢＧ推定信号を減算して、ＢＧ誤差信号を求め、ＢＧ誤差信号と上記受話信号とを用いて、ＢＧ誤差信号のパワーが減少するように適応フィルタ係数を更新して、適応フィルタ係数をＦＧフィルタ係数に加算してＦＧフィルタ係数を更新し、ＢＧフィルタ係数更新処理とＢＧ推定信号生成処理とＢＧ減算処理は、周波数領域で行い、適応フィルタ係数が再初期化されてからの所定の時間経過、または適応フィルタの更新の回数を検出して、適応フィルタ係数を再初期化する。【選択図】図４
2008098929.tif 000002
【特許請求の範囲】
【請求項１】
受話信号をＦＧフィルタ係数でフィルタ処理して、ＦＧ推定信号を求めるＦＧ推定信号生成部と、
収音信号から上記ＦＧ推定信号を減算して、ＦＧ誤差信号を求めるＦＧ減算部と、を備えるＦＧ部と、
上記受話信号を適応フィルタ係数でフィルタ処理して、ＢＧ推定信号を生成するＢＧ推定信号生成部と、
上記ＦＧ誤差信号から上記ＢＧ推定信号を減算して、ＢＧ誤差信号を求めるＢＧ減算部と、
上記ＢＧ誤差信号と上記受話信号とを用いて、上記ＢＧ誤差信号のパワーが減少するように上記適応フィルタ係数を更新するＢＧフィルタ係数更新部と、を備えるＢＧ部と、
上記適応フィルタ係数を上記ＦＧフィルタ係数に加算し、上記ＦＧフィルタ係数を更新するＦＧフィルタ係数更新部と、を具備するエコーキャンセラ装置において、
上記ＢＧフィルタ係数更新部と上記ＢＧ推定信号生成部と上記ＢＧ減算部は、周波数領域で処理を行うものであり、
更に、上記適応フィルタ係数が再初期化されてからの、所定の時間経過、または上記適応フィルタ係数の更新の所定回数を検出して、再初期化信号を出力する再初期化時期検出部と、
上記再初期化時期検出部が、上記再初期化信号を出力すると上記適応フィルタ係数を再初期化する再初期化部と、を具備することを特徴とするエコーキャンセラ装置。
【請求項２】
請求項１記載のエコーキャンセラ装置において、
上記ＦＧ推定信号生成部と上記ＦＧ減算部は周波数領域で処理を行うものであり、
上記ＦＧフィルタ係数更新部は、
上記適応フィルタ係数を時間領域に変換する時間領域変換手段と、
上記時間領域に変換された上記適応フィルタ係数の要素の半分以上を０にする半分０化手段と、
上記要素の半分以上を０にされた時間領域の上記適応フィルタ係数を周波数領域に変換する周波数領域変換手段と、
上記周波数領域変換手段よりの周波数領域に変換された上記適応フィルタ係数と、上記ＦＧフィルタ係数と、を加算する加算手段と、
を備えることを特徴とするエコーキャンセラ装置。
【請求項３】
請求項１記載のエコーキャンセラ装置において、
上記ＦＧ推定信号生成部と上記ＦＧ減算部は時間領域で処理を行うものであり、
上記ＦＧフィルタ係数更新部は、
上記適応フィルタ係数を時間領域に変換する時間領域変換手段と、
上記時間領域に変換された適応フィルタ係数と、上記ＦＧフィルタ係数と、を加算する加算手段と、
を備えることを特徴とするエコーキャンセラ装置。
【請求項４】
ＦＧ推定信号生成手段が、受話信号をＦＧフィルタ係数でフィルタ処理して、ＦＧ推定信号を求めるＦＧ推定信号生成過程と、
ＦＧ減算手段が、収音信号から上記ＦＧ推定信号を減算して、ＦＧ誤差信号を求めるＦＧ減算過程と、
ＢＧ推定信号生成手段が、上記受話信号を適応フィルタ係数でフィルタ処理して、ＢＧ推定信号を生成するＢＧ推定信号生成過程と、
ＢＧ減算手段が、上記ＦＧ誤差信号から上記ＢＧ推定信号を減算して、ＢＧ誤差信号を求めるＢＧ減算過程と、
ＢＧフィルタ係数更新手段が、上記ＢＧ誤差信号と上記受話信号とを用いて、上記ＢＧ誤差信号のパワーが減少するように上記適応フィルタ係数を更新するＢＧフィルタ係数更新過程と、
ＦＧフィルタ係数更新手段が、上記適応フィルタ係数を上記ＦＧフィルタ係数に加算し、上記ＦＧフィルタ係数を更新するＦＧフィルタ係数更新過程と、を有するエコーキャンセラ方法において、
上記ＢＧフィルタ係数更新過程と上記ＢＧ推定信号生成過程と上記ＢＧ減算過程は、周波数領域で処理を行う過程であり、
更に、再初期化時期検出手段が、上記適応フィルタ係数が再初期化されてからの所定の時間経過、または上記適応フィルタ係数の更新の所定回数を検出して、再初期化信号を出力する再初期化時期検出過程と、
再初期化時期検出手段が上記再初期化信号を出力すると、再初期化手段が、上記適応フィルタ係数を再初期化する再初期化過程と、を有することを特徴とするエコーキャンセラ方法。
【請求項５】
請求項４記載のエコーキャンセラ方法において、
上記ＦＧ推定信号生成過程と上記ＦＧ減算過程は周波数領域で処理を行う過程であり、
上記ＦＧフィルタ係数更新過程は、
時間領域変換手段が、上記適応フィルタ係数を時間領域に変換する時間領域変換過程と、
半分０化手段が、上記時間領域に変換された上記適応フィルタ係数の要素の半分以上を０にする半分０化過程と、
周波数領域変換手段が、上記要素の半分以上を０にされた上記適応フィルタ係数を周波数領域に変換する周波数領域変換過程と、
加算過程が、上記周波数領域に変換された上記適応フィルタ係数と、上記ＦＧフィルタ係数と、を加算する加算過程と、を有することを特徴とするエコーキャンセラ方法。
【請求項６】
請求項４に記載のエコーキャンセラ方法において、
上記ＦＧ推定信号生成過程と上記ＦＧ減算過程は時間領域で処理を行う過程であり、
上記ＦＧフィルタ係数更新過程は、
時間領域変換手段が、上記適応フィルタ係数を時間領域に変換する時間領域変換過程と、
加算手段が、上記時間領域に変換された適応フィルタ係数と、上記ＦＧフィルタ係数と、を加算する加算過程と、を有することを特徴とするエコーキャンセラ方法。
【請求項７】
請求項４〜６の何れかに記載したエコーキャンセラ方法の各過程をコンピュータに実行させるためのエコーキャンセラプログラム。
【請求項８】
請求項７記載のエコーキャンセラプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、例えば、ＴＶ会議や音声会議などハンズフリー通信のエコーキャンセラ装置、その方法、そのプログラム、およびその記録媒体に関する。
【背景技術】
【０００２】
エコーが伝達する未知の系をディジタルフィルタでモデル化し、受話信号と収音信号を用いてエコーの伝達系を推定する基本的な技術として適応フィルタを用いるものがある。適応フィルタによりエコー伝達系を推定する際にエコー伝達系の推定精度を大きく劣化させる要因として収音信号に含まれる雑音が挙げられる。特に、音響および回線エコーキャンセラ装置等で同時通話あるいはダブルトークと呼ばれるエコーへの話者からの送話音声の混入は、混入するまで持っていたディジタルフィルタの推定精度を大きく低下させ、エコーキャンセラ装置等がエコー伝達を推定するため、何らかの対策が必要となる。以下、適応フィルタを用いた従来のエコーキャンセラ装置、その従来のダブルトーク対策について説明する。
【０００３】
図１に従来のエコーキャンセラの機能構成例を示す。図１において、受話信号をｘ（ｋ）、エコー推定信号をｙ（ｋ）、収音信号をｄ（ｋ）、誤差信号をｅ（ｋ）、適応フィルタの係数からなるベクトルをｈ（ｋ）とし、ｋは離散的時刻を表す。
図示しない遠端話者からの音声信号が、受話信号ｘ（ｋ）として、エコーキャンセラ１０を通じて再生手段４に入力される。エコーキャンセラ１０は推定信号生成部１１と、フィルタ係数更新部１２と、減算部１３と、適応フィルタ係数レジスタ１４と、により構成されており、受話信号ｘ（ｋ）はフィルタ係数更新部１２と推定信号生成部１１とに入力される。
推定信号生成部１１で、受話信号ｘ（ｋ）を適応フィルタ係数レジスタ１４よりの適応フィルタ係数ｈ（ｋ）でフィルタ処理することでエコー推定信号ｙ（ｋ）を生成する。エコー推定信号ｙ（ｋ）を生成する手段は様々であるが、一時刻分のエコー推定信号ｙ（ｋ）を生成する場合には、受話信号ｘ（ｋ）から成るベクトルと適応フィルタ係数のベクトルｈ（ｋ）の内積により生成し、つまりｙ（ｋ）は、以下の式（１）で表すことができる。
ｙ（ｋ）＝[ｘ（ｋ−L+1）、ｘ（ｋ−L+２）、．．．、ｘ（ｋ）]ｈ（ｋ）  （１）
ただし、Lは推定信号生成部１１を構成する適応フィルタの係数の数（タップ数）を表す。一般の適応フィルタにおいて、複数の時刻分の推定信号を生成する場合には、演算量低減のために周波数領域で行うことが多いが、その詳細は非特許文献１に記載されている。減算部１３では、収音手段６で収音された収音信号ｄ（ｋ）からエコー推定信号ｙ（ｋ）を減算して誤差信号ｅ（ｋ）求める。つまり、減算部１３で、以下の式（２）を計算する。
ｅ（ｋ）=ｄ（ｋ）−ｙ（ｋ）    （２）
【０００４】
フィルタ係数更新部１２では誤差信号e（ｋ）と受話信号ｘ（ｋ）から適応アルゴリズムにより適応フィルタ係数修正量Δｈを求める。そして、適応フィルタ係数修正量Δｈに修正量を調節するステップサイズμを乗算して、１時刻前の適応フィルタ係数ｈ（ｋ−１）に加算することで、適応フィルタ係数レジスタ１４内の適応フィルタ係数を更新する。つまり、このフィルタ係数の更新は、以下の式（３）で表すことができる。
ｈ（ｋ）＝ｈ（ｋ−１）＋μΔｈ（ｋ）      （３）
適応フィルタ係数修正量Δｈは、適応アルゴリズムにより誤差信号ｅ（ｋ）のパワーが減少するように求められる。なお、代表的な適応アルゴリズムとしては、学習同定（ＮＬＭＳ：ＮｏｒｍａｌｉｚｅｄＬｅａｓｔ−Ｍｅａｎ−Ｓｑｕａｒｅｓ）アルゴリズム、もしくは逐次最小二乗（ＲｅｃｕｒｓｉｖｅＬｅａｓｔＳｑｕａｒｅ）アルゴリズム、もしくはＬＭＳ（ＬｅａｓｔＭｅａｎＳｑｕａｒｅ）アルゴリズム等が用いられる。
減算部１３で収音信号ｄ（ｋ）からエコー推定信号ｙ（ｋ）が除去され、送話信号として、受話信号ｘ（ｋ）の送信側に送信される。
【０００５】
＜ダブルトーク対策手段＞
図２に従来のＦＧ／ＢＧ方式を用いて構成されたＦＧ／ＢＧエコーキャンセラ２０の機能構成例を示す。図１と同一の機能構成部分には同一参照番号を付けて重複説明を省略する。このことは以下の説明においても同様である。
ＦＧ／ＢＧエコーキャンセラ２０では、まず、ＢＧフィルタ係数更新部２２で、反響路（再生手段４から収音手段６へのエコー経路）２４のインパルス応答を推定し、その推定値ｈｂ（ｋ）を適応フィルタ係数レジスタ２７に適応フィルタ係数ｈｂ（ｋ）として転送する。
ＢＧ推定信号生成部２６で、受話信号ｘ（ｋ）を適応フィルタ係数ｈｂ（ｋ）で上記と同様のフィルタ処理をして、ＢＧ推定信号ｙｂ（ｋ）を生成する。適応フィルタ係数ｈｂ（ｋ）は適応フィルタ係数レジスタ２７に格納されている。
減算部２８において、収音手段６から収音された収音信号ｄ（ｋ）からＢＧ推定信号ｙｂ（ｋ）を減算して、ＢＧ誤差信号ｅｂ（ｋ）が生成される。反響路２４のインパルス応答の推定が良好に行われていれば、再生手段４よりの収音手段６に収音された反響信号と推定信号ｙｂ（ｋ）’はほぼ等しいものとなる。
【０００６】
一方、ＦＧ推定信号生成部３０で、受話信号ｘ（ｋ）をＦＧフィルタ係数ｈｆ（ｋ）でフィルタ処理して、ＦＧ推定信号ｙｆ（ｋ）を生成する。ＦＧフィルタ係数はＦＧフィルタ係数レジスタ２９に格納されている。そして、減算部３１で、収音信号ｄ（ｋ）からＦＧ推定信号ｙｆ（ｋ）を減算して、ＦＧ誤差信号ｅｆ（ｋ）が生成される。
ＢＧ推定信号生成部２６の特性が真の反響路２４の特性に近ければ（詳細は以下で述べる）、適応フィルタ係数レジスタ２７中の適応フィルタ係数ｈｂ（ｋ）をＦＧフィルタ係数レジスタ２９に転送し、ＦＧフィルタ係数ｈｆ（ｋ）をその適応フィルタ係数ｈｂ（ｋ）に更新する。
また、ＢＧ誤差信号ｅｂ（ｋ）とＦＧ誤差信号ｅｆ（ｋ）とが誤差比較部３８に入力される。受話信号ｘ（ｋ）のパワーが所定値以上であり、かつダブルトークでない状態において、誤差比較部３８で、ＢＧ誤差信号ｅｂ（ｋ）のパワーＰｅｂ（ｋ）がＦＧ誤差信号ｅｆ（ｋ）のパワーＰｅｆ（ｋ）よりも小さいと判断された場合、適応フィルタ係数ｈｂ（ｋ）は、ＦＧフィルタ係数ｈｆ（ｋ）と比べて、実際の反響路２４のインパルス応答ｈ（ｋ）をより良く模擬していると考えられる。この場合、適応フィルタ係数ｈｂ（ｋ）をＦＧ推定信号生成部３７に転送してＦＧフィルタ係数ｈｆ（ｋ）を更新する。
【０００７】
ここでパワーとは信号の時間積分値であり、離散化された信号を扱う場合には、例えばＰｘ（ｋ）＝Σｘ2 （ｋ−ｉ）（Σはｉ＝０からｎ−１まで）のように計算される。ここでｎは積分時間を表す。
そして、発話者の音声が収音手段６に収音された状態では、ＦＧ誤差信号ｅｆ（ｋ）が受話信号ｘ（ｋ）の送信側に、出力される。なお、ＦＧ／ＢＧエコーキャンセラ２０の詳細については、特許文献１に記載されている。
このように、ＦＧ／ＢＧ構成とすることで、ダブルトーク時には適応フィルタ係数ｈｂ（ｋ）が乱れ、ＦＧフィルタ係数ｈｆ（ｋ）への複製が起きずＦＧフィルタ係数ｈｆ（ｋ）はダブルトーク前の値を保持しているので、ＦＧ誤差信号ｅｆ（ｋ）にダブルトークによる影響が現れない。
【０００８】
＜差分型ＢＧ／ＦＧ構成＞
さらに、同時通話による適応フィルタ係数ｈｂ（ｋ）の乱れがＦＧフィルタ係数ｈｆ（ｋ）に及ぼす影響を小さくし、良好な同時通話性能を保持する手法として、ＦＧ誤差信号ｅｆ（ｋ）をＢＧ部に入力させることで、適応フィルタ係数ｈｂ（ｋ）として、ＦＧフィルタ係数ｈｆ（ｋ）の変化分を推定する差分型ＦＧ／ＢＧエコーキャンセラがある。
差分型ＦＧ／ＢＧエコーキャンセラ４５の機能構成例を図３に示す。ＢＧ部４０はＢＧフィルタ係数更新部２２、ＢＧ推定信号生成部２６、ＢＧ減算部２８、適応フィルタ係数レジスタ２７、とで構成されている。またＦＧ部５０は、ＦＧフィルタ係数レジスタ２９、ＦＧ推定信号生成部３０、ＦＧ減算部３１とで構成されている。
【０００９】
ＢＧ減算部２８では、ＦＧ減算部３１よりのＦＧ誤差信号ｅｆ（ｋ）が誤差比較部３８とＢＧ減算部２８とに入力される。ＢＧ減算部２８で、ＢＧ推定信号生成部２６よりのＢＧ推定信号ｙｂ（ｋ）から、ＦＧ誤差信号ｅｆ（ｋ）を減算することにより、ＢＧ誤差信号ｅｂ（ｋ）’が求められる。ｅｂ（ｋ）’はＢＧフィルタ係数更新部２２に入力される。誤差比較部３８で、ＢＧ誤差信号ｅｂ（ｋ）’のパワーＰｅｂ（ｋ）’がＦＧ誤差信号ｅｆ（ｋ）のパワーＰｅｆ（ｋ）よりも小さいと判断された場合、ＦＧフィルタ係数更新部５２において、適応フィルタ係数レジスタ２７中の適応フィルタ係数ｈｂ（ｋ）を、ＦＧフィルタ係数レジスタ２９中のｈｆ（ｋ）と加算、もしくは重み付け加算して、その加算結果のフィルタ係数を新たなＦＧフィルタ係数ｈｆ（ｋ）として更新する。なお、差分型ＦＧ／ＢＧエコーキャンセラの詳細は、特許文献２に記載されている。
【００１０】
上記のように、この差分型ＦＧ／ＢＧエコーキャンセラ構成は、ＢＧ部の適応アルゴリズムとして、適応フィルタ係数ｈｂ（ｋ）をＦＧフィルタ係数ｈｆ（ｋ）に反映するまでの間に、少ないエコー消去量さえ得られればよいという特徴がある。
【非特許文献１】”Multidelay block frequency domain adaptive filter,” Jia Sien Soo and Khee K. Pang, IEEE Transaction on Acoustics, Speech, and Signal Processing, vol.38, No.2,  pp.373-376(1990.2)
【特許文献１】特許第３２４８５５１号
【特許文献２】特許第２８３６２７７号
【発明の開示】
【発明が解決しようとする課題】
【００１１】
上記で説明した従来の差分型ＦＧ／ＢＧ型エコーキャンセラでは、適応フィルタ係数のフィルタ数が多いと、演算量が多いという問題点があった。そこで、上記の演算を時間領域でなく、周波数領域で行うということを考えた。周波数領域で動作するＦＧ／ＢＧ型エコーキャンセラの場合、ＢＧ部４０の適応フィルタ係数ｈｂ（ｋ）をＦＧフィルタ係数ｈｆ（ｋ）に加算する際に適応フィルタ係数ｈｂ（ｋ）がある拘束条件を満たすように変換した後に加算を行う必要がある。この拘束条件とは、ＦＧ部５０における周波数領域で行うフィルタ処理の結果が時間領域でフィルタ処理を行った場合の結果と一致させるというものである。
【００１２】
この拘束条件を満たすための具体的な処理手順としては、周波数領域にある適応フィルタ係数ｈを時間領域に変換し、その結果の半分以上を０で置き換えた後、再度周波数領域に変換するというものである。このことは、一般的に、適応フィルタにおいて、周波数領域で処理する場合に、適応フィルタ係数を更新する際と同様に考えられ、また、時間領域に変換した適応フィルタ係数のどの要素を０に置き換えるか等の詳細な説明は上記非特許文献１、もしくは、「”Frequency-domain and multirate adaptive filtering,” John Synk, IEEE SP magazine, January 1992」（以下、参考文献という）に記載されている。なお、FGフィルタ係数が時間領域の値である場合は、再度の周波数領域への変換は不要であり０に置き換えない係数を用いればよい。
【００１３】
しかし、上記のように、ＢＧ部４０のＢＧ推定信号生成部２６を周波数領域で動作させる差分型ＦＧ／ＢＧ構成の場合、ダブルトークやエコーに重畳したノイズのために適応フィルタ係数hｂ（ｋ）が大きく乱れた結果、拘束条件を満たす値から大きく外れた状況が継続することが考えられる。この状況では、適応フィルタ係数の個々の要素は、拘束条件を満たさないが、時間的に連続する適応フィルタ係数が互いに拘束条件を満たさない部分を打ち消しあうように、更新され、このためＢＧ誤差信号ｅｂ（ｋ）のレベルは小さくなる。そのため、適応フィルタ係数ｈｂ（ｋ）をＦＧフィルタ係数ｈｆ（ｋ）に加算する動作が行われるが、この際のフィルタ係数ｈｆ（ｋ）の更新はＦＧ誤差信号ｅｆ（ｋ）が減少するようには必ずしもならずに、ＦＧ誤差信号ｅｆ（ｋ）のレベルが時間とともに増加していくという問題が生じるおそれがあると考えられる。また、この問題を解決するためには、周波数領域で処理するＢＧフィルタ係数更新部２２において、適応フィルタ係数ｈｂ（ｋ）が拘束条件を満たすためには適応フィルタ係数hｂ（ｋ）を時間領域に変換しなければならないため演算量が増加するという問題が生じる。
【課題を解決するための手段】
【００１４】
この発明によれば、受話信号をＦＧフィルタ係数でフィルタ処理して、ＦＧ推定信号を求め、収音信号から上記ＦＧ推定信号を減算して、ＦＧ誤差信号を求め、上記受話信号を適応フィルタ係数でフィルタ処理してＢＧ推定信号を生成し、上記ＦＧ誤差信号から上記ＢＧ推定信号を減算して、ＢＧ誤差信号を求め、上記ＢＧ誤差信号と上記受話信号とを用いて、上記ＢＧ誤差信号のパワーが減少するように上記適応フィルタ係数を更新し、上記適応フィルタ係数を上記ＦＧフィルタ係数に加算し、上記ＦＧフィルタ係数を更新するエコーキャンセラ装置において、上記適応フィルタ係数更新処理と上記ＢＧ推定信号生成処理と上記ＢＧ減算処理は、周波数領域で処理を行い、上記適応フィルタ係数が再初期化されてからの所定の時間経過、または上記適応フィルタ係数の上記更新の所定回数を検出して、再初期化信号を出力し、上記再初期化信号を出力されると上記適応フィルタ係数を再初期化する。
【発明の効果】
【００１５】
この構成によれば、拘束条件を満たす適応フィルタ係数の初期値に戻す再初期化が、所定時間間隔、又は適応フィルタ係数の更新の所定回数毎に行われるため、適応フィルタ係数ｈｂ（ｋ）が拘束条件を満たす値から外れた状況が継続しなくなる。このため、ＦＧフィルタ係数に対する更新がＦＧ側誤差信号ｅｆ（ｋ）を減少させるように行われることが多くなり、また、たとえＦＧ側誤差信号ｅｆ（ｋ）が増加するように１回のフィルタ係数更新が行われたとしても再初期化された適応フィルタ係数ｈｂ（ｋ）がそれを打ち消す値になるため、ＦＧ誤差信号ｅｆ（ｋ）が増加し続けるという問題が生じる恐れはない。また、ＢＧ部で、この手段を実行するのに要する演算は適応フィルタ係数ｈ（ｋ）を更新した時からの時間の計測と又は、係数更新回数の計測と適応フィルタ係数ｈ（ｋ）の再初期化とだけであり、演算量が増加するという問題は生じない。
【発明を実施するための最良の形態】
【００１６】
以下に、この発明を実施するための最良の形態を示す。
【実施例１】
【００１７】
図４にこの発明の実施例１のエコーキャンセラ１２０の機能構成例を示し、図５に図４中のこの発明のＦＧ部７０の機能構成例を示し、図６に図４中のＢＧ部６０の機能構成例を示し、図７に図４中のＦＧフィルタ係数更新部８０の機能構成例を示し、この実施例１の主要な処理の流れを図８に示す。図１〜図３と同一機能構成部分には同一参照番号を付け、重複説明を省略する。以下も同様とする。
また、この発明において、少なくとも、ＢＧ部は、周波数領域で処理を行うものであり、ＦＧ部は、周波数領域、もしくは時間領域で処理を行うことができる。一般的に、時間領域で行う処理は遅延量は少ないが、演算量が多くなる。よって、ＦＧ部の処理は、状況に応じて、周波数領域で行うか、時間領域で行うかを使い分けて実施すればよい。
また、この実施例１ではＢＧフィルタ係数更新部９０は、ＬＭＳ法あるいはＮＬＭＳ法を周波数領域で実行し、非特許文献１で挙げられているＭＤＦ法（MultiDelay  block  Frequency  domain  adaptive  filter）もしくはＵＭＤＦ法（Unconstrained MultiDelay  block  Frequency  domain  adaptive  filterなどが対象とされる。以下の説明では、周波数領域での適応アルゴリズムとしては、上記ＭＤＦ法を使用した場合を説明する。なお、受話信号ｘ（ｋ）が複数チャネルある場合についても受話信号ｘ（ｋ）と適応フィルタ係数ｈ（ｋ）の要素がチャネル分増加するだけで以下の全ての事項が適用できるため説明を略する。この実施例１では、ＦＧ部７０が周波数領域で処理を行う場合を説明する。
【００１８】
ＦＧ部７０の処理
時間領域の受話信号ｘ（ｋ）と収音信号ｄ（ｋ）が新たに得られると（図８、ステップＳ２）、時間領域の受話信号ｘ（ｋ）は再生手段４と、周波数領域変換部６２に入力される。周波数領域変換部６２で、周知の技術である短時間離散的フーリエ変換などで、例えば、ω１〜ωＮまでのＮ個の周波数に対応するＮ個の離散周波数領域信号、ｘ（ω１）、．．．、ｘ（ωｎ）、．．．、ｘ（ωＮ）に変換される。ただし、受話信号ｘ（ｋ）は一定周期でサンプリングされ、各サンプルがディジタル値に変換されたディジタル信号である。Ｎは整数とする。またｊをフレーム分割時刻とし、ｍを周波数領域での適応フィルタ係数の番号（ｍ＝１、２、．．．、Ｍ）とすると、
Ｘ（ｍ、ｊ）＝（ｘ（ω１）、．．．、ｘ（ωｎ）、．．．、ｘ（ωＮ））と表すこととし、以下の説明は周波数領域の受話信号をＸ（ｍ、ｊ）として、説明する。
受話信号Ｘ（ｍ、ｊ）は、ＦＧ部７０に入力される。ＦＧ部７０は、図５に示すように、ＦＧ推定信号生成部７０２、ＦＧフィルタ係数レジスタ７０１、ＦＧ時間領域変換部７０４、ＦＧ減算部７０６とで構成されている。受話信号Ｘ（ｍ、ｊ）は、ＦＧ推定信号生成部７０２に入力される。
また周波数領域でＦＧフィルタ係数レジスタ７０１は、ＦＧフィルタ係数Ｈｆ（ｍ、ｊ）が格納され、そのＦＧフィルタ係数Ｈｆ（ｍ、ｊ）はＦＧ推定信号生成部７０２に入力される。
【００１９】
ＦＧ推定信号生成部７０２では、受話信号Ｘ（ｍ、ｊ）をＦＧフィルタ係数Ｈｆ（ｍ、ｊ）でフィルタ処理して、ＦＧ推定信号Ｙｆ（ｊ）を求める。具体的には、周波数領域毎に周波数領域の受話信号Ｘ（ｍ、ｊ）と周波数領域の適応フィルタ係数Ｈｆ（ｍ、ｊ）との内積を周波数毎にとることで、周波数領域のＦＧ推定信号Ｙｆ（ｊ）が求められる。つまり、ＦＧ推定信号生成部７０２で以下の式（１１）が計算される。
Ｙｆ（ｊ）＝Σdiag（Ｘ（ｍ、ｊ））＊Ｈｆ（ｍ、ｊ）    （１１）
ただし、ｄｉａｇ（Ａ）はＡの対角行列を表し、＊は行列とベクトル間の乗算を表す。
ＦＧ推定信号Ｙｆ（ｊ）はＦＧ時間領域変換部７０４に入力され、公知の技術である短時間離散的逆フーリエ変換などで、時間領域の信号ｙｆ（ｋ）に変換され、ＦＧ減算部７０６に入力される。
ＦＧ減算部７０６では、収音信号ｄ（ｋ）から時間領域の上記ＦＧ推定信号ｙｆ（ｋ）を減算して、ＦＧ誤差信号ｅｆ（ｋ）を求める。つまり、以下の式（１２）を行うことで、ＦＧ誤差信号ｅｆ（ｋ）を求める（ステップＳ４）。
ｅｆ（ｋ）＝ｄ（ｋ）―ｙｆ（ｋ）    （１２）
そして、時間領域のＦＧ誤差信号ｅｆ（ｋ）は図示しない通信網を通じて、遠端話者側のスピーカ、及び、ＢＧ部６０に入力される。
【００２０】
ＢＧ部６０の処理
次に、ＢＧ部６０の処理の流れを説明する。ＢＧ部６０は、図６のように、ＢＧフィルタ係数更新部９０、適応フィルタ係数レジスタ９１２、ＢＧ推定信号生成部９２、ＢＧ減算部９４、係数更新判定部９６、ＢＧ周波数領域変換部９８、とで構成されている。
受話信号Ｘ（ｍ、ｊ）は、ＢＧフィルタ係数更新部９０に入力される。ＢＧフィルタ係数更新部９０は、ＢＧ誤差信号Ｅｂ（ｊ）と受話信号Ｘ（ｍ、ｊ）とを用いて、ＢＧ誤差信号Ｅｂ（ｊ）のパワーが減少するように適応フィルタ係数Ｈｂ（ｍ、ｊ）を更新する。また、ＢＧフィルタ係数更新部９０は、パワー計算部９０２、乗算部９０４、除算部９０６、乗算部９０８、ステップサイズ選択部９０９、加算部９１０、とで構成されている。
受話信号Ｘ（ｍ、ｊ）は、パワー計算部９０２、乗算部９０４、推定信号生成部９２、のそれぞれに入力される。パワー計算部９０２では、受話信号Ｘ（ｍ、ｊ）のパワー、つまり以下の式（１３）が計算される。
Σｄｉａｇ（Ｘ（ｍ、ｊ））ｄｉａｇ（ｃｏｎｊ（Ｘ（ｍ、ｊ）））    （１３）
ただしｃｏｎｊ（Ａ）はＡ内のスカラーあるいはベクトル、行列の個々の要素に対して複素共役をとることを示す。
【００２１】
また、以下で説明するＢＧ減算部９４で求められた周波数領域のＢＧ誤差信号Ｅｂ（ｊ）は乗算部９０４に入力される。
乗算部９０４では、受話信号Ｘ（ｍ、ｊ）と、誤差信号Ｅｂ（ｊ）が乗算され、つまり、以下の式（１４）が計算される。
ｄｉａｇ（ ｃｏｎｊ（Ｘ（ｍ、ｊ）））＊Ｅｂ（ｊ）    （１４）
乗算部９０４の結果であるｄｉａｇ（ ｃｏｎｊ（Ｘ（ｍ、ｊ）））＊Ｅｂ（ｊ）と、パワー計算部９０２の結果であるΣｄｉａｇ（Ｘ（ｍ、ｊ））ｄｉａｇ（ｃｏｎｊ（Ｘ（ｍ、ｊ）））とが、除算部９０６に入力され、以下の式（１５）が計算され、周波数領域の適応フィルタ係数の更新量であるΔＨｂ（ｍ、ｊ）が求められる。
ΔＨｂ（ｍ、ｊ）＝
（Σ(ｄｉａｇ（Ｘ（ｍ、ｊ））ｄｉａｇ（ｃｏｎｊ（Ｘ（ｍ、ｊ）））)−１＊
ｄｉａｇ（ｃｏｎｊ（Ｘ（ｍ、ｊ）））＊Ｅｂ（ｊ）    （１５）
ΔＨｂ（ｍ、ｊ）は乗算部９０８に入力される。
【００２２】
また、人手により、もしくは、図示しない制御部により、ステップサイズ選択部９０９において、周波数帯域のステップサイズＳが選択される。ここで、Ｓは各周波数帯域のステップサイズを対角要素に持つ行列を意味する。選択されたステップサイズＳは乗算部９０８に入力される。乗算部９０８では、ステップサイズＳとΔＨｂ（ｍ、ｊ）とが乗算される、つまり以下の式（１６）が計算される。
Ｓ＊ΔＨｂ（ｍ、ｊ）      （１６）
この結果が加算部９１０に入力される。加算部９１０では、適応フィルタ係数レジスタ９１２に格納されているＨｂ（ｍ、ｊ−１）がＳ＊ΔＨｂ（ｍ、ｊ）に加算される。つまり、以下の式（１７）が計算され、その結果により、前回の適応フィルタ係数Ｈｂ（ｍ、ｊ−１）が更新される。
Ｈｂ（ｍ、ｊ）＝Ｈｂ（ｍ、ｊ−１）＋Ｓ＊ΔＨｂ（ｍ、ｊ）    （１７）
つまり式（１３）〜（１７）から、以下の式（１８）で、周波数領域の適応フィルタ係数は更新される（ステップＳ６）。
Ｈｂ（ｍ、ｊ）＝Ｈｂ（ｍ、ｊ−１）＋
Ｓ(Σ（diag（X(m,j)）*diag(conj(X(m,j))))−１diag(conj(X(m,j))*Eb（ｊ）（１８）
更新された適応フィルタ係数Ｈｂ（ｍ、ｊ）は適応フィルタ係数レジスタ９１２に格納される。なお、このＭＤＦ法によるフィルタ係数の更新は上記ＵＭＤＦ法もしくはＰＦＤＬＭＳ法（partitioned  frequency  domain  least  mean  square）に共通で、時間領域の適応アルゴリズムであるＮＬＭＳ法に対応する。
【００２３】
更新された適応フィルタ係数Ｈｂ（ｍ、ｊ）と、周波数領域変換部６２よりの受話信号Ｘ（ｍ、ｊ）と、が推定信号生成部９２に入力される。
推定信号生成部９２で、周波数領域毎に周波数領域の受話信号Ｘ（ｍ、ｊ）と周波数領域の適応フィルタ係数Ｈｂ（ｍ、ｊ）と内積をとることで、周波数領域のＢＧ推定信号Ｙｂ（ｊ）が求められる。つまり、推定信号生成部９２で以下の式（１９）が計算される。
Ｙｂ（ｊ）＝Σdiag（Ｘ（ｍ、ｊ））＊Ｈｂ（ｍ、ｊ）    （１９）
ＢＧ推定信号Ｙｂ（ｊ）はＢＧ減算部９４に入力される。
【００２４】
一方、ＦＧ部７０よりの時間領域のＦＧ誤差信号ｅｆ（ｋ）がＢＧ周波数領域変換部９８に入力される。周波数領域変換部９８では、時間領域のＦＧ誤差信号ｅｆ（ｋ）から以下の式（２０）のように、周波数領域のＦＧ誤差信号Ｅｆ（ｊ）が求められる。
Ｅｆ（ｊ）＝F[0, 0, ..., 0, ef(k−N/2 + 1), ef(k−N/2 + 2), ..., ef(k)]^T  
（２０）
ここで、Ｆはフーリエ変換を施すことであり、Ｎは１フレームのサンプル数であり、（フレームシフトはＮ／２）、＾Ｔは転置行列を表す。
ＢＧ減算部９４で、ＦＧ誤差信号Ｅｆ（ｊ）の各要素からＢＧ推定信号Ｙｂ（ｊ）の対応する要素を減算して、ＢＧ誤差信号Ｅｂ（ｊ）を求める。ＢＧ誤差信号Ｅｂ（ｊ）は乗算部９０４に入力される。このようにして、ＢＧ部６０において、適応フィルタ係数Ｈｂ（ｍ、ｊ）が更新される。
【００２５】
ＦＧフィルタ係数更新判定処理
また、ＢＧ周波数領域変換部９８よりのＦＧ誤差信号Ｅｆ（ｊ）と、ＢＧ減算部９４よりのＢＧ誤差信号Ｅｂ（ｊ）と、が係数更新判定部９６に入力される。係数更新判定部９６では、以下で説明するＦＧフィルタ係数更新部８０によるＦＧフィルタ係数の更新をするか否かの判定を行う。具体的には、ＦＧ誤差信号Ｅｆ（ｊ）の周波数ωｎのパワーＰＥｆ（ωｎ、ｊ）からＢＧ誤差信号Ｅｂ（ｊ）の周波数ωｎのパワーＰＥｂ（ωｎ、ｊ）を減算した値が、ある値αより大きければ、つまり、以下の式（２１）を満たしていれば、係数更新判定部９６では、ＢＧフィルタ係数、つまり適応フィルタ係数Ｈｂ（ｍ、ｊ）の周波数ωｎの要素学習が進んだと判定して、ＦＧフィルタ係数更新部８０によるＦＧフィルタ係数の更新を指示する。
ＰＥｆ（ωｎ、ｊ）−ＰＥｂ（ωｎ、ｊ）≧α    （２１）
また、この判定は、ＢＧ推定信号生成部９２よりのＢＧ推定信号Ｙｂ（ｊ）の周波数ωｎのパワーＰＹｂ（ωｎ、ｊ）と、ＢＧ誤差信号Ｅｂ（ｊ）の周波数ωｎのパワーＰＥｂ（ωｎ、ｊ）と、を用いて行っても良い。この場合は、ＰＹｂ（ωｎ、ｊ）からＰＥｂ（ωｎ、ｊ）を減算した値が、ある程度の値βより大きければ、つまり、以下の式（２２）を満たしていれば、上記と同様に、係数更新判定部９６では、適応フィルタ係数Ｈｂ（ｍ、ｊ）の周波数ωｎの要素の学習が進んだと判断されるので、ＦＧフィルタ係数更新部８０によるＦＧフィルタ係数の更新をする旨の判定を行う。適応フィルタ係数Ｈｂ（ｍ、ｊ）の学習が十分に進むと、ＢＧ推定信号Ｙｂ（ｊ）は、ＦＧ誤差信号Ｅｆ（ｊ）と近い値になる。従って、式（２２）による判定でもよいことになる。
ＰＹｂ（ωｎ、ｊ）−ＰＥｂ（ωｎ、ｊ）≧β    （２２）
【００２６】
ＦＧフィルタ係数更新処理
次に、ＦＧフィルタ係数更新部８０について説明する。ＦＧフィルタ係数更新部８０は適応フィルタ係数Ｈｂ（ｍ、ｊ）をＦＧフィルタ係数Ｈｆ（ｍ、ｊ）に加算し、ＦＧフィルタ係数Ｈｆ（ｍ、ｊ）を更新する（ステップＳ８）。また、上述のように、周波数領域で、適応フィルタ係数Ｈｂ（ｍ、ｊ）をＦＧフィルタ係数Ｈｆ（ｍ、ｊ）に加算する際に、上記拘束条件を満たしていなければならない。この拘束条件を満たすためのＦＧフィルタ係数更新部８０の具体的構成例を説明する。図７に示すように、この実施例では、ＦＧフィルタ係数更新部８０は時間領域変換手段８０２、半分０化手段８０４、周波数領域変換手段８０６、加算手段８０８により構成されている。なお、係数更新判定部９６により、ＦＧフィルタ係数の更新を行う旨の判定がされなかった周波数ωｎの要素には０を詰めて、ＦＧフィルタ係数更新部８０のＦＧフィルタ係数更新処理は作動する。
【００２７】
まずＢＧ部６０中の適応フィルタ係数レジスタ９１２中の適応フィルタ係数Ｈｂ（ｍ、ｊ）が時間領域変換手段８０２に入力される。時間領域変換手段８０２で、適応フィルタ係数Ｈｂ（ｍ、ｊ）を時間領域の適応フィルタ係数ｈｂ（ｋ）に変換する。
適応フィルタ係数ｈｂ（ｋ）は半分０化手段８０４に入力される。半分０化手段８０４で、適応フィルタ係数ｈｂ（ｋ）の要素の半分以上を０にする。時間領域に変換した適応フィルタ係数のどの要素を０に置き換えるかは、上記非特許文献１もしくは上記参考文献に記載されている。適応フィルタ係数ｈｂ（ｋ）の要素の半分以上を０にされた適応フィルタ係数ｈｂ（ｋ）’は、周波数領域変換手段８０６に入力され、再び、周波数領域に変換され、適応フィルタ係数Ｈｂ（ｍ、ｊ）’が求められる。周波数領域の適応フィルタ係数Ｈｂ（ｍ、ｊ）’とＦＧフィルタ係数レジスタ７０１に格納されているＦＧフィルタ係数Ｈｆ（ｍ、ｊ）とが加算手段８０８に入力される。
加算手段８０８で、Ｈｆ（ｍ、ｊ）の各要素とＨｂ（ｍ、ｊ）’の対応要素とが加算され、ＦＧフィルタ係数Ｈｆ（ｍ、ｊ）’が求められる。新たに求められたＦＧフィルタ係数Ｈｆ（ｍ、ｊ）’がＦＧフィルタ係数レジスタ７０１に格納され、ＦＧフィルタ係数は更新される。このようにして、ＦＧ部７０、ＢＧ部６０、ＦＧフィルタ係数更新部８０の処理は繰り返される。
【００２８】
再初期化処理
また、この発明では、適応フィルタ係数Ｈｂ（ｍ、ｊ）が上記拘束条件を満たす値から大きく外れた状況が継続することを阻止するために、ＢＧ部６０内の適応フィルタ係数Ｈｂ（ｍ、ｊ）を拘束条件を満たす初期値ｈ０に戻す再初期化を行う。
図４に示すように、再初期化時期検出部１００には、適応フィルタ係数Ｈｂ（ｍ、ｊ）が再初期化されてからの所定の時間経過を検出し、または、適応フィルタ係数Ｈｂ（ｍ、ｊ）の更新を所定回数行ったことを検出して、再初期化信号を出力する。
再初期化時期検出部１００には、設定可能タイマ１０２もしくは、設定可能カウンタ１０４が具備されている。まず、設定可能タイマ１０２が具備されている場合を説明する。
再初期化時期検出部１００には予め、時間閾値θｅがＴレジスタ１０３に設定されている。設定可能タイマ１０２は、ＢＧ部６０内の適応フィルタ係数レジスタ９１２内の適応フィルタ係数Ｈｂ（ｍ、ｊ）が再初期化されてからの経過時間Ｔｅを測定する（ステップＳ１０）。経過時間Ｔｅが時間閾値θｅになると、つまり以下の式（２３）を満たせば、設定可能タイマ１０２が、タイムアウト信号を出力し、設定可能タイマ１０２はリセットされる。このタイムアウト信号を再初期化時期検出部１００は再初期化信号として出力する（ステップＳ１２）。
Ｔｅ≧θｅ      （２３）
【００２９】
再初期化信号は再初期化部１１０に入力され、再初期化部１１０はその入力により、ＢＧ部６０中の適応フィルタ係数レジスタ９１２中の適応フィルタ係数Ｈｂ（ｍ、ｊ）の各要素を再初期化する（ステップＳ１４）。ここで、拘束条件を満たす典型的な初期値は適応フィルタ係数Ｈｂ（ｍ、ｊ）の全ての要素が０のベクトルである。
また、再初期化時期検出部１００に設定可能カウンタ１０４が具備されている場合を説明する。再初期化時期検出部１００には予め回数閾値θｕがＣレジスタ１０５に設定されている。ＢＧフィルタ係数更新部９０において、適応フィルタ係数Ｈｂ（ｍ、ｊ）の更新が行われるたびに、そのことを示す信号が設定可能カウンタ１０４に入力され、適応フィルタ係数Ｈｂ（ｍ、ｊ）の更新回数が、設定可能カウンタ１０４でカウントされる（ステップＳ１０）。カウント数Ｔｕが回数閾値θｕ以上になった場合、つまり、以下の式（２４）を満たせば、設定可能カウンタ１０４からカウントオーバー信号が出力され、再初期化時期検出部１００は、このカウントオーバー信号を再初期化信号として、出力する（ステップＳ１２）。
Ｔｕ≧θｕ      （２４）
【００３０】
再初期化信号が出力されれば、カウント数Ｔｕは０にリセットされる。再初期化部１１０の処理は上記と同様である。
適応フィルタ係数がある程度、収束するごとに、再初期化をすればよいから、ＢＧ推定信号生成部９２のフィルタを時間領域処理とした場合、θｅやθｕの値はフィルタ長の数１０（約２０〜３０）倍程度の時間、つまりフィルタ係数の更新を数１０（約２０〜３０）回行う毎に、再初期化すればよい。
【００３１】
また、実施例１の変形例として、ＦＧ部７０中に図５中に破線で示すようにＦＧ時間領域変換部７０４の後段にＦＧ周波数領域変換部７０５を設けて、上記拘束条件を満たすようにして、その出力ＦＧ推定信号Ｙｆ（ｊ）をＦＧ減算部７０６に入力し、時間領域の収音信号ｄ（ｋ）を周波数領域に変換するＦＧ周波数領域変換部７０８（図５中に破線で示している）と周波数領域のＦＧ誤差信号Ｅｆ（ｊ）を時間領域に変換して上記通信網に出力する時間領域変換部７１０（図５中に破線で示している）を設けても良い。この場合、時間領域の収音信号ｄ（ｋ）は周波数領域の収音信号Ｄ（ｊ）に変換され、ＦＧ減算部７０６に入力される。
ＦＧ減算部７０６で、周波数領域の収音信号Ｄ（ｊ）の各要素からＦＧ推定信号Ｙｆ（ｊ）の対応要素を減算して、周波数領域のＦＧ誤差信号Ｅｆ（ｊ）が求められる。このＦＧ誤差信号Ｅｆ（ｊ）は図６中には破線で示すように、ＢＧ部６０内のＢＧ減算部９４と係数更新判定部９６に入力される。この場合はＢＧ周波数領域変換部９８は省略される。
【実施例２】
【００３２】
この実施例２では、ＦＧ部７０中のＦＧ推定信号生成部７０２とＦＧ減算部７０６は時間領域で処理を行う。また、図５、図７において、時間領域処理を行うことを同一番号にダッシュ「’」を付け、かつ括弧書きで示す。ＦＧ部７０中のＦＧ時間領域変換部７０４は設けられない。
この場合、受話信号ｘ（ｋ）は周波数領域変換部６２に入力されずに、図５で破線で示すように、ＦＧ推定信号生成部７０２’に入力される。また、この場合、ＦＧフィルタ係数レジスタ７０１’には、時間領域のＦＧフィルタ係数ｈｆ（ｋ）が、格納されている。ＦＧ推定信号生成部７０２’では、上記式（１）において、ｈ（ｋ）をｈｆ（ｋ）に置き換えた式の左辺により、ＦＧ推定信号ｙｆ（ｋ）が求められる。
また、この実施例２では、図７で示すようにＦＧフィルタ係数更新部８０は、時間領域変換手段８０２と、加算手段８０８’と、で構成されている。
ＢＧ部６０中の適応フィルタ係数レジスタ９１２に周波数領域で格納されているＨｂ（ｍ、ｊ）は、時間領域変換手段８０２に入力され、時間領域の適応フィルタ係数ｈｂ（ｋ）に変換され、０に置き換える処理が行われることなく、加算手段８０８’に入力される。係数更新判定部９６がＦＧフィルタ係数の更新をする旨の判定を行った場合は、加算手段８０８’において、ｈｆ（ｋ）とｈｂ（ｋ）とが加算される。加算された値ｈｆ（ｋ）がＦＧフィルタ係数レジスタ７０１’に格納され、ＦＧフィルタ係数は更新される。
【００３３】
上述においては、各フィルタ係数格納レジスタを個別に設けたが、例えば、適応フィルタ係数レジスタ９１２はＢＧ推定信号生成部９２、又はＢＧフィルタ係数更新部９０内に設けても良い。ＦＧフィルタ係数レジスタ７０１（７０１’
）も同様にＦＧ推定信号生成部３０又はＦＧフィルタ係数更新部２２内に設けても良い。
以上の各実施形態の他、本発明であるエコーキャンセラ装置は上述の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。また、エコーキャンセラ装置において説明した処理は、記載の順に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されるとしてもよい。
【００３４】
また、この発明のエコーキャンセラ装置における処理をコンピュータによって実現する場合、エコーキャンセラ装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、エコーキャンセラ装置における処理機能がコンピュータ上で実現される。
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。具体的には、例えば、磁気記録装置として、ハードディスク装置、フレキシブルディスク、磁気テープ等を、光ディスクとして、ＤＶＤ（ＤｉｇｉｔａｌＶｅｒｓａｔｉｌｅＤｉｓｃ）、ＤＶＤ−ＲＡＭ（ＲａｋｄｏｍＡｃｃｅｓｓＭｅｍｏｒｙ）、ＣＤ−ＲＯＭ（ＣｏｍｐａｃｔＤｉｓｃＲｅａｄＯｋｌｙＭｅｍｏｒｙ）、ＣＤ−Ｒ（Ｒｅｃｏｒｄａｂｌｅ）／ＲＷ（ＲｅＷｒｉｔａｂｌｅ）等を、光磁気記録媒体として、ＭＯ（Ｍａｇｋｅｔｏ−Ｏｐｔｉｃａｌｄｉｓｃ）等を、半導体メモリとしてＥＥＰ−ＲＯＭ（ＥｌｅｃｔｒｏｋｉｃａｌｌｙＥｒａｓａｂｌｅａｋｄＰｒｏｇｒａｍｍａｂｌｅ−ＲｅａｄＯｋｌｙＭｅｍｏｒｙ）等を用いることができる。
【００３５】
また、このプログラムの流通は、例えば、そのプログラムを記録したＤＶＤ、ＣＤ−ＲＯＭ等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるＡＳＰ（ＡｐｐｌｉｃａｔｉｏｋＳｅｒｖｉｃｅＰｒｏｖｉｄｅｒ）型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの（コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等）を含むものとする。
【００３６】
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、エコーキャンセラ装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
【図面の簡単な説明】
【００３７】
【図１】従来技術のエコーキャンセラ１０の機能構成例を示すブロック図。
【図２】従来技術のＦＧ／ＢＧ構成のエコーキャンセラ２０の機能構成例を示すブロック図。
【図３】従来技術の差分型ＦＧ／ＢＧ構成のエコーキャンセラ４５の機能構成例を示すブロック図。
【図４】この発明の実施例１、実施例２のエコーキャンセラ１２０の機能構成例を示すブロック図。
【図５】この発明の実施例１、実施例２のＦＧ部７０の機能構成例を示すブロック図。
【図６】この発明の実施例１、実施例２のＢＧ部６０の機能構成例を示すブロック図。
【図７】この発明の実施例１、実施例２のＦＧフィルタ係数更新部８０の機能構成例を示すブロック図。
【図８】この発明の主な処理の流れを示すフローチャート図。
【図１】
2008098929.tif 000003
【図２】
2008098929.tif 000004
【図３】
2008098929.tif 000005
【図４】
2008098929.tif 000006
【図５】
2008098929.tif 000007
【図６】
2008098929.tif 000008
【図７】
2008098929.tif 000009
【図８】
2008098929.tif 000010