(57)【要約】【課題】ダブルトーク検出回路を設けることなく、ダブルトーク状態の場合に適応誤差が増大することを防ぐこと。【解決手段】タップ係数設定部２０２は、入力信号ｘ［ｎ］及び誤差信号ｅ［ｎ］を用いて、遅延回路３０１及び乗算器３０２により、更新係数Δｗｎ［ｉ］の分子項を計算し、乗算器３０３、乗算器３０４、加算器３０５、平均回路３０６、加算器３０７により、更新係数Δｗｎ［ｉ］の正規化分母項を計算する。タップ係数設定部２０２は、逆数演算回路３０８、乗算器３０９により、分子項を正規化分母項で除して更新係数Δｗｎ［ｉ］を計算する。タップ係数設定部２０２は、乗算器３１０、加算器３１１、遅延回路３１２により、更新係数Δｗｎ［ｉ］にステップサイズ２μを乗算したものをタップ係数ｗｎ［ｉ］に加算して更新後のタップ係数ｗｎ＋１［ｉ］を生成する。【選択図】図３
2010119033.tif 000002
【特許請求の範囲】
【請求項１】
伝達関数が未知である系へ入力された系入力信号と等しい入力信号ｘ［ｎ］を入力し、前記入力信号ｘ［ｎ］をフィルタ処理することにより出力信号ｙ［ｎ」を出力するフィルタ部と、
前記系から出力される系出力信号ｄ［ｎ」と前記出力信号ｙ［ｎ」との差である誤差信号ｅ［ｎ］と、前記入力信号ｘ［ｎ］とに基づき、前記系の伝達関数と等しくなるように、前記フィルタ処理におけるタップ係数ｗｎ［ｉ］を更新するタップ係数設定部と、
を有する適応フィルタであって（ｎはサンプルタイムインデックス、ｉは適応フィルタのタップ位置を表す引数）、
前記タップ係数設定部は、
ステップサイズ２μと更新係数Δｗｎ［ｉ］を乗算したものをタップ係数ｗｎ［ｉ］に加算して更新後のタップ係数ｗｎ＋１［ｉ］を生成し、
前記更新係数Δｗｎ［ｉ］を、分子項を正規化分母項で除すことによって生成し、
前記分子項を、入力信号ｘ［ｎ−ｉ］に前記誤差信号ｅ［ｎ］を乗じることによって生成し、
前記正規化分母項を、前記入力信号ｘ［ｎ］及び前記誤差信号ｅ［ｎ］を用いて生成する、
適応フィルタ。
【請求項２】
前記タップ係数設定部は、前記正規化分母項を、前記入力信号ｘ［ｎ］の２乗と前記誤差信号ｅ［ｎ］の２乗との和の平均に正の定数ｃを加算することにより生成する、請求項１に記載の適応フィルタ。
【請求項３】
前記タップ係数設定部は、前記正規化分母項を、前記入力信号ｘ［ｎ］の２乗と前記誤差信号ｅ［ｎ］の２乗との積の平均の平方根に正の定数ｃを加算することにより生成する、請求項１に記載の適応フィルタ。
【請求項４】
前記タップ係数設定部は、前記正規化分母項を、前記入力信号ｘ［ｎ］と前記誤差信号ｅ［ｎ］との積の絶対値の平均に正の定数ｃを加算することにより生成する、請求項１に記載の適応フィルタ。
【請求項５】
伝達関数が未知である系へ入力された系入力信号と等しい入力信号ｘ［ｎ］を入力し、前記入力信号ｘ［ｎ］をフィルタ処理することにより出力信号ｙ［ｎ」を出力するフィルタ部と、
前記系から出力される系出力信号ｄ［ｎ」と前記出力信号ｙ［ｎ」との差である誤差信号ｅ［ｎ］と、前記入力信号ｘ［ｎ］とに基づき、前記系の伝達関数と等しくなるように、前記フィルタ処理におけるタップ係数ｗｎ［ｉ］を更新するタップ係数設定部と、
を有する適応フィルタであって（ｎはサンプルタイムインデックス、ｉは適応フィルタのタップ位置を表す引数）、
前記タップ係数設定部は、
タップ係数ｗｎ［ｉ］を離散的フーリエ変換してタップ係数ベクトルＷｎ［ｋ］を生成し（ｋは周波数）、
ステップサイズμと更新ベクトルΔＷｎ［ｋ］を乗算したものを前記タップ係数ベクトルＷｎ［ｋ］に加算して更新後のタップ係数ベクトルＷｎ＋Ｌ［ｋ］を生成し（Ｌは更新周期）、
前記タップ係数ベクトルＷｎ＋Ｌ［ｋ］を離散的逆フーリエ変換して更新後のタップ係数ｗｎ＋Ｌ［ｉ］を生成し、
前記更新ベクトルΔＷｎ［ｉ］を、分子項を正規化分母項で除すことによって生成し、
前記分子項を、前記入力信号ｘ［ｉ］の離散的フーリエ変換した入力信号ベクトルＸ［ｋ］に、前記誤差信号ｅ［ｎ］の離散的フーリエ変換した誤差信号ベクトルＥ［ｋ］の複素共役Ｅ＊［ｋ］を乗じたものを用いて生成し、
前記正規化分母項を、前記入力信号ベクトルＸ［ｋ］及び前記誤差信号ベクトルＥ［ｋ］を用いて生成する、
適応フィルタ。
【請求項６】
前記タップ係数設定部は、
前記分子項を、前記入力信号ベクトルＸ［ｋ］に、前記誤差信号ベクトルＥ［ｋ］の複素共役Ｅ＊［ｋ］を乗じて生成し、
前記正規化分母項を、前記入力信号ベクトルＸ［ｋ］と前記誤差信号ベクトルＥ［ｋ］との積の絶対値と、正の定数ｃとの和により生成する、請求項５に記載の適応フィルタ。
【請求項７】
前記タップ係数設定部は、
前記分子項を、前記入力信号ベクトルＸ［ｋ］に、前記誤差信号ベクトルＥ［ｋ］の複素共役Ｅ＊［ｋ］を乗じた第１分子項と、前記出力信号ｙ［ｎ」と前記誤差信号ｅ［ｎ］との積の絶対値の平均に正の定数ｐを加算した第２分子項との積により生成し、
前記正規化分母項を、前記入力信号ベクトルＸ［ｋ］と前記誤差信号ベクトルＥ［ｋ］との積の絶対値に正の定数ｃを加算することにより生成する、請求項５に記載の適応フィルタ。
【請求項８】
請求項１から請求項７のいずれかの適応フィルタと、
前記系出力信号ｄ［ｎ」から、前記適応フィルタから出力された出力信号ｙ［ｎ」を減算して前記誤差信号ｅ［ｎ］を生成する減算器と、
を有するエコーキャンセラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、受信音声信号をタップ係数で演算して擬似エコーを生成する適応フィルタ、及び、この適応フィルタで生成された擬似エコーを用いてエコーを消去するエコーキャンセラに関する。
【背景技術】
【０００２】
通話形態の変化やハードウェアの進展に伴って、我々がマイクロホンを用いる機会は増える傾向にある。マイクロホンは、必要とする音声だけでなく、スピーカから出力された音声や室内の壁面で反射された間接波（エコー）も取得するため、それがそのままスピーカから出力されると、自分の話した声が遅れて聞こえ、大変耳障りである。また、ハンズフリー電話等においては、エコーの中の特定の周波数成分が増幅されて、ハウリング（発振現象）が起きることもある。
【０００３】
このエコーを消去するシステムがエコーキャンセラである。エコーキャンセラは、適応フィルタのタップ係数をスピーカからマイクロホンまでの伝達関数と等しくなるように更新し、このタップ係数を用いて入力信号を処理した信号（以下、「擬似エコー」という）を、マイクロホンに収音された音声信号から減算する。これにより、エコーキャンセラより出力された信号（以下、「誤差信号」という）は、エコー成分が抑圧されたものとなる。
【０００４】
適応フィルタは、離散時刻ｎにおける入力音声をタップ係数ｗｎ［ｉ］で演算することにより擬似エコーを生成する。また、適応フィルタは、所定の適応アルゴリズムにより、タップ係数ｗｎ［ｉ］の更新を行う。なお、ｎはサンプルタイムインデックス、ｉは適応フィルタのタップ位置を表す引数（インデックス）である。
【０００５】
タップ係数ｗｎ［ｉ］の更新の漸化式は、一般に次の式（１）で表される。なお、式（１）において、ｗｎ［ｉ］は適応前のタップ係数、ｗｎ＋１［ｉ］は適応後のタップ係数、μはタップ係数の収束速度を調整するステップサイズ、Δｗｎ［ｉ］は更新係数である。更新係数Δｗｎ［ｉ］は適応アルゴリズムの種類によって異なる。
【数１】
2010119033.tif 000003
【０００６】
適応フィルタは、一般に、伝達関数が未知である系へ入力された系入力信号と等しい入力信号が入力され、前記入力信号をフィルタ処理することにより出力信号を出力し、かつ、前記フィルタ処理におけるタップ係数を前記系から出力される系出力信号と前記出力信号との差である誤差信号及び前記入力信号に基づき、前記系の伝達関数と等しくなるようにタップ係数を更新するフィルタ、と定義される。
【０００７】
ところで、適応フィルタの適応推定動作は、遠端側の話者の音声信号のみが存在するシングルトーク状態の場合には正常に行われる。
【０００８】
しかしながら、近端側の話者の音声信号（近端信号）と遠端側の話者の音声信号（遠端信号）との重ね合わせであるダブルトーク状態の場合、これまでの適応アルゴリズムは近端側の話者の音声（加法性雑音）の影響を考慮していないので、この状態で適応フィルタを更新すれば、適応フィルタの適応誤差が増えてしまい、タップ係数ｗｎ［ｉ］が発散してしまうおそれがある。
【０００９】
この問題に対して、従来技術では、ダブルトーク状態であるか否かを検出するダブルトーク検出回路を設け、ダブルトーク状態の場合には、適応フィルタの適応推定動作を停止する、あるいは、適応アルゴリズムのステップサイズμを小さくする等の対策を採っている（特許文献１、特許文献２及び特許文献３参照）。
【特許文献１】特開２００７−２７４７１４号公報
【特許文献２】特開２００８−７８９７３号公報
【特許文献３】特開２００８−９８９２９号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら、従来技術のようにダブルトーク検出回路を設ける手法では、ダブルトーク状態であるか否かを判定するための最適な閾値を求めるために手間がかかる。また、正確にダブルトーク状態を検出することは困難であり、従来技術によっては、適応フィルタの良好な収束特性を維持することが困難である。
【００１１】
本発明はかかる点に鑑みてなされたものであり、ダブルトーク検出回路を設けることなく、ダブルトーク状態の場合に適応誤差が増大することを防ぐことができる適応フィルタ及びこれを有するエコーキャンセラを提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明の適応フィルタは、伝達関数が未知である系へ入力された系入力信号と等しい入力信号ｘ［ｎ］を入力し、前記入力信号ｘ［ｎ］をフィルタ処理することにより出力信号ｙ［ｎ」を出力するフィルタ部と、前記系から出力される系出力信号ｄ［ｎ」と前記出力信号ｙ［ｎ」との差である誤差信号ｅ［ｎ］と、前記入力信号ｘ［ｎ］とに基づき、前記系の伝達関数と等しくなるように、前記フィルタ処理におけるタップ係数ｗｎ［ｉ］を更新するタップ係数設定部と、を有する適応フィルタであって（ｎはサンプルタイムインデックス、ｉは適応フィルタのタップ位置を表す引数）、前記タップ係数設定部は、ステップサイズ２μと更新係数Δｗｎ［ｉ］を乗算したものをタップ係数ｗｎ［ｉ］に加算して更新後のタップ係数ｗｎ＋１［ｉ］を生成し、前記更新係数Δｗｎ［ｉ］を、分子項を正規化分母項で除すことによって生成し、前記分子項を、入力信号ｘ［ｎ−ｉ］に前記誤差信号ｅ［ｎ］を乗じることによって生成し、前記正規化分母項を、前記入力信号ｘ［ｎ］及び前記誤差信号ｅ［ｎ］を用いて生成する、構成を採る。
【００１３】
本発明のエコーキャンセラは、上記適応フィルタと、前記系出力信号ｄ［ｎ」から、前記適応フィルタから出力された出力信号ｙ［ｎ」を減算して前記誤差信号ｅ［ｎ］を生成する減算器と、を有する構成を採る。
【発明の効果】
【００１４】
本発明によれば、遠端信号のパワーと近端信号のパワーに基づいて収束速度を制御することにより、自動的に最適な収束速度を維持することができ、良好かつ安定した収束特性を得ることができる。そして、本発明によれば、ダブルトーク状態の場合に収束速度を低下させ、適応誤差が増大することを防ぐことができる。
【発明を実施するための最良の形態】
【００１５】
以下、本発明の実施の形態について図面を参照して詳細に説明する。図１は、本発明の一実施の形態に係るエコーキャンセラを含むディジタル通信装置の構成を示すブロック図である。
【００１６】
図１に示すように、ディジタル通信装置は、ディジタル・アナログ（Ｄ／Ａ）変換器１０１と、パワーアンプ１０２と、スピーカ１０３と、マイクロホン１０４と、マイクアンプ１０５と、アナログ・ディジタル（Ａ／Ｄ）変換器１０６と、エコーキャンセラ１０７と、から主に構成される。エコーキャンセラ１０７は、適応フィルタ１０８と、減算器１０９と、を有する。
【００１７】
通信相手の装置から送信された信号は、図示しない受信回路において、復調、復号等の処理が行われてディジタル受信音声信号ｘ［ｎ］となる。ディジタル受信音声信号ｘ［ｎ］は、適応フィルタ１０８の入力信号となる。
【００１８】
ディジタル・アナログ変換器１０１は、ディジタル受信音声信号ｘ［ｎ］をアナログ音声信号に変換する。アナログ受信音声信号は、パワーアンプ１０２で増幅され、スピーカ１０３から音声として出力される。
【００１９】
マイクロホン１０４に入力されたアナログ送信音声信号は、マイクアンプ１０５で増幅され、アナログ・ディジタル変換器１０６に入力される。なお、マイクロホン１０４には、近端の話者の入力音声ｓ［ｎ］やスピーカ１０３からの再生音声ｇ［ｎ］がエコーとして入力される。近端の話者の入力音声は、適応フィルタ１０８の収束を乱す加法性の雑音に相当する。
【００２０】
アナログ・ディジタル変換器１０６は、アナログ送信音声信号をディジタル送信音声信号ｄ［ｎ」に変換する。
【００２１】
エコーキャンセラ１０７は、適応フィルタ１０８のタップ係数ｗｎ［ｉ］をディジタル・アナログ変換器１０１から、アナログ・ディジタル変換器１０６までの伝達関数のインパルスレスポンスと等しくなるように更新する。パワーアンプ１０２およびマイクアンプ１０５は、通常、平坦な周波数特性を有しているので、ｗｎ［ｉ］は、スピーカ１０３からマイクロホン１０４までの伝達関数のインパルスレスポンスと等しくなる。そして、エコーキャンセラ１０７は、タップ係数ｗｎ［ｉ］を用いてディジタル受信音声信号ｘ［ｎ］を処理した擬似エコーｙ［ｎ」を、ディジタル送信音声信号ｄ［ｎ」から減算し、エコーが抑圧された誤差信号ｅ［ｎ］を出力する。
【００２２】
適応フィルタ１０８は、離散時刻ｎにおけるディジタル受信音声信号ｘ［ｎ］をタップ係数ｗｎ［ｉ］で演算して擬似エコーｙ［ｎ」を生成する。また、適応フィルタ１０８は、減算器１０９から出力された誤差信号ｅ［ｎ］及びディジタル受信音声信号ｘ［ｎ］に基づき、所定の適応アルゴリズムにより、タップ係数ｗｎ［ｉ］の更新を行う。なお、ｉは、適応フィルタのタップ位置を表す引数（インデックス）である。
【００２３】
減算器１０９は、アナログ・ディジタル変換器１０６から出力されたディジタル送信音声信号ｄ［ｎ」から擬似エコーｙ［ｎ」を減算して誤差信号ｅ［ｎ］を得る。誤差信号ｅ［ｎ］は、図示しない送信回路において符号化、変調等の処理が行われ、通信相手の装置に送信される。
【００２４】
次に、適応フィルタ１０８の内部構成について図面を用いて説明する。なお、以下の説明では、ディジタル受信音声信号ｘ［ｎ］を入力信号、擬似エコーｙ［ｎ」を出力信号という。
【００２５】
図２は、適応フィルタ１０８の内部構成を示すブロック図である。図２に示すように、適応フィルタ１０８は、フィルタ部２０１と、タップ係数設定部２０２と、を有する。
【００２６】
フィルタ部２０１は、ＦＩＲフィルタ等であって、入力信号ｘ［ｎ］を、タップ係数ｗｎ［ｉ］で演算する（フィルタ処理する）ことにより出力信号ｙ［ｎ」を生成する。
【００２７】
タップ係数設定部２０２は、入力信号ｘ［ｎ］及び誤差信号ｅ［ｎ］を用いて、所定の適応アルゴリズムにより、タップ係数ｗｎ［ｉ］を設定し、タップ係数ｗｎ［ｉ］をフィルタ部２０１に出力する。なお、本発明は、このタップ係数設定部２０２における適応アルゴリズムの演算回路に特徴がある。
【００２８】
以下、適応アルゴリズムとしてＮＬＭＳ（Normalized Least Mean Square）アルゴリズムを用いた場合における、本願発明の適応フィルタについて説明する。ＮＬＭＳアルゴリズムは、時間領域で処理を行い、新たな信号のサンプル値が入力されるたびに逐次演算を行って徐々にタップ係数が最適値に収束していく適応アルゴリズムである。
【００２９】
ＮＬＭＳアルゴリズムを用いた場合、本発明のタップ係数ｗｎ［ｉ］の更新漸化式は、次の式（２）から式（４）のいずれかで表される。なお、式（２）から式（４）において、ｗｎ［ｉ］は適応前（時刻ｎ）のタップ係数、ｗｎ＋１［ｉ］は適応後（時刻ｎ＋１）のタップ係数、２μはタップ係数の収束速度を調整するステップサイズ、ｘ［ｎ］は入力信号、ｅ［ｎ］は誤差信号、ｃは分数の分母の値が０とならないようにするための正の値の微少な定数である。また、記号￣は信号の時間平均を表す。
【数２】
2010119033.tif 000004
【数３】
2010119033.tif 000005
【数４】
2010119033.tif 000006
【００３０】
なお、時間平均は、過去の有限の個数のサンプルを用いた移動平均または忘却係数を用いた積分処理により求められる。移動平均は、平均を取るデータ長をＮとした場合に、タップ係数がすべて１／ＮであるＮタップＦＩＲフィルタで計算することができる。また、忘却係数αを用いた積分処理は、以下の式（５）で定義される。式（５）は、入力信号ｆ［ｎ］に対してその時間平均を求める場合を示す。
【数５】
2010119033.tif 000007
【００３１】
式（２）から式（４）のいずれも、従来のＮＬＭＳアルゴリズムとは異なり、入力信号ｘ［ｎ］のパワーだけではなく誤差信号ｅ［ｎ］のパワーも用いて正規化処理を行っている。
【００３２】
式（２）は、入力信号ｘ［ｎ］のパワーと誤差信号ｅ［ｎ］のパワーの和の平均値により正規化処理を行っている。式（３）は入力信号ｘ［ｎ］のパワーと誤差信号ｅ［ｎ］のパワーの積の平均値の平方根により正規化処理を行っている。式（２）の処理と式（３）の処理はほぼ同等の効果が得られる。
【００３３】
式（４）は、式（３）の平方根の演算を省略するために、入力信号ｘ［ｎ］と誤差信号ｅ［ｎ］の積の絶対値の平均値により正規化処理を行っている。入力信号ｘ［ｎ］と誤差信号ｅ［ｎ］の積はパワーの次元であるので平方根演算は不要となり、式（４）の方が、式（３）よりも処理が簡単になる。
【００３４】
図３は、タップ係数設定部２０２の式（２）の場合における演算回路の構成を示す図である。図４は、タップ係数設定部２０２の式（３）の場合における演算回路の構成を示す図である。図５は、タップ係数設定部２０２の式（４）の場合における演算回路の構成を示す図である。図３、図４、図５において、（＋）は加算器を表し、（×）は乗算器を表す。また、（・）−１は入力信号の逆数を求める逆数演算回路を表す。また、√（・）は入力信号の平方根を求める平方根演算回路を表す。また、|・|は入力信号の絶対値を求める絶対値演算回路を表す。また、ｚ−ｉはｉサンプルの遅延処理を行う遅延回路を表す。
【００３５】
図３において、タップ係数設定部２０２は、入力信号ｘ［ｎ］及び誤差信号ｅ［ｎ］を用いて、遅延回路３０１及び乗算器３０２により、更新係数Δｗｎ［ｉ］の分子項を計算し、乗算器３０３、乗算器３０４、加算器３０５、平均回路３０６、加算器３０７により、更新係数Δｗｎ［ｉ］の正規化分母項を計算する。そして、タップ係数設定部２０２は、逆数演算回路３０８、乗算器３０９により、分子項を正規化分母項で除して更新係数Δｗｎ［ｉ］を計算する。そして、タップ係数設定部２０２は、乗算器３１０、加算器３１１、遅延回路３１２により、更新係数Δｗｎ［ｉ］にステップサイズ２μを乗算したものをタップ係数ｗｎ［ｉ］に加算して更新後のタップ係数ｗｎ＋１［ｉ］を生成する。
【００３６】
図４において、タップ係数設定部２０２は、入力信号ｘ［ｎ］及び誤差信号ｅ［ｎ］を用いて、遅延回路４０１及び乗算器４０２により、更新係数Δｗｎ［ｉ］の分子項を計算し、乗算器４０３、乗算器４０４、乗算器４０５、平均回路４０６、平方根演算回路４０７、加算器４０８により、更新係数Δｗｎ［ｉ］の正規化分母項を計算する。そして、タップ係数設定部２０２は、逆数演算回路４０９、乗算器４１０により、分子項を正規化分母項で除して更新係数Δｗｎ［ｉ］を計算する。そして、タップ係数設定部２０２は、乗算器４１１、加算器４１２、遅延回路４１３により、更新係数Δｗｎ［ｉ］にステップサイズ２μを乗算したものをタップ係数ｗｎ［ｉ］に加算して更新後のタップ係数ｗｎ＋１［ｉ］を生成する。
【００３７】
図５において、タップ係数設定部２０２は、入力信号ｘ［ｎ］及び誤差信号ｅ［ｎ］を用いて、遅延回路５０１及び乗算器５０２により、更新係数Δｗｎ［ｉ］の分子項を計算し、乗算器５０３、絶対値演算回路５０４、平均回路５０５、加算器５０６により、更新係数Δｗｎ［ｉ］の正規化分母項を計算する。そして、タップ係数設定部２０２は、逆数演算回路５０７、乗算器５０８により、分子項を正規化分母項で除して更新係数Δｗｎ［ｉ］を計算する。そして、タップ係数設定部２０２は、乗算器５０９、加算器５１０、遅延回路５１１により、更新係数Δｗｎ［ｉ］にステップサイズ２μを乗算したものをタップ係数ｗｎ［ｉ］に加算して更新後のタップ係数ｗｎ＋１［ｉ］を生成する。
【００３８】
次に、適応アルゴリズムとしてＦＬＭＳ（Fast Least Mean SquareまたはFrequency domain Least Mean Square）アルゴリズムを用いた場合における、本願発明の適応フィルタについて説明する。ＦＬＭＳアルゴリズムは、数サンプルおきに周期的に離散的フーリエ変換を用いて周波数領域でブロック処理を行い、徐々にタップ係数が最適値に収束していく適応アルゴリズムである。なお、ＦＬＭＳアルゴリズムは、ＦＢＬＭＳ（Fast Block Least Mean SquareまたはFrequency domain Block Least Mean Square）アルゴリズムと称されることもある。
【００３９】
ＦＬＭＳアルゴリズムを用いた場合、本発明のタップ係数の離散的フーリエ変換Ｗｎ［ｉ］の更新漸化式は、次の式（６）または式（７）で表される。なお、式（６）、式（７）において、Ｗｎ［ｋ］はタップ係数ｗｎ［ｉ］の離散的フーリエ変換、Ｗｎ＋Ｌ［ｋ］はタップ係数ｗｎ＋Ｌ［ｉ］の離散的フーリエ変換、μはタップ係数の収束速度を調整するステップサイズ、Ｘ［ｋ］は入力信号ｘ［ｎ］の離散的フーリエ変換、Ｅ［ｋ］は誤差信号ｅ［ｎ］の離散的フーリエ変換、ｃは分数の分母の値が０とならないようにするための正の値の微少な定数、ｐは分数の分子が極端に小さな値とならないようにするための正の値の微少な定数である。また、ｋは周波数を表す。また、Ｌは係数更新処理を行う周期を表す。Ｌ＝１として新たな信号のサンプル値が入力されるたびに逐次演算を行っても構わない。また、記号￣は信号の時間平均を表し、記号＊は複素共役を表す。
【数６】
2010119033.tif 000008
【数７】
2010119033.tif 000009
【００４０】
式（６）、式（７）のいずれも、従来のＦＬＭＳアルゴリズムとは異なり、入力信号ｘ［ｎ］の離散的フーリエ変換Ｘ［ｋ］だけではなく誤差信号ｅ［ｎ］の離散的フーリエ変換Ｅ［ｋ］も用いて正規化処理を行っている。
【００４１】
式（６）、式（７）において、Ｘ［ｋ］は以下の式（８）により求められたもの、Ｅ［ｋ］は以下の式（９）により求められたものをそれぞれ用いる。式（８）、式（９）において、Ｎは適応フィルタのタップ長であり、DFTは離散的フーリエ変換を表す。
【数８】
2010119033.tif 000010
【数９】
2010119033.tif 000011
【００４２】
式（６）、式（７）により更新した周波数領域のタップ係数の離散的フーリエ変換Ｗｎ＋Ｌ［ｋ］を、以下の式（１０）に示すように、離散的逆フーリエ変換してその実数部を取り出すことにより時間領域のタップ係数ｗｎ＋Ｌ［ｉ］を求めることができる。式（１０）において、IDFTは離散的逆フーリエ変換を表す。また、REALは引数の実部を取り出す処理をあらわす。通常、DFT/IDFTの演算には高速フーリエ変換アルゴリズムが用いられる。
【数１０】
2010119033.tif 000012
【００４３】
なお、式（１０）により得られるタップ係数長は、ｗｎ＋Ｌ［０］〜ｗｎ＋Ｌ［２Ｎ−１］の２Ｎであるが、ｗｎ＋Ｌ［Ｎ］〜ｗｎ＋Ｌ［２Ｎ−１］を破棄し、ｗｎ＋Ｌ［０］〜ｗｎ＋Ｌ［Ｎ−１］をタップ係数として用いる。
【００４４】
式（６）は、式（４）の入力信号ｘ［ｎ］と誤差信号ｅ［ｎ］の積の絶対値による正規化処理を、周波数領域でブロック処理を行うＦＬＭＳアルゴリズムに適用したものであり、入力信号ｘ［ｎ］の離散的フーリエ変換Ｘ［ｋ］と誤差信号ｅ［ｎ］の離散的フーリエ変換Ｅ［ｋ］の積の絶対値を用いて周波数領域で正規化処理をする。
【００４５】
式（７）は、式（６）にシステム起動時の初期状態からの収束速度を改善する処理を追加したものであり、適応フィルタの出力信号ｙ［ｎ］と誤差信号ｅ［ｎ］の積の平均値の絶対値を、入力信号ｘ［ｎ］の離散的フーリエ変換Ｘ［ｋ］と誤差信号ｅ［ｎ］の離散的フーリエ変換Ｅ［ｋ］の積の絶対値で割ったもので正規化処理をする。ただし、ｙ［ｎ］とｅ［ｎ］の積の平均値は、上記式（５）の忘却係数を用いた積分処理により計算し、その初期値は０以外の値にする必要がある。初期値は入力信号ｘ［ｎ］の平均パワーと同程度にすれば良い。
【００４６】
ここで、ｙ［ｎ］とｅ［ｎ］の積は、以下の式（１１）のように表すことができる。なお、式（１１）中の＊は畳み込みをあらわす演算子である。
【数１１】
2010119033.tif 000013
【００４７】
式（１１）において、ｓ［ｎ］とｘ［ｎ］は異なる信号源からの信号であり、両者は無相関であるから、平均区間を十分に長く取れば、ｓ［ｎ］とｘ［ｎ］＊ｗｎ［ｉ］の積の平均、すなわちｓ［ｎ］とｘ［ｎ］＊ｗｎ［ｉ］の相関はほぼ０となる。したがって、ｙ［ｎ］とｅ［ｎ］の積の平均値の絶対値は、以下の式（１２）のように表される。
【数１２】
2010119033.tif 000014
【００４８】
適応フィルタが完全に収束して、ｇ［ｎ］＝ｙ［ｎ］とならない限り、ｇ［ｎ］に対する推定誤差（ｇ［ｎ］−ｙ［ｎ］）とｙ［ｎ］とは相関を有し、式（１２）に示すｙ［ｎ］とｅ［ｎ］の積の平均の絶対値は正の値となる。
【００４９】
適応フィルタの動作開始直後は推定誤差が大きいため、式（１２）の値は、適応フィルタの動作開始直後において大きな値を持つが、適応動作が進んで収束するにつれて０に近づく。したがって、式（７）に基づいた適応フィルタ係数更新処理では推定誤差が大きな値となる起動直後では等価的にステップサイズμの値が大きくなったことと同じことになり、収束速度が加速される。この処理は、適応フィルタの動作開始直後の収束速度を向上させるだけでなく、同定対象のシステム（音響系）のインパルスレスポンスが急激に変動し、そのために誤差信号ｅ［ｎ］が急増した場合にも適応フィルタの収束を速める効果がある。
【００５０】
実際に、入力信号ｘ［ｎ］として音声信号を用い、適応フィルタにおいてシミュレーションを行い、式（１２）に示すｙ［ｎ］とｅ［ｎ］の積の平均値の絶対値を求めた結果を図６に示す。なお、図６の横軸は時間（単位：サンプル）、縦軸はｙ［ｎ］とｅ［ｎ］の積の平均値の絶対値である。また、図６において、適応フィルタの係数更新アルゴリズムには式（６）を用いた。また、シミュレーション時のシステムの構成は図７であり、入力信号ｘ［ｎ］とｓ［ｎ］には、サンプリング周波数８ｋＨｚで録音したそれぞれ異なる人間の音声データを用いた。また、式（１２）の平均処理を、忘却係数を用いた式（５）で定義される積分演算により行い、忘却係数αの値を０．０２とした。また、式（５）の演算を行う際の初期値は入力信号ｘ［ｎ］の最初の３００サンプルのパワーの値とした。なお、図７において、ｈ［ｉ］は、音響系の伝達関数を表す同定対象のフィルタのタップ係数である。
【００５１】
図６から明らかなように、ｙ［ｎ］とｅ［ｎ］の積の平均値の絶対値は、動作開始後１００００サンプルまでの間は大きな値を持っているが、１００００サンプル以降はほぼ０．３以下の値に収まっている。この場合、式（７）中の定数ｐの値は、０．３からその数分の一程度にするのが適当である。
【００５２】
図８は、タップ係数設定部２０２の式（６）の場合における演算回路の構成を示す図である。図９は、タップ係数設定部２０２の式（７）の場合における演算回路の構成を示す図である。図８、図９において、（＋）は加算器を表し、（×）は乗算器を表す。また、（・）−１は入力信号の逆数を求める逆数演算回路を表す。また、|・|は入力信号の絶対値を求める絶対値演算回路を表す。また、ｚ−ｉはｉサンプルの遅延処理を行う遅延回路を表す。また、DFTは、離散フーリエ変換を行うフーリエ変換回路を表す。また、IDFTは、離散逆フーリエ変換を行う逆フーリエ変換回路を表す。また、CONJは、入力信号の複素共役を求める複素共役演算回路を表す。また、ADD ZEROは、上記式（９）中のＮ個のゼロを入力数列に追加する処理を行う挿入回路を表す。また、REALは、入力した複素信号の実部のみを出力する抽出回路を表す。なお、図８、図９では、上記式（１０）の右辺の余分なタップ係数ｗｎ＋１［Ｎ］〜ｗｎ＋１［２Ｎ−１］を破棄する処理を行う構成を省略している。
【００５３】
図８において、タップ係数設定部２０２は、フーリエ変換回路８０１により、入力信号ｘ［ｎ］を離散フーリエ変換して入力信号ベクトルＸ［ｋ］を求め、挿入回路８０２及びフーリエ変換回路８０３により、誤差信号ｅ［ｎ］を離散フーリエ変換して誤差信号ベクトルＥ［ｋ］を求める。そして、タップ係数設定部２０２は、Ｘ［ｋ］及び誤差信号ベクトルＥ［ｋ］を用いて、複素共役演算回路８０４及び乗算器８０５により、更新ベクトルΔＷｎ［ｋ］の分子項を計算し、乗算器８０６、絶対値演算回路８０７、加算器８０８により、更新ベクトルΔＷｎ［ｋ］の正規化分母項を計算する。そして、タップ係数設定部２０２は、逆数演算回路８０９、乗算器８１０により、分子項を正規化分母項で除して更新ベクトルΔＷｎ［ｋ］を計算する。そして、タップ係数設定部２０２は、乗算器８１１、加算器８１２、遅延回路８１３により、更新ベクトルΔＷｎ［ｋ］にステップサイズμを乗算したものをタップ係数ベクトルＷｎ［ｋ］に加算して更新後のタップ係数ベクトルＷｎ＋Ｌ［ｋ］を生成する。そして、タップ係数設定部２０２は、逆フーリエ変換回路８１４により、Ｗｎ＋Ｌ［ｋ］を離散逆フーリエ変換してｗｎ＋Ｌ［ｉ］を求める。
【００５４】
図９において、タップ係数設定部２０２は、フーリエ変換回路９０１により、入力信号ｘ［ｎ］を離散フーリエ変換して入力信号ベクトルＸ［ｋ］を求め、挿入回路９０２及びフーリエ変換回路９０３により、誤差信号ｅ［ｎ］を離散フーリエ変換して誤差信号ベクトルＥ［ｋ］を求める。そして、タップ係数設定部２０２は、出力信号ｙ［ｎ］、誤差信号ｅ［ｎ］、入力信号ベクトルＸ［ｋ］及び誤差信号ベクトルＥ［ｋ］を用いて、複素共役演算回路９０４、乗算器９０５、乗算器９０６、平均回路９０７、絶対値演算回路９０８、加算器９０９及び乗算器９１０により、更新ベクトルΔＷｎ［ｋ］の分子項を計算し、乗算器９１１、絶対値演算回路９１２、加算器９１３により、更新ベクトルΔＷｎ［ｋ］の正規化分母項を計算する。そして、タップ係数設定部２０２は、逆数演算回路９１４、乗算器９１５により、分子項を正規化分母項で除して更新ベクトルΔＷｎ［ｋ］を計算する。そして、タップ係数設定部２０２は、乗算器９１６、加算器９１７、遅延回路９１８により、更新ベクトルΔＷｎ［ｋ］にステップサイズμを乗算したものをタップ係数ベクトルＷｎ［ｋ］に加算して更新後のタップ係数ベクトルＷｎ＋Ｌ［ｋ］を生成する。そして、タップ係数設定部２０２は、逆フーリエ変換回路９１９により、Ｗｎ＋Ｌ［ｋ］を離散逆フーリエ変換してｗｎ＋Ｌ［ｉ］を求める。
【００５５】
以上説明した本発明の適応フィルタの有効性を実証するために行ったコンピュータ・シミュレーションの結果を以下に示す。なお、シミュレーション時のシステムの構成は図７と同一であり、入力信号ｘ［ｎ］と加法性雑音に相当するｓ［ｎ］にはそれぞれ別の話者が同一の文章を読み上げ、サンプリング周波数８ｋＨｚで録音し、振幅の絶対値が１以下となるように正規化したデータを用いた。同定対象のＦＩＲフィルタと適応フィルタはともに３００タップである。同定対象フィルタのタップ係数ｈ［ｉ］は、以下の式（１３）のように設定した。また、引数ｉの範囲は０≦ｉ＜３００である。
【数１３】
2010119033.tif 000015
【００５６】
式（１４）で示される同定対象フィルタのタップ係数ｈ［ｉ］の推定誤差量Ｄ［ｎ］の変化を図１０に示す。図１０の横軸は時間、縦軸は誤差量Ｄ［ｎ］である。
【数１４】
2010119033.tif 000016
【００５７】
図１０（ａ）は従来技術のＮＬＭＳアルゴリズムを用いた場合、図１０（ｂ）は式（２）を用いた場合、図１０（ｃ）は式（３）を用いた場合、図１０（ｄ）は式（４）を用いた場合、図１０（ｅ）は式（６）を用いた場合、図１０（ｆ）は式（７）を用いた場合、をそれぞれ示す。なお、図１０（ｅ）、図１０（ｆ）はＤＦＴ／ＩＤＦＴを用いた周波数領域でのブロック処理アルゴリズムを用いているので、タップ係数の更新は適応フィルタのタップ長と同じ３００サンプルごとに行っている。また、いずれの処理例でも平均演算はすべて上記式（５）の忘却係数を用いた積分演算を用いており、忘却係数の値は図１０（ａ）〜（ｄ）では０．００５、図１０（ｆ）では０．０５としている。また、分数の分母が０となることを防ぐための定数ｃの値をすべて０．０００１としている。
【００５８】
図１０（ａ）に示すように、従来技術のＮＬＭＳアルゴリズムでは、ステップサイズμの値を０．００００１と極端に小さくすればほとんどダブルトークの影響を受けずに収束するが、収束速度は非常に遅くなる。一方、従来技術のＮＬＭＳアルゴリズムでは、μ＝０．００００２以上にすると収束は早くなるが、ダブルトークの影響のために安定した収束状態を維持することができない。
【００５９】
これに対し、図１０（ａ）と図１０（ｂ）〜（ｄ）との対比から明らかなように、本発明による時間領域での適応フィルタ係数更新アルゴリズムを用いることにより、いずれも従来のＮＬＭＳアルゴリズムよりも良好な収束特性を得ることができる。
【００６０】
また、図１０（ｅ）に示すように、本発明による周波数領域での式（６）の適応フィルタ係数更新アルゴリズムでは、時間領域の処理よりもさらに良好な収束特性を得ることができる。
【００６１】
また、図１０（ｆ）に示すように、本発明による周波数領域での式（７）の適応フィルタ係数更新アルゴリズムでは、図１０（ｅ）よりもさらに起動直後の収束速度を向上させることができる。なお、図６のシミュレーション結果に基づき、式（７）中の定数ｐの値は０．２とした。
【００６２】
このように、本発明では、従来のＮＬＭＳアルゴリズムは、入力信号のパワーのみを用いて正規化処理を行っているのに対し、本発明の適応フィルタのＮＬＭＳアルゴリズムは、入力信号のパワーと誤差信号のパワーの両方を用いて正規化処理を行う。
【００６３】
所望信号に加わった加法性雑音のパワーが増大すると誤差信号のパワーも増大する。本発明のように、誤差信号のパワーも用いて正規化することにより、加法性雑音のパワーが大きい時には自動的に適応アルゴリズムの収束速度が低下し、雑音の影響による収束特性の劣化を防ぐことができる。
【００６４】
エコーキャンセラにおいてはダブルトーク状態となると適応フィルタの適応誤差が増え、誤差信号のパワーも増大する。したがって、本発明のように、誤差信号のパワーを用いて正規化処理を行うことにより、ダブルトーク状態になった場合に適応フィルタの収束速度を低下させ、ダブルトークによって適応誤差が急激に増大することを防ぐことができる。
【００６５】
また、ダブルトーク状態が解消され、誤差信号ｅ［ｎ］のパワーが小さくなれば、自動的に収束速度が速くなる。
【００６６】
また、本発明は、入力信号の定常性の仮定や、白色性・正規分布特性の仮定、相関特性の仮定等を前提としていない処理法であるため、これらの仮定が成り立ち難い実際の音声信号入力において良好な収束特性を得ることができる。本発明の処理の前提条件となっているのは図１の入力信号ｘ［ｎ］すなわち遠端の端末の話者の音声のパワーと、入力音声ｓ［ｎ］のパワーの比が緩やかに変動するという仮定のみである。異なる話者の音声のパワーが無相関に変動するというのは自明であり、この仮定は問題なく成り立つ。
【００６７】
なお、上記式（７）、図９の処理のみは、入力信号の相関特性に関する仮定に基づいた収束速度高速化の処理を行っているが、実際の音声でその仮定が十分に成り立つことは図６のシミュレーション結果により実証されている。
【００６８】
このように、本発明によれば、遠端信号のパワーと近端信号のパワーに応じて自動的に最適の収束速度が維持されるので、良好かつ安定した収束特性が得られる。
【００６９】
本発明を、ダブルトーク検出回路を用いて適応速度を制御する従来の手法と比較すると、本発明は、ダブルトーク状態であるか否かを判定するための閾値設定の処理が不要であり、動作環境が変化してもそのつど最適な閾値を求めて再設定する必要が無いという利点がある。
【００７０】
なお、上記実施の形態では、適応フィルタを有するエコーキャンセラについて説明した、本発明の適応フィルタは、エコーキャンセラに限らず、他の装置に用いることもできる。
【産業上の利用可能性】
【００７１】
本発明は、双方向通信システム（無線電話、有線電話、インターホン、ＴＶ会議システム等）のエコーキャンセラ、ハウリングキャンセラ、等に用いるに好適である。
【図面の簡単な説明】
【００７２】
【図１】本発明の一実施の形態に係るエコーキャンセラを含むディジタル通信装置の構成を示すブロック図
【図２】本発明の一実施の形態に係る適応フィルタの内部構成を示すブロック図
【図３】本発明の一実施の形態に係る適応フィルタのタップ係数設定部の式（２）の場合における演算回路の構成を示す図
【図４】本発明の一実施の形態に係る適応フィルタのタップ係数設定部の式（３）の場合における演算回路の構成を示す図
【図５】本発明の一実施の形態に係る適応フィルタのタップ係数設定部の式（４）の場合における演算回路の構成を示す図
【図６】本発明の一実施の形態に係る適応フィルタのシミュレーション結果を示す図
【図７】本発明の一実施の形態に係る適応フィルタのシミュレーション時のシステムの構成を示す図
【図８】本発明の一実施の形態に係る適応フィルタのタップ係数設定部の式（６）の場合における演算回路の構成を示す図
【図９】本発明の一実施の形態に係る適応フィルタのタップ係数設定部の式（７）の場合における演算回路の構成を示す図
【図１０】本発明の一実施の形態に係る適応フィルタの有効性を実証するために行ったコンピュータ・シミュレーションの結果を示す図
【符号の説明】
【００７３】
１０１  ディジタル・アナログ変換器
１０２  パワーアンプ
１０３  スピーカ
１０４  マイクロホン
１０５  マイクアンプ
１０６  アナログ・ディジタル変換器
１０７  エコーキャンセラ
１０８  適応フィルタ
１０９  減算器
２０１  フィルタ部
２０２  タップ係数設定部
３０１、３１２、４０１、４１３、５０１、５１１、８１３、９１８  遅延回路
３０２、３０３、３０４、３０９、３１０、４０２、４０３、４０４、４０５、４１０、４１１、５０２、５０３、５０８、５０９、８０５、８０６、８１０、８１１、９０５、９０６、９１０、９１１、９１５、９１６  乗算器
３０５、３０７、３１１、４０８、４１２、５０６、５１０、８０８、８１２、９０９、９１３、９１７  加算器
３０６、４０６、５０５、９０７  平均回路
３０８、４０９、５０７、８０９、９１４  逆数演算回路
４０７  平方根演算回路
５０４、８０７、９０８、９１２  絶対値演算回路
８０１、８０３、９０１、９０３  フーリエ変換回路
８０２、９０２  挿入回路
８０４、９０４  複素共役演算回路
８１４、９１９  逆フーリエ変換回路
【図１】
2010119033.tif 000017
【図２】
2010119033.tif 000018
【図３】
2010119033.tif 000019
【図４】
2010119033.tif 000020
【図５】
2010119033.tif 000021
【図６】
2010119033.tif 000022
【図７】
2010119033.tif 000023
【図８】
2010119033.tif 000024
【図９】
2010119033.tif 000025
【図１０】
2010119033.tif 000026
【手続補正書】
【提出日】平成21年4月3日(2009.4.3)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
伝達関数が未知である系へ入力された系入力信号と等しい入力信号ｘ［ｎ］を入力し、前記入力信号ｘ［ｎ］をフィルタ処理することにより出力信号ｙ［ｎ」を出力するフィルタ部と、
前記系から出力される系出力信号ｄ［ｎ」と前記出力信号ｙ［ｎ」との差である誤差信号ｅ［ｎ］と、前記入力信号ｘ［ｎ］とに基づき、前記系の伝達関数と等しくなるように、前記フィルタ処理におけるタップ係数ｗｎ［ｉ］を更新するタップ係数設定部と、
を有する適応フィルタであって（ｎはサンプルタイムインデックス、ｉは適応フィルタのタップ位置を表す引数）、
前記タップ係数設定部は、
ステップサイズ２μと更新係数Δｗｎ［ｉ］を乗算したものをタップ係数ｗｎ［ｉ］に加算して更新後のタップ係数ｗｎ＋１［ｉ］を生成し、
前記更新係数Δｗｎ［ｉ］を、分子項を正規化分母項で除すことによって生成し、
前記分子項を、入力信号ｘ［ｎ−ｉ］に前記誤差信号ｅ［ｎ］を乗じることによって生成し、
前記正規化分母項を、前記入力信号ｘ［ｎ］の２乗と前記誤差信号ｅ［ｎ］の２乗との和の平均に正の定数ｃを加算すること、前記入力信号ｘ［ｎ］の２乗と前記誤差信号ｅ［ｎ］の２乗との積の平均の平方根に正の定数ｃを加算すること、前記入力信号ｘ［ｎ］と前記誤差信号ｅ［ｎ］との積の絶対値の平均に正の定数ｃを加算すること、のいずれかにより生成する、
適応フィルタ。
【請求項２】
請求項１の適応フィルタと、
前記系出力信号ｄ［ｎ」から、前記適応フィルタから出力された出力信号ｙ［ｎ」を減算して前記誤差信号ｅ［ｎ］を生成する減算器と、
を有するエコーキャンセラ。
【手続補正書】
【提出日】平成21年7月17日(2009.7.17)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
伝達関数が未知である系へ入力された系入力信号と等しい入力信号ｘ［ｎ］を入力し、前記入力信号ｘ［ｎ］をフィルタ処理することにより出力信号ｙ［ｎ」を出力するフィルタ部と、
前記系から出力される系出力信号ｄ［ｎ」と前記出力信号ｙ［ｎ」との差である誤差信号ｅ［ｎ］と、前記入力信号ｘ［ｎ］とに基づき、前記系の伝達関数と等しくなるように、前記フィルタ処理におけるタップ係数ｗｎ［ｉ］を更新するタップ係数設定部と、
を有する適応フィルタであって（ｎはサンプルタイムインデックス、ｉは適応フィルタのタップ位置を表す引数）、
前記タップ係数設定部は、
ステップサイズ２μと更新係数Δｗｎ［ｉ］を乗算したものをタップ係数ｗｎ［ｉ］に加算して更新後のタップ係数ｗｎ＋１［ｉ］を生成し、
前記更新係数Δｗｎ［ｉ］を、分子項を正規化分母項で除すことによって生成し、
前記分子項を、入力信号ｘ［ｎ−ｉ］に前記誤差信号ｅ［ｎ］を乗じることによって生成し、
前記正規化分母項を、前記入力信号ｘ［ｎ］の２乗と前記誤差信号ｅ［ｎ］の２乗との和の平均に正の定数ｃを加算することにより生成する、
適応フィルタ。
【請求項２】
請求項１の適応フィルタと、
前記系出力信号ｄ［ｎ」から、前記適応フィルタから出力された出力信号ｙ［ｎ」を減算して前記誤差信号ｅ［ｎ］を生成する減算器と、
を有するエコーキャンセラ。