(57)【特許請求の範囲】
【請求項１】
オーディオ等化フィルタ（８００）を発生させる方法において、
前記方法は、
複数の周波数帯域に対応する１つ以上のフィルタを提供することと、
前記１つ以上のフィルタを周波数ワーピングさせて、オーディオ等化フィルタ（８００）を生成させることと、
前記オーディオ等化フィルタをコンピューティングデバイスのメモリ中に記憶し、それにより、入力オーディオ信号のあるいくつかの周波数が、前記コンピューティングデバイスのユーザによって行われた前記コンピューティングデバイス中への入力に少なくとも部分的に基づいて選択的にエンファシスまたはデエンファシスされるように、前記入力オーディオ信号をフィルタリングするように前記オーディオ等化フィルタを構成することとを含み、
前記１つ以上のフィルタはそれぞれ、デジタルフィルタを含み、
前記１つ以上のフィルタを周波数ワーピングさせることは、前記１つ以上のフィルタに対応する前記周波数帯域のうちの少なくともいくつかの、他の周波数帯域への双一次変換を実行することを含み、
前記１つ以上のフィルタを周波数ワーピングさせることは、複数の異なるワーピングファクタを調整することを含み、
前記異なるワーピングファクタは、複数の周波数帯域を異なる周波数帯域に変換するように設定され、
前記異なるワーピングファクタはそれぞれ、前記複数の周波数帯域を望ましい中心周波数に別々に同調させることを可能にするようにさらに設定され、
前記オーディオ等化フィルタは、有限インパルス応答（ＦＩＲ）フィルタを含む方法。
【請求項２】
前記１つ以上のフィルタを周波数ワーピングさせることは、前記１つ以上のフィルタの少なくともいくつかの周波数帯域を、より低い周波数帯域に変換することを含む請求項１記載の方法。
【請求項３】
前記１つ以上のフィルタを周波数ワーピングさせることは、前記１つ以上のフィルタの１つ以上の遅延ブロックを１つ以上のオールパスフィルタに置換することを含む請求項１記載の方法。
【請求項４】
前記１つ以上のオールパスフィルタは、単一の乗算器の形態で構成されている少なくとも１つのフィルタを含む請求項３記載の方法。
【請求項５】
前記１つ以上のオールパスフィルタは、前記オーディオ等化フィルタのそれぞれの周波数帯域に対して２つのオールパスフィルタを含む請求項３記載の方法。
【請求項６】
前記複数のワーピングファクタを調整することは、前記周波数帯域のそれぞれに対して２つのオールパスフィルタを提供することを含み、前記２つのオールパスフィルタは、それぞれ、同じワーピングファクタを有する請求項１記載の方法。
【請求項７】
オーディオ信号を処理するシステム（１００）において、
前記システムは、
オーディオ信号入力をフィルタリングするように構成されているオーディオ等化フィルタ（１４０）と、
前記オーディオ等化フィルタ（１４０）と通信する等化器インターフェース（１２０）とを具備し、
前記オーディオ等化フィルタは、１つ以上のフィルタを１つ以上の他のフィルタに周波数ワーピングさせることによって発生され、前記周波数ワーピングさせることは、複数の異なるワーピングファクタ（ρx）を調整することを含み、前記異なるワーピングファクタ（ρx）は、複数の周波数帯域を異なる周波数帯域に変換するように設定され、
前記異なるワーピングファクタ（ρx）は、前記複数の周波数帯域を望ましい中心周波数に別々に同調させることを可能にするようにさらに設定され、
前記オーディオ等化フィルタは、前記周波数帯域のそれぞれに対する利得値を含み、
前記等化器インターフェース（１２０）は、前記オーディオ等化フィルタ（１４０）の前記周波数帯域の前記利得値を調整するための制御を行うように構成され、
前記等化器インターフェース（１２０）は、ユーザ入力を受け取るように適合され、前記受け取ったユーザ入力に少なくとも部分的に基づいて、前記オーディオ等化フィルタ（１４０）は、前記オーディオ信号入力の１つ以上の周波数帯域を選択的にエンファシスまたはデエンファシスするように適合されているシステム（１００）。
【請求項８】
前記オーディオ等化フィルタは、前記１つ以上のフィルタの少なくともいくつかの周波数帯域がより低い周波数帯域に変換されることによって周波数ワープされるように構成されている請求項７記載のシステム。
【請求項９】
前記１つ以上のフィルタの少なくともいくつかの周波数帯域の、より低い周波数帯域への変換は、前記１つ以上のフィルタの１つ以上の遅延ブロックを、少なくとも１つのオールパスフィルタに置換することを含む請求項８記載のシステム。
【請求項１０】
前記少なくとも１つのオールパスフィルタは、単一の乗算器の形態で構成されている少なくとも１つのフィルタを含む請求項９記載のシステム。
【請求項１１】
前記少なくとも１つのオールパスフィルタは、前記オーディオ等化フィルタの前記周波数帯域のそれぞれに対して２つのオールパスフィルタを含む請求項９記載のシステム。
【請求項１２】
前記等化器インターフェースに対する複数の等化器入力が実質的に同じ値を持つときに、前記オーディオ等化フィルタは、約１００Ｈｚから約１０ｋＨｚの範囲において実質的に平坦な周波数応答を持つ請求項７記載のシステム。
【発明の詳細な説明】
【関連出願の相互参照】
【０００１】
本出願は、“オーディオ処理システムおよび方法”と題する２００７年３月９日に出願された米国仮出願第６０／８９４，０７６号に対して優先権を主張している。この出願は、その全体が参照によりここに組み込まれている。
【背景】
【０００２】
関連技術の説明
オーディオ等化器は、一般的に、オーディオ信号の周波数応答をユーザが制御することを可能にする１つ以上のスライディング制御を備えている。スライダーを動かすことによって、ユーザは、選択された周波数帯域におけるオーディオ信号の利得に影響を及ぼすことができる。一般的に、スライダーを上げることによって、影響を受ける周波数をブーストさせ、一般的に、スライダーを下げることによって、影響を受ける周波数をカットまたは減衰させる。オーディオ等化器は、ハードウェアスライダーまたはソフトウェアスライダーを備えていてもよい。予め規定された組の周波数で信号利得を制御する１組のスライダーを備えた等化器は、グラフィック等化器と呼ばれることが多い。
【０００３】
一般的なオーディオ等化器では、それぞれのスライダーは、特定の周波数帯域に対応している。等化器における周波数帯域またはスライダーの数は、わずか２つであってもよいし、３０ほどの数またはそれ以上であってもよい。グラフィック等化器を実現するコンピューティングデバイスに対して、米国規格協会（ＡＮＳＩ）にしたがった共通仕様は、±１２デシベル（ｄＢ）利得範囲を持つ１０オクターブ間隔の周波数帯域である。
【０００４】
オーディオ等化器を設計するにあたって、コンピューティングリソース（例えば、処理およびメモリリソース）の使用と、ユーザの設定がオーディオ信号の実際の周波数応答に影響する精度との間にはトレードオフが存在する。
【ある実施形態の概要】
【０００５】
ある実施形態では、オーディオ等化フィルタを発生させる方法は、複数の周波数帯域を含む１つ以上のフィルタを提供することを含み、１つ以上のフィルタは、それぞれデジタルフィルタを備える。方法は、１つ以上のフィルタを周波数ワーピングさせて、オーディオ等化フィルタを生成させることをさらに含んでいてもよく、１つ以上のフィルタを周波数ワーピングさせることは、１つ以上のフィルタの周波数帯域のうちの少なくともいくつかの変換を実行することを含んでいてもよい。好都合にも、ある実施形態では、入力オーディオ信号のあるいくつかの周波数がユーザの入力に少なくとも部分的に基づいて選択的にエンファシスまたはデエンファシスされるように、オーディオ等化フィルタは入力オーディオ信号をフィルタリングすることができる。
【０００６】
オーディオ信号を処理するためのさまざまな実施形態のシステムが提供されており、システムは、オーディオ信号入力と、オーディオ信号入力に結合されているオーディオ等化フィルタとを備えている。オーディオ等化フィルタは、１つ以上のフィルタの周波数ワープ形態であってもよく、１つ以上のフィルタは、それぞれデジタルフィルタを備えていてもよい。さらに、システムは、オーディオ等化器フィルタと通信する等化器インターフェースを具備していてもよい。等化器インターフェースは、オーディオ等化フィルタの周波数帯域の利得値を調整するための制御を行うことができる。さらに、等化器インターフェースに対するユーザ入力は、オーディオ信号入力の１つ以上の周波数帯域をオーディオ等化フィルタが選択的にエンファシスまたはデエンファシスさせるようにすることができる。
【０００７】
さらに、オーディオ入力信号を受け取ることと、オーディオ入力信号の１つ以上の周波数帯域に対する１つ以上の望ましい利得値を含む望ましい利得入力を受け取ることと、望ましい利得入力を受け取ることに応答して、等化フィルタの１つ以上の内部利得値を調整することと、等化フィルタでオーディオ入力信号をフィルタリングして、１つ以上の内部利得値に少なくとも部分的に基づいて、１つ以上の周波数帯域を選択的にエンファシスまたはデエンファシスすることとを含み、等化フィルタが、１つ以上のデジタルフィルタの周波数ワープ形態である、オーディオ信号を処理するための方法を提供する。
【０００８】
この概要も、詳細な説明も、ここに開示した本発明を規定したことにはならない。ここで開示した本発明のうちのいくつかのものは、特許請求の範囲によって規定している。
【図面の簡単な説明】
【０００９】
【図１】図１は、オーディオ等化システムの実施形態を図示している。
【図２】図２は、図１のオーディオ等化システムのある実施形態とともに使用するための例示的なグラフィック等化器を図示している。
【図３Ａ】図３Ａは、例示的な初期フィルタの周波数応答の実施形態を図示している。
【図３Ｂ】図３Ｂは、図３Ａの初期フィルタの周波数ワープバージョンの周波数応答の実施形態を図示している。
【図３Ｃ】図３Ｃは、図３Ａの周波数応答に対応している極零プロットの実施形態を図示している。
【図３Ｄ】図３Ｄは、図３Ｂの周波数応答曲線に対応している極零プロットの実施形態を図示している。
【図４Ａ】図４Ａは、ある等化フィルタとともに使用するためのオールパスフィルタの実施形態を図示している。
【図４Ｂ】図４Ｂは、ある等化フィルタとともに使用するためのオールパスフィルタの実施形態を図示している。
【図４Ｃ】図４Ｃは、ある等化フィルタとともに使用するためのオールパスフィルタの実施形態を図示している。
【図５】図５は、図４Ｃのオールパスフィルタのカスケード接続の実施形態を図示している。
【図６Ａ】図６Ａは、例示的な初期フィルタを図示している。
【図６Ｂ】図６Ｂは、図４Ｃのオールパスフィルタを用いた図６Ａの例示的な初期フィルタを周波数ワーピングすることによって設計された、等化フィルタの実施形態を図示している。
【図７】図７は、ある等化フィルタとともに使用するためのオールパスフィルタの別の実施形態を図示している。
【図８】図８は、図７のオールパスフィルタを用いた等化フィルタの実施形態を図示している。
【図９】図９は、周波数ワープ等化フィルタを使用して、オーディオ信号をフィルタリングするためのプロセスの実施形態を図示している。
【図１０Ａ】図１０Ａは、例示的なスライダー設定を備えたグラフィック等化器を図示している。
【図１０Ｂ】図１０Ｂは、図１０Ａの例示的なスライダー設定に対応している等化フィルタのある実施形態の例示的な周波数応答の曲線を図示している。
【図１１Ａ】図１１Ａは、例示的なスライダー設定を備えた別のグラフィック等化器を図示している。
【図１１Ｂ】図１１Ｂは、図１１Ａの例示的なスライダー設定に対応している等化フィルタのある実施形態の例示的な周波数応答の曲線を図示している。
【図１２Ａ】図１２Ａは、例示的なスライダー設定を備えた別のグラフィック等化器を図示している。
【図１２Ｂ】図１２Ｂは、図１２Ａの例示的なスライダー設定に対応している等化フィルタのある実施形態の例示的な周波数応答の曲線を図示している。
【図１３】図１３は、等化フィルタの機能を実現して、増強されたリスニング体験をリスナに提供できる例示的な移動体デバイスを図示している。
【例示的な実施形態の詳細な説明】
【００１０】
オーディオ等化器は、一般的に、入力オーディオ信号の周波数応答を調整する１つ以上のユーザ調整可能な等化フィルタを備えている。等化器に対して選択されるタイプのフィルタは、コンピューティングリソースの使用および等化器の精度に影響を及ぼす。２つの一般の等化フィルタのタイプは、無限インパルス応答（ＩＩＲ）フィルタを使用するものと、有限インパルス応答（ＦＩＲ）フィルタを使用するものとがある。ＩＩＲ等化フィルタは、ＦＩＲ等化フィルタよりも、比較的より少ないコンピューティングリソースで実現できることが多いが、ＩＩＲ等化フィルタはきわめて不正確である傾向がある。一方、ＦＩＲ等化フィルタは、コンピューティングリソースの使用が増加するトレードオフがあるが、多くのＩＩＲ等化フィルタよりも、より正確な周波数応答を実現することができる。
【００１１】
一般的に、ＩＩＲ等化フィルタはリソース効率がよいことから、ＩＩＲ等化フィルタは、メディアプレーヤ（例えば、ＭＰ３プレーヤ）や、セル電話機や、スマートフォンや、パーソナルデジタルアシスタント（ＰＤＡ）や、こられに類するもののような移動体デバイスにおいて使用されることが多い。多くの移動体デバイスにおいて使用される一般的なＩＩＲ等化フィルタでは、複数の周波数選択可能（例えば、バンドパス）フィルタが提供される。それぞれの周波数選択可能フィルタは、等化フィルタの周波数帯域に対応している。これらのフィルタの１つの欠点は、選択された周波数帯域の利得の調整が、隣接帯域中の周波数に影響を及ぼす場合があることである。この結果、これらの単純なＩＩＲ等化フィルタの精度が低い傾向がある。周波数選択可能なフィルタの次数を増加させることによって、または、周波数応答補正メカニズムを搭載することによって、ＩＩＲ等化のフィルタを向上させることができる。しかしながら、これらの方策は、これらのフィルタのコンピューティングリソースの使用を増加させる。
【００１２】
一般的なＦＩＲ等化フィルタでは、長いフィルタ長（例えば、多くの係数）を使用して、望ましい周波数応答を低周波数で実現する。低周波数では、一般的な等化器の周波数帯域は、より高い周波数に比べて互いにより近づく。例えば、低周波数帯域は、３２Ｈｚ、６４Ｈｚ、１２５Ｈｚ等を含んでいてもよく、より高い周波数帯域は、４ｋＨｚ、８ｋＨｚ、１６ｋＨｚ等を含んでいてもよい。したがって、より低い周波数のより近い間隔（例えば、低周波数でのより高い分解能）を実現するために、多くのＦＩＲ等化フィルタのフィルタ長は、きわめて長い。この長いフィルタ長は、一般的なＩＩＲ等化フィルタと比べて精度を高めるが、結果的に、より多くのコンピューティングリソースを使用することになることが多い。ＦＩＲ等化フィルタの高いコンピューティングリソースのコストが、移動体デバイスでのＦＩＲ等化フィルタの使用を妨げる。
【００１３】
したがって、ある実施形態において、上述した問題を減らす、または、なくすオーディオ等化フィルタを増強するためのシステムおよび方法を提供する。あるインプリメンテーションでは、例えば、好ましいコンピューティングリソース使用特性を有している初期フィルタを使用し、増強された等化フィルタを設計することができる。好都合にも、初期フィルタを周波数ワープさせて等化フィルタにし、この等化フィルタは、多くのＦＩＲ等化フィルタよりも、より効率的にコンピューティングリソースを使用し、多くのＩＩＲ等化フィルタよりも、よりよい精度を有する。結果的に、周波数ワープ等化フィルタが、移動体デバイスユーザのオーディオリスニング体験を増強させることができる。さらに、さまざまな実施形態において、周波数ワープ等化フィルタは、移動体デバイスとは異なるコンピューティングデバイスにおいて実現することができる。
【００１４】
上記で要約した図面を参照して、これらのシステムおよび方法の機能をこれから記述する。参照する要素との間の対応関係を示すために、図面全体を通して参照番号を再び使用する。図面、関係する説明、および特定のインプリメンテーションは、ここで開示した本発明の実施形態を例証するために提供したものであり、ここで開示した発明の範囲を限定するものではない。
【００１５】
さらに、ここで記述した信号処理アルゴリズムは、任意の特定のシーケンスに限定されるものではなく、また、適切な他のシーケンスにおいて、この信号処理アルゴリズムと関係するブロックまたは状態を実行してもよい。例えば、記述したブロックまたは状態は、具体的に開示したものとは異なる順序で実行することができ、または、複数のブロックまたは状態を、単一ブロックまたは状態で組み合わせることができる。さらに、ここで記述したシステムのさまざまなモジュール、ブロック、およびコンポーネントは、１つ以上のコンピューティングデバイス上で、ソフトウェアアプリケーション、モジュール、またはハードウェアコンポーネントとして実現することができる。さまざまなモジュール、コンポーネント、およびブロックを別々に図示したが、これらは、同じ基礎とするロジックまたはコードのいくつか、または、すべてを共有してもよい。
【００１６】
図１を参照すると、例示的なオーディオ等化システム１００が図示されている。オーディオ等化システム１００のある実施形態は、ある現在利用可能なオーディオ等化フィルタよりも、より少ないコンピューティングリソースを使用しながらも、オーディオ信号の周波数応答のより正確な調整を可能にする。オーディオ等化システム１００は、例えば、デスクトップコンピュータや、ラップトップや、メディアプレイヤーや、スマート電話機や、ＰＤＡや、これらと同じものを組み合わせたものや、これらに類するものを組み合わせたもののような、コンピューティングデバイス上のソフトウェアモジュールとして実現することができる。さらに、オーディオ等化システム１００は、ハードウェア回路において、または、ソフトウェアとハードウェアとを組み合わせたものとして実現することができる。
【００１７】
オーディオ等化システム１００では、ユーザ入力１１０を等化器インターフェース１２０に提供することができる。等化器インターフェース１２０は、オーディオ信号の利得値を選択的に（ブースティングまたはカッティングを含む）調整をするためのスライダーを備えているハードウェアまたはソフトウェアインターフェースであってもよい。ユーザ入力１１０は、ユーザのスライダー調整によって提供される利得値を含んでいてもよい。
【００１８】
例示的な等化器インターフェース２００が図２に図示されている。図示した等化器インターフェース２００は、ソフトウェアで実現されるインターフェースの代表例である。等化器インターフェース２００は、複数のスライダー２０２を備え、それぞれ周波数帯域に対応している。３２Ｈｚから１６ｋＨｚに及ぶ１０個の周波数帯域に対して１０個のスライダー２０２が示されている。マウス、ボタンのような入力デバイス、または、ユーザの指によって、スライダー２０２を上に動かしたり下に動かしたりすることができる。図示した実施形態では、スライダー２０２を上に動かすことによって、選択された周波数帯域の利得を増加させることができ、スライダー２０２を下に動かすことによって、選択された周波数帯域の利得を減少させることができる。例示的な等化器インターフェース２００における利得値は、−１２ｄＢから＋１２ｄＢに及ぶ。他の多くの利得値の可能性がある。
【００１９】
再び、図１に戻ると、等化器インターフェース１２０が、ユーザ入力１１０に基づいた出力を周波数ワープ等化フィルタ１４０に提供する。出力は、ユーザによって調整された選択されたスライダー値に対応している１組の望ましい利得値を含んでいてもよい。等化フィルタ１４０は、これらの望ましい利得値を使用して、オーディオ入力信号１３０の周波数応答を調整し、オーディオ出力信号１５０を提供することができる。オーディオ出力信号１５０は、例えば、スピーカーに提供される、あるいは、ハードディスク、フラッシュドライブ、メモリ、これらと同じものを組み合わせたもの、またはこれらに類するもののようなコンピュータ読取媒体上にファイルとして記憶することができる。
【００２０】
周波数ワープ等化フィルタ１４０は、入力信号１３０の周波数応答を調整するための１つ以上の周波数選択可能なフィルタを備えていてもよい。好都合にも、周波数ワーピング技術を使用して、周波数ワープ等化フィルタ１４０を設計、そうでなければ、発生させることができる。あるインプリメンテーションでは、例えば、好ましいコンピューティングリソース使用特性を有している１つ以上の初期フィルタを周波数ワーピングさせることによって、等化フィルタ１４０を設計することができる（例えば、図６Ａないし８を参照）。ある実施形態では、初期フィルタ（または、複数のフィルタ）は、デジタルフィルタである。初期フィルタは、ＦＩＲフィルタであってもよいが、ＦＩＲフィルタである必要もない。例証目的で、この明細書の残りの部分では、ＦＩＲ初期フィルタの周波数ワーピングについて参照することにする；しかしながら、ある実施形態では、ＩＩＲ初期フィルタを周波数ワーピングさせることによっても、等化フィルタ１４０を設計することができる。
【００２１】
ある実施形態における初期フィルタは、等化フィルタ１４０の少なくともいくつかの周波数帯域よりも、より高い中心周波数を有する少なくともいくつかの周波数帯域を持っていてもよい。これらの比較的より高い周波数帯域は、ある現在利用可能な等化フィルタよりも、より小さいフィルタ係数によって効果的に表すことができる。ある実施形態において、初期フィルタの少なくともいくつかの周波数帯域をより低い周波数帯域に周波数ワーピングさせることによって、初期フィルタを等化フィルタ１４０に変換することができる。好都合にも、初期フィルタをこのように周波数ワーピングさせることは、結果的に、あるＦＩＲ等化フィルタよりも、よりよいコンピューティングリソースを使用し、かつ、周波数応答精度が、あるＩＩＲ等化フィルタよりも、よりよい周波数応答の精度を有する、等化フィルタ１４０が生じることになり得る。例えば、周波数等化フィルタ１４０は、１つの周波数帯域における変化の、隣接帯域に対する影響を最小限にすることができ、これによって、フィルタ１４０の精度を高めることができる。
【００２２】
ある実施形態において、周波数ワープ等化フィルタ１４０を発生させるために使用される周波数ワーピング変換は、双一次変換のような変換であってもよく、または、より詳細に述べると、ラプラスまたはＺ変換ドメインにおいて、線または円を他の線または円上にマッピングする等角写像であってもよい。したがって、ある実施形態において、周波数ワーピング技術を使用して、初期フィルタの周波数スケールを、修正された周波数スケールに変換させることができる。ある実施形態では、この変換は、１つのデジタルフィルタ（初期フィルタ）の、別のデジタルフィルタ（等化フィルタ１４０）へのスペクトル変換である。この変換は、あるインプリメンテーションにおいて、初期フィルタにおける１つ以上の遅延ブロックを、１つ以上のオールパスフィルタに置換することによって実行することができる。図３ないし８を参照して、以下でさらに詳細に周波数ワーピングについて記述する。
【００２３】
ここで使用する「オールパスフィルタ」という用語は、その広い一般的な意味を持つことに加えて、（例えば、可聴周波数スペクトルにおける、または、このサブセット内の）相当な数または量の周波数を通過させる任意のフィルタのことも意味する。ある実施形態において、周波数ワーピングのために使用されるさまざまなオールパスフィルタは、すべての周波数を均等に通過させてもよいし、または、通過させなくてもよい。オールパスフィルタは、位相シフトフィルタ、時間遅延フィルタ、遅延等化器、または、これらに類するものであってもよい。１つの実施形態では、オールパスフィルタは、フィルタのスペクトル振幅が均一または実質的に均一である任意のフィルタであってもよい。ここで記述するオールパスフィルタは、１の利得を持っていてもよく、あるいは、１の利得よりも、より大きい、または、より小さい利得を持っていてもよい。さらに、オールパスフィルタは、幅広い範囲の周波数に対して、フィルタの振幅応答が平坦または実質的に平坦である何らかのフィルタであってもよく、周波数の範囲は、回路帯域幅またはプロセッサにおける精度のビット数によって制限されてもよい。さらに、この明細書の残りの部分では、オールパスフィルタを用いた周波数ワーピングについて言及するが、いくつかの実施形態では、周波数ワーピングを実行するために使用される他のフィルタを、ここで記述するすべてのオールパスフィルタに置き換えることができる。
【００２４】
図３Ａおよび３Ｂは、（示していない）２つの例示的なフィルタの周波数応答３００を図示している。図３Ａは、初期フィルタの例示的な周波数応答３００ａを図示しており、さらに、図３Ｂは、初期フィルタの周波数ワープバージョンの例示的な周波数応答３００ｂを図示している。例証を容易にするために、１つの周波数帯域を有している周波数応答３００を示した。しかしながら、以下で記述するように、図３Ａおよび３Ｂの原理を、複数の周波数帯域を持つフィルタに拡張することができる。
【００２５】
図３Ａに戻ると、初期フィルタの例示的な周波数応答３００ａは、トレース３１２を用いて図示されており、トレース３１２は、周波数応答３００ａの輪郭を図示している。トレース３１２は、約１１００Ｈｚのピーク振幅または中心周波数を有し、かつ、１１００Ｈｚより前および後で減少している周波数帯域を含んでいる例示的な周波数応答３００ａを示している。このように、周波数応答３００ａは、約１１００Ｈｚの中心周波数あたりの帯域における周波数をエンファシスさせ、他の周波数を減衰させる。
【００２６】
周波数応答３００ａを有する初期フィルタの極零プロット３００ｃが、図３Ｃに示されている。極零プロット３００ｃは、複素平面３１８ａでプロットされて示されている。複素平面３１８ａは、初期フィルタの単位円３１４とゼロ３１６とを含む。複素平面３１８ａにおけるゼロ３１６の位置は、例示的な位置であり、他の例では変えることができる。
【００２７】
図３Ｂに戻ると、周波数応答３００ｂは、周波数応答３００ａの周波数ワープバージョンの１つの例を図示している。周波数応答３００ｂは、トレース３２２を用いて図示されており、トレース３２２は、周波数応答３００ｂの輪郭を図示している。トレース３２２は、例示的な周波数応答３００ｂが、約１２５Ｈｚでピーク振幅を持ち、かつ、約１２５Ｈｚより前および後で減少している周波数帯域を含むことを示している。このように、周波数応答３００ｂは、約１２５Ｈｚの中心周波数あたりの帯域における周波数をエンファシスさせ、他の周波数を減衰させる。図３Ａおよび３Ｂから分かるように、周波数応答３００ａは、周波数応答３００ｂの中心周波数（約１２５Ｈｚ）よりも、周波数が比較的より高い中心周波数（約１１００Ｈｚ）を有している。
【００２８】
周波数応答３００ｂを有する周波数ワープフィルタの極零プロット３００ｄが、図３Ｄに示されている。極零プロット３００ｄも、複素面３１８ｂにおいてプロットされて示されている。複素面３１８ｂは、周波数ワープフィルタの単位円３２４とゼロ３２６を含む。複素面３１８ｂにおけるゼロ３２６の位置は、例示的位置であり、以下で記述するように、周波数ワーピングの異なる量を実現するために変えることができる。
【００２９】
ある実施形態では、周波数応答３００ａの周波数応答３００ｂへの周波数ワーピングは、初期フィルタのゼロ３１６を複素面３１８における別の位置のゼロ３２６に変換またはマッピングすることによって実現することができる。現在の例では、ゼロ３１６は、ゼロ３２６によって示されている新しい例示的な位置に変換またはマッピングされている。ゼロ３２６ａないし３２６ｆのそれぞれは、ゼロ３１６ａないし３１６ｆにそれぞれ対応している。さらに、極３２８が、プロット３００ｄに追加されている。この、ゼロ３１６のゼロ３２６への変換および極３２８の追加は、結果的に、周波数応答３００ａの周波数応答３００ｂへのシフトまたはワーピングを生じさせる。
【００３０】
実際に、ある実施形態における周波数ワーピングは、Ｚ変換の単位円３１４をこれ自体にマッピングすることによって、最初のデジタルフィルタを別のデジタルフィルタにマッピングする。このように、プロット３００ｃの単位円３１４は、プロット３００ｄの単位円３２４上にマッピングされている。実施形態において、ゼロ３１６ａ、３１６ｂ、３１６ｃ、および３１６ｄを単位円３１４に沿って（３３０における）点ｚ＝１に、より近付けるように移動させる（または、マッピングする）ことは、周波数応答３００ａを、より低い中心周波数に“移動”またはワープさせる。反対に、ゼロ３１６ａ、３１６ｂ、３１６ｃ、および３１６ｄを単位円３１４に沿って（３３２における）点ｚ＝−１に、より近付けるように移動させる（または、マッピングする）ことは、周波数応答３００ａを、より高い中心周波数に移動させる。
【００３１】
ある実施形態では、すべてのゼロ３２６を異なる位置に移動させる必要はない。例えば、（３３０における）ｚ＝１であるＤＣ点のゼロ３１６ｆは、ゼロ３１６ｆ自体にゼロ３２６ｆとしてマッピングされており、（３３２における）ｚ＝−１におけるナイキスト点のゼロ３１６ｅは、ゼロ３１６ｅ自体にゼロ３２６ｅとしてマッピングされている。さらに、ある実施形態では、周波数ワーピングは、初期フィルタのＤＣとナイキスト点との間の何らかの周波数を、ＤＣとナイキスト点との間の他の何らかの周波数上にマッピングしてもよい。ゼロ３１６が移動される、または、ワープされる程度は、図４ないし８を参照して以下に記述するように、１つ以上のワーピングファクタによって制御することができる。
【００３２】
あるインプリメンテーションでは、初期フィルタにおける（示されていない）それぞれの遅延ブロックを、１つ以上のオールパスフィルタと置換することによって、周波数応答３００ａから周波数応答３００ｂへの周波数ワーピング変換を実行することができる（例えば、図４ないし８参照）。いくつかのインプリメンテーションでは、それぞれの周波数帯域に対して２つのオールパスフィルタが使用される。したがって、図３Ａないし３Ｄに図示した例示的な実施形態では、２つのオールパスフィルタを使用して、周波数応答３００ａを周波数応答３００ｂにワープさせてもよい。しかしながら、他の実施形態では、それぞれの周波数帯域に対して、より多くの、または、より少ないオールパスフィルタが使用されてもよい。オールパスフィルタを使用することによって、結果的に、極３２８が周波数応答３００ｂの極零プロット３００ｄに追加されることになる。図４ないし８を参照して、オールパスフィルタのさらなる詳細な説明を以下に記述する。
【００３３】
図３Ａないし３Ｄを参照して、上述した周波数ワーピングの原理を、複数の周波数帯域に拡張させることができる。ある実施形態では、少なくともいくつかの比較的より高い周波数帯域を有する初期フィルタを周波数ワープさせて、少なくともいくつかの比較的より低い周波数帯域を有する等化フィルタにすることができる。例えば、１ｋＨｚ、３ｋＨｚ、５ｋＨｚ、７ｋＨｚ、９ｋＨｚ、１１ｋＨｚ、１３ｋＨｚ、１５ｋＨｚ、１７ｋＨｚ、および１９ｋＨｚを中心とした、等間隔の周波数帯域を持つ初期フィルタを周波数ワープさせて、それぞれ、３２Ｈｚ、６４Ｈｚ、１２５Ｈｚ、２５０Ｈｚ、５００Ｈｚ、１ｋＨｚ、２ｋＨｚ、４ｋＨｚ、８ｋＨｚ、および１６ｋＨｚを中心としたオクターブ間隔の周波数帯域を有するオーディオ等化器フィルタにしてもよい。この例は、例えば、１ｋＨｚの初期フィルタをワープさせて、３２Ｈｚ帯域の等化フィルタにすることができたり、３ｋＨｚ帯域の初期フィルタをワープさせて、６４Ｈｚ帯域の等化フィルタにすることができること等を説明している。
【００３４】
しかしながら、同じ例の組の初期フィルタ帯域を、異なる方法でもワーピングさせることができる。例えば、初期フィルタ帯域のうちの少なくともいくつかをワープさせて、より低い周波数にすることができるとともに、他の初期フィルタ帯域をワープさせて、より高い周波数にすることができる。１つの例として、１５ｋＨｚの初期フィルタ帯域をワープさせて、１６ｋＨｚ帯域にするとともに、１７ｋＨｚの初期フィルタ帯域をワーピングさせて８ｋＨｚ帯域にしてもよい。別の例では、１ｋＨｚの初期フィルタをワープさせて、６４Ｈｚ帯域にすることができるとともに、３ｋＨｚの初期フィルタ帯域をワープさせて３２Ｈｚ帯域にすることができる。さらに、いくつかのインプリメンテーションでは、初期フィルタ帯域の少なくとも一部をワーピングさせずに、他の部分をワーピングさせる。さまざまな実施形態において、初期フィルタ帯域をワーピングさせるための他の多くの構成が用いられてもよい。
【００３５】
先の例では、等間隔の帯域をワーピングさせて、オクターブ間隔（例えば、ＡＮＳＩ）の帯域にしているが、いくつかの実施形態では、等間隔でない帯域をワープさせて、オクターブ間隔の帯域にすることができる。さらに、等間隔または等間隔ではない帯域をワープさせて、オクターブ間隔でない帯域にすることができる。さまざまな帯域をワープさせて、例えば、３分の１オクターブ間隔のような、オクターブの何倍かの間隔にしたがった間隔の帯域にすることができる。代わりに、さまざまな帯域をワープさせて、バークスケール、ｍｅｌスケール、または、これらの一部にしたがって、または、バークスケール、ｍｅｌスケール、または、これらの一部に実質的に類似した間隔の帯域にすることができる。バークまたはｍｅｌスケール間隔は、多くのリスナが互いに等距離、または、ほぼ等距離と知覚する周波数帯域の知覚的なスケールを提供することができる。
【００３６】
好都合にも、ある実施形態では、初期フィルタはＦＩＲフィルタであってもよい。先に説明したように、ＦＩＲフィルタを用いて、等化フィルタを実現することによって、ＩＩＲフィルタを用いるよりも、より優れた精度を実現することができる。しかしながら、ＦＩＲフィルタは、より低い周波数で、より高い分解能を実現するために長いフィルタ長が使用されることから、より多いコンピューティングリソースを使用することが多い。したがって、１つの実施形態では、等化フィルタの望ましい周波数帯域と比べて、少なくともいくつかのより高い周波数帯域を有するＦＩＲフィルタを周波数ワーピングさせることによって、周波数ワープ等化フィルタを発生させることができる。比較的より高い周波数帯域を持つＦＩＲフィルタは、比較的より低い周波数帯域を持つＦＩＲフィルタよりも、より短いフィルタ長を有するので、比較的より高い周波数帯域を持つＦＩＲフィルタを周波数ワーピングさせることによって、あるＦＩＲ等化フィルタよりも、比較的より短いフィルタ長を有する等化フィルタを実現することができる。結果的に、周波数ワープ等化フィルタは、ＩＩＲフィルタに匹敵する性能、または、ＩＩＲフィルタよりも、よりよい性能を実現しながらも、ＦＩＲ等化フィルタに匹敵する精度、または、ＦＩＲ等化フィルタよりも、よりよい精度を有することができる。
【００３７】
図４Ａないし４Ｃは、ある実施形態において周波数ワーピングするために使用できる、さまざまな例示的なオールパスフィルタ４００を図示している。上述したように、周波数ワーピングは、初期フィルタにおけるそれぞれの遅延ブロックを、１つ以上のオールパスフィルタと置換することによって実現することができる。オールパスフィルタは、一次フィルタまたはより高次のフィルタであってもよい；しかしながら、性能を向上させるために、ある実施形態では、一次フィルタが使用されてもよい。したがって、いくつかの例示的な一次オールパスフィルタ４００を図４Ａ、４Ｂ、および４Ｃに示した。
【００３８】
図４Ａに戻ると、オールパスフィルタ４００ａが示されている。オールパスフィルタ４００ａは、直接型Ｉ構造を有しているＩＩＲフィルタである。オールパスフィルタ４００ａの直接型Ｉ構造は、２つの乗算器４０４、４１１と、２つの加算器４０８、４１０と、２つの遅延ブロック４０６、４１２とを備えている。オールパスフィルタ４００ａは、入力信号４０２を受け取り、出力信号４１４を提供する。矢印は、出力フィルタ構造４００ａにおける信号のフローの方向を示しており、または代わりに、アルゴリズム的フローの方向を示している。したがって、例えば、入力信号４０２は、乗算器４０４と遅延ブロック４０６とに提供される。
【００３９】
乗算器４０４が、加算器４０８に出力を提供する。同様に、遅延ブロック４０６が、出力を加算器４０８に提供する。乗算器４０４および遅延ブロック４０６の出力が、加算器４０８によって加算され、加算器４１０に提供される。加算器４１０の出力が、遅延ブロック４１２に提供され、そして出力４１４として提供される。フィードバックループの一部として、遅延ブロック４１２が出力を乗算器４１１に提供する。乗算器４１１の出力が、加算器４１０に提供され、加算器４１０は、上述したように、出力信号４１４を提供する。
【００４０】
図示した実施形態では、乗算器４０４は値ρを有している。同様に、乗算器４１１は、負のρである値を有している。ある実施形態では、この値ρはワーピングファクタであってもよい。ワーピングファクタを調整することによって、オールパスフィルタ４００ａによって提供される周波数ワーピングの量を変えることができる。１つの実施形態では、ワーピングファクタρは、−１から＋１までの範囲をとることができる。ここで、０よりも小さい値は、より低い周波数に対してワーピングすることを表し、０の値はワーピングしないことを表し、０よりも大きい値はより高い周波数に対してワーピングすることを表す。上記の図３Ｂで使用したワーピングファクタは、１つの実施形態において、例えば、−０．９の値を有していてもよい。さまざまな実施形態では、他の多くの範囲のワーピングファクタρの可能性がある。
【００４１】
図４Ｂは、オールパスフィルタ４００ｂの別のインプリメンテーションを図示している。オールパスフィルタ４００ｂは、直接型ＩＩ構造を持つＩＩＲフィルタである。オールパスフィルタ４００ｂの直接型ＩＩ構造は、ワーピングファクタρ（または−ρ）を有する２つの乗算器４２５、４２８と、２つの加算器４２４、４３２と、１つの遅延ブロック４２６とを備えている。オールパスフィルタ４００ｂが、入力信号４２２を受け取り、出力信号４３２を提供する。オールパスフィルタ４００ｂは、オールパスフィルタ４００ａの２つの遅延ブロック４０６、４１２とは対照的に１つの遅延ブロック４２６を有していることから、いくつかのインプリメンテーションにおいて、オールパスフィルタ４００ｂは、オールパスフィルタ４００ａよりも、より効率的にコンピューティングリソースを使用することができる。
【００４２】
図４Ｃを参照すると、別のオールパスフィルタ４００ｃが示されている。オールパスフィルタ４００ａ、４００ｂのような、オールパスフィルタ４００ｃが、入力信号４４２を受け取り、出力信号４５４を提供する。示した構成では、オールパスフィルタ４００ｃは、１つの乗算器と、１つの加算器と、１つの減算ブロックと、２つの遅延ブロック４４４、４５２とを備えている。オールパスフィルタ４００ａおよび４００ｂに類似した、オールパスフィルタ４００ｃの乗算器４４８は、ワーピングファクタρである値を有している。オールパスフィルタ４００ｃは１つの乗算器４４８を備えていることから、フィルタ４００ｃの構造は、単一の乗算器の形態とみなすことができる。好都合にも、図５に示したように、複数の単一乗算器のオールパスフィルタ４００ｃをカスケード接続する増分コストがわずかであるために、オールパスフィルタ４００ｃの単一の乗算器の形態は、オールパスフィルタ４００ａ、４００ｂよりも、より効率的にコンピューティングリソースを使用できる。
【００４３】
図５は、３つのカスケード接続されたオールパスフィルタ５１０、５２０、および５３０を図示している。それぞれのフィルタ５１０、５２０、５３０は、各フィルタを囲んだ破線によって図示されている。単一の乗算器の形態を用いているフィルタ５１０、５２０、５３０が効率的にカスケード接続されていることを、図５は図示している。特に、ある実施形態では、第１のオールパスフィルタ５１０とカスケード接続されたそれぞれの付加的なオールパスフィルタ５２０、５３０によって、１つの乗算器、１つの加算器、１つの減算ブロック、１つの遅延ブロックの増分コストが増す。
【００４４】
カスケード接続における第１のオールパスフィルタ５１０は、オールパスフィルタ４００ｃのすべての要素を備えている。カスケード接続における第２のオールパスフィルタ５２０は、遅延ブロック４５２を共有し、減算ブロック５０２、乗算器５０４、加算器５０６、および遅延ブロック５０８の増分コストを増やす。同様に、第３のオールパスフィルタ５３０は、遅延ブロック５０８を、第２のオールパスフィルタ５２０と共有し、減算ブロック５１２と、乗算器５１４と、加算器５１６と、遅延ブロック５１８とを追加する。効果的に、フィルタのカスケード接続では、単一の乗算器の形態により、より少ない要素またはブロックを使用することが促進され、これにより、コンピューティングリソースのより効率的な使用が促進される。
【００４５】
図６Ａは、例示的な初期フィルタ６００ａを図示しており、初期フィルタａから、図６Ｂ中の例示的な周波数ワープ等化フィルタ６００ｂが設計されてもよい。初期フィルタ６００ａは、図示した実施形態では（示していない）４つの周波数帯域を有するＦＩＲフィルタである。周波数帯域の数を例示目的のためだけに選択することができ、また、変えることができる。さらに、初期フィルタ６００ａは、直接型で図示されている。ＦＩＲフィルタの他の形態または構造を使用して、ある実施形態において等化フィルタを設計してもよい。さらに、いくつかのインプリメンテーションでは、１つより多いＦＩＲフィルタを使用して、等化フィルタを設計してもよい。
【００４６】
初期フィルタ６００ａは、入力信号５４０を受け取り、入力信号５４０をフィルタリングして、出力信号５８０を生成させる。初期フィルタ６００ａは、遅延ブロック５５０ａないし５５０ｆと、乗算器５６０ａないし５６０ｇと、加算器５７０ａないし５７０ｆとを備えている。矢印は、信号またはアルゴリズム的なフローの方向を示している。乗算器５６０ａないし５６０ｆのそれぞれは、（それぞれｇ0ないしｇ6によって表されている）初期フィルタ６００ａの係数である値を有している。１つの実施形態では、初期フィルタ６００ａの周波数帯域のうちの少なくともいくつかが、等化フィルタの望ましい中心周波数よりも、比較的、より高い中心周波数を有することができるように、フィルタ係数ｇ0ないしｇ6を選択してもよい。結果的に、初期フィルタ６００ａは、好ましいコンピューティングリソース使用特性を持つことができる。
【００４７】
好都合にも、それぞれの遅延ブロック５５０をオールパスフィルタと置換することによって、これらの中心周波数を周波数ワープさせることができる。図６Ｂは、例えば、初期フィルタ６００ａから設計された周波数ワープ等化フィルタ６００ｂの例示的な実施形態を図示している。上述したシステム１００のような等化システムでは、例えば、周波数ワープ等化フィルタ６００ｂが使用されてもよい。
【００４８】
ある実施形態では、等化フィルタ６００は、線形重ね合わせの原理を使用して単一フィルタ６００ｂに統合された、カスケード接続されたオールパスフィルタ６０１、６０３、６０５、６０７、６０９、および６１１のバンクを使用している。それぞれのオールパスフィルタ６０１、６０３、６０５、６０７、６０９、および６１１は、初期フィルタ６００ａにおける遅延ブロック５５０と置換する。図示した実施形態では、それぞれのオールパスフィルタ６０１、６０３、６０５、６０７、６０９、および６１１は、図４Ｃおよび５を参照して上述した単一の乗算器の形態で構成されている。等化フィルタ６００は、それぞれＩＩＲ構造で構成されている個々のオールパスフィルタ６０１、６０３、６０５、６０７、６０９、および６１１を備えたＦＩＲ全体構造を有している。したがって、ある実施形態では、等化フィルタ６００は、ＦＩＲまたはＩＩＲフィルタのいずれか、あるいは双方のハイブリッドが考えられる。
【００４９】
等化フィルタ６００ｂでは、初期フィルタ６００ａの４つの周波数帯域が、４つの新しい周波数帯域に周波数ワープされる。これらの新しい周波数帯域のうちの少なくともいくつかは、初期フィルタ６００ａの周波数帯域のうちの少なくともいくつかよりも、より低い中心周波数を有することができる。したがって、ある実施形態において、等化フィルタ６００ｂによって、より低い周波数（例えば、低域周波数）をより効率的に等化または調整することができる。
【００５０】
便宜のために、最初の３つのカスケード接続されたオールパスフィルタ６０１、６０３、および６０５に対して、図４Ｃおよび５からの参照番号を繰り返す。したがって、これらのフィルタ６０１、６０３、および６０４は、上述したコンポーネント４４４ないし５１８を含んでいる。３つのさらなるフィルタ６０７、６０９、および６１１のそれぞれは、さらなる増分フィルタ要素を含む。したがって、例えば、フィルタ６０７は、遅延ブロック５１８をフィルタ６０５と共有し、減算ブロック６０２と、乗算器６０４と、加算器６０６と、遅延ブロック６０８とを備えている。同様に、フィルタ６０９は、遅延ブロック６０８をフィルタ６０７と共有し、減算ブロック６１０と、乗算器６１２と、加算器６１４と、遅延ブロック６１６とを備えている。同様に、フィルタ６１１は、遅延ブロック６１６をフィルタ６０９と共有し、また、減算ブロック６１８と、乗算器６２０と、加算器６２４と、遅延ブロック６２６とを備えている。
【００５１】
オールパスフィルタ６０１ないし６１１と通信する４つの乗算器６４０、６４２、６４４、および６４６が示されている。これらの乗算器は、等化フィルタ６００ｂの係数ｈ0、ｈ1、ｈ2、およびｈ3を表している。等化フィルタ６００ｂでは、係数の対称性のために、７個ではなく、４個の係数が提供される。対称的な係数を有することによって、等化フィルタ６００ｂは、フィルタ６０１ないし６１１間で係数を共有することができ、これによって、コンピューティングリソースをより効率的に使用することができる。ある他のインプリメンテーションでは、係数は非対称であってもよい。
【００５２】
より詳細に述べると、フィルタ６０７の出力６３７は、加算器６３０によってフィルタ６０３の出力６３３と合成され、加算器６３０が、乗算器６４２（係数ｈ1）に出力を提供する。同様に、フィルタ６０９の出力６３９は、フィルタ６０１の出力６３１と合成され、加算器６３２に提供され、加算器６３２が、乗算器６４４（係数ｈ2）に出力を提供する。フィルタ６１１の出力６４１は、入力信号４４２と合成され、加算器６３４に提供され、加算器６３４が、乗算器６４６（係数ｈ3）に出力を提供する。さらに、フィルタ６０５（係数ｈ0）の出力６３５が、乗算器６４０に提供される。それぞれの乗算器６４０、６４２、６４４、および６４６の出力は、加算器６５０、６５２、および６５４によってそれぞれ互いに合計されて、出力信号６６０を生成させる。したがって、ある実施形態では、フィルタ６０１ないし６１１の出力は、互いにスーパーインポーズされる。
【００５３】
ユーザが１つ以上のスライダーの利得を調整したとき、あるインプリメンテーションでは、この調整によって、等化フィルタ６００のフィルタ係数ｈ0−ｈ3を再計算させることができる。フィルタ６０１ないし６１１の出力がスーパーインポーズされることから、ある実施形態では、フィルタ係数ｈ0−ｈ3を変えることは、１組の連立方程式を解くことによって実行される。
【００５４】
例示的な等化フィルタ６００ｂにおけるそれぞれのフィルタ６０１ないし６１１は、乗算器４４８、５０４、５１４、６０４、６１２、および６２０によって表されているように、同じワーピングファクタρを含んでいる。このワーピングファクタρの調整によって、等化フィルタ６００ｂにおけるワーピングの量の調整が可能になる。ここで、それぞれのフィルタ６０１ないし６１１は、１つの周波数帯域に対応している。例えば、ワーピングファクタρによって、初期フィルタ６００ａにおける少なくともいくつかの、より高い周波数帯域を、等化フィルタ６００ｂにおけるより低い周波数帯域に周波数ワープさせることが可能になる。好都合にも、ある実施形態では、等化フィルタ６００ｂは、１つの周波数帯域での変化の影響を隣接帯域に対して最小限にすることができ、これによって、現在利用可能な等化フィルタと比較して、等化フィルタ６００ｂの精度を高めることができる。さらに、等化フィルタ６００ｂは、ある現在利用可能なＩＩＲ等化フィルタに類似した、または、ある現在利用可能なＩＩＲ等化フィルタよりも、よりよいリソースを使用することができる。
【００５５】
ある実施形態では、フィルタ６０１ないし６１１によって表されている周波数帯域の間隔（例えば、帯域の中心周波数の間隔）を、周波数ワーピングファクタρによって調整することができ、１つの実施形態では、周波数ワーピングファクタρは、周波数帯域の全集合を調整するための１つの自由度を表す。好都合にも、１つの実施形態におけるワーピングファクタρを調整して、周波数帯域のバークスケールまたは近似バークスケールを生成させることができる。しかしながら、他の間隔（例えば、ＡＮＳＩ間隔）が望まれた場合、１つの自由度のワーピングファクタρでこのような間隔を実現させることは難しい。
【００５６】
この問題を解消するために、いくつかのインプリメンテーションでは、付加的なフィルタを提供することによって、付加的な周波数帯域を追加することができる。コンピューティングリソースの潜在的な何らかの付加的コストで、等化フィルタ６００ｂにおける周波数帯域のうちのいくつかの帯域間を補間することによって、望ましい中心周波数に近似させることができる。例えば、周波数帯域の望ましい中心周波数が１２５Ｈｚであり、フィルタ６００ｂにおいて最も近い中心周波数が１００Ｈｚである場合、１５０Ｈｚの中心周波数を有するフィルタが、等化フィルタ６００ｂに追加される。１００Ｈｚと１５０Ｈｚの周波数帯域から、１２５Ｈｚの望ましい中心周波数を補間することができる。
【００５７】
ある実施形態では、それぞれの追加される周波数帯域に対して、付加的なオールパスフィルタ、または、他のタイプのフィルタを追加することによって、付加的な帯域による補間を実現することができる。したがって、結果として生じた等化フィルタ６００ｂは、さらなる係数または内部利得を有する、より長いフィルタ構造を持っていてもよい。これらの内部利得は、ユーザ入力（例えば、スライダー入力）利得の数よりも、数的により大きくてもよい。したがって、１つの実施形態では、フィルタ６００ｂにおける内部利得のより高い数は、より低い数のユーザ入力利得の線形的な組み合わせであってもよい。
【００５８】
ある他の実施形態において、周波数帯域のうちのいくつか、または、周波数帯域のすべてに対してワーピングファクタを含むフィルタを設計することによって、１つのワーピングファクタρを使用するいくつかの欠点を減少させる、または、解消することができる。このような１つのフィルタ設計の例示的なインプリメンテーションを、以下の図７および８に図示する。
【００５９】
図７は、別々のワーピングファクタを等化フィルタの周波数帯域に提供するために使用可能な二次オールパスフィルタ７００の例を図示している。複数のオールパスフィルタ７００は、等化フィルタを生成させるために互いにカスケード接続することができ、図８を参照して、この例を以下で記述する。
【００６０】
オールパスフィルタ７００は、図４ないし図６を参照して上述したオールパスフィルタとは異なる構造を有している。オールパスフィルタ７００は、入力信号７０２を受け取り、入力信号７０２が、遅延ブロック７０４と、減算ブロック７０７とに提供される。遅延ブロック７０４の出力は、加算器７０６に提供されるとともに、減算ブロック７０７の出力が、乗算器ブロック７１０に提供される。乗算器ブロック７１０の値は、図示した実施形態において、周波数ワーピングファクタρxを表している。異なる周波数帯域に対して周波数ワーピングファクタρxが異なることを、下付き “ｘ”は表している。
【００６１】
乗算器７１０の出力が、加算器７０６に提供される。加算器７０６は、遅延ブロック７１２に出力を提供し、そして、遅延ブロック７１２が、減算ブロック７０７と加算器７１８とに出力を提供する。さらに、加算器７０６が、減算ブロック７１４に出力を提供する。減算ブロック７１４は、乗算器ブロック７１６に出力を提供し、また、乗算器ブロック７１６は、周波数ワーピングファクタである値ρxを有している。そして、乗算器７１６は、加算器７１８に出力を提供し、加算器７１８が、遅延ブロック７２０に出力を提供する。同様に、遅延ブロック７２０が、出力を減算ブロック７１４に提供する。さらに、加算器７１８が、オールパスフィルタ７００の出力７２２を提供する。
【００６２】
図８は、図７のオールパスフィルタ７００を使用できる周波数ワープ等化フィルタ８００の実施形態を図示している。等化フィルタ８００は、例えば、上述したシステム１００のような等化器システムにおいて使用されてもよい。好都合にも、等化フィルタ８００は、複数の周波数ワーピングファクタρxを含み、この周波数ワーピングファクタρxは、等化フィルタ８００の周波数帯域を望ましい中心周波数に別々に同調させることを可能にする。
【００６３】
等化フィルタ８００は、複数のブロック８１０、８２０、８３０、８６０を有しており、これらのそれぞれは、オールパスフィルタによって置換されている（示していない）初期フィルタの遅延ブロックを表している。初期フィルタは、例えば、ＦＩＲフィルタであってもよい。あるインプリメンテーションでは、それぞれのブロック８１０、８２０、８３０、８６０に対して使用されているオールパスフィルタは、オールパスフィルタ７００であってもよい。したがって、例えば、オールパスフィルタ７００の入力７０２は、ブロック８１０に対する入力に対応することができ、オールパスフィルタ７００の出力７２２は、ブロック８１０の出力に対応すること等ができる。しかしながら、ある他の実施形態では、ここで記述したオールパスフィルタ構造のいずれのものも、または、他のオールパスフィルタ構造も、等化フィルタ８００とともに使用されてもよい。さらに、いくつかの実施形態では、等化フィルタ８００の異なる周波数帯域に対して、異なるタイプのオールパスフィルタ構造を使用することができる。
【００６４】
実施形態では、等化フィルタ８００がこれに基づいている初期フィルタは、ｆs／４においてゼロを有している。ここでは、ｆsは、使用されるサンプリング周波数を表している。ある実施形態において、初期フィルタ構成は、比較的簡単なデジタルインプリメンテーションを可能にし、これは、初期フィルタから設計される周波数ワープ等化フィルタ８００の複雑さを最小限にすることができる。初期フィルタのゼロの位置は、さまざまなインプリメンテーションにおいて他の値を有していてもよい。
【００６５】
例示的な等化フィルタ８００におけるそれぞれの周波数帯域に対して、同じワーピングファクタρxを有する２つの対応するオールパスフィルタ７００が存在してもよく、ここでは、“ｘ”は（図示した例では、０で始まる）周波数帯域の数を表している。それぞれの帯域の中心周波数に対して、より正確な制御を行うために、異なる周波数帯域に対して、ワーピングファクタを異ならせることができる。例えば、ブロック８１０ａおよび８１０ｂにおいて提供されているオールパスフィルタは、それぞれ、ワーピングファクタρ0を有している第１の周波数帯域に対応しており、ブロック８２０ａおよび８２０ｂは、ワーピングファクタρ1を有する第２の周波数帯域に対応している等、ｎ番目のワーピングファクタ（ρn）を有するｎ番目の周波数帯域にまで対応する。省略符号８５３は、等化フィルタ８００において任意の数の周波数帯域（およびワーピングファクタ）を提供することができることを示している。
【００６６】
好都合にも、ワーピングファクタによって、周波数ワープ等化フィルタ８００が、あるＩＩＲ等化フィルタよりも、より正確にオーディオ信号をフィルタリングすることが可能になる。図６Ｂの等化フィルタ６００ｂと同様に、等化フィルタ８００は、１つの周波数帯域における変化の、隣接帯域に対する影響を最小限にすることができ、これによって、フィルタ８００の精度を高める。
【００６７】
それぞれの中心周波数をより正確に調整するための能力は、いくつかのインプリメンテーションでは、何らかのさらなる複雑さの犠牲のもとで得られる。例えば、オールパスフィルタ４００ｃとは異なるオールパスフィルタ７００では、より多くのコンポーネント（または演算）が使用され、等化フィルタ６００とは異なる等化フィルタ８００では、付加的なコンポーネントが使用されてもよい。しかしながら、このコンピューティングリソースの使用の増加は、現在利用可能なＦＩＲ等化フィルタのコンピュータ使用よりも、または、ＩＩＲ等化フィルタのコンピュータリソースの使用さえ、依然として少なくすることができる。例えば、現在利用可能な１０帯域のＩＩＲバイクアッドベース等化フィルタは、ＡＲＭ９ｅプロセッサ上で４４．１ｋＨｚで１つのチャネルを処理するために、秒あたりの６百万から１千万の間あたりの命令（ＭＩＰＳ）を使用してもよい。これに対して、等化フィルタ８００のあるインプリメンテーションは、向上した精度で、同じタスクを同じプロセッサ上で実現するために、約４．３またはより少ないＭＩＰＳを使用する。
【００６８】
乗算器ブロック８１４、８２８、８４８、および８６６は、等化フィルタ８００の係数を表している。実施形態では、それぞれのブロック８１４、８２８、８４８、および８６６は、値ｇx*ｍxを有しており、ここで、ｇxは係数であり、ｍxは調整ファクタである。調整ファクタｍxは、ワーピングファクタρxを変えることによって生じる等化フィルタ８００の周波数応答の変動を補償する。１つの実施形態では、すべての等化器係数ｇxが１に設定されたときに、調整ファクタｍxは、周波数帯域の（例えば、スライダーによる入力）利得の逆数に等しい値を有することができる。１つの実施形態における調整ファクタｍxによって、所定の周波数帯域の周波数応答をより正確にすることが可能になる。
【００６９】
乗算器ブロック８０３、８０４、８０５、８１６、８１８、８２９、８３２、８５０、８５２、８５４、および８６８は、２による除算を表している。これらのブロックは、加算器ブロック８０６、８１９、８２４、８３３、８４４、および８５１のうちの１つ以上によってオーディオ信号の倍増を補償するために、オーディオ信号を半分に除算する。
【００７０】
好都合にも、ある実施形態では、固定小数点プロセッサにおいて、等化フィルタ８００を実現してもよい。このような１つの実施形態では、何の乗算演算もなく、等化フィルタ８００を実現してもよく、この演算は、一般的に、他の数学的演算よりも、より多くのコンピューティングリソースを消費する。１つの実施形態では、ワーピングファクタおよび／または係数に使用される精度の桁数を減少させることによって、乗算演算をなくすことができる。数ビットの精度を用いることによって、例えば、乗算を、加算およびシフトに置換することができる。さらに、２による除算をシフトによって置換することができる。したがって、低分解能の固定小数点数学演算に対してさえも、等化フィルタ８００は、数値的に強固である。
【００７１】
好都合にも、ある実施形態においては、等化フィルタ８００の全体的なＦＩＲ構造により、乗算演算の数をなくす、または、減らすことが実現できる。一方、ある現在の利用可能なＩＩＲ等化フィルタは、数ビットの精度を用いて、丸め誤差を減らすことができる。一方、等化フィルタ８００においてより少ないビットを用いると、精度を低下させるが、フィルタ８００の精度は、現在利用可能なＩＩＲ等化フィルタの精度よりも、依然としてかなり優れている。
【００７２】
ある他の実施形態では、さらなる内部周波数帯域を追加することによって、等化フィルタ８００の精度をさらに向上させることができる。この技術は、図６Ｂを参照して上述した補間演算を実行することを含んでいてもよい。さらに、ある実施形態では、等化フィルタ８００で入力オーディオ信号８０２を２度フィルタリングすることによって、等化フィルタ８００の精度をさらに向上させることができる。いくつかのインプリメンテーションでは、これらの技術の双方は、付加的なコンピューティングリソースを消費する。
【００７３】
さらに、いくつかのインプリメンテーションでは、等化フィルタ８００におけるブロックのうちのいくつかを取り除く、または、変えることによって、いくらかのコンピューティングリソースを節約することができる。例えば、ワーピングファクタρnによって表されている周波数帯域に対して、２による除算ブロック８６８を取り除いてもよい。したがって、ブロック８６６の出力は、加算器８５１と、減算ブロック８７０とに直接的に提供される。別の実施形態では、乗算器８６８からの出力を受け取らないように、減算ブロック８７０を改良することができる。したがって、減算ブロック８７０は、ブロック８６０ｂと乗算器８５４との出力を加算する加算器になってもよい。これらの改良のうちの１つ、または、双方は、等化フィルタ８００における周波数帯域のいくつか、または、すべてに使用されてもよい。これらの改良は等化フィルタ８００の精度を低下させる可能性があるが、コンピューティングリソース節約が、いくつかのインプリメンテーションにおいて重要である。さらに、他の改良は、コンピューティングリソースの使用をさらに減少させる可能性がある。
【００７４】
グラフィック等化器においてフィルタとして使用されていることに加え、等化フィルタ８００のある実施形態は、パラメータ的またはセミパラメータ的等化器において使用してもよい。したがって、等化フィルタ８００に対するユーザ入力は、中心周波数での利得調整に加えて、中心周波数の調整を含んでいてもよい。好都合にも、ユーザ入力は、１つ以上の周波数ワーピングファクタを変えさせることができ、これによって、中心周波数値に対するユーザ制御が行われる。等化フィルタ８００は、固定小数点プロセッサでの乗算がなくても実現できることから、等化フィルタ８００を用いたパラメータ的またはセミパラメータ的な等化器は、ある他のパラメータ的またはセミパラメータ的な等化器よりも、数値的により強固である。
【００７５】
図９は、周波数ワープ等化フィルタを使用してオーディオ信号をフィルタリングするための例示的なプロセス９００を図示している。好都合にも、ある実施形態では、プロセス９００は、等化システム１００のような等化システムによって実現することができる。プロセス９００は、オーディオ信号の正確な、かつ効率のよい等化を可能にする。
【００７６】
ブロック９０２では、オーディオ入力信号が受け取られる。オーディオ入力信号は、音楽信号、スピーチ信号、または、これらに類するような任意のオーディオ信号であってもよい。コンピュータ読み取り可能な媒体上に記憶されているファイルから、ウェブサイトのようなネットワークリソースから、または、別のソースから、オーディオ入力信号は受け取られてもよい。
【００７７】
ブロック９０４では、望ましい利得入力が提供されたか否かが決定される。望ましい利得入力は、１組のスライダーまたはこれに類するものから提供され（例えば、図２参照）、オーディオ入力信号の１つ以上の周波数帯域に対する利得値を表すことができる。１つの実施形態において、望ましい利得入力が、ユーザによって提供されてもよい。
【００７８】
望ましい利得入力が提供された場合、ブロック９０６では、周波数ワープ等化フィルタの内部利得値が、望ましい利得入力に少なくとも部分的に基づいて調整される。内部利得値は、周波数ワープ等化フィルタの係数であってもよい。これらの内部利得値を調整することは、１つ以上の周波数帯域の望ましい利得値を実現または近似するために、内部利得値を再計算することを含んでいてもよい。
【００７９】
ブロック９０４において、または、ブロック９０６の後に、望ましい利得入力が提供されなかった場合、プロセス９００は、ブロック９０８に進む。ブロック９０８において、オーディオ入力信号は、周波数ワープ等化フィルタでフィルタリングされる。好都合にも、使用される等化フィルタは、ここで使用された周波数ワープ等化フィルタのうちの任意のものであってもよい。同様に、等化フィルタは、多くの現在利用可能な等化フィルタよりも、より効率的におよび／または正確にオーディオ信号を等化することができる。
【００８０】
図１０Ａは、スライダー１００２が低い位置に均一に設定されている例示的なグラフィック等化器１０００ａを示している。１０個のスライダー１００２が示されており、これらは、１０個の周波数帯域に対応している。中心周波数の実際の値は示されていないが、中心周波数は、任意のスケール（例えば、バークまたはＡＮＳＩ）であってもよい。グラフィック等化器１０００ａは、（例えば、１０個の周波数帯域を含めるように改良された）上述した周波数ワープ等化フィルタのうちの任意のもののような等化フィルタに出力信号を提供することができる。図１０Ｂは、グラフィック等化器１０００ａからの入力に少なくとも部分的に基づいた、等化フィルタの例示的な周波数応答を図示している。トレース１０１０は、スライダー１００２が、同じ、または、実質的に同じ位置にある、実質的に平坦な周波数応答を図示している。平坦な周波数応答１０００ｂは、２０ヘルツから２０キロヘルツまでの全体または実質的に全体の可聴周波数範囲にわたって広がっている。さらに詳細に述べると、ある実施形態では、平坦または実質的に平坦な周波数応答１０００ｂは、約１００ヘルツから約１０キロヘルツまで広がっている。
【００８１】
図１１Ａは、グラフィック等化器１１００ａの別の構成を示している。グラフィック等化器１１００ａのスライダー１１０２は、低位置にあるのに対して、スライダー１１０４はスライダー１１０２に比べて高位置にある。図１１Ｂは、グラフィック等化器１１００ａの入力に対応している等化器フィルタの周波数応答１１００ｂを図示している。スライダー１１０２が低い場合には、周波数応答１１００ｂのトレース１１００が、領域１１２０において、同様に低い。スライダー１１０４が高い場合には、トレース１１１０は領域１１３０において高い。このように、ある実施形態では、周波数応答１１００ｂは、正確に、または、実質的に正確に、スライダー１１０２および１１０４の設定に対応していることが分かる。
【００８２】
図１２Ａは、グラフィック等化器１２００ａの別の構成を図示している。スライダー１２０４は高位置にある一方で、スライダー１２０２は低位置にある。図１２Ｂは、スライダー位置１２０２および１２０４に対応している周波数応答１２００ｂを図示している。スライダー１２０２が低位置にある場合に、周波数応答１２００ｂのトレース１２２０もまた、領域１２２０によって図示したように、低位置にある。スライダー１２０４が高位置にある場合に、周波数応答１２００ｂのトレース１２１０もまた、領域１２３０によって図示したように、高位置にある。このように、図１２Ａおよび１２Ｂは、ここで記述した周波数ワープ等化フィルタのある実施形態によって実現できる精度をさらに図示している。
【００８３】
図１３は、等化フィルタ１３４０を備えた例示的な移動体デバイス１３００を図示しており、等化フィルタ１３４０は、上述した等化フィルタのうちの任意のものとして実現してもよい。移動体デバイス１３００は、他のコンピューティングデバイスよりも、コンピューティングリソースがより少ないことから、より少ないコンピューティングリソースを使用しながらもより優れた精度を提供する等化フィルタ１３４０を備えると、移動体デバイス１３００は恩恵が得られるかもしれない。移動体デバイス以外のデバイスも、さまざまなインプリメンテーションにおいて、ここで記述した等化フィルタのうちの任意のものを実現することができる。
【００８４】
実施形態に依存して、ここで記述したアルゴリズムのうちの任意の、ある動作、イベント、または機能を異なるシーケンスで実行することができ、また、ひとまとめに追加したり、組み合わせたり、外したりしてもよい（例えば、記述した動作またはイベントのすべてが、アルゴリズムの実行のために必要なわけではない）。さらに、ある実施形態では、例えば、マルチスレッド処理、割り込み処理、あるいは、複数のプロセッサまたはプロセッサコアを通して、シーケンシャルにではなく、同時に、動作またはイベントを実行してもよい。
【００８５】
ここに開示した実施形態に関連して記述した、さまざまな例示的な論理的ブロック、モジュール、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、あるいは双方を組み合わせたものとして実現してもよい。ハードウェアおよびソフトウェアのこの互換性を明確に図示するために、さまざまな例示的なコンポーネント、ブロック、モジュール、およびステップを、一般的に、これらの機能の観点から上記で記述した。この機能が、ハードウェアまたはソフトウェアとして実現されるか否かは、システム全体に課せられている特定のアプリケーションおよび設計制約に依存する。それぞれ特定のアプリケーションに対して変わる方法で、記述した機能を実現してもよいが、このようなインプリメンテーションの決定は、本開示の範囲からの逸脱を生じさせるものとして解釈すべきはでない。
【００８６】
ここで開示した実施形態に関連して記述した、さまざまな例示的な論理的ブロックおよびモジュールは、汎用プロセッサ、デジタルシグナルプロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラム可能ゲートアレイ（ＦＰＧＡ）または他のプログラム可能ロジックデバイス、ディスクリートゲートまたはトランジスタロジック、ディスクリートハードウェアコンポーネント、あるいは、ここで記述した機能を行うように設計されたこれらの任意の組み合わせで、実現しても、あるいは、実行してもよい。汎用プロセッサはマイクロプロセッサであってもよいが、代替実施形態では、プロセッサは、プロセッサ、制御装置、マイクロ制御装置、または、状態機械、これらと同じものを組み合わせたもの、または、これらに類するものであってもよい。プロセッサはまた、コンピューティングデバイスの組み合わせとして、例えば、ＤＳＰとマイクロプロセッサの組み合わせとして、複数のマイクロプロセッサとして、ＤＳＰコアを組み合わせた１つ以上のマイクロプロセッサとして、あるいは、このような構成の他の任意のものとして実現してもよい。
【００８７】
ここで開示した実施形態と関連して記述した方法のステップまたはアルゴリズムは、直接、ハードウェアで、プロセッサにより実行可能なソフトウェアモジュールで、あるいは、２つのものを組み合わせたもので具体化してもよい。ソフトウェアモジュールは、ＲＡＭメモリ、フラシュメモリ、ＲＯＭメモリ、ＥＰＲＯＭメモリ、ＥＥＰＲＯＭメモリ、レジスタ、ハードディスク、リムーブバルディスク、ＣＤ−ＲＯＭ、あるいは技術的に知られている他の何らかの形態の記憶媒体に存在していてもよい。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるようにプロセッサに結合されていてもよい。代替実施形態では、記憶媒体はプロセッサと一体化してもよい。プロセッサおよび記憶媒体は、ＡＳＩＣに存在していてもよい。ＡＳＩＣは、ユーザ端末中に存在していてもよい。代替実施形態では、プロセッサおよび記憶媒体は、ユーザ端末においてディスクリートコンポーネントとして存在していてもよい。
【００８８】
上記の詳細な説明を示し、さまざまな実施形態に適用されるような新規な特徴を説明し指摘したが、図示したデバイスまたはアルゴリズムの形態および詳細において、本開示の精神を逸脱することなく、さまざまな省略、置換、および変更がなされ得ることが理解されるであろう。認識されるように、いくつかの特徴は他のものと別々に使用または実施してもよいので、ここで記述した本発明のある実施形態は、ここで述べた特徴および利益のすべてを提供しない形態内で具体化してもよい。ここで開示したある発明の範囲は、先述の説明によってではなく、特許請求の範囲によって示されている。特許請求の範囲の均等物の意味および範囲内に入るすべての変更は、本発明の範囲内に包含されるべきものである。
【図１】
0005399271.tif 000002
【図２】
0005399271.tif 000003
【図３Ａ】
0005399271.tif 000004
【図３Ｂ】
0005399271.tif 000005
【図３Ｃ】
0005399271.tif 000006
【図３Ｄ】
0005399271.tif 000007
【図４Ａ】
0005399271.tif 000008
【図４Ｂ】
0005399271.tif 000009
【図４Ｃ】
0005399271.tif 000010
【図５】
0005399271.tif 000011
【図６Ａ】
0005399271.tif 000012
【図６Ｂ】
0005399271.tif 000013
【図７】
0005399271.tif 000014
【図８】
0005399271.tif 000015
【図９】
0005399271.tif 000016
【図１０Ａ】
0005399271.tif 000017
【図１０Ｂ】
0005399271.tif 000018
【図１１Ａ】
0005399271.tif 000019
【図１１Ｂ】
0005399271.tif 000020
【図１２Ａ】
0005399271.tif 000021
【図１２Ｂ】
0005399271.tif 000022
【図１３】
0005399271.tif 000023