(57)【要約】【課題】フィルタ演算区間を長くすれば伝達特性が複雑な系に対応できるが、同時に収束速度が遅くなり、雑音の発生や適応処理の不安定さを招くという問題点が発生する。そのため、フィルタのインパルス応答長の制御を行う必要がある。【解決手段】フィルタ係数バッファ６のフィルタ係数に対応するインパルス応答の系列から、インパルス応答区間系列検出回路１０でインパルス応答の系列の大きさが最大である区間と減衰する区間とを求め、インパルス応答の系列の大きさ算出回路１１でそれぞれの区間のインパルス応答の系列の大きさを求めて、インパルス応答時間制御回路１２でそれぞれの区間のインパルス応答の系列の大きさを比較することにより、フィルタ係数バッファ６とリファレンスバッファ５を制御することでフィルタ回路７のインパルス応答時間を制御する。【選択図】図１
2006128758.tif 000002
【特許請求の範囲】
【請求項１】
リファレンス信号を入力するリファレンス信号端子と、
入力信号を入力する入力端子と、
出力信号を出力する出力端子と、
フィルタ係数バッファと、
前記リファレンス信号を蓄積するリファレンス信号バッファと、
前記フィルタ係数バッファの係数を用いて前記リファレンス信号バッファのデータをフィルタリング処理するフィルタ回路と、
前記入力信号と前記フィルタ回路の出力の誤差を求める誤差計算回路と、
前記誤差計算回路の出力と前記リファレンス信号とから前記フィルタ係数バッファのフィルタ係数を補正するフィルタ係数補正回路とを備え、
前記フィルタ係数バッファのフィルタ係数に対応するインパルス応答の系列が最大である区間とインパルス応答の系列が減衰する区間を求めるインパルス応答系列区間検出回路と、
前記フィルタ係数バッファのフィルタ係数に対応するインパルス応答の系列が最大である区間のインパルス応答の系列の大きさとインパルス応答の系列が減衰する区間のインパルス応答の系列の大きさとを算出するインパルス応答系列の大きさ算出回路と、
前記フィルタ係数に対応するインパルス応答の系列が最大である区間のインパルス応答系列の大きさとインパルス応答の系列が減衰する区間のインパルス応答の系列の大きさに基づき前記フィルタ回路が対応できるインパルス応答時間を制御するインパルス応答時間制御回路と、
を有することを特徴とする適応フィルタ。
【請求項２】
リファレンス信号を入力するリファレンス信号端子と、
入力信号を入力する入力端子と、
出力信号を出力する出力端子と、
フィルタ係数バッファと、
前記リファレンス信号を蓄積するリファレンス信号バッファと、
前記フィルタ係数バッファのフィルタ係数と前記リファレンス信号バッファとのデータを第１の始点から第１の終点まで畳み込み処理する畳み込み回路と、
前記入力信号と前記畳み込み回路の出力の誤差を求める誤差計算回路と、
前記誤差計算回路の出力と前記リファレンス信号とから前記フィルタ係数バッファのフィルタ係数を補正するフィルタ係数補正回路とを備え、
前記フィルタ係数バッファのフィルタ係数の大きさが最大であるタップ位置を基準として決めた第２の始点と第２の終点から構成される第２の区間と前記フィルタ係数バッファのフィルタ係数の大きさの最大であるタップ位置を基準として決められたフィルタ係数が減衰する第３の始点と第３の終点から構成される第３の区間とを求めるタップ始点終点計算回路と、
前記フィルタ係数バッファの第２の始点と第２の終点の間のフィルタ係数の大きさと、前記フィルタ係数バッファの第３の始点と第３の終点の間のフィルタ係数の大きさとを算出するフィルタ係数の大きさ算出回路と、
前記フィルタ係数バッファの第２の始点と第２の終点の間のフィルタ係数の大きさと前記フィルタ係数バッファの第３の始点と第３の終点の間のフィルタ係数の大きさに基づき、前記畳み込み回路の第１の始点と第１の終点を制御する畳み込み区間制御回路と、
を有することを特徴とする適応フィルタ。
【請求項３】
フィルタ係数バッファの第２の始点から第２の終点までの区間長と第３の始点と第３の終点までの区間長を同じ長さに設定するように第２の始点と第２の終点と第３の始点と第３の終点を決定することを特徴とする請求項２記載の適応フィルタ。
【請求項４】
リファレンス信号を入力するリファレンス信号端子と、
入力信号を入力する入力端子と、
出力信号を出力する出力端子と、
フィルタ係数バッファと、
前記リファレンス信号を蓄積するリファレンス信号バッファと、
前記フィルタ係数バッファのフィルタ係数と前記リファレンス信号バッファとのデータを第１の始点から第１の終点まで畳み込み処理する畳み込み回路と、
前記入力信号から前記畳み込み回路の出力を減算する誤差計算回路と、
前記誤差計算回路の出力と前記リファレンス信号とから前記フィルタ係数を補正するフィルタ係数補正回路とを備え、
前記フィルタ係数バッファのフィルタ係数の大きさが最大であるタップ位置を基準として決められた第２の始点と第２の終点から構成される第２の区間と前記フィルタ係数バッファのフィルタ係数の大きさが最大であるタップ位置を基準として決められた前記フィルタ係数バッファのフィルタ係数が減衰する第３の始点と第３の終点から構成される第３の区間とを求めるタップ始点終点計算回路と、
前記フィルタ係数バッファの第２の始点と第２の終点の間の区間長と前記フィルタ係数バッファの第３の始点と第３の終点の間の区間長を算出する区間長算出回路と
前記フィルタ係数バッファの第２の始点と第２の終点の間の区間長と前記フィルタ係数バッファの第３の始点と第３の終点の間の区間長に基づき前記畳み込み回路の第１の始点と第１の終点を制御する畳み込み区間制御回路と、
を有することを特徴とする適応フィルタ。
【請求項５】
フィルタ係数バッファのフィルタ係数の大きさとして、始点から終点の間のフィルタ係数の累積自乗パワーの平均値を用いることを特徴とする請求項２から４いずれか１項に記載の適応フィルタ。
【請求項６】
フィルタ係数バッファのフィルタ係数の大きさとして、始点から終点の間のフィルタ係数の絶対値の平均値を用いることを特徴とする請求項２から４いずれか１項に記載の適応フィルタ。
【請求項７】
フィルタ係数バッファのフィルタ係数の大きさとして、始点から終点までの区間のフィルタ係数の絶対値の最大値を用いることを特徴とする請求項２または３記載の適応フィルタ。
【請求項８】
フィルタ係数バッファのフィルタ係数の大きさとして、始点から終点までの区間のフィルタ係数バッファの隣接するフィルタ係数の差を計算し、その差の自乗パワーを計算した結果の平均値を用いることを特徴とする請求項２から４いずれか１項に記載の適応フィルタ。
【請求項９】
フィルタ係数バッファのフィルタ係数の大きさとして、始点から終点までの区間のフィルタ係数バッファのフィルタ係数の自乗パワーを計算し、その自乗パワーの隣接したフィルタ係数に対応する差を計算した結果の平均値を用いることを特徴とする請求項２から４いずれか１項に記載の適応フィルタ。
【請求項１０】
フィルタ係数バッファのフィルタ係数の大きさとして、始点から終点までの区間のフィルタ係数バッファの隣接するフィルタ係数の差を計算し、その差の絶対値を計算した結果の平均値を用いることを特徴とする請求項２から４いずれか１項に記載の適応フィルタ。
【請求項１１】
フィルタ係数バッファのフィルタ係数の大きさとして、始点から終点までの区間のフィルタ係数バッファのフィルタ係数の絶対値を計算し、その絶対値の隣接したフィルタ係数に対応する差を計算した結果の平均値を用いることを特徴とする請求項２から４いずれか１項に記載の適応フィルタ。
【請求項１２】
フィルタ係数バッファのフィルタ係数の大きさとして、始点から終点までの区間のフィルタ係数バッファの隣接するフィルタ係数の差を計算し、その差の絶対値を計算した結果の最大値を用いることを特徴とする請求項２または３記載の適応フィルタ。
【請求項１３】
フィルタ係数バッファのフィルタ係数の大きさとして、フィルタ係数バッファのフィルタ係数の差の計算において、一定区間ごとに間引いた隣接するフィルタ係数の差を用いることを特徴とする請求項８から１２いずれか１項に記載の適応フィルタ。
【請求項１４】
受信信号端子と、
送信信号端子と
スピーカ端子と、
マイク端子と、
請求項１から１３いずれか１項に記載の適応フィルタから構成され、
前記受信信号端子と前記スピーカ端子と前記適応フィルタのリファレンス信号端子とを接続し、
前記マイク端子と前記適応フィルタの入力端子とを接続し、
前記適応フィルタの出力端子と前記送信信号端子とを接続したことを特徴とする音響エコーキャンセラ装置。
【請求項１５】
公衆回線あるいは構内回線あるいはネットワークによる回線からの回線信号入力端子と、
公衆回線あるいは構内回線あるいはネットワークによる回線への回線信号出力端子と、
スピーカと、
マイクと、
請求項１から１３いずれか１項に記載の適応フィルタと、
前記適応フィルタを入れる筐体から構成され、
前記回線信号入力端子と前記スピーカと前記適応フィルタのリファレンス信号端子とを接続し、
前記マイクと前記適応フィルタの入力端子とを接続し、
前記適応フィルタの出力端子と前記回線信号出力端子とを接続し、
前記スピーカと前記マイクと前記適応フィルタを同一筐体内もしくは別体の構成にすることを特徴とするハンズフリー電話。
【請求項１６】
リファレンス信号をリファレンス信号バッファに蓄積しつつ、
フィルタ係数バッファのフィルタ係数で前記リファレンス信号バッファのデータをフィルタリングしつつ、
入力信号と前記フィルタリングの誤差を求めつつ、
前記フィルタリングの誤差と前記リファレンス信号とから前記フィルタ係数バッファのフィルタ係数を補正する方法とを有し、
前記フィルタ係数バッファのフィルタ係数に対応するインパルス応答の系列が最大である区間とインパルス応答の系列が減衰する区間を検出し、
その後、フィルタ係数バッファのフィルタ係数に対応するインパルス応答の系列が最大である区間のインパルス応答の系列の大きさとインパルス応答の系列が減衰する区間のインパルス応答の系列の大きさを算出して、
その後、前記フィルタ係数バッファのフィルタ係数に対応するインパルス応答の系列が最大である区間のインパルス応答系列の大きさとインパルス応答の系列が減衰する区間のインパルス応答の系列の大きさに基づき前記フィルタリングを行うインパルス応答時間を制御する適応フィルタ方法。
【請求項１７】
リファレンス信号をリファレンス信号バッファに蓄積しつつ、
フィルタ係数バッファのフィルタ係数と前記リファレンス信号バッファのデータを畳み込み演算しつつ、
入力信号と前記フィルタリングの誤差を求めつつ、
前記フィルタリングの誤差と前記リファレンス信号とから前記フィルタ係数バッファのフィルタ係数を補正する方法とを有し、
前記フィルタ係数バッファのフィルタ係数の大きさが最大であるタップ位置を基準として決めた第２の始点と第２の終点と前記フィルタ係数バッファのフィルタの大きさが最大であるタップ位置を基準として決めたフィルタ係数が減衰する第３の始点と第３の終点を検出し、
その後、前記フィルタ係数バッファの第２の始点と第２の終点の区間のフィルタ係数の大きさと第３の始点と第３の終点のフィルタ係数の大きさを算出して、
その後、前記フィルタ係数バッファの第２の始点と第２の終点の区間のフィルタ係数の大きさと第３の始点と第３の終点のフィルタ係数の大きさ基づき前記畳み込み演算区間を制御する適応フィルタ方法。
【請求項１８】
フィルタ係数バッファの第２の始点から第２の終点までの区間長と第３の始点と第３の終点までの区間長を同じ長さに設定するように第２の始点と第２の終点と第３の始点と第３の終点を決定することを特徴とする請求項１７記載の適応フィルタ方法。
【請求項１９】
リファレンス信号をリファレンス信号バッファに蓄積しつつ、
フィルタ係数バッファのフィルタ係数で前記リファレンス信号バッファのデータを畳み込み演算しつつ、
入力信号と前記フィルタリングの誤差を求めつつ、
前記フィルタリングの誤差と前記リファレンス信号とから前記フィルタ係数バッファのフィルタ係数を補正する方法とを有し、
前記フィルタ係数バッファのフィルタ係数の大きさが最大であるタップ位置を基準として決めた第２の始点と第２の終点と前記フィルタ係数バッファのフィルタの大きさが最大であるタップ位置を基準として決めたフィルタ係数が減衰する第３の始点と第３の終点を検出し、
その後、前記フィルタ係数バッファの第２の始点と第２の終点の区間の区間長と第３の始点と第３の終点の区間長を算出して、
その後、前記フィルタ係数バッファの第２の始点と第２の終点の区間長と第３の始点と第３の終点の区間長に基づき前記畳み込み演算区間を制御する適応フィルタ方法。
【請求項２０】
フィルタ係数バッファのフィルタ係数の大きさとして、始点から終点の間のフィルタ係数の累積自乗パワーの平均値を用いることを特徴とする請求項１７から１９いずれか１項に記載の適応フィルタ方法。
【請求項２１】
フィルタ係数バッファのフィルタ係数の大きさとして、始点から終点の間のフィルタ係数の絶対値の平均値を用いることを特徴とする請求項１７から１９いずれか１項に記載の適応フィルタ方法。
【請求項２２】
フィルタ係数バッファのフィルタ係数の大きさとして、始点から終点までの区間のフィルタ係数の絶対値の最大値を用いることを特徴とする請求項１７または１８記載の適応フィルタ方法。
【請求項２３】
フィルタ係数バッファのフィルタ係数の大きさとして、始点から終点までの区間のフィルタ係数バッファの隣接するフィルタ係数の差を計算し、その差の自乗パワーを計算した結果の平均値を用いることを特徴とする請求項１７から１９いずれか１項に記載の適応フィルタ方法。
【請求項２４】
フィルタ係数バッファのフィルタ係数の大きさとして、始点から終点までの区間のフィルタ係数バッファのフィルタ係数の自乗パワーを計算し、その自乗パワーの隣接したフィルタ係数に対応する差を計算した結果の平均値を用いることを特徴とする請求項１７から１９いずれか１項に記載の適応フィルタ方法。
【請求項２５】
フィルタ係数バッファのフィルタ係数の大きさとして、始点から終点までの区間のフィルタ係数バッファの隣接するフィルタ係数の差を計算し、その差の絶対値を計算した結果の平均値を用いることを特徴とする請求項１７から１９いずれか１項に記載の適応フィルタ方法。
【請求項２６】
フィルタ係数バッファのフィルタ係数の大きさとして、始点から終点までの区間のフィルタ係数バッファのフィルタ係数の絶対値を計算し、その絶対値の隣接したフィルタ係数に対応する差を計算した結果の平均値を用いることを特徴とする請求項１７から１９いずれか１項に記載の適応フィルタ方法。
【請求項２７】
フィルタ係数バッファのフィルタ係数の大きさとして、始点から終点までの区間のフィルタ係数バッファの隣接するフィルタ係数の差を計算し、その差の絶対値を計算した結果の最大値を用いることを特徴とする請求項１７または１８記載の適応フィルタ方法。
【請求項２８】
フィルタ係数バッファのフィルタ係数の大きさとして、フィルタ係数バッファのフィルタ係数の差の計算において、一定区間ごとに間引いた隣接するフィルタ係数の差を用いることを特徴とする請求項２３から２７いずれか１項に記載の適応フィルタ方法。
【請求項２９】
受信信号をスピーカへの信号と適応フィルタ方法のリファレンス信号とし、
マイクからの信号を前記適応フィルタ方法の入力信号とし、
前記適応フィルタの出力信号を送信信号としたことを特徴とする請求項１６から２８いずれか１項に記載の適応フィルタ方法を用いた音響エコーキャンセラ方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フィルタ演算のインパルスレスポンス長を制御できる適応フィルタ、およびそれを用いた音響エコーキャンセラ装置並びにハンズフリー電話に関するものである。
【背景技術】
【０００２】
適応フィルタは、ＦＩＲ型適応フィルタに代表されるように、タップ長を長くすれば伝達特性が複雑な系の推定あるいは補償ができることは良く知られていることである。しかし、同時にタップ長を長くすると収束速度が遅くなるという問題点があった。また、同時に適応動作の誤調整度が増加してしまうという問題点、具体的には適応動作を続けることにより雑音が発生してしまうという問題点もあった。そのため、必要なタップ長のみを使用するようにタップ長を可変にする適応フィルタ技術があった。この問題点については、ＩＩＲ型フィルタおよび格子型フィルタでの適応フィルタについても同様であった。
【０００３】
従来の適応フィルタについて、図１８を用いて説明する。
【０００４】
図１８はデジタル無線通信分野の復調装置において干渉を補償するための適応フィルタを示す。図１８において、受信信号入力端子１０１から入力した無線信号のベースバンド信号に対して、トランスバーサルフィルタ形式で遅延素子Ｔ１０８で接続された各タップの出力を加算器１０９に出力する。加算器１０９で各タップの出力を加算した結果として、干渉が補償された等価信号が得られる。
【０００５】
ここで、デジタル無線通信である性質を利用して加算器１０９から出力された等価信号から、判定器１１０で送信側から送信された信号を推定した判定信号を判定信号端子１０２へ出力し、等価信号と判定信号を減算器１１１で減算することにより誤差信号Ｅを出力する。
【０００６】
適応フィルタの係数の補正は次のようにして行う。第１の乗算器１０４で各タップの入力と誤差信号Ｅの掛け算により積をとり、その積を積分器１０５で時間平均することにより各タップの係数を得る。第２の乗算器１０７で各タップの入力信号と各タップの係数の積を取り、加算器１０９で全てのタップについて和を得ることで等価信号を得て、適応フィルタが収束するＭＳＥアルゴリズムで動作する。
【０００７】
このようなトランスバーサルフィルタ形式の適応フィルタにおいて、タップ毎に該当するタップを使用するかどうか判断する制限器１０６を付加して、タップ長を制御する方法である。この例では制限値制御回路１１２において、本適応フィルタの外部から非同期判定端子１０３へ入力されるデジタル無線通信の状態が同期であるか非同期状態であるかの判定結果に応じて、各タップの相関信号Ｃ１からＣＮのそれぞれの絶対値を予め定めたしきい値と比較し、絶対値がしきい値を越えていないタップは使用しないようにＬ１からＬＮを設定することによりタップ長を可変にしている。このようにして、収束速度の速さと誤調整度の増加による雑音の発生という問題点を解決していた（例えば特許文献１参照）。
【０００８】
また、従来の適応フィルタを用いた音響エコーキャンセラについて図１９と図２０を用いて説明する。
【０００９】
図１９は基本的なエコーキャンセル装置である。受話信号入力端子１２１に入力された受話信号は受話信号出力端子１２２より出力されると共に、フィルタ係数が可変である可変係数フィルタ回路１３０内にある受話信号バッファ１２５へ入力される。受話信号出力端子１２２より出力された信号は音響空間等のエコー経路を経由して送話信号入力端子１２３よりエコーとして入力される。
【００１０】
一方、畳み込み回路１２７において、受話信号バッファ１２５に入力された受話信号と可変係数フィルタ回路１３０内の可変フィルタ係数１２６とで畳み込み演算が行われ、擬似エコーが生成される。送話信号入力端子１２３からのエコーと畳み込み回路１２７からの擬似エコーが減算回路１２８へ入力され、減算されることによってエコーが除去される。この一般的に誤差信号と呼ばれる減算回路１２８の出力はフィルタ係数補正回路１２９へ入力され誤差信号が最小となるように可変係数フィルタ回路１３０内の可変フィルタ係数１２６が補正される。この係数を補正する適応アルゴリズムとして、最急降下アルゴリズムを簡略化した最小二乗平均アルゴリズム若しくは学習同定アルゴリズムが多用される。
【００１１】
可変係数フィルタ回路１３０内の可変フィルタ係数１２６のこれらのアルゴリズムを使用した場合、空間等のエコー経路を的確に模擬する為、可変係数フィルタ回路１３０内の可変フィルタ係数１２６を構成するタップ数は数千に及び、収束速度と誤調整度の点で相反する性質、つまり高速な適応を試みるとエコー経路の推定精度が悪化しエコーキャンセル装置としての安定性に欠け、逆にエコー経路の推定精度を向上させエコーキャンセル装置としての安定性を重視するとエコー経路を推定する収束速度が低下するという相反する性質が顕著になる。
【００１２】
図２０は会議電話等の音声ハンズフリー装置へ可変長タップエコーキャンセル装置を適用した場合の例である。
【００１３】
図２０において受話信号入力端子１４１、受話信号出力端子１４２、送話信号入力端子１４３、送話信号出力端子１４４、ブロック分割可変係数フィルタ回路１５５、減算回路１４８、ブロック分割フィルタ係数補正回路１４９、受話信号バッファ１４５、ブロック分割可変フィルタ係数１４６、畳み込み回路１４７から構成される基本的なエコーキャンセル装置とほぼ同じ構成に加えて、累積加算平均電力演算回路１５０、ブロック平均累積電力演算回路１５１、ブロック電力変動率算出回路１５２、分割ブロック数設定回路１５３、係数系列ブロック選択回路１５４を追加した構成となっている。
【００１４】
ブロック分割可変フィルタ係数１４６はＮ個のブロックに分割されており、それぞれのブロック毎にフィルタ係数の補正が可能な構成になっている。
【００１５】
畳み込み回路１４７においてブロック分割可変係数フィルタ回路１５５内のブロック分割可変フィルタ係数１４６と対応する区間の受話信号入力バッファ１４５に入力された受話信号とで畳み込み演算が行われ擬似エコーが生成される。
【００１６】
受話信号出力端子１４２から空間等のエコー経路を経由して送話信号入力端子１４３に入力される受話信号の音響エコー成分から、ブロック分割可変係数フィルタ回路１５５で生起された擬似音響エコーを減算して求められる残差信号を最小とする様に係数系列ブロック選択回路１５４で選択された毎回ｎ個（１＜ｎ＜Ｎ）のブロック分割可変フィルタ係数をブロック分割フィルタ係数補正回路１４９によって逐次更新する。このように畳み込み回路で使用するフィルタ係数をブロック化して選択し、分割された区間のうち必要な区間のみを畳み込み演算に使用することで、収束速度の速さと雑音の減少による安定性と処理量の削減という問題点を解決していた（例えば特許文献２参照）。
【特許文献１】特開平９−３６７８７号公報
【特許文献２】特開平８−１６３００７号公報
【発明の開示】
【発明が解決しようとする課題】
【００１７】
しかしながら、図１８のような従来の構成ではタップ毎に該当タップを使用するかどうかを決定する回路を有しているため、演算量が増加してしまうという課題があった。
【００１８】
また、図２０のような従来の構成では予め各ブロックの始点と終点を決めておくため、残響時間の短い部屋あるいは長い部屋での残響時間のバラツキによりフィルタ係数の大きい部分が複数に分割した区間にまたがってしまうことがあるため、必ずしも最適な区間設定とはならないという課題があった。
【００１９】
本発明は、このような従来の課題を解決するものであり、適応フィルタで模擬するのに最適なインパルス応答の長さとなるようにフィルタ係数や係数の数を決定し、収束速度を速くすることと誤調整度を減少させることの両立を図る畳み込み演算区間を決定することを目的とする。
【課題を解決するための手段】
【００２０】
本発明は、上記目的を達成するためにフィルタ係数に対応するインパルス応答の系列が最大であるインパルス応答系列の位置を求め、インパルス応答系列が最大である区間と減衰する区間を求め、インパルス応答の系列が最大である区間のインパルス応答の系列の大きさとインパルス応答の系列が減衰する区間のインパルス応答の系列の大きさを比較することにより、フィルタ回路のインパルス応答時間を制御する。
【発明の効果】
【００２１】
本発明は、伝達特性に対応するインパルス応答に対する必要な部分を、インパルス応答の形から簡易な方法で推定することにより、短いインパルス応答が適切な場合には小さい構成のフィルタを設定し、長いインパルス応答が適切な場合には大きい構成のフィルタを設定することができ、収束が速く、かつ、誤調整度による雑音の発生の少ない適応フィルタを提供できるという効果を奏する。
【００２２】
これにより、最適な区間設定による最適な大きさの構成のフィルタを設定することができる。そのため、短いインパルス応答が適切な場合に処理量を減少させることができる。
【発明を実施するための最良の形態】
【００２３】
本発明の実施の形態は、リファレンス信号を入力するリファレンス信号端子と、
入力信号を入力する入力端子と、
出力信号を出力する出力端子と、
フィルタ係数バッファと、
リファレンス信号を蓄積するリファレンス信号バッファと、
フィルタ係数バッファの係数を用いてリファレンス信号バッファのデータをフィルタリング処理するフィルタ回路と、
入力信号とフィルタ回路の出力の誤差を求める誤差計算回路と、
誤差計算回路の出力とリファレンス信号とからフィルタ係数バッファのフィルタ係数を補正するフィルタ係数補正回路と、
フィルタ係数バッファのフィルタ係数に対応するインパルス応答の系列が最大である区間とインパルス応答の系列が減衰する区間を求めるインパルス応答系列区間検出回路と、
フィルタ係数バッファのフィルタ係数に対応するインパルス応答の系列が最大である区間のインパルス応答の系列の大きさとインパルス応答の系列が減衰する区間のインパルス応答の系列の大きさとを算出するインパルス応答系列の大きさ算出回路と、
フィルタ係数に対応するインパルス応答の系列が最大である区間のインパルス応答系列の大きさとインパルス応答の系列が減衰する区間のインパルス応答の系列の大きさに基づきフィルタ回路が対応できるインパルス応答時間を制御するインパルス応答時間制御回路で構成されたものである。
【００２４】
この構成により、伝達特性に対応するインパルス応答に対する必要な部分を、インパルス応答の形から簡易な方法で推定することにより、短いインパルス応答が適切な場合には小さい構成のフィルタを設定し、長いインパルス応答が適切な場合には大きい構成のフィルタを設定することができ、収束が速く、かつ、誤調整度による雑音の発生の少ない適応フィルタを提供できるという効果を奏する。
【００２５】
これにより、最適な区間設定による最適な大きさの構成のフィルタを設定することができる。そのため、短いインパルス応答が適切な場合に処理量を減少させることができる。
【００２６】
また、本発明の実施の形態は、リファレンス信号を入力するリファレンス信号端子と、
入力信号を入力する入力端子と、
出力信号を出力する出力端子と、
フィルタ係数バッファと、
リファレンス信号を蓄積するリファレンス信号バッファと、
フィルタ係数バッファとリファレンス信号バッファとのデータを第１の始点から第１の終点まで畳み込み処理する畳み込み回路と、
入力信号から畳み込み回路の出力を減算する減算回路と、
減算回路の出力とリファレンス信号とからフィルタ係数を補正するフィルタ係数補正回路と、
フィルタ係数バッファの係数の大きさの最大値であるタップ位置を基準として決められた第２の始点と第２の終点から構成される第２の区間と、第３の始点と第３の終点から構成される第３の区間とを求めるタップ始点終点計算回路と、
フィルタ係数バッファの第２の始点と第２の終点の間のフィルタ係数の大きさと、フィルタ係数バッファの第３の始点と第３の終点の間のフィルタ係数の大きさとを算出するフィルタ係数の大きさ算出回路と
フィルタ係数バッファの第２の始点と第２の終点の間のフィルタ係数の大きさとフィルタ係数バッファの第３の始点と第３の終点の間のフィルタ係数の大きさに基づき、畳み込み区間制御回路から畳み込み回路の第１の始点と第１の終点を制御するよう構成されたものである。
【００２７】
この構成により、短い畳み込み区間を含めて、どんな畳み込み区間長においてもその区間で適応フィルタが充分に機能しているかどうかが判断できる。
【００２８】
また、本発明はフィルタ係数バッファの第２の始点と第２の終点の間のフィルタ係数の大きさとフィルタ係数バッファの第３の始点と第３の終点の間のフィルタ係数の大きさを求める際にこの２つの区間が同一タップ数になるようにすることにより、大きさの値をそれぞれのタップ数で正規化の演算をすることなく大きさを算出することができる。
【００２９】
また、本発明の実施の形態はリファレンス信号を入力するリファレンス信号端子と、
入力信号を入力する入力端子と、
出力信号を出力する出力端子と、
フィルタ係数バッファと、
リファレンス信号を蓄積するリファレンス信号バッファと、
フィルタ係数バッファとリファレンス信号バッファとのデータを第１の始点から第１の終点まで畳み込み処理する畳み込み回路と、
入力信号から畳み込み回路の出力を減算する減算回路と、
減算回路の出力とリファレンス信号とからフィルタ係数を補正するフィルタ係数補正回路と、
フィルタ係数バッファの係数の大きさの最大値であるタップ位置を基準として決められた第２の始点と第２の終点から構成される第２の区間と、第３の始点と第３の終点から構成される第３の区間とを求めるタップ始点終点計算回路と、
フィルタ係数の第２の始点と第２の終点の間のタップ数と、フィルタ係数の第３の始点と第３の終点の間のタップ数を算出する区間の長さ算出回路と
第２の始点と第２の終点の間のタップ数と第３の始点と第３の終点の間のタップ数に基づき畳み込み区間制御回路から畳み込み回路の第１の始点と第１の終点を制御するよう構成されたものである。
【００３０】
この構成により、短い畳み込み区間を含めて、どんな畳み込み区間長においてもその区間で適応フィルタが充分に機能しているかどうかが判断できる。また、区間長のみを用いるために、タップの大きさを累積する必要がないため演算途中での桁あふれを考慮する必要がない。
【００３１】
さらに、本発明はフィルタ係数の大きさとして、係数の累積パワーの平均値を用いることにより、デジタルシグナルプロセッサなどで実施した場合に、積和演算命令を利用することにより、処理数が少なく累積パワーを求めることができる。また、フィルタ係数の大きさとして、フィルタ係数の絶対値を累積することにより、積和演算命令を持たない汎用ＣＰＵでも処理することが可能である。また、フィルタ係数バッファの始点と終点の間のフィルタ係数の絶対値の最大値を用いることにより、加算累積する必要がないため、比較演算のみで処理することが可能で処理量が少なくすることができる。
【００３２】
また、本発明はフィルタ係数の大きさとして、フィルタ係数バッファの隣接するフィルタ係数の差を取る処理と、自乗パワーを取る処理を行い、差を取った処理と自乗パワーを取った処理の結果の平均値を用いることにより、フィルタ係数の大きいタップが明確になることにより、第２の始点と第２の終点から構成される第２の区間と、第３の始点と第３の終点から構成される第３の区間の設定のしきい値が明確になることにより、畳み込み区間長において適応フィルタが充分に機能しているかどうかが判断しやすくなる。
【００３３】
さらに、フィルタ係数の大きさとして、フィルタ係数バッファの隣接するフィルタ係数の差を取る処理と、絶対値を取る処理を行うことで、畳み込み区間長において適応フィルタが充分に機能しているかどうかの判断の処理が積和演算命令を持たない汎用ＣＰＵでも処理することが可能になる。
【００３４】
さらに、本発明はフィルタ係数の大きさとして、フィルタ係数バッファの隣接するフィルタ係数の差を取る処理と、最大値を取る処理を行うことで、畳み込み区間長において適応フィルタが充分に機能しているかどうかの判断の処理が積和演算命令を持たない汎用ＣＰＵでも処理することができ、処理量を少なくすることができる。
【００３５】
さらに、本発明は受信信号端子とスピーカ端子を適応フィルタのリファレンス信号端子に入力し、
マイク端子を適応フィルタの入力端子に入力し、
適応フィルタの出力端子を送信信号端子へ出力するようにしたことにより、
音響エコーキャンセラが模擬する伝達特性に対応するインパルス応答のバラツキに影響されない畳み込み演算区間が設定できるという効果を奏する。
【００３６】
また、畳み込み演算の区間長が短い場合を含めて、どんな畳み込み演算の区間長からでも外乱の影響の少ないフィルタ係数の大きさを得るため、精度の高い畳み込み演算区間長を設定できるという効果を奏する。
【００３７】
さらに、本発明は公衆回線あるいは構内回線あるいはネットワークによる回線からの回線信号入力端子とスピーカへの信号端子を適応フィルタのリファレンス信号端子に入力し、
マイクで収音した信号を適応フィルタの入力端子に入力し、適応フィルタの出力端子を公衆回線あるいは構内回線あるいはネットワークによる回線への回線信号出力端子へ出力するようにしたことにより、残響時間の長い部屋でも残響時間の短い部屋でも、ハンズフリー会話のエコーがすぐに消え、かつ送話側へのノイズが少なく、動作が安定したハンズフリー会議電話を提供することができる。
【実施例】
【００３８】
（実施例１）
以下、本発明の実施例１における適応フィルタについて図面を参照しながら説明する。
【００３９】
図１において、リファレンス信号端子１は適応させたい元の信号を入力する端子である。入力端子３は適応フィルタの動作に対して模擬したい外部の伝達特性を経た信号を入力する端子である。リファレンス信号バッファ５はリファレンス信号端子１からの信号をフィルタリング処理に必要な時間分だけ蓄積しておくバッファである。フィルタ係数バッファ６は模擬したい外部の伝達特性に対応するフィルタ係数を蓄積しておくバッファである。
【００４０】
フィルタ回路７は、フィルタ係数バッファ６とリファレンス信号バッファ５を用いてフィルタリングし模擬した結果のデータを誤差計算回路８へ出力するフィルタ回路である。誤差計算回路８は、入力端子３へ入力されてくる信号からフィルタ回路８の模擬した信号の誤差信号を出力端子４とフィルタ係数補正回路９へ出力する回路である。フィルタ係数補正回路９は、リファレンス信号端子１と誤差計算回路８との信号から、フィルタ回路７の信号が入力端子３の信号に近づくようにフィルタ係数バッファ６のフィルタ係数を補正する回路である。
【００４１】
インパルス応答系列区間検出回路１０は、フィルタ係数バッファ６のフィルタ係数から、対応するインパルス応答の系列を求めて、インパルス応答の系列が最大の区間と減衰する区間を求める回路である。インパルス応答系列の大きさ算出回路１１は、インパルス応答系列区間検出回路１０から出力されるインパルス応答の系列が最大の区間と減衰する区間から、インパルス応答の系列が最大の区間のインパルス応答の大きさと減衰する区間のインパルス応答の大きさを求める回路である。
【００４２】
インパルス応答時間制御回路１２は、インパルス応答系列の大きさ算出回路１１から出力されるインパルス応答の系列が最大の区間のインパルス応答の大きさと減衰する区間のインパルス応答の大きさから、外部の伝達特性に対応するインパルス応答に対する必要な部分をインパルス応答の形から簡易な方法で推定し、インパルス応答の形によりリファレンス信号バッファ５とフィルタ係数バッファ６にフィルタ回路７で使用するフィルタ回路７の部分を設定する。
【００４３】
以上のような構成において、まず、リファレンス信号バッファ５とフィルタ係数バッファ６により制御されるフィルタ回路７について説明する。
【００４４】
フィルタ回路７は、実際のフィルタ構成としてＦＩＲフィルタ、ＩＩＲフィルタ、格子型フィルタで構成される。ＦＩＲフィルタ構成であれば、フィルタ係数バッファ６のフィルタ係数はインパルス応答そのままを示している。また、フィルタ回路７がＩＩＲフィルタ構成であれば、フィルタ係数バッファのフィルタ係数から、無限に減衰しながら続くインパルス応答を計算することができる。また、格子形フィルタについても同様に無限に減衰しながら続くインパルス応答を計算することができる。フィルタの次数は、ＦＩＲフィルタであればタップ数、格子型フィルタであれば段数、ＩＩＲ型フィルタであればタップ数と合わせてフィルタ係数とで制御される。
【００４５】
まず、フィルタ係数補正回路９の動作について説明する。リファレンス信号端子１からの信号と誤差計算回路８の誤差信号に基づいて、フィルタ係数バッファ６のフィルタ係数を補正する。この補正アルゴリズムとしては、ＬＭＳアルゴリズム、ＳＥＲアルゴリズム、ＲＬＳアルゴリズムなどが公知である。この処理をサンプリング毎に繰り返すと、フィルタ回路７の出力が入力端子３からの信号に近づくように、フィルタ係数バッファ６のフィルタ係数で表現されるインパルス応答が外部の伝達特性に対応するインパルス応答に近づく動作をする。
【００４６】
次に、フィルタ回路７を制御する方法について説明する。
【００４７】
インパルス応答系列区間検出回路１０は、後述の実施例２の図３と図４で示すようなＦＩＲフィルタの係数に対応するインパルス応答の系列のような、フィルタ係数バッファ６のフィルタ係数とフィルタ回路７のフィルタ構造に基づいて、フィルタで実現されているインパルス応答の係数を再現する。インパルス応答が最大となる区間と減衰している区間を求め、それぞれの区間をインパルス応答系列の大きさ算出回路１１に出力する。
【００４８】
インパルス応答系列の大きさ算出回路１１では、インパルス応答が最大の区間でのインパルス応答の大きさとインパルス応答が減衰している区間のインパルス応答の大きさを求めて、インパルス応答時間制御回路１２へ出力する。
【００４９】
インパルス応答時間制御回路１２は、後述の実施例２で示すようなインパルス応答の系列の大きさが最大の区間とそれより後ろの部分を比較する方法のような、インパルス応答が最大の区間でのインパルス応答の大きさとインパルス応答が減衰している区間のインパルス応答の大きさから、予め決まっているフィルタ回路の形式に基づいて、伝達特性に対応するインパルス応答に対する必要な部分をインパルス応答の形から簡易な方法で推定する。インパルス応答の形が充分に減衰していれば、インパルス応答の形が短くなるようにリファレンス信号バッファ５とフィルタ係数バッファ６にフィルタ回路７に実際のフィルタ構成で使用する部分を設定する。逆に、インパルス応答の形が充分に減衰していなければ、インパルス応答の形が長くなるようにリファレンス信号バッファ５とフィルタ係数バッファ６にフィルタ回路７に実際のフィルタ構成で使用する部分を設定する。
【００５０】
以上のような構成において、伝達特性に対応するインパルス応答に対する必要な部分をインパルス応答の形から簡易な方法で推定することによって、短いインパルス応答が適切な場合には少ない構成のフィルタを設定し、長いインパルス応答が適切な場合には大きい構成のフィルタを設定することができ、収束が早く、かつ、誤調整度による雑音の発生の少ない適応フィルタを提供できるという効果を奏する。
【００５１】
これにより、最適な区間設定による最適な大きさの構成のフィルタを設定することができる。そのため、短いインパルス応答が適切な場合に処理量を減少させることができる。
【００５２】
（実施例２）
以下、本発明の実施例２における適応フィルタについて図２を参照しながら説明する。
【００５３】
なお、実施例１と同様の構成を有するものに付いては、同一符号を付しその説明を省略する。
【００５４】
図２において、実施例１と相違する点は、図１のフィルタ回路７をＦＩＲフィルタ構成の畳み込み回路にした点である。それに伴ってインパルス応答系列区間検出回路１０がタップ始点終点区間計算回路１４に、インパルス応答系列の大きさ算出回路１１がフィルタ係数の大きさ算出回路１５に、インパルス応答時間制御回路が畳み込み区間制御回路１６に変更されている。
【００５５】
まず、相違した部分のみ相互のブロックの関係を示す。
【００５６】
畳み込み回路１３は、フィルタ係数バッファ６とリファレンス信号バッファ５を用いてフィルタリングし模擬した結果のデータを誤差計算回路８へ出力する回路である。誤差計算回路８は、入力端子３へ入力されてくる信号からフィルタ回路８の模擬した信号の誤差信号を出力端子４とフィルタ係数補正回路９へ出力する回路である。フィルタ係数補正回路９は、リファレンス信号端子１と誤差計算回路８との信号から、畳み込み回路１３の信号が入力端子３の信号に近づくようにフィルタ係数バッファ６のフィルタ係数を補正する回路である。
【００５７】
タップ始点終点区間計算回路１４は、フィルタ係数バッファ６のフィルタ係数を参照して、最大のフィルタ係数を含む第２の始点と第２の終点、および第３の始点と第３の終点を計算する回路である。フィルタ係数の大きさ算出回路１５は、フィルタ係数バッファ６の第２の始点から第２の終点までのフィルタ係数の大きさと第３の始点から第３の終点までのフィルタ係数の大きさを算出する回路である。
【００５８】
畳み込み区間制御回路１６は、第２の始点から第２の終点までのフィルタ係数の大きさと第３の始点から第３の終点までのフィルタ係数の大きさを比較することにより、畳み込み区間の始点と終点である第１の始点と第１の終点をリファレンス信号バッファ５とフィルタ係数バッファ６とに出力して、畳み込み回路７での処理区間を変更する。
【００５９】
実施例１のフィルタ回路７を畳み込み回路１３で実現した利点は、ＦＩＲフィルタ形式で実現するとインパルス応答の系列がそのままＦＩＲフィルタの係数として表すことができる点である。
【００６０】
実際に適応フィルタが動作して収束した後のインパルス応答（フィルタ係数）を図３と図４に示す。横軸が８０００Ｈｚサンプリングに対応する時間、縦軸が符号付１６ビットで表現したときの各タップのフィルタ係数を表している。以降、実際に適応フィルタを動作させたときのインパルス応答を表すフィルタ係数を示すので、インパルス応答を表す表現としてフィルタ係数を用いる。
【００６１】
図３は残響時間が４００ｍｓの部屋のフィルタ係数、図４は残響時間が１００ｍｓの部屋のフィルタ係数である。減衰時間だけではなく、最大のフィルタ係数のタップ位置も異なることがわかる。また、収束しても環境雑音の影響と誤調整度の影響で収束時にフィルタ係数が零になるわけではないこともわかる。
【００６２】
フィルタ係数がほぼ一定値になることを基準に、図３のグラフから最適な畳み込み演算区間は２５００タップ程度、図４のグラフから最適な畳み込み演算区間は１０００タップ程度と推定できる。
【００６３】
このようにいろいろなフィルタ係数の形に対応し、かつ最短の畳み込み演算区間としたいので畳み込み演算区間を可変とし、収束速度と誤調整度の両立ができる畳み込み演算区間として第１の始点から第１の終点を設定する必要がある。
【００６４】
図３と図４の例に限らずいろいろな伝達特性を考えると、畳み込み回路１３での畳み込み演算区間を大きくすれば、伝達特性が複雑な系の推定が可能であるが、収束速度が遅くなり、同時に適応動作の誤調整度が増加してしまうという問題点がある。そのため、動作の初期には短い畳み込み演算区間長でフィルタ処理をし、収束するにつれて長い畳み込み演算区間長でフィルタ処理をするように畳み込み演算区間長を変更して動作させることが必要となる。
【００６５】
逆に、畳み込み演算区間の第１の始点と第１の終点の間隔を大きくなった状態から伝達特性が変化したために再度学習しなおす際には、一度畳み込み演算区間の第１の始点と第１の終点の間隔を短くして再学習することが必要になる。
【００６６】
本実施例では、畳み込み演算区間長を、第１の始点を１タップ目、第１の終点を５１２タップ目と１０２４タップ目と２０４８タップ目と４０９６タップ目である４種類の畳み込み演算区間から選択する構成とする。
【００６７】
畳み込み演算区間を長くするかあるいは短くするかの判断をする方法として、図３のような減衰特性の伝達特性を利用して、フィルタ係数が最大のタップ位置付近のフィルタ係数の大きさとそれより後ろのフィルタ係数の大きさを比較することにより、現在設定されている畳み込み区間長が適切かどうか判断する。
【００６８】
畳み込み演算区間の第１の始点から第１の終点の中で、フィルタ係数バッファ６の一番大きな係数のタップ位置付近の第２の始点から第２の終点のフィルタ係数の大きさと、時間軸でその後の第３の始点から第３の終点のフィルタ係数の大きさとを比較することで、畳み込み演算区間を長くするか、あるいは短くするか判断する。
【００６９】
フィルタ係数バッファ６の第２の始点から第２の終点のフィルタ係数の大きさをＡ、第３の始点から第３の終点のフィルタ係数の大きさをＢとすると次の式で、畳み込み演算区間を長くするか、あるいは短くするかの判断を行う。
【００７０】
判断条件は次の通りである。α＞Ｂ／Ａならば、この畳み込み演算区間で充分に収束しているので畳み込み演算区間を縮める。α＜Ｂ／Ａ＜βならば、ほぼ収束状態なのでこの畳み込み演算区間をそのまま使用する。Ｂ／Ａ＞βならば、まだ収束していないので畳み込み演算区間を長くする。ここで、αとβは予め決定しておく判断のための係数である。
【００７１】
現在の畳み込み演算区間長が１０２４タップならば、畳み込み演算区間長を短くする際には５１２タップの畳み込み演算区間長に変更することになり、また、畳み込み演算区間長を長くする際には２０４８タップの畳み込み演算区間長に変更することになる。
【００７２】
適応フィルタを実際に動作させる信号は、理想的である周波数スペクトルが広がったホワイトノイズのような信号で動作するわけではない。実際には、例えば音声のような周波数スペクトルが偏った信号で第２の始点から第２の終点で決定される区間と、第３の始点から第３の終点で決定される区間を決定しなければならない。そのため、収束したフィルタ係数でも理想状態で学習した結果に比べて誤差が生じている。この誤差を取り除くために、ある程度の区間長を用いて誤差を少なくする必要である。
【００７３】
まず、タップ始点終点区間計算回路１０の動作を図５と図６を参考にして、第２の始点と第２の終点と第３の始点と第３の終点との決定方法を説明する。
【００７４】
まず第２の始点から第２の終点で決定される区間の設定方法を説明する。フィルタ係数の一番大きいタップを含む区間であることが必要であるため、第２の始点をフィルタ係数最大のタップ位置から畳み込み区間の３０％前のタップ位置とする。また、第２の終点をフィルタ係数が一番大きいタップ位置から畳み込み区間の３０％後ろのタップ位置とする。
【００７５】
まず、現在の畳み込み演算区間を５１２タップとする。図５において、フィルタ係数が一番大きいタップ位置は４０タップの位置である。フィルタ係数の一番大きいタップ位置から、畳み込み演算区間５１２タップの３０％の１５３タップ前のタップ位置を第２の始点とする。この場合先頭のタップより前になってしまうので先頭のタップ位置とする。また、フィルタ係数の一番大きいタップ位置から、畳み込み演算区間５１２タップの３０％の１５３タップ後ろのタップ位置を第２の終点とする。
【００７６】
同様に図６において、フィルタ係数が一番大きいタップ位置は１３０タップの位置である。フィルタ係数の一番大きいタップ位置から、畳み込み演算区間５１２タップの３０％の１５３タップ前のタップ位置を第２の始点とする。また、フィルタ係数の一番大きいタップ位置から、畳み込み演算区間５１２タップの３０％の１５３タップ分後ろのタップ位置を第２の終点とする。
【００７７】
次に、第３の始点から第３の終点で決定される区間の設定方法は次のとおりとする。第２の終点の次のタップ位置を第３の始点とし畳み込み区間の最後をタップ位置を第３の終点とする。
【００７８】
図５においては、第２の終点の次のタップ位置の１９４タップを第３の始点とし、畳み込み区間の最後のタップ位置である５１２タップを第３の終点とする。
【００７９】
図６においては、第２の終点の次のタップ位置の２８４タップを第３の始点とし、畳み込み区間の最後のタップ位置である５１２タップを第３の終点とする。
【００８０】
第２の始点から第２の終点で決定される区間のフィルタ係数の累積自乗和を該当区間のタップ長で正規化する。同様に第３の始点から第３の終点で決定される区間のフィルタ係数の累積自乗和を該当区間のタップ長で正規化する。
【００８１】
このようにして求められた第２の始点から第２の終点で決定される区間正規化された累積自乗和と第３の始点から第３の終点で決定される区間正規化された累積自乗和を用いて、判断基準に基づいて畳み込み演算区間を長く、あるいはそのまま、あるいは短く変更する。
【００８２】
上記の構成において、短い畳み込み区間を含めて、どんな畳み込み区間長においてもその区間で適応フィルタが充分に機能しているかどうかが判断できることとなり、収束したフィルタ係数で伝達特性を実現できる畳み込み区間長を設定できる。
【００８３】
この実施例で、第２の始点と第２の終点と第３の始点から第３の終点を決定するにあたって、畳み込み演算区間長の３０％の区間長を設定しているが、使用される環境での伝達特性に合わせた値を設定することで、最適な効果を得ることができる。
【００８４】
（実施例３）
以下、本発明の実施例３における適応フィルタについて図面を参照しながら説明する。タップ始点終点区間計算回路１４の別の実施例について図７と図８を参考にして、第２の始点と第２の終点と第３の始点と第３の終点との決定方法を説明する。
【００８５】
まず第２の始点から第２の終点で決定される区間の設定方法を説明する。フィルタ係数の一番大きいタップを含む区間であることが必要であるため、第２の始点をフィルタ係数最大のタップ位置から畳み込み区間の３０％前のタップ位置とする。また、第２の終点をフィルタ係数が一番大きいタップ位置から畳み込み区間の３０％後ろのタップ位置とする。
【００８６】
まず、現在の畳み込み演算区間を５１２タップとする。図７において、フィルタ係数の一番大きいタップ位置は４０タップの位置である。フィルタ係数の一番大きいタップ位置から、畳み込み演算区間５１２タップの３０％の１５３タップ前のタップ位置を第２の始点とする。この場合先頭のタップより前になってしまうので先頭のタップ位置とする。また、フィルタ係数の一番大きいタップ位置から、畳み込み演算区間５１２タップの３０％の１５３タップ分後ろのタップ位置を第２の終点とする。この場合、第２の始点が変更されているので、第２の始点から３０％＋３０％の６０％の区間である３０６タップの位置を第２の終点とする。
【００８７】
同様に図８において、フィルタ係数の一番大きいタップ位置は１３０タップの位置である。フィルタ係数の一番大きいタップ位置から、畳み込み演算区間５１２タップの３０％の１５３タップ前のタップ位置を第２の始点とする。この場合先頭のタップより前になってしまうので先頭のタップ位置とする。また、フィルタ係数の一番大きいタップ位置から、畳み込み演算区間５１２タップの３０％の１５３タップ後ろのタップ位置を第２の終点とする。この場合、第２の始点が変更されているので、第２の始点から畳み込み演算区間５１２タップの３０％＋３０％の６０％の区間である３０６タップの位置を第２の終点とする。
【００８８】
次に、第３の始点から第３の終点で決定される区間の設定方法は次のとおりとする。第３の始点を畳み込み演算区間の終点から前方へ畳み込み演算区間の６０％のタップ位置とし、畳み込み区間の終点を第３の終点とする。
【００８９】
図７および図８において畳み込み演算区間の最後が５１２タップなので、その１５３タップ前の２０６タップのタップ位置を第３の始点とし、５１２タップのタップ位置を第３の終点とする。
【００９０】
フィルタ係数の一番大きい所が畳み込み演算区間の後ろにある場合には、第２の始点と第２の終点と第３の始点と第３の終点の区間が重なることがある。
【００９１】
上記の構成により、第２の始点から第２の終点までの区間長と第３の始点から第３の終点までの区間長が同じになるため、第２の始点から第２の終点までの区間の累積自乗和と第３の始点から第３の終点までの区間の累積自乗和を求めた後、それぞれを区間長で正規化の演算をすることなく大きさを比較することができる。
【００９２】
この実施例で、第２の始点と第２の終点と第３の始点から第３の終点を決定するにあたって、畳み込み演算区間長の３０％の区間長を設定しているが、使用される環境での伝達特性に合わせた値を設定することで、最適な効果を得ることができる。
【００９３】
（実施例４）
以下、本発明の実施例４における適応フィルタについて図９を参照しながら説明する。
【００９４】
なお、実施例１および実施例２と同様の構成を有するものに付いては、同一符号を付しその説明を省略する。
【００９５】
図９において、実施例１と相違する点は、図１のフィルタ回路７をＦＩＲフィルタ構成の畳み込み回路にした点である。それに伴ってインパルス応答系列区間検出回路１０がタップ始点終点区間計算回路１４に、インパルス応答系列の大きさ算出回路１１が区間の長さ算出回路１７に、インパルス応答時間制御回路が畳み込み区間制御回路１６に変更されている。実施例２との相違点は、実施例２でのフィルタ係数の大きさ算出回路の大きさ検出回路１５が、区間の長さ算出回路１７になった点である。
【００９６】
まず、相違した部分のみ相互のブロックの関係を示す。
【００９７】
タップ始点終点区間計算回路１４は、フィルタ係数バッファ６のフィルタ係数を参照して、最大のフィルタ係数を含む第２の始点と第２の終点、および第３の始点と第３の終点を計算する回路である。区間の長さ算出回路１７は、フィルタ係数バッファ６の第２の始点から第２の終点までの区間の長さと第３の始点から第３の終点までの区間の長さを算出する回路である。
【００９８】
畳み込み区間制御回路１６は、第２の始点から第２の終点までの区間の長さと第３の始点から第３の終点までの区間の長さを比較することにより、畳み込み区間の始点と終点である第１の始点と第１の終点をリファレンス信号バッファ５とフィルタ係数バッファ６とに出力して、畳み込み回路７での処理区間を変更する。
【００９９】
その動作を図９を用いて説明する。
【０１００】
タップ始点終点区間計算回路１４の別の実施例について図１０と図１１を参考にして、第２の始点と第２の終点と第３の始点と第３の終点との決定方法を説明する。
【０１０１】
まず第２の始点から第２の終点で決定される区間の設定方法を説明する。フィルタ係数バッファ６のフィルタ係数の大きさが一番大きいタップ位置の係数の大きさを基準として第２の始点から第２の終点を決定する。フィルタ係数が一番大きいタップの大きさに対し、フィルタ係数が一番大きいタップ位置の前側の５０％の大きさのタップ位置を第２の始点、後ろ側の５０％の大きさのタップ位置を第２の終点とする。また、フィルタ係数が最大であるタップ位置の前側の２０％の大きさのタップ位置を第３の始点、後ろ側の２０％の大きさのタップ位置を第３の終点とする。伝達特性により、畳み込み演算区間のフィルタ係数全体にわたって平均値処理をすることにより、フィルタ係数の概形を得ることもできる。
【０１０２】
図１０において、フィルタ係数バッファのフィルタ係数の大きさが一番大きいフィルタ係数の大きさが絶対値を用いて９０００なので、フィルタ係数の概形からフィルタ係数の大きさとして絶対値が４５００である第２の始点と第２の終点を得ている。また、フィルタ係数の概形からフィルタ係数の大きさとして絶対値が１８００である第３の始点と第３の終点を得ている。
【０１０３】
また、図１１において、フィルタ係数バッファのフィルタ係数の大きさが一番大きいフィルタ係数の大きさが絶対値を用いて５８００なので、フィルタ係数の概形からフィルタ係数の大きさが絶対値を用いて２９００である第２の始点と第２の終点を得ている。また、フィルタ係数の概形からフィルタ係数の大きさとして絶対値が１１６０である第３の始点と第３の終点を得ている。
【０１０４】
次に第２の始点から第２の終点までで決定される区間の長さをＣ、第３の始点から第３の終点までで決定される区間の長さをＤとする。次の式で、畳み込み演算区間を長くするか、あるいは短くするかの判断を行う。
【０１０５】
判断条件は次の通りである。γ＞Ｄ／Ｃならば、この区間で充分に収束しているので畳み込み演算区間を縮める。γ＜Ｄ／Ｃ＜δならば、ほぼ収束状態なのでこの畳み込み演算区間をそのまま使用する。Ｄ／Ｃ＞δならば、まだ収束していないで畳み込み演算区間を長くする。ここで、γとδは予め決定しておく判断のための係数である。
【０１０６】
上記の構成において、長さＤの算出において、長さＤから重複している長さＣを引いたものを用いても良い。また、区間長のみを用いるために、タップの大きさを累積する必要がないため演算途中での桁あふれを考慮する必要がない。
【０１０７】
この実施例で、第２の始点と第２の終点と第３の始点から第３の終点を決定するにあたって、フィルタ係数が一番大きいタップ位置でのフィルタ係数の大きさに対し、５０％の大きさおよび２０％の大きさを設定しているが、使用される環境での伝達特性に合わせた値を設定することで、最適な効果を得ることができる。
【０１０８】
なお、実施例２と実施例３において、フィルタ係数の大きさを算出する方法として、フィルタ係数の累積自乗和を求めていたが、フィルタ係数の大きさとしてフィルタ係数の絶対値を用いても、同様の効果が得られる。絶対値を用いた場合、上記の構成において、積和演算命令を持たない汎用ＣＰＵでも処理することが可能である。
【０１０９】
また、実施例２と実施例３において、フィルタ係数の大きさを算出する方法として、フィルタ係数の累積自乗和を求めていたが、フィルタ係数の大きさとして始点から終点までの区間のフィルタ係数の最大値を用いても、同様の効果が得られる。最大値を用いた場合、上記の構成において、積和演算命令を持たない汎用ＣＰＵでも処理することが可能であり、累積計算をする必要がないため、累積による演算の桁あふれをなくすことが可能である。
【０１１０】
また、実施例４において、フィルタ係数の大きさを算出する方法として、フィルタ係数の絶対値を求めていたが、フィルタ係数を自乗したものをフィルタ係数の大きさとして用いても、同様の効果が得られる。上記の構成において、積和演算命令を持つデジタルシグナルプロセッサではプロセッサの持つ機能を活用し精度の高い処理をすることが可能である。
【０１１１】
（実施例５）
以下、本発明の実施例５における適応フィルタについて図面を参照しながら説明する。
【０１１２】
実施例２から実施例４の適応フィルタにおいて、フィルタ係数の大きさを求める手段として、フィルタ係数バッファの一定区間ごとに間引いて隣接する係数の差を取る処理と、絶対値を取る処理を行い、差を取った処理と絶対値を取った処理の値を区間のタップ長で正規化する処理をフィルタ係数の大きさを算出する方法として用いても同様な効果が得られる。
【０１１３】
上記構成において、係数の大きいタップと小さいタップの差が明確になることにより、タップ始点終点区間計算回路１４の第２の始点と第２の終点の間のフィルタ係数の大きさと、第３の始点と第３の終点の間のフィルタ係数の大きさの違いを大きくすることができ、畳み込み区間制御回路１６において畳み込み演算区間が適切かどうか判断するための予め決定しておく係数α、β、γ、δを決定しやすくできる。また、積和演算命令を持たない汎用ＣＰＵでも処理することが可能である。
【０１１４】
この処理を行った実際のフィルタ係数のグラフを図１２、図１３、図１４、図１５に示す。元のフィルタ係数のグラフ図３に対し、３２個のフィルタ係数から１個の係数を間引き処理をしたフィルタ係数が図１２であり、元のフィルタ係数のグラフ図９に対し、３２個のフィルタ係数から１個のフィルタ係数を間引き処理をしたフィルタ係数が図１３である。これらのグラフからフィルタ係数の概形は変わらないことがわかる。さらに、間引き処理を行ったフィルタ係数のグラフ図１２に対し隣接するフィルタ係数の差分を取ったグラフが図１４であり、間引き処理を行ったグラフ図１３に対し隣接するフィルタ係数の差分を取ったグラフが図１５である。図３と図４においてフィルタ係数が大きいところから小さくなった変化したタップ位置に対応して、図１４と図１５の値が大きく変化していることがわかる。
【０１１５】
実施例４のフィルタ係数の大きさを求める手段を構成する処理のうちフィルタ係数の絶対値を取る処理の代わりに、フィルタ係数の自乗を取る処理を用いることもできる。この場合、積和演算命令を持つデジタルシグナルプロセッサではプロセッサの持つ機能を活用し精度の高い処理をすることが可能である。
【０１１６】
実施例２から実施例３の適応フィルタにおいて、フィルタ係数の大きさを求める手段として、フィルタ係数バッファの一定区間ごとに間引いて隣接する係数の差を取る処理と、絶対値を取る処理あるいは自乗を行う処理を行った値を、フィルタ係数の大きさであるとして処理しても同様な効果が得られる。
【０１１７】
なお、フィルタ係数バッファの一定区間ごとに間引く処理を除いても同様な効果が得られる。この場合、間引き処理のためのメモリを必要としない利点がある。
【０１１８】
（実施例６）
以下、本発明の実施例６における音響エコーキャンセラについて図面を参照しながら説明する。
【０１１９】
図１６は本発明の実施例６の構成を示すブロック図であるが。なお、実施例２と同様の構成を有するものに付いては、同一符号を付しその説明を省略する。
【０１２０】
図１６において、実施例２と相違する点は、実施例２におけるリファレンス信号端子１に相当する部分が受信信号端子２１およびスピーカ端子２２になっている点、入力端子３がマイク端子２３となり、マイク２６が接続されている点、出力端子４が送信信号端子２４となっている点である。
【０１２１】
音響エコーキャンセラの構成は実施例１から実施例５の適応フィルタに対し、外部に対し信号を入出力する端子と音響空間に対し音響信号を入出力するスピーカとマイクを付加した構成になっている。外部からの信号の受信を受信信号端子２１で行い、リファレンス信号端子１に接続され、受信信号端子２１の信号をスピーカ端子２２へ接続するようになっている。また、マイク２６からの信号がマイク端子２３を経由して入力端子に接続されている。
【０１２２】
まず、相違した部分のみ相互のブロックの関係を示す。
【０１２３】
図１６において、受信信号端子２１はスピーカ端子２２を経由して、スピーカ２５から再生させたい信号を入力する端子である。また、同時に適応フィルタのリファレンス信号となってフィルタ係数補正回路９に入力されている。マイク２６から入力された信号は、スピーカ２５から再生された音響信号が音響空間を経た信号をマイク端子２３を経由して、誤差計算回路８へ入力するものである。誤差計算回路８の出力が送信信号端子２４とフィルタ係数補正回路９へ出力される。
【０１２４】
ここで、受信信号端子２１からスピーカ端子２２を経由してスピーカ２４へ出力するためのデジタル−アナログ変換器とスピーカを駆動するためのパワーアンプとマイク２５からの入力をマイク端子２３を経由して通常の大きさの電気信号に変換するマイクアンプとアナログ−デジタル変換器は省略して記載している。
【０１２５】
なお、本実施例では実施例２の適応フィルタを用いた音響エコーキャンセラとして説明しているが、実施例１から実施例５までの適応フィルタのどれを用いても実現が可能なものである。
【０１２６】
その動作を図１６を用いて説明する。受信信号端子２１に再生させたい信号を入力する。再生させたい信号はスピーカ端子２２を経由してスピーカ２５から出力される。同時にリファレンス信号となって適応フィルタリファレンス信号としてフィルタ係数補正回路９へ入力される。
【０１２７】
スピーカ２５から音響空間へ電気−音響変換をして音響信号として出力された音波は、スピーカのある部屋の残響特性が加わって、マイク２６に到達する。マイク２６からの信号はマイク端子２３を経由して誤差計算回路８へ出力される。
【０１２８】
実施例１から実施例５の適応フィルタは、残響特性を模擬するようにフィルタ係数バッファ６の係数を補正することを毎サンプル毎に繰り返し行うように動作する。受信信号端子２１から入力した信号は、誤差計算回路８で実際のマイク２６からの信号とフィルタ係数バッファ６とリファレンス信号バッファ５を用いて畳み込み回路１３で演算することにより模擬された擬似残響特性による信号で打ち消されることになる。
【０１２９】
送信信号端子２４へ出力される信号は、スピーカ２５から出力されずに、マイク２６に入力した信号、つまりマイク周辺で発生した音波の信号のみということになる。
【０１３０】
実際の環境では、部屋の容積と壁の材質による反射係数と部屋の内部の家具や人物の配置とで残響時間は変化する。本実施例の音響エコーキャンセラは部屋の容積と壁の材質と家具や人物の配置による残響時間のバラツキに影響されず、いろいろな残響時間の部屋に対応できる音響エコーキャンセラを提供できる。
【０１３１】
（実施例７）
以下、本発明の実施例７におけるハンズフリー電話について図面を参照しながら説明する。
【０１３２】
図１７において、回線入力端子２９が筐体２８の内部にある実施例６の音響エコーキャンセラ２７の受信信号端子２１に電気的に接続されている。また、同様に音響エコーキャンセラ２７の送信信号端子２４が回線信号出力端子３０に電気的に接続されている。
【０１３３】
筐体２８の内部にスピーカ２５とマイク２６が固定され、音響エコーキャンセラ２７のスピーカ端子２２にスピーカ２５が電気的に接続されている。また、音響エコーキャンセラ２７のマイク端子２３にマイク２６が電気的に接続されている。
【０１３４】
この実施例では、回線入力端子２９からの音声が再生できるよう筐体２７の上面に向けてスピーカ２５が設置されている。また、筐体２８の周囲全体の話者の音声を収音するために４個のマイク２６を水平方向の指向性となるように設置している。
【０１３５】
また、回線信号入力端子２９からの信号は、音響エコーキャンセラ２７の受信信号端子２１に接続され、スピーカ２５から音声が出力されることで、ハンズフリー電話周辺にいる人に回線からの音声を聞かせることができる。
【０１３６】
筐体２８内のスピーカ２５から出力された音声の音波は、設置してある部屋の残響が付加された音波となって、筐体２８周辺から発生する音波を合わせてマイク２５から収音され、音響エコーキャンセラ２７のマイク端子２３に入力される。
【０１３７】
音響エコーキャンセラ２７は、スピーカ２５から出力され、部屋の残響が付加された成分をマイク２６で収音した信号から除去する。そのため、筐体２８周辺から発生する音波のみを音響エコーキャンセラ２７の送信信号端子２４に接続された回線信号出力端子３０へ出力する。これにより、筐体２８周辺の人の音声のみを回線信号出力端子３０へ出力することができ、ハンズフリー電話が実現できる。
【０１３８】
この実施例６の音響エコーキャンセラを用いた構成により、残響時間の長い部屋でも残響時間の短い部屋でも、ハンズフリー会話のエコーがすぐに消え、かつ送話側へのノイズが少なく、動作が安定したハンズフリー電話を提供することができる。
【０１３９】
なお、ハンズフリー電話であれば、この形態に限るものではなく、テレビ電話における音声ハンズフリー通話機能を実現する部分や個人で卓上において使用するハンズフリー電話や無線を利用した携帯できるハンズフリー通話をできる電話でも良い。
【産業上の利用可能性】
【０１４０】
本発明の適応フィルタは、伝達特性に対応するインパルス応答が減衰形となる伝達特性を模擬する適応フィルタ処理において、速い収束速度と誤調整度によるノイズの発生や適応処理の不安定さの防止とを実現する適応フィルタとして利用することが可能で、その特徴と利用した音響エコーキャンセラ、また会議電話に利用可能である。
【図面の簡単な説明】
【０１４１】
【図１】本発明の実施例１における適応フィルタのブロック図
【図２】本発明の実施例２における適応フィルタのブロック図
【図３】残響時間が短い部屋のインパルス応答の実例を示すグラフ
【図４】残響時間が長い部屋のインパルス応答の実例を示すグラフ
【図５】（ａ）は残響時間が短い部屋のインパルス応答の実例を示すグラフ、（ｂ）は実施例２のフィルタ係数の大きさを決定する区間を示す図
【図６】（ａ）は残響時間が長い部屋のインパルス応答の実例を示すグラフ、（ｂ）は実施例２のフィルタ係数の大きさを決定する区間を示す図
【図７】（ａ）は残響時間が短い部屋のインパルス応答の実例を示すグラフ、（ｂ）は実施例３のフィルタ係数の大きさを決定する区間を示す図
【図８】（ａ）は残響時間が長い部屋のインパルス応答の実例を示すグラフ、（ｂ）は実施例３のフィルタ係数の大きさを決定する区間を示す図
【図９】本発明の実施例４における適応フィルタのブロック図
【図１０】（ａ）は残響時間が短い部屋のインパルス応答の実例を示すグラフ、（ｂ）は実施例４のフィルタ係数の大きさを決定する区間を示す図
【図１１】（ａ）は残響時間が長い部屋のインパルス応答の実例を示すグラフ、（ｂ）は実施例４のフィルタ係数の大きさを決定する区間を示す図
【図１２】本発明の実施例５における残響時間が短い部屋での間引き処理をしたインパルス応答を示すグラフ
【図１３】本発明の実施例５における残響時間が長い部屋での間引き処理をしたインパルス応答を示すグラフ
【図１４】本発明の実施例５における残響時間が短い部屋での間引き処理と差分処理と絶対値処理をしたインパルス応答を示すグラフ
【図１５】本発明の実施例５における残響時間が短い部屋での間引き処理と差分処理と絶対値処理をしたインパルス応答を示すグラフ
【図１６】本発明の実施例６におけるエコーキャンセラのブロック図
【図１７】本発明の実施例７におけるハンズフリー電話の斜視図
【図１８】従来の適応フィルタの構成を示すブロック図
【図１９】従来の音響エコーキャンセラの構成を示すブロック図
【図２０】従来の音響エコーキャンセラの構成を示すブロック図
【符号の説明】
【０１４２】
１    リファレンス入力端子
３    入力端子
４    出力端子
５    リファレンス信号バッファ
６    フィルタ係数バッファ
７    フィルタ回路
８    誤差計算回路
９    フィルタ係数補正回路
１０    インパルス応答系列区間検出回路
１１    インパルス応答系列の大きさ算出回路
１２    インパルス応答時間の制御回路
１３    畳み込み回路
１４    タップ始点終点区間計算回路
１５    フィルタ係数の大きさ算出回路
１６    畳み込み区間制御回路
２１    受信信号回路
２２    スピーカ端子
２３    マイク端子
２４    送信信号端子
２５    スピーカ
２６    マイク
２７    音響エコーキャンセラ
２８    筐体
２９    回線信号入力端子
３０    回線信号出力端子
【図１】
2006128758.tif 000003
【図２】
2006128758.tif 000004
【図３】
2006128758.tif 000005
【図４】
2006128758.tif 000006
【図５】
2006128758.tif 000007
【図６】
2006128758.tif 000008
【図７】
2006128758.tif 000009
【図８】
2006128758.tif 000010
【図９】
2006128758.tif 000011
【図１０】
2006128758.tif 000012
【図１１】
2006128758.tif 000013
【図１２】
2006128758.tif 000014
【図１３】
2006128758.tif 000015
【図１４】
2006128758.tif 000016
【図１５】
2006128758.tif 000017
【図１６】
2006128758.tif 000018
【図１７】
2006128758.tif 000019
【図１８】
2006128758.tif 000020
【図１９】
2006128758.tif 000021
【図２０】
2006128758.tif 000022