(57)【特許請求の範囲】
【請求項１】
オーディオ信号を高速フーリエ変換処理した後にＦＩＲフィルタを用いてフィルタ処理を施してから高速逆フーリエ変換処理を行うことにより、前記オーディオ信号に対して音響補正処理を行うための、前記ＦＩＲフィルタ用のフィルタ係数を生成するフィルタ生成装置であって、
前記音響補正処理を行うために用いられる重み係数情報を、前記オーディオ信号の周波数帯域に基づいて複数に分割された帯域毎に記録する重み係数記録手段と、
直前の音響補正処理以前にユーザによって設定された前記分割された帯域毎の直前のゲインの値と、前記直前の音響補正処理において用いられた直前のフィルタ係数とを記録するゲイン係数記録手段と、
前記分割された帯域のうち前記ユーザにより選択された帯域を帯域情報として検出すると共に、選択された帯域において前記ユーザにより新たに設定された新規のゲインの値を検出する入力検出手段と、
該入力検出手段により検出された帯域情報に基づいて、前記ユーザにより選択された帯域の重み係数情報を前記重み係数記録手段より抽出する重み係数抽出手段と、
前記ゲイン係数記録手段に記録される前記直前のゲインの値のうち前記帯域情報により求められる帯域の直前のゲインの値と、前記入力検出手段により検出された前記新規のゲインの値との差を、差分ゲインとして算出する差分ゲイン算出手段と、
前記重み係数抽出手段により抽出された前記重み係数情報と前記差分ゲイン算出手段により算出された前記差分ゲインとを乗算することにより、前記帯域情報により求められる帯域の補正ゲインを生成する補正ゲイン生成手段と、
該補正ゲイン生成手段により生成された前記補正ゲインを、前記ゲイン係数記録手段に記録された前記直前のフィルタ係数のうち前記帯域情報により求められる帯域に対して乗算することにより、新規のフィルタ係数を生成するフィルタ係数算出手段と
を備えることを特徴とするフィルタ生成装置。
【請求項２】
前記重み係数情報は、前記分割された帯域の中心周波数の振幅値を最大値とし、該中心周波数から離れるに従って振幅値が減少する凸状の振幅値変化状態で設定されることを特徴とする請求項１に記載のフィルタ生成装置。
【請求項３】
前記重み係数情報は、周波数を対数スケールで示した場合に、前記凸状の振幅値変化状態が左右対称の形状となることを特徴とする請求項２に記載のフィルタ生成装置。
【請求項４】
前記重み係数情報は、隣接する帯域の中心周波数の振幅値を０とし、隣接する帯域との境界となる周波数の振幅値を前記最大値の半分の振幅値として設定されることを特徴とする請求項２又は請求項３に記載のフィルタ生成装置。
【請求項５】
前記重み係数情報は、前記凸状の振幅値変化状態として、Ｈａｎｎ窓又は三角窓に該当する減衰特性を備えることを特徴とする請求項２乃至請求項４のいずれか１項に記載のフィルタ生成装置。
【請求項６】
オーディオ信号を高速フーリエ変換処理した後にＦＩＲフィルタを用いてフィルタ処理を施してから高速逆フーリエ変換処理を行うことにより、前記オーディオ信号に対して音響補正処理を行うための、前記ＦＩＲフィルタ用のフィルタ係数を生成するフィルタ生成装置のフィルタ生成方法であって、
前記フィルタ生成装置は、
前記音響補正処理を行うために用いられる重み係数情報を、前記オーディオ信号の周波数帯域に基づいて複数に分割された帯域毎に記録する重み係数記録手段と、
直前の音響補正処理以前にユーザによって設定された前記分割された帯域毎の直前のゲインの値と、前記直前の音響補正処理において用いられた直前のフィルタ係数とを記録するゲイン係数記録手段と
を備え、
入力検出手段が、前記分割された帯域のうち前記ユーザにより選択された帯域を帯域情報として検出すると共に、選択された帯域において前記ユーザにより新たに設定された新規のゲインの値を検出する入力検出ステップと、
重み係数抽出手段が、前記入力検出ステップにおいて検出された帯域情報に基づいて、前記ユーザにより選択された帯域の重み係数情報を前記重み係数記録手段より抽出する重み係数抽出ステップと、
差分ゲイン算出手段が、前記ゲイン係数記録手段に記録される前記直前のゲインの値のうち前記帯域情報により求められる帯域の直前のゲインの値と、前記入力検出ステップにおいて検出された前記新規のゲインの値との差を、差分ゲインとして算出する差分ゲイン算出ステップと、
補正ゲイン生成手段が、前記重み係数抽出ステップにおいて抽出された前記重み係数情報と前記差分ゲイン算出ステップにおいて算出された前記差分ゲインとを乗算することにより、前記帯域情報により求められる帯域の補正ゲインを生成する補正ゲイン生成ステップと、
フィルタ係数算出手段が、前記補正ゲイン生成ステップにおいて生成された前記補正ゲインを、前記ゲイン係数記録手段に記録された前記直前のフィルタ係数のうち前記帯域情報により求められる帯域に対して乗算することにより、新規のフィルタ係数を生成するフィルタ係数算出ステップと
を備えることを特徴とするフィルタ生成方法。
【請求項７】
前記重み係数情報は、前記分割された帯域の中心周波数の振幅値を最大値とし、該中心周波数から離れるに従って振幅値が減少する凸状の振幅値変化状態で設定されることを特徴とする請求項６に記載のフィルタ生成方法。
【請求項８】
前記重み係数情報は、周波数を対数スケールで示した場合に、前記凸状の振幅値変化状態が左右対称の形状となることを特徴とする請求項７に記載のフィルタ生成方法。
【請求項９】
前記重み係数情報は、隣接する帯域の中心周波数の振幅値を０とし、隣接する帯域との境界となる周波数の振幅値を前記最大値の半分の振幅値として設定されることを特徴とする請求項７又は請求項８に記載のフィルタ生成方法。
【請求項１０】
前記重み係数情報は、前記凸状の振幅値変化状態として、Ｈａｎｎ窓又は三角窓に該当する減衰特性を備えることを特徴とする請求項７乃至請求項９のいずれか１項に記載のフィルタ生成方法。
【請求項１１】
オーディオ信号を高速フーリエ変換処理した後にＦＩＲフィルタを用いてフィルタ処理を施してから高速逆フーリエ変換処理を行うことにより、前記オーディオ信号に対して音響補正処理を行うための前記ＦＩＲフィルタ用のフィルタ係数を生成する機能を、フィルタ生成装置のコンピュータで実現させるフィルタ生成プログラムであって、
前記フィルタ生成装置は、
前記音響補正処理を行うために用いられる重み係数情報を、前記オーディオ信号の周波数帯域に基づいて複数に分割された帯域毎に記録する重み係数記録手段と、
直前の音響補正処理以前にユーザによって設定された前記分割された帯域毎の直前のゲインの値と、前記直前の音響補正処理において用いられた直前のフィルタ係数とを記録するゲイン係数記録手段と
を備え、
前記コンピュータに、
前記分割された帯域のうち前記ユーザにより選択された帯域を帯域情報として検出させると共に、選択された帯域において前記ユーザにより新たに設定された新規のゲインの値を検出させるための入力検出機能と、
該入力検出機能により検出された帯域情報に基づいて、前記ユーザにより選択された帯域の重み係数情報を前記重み係数記録手段より抽出させる重み係数抽出機能と、
前記ゲイン係数記録手段に記録される前記直前のゲインの値のうち前記帯域情報により求められる帯域の直前のゲインの値と、前記入力検出機能により検出された前記新規のゲインの値との差を、差分ゲインとして算出させる差分ゲイン算出機能と、
前記重み係数抽出機能により抽出された前記重み係数情報と前記差分ゲイン算出機能により算出された前記差分ゲインとを乗算することにより、前記帯域情報により求められる帯域の補正ゲインを生成させる補正ゲイン生成機能と、
該補正ゲイン生成機能により生成された前記補正ゲインを、前記ゲイン係数記録手段に記録された前記直前のフィルタ係数のうち前記帯域情報により求められる帯域に対して乗算することにより、新規のフィルタ係数を生成させるフィルタ係数算出機能と
を実現させることを特徴とするフィルタ生成プログラム。
【請求項１２】
前記重み係数情報は、前記分割された帯域の中心周波数の振幅値を最大値とし、該中心周波数から離れるに従って振幅値が減少する凸状の振幅値変化状態で設定されることを特徴とする請求項１１に記載のフィルタ生成プログラム
【請求項１３】
前記重み係数情報は、周波数を対数スケールで示した場合に、前記凸状の振幅値変化状態が左右対称の形状となることを特徴とする請求項１２に記載のフィルタ生成プログラム。
【請求項１４】
前記重み係数情報は、隣接する帯域の中心周波数の振幅値を０とし、隣接する帯域との境界となる周波数の振幅値を前記最大値の半分の振幅値として設定されることを特徴とする請求項１２又は請求項１３に記載のフィルタ生成プログラム。
【請求項１５】
前記重み係数情報は、前記凸状の振幅値変化状態として、Ｈａｎｎ窓又は三角窓に該当する減衰特性を備えることを特徴とする請求項１２乃至請求項１４のいずれか１項に記載のフィルタ生成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フィルタ生成装置、フィルタ生成方法およびフィルタ生成プログラムに関し、より詳細には、入力されるオーディオ信号を高速フーリエ変換した後に、フィルタ処理を施して高速逆フーリエ変換することにより、オーディオ信号に音響処理を施すためのフィルタ係数を生成するフィルタ生成装置、フィルタ生成方法およびフィルタ生成プログラムに関する。
【背景技術】
【０００２】
従来より、スピーカ等から出力される音響信号に対してフィルタ処理を施すことにより、リスニング環境における音場を補正する方法が知られている。現在では、フィルタ処理に用いられるデジタルフィルタとして、ＩＩＲ（Infinite Impulse Response）フィルタやＦＩＲ（Finite Impulse Response）フィルタが広く知られている。
【０００３】
フィルタ処理にＩＩＲフィルタを用いてフィルタ処理を行う場合には、任意の周波数帯域とゲインとを設定することにより、設定された周波数帯域のゲイン調整を比較的容易に行うことが可能である。しかしながら、ＩＩＲフィルタは、フィードバックループ処理を内部処理として行うことから、演算誤差が蓄積し、演算精度が悪くなってしまう傾向があった。一方で、ＦＩＲフィルタは、遅延処理された各信号に対して、フィルタ１係数あたりに、乗算と加算とをそれぞれ１回だけ内部処理として行うため、誤差の蓄積がなく、演算精度が高いという特徴を備えている。しかしながら、ＦＩＲフィルタの場合には、ＩＩＲフィルタと異なり、ＦＩＲフィルタの周波数特性を部分的に変更して（周波数特性の特定の部分だけを変更して）、フィルタを生成することが困難であった。このため、任意の周波数帯域とゲインとを設定しても、ＦＩＲフィルタを用いて、設定された周波数帯域のゲイン調整を容易に行うことが難しかった。従って、ＦＩＲフィルタでは、ＩＩＲフィルタに比べて調整性に劣るという問題があった。
【０００４】
これらの問題を解決するために、ＩＩＲフィルタが持つ調整容易性とＦＩＲフィルタが持つ演算誤差の少ない高精度性とを併せもつ信号処理回路が開発されている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】国際公開第２０１０／０４１３８１号
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１に示された信号処理回路では、常に等価な伝達関数を備える、ＩＩＲフィルタとＦＩＲフィルタとの２種類のフィルタを有している。特許文献１に示された信号処理回路では、伝達関数の調整を行う調整モードが選択された場合に、ＩＩＲフィルタの構成・設定を調整し、調整が完了した段階で、あるいは信号処理モードが選択された場合に、ＩＩＲフィルタのフィルタ係数と同じ伝達関数を有するＦＩＲフィルタのフィルタ係数を生成して、ＩＩＲフィルタからＦＩＲフィルタへ変更する構成となっている。
【０００７】
しかしながら、一度、ＩＩＲフィルタのフィルタ構成で設定処理を行った後に、等価な伝達関数のＦＩＲフィルタに構成を変更する必要があることから、計算の処理負担が増大し、処理速度が低下するという問題があった。
【０００８】
一方で、ＩＩＲフィルタは、任意の周波数帯域におけるゲイン調整を容易に行うことが可能であるため、グラフィックイコライザ等に多く用いられている。グラフィックイコライザは、各帯域の設定ゲインを表示する設定画面を備えており、多くはバー表示（棒グラフ表示）を用いて、各帯域に設定されるゲインを表示している。このため、ユーザは、設定画面の表示を見ながら、低音や高音の周波数特性を変化させることが可能になっていた。
【０００９】
ここで、ＩＩＲフィルタ構成においては、低帯域を通過させるローパスフィルタ、高帯域を通過させるハイパスフィルタ、特定の帯域を通過させるピーキングフィルタ等が知られている。グラフィックイコライザでは、任意の周波数帯域においてゲインの調整処理を行うことから、一般にピーキングフィルタが用いられている。しかしながら、ピーキングフィルタを用いて各帯域のゲイン調整を行うと、特開２０１２―２３５３０３号公報の図１４に示すように、隣り合う帯域間でゲイン出力に谷ができてしまう傾向があった。このため、設定画面に基づいて設定された周波数帯域毎のゲイン特性と、実際にフィルタ処理される周波数帯域毎のゲイン特性とが異なった特性になってしまう。従って、ＩＩＲフィルタを用いてゲイン補正を行うと、生成されるフィルタの精度が低くなってしまうおそれがあった。
【００１０】
また、ＩＩＲフィルタの代わりにＦＩＲフィルタを用いることにより、精度の高いフィルタを生成することも考えられるが、既に説明したように、ＦＩＲフィルタでは、周波数特性を部分的に変更して（周波数特性の特定の部分だけを変更して）フィルタを生成することが困難であるため、調整性が劣るとともに、迅速なフィルタ生成を実現することが容易ではなかった。
【００１１】
本発明は、上記課題に鑑みて成されたものであり、特定の周波数帯域のゲインが設定・変更された場合に、設定・変更された周波数帯域およびゲインの特性を実現するＦＩＲフィルタを、迅速かつ高精度に生成することが可能なフィルタ生成装置、フィルタ生成方法およびフィルタ生成プログラムを提供することを課題とする。
【課題を解決するための手段】
【００１２】
上記課題を解決するために、本発明に係るフィルタ生成装置は、オーディオ信号を高速フーリエ変換処理した後にＦＩＲフィルタを用いてフィルタ処理を施してから高速逆フーリエ変換処理を行うことにより、前記オーディオ信号に対して音響補正処理を行うための、前記ＦＩＲフィルタ用のフィルタ係数を生成するフィルタ生成装置であって、前記音響補正処理を行うために用いられる重み係数情報を、前記オーディオ信号の周波数帯域に基づいて複数に分割された帯域毎に記録する重み係数記録手段と、直前の音響補正処理以前にユーザによって設定された前記分割された帯域毎の直前のゲインの値と、前記直前の音響補正処理において用いられた直前のフィルタ係数とを記録するゲイン係数記録手段と、前記分割された帯域のうち前記ユーザにより選択された帯域を帯域情報として検出すると共に、選択された帯域において前記ユーザにより新たに設定された新規のゲインの値を検出する入力検出手段と、該入力検出手段により検出された帯域情報に基づいて、前記ユーザにより選択された帯域の重み係数情報を前記重み係数記録手段より抽出する重み係数抽出手段と、前記ゲイン係数記録手段に記録される前記直前のゲインの値のうち前記帯域情報により求められる帯域の直前のゲインの値と、前記入力検出手段により検出された前記新規のゲインの値との差を、差分ゲインとして算出する差分ゲイン算出手段と、前記重み係数抽出手段により抽出された前記重み係数情報と前記差分ゲイン算出手段により算出された前記差分ゲインとを乗算することにより、前記帯域情報により求められる帯域の補正ゲインを生成する補正ゲイン生成手段と、該補正ゲイン生成手段により生成された前記補正ゲインを、前記ゲイン係数記録手段に記録された前記直前のフィルタ係数のうち前記帯域情報により求められる帯域に対して乗算することにより、新規のフィルタ係数を生成するフィルタ係数算出手段とを備えることを特徴とする。
【００１３】
また、本発明に係るフィルタ生成方法は、オーディオ信号を高速フーリエ変換処理した後にＦＩＲフィルタを用いてフィルタ処理を施してから高速逆フーリエ変換処理を行うことにより、前記オーディオ信号に対して音響補正処理を行うための、前記ＦＩＲフィルタ用のフィルタ係数を生成するフィルタ生成装置のフィルタ生成方法であって、前記フィルタ生成装置は、前記音響補正処理を行うために用いられる重み係数情報を、前記オーディオ信号の周波数帯域に基づいて複数に分割された帯域毎に記録する重み係数記録手段と、直前の音響補正処理以前にユーザによって設定された前記分割された帯域毎の直前のゲインの値と、前記直前の音響補正処理において用いられた直前のフィルタ係数とを記録するゲイン係数記録手段とを備え、入力検出手段が、前記分割された帯域のうち前記ユーザにより選択された帯域を帯域情報として検出すると共に、選択された帯域において前記ユーザにより新たに設定された新規のゲインの値を検出する入力検出ステップと、重み係数抽出手段が、前記入力検出ステップにおいて検出された帯域情報に基づいて、前記ユーザにより選択された帯域の重み係数情報を前記重み係数記録手段より抽出する重み係数抽出ステップと、差分ゲイン算出手段が、前記ゲイン係数記録手段に記録される前記直前のゲインの値のうち前記帯域情報により求められる帯域の直前のゲインの値と、前記入力検出ステップにおいて検出された前記新規のゲインの値との差を、差分ゲインとして算出する差分ゲイン算出ステップと、補正ゲイン生成手段が、前記重み係数抽出ステップにおいて抽出された前記重み係数情報と前記差分ゲイン算出ステップにおいて算出された前記差分ゲインとを乗算することにより、前記帯域情報により求められる帯域の補正ゲインを生成する補正ゲイン生成ステップと、フィルタ係数算出手段が、前記補正ゲイン生成ステップにおいて生成された前記補正ゲインを、前記ゲイン係数記録手段に記録された前記直前のフィルタ係数のうち前記帯域情報により求められる帯域に対して乗算することにより、新規のフィルタ係数を生成するフィルタ係数算出ステップとを備えることを特徴とする。
【００１４】
また、本発明に係るフィルタ生成プログラムは、オーディオ信号を高速フーリエ変換処理した後にＦＩＲフィルタを用いてフィルタ処理を施してから高速逆フーリエ変換処理を行うことにより、前記オーディオ信号に対して音響補正処理を行うための前記ＦＩＲフィルタ用のフィルタ係数を生成する機能を、フィルタ生成装置のコンピュータで実現させるフィルタ生成プログラムであって、前記フィルタ生成装置は、前記音響補正処理を行うために用いられる重み係数情報を、前記オーディオ信号の周波数帯域に基づいて複数に分割された帯域毎に記録する重み係数記録手段と、直前の音響補正処理以前にユーザによって設定された前記分割された帯域毎の直前のゲインの値と、前記直前の音響補正処理において用いられた直前のフィルタ係数とを記録するゲイン係数記録手段とを備え、前記コンピュータに、前記分割された帯域のうち前記ユーザにより選択された帯域を帯域情報として検出させると共に、選択された帯域において前記ユーザにより新たに設定された新規のゲインの値を検出させるための入力検出機能と、該入力検出機能により検出された帯域情報に基づいて、前記ユーザにより選択された帯域の重み係数情報を前記重み係数記録手段より抽出させる重み係数抽出機能と、前記ゲイン係数記録手段に記録される前記直前のゲインの値のうち前記帯域情報により求められる帯域の直前のゲインの値と、前記入力検出機能により検出された前記新規のゲインの値との差を、差分ゲインとして算出させる差分ゲイン算出機能と、前記重み係数抽出機能により抽出された前記重み係数情報と前記差分ゲイン算出機能により算出された前記差分ゲインとを乗算することにより、前記帯域情報により求められる帯域の補正ゲインを生成させる補正ゲイン生成機能と、該補正ゲイン生成機能により生成された前記補正ゲインを、前記ゲイン係数記録手段に記録された前記直前のフィルタ係数のうち前記帯域情報により求められる帯域に対して乗算することにより、新規のフィルタ係数を生成させるフィルタ係数算出機能とを実現させることを特徴とする。
【００１５】
本発明に係るフィルタ生成装置、フィルタ生成方法およびフィルタ生成プログラムによれば、重み係数情報と差分ゲインとを乗算することにより、ユーザにより選択された帯域の補正を行うための補正ゲインを求めることができる。この補正ゲインを、直前のフィルタ処理に用いられたフィルタ係数のうち、ユーザにより選択された帯域に対して乗算することにより、周波数帯域全体に係るフィルタ係数のうち、補正の対象となる周波数帯域だけを更新することが可能になり、従来のＦＩＲフィルタのように新たに全てのフィルタ係数の計算を行う必要がなくなる。従って、フィルタ係数の計算等における処理負担の軽減を図り、処理時間の短縮化、処理の迅速化を実現することが可能になる。
【００１６】
また、本発明に係るフィルタ生成装置、フィルタ生成方法およびフィルタ生成プログラムによれば、生成された新規のフィルタ係数は、オーディオ信号を高速フーリエ変換処理した後にフィルタ処理を施してから高速逆フーリエ変換処理を行うことにより、オーディオ信号に対する音響補正処理を行う場合に用いられる。このように高速フーリエ変換処理によりオーディオ信号を周波数領域に変換してフィルタ処理を施すので、フィルタ処理においてＦＩＲフィルタが適用されることになり、ＩＩＲフィルタを用いて音響補正処理を行う場合に比べて、フィルタ演算による補正処理の高精度化を図ることが可能になる。
【００１７】
また、上述したフィルタ生成装置、フィルタ生成方法およびフィルタ生成プログラムにおいて、前記重み係数情報は、前記分割された帯域の中心周波数の振幅値を最大値とし、該中心周波数から離れるに従って振幅値が減少する凸状の振幅値変化状態で設定されるものであってもよい。
【００１８】
重み係数情報を、分割された帯域の中心周波数の振幅値を最大値とし、中心周波数から離れるに従って振幅値を減少させた凸状の振幅値変化状態に設定することにより、分割された帯域の中心部分のゲインの値を確実に増減させつつ、隣接する帯域におけるゲインの値には影響を与えないようにして、ゲイン調整を行うことが可能となる。
【００１９】
また、上述したフィルタ生成装置、フィルタ生成方法およびフィルタ生成プログラムにおいて、前記重み係数情報は、周波数を対数スケールで示した場合に、前記凸状の振幅値変化状態が左右対称の形状となるものであってもよい。
【００２０】
このように、重み係数情報が、周波数を対数スケールで示した場合に、左右対称となる凸状の振幅値変化状態を示すことによって、該当する帯域における全ての周波数のゲインをバランス良く補正することが可能になる。
【００２１】
また、上述したフィルタ生成装置、フィルタ生成方法およびフィルタ生成プログラムにおいて、前記重み係数情報は、隣接する帯域の中心周波数の振幅値を０とし、隣接する帯域との境界となる周波数の振幅値を前記最大値の半分の振幅値として設定されることを特徴とするものであってもよい。
【００２２】
このように、中心周波数の振幅値を最大値とし、隣接する帯域の中心周波数の振幅値を０とし、隣接する帯域との境界となる周波数の振幅値を最大値の半分の振幅値として、凸状に連続変化した振幅値からなる重み係数情報を帯域別に設定することによって、ユーザにより選択された帯域のゲインの値が設定・変更された場合であっても、隣接する周波数帯域におけるゲイン値の影響を最小限に抑えつつ、境界部分のゲインをきっちりと増減させることができる。このため、ＩＩＲフィルタを用いてゲインの値を補正する場合のように、隣接した帯域にゲインの値による谷が生じてしまうことを防止することができると共に、ユーザが設定した周波数帯域毎のゲイン特性を精度良く再現することができ、音響補正の精度を高めることが可能となる。
【００２３】
また、上述したフィルタ生成装置、フィルタ生成方法およびフィルタ生成プログラムにおいて、前記重み係数情報は、前記凸状の振幅値変化状態として、Ｈａｎｎ窓又は三角窓に該当する減衰特性を備えるものであってもよい。
【００２４】
このように、重み係数情報が、凸状の振幅値変化状態として、Ｈａｎｎ窓又は三角窓に該当する減衰特性を備えることによって、生成されるフィルタ係数の状態を、隣接する帯域のゲイン変動の影響を抑制させつつ、全体として連続したゲイン変動を備えたフィルタ特性にすることが可能となる。
【発明の効果】
【００２５】
本発明に係るフィルタ生成装置、フィルタ生成方法およびフィルタ生成プログラムによれば、重み係数情報と差分ゲインとを乗算することにより、ユーザにより選択された帯域の補正を行うための補正ゲインを求めることができる。この補正ゲインを、直前のフィルタ処理に用いられたフィルタ係数のうち、ユーザにより選択された帯域に対して乗算することにより、周波数帯域全体に係るフィルタ係数のうち、補正の対象となる周波数帯域だけを更新することが可能になり、従来のＦＩＲフィルタのように新たに全てのフィルタ係数の計算を行う必要がなくなる。従って、フィルタ係数の計算等における処理負担の軽減を図り、処理時間の短縮化、処理の迅速化を実現することが可能になる。
【図面の簡単な説明】
【００２６】
【図１】実施の形態におけるフィルタ生成装置および音場補正装置の概略構成を示したブロック図である。
【図２】実施の形態におけるフィルタ生成装置の処理内容を示したフローチャートである。
【図３】（ａ）は、実施の形態に係る表示部の表示例を示し、（ｂ）は生成される新規のフィルタ係数の一例を示した図である。
【図４】実施の形態において用いられる重み係数情報の一例を示した図である。
【図５】実施の形態に係る新規のフィルタ係数の一例を示した図である。
【図６】（ａ）は、初期状態の表示部の表示例を示し、（ｂ）は、（ａ）の状態において生成される新規のフィルタ係数の周波数特性の一例を示している。
【図７】（ａ）は、４００Ｈｚのゲインが１０ｄＢに設定された場合の表示部の表示例を示し、（ｂ）は、（ａ）の状態において生成される新規のフィルタ係数の周波数特性の一例を示している。
【図８】（ａ）は、４００Ｈｚのゲインが−１０ｄＢに設定された場合の表示部の表示例を示し、（ｂ）は、（ａ）の状態において生成される新規のフィルタ係数の周波数特性の一例を示している。
【発明を実施するための形態】
【００２７】
以下、本発明に係るフィルタ生成装置の一例を、図面を用いて詳細に説明する。図１は、実施の形態に係るフィルタ生成装置１００と、音場補正装置２００との概略構成を示している。フィルタ生成装置１００は、ユーザが選択した帯域のゲインを補正するためのフィルタ係数（ＦＩＲフィルタ）を生成する役割を有している。また、音場補正装置２００は、フィルタ生成装置１００により生成されたフィルタ係数を用いて、オーディオ信号に対し音響補正処理を行う役割を有している。
【００２８】
［音場補正装置］
まず、音場補正装置２００の構成について説明する。音場補正装置２００は、ＦＦＴ（高速フーリエ変換、短時間フーリエ変換）部２１０と、周波数フィルタ部２２０と、フィルタ係数用メモリ２３０と、ＩＦＦＴ（Inverse FFT：高速逆フーリエ変換、短時間逆フーリエ変換）部２４０とを有している。
【００２９】
［ＦＦＴ部］
ＦＦＴ部２１０は、まず、図示を省略した音源より入力されたオーディオ信号を、サンプリングして離散時間信号に変換し、離散時間信号をフーリエ変換する処理を行う。より詳細に説明すると、ＦＦＴ部２１０は、オーディオ信号に対するオーバーラップ処理と窓関数により重み付けとを行った後に、短時間フーリエ変換処理を行うことによって、オーディオ信号を時間領域から周波数領域に変換し、実数と虚数の周波数スペクトル信号を出力する。本実施の形態では、一例として、サンプリング周波数は９６ｋＨｚ、フーリエ変換長は１６，３８４サンプル、オーバーラップ長は１２，２８８サンプル、窓関数はハニング窓とし、４，０９６サンプルずつ時間シフトしながら短時間フーリエ変換を行うものとする。この場合、１６，３８４ポイントの周波数スペクトル信号が得られる。ここで、ＦＦＴ部２１０は、１６，３８４ポイントのうち、０Ｈｚから４８ｋＨｚまでのナイキスト周波数による８，１９３ポイントの周波数スペクトル信号を出力する。
【００３０】
［フィルタ係数用メモリ］
フィルタ係数用メモリ２３０には、フィルタ生成装置１００によって生成されたフィルタ係数（新規のフィルタ係数）が記録される。より詳細には、後述するゲイン係数生成部１４０によって生成された新規のフィルタ係数が、フィルタ係数用メモリ２３０に記録され、周波数フィルタ部２２０において読み出し可能な状態になる。フィルタ係数用メモリ２３０に記録されたフィルタ係数（新規のフィルタ係数）は、ＦＦＴ部２１０より出力される周波数スペクトル信号の全帯域に対応するフィルタ用のフィルタ係数として記録される。このため、フィルタ係数用メモリ２３０に記録されたフィルタ係数を周波数フィルタ部２２０が読み出して、周波数フィルタ部２２０でフィルタ処理を行うことにより、ＦＩＲフィルタによるフィルタ処理を実行することが可能になる。なお、フィルタ係数用メモリ２３０に記録されるフィルタ係数は、ゲイン係数生成部１４０により、一定時間毎に更新される。
【００３１】
［周波数フィルタ部］
周波数フィルタ部２２０は、フィルタ係数用メモリ２３０に記録されたフィルタ係数（新規のフィルタ係数）に基づいて、周波数スペクトル信号の重み付けを行う役割を有している。周波数フィルタ部２２０は、まず、ＦＦＴ部２１０より出力された周波数スペクトル信号と、フィルタ係数用メモリ２３０に記録されたフィルタ係数とを乗算することによって、周波数領域でのフィルタ処理（フィルタリング）を行う。このフィルタ処理によって、重み付けされた周波数スペクトル信号が、周波数フィルタ部２２０より出力されることになる。
【００３２】
［ＩＦＦＴ部］
ＩＦＦＴ部２４０は、重み付けされた周波数スペクトル信号を、時間領域におけるオーディオ信号へ変換する役割を有している。ＩＦＦＴ部２４０は、重み付けされた周波数スペクトル信号に対して、短時間逆フーリエ変換処理を施すことによって、周波数スペクトル信号を、周波数領域から時間領域へ変換する。さらに、ＩＦＦＴ部２４０は、窓関数による重み付け処理とオーバーラップ加算処理とを行うことにより、周波数スペクトル信号をオーディオ信号に変換する。ＩＦＦＴ部２４０より出力されるオーディオ信号は、周波数フィルタ部２２０におけるフィルタ処理によって、周波数帯域のゲイン補正が行われた（周波数特性の補正が行われた）、オーディオ信号となる。ＩＦＦＴ部２４０より出力されたオーディオ信号は、図示を省略したスピーカ等より出力される。
【００３３】
［フィルタ生成装置］
次に、フィルタ生成装置１００の構成について説明する。フィルタ生成装置１００は、図１に示すように、周波数−ゲイン設定部（入力検出手段）１１０と、重み係数選択部（重み係数抽出手段）１２０と、重み係数用メモリ（重み係数記録手段）１３０と、ゲイン係数生成部（差分ゲイン算出手段、補正ゲイン生成手段、フィルタ係数算出手段）１４０と、ゲイン係数用メモリ（ゲイン係数記録手段）１５０とを有している。また、フィルタ生成装置１００における各機能部（周波数−ゲイン設定部１１０、重み係数選択部１２０およびゲイン係数生成部１４０）は、図２に示すフローチャートに従って、フィルタ係数の生成処理を行う。
【００３４】
［周波数−ゲイン設定部］
周波数−ゲイン設定部１１０には、表示部１１２と操作部１１３とが設けられている。表示部１１２には、例えば、図３（ａ）に示すように、複数の帯域に区分けされた周波数［Ｈｚ］が横軸に示され、各帯域において設定されるゲイン［ｄＢ］が縦軸に示されている。より詳細に説明すると、図３（ａ）の横軸には、３０Ｈｚから４０ｋＨｚまで１／３オクターブ毎に３２個に分割された周波数帯域が示されている。また、図３（ａ）の縦軸には、調整可能なゲインの調整範囲が示されている。図３（ａ）の場合には、調整範囲として±２０ｄＢまで表示させることが可能になっている。
【００３５】
操作部１１３は、左右ボタン１１４と、上下ボタン１１５とを備えている。ユーザは、左右ボタン１１４を操作することにより、３２個に分割された周波数帯域のいずれかの帯域を選択することが可能になっている。ユーザによって左右ボタン１１４の操作が行われると、選択対象となる帯域（表示部１１２において、例えば、該当する帯域におけるゲインのバー表示がフォーカスされる）が、隣接する他の帯域に移動される（フォーカスされたバー表示が隣接する帯域に移動される）ことになる。また、ユーザは、上下ボタン１１５を操作することによって、フォーカスされた帯域のゲインの値を変更することが可能となっている。上下ボタン１１５が押下されると、ボタンの押下に応じてゲインのバーの長さが変更される。ユーザは、表示部１１２の設定画面を見ながら、操作部１１３を操作して、所望の周波数帯域のゲインを設定・変更することによって、該当する帯域の周波数特性を変化させることができる。
【００３６】
なお、本実施の形態では、操作部１１３として、左右ボタン１１４と上下ボタン１１５とが設けられる場合について説明するが、例えば、表示部１１２および操作部１１３として、タッチパネルを用いることも可能である。タッチパネルを用いることにより、周波数帯域の選択とゲインの設定・変更を、表示画面を見ながらタッチ操作によって行うことが可能になる。
【００３７】
周波数−ゲイン設定部１１０は、操作部１１３がユーザにより操作されて、新たに周波数帯域の選択とゲインの設定・変更とが行われたか否かを判断する（図２のステップＳ．１）。周波数帯域の選択とゲインの設定・変更とが行われなかったと判断した場合（図２のステップＳ．１においてＮｏの場合）、周波数−ゲイン設定部１１０は、操作部１１３の操作内容に基づいて、新たに周波数帯域の選択とゲインの設定・変更とが行われたか否かを、繰り返し判断する。なお、周波数−ゲイン設定部１１０は、新たに周波数帯域の選択とゲインの設定・変更とが行われたか否かの判断を、一定時間毎に（所定時間の間隔サイクルで）行うものであってもよい。例えば、０．１秒ごとに判断を行う構成にすることによって、操作部１１３による円滑な操作を妨げることなく、迅速に設定・変更操作を検出することが可能になる。
【００３８】
周波数帯域の選択とゲインの設定・変更とが行われたと判断した場合（図２のステップＳ．１においてＹｅｓの場合）、周波数−ゲイン設定部１１０は、選択された周波数帯域と、設定された新規のゲインの値とを検出する（図２のステップＳ．２：入力検出ステップ、入力検出機能）。その後、周波数−ゲイン設定部１１０は、検出された帯域情報（周波数帯域の情報）を、重み係数選択部１２０に出力し、設定された新規のゲインの値をゲイン係数生成部１４０に出力する（図２のステップＳ．３）。
【００３９】
［重み係数選択部］
重み係数選択部１２０は、周波数―ゲイン設定部１１０より受信した帯域情報に基づいて、重み係数用メモリ１３０より該当する帯域情報の重み係数情報を読み出す役割（図２のステップＳ．４：重み係数抽出ステップ、重み係数抽出機能）を有している。帯域情報および読み出された重み係数情報は、重み係数選択部１２０によって、ゲイン係数生成部１４０へと出力される（図２のステップＳ．５）。
【００４０】
［重み係数用メモリ］
重み係数用メモリ１３０には、周波数−ゲイン設定部１１０の表示部１１２に分割表示された３２個の周波数帯域のそれぞれに対応する重み係数情報が記録されている。図４（ａ）は、重み係数用メモリ１３０に記録された４００Ｈｚを中心周波数とする帯域の重み係数情報の一例を示し、図４（ｂ）は、３１．５ｋＨｚを中心周波数とする帯域の重み係数情報の一例を示している。重み係数情報は、周波数帯域毎に予め設定された情報であって、図４（ａ）（ｂ）に示すように、周波数ポイント（図４（ａ）（ｂ）の横軸の値）における中心周波数の振幅値（図４（ａ）（ｂ）の縦軸の値）を１とし、中心周波数から離れるに従って、連続的に振幅値が減少するように設定されている。本実施の形態では、図４（ａ）（ｂ）に示すように、Ｈａｎｎ窓の減衰カーブにより重み係数情報の振幅値が設定されている。
【００４１】
なお、図４（ａ）（ｂ）における横軸の数値（周波数ポイント）は、帯域毎のフィルタ係数の数量に相当している。図４（ａ）の場合において、３１５Ｈｚから５００Ｈｚまでの周波数に対応する横軸の数値は、３１個のフィルタ係数の数量に相当する。また、図４（ｂ）の場合において、２５ｋＨｚから４０ｋＨｚまでの周波数に対応する横軸の数値は、２，５６０個のフィルタ係数の数量に相当する。さらに、図４（ａ）（ｂ）に示す重み係数情報のグラフは、リニアスケールで示されているため、横軸において略凸状のグラフの左右が非対称となって示されているが、対数スケールにおいてグラフ化する場合には、左右対称の形状になる。このように、重み係数情報が、周波数を対数スケールで示した場合に、左右対称となる凸状の振幅値変化状態を示すことによって、ユーザにより選択された帯域における全ての周波数のゲインをバランス良く補正することが可能になる。
【００４２】
また、重み係数情報において、最も値が大きな周波数（周波数ポイント）の振幅値と、最も値が小さな周波数（周波数ポイント）の振幅値とは、共に振幅値が０になっている。この振幅値が０となる周波数（周波数ポイント）は、それぞれ、ユーザにより選択された帯域に隣接する帯域の中心周波数となっている。さらに、重み係数情報において、ユーザにより選択された帯域と隣の帯域との境界になる周波数の振幅値は、０．５に設定されている。
【００４３】
より詳細に説明すると、既に説明したように、補正の対象となる周波数の範囲は、１／３オクターブ毎に３２個の帯域に分割されている。例えば、４００Ｈｚを中心周波数とする帯域に隣接する帯域は、中心周波数を３１５Ｈｚとする帯域と、中心周波数が５００Ｈｚとなる帯域である。ここで、図４（a）に示すような、中心周波数が４００Ｈｚの帯域における重み係数情報において、振幅値が０となるように設定されている周波数は３１５Ｈｚと５００Ｈｚとである。この３１５Ｈｚは、中心周波数が４００Ｈｚの帯域に対して、周波数の値が小さい方の隣の帯域の中心周波数に該当している。また、５００Ｈｚは、周波数の値が大きい方の隣の帯域の中心周波数に該当している。
【００４４】
同様に、図４（ｂ）に示すような、中心周波数が３１．５kＨｚの帯域における重み係数情報において、振幅値が０となるように設定されている周波数は２５ｋＨｚと４０ｋＨｚである。２５ｋＨｚは、中心周波数が３１．５ｋＨｚの帯域に対して、周波数の値が小さい方の隣の帯域の中心周波数に該当している。また、４０ｋＨｚは、周波数の値が大きい方の隣の帯域の中心周波数に該当している。
【００４５】
さらに、図４（ａ）において、中心周波数が４００Ｈｚの帯域と中心周波数が３１５Ｈｚの帯域との境界になる周波数の振幅値は、０．５に設定されている。同様に、中心周波数が４００Ｈｚの帯域と中心周波数が５００Ｈｚの帯域との境界になる周波数の振幅値は、０．５に設定されている。また、図４（ｂ）において、中心周波数が３１．５ｋＨｚの帯域と中心周波数が２５kＨｚの帯域との境界になる周波数の振幅値は、０．５に設定されている。同様に、中心周波数が３１．５ｋＨｚの帯域と中心周波数が４０kＨｚの帯域との境界になる周波数の振幅値は、０．５に設定されている。
【００４６】
このように、中心周波数の振幅値を１とし、境界になる周波数の振幅値を０．５とし、略凸状に連続変化した振幅値を周波数に応じて設定することにより、ユーザによって３２個に分割された帯域のいずれかのゲインが増減された場合に、増減された帯域の中心周波数のゲイン値を確実に増減させつつ、増減された帯域の境界のゲイン値も違和感が生じないように連動させて変更させることができる。さらに、隣接する帯域の中心周波数の振幅値を０にすることによって、増減された帯域に隣接する帯域における中心周波数のゲイン値に影響を及ぼすことなく、増減された帯域のゲイン値を変更することが可能となる。
【００４７】
［ゲイン係数生成部・ゲイン係数用メモリ］
ゲイン係数生成部１４０は、ユーザにより選択された周波数帯域において、新規に更新されたゲイン（新規のゲイン）の値と、更新される直前のゲインの値とのゲインの差を差分ゲインとして求める役割を有している。ゲイン係数用メモリ１５０は、周波数−ゲイン設定部１１０において新しいゲインの値が検出される前の検出処理において検出されていた、分割された帯域毎のゲインの値を、直前のゲインの値として記録する役割を有している。つまり、ゲイン係数用メモリ１５０は、直前の音響補正処理以前にユーザによって設定された分割された帯域毎のゲインの値を、直前のゲインの値として記録する。また、ゲイン係数用メモリ１５０は、直前の音響補正処理において、周波数フィルタ部２２０で用いられたフィルタ係数（つまり、フィルタ係数用メモリ２３０に記録されたフィルタ係数と同じフィルタ係数）を、直前のフィルタ係数として記録する。
【００４８】
ゲイン係数生成部１４０は、重み係数選択部１２０より受信した帯域情報に基づいて、ユーザにより選択された周波数帯域の判断を行う。また、ゲイン係数生成部１４０は、周波数−ゲイン設定部１１０より受信した新規のゲインの値に基づいて、ユーザにより設定されたゲインの値を判断する。その後、ゲイン係数生成部１４０は、ゲイン係数用メモリ１５０に記録された帯域毎のゲインの値の中から、帯域情報により求められる周波数帯域に該当するゲインの値を、「直前のゲインの値」としてゲイン係数用メモリ１５０から読み出す（図２のステップＳ．６）。そして、ゲイン係数生成部１４０は、ユーザにより設定された「新規のゲインの値」と、ゲイン係数用メモリ１５０から読み出した「直前のゲインの値」との差を差分ゲインとして求める（図２のステップＳ．７：差分ゲイン算出ステップ、差分ゲイン算出機能）。
【００４９】
その後、ゲイン係数生成部１４０は、周波数−ゲイン設定部１１０より取得した新規のゲインの値を、帯域情報から求められた帯域における「新規のゲインの値」として、ゲイン係数用メモリ１５０に記録させる（図２のステップＳ．８）。ゲイン係数用メモリ１５０に記録された「新規のゲインの値」は、新たに操作部１１３による操作が検出されて、周波数帯域の選択とゲインの設定・変更とが行われたと判断された（図２のステップＳ．１）後の処理であって、ゲイン係数用メモリ１５０からゲインの値が新たに読み出される場合（図２のステップＳ．６）の「直前のゲインの値」として利用される。
【００５０】
そして、ゲイン係数生成部１４０は、重み係数選択部１２０より読み出された重み係数情報と、差分ゲインとの乗算処理を行った後に、乗算処理された値をデシベルからリニアに変換する（図２のステップＳ．９：補正ゲイン生成ステップ、補正ゲイン生成機能）。その後、ゲイン係数生成部１４０は、ゲイン係数用メモリ１５０より直前のフィルタ係数を読み出して（図２のステップＳ．１０）、重み係数情報が乗算された差分ゲイン（補正ゲイン）を、直前のフィルタ係数（ゲイン係数用メモリ１５０に記録されたフィルタ係数であって、直前の音響補正処理（周波数フィルタ部２２０によるフィルタ処理）で用いられたフィルタ係数）に乗算する処理を行う（図２のステップＳ．１１：フィルタ係数算出ステップ、フィルタ係数算出機能）。
【００５１】
ここで、重み係数情報が乗算された差分ゲイン（補正ゲイン）は、帯域情報により求められた帯域に対する補正用のゲインである。このため、直前のフィルタ係数のうち帯域情報により求められる帯域に対してのみ補正ゲインが乗算される。この乗算処理によって求められる新規のフィルタ係数は、ユーザよるゲイン変更の結果を反映させたフィルタ係数になる。なお、差分ゲインが０ｄＢの場合には、重み係数情報が乗算された差分ゲインを直前のフィルタ係数に乗算する処理は行われない。その後、ゲイン係数生成部１４０は、求められたフィルタ係数（新規のフィルタ係数）を、フィルタ係数用メモリ２３０と、ゲイン係数用メモリ１５０とに記録させる（図２のステップＳ．１２）。
【００５２】
一例を挙げて、より具体的に説明すると、本実施の形態におけるフィルタ係数は周波数スペクトル信号と同様に８，１９３ポイントある。また、初期状態、すなわち補正なしの状態のフィルタ係数は全て１（リニアで１であり、デシベルでは０ｄＢ）となり、各帯域におけるゲインの値は０ｄＢとなる。このフィルタ係数が、直前のフィルタ係数としてゲイン係数用メモリ１５０に記録され、このゲインの値が、直前のゲインの値として帯域毎にゲイン係数用メモリ１５０に記録される。
【００５３】
この状態で、ユーザが周波数−ゲイン設定部１１０の操作部１１３を操作して、４００Ｈｚ帯のゲインを１０ｄＢに設定すると、直前のゲインの値である０ｄＢと、更新された新規のゲインの値である１０ｄＢとの差（差分ゲイン）は、１０ｄＢとなる。ゲイン係数生成部１４０は、図４（ａ）に示す重み係数情報と、差分ゲイン１０ｄＢとを乗算（重み係数情報を１０倍）した後に、デシベルからリニアに変換する。そして、ゲイン係数生成部１４０は、ゲイン係数用メモリ１５０に記録されている直前のフィルタ係数（初期状態・補正なし状態のフィルタ係数）を読み出して、読み出された直前のフィルタ係数に対して、重み係数情報に差分ゲインが乗算されかつリニアに変換された乗算結果（補正ゲイン）を乗算することにより、新規のフィルタ係数を生成する。
【００５４】
なお、図４（ａ）に示すように、中心周波数を４００Ｈｚとする帯域の重み係数情報の周波数範囲は、３１５Ｈｚ〜５００Ｈｚの範囲である。このため、読み出された直前のフィルタ係数のうち、乗算処理により直前のフィルタ係数において補正が行われる周波数帯域は、３１５Ｈｚ〜５００Ｈｚの範囲のみとなり、他の帯域に関しては、影響を生じない。図５（ａ）は、乗算処理により補正が行われたフィルタ係数（新規のフィルタ係数）であって、上述した８，１９３ポイント（周波数ポイント）のうち、０Ｈｚ〜８７９Ｈｚの周波数範囲に該当する１５０ポイント（周波数ポイント）だけを抽出して示したものである。上述したように、ゲイン係数生成部１４０において、差分ゲイン１０ｄＢによりフィルタ係数が１０倍されているが、リニア変換等によって、フィルタ係数の値は、約３．２程度の値となる。
【００５５】
このように、ゲイン係数生成部１４０では、予め重み係数用メモリ１３０に記録された周波数帯域毎の重み係数情報と差分ゲインとの乗算結果（補正ゲイン）を用いて、ゲイン係数用メモリ１５０に記録された直前のフィルタ係数のうち、ユーザにより選択された周波数帯域のみに乗算処理が行われて、新規なフィルタ係数の生成処理が行われる。つまり、ゲイン係数生成部１４０では、ユーザに設定された帯域に対してのみ補正ゲインによる補正処理（乗算処理）が行われて、ＦＩＲフィルタのフィルタ係数（直前のフィルタ係数）が更新される。このため、フィルタ生成装置１００では、新規のフィルタ係数の生成等に必要とされる処理負荷を低減させ、処理時間の効果的な短縮を実現することが可能になる。その後、ゲイン係数生成部１４０は、３１５Ｈｚ〜５００Ｈｚの範囲のみ補正されたフィルタ係数を新規なフィルタ係数として、ゲイン係数用メモリ１５０とフィルタ係数用メモリ２３０に記録させる。
【００５６】
次に、上述したように４００Ｈｚ帯のゲインを１０ｄＢに設定した後に、さらに、ユーザがゲインを−１０ｄＢに変更した場合について説明する。新しく設定したゲインの値（新規のゲインの値）−１０ｄＢと、前の処理において設定されたゲインの値（直前のゲインの値）１０ｄＢとの差分ゲインは、−２０ｄＢとなる。この場合、ゲイン係数生成部１４０は、図４（ａ）に示す重み係数情報と、差分ゲイン−２０ｄＢとを乗算（重み係数情報を−２０倍）した後に、デシベルからリニアに変換する。そして、ゲイン係数生成部１４０は、ゲイン係数用メモリ１５０に記録されている直前のフィルタ係数（上述したように、３１５Ｈｚ〜５００Ｈｚの範囲のみ補正されたフィルタ係数）を読み出して、重み係数情報に差分ゲイン−２０ｄＢが乗算され、かつリニアに変換された乗算結果（補正ゲイン）を、読み出した直前のフィルタ係数に乗算することにより、新規のフィルタ係数を生成する。
【００５７】
図５（ｂ）は、−２０ｄＢの差分ゲインに基づいて補正が行われた新規のフィルタ係数であって、上述した８，１９３ポイントのうち、０Ｈｚ〜８７９Ｈｚの周波数範囲に該当する１５０ポイントだけを抽出して示したものである。図５（ｂ）に示す新規のフィルタ係数は、ゲイン係数生成部１４０によって、フィルタ係数が−２０倍されることによって求められるが、ゲイン係数用メモリ１５０に記録されている直前のフィルタ係数が、図５（ａ）に示すようにプラスの値であることや、−２０倍された後にリニア変換等されるので、新規のフィルタ係数の値は、約０．３程度になっている。このようにして新規のフィルタ係数を算出することによって、フィルタ生成装置１００において、ＦＩＲフィルタの生成に必要とされる計算の処理負荷を低減させることができ、処理時間を効果的に短縮することが可能になる。
【００５８】
図６（ａ）（ｂ）、図７（ａ）（ｂ）および図８（ａ）（ｂ）は、表示部１１２において全くゲイン設定が行われていない初期状態（図６）から、ユーザによる操作部１１３の操作により４００Ｈｚ帯のゲインが１０ｄＢに設定された時の状態（図７）と、その後に、４００Ｈｚ帯のゲインが−１０ｄＢに変更された状態（図８）とを示した、表示部１１２の表示（図６（ａ）、図７（ａ）および図８（ａ））と、それぞれのフィルタ係数の周波数特性（図６（ｂ）、図７（ｂ）および図８（ｂ））とを示している。
【００５９】
図６（ａ）に示すように、表示部１１２においてゲインの設定が０ｄＢの状態の場合、どの周波数帯域もゲイン補正が行われていない。このため、ゲイン係数生成部１４０において算出される新規のフィルタ係数は、図６（ｂ）に示すように、全ての周波数帯域で０ｄＢ（リニアで１）となる。つまり、音源から出力される音響信号は、全くゲイン補正が行われることなくスピーカ等から出力されることになる。
【００６０】
このように全くゲイン補正が行われていない状態から、ユーザが、図７（ａ）に示すように、４００Ｈｚ帯のゲインを１０ｄＢに設定すると、図７（ｂ）に示すように、新規のフィルタ係数が変化して、４００Ｈｚのゲインが１０ｄＢに増加することになる。ここで、図６（ｂ）、図７（ｂ）および図８（ｂ）に示すフィルタ係数のグラフでは、横軸が周波数［Ｈｚ］で示された対数スケールとなっており、縦軸がデシベルスケールとなっている。フィルタ係数の横軸を対数スケールで示す場合には、フィルタ係数のグラフが、４００Ｈｚを中心として左右対称の形状になる。このフィルタ形状は、重み係数用メモリ１３０に記録される重み係数情報の特性、本実施の形態ではＨａｎｎ窓の特性に対応している。図８（ａ）に示すように、４００Ｈｚ帯のゲインを−１０ｄＢに設定すると、図８（ｂ）に示すように、新規のフィルタ係数が変化して、４００Ｈｚのゲインが−１０ｄＢに減少するが、このフィルタ形状も、重み係数情報の特性であるＨａｎｎ窓の特性に対応した形状となる。
【００６１】
また、ユーザが操作部１１３を操作することにより、図３（ａ）に示すように、任意に周波数毎のゲインを設定すると、ゲイン係数生成部１４０では、図３（ｂ）に示すような新規のフィルタ特性が算出される。ユーザが操作部１１３を操作して、図３（ａ）に示すように周波数毎のゲインを連続的に変化させた場合であっても、ゲイン係数生成部１４０では、図３（ｂ）に示すように、設定されたゲインに対応するような新規のフィルタ係数を算出することが可能になる。この図３（ａ）（ｂ）から明らかなように、フィルタ生成装置１００によれば、複数の周波数帯域のゲインを任意に設定した場合において、ゲインの設定を行った周波数帯域に隣接する帯域のゲインの影響を最小限に抑えることができる。これは、重み係数用メモリ１３０に記録される、３２個のそれぞれの周波数帯域毎の重み係数情報が、図４（ａ）（ｂ）に示すように、中心周波数の振幅値を１とし、境界となる周波数の振幅値を０．５とし、隣接する帯域の中心周波数の振幅値を０として、略凸状に連続変化した振幅値を周波数に応じて設定したものとなっているからである。
【００６２】
このようにして重み係数情報を設定することによって、帯域の中心部分のゲインの値を確実に増減させつつ、隣接する左右の帯域のゲインの値には、変動されたゲインの影響を与えることなく調整を行うことが可能となる。さらに境界となる周波数の振幅値が０．５であるため、境界のゲインの変動状態を帯域の中心部分のゲインの変動状態に対応させつつ、隣接する帯域のゲインの変動状態を考慮して変更させることができる。このため、周波数帯域毎に異なるゲインが設定されても、境界におけるゲインの変化状態を違和感のない状態に調整することが可能になる。これより、図３（ａ）に示すように、複数の周波数帯域のゲインをそれぞれ別々に設定しても、隣接する周波数帯域の影響はほとんどなく、それぞれ独立にゲインの値を調整することが可能になる。
【００６３】
なお、本実施の形態では、重み係数用メモリ１３０に記録される重み係数情報が、Ｈａｎｎ窓の減衰カーブに基づく形状で設定されているが、重み係数情報の減衰カーブは、Ｈａｎｎ窓の減衰カーブだけには限定されない。例えば、三角窓の減衰カーブを用いることにより、図７（ｂ）または図８（ｂ）に示したようなＨａｎｎ窓のフィルタ特性を、三角窓のフィルタ特性へと変更することが可能である。このように重み係数情報を適宜選択する場合であっても、中心周波数の振幅値を１とし、境界となる周波数の振幅値を０．５とし、隣接する帯域の中心周波数の振幅値を０として、略凸状に連続変化した振幅値を周波数に応じて設定したものであるならば、生成されるフィルタ係数の状態を、隣接する帯域のゲイン変動の影響を抑制させつつ、全体として連続したゲイン変動を備えたフィルタ特性へと変更することが可能である。また、このように重み係数情報を適宜選択することにより、ベースとなるフィルタ特性を変更することが可能である。
【００６４】
以上説明したように、本実施の形態に係るフィルタ生成装置１００では、重み係数用メモリ１３０に記録されるユーザの選択した帯域の重み係数情報と、ユーザが設定したゲインの値に基づく差分ゲインとの乗算処理により、フィルタ係数における帯域別の補正ゲイン（重み係数情報が乗算された差分ゲイン）を算出する。そして、算出された補正ゲインを直前のフィルタ係数に乗算することによって、ユーザの設定に応じたＦＩＲフィルタのフィルタ係数（新しいフィルタ係数）を生成することが可能になる。このため、音場補正装置２００において、ユーザの設定に基づいて算出されたＦＩＲフィルタを用いてフィルタ処理することができ、音響補正処理におけるフィルタ演算の高精度化を図ることが可能となる。
【００６５】
また、帯域別の重み係数情報と差分ゲインとの乗算により、帯域別に補正ゲインを算出することができ、この補正ゲインを直前のフィルタ係数に乗算することによって、簡単に、ＦＩＲフィルタのフィルタ係数（新しいフィルタ係数）を生成することができる。このため、ＦＩＲフィルタを生成（計算）するための処理負担の軽減を図ることができ、また処理時間の大幅な低減を図ることが可能となる。
【００６６】
また、フィルタ生成装置１００では、中心周波数の振幅値を１とし、境界となる周波数の振幅値を０．５とし、隣接する帯域の中心周波数の振幅値を０として、略凸状に連続変化した振幅値からなる重み係数情報を帯域別に設定し、この重み係数情報とユーザの設定したゲインに基づく差分ゲインとに基づいて、新規のフィルタ係数を算出する。このため、特定の周波数帯域のゲインを設定・変更しても、隣接する周波数帯域におけるゲイン値の影響を最小限に抑えることが可能となり、ＩＩＲフィルタを用いた場合のように、隣接した帯域にゲインの値による谷が生じてしまうことを防止することができる。従って、ユーザが設定した周波数帯域毎のゲイン特性を、新規のフィルタ係数により精度良く再現することができ、精度の良い音響補正を実現すること可能となる。
【００６７】
以上、本発明に係るフィルタ生成装置の一例として、実施の形態におけるフィルタ生成装置１００を示して説明を行った。しかしながら、本発明に係るフィルタ生成装置は、実施の形態で説明した例には限定されない。当業者であれば、特許請求の範囲に記載された範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、同一の構成から同様の効果等を奏するものであれば、それらについても本発明の技術的範囲に属するもの判断することが可能である。
【００６８】
例えば、フィルタ生成装置１００における構成を、図１に示すように、ＣＰＵ３００と、メモリ３１０と、表示部１１２と、操作部１１３とにより構成されるものと考えることも可能である。この場合、ＣＰＵ３００の処理内容を示したプログラムを、メモリ３１０に記録させ、ＣＰＵ３００がメモリ３１０よりプログラムを読み出して実行することにより、ＣＰＵ３００が、重み係数選択部１２０、ゲイン係数生成部１４０および周波数−ゲイン設定部１１０の機能を実現する構成にすることも可能である。メモリ３１０が、重み係数用メモリ１３０およびゲイン係数用メモリ１５０として機能することにより、ＣＰＵ３００、メモリ３１０、表示部１１２および操作部１１３によって、実質的に、実施の形態に示したフィルタ生成装置１００の構成と同じ処理を実現するものと判断することが可能である。
【００６９】
このようにＣＰＵ３００がプログラムに基づいて処理を進める場合には、図２に示した処理は、ＣＰＵ３００が実行した処理内容そのものを示すものとなる。この場合には、図２に示すフローチャートが、実施の形態に示す機能をＣＰＵ３００で実現させるためのプログラムの処理内容に該当することになると共に、ＣＰＵ３００における処理方法を示すことになる。このため、実施の形態に係るフィルタ生成装置１００の構成およびその処理内容は、本発明に係るフィルタ生成方法およびフィルタ生成プログラムの一例を示すことにもなる。
【００７０】
また、実施の形態では、フィルタ生成装置１００の周波数−ゲイン設定部１１０として、タッチパネル等を用いることが可能である旨の説明を行った。今日では、スマートフォンやタブレット端末等のように、タッチパネル操作により操作が行われる情報端末が多く存在する。このため、例えば、フィルタ生成装置１００における、周波数−ゲイン設定部１１０、重み係数選択部１２０およびゲイン係数生成部１４０における処理を、スマートフォンやタブレット端末等におけるＣＰＵの処理により実現し、また、重み係数用メモリ１３０やゲイン係数用メモリ１５０に示したメモリを、スマートフォンやタブレット端末等におけるメモリとして利用することによって、フィルタ生成装置１００で説明した機能を、容易に、スマートフォンやタブレット端末等で実現することが可能となる。
【００７１】
このため、スマートフォンやタブレット端末等において新しいフィルタ係数を算出した後に、ネットワーク（例えば、Ｗｉ−Ｆｉ（Wireless Fidelity）やＢｌｕｅｔｏｏｔｈ（登録商標））を利用して、音場補正装置２００のフィルタ係数用メモリ２３０に、フィルタ係数を伝達・記録させることにより、音場補正装置２００が、スマートフォンやタブレット端末等とは異なる車載用オーディオシステム等である場合であっても、実施の形態において説明した機能・効果を容易に奏することが可能となる。一方で、フィルタ生成装置１００と音場補正装置２００とを、車載用オーディオシステム等において、一体に構成することも可能であり、この場合であっても、実施の形態において説明した機能・効果を容易に奏することが可能となる。
【００７２】
また、実施の形態では、重み係数用メモリ１３０に記録される重み係数情報として、中心周波数の振幅値を１とし、境界となる周波数の振幅値を０．５とし、隣接する帯域の中心周波数の振幅値を０として、略凸状に連続変化した振幅値を周波数に応じて設定する場合について説明したが、必ずしも、重み係数情報は、このような形状（データ状態）には限定されない。
【００７３】
例えば、帯域幅の全ての振幅値が１である場合であっても、帯域分割毎の重み係数情報と差分ゲインとに基づいて新規フィルタ係数を算出することにより、ＦＩＲフィルタを生成することが可能であるため、ＦＩＲフィルタを生成（計算）するための処理負担の軽減を図ることができ、また処理時間の大幅な低減を図ることが可能となる。この場合には、生成された新規フィルタ係数の周波数変化に粗さが表れるかもしれないが、帯域分割の区分数等の調整によって、粗さを低減等させることも可能である。
【００７４】
また、重み係数情報として、周波数に応じて略凸状に連続変化した振幅値を設定する場合であっても、必ずしも、中心周波数の振幅値を１とし、境界となる周波数の振幅値を０．５とし、隣接する帯域の中心周波数の振幅値を０とする振幅値の設定には限定されない。例えば、隣接する帯域の中心周波数ではなく、隣接する帯域であって、ユーザにより選択された帯域により近い周波数で、振幅値を０とするものであってもよい。このように、略凸状となる山形状の周波数幅が狭くなる場合であっても、重み係数情報が略凸状に連続変化した振幅値で形成される場合には、隣接する周波数帯域のゲイン値の影響を最小限に抑えた新規のフィルタ係数を生成することが可能となる。このため、ＩＩＲフィルタを用いた場合のように、隣接した帯域にゲインの値による谷が生じてしまうことを防止することが可能となる。
【００７５】
また、実施の形態では、周波数−ゲイン設定部１１０において検出された帯域情報が、重み係数選択部１２０を介してゲイン係数生成部１４０に伝達される構成について説明したが、帯域情報は必ずしも、重み係数選択部１２０を介してゲイン係数生成部１４０に伝達される構成には限定されない。新規のゲインの値のように、周波数−ゲイン設定部１１０からゲイン係数生成部１４０へと直接伝達される構成にすることも可能である。さらに、周波数−ゲイン設定部１１０において検出された新規のゲインの値に関しても同様に、フィルタ生成装置１００からゲイン係数生成部１４０へと直接伝達されるのではなく、重み係数選択部１２０を介してゲイン係数生成部１４０に伝達される構成にすることが可能である。
【００７６】
また、実施の形態では、周波数−ゲイン設定部１１０が、「操作部１１３がユーザにより操作されて、新たに周波数帯域の選択とゲインの設定・変更とが行われたか否かを判断する処理（図２のステップＳ．１）」を一例として示して説明を行った。また、周波数−ゲイン設定部１１０による、「新たに周波数帯域の選択とゲインの設定・変更とが行われたか否かの判断」を、一定時間毎に（所定時間の間隔サイクルで）行うものであってもよいとして説明を行った。しかしながら、一定時間毎に繰り返される処理は、必ずしも周波数−ゲイン設定部１１０における「新たに周波数帯域の選択とゲインの設定・変更とが行われたか否かを判断する処理（図２のステップＳ．１）」だけに限定されず、重み係数選択部１２０やゲイン係数生成部１４０等による一連の処理を、一定時間毎に繰り返し実行するものであってもよい。
【００７７】
例えば、図２に示した各機能部（周波数−ゲイン設定部１１０、重み係数選択部１２０およびゲイン係数生成部１４０）による処理が、一定時間毎に繰り返し実行される場合、図２に示される処理は、一種の割込処理として実行されることになる。従って、一定時間内にユーザにより周波数帯域の選択やゲインの設定・変更が行われなかった場合であっても、直前に設定された周波数帯域とゲインの値とを繰り返し検出することにより、ステップＳ．２以降の処理が自動的に実行され、その後、一定時間経過した後に（一定時間毎に）、図２に示す処理が繰り返し実行される。この一定時間の時間間隔は、どのような時間間隔であってもよい。例えば、０．１秒毎に割込処理が実行されるような設定にすることによって、操作部１１３による円滑な操作を妨げることなく、遅滞なく図２に示した処理を実行することが可能になる。
【符号の説明】
【００７８】
１００  …フィルタ生成装置
１１０  …周波数−ゲイン設定部（入力検出手段）
１１２  …表示部
１１３  …操作部
１１４  …左右ボタン
１１５  …上下ボタン
１２０  …重み係数選択部（重み係数抽出手段）
１３０  …重み係数用メモリ（重み係数記録手段）
１４０  …ゲイン係数生成部（差分ゲイン算出手段、補正ゲイン生成手段、フィルタ係数算出手段）
１５０  …ゲイン係数用メモリ（ゲイン係数記録手段）
２００  …音場補正装置
２１０  …ＦＦＴ部
２２０  …周波数フィルタ部
２３０  …フィルタ係数用メモリ
２４０  …ＩＦＦＴ部
３００  …ＣＰＵ
３１０  …メモリ
【図１】
0006556463.tif 000002
【図２】
0006556463.tif 000003
【図３】
0006556463.tif 000004
【図４】
0006556463.tif 000005
【図５】
0006556463.tif 000006
【図６】
0006556463.tif 000007
【図７】
0006556463.tif 000008
【図８】
0006556463.tif 000009