(57)【要約】所望の周波数特性の波形を数値列として入力し、これを逆ＦＦＴすることによってフィルタ係数群を求めることにより、専門知識がなくても、希望する周波数特性の波形をイメージとして入力するだけで、音質調整装置を構成する第１のＦＩＲフィルタを簡易的に設計できるようにする。また、入力された数値列に所定の演算を行い、その結果に対して逆ＦＦＴの演算等を行うことにより、ゲインの基準値を軸として上記第１のＦＩＲフィルタと対称的な周波数特性を有する第２のＦＩＲフィルタも簡易的に設計できるようにする。
2003096534.tif 000002
【特許請求の範囲】
【請求項１】
複数の遅延器から成るタップ付き遅延線における各タップの信号をフィルタ係数群によりそれぞれ数倍した後加算して出力するタイプのデジタルフィルタを用いた音質調整装置の設計方法であって、
所望の周波数特性を表す数値列もしくは関数を入力し、当該入力した数値列もしくは関数を逆フーリエ変換してその結果の実数項を抽出し、当該抽出した実数項から成る数値列に対して、その前半部と後半部とを並べ替える処理と、上記実数項から成る数値列を２ｎ倍（ｎは自然数）して小数点以下を丸めた後その結果を１／２ｎ倍する丸め処理とを行い、これによって得られた数値列を第１のフィルタのフィルタ係数群として求めるとともに、
上記入力した数値列もしくは関数に所定の演算を行い、その結果に対して上記逆フーリエ変換、並べ替え処理および丸め処理を行うことによって、ゲインの基準値を軸として上記第１のフィルタと対称的な周波数特性を有する第２のフィルタのフィルタ係数群を求めるようにしたことを特徴とする音質調整装置の設計方法。
【請求項２】
周波数軸およびゲイン軸の両軸が対数目盛りの２次元平面において上記入力した数値列もしくは関数をｆ（ｘ）＝１＋ｇ（ｘ）で表した場合に、上記入力した数値列もしくは関数に対して行う上記所定の演算は、
ｆ（ｘ）’＝１−１／（１＋ｇ（ｘ））
であることを特徴とする請求の範囲第１項に記載の音質調整装置の設計方法。
【請求項３】
複数の遅延器から成るタップ付き遅延線における各タップの信号をフィルタ係数群によりそれぞれ数倍した後加算して出力するタイプのデジタルフィルタを用いた音質調整装置の設計方法であって、
所望の周波数特性を表す数値列もしくは関数であって、上記デジタルフィルタのタップ数よりも多いデータ点を有する数値列もしくは関数を入力し、当該入力した数値列もしくは関数を逆フーリエ変換してその結果の実数項を抽出し、当該抽出した実数項から成る数値列に対して、その前半部と後半部とを並べ替える処理と、上記実数項から成る数値列に所定の窓関数を掛ける処理とを行い、これによって得られた数値列を第１のフィルタのフィルタ係数群として求めるとともに、
上記入力した数値列もしくは関数に所定の演算を行い、その結果に対して上記逆フーリエ変換、並べ替え処理および窓掛け処理を行うことによって、ゲインの基準値を軸として上記第１のフィルタと対称的な周波数特性を有する第２のフィルタのフィルタ係数群を求めるようにしたことを特徴とする音質調整装置の設計方法。
【請求項４】
上記逆フーリエ変換の結果の実数項から成る数値列が並べ替えられる前もしくは並べ替えられた後の数値列、あるいは、上記窓関数が掛けられた後の数値列を２ｎ倍（ｎは自然数）して小数点以下を丸め、その結果を１／２ｎ倍する丸め処理を更に行うように成し、
上記所望の周波数特性を表す数値列もしくは関数を入力して逆フーリエ変換、並べ替え処理、窓掛け処理および丸め処理を行うことによって上記第１のフィルタのフィルタ係数群を求めるとともに、
上記入力した数値列もしくは関数に所定の演算を行い、その結果に対して上記逆フーリエ変換、並べ替え処理、窓掛け処理および丸め処理を行うことによって上記第２のフィルタのフィルタ係数群を求めるようにしたことを特徴とする請求の範囲第３項に記載の音質調整装置の設計方法。
【請求項５】
周波数軸およびゲイン軸の両軸が対数目盛りの２次元平面において上記入力した数値列もしくは関数をｆ（ｘ）＝１＋ｇ（ｘ）で表した場合に、上記入力した数値列もしくは関数に対して行う上記所定の演算は、
ｆ（ｘ）’＝１−１／（１＋ｇ（ｘ））
であることを特徴とする請求の範囲第３項に記載の音質調整装置の設計方法。
【請求項６】
複数の遅延器から成るタップ付き遅延線における各タップの信号をフィルタ係数群によりそれぞれ数倍した後加算して出力するタイプのデジタルフィルタを用いた音質調整装置の設計装置であって、
所望の周波数特性の波形を表す数値列もしくは関数を入力する入力手段と、
上記入力手段により入力された数値列もしくは関数を逆フーリエ変換し、その結果の実数項を抽出する逆フーリエ変換手段と、
上記逆フーリエ変換により求められた数値列の前半部と後半部とを並べ替える並べ替え手段と、
上記並べ替え手段により並べ替えられる前もしくは並べ替えられた後の上記実数項の数値列を２ｎ倍（ｎは自然数）して小数点以下を丸め、その結果を１／２ｎ倍する処理を行う丸め手段とを備え、
上記入力手段により入力された所望の周波数特性を表す数値列もしくは関数に対して上記逆フーリエ変換手段、上記並べ替え手段および上記丸め手段の処理を行うことによって第１のフィルタのフィルタ係数群を求めるとともに、上記入力手段により入力された数値列もしくは関数に所定の演算を行い、その結果に対して上記逆フーリエ変換手段、上記並べ替え手段および上記丸め手段の処理を行うことによって、ゲインの基準値を軸として上記第１のフィルタと対称的な周波数特性を有する第２のフィルタのフィルタ係数群を求めるようにしたことを特徴とする音質調整装置の設計装置。
【請求項７】
上記入力手段は、周波数−ゲイン特性を表すための２次元入力座標上において上記所望の周波数特性の波形を描画するための手段と、描画された波形を上記数値列もしくは関数として入力するための手段とを含むことを特徴とする請求の範囲第６項に記載の音質調整装置の設計装置。
【請求項８】
周波数軸およびゲイン軸の両軸が対数目盛りの２次元平面において上記入力手段により入力した数値列もしくは関数をｆ（ｘ）＝１＋ｇ（ｘ）で表した場合に、上記入力した数値列もしくは関数に対して行う上記所定の演算は、
ｆ（ｘ）’＝１−１／（１＋ｇ（ｘ））
であることを特徴とする請求の範囲第６項に記載の音質調整装置の設計装置。
【請求項９】
複数の遅延器から成るタップ付き遅延線における各タップの信号をフィルタ係数群によりそれぞれ数倍した後加算して出力するタイプのデジタルフィルタを用いた音質調整装置の設計装置であって、
所望の周波数特性の波形を表す数値列もしくは関数であって、上記デジタルフィルタのタップ数よりも多いデータ点を有する数値列もしくは関数を入力する入力手段と、
上記入力手段により入力された数値列もしくは関数を逆フーリエ変換し、その結果の実数項を抽出する逆フーリエ変換手段と、
上記逆フーリエ変換により求められた数値列の前半部と後半部とを並べ替える並べ替え手段と、
上記並べ替え手段により並べ替えられる前もしくは並べ替えられた後の数値列に対して所定の窓関数を掛ける窓処理手段とを備え、
上記入力手段により入力された所望の周波数特性を表す数値列もしくは関数に対して上記逆フーリエ変換手段、上記並べ替え手段および上記窓処理手段の処理を行うことによって第１のフィルタのフィルタ係数群を求めるとともに、上記入力手段により入力された数値列もしくは関数に所定の演算を行い、その結果に対して上記逆フーリエ変換手段、上記並べ替え手段および上記窓処理手段の処理を行うことによって、ゲインの基準値を軸として上記第１のフィルタと対称的な周波数特性を有する第２のフィルタのフィルタ係数群を求めるようにしたことを特徴とする音質調整装置の設計装置。
【請求項１０】
上記並べ替え手段により並べ替えられる前もしくは並べ替えられた後の数値列、あるいは、上記窓処理手段により窓掛けが行われた後の数値列を２ｎ倍（ｎは自然数）して小数点以下を丸め、その結果を１／２ｎ倍する処理を行う丸め手段を備え、
上記入力手段により入力された所望の周波数特性を表す数値列もしくは関数に対して上記逆フーリエ変換手段、上記並べ替え手段、上記窓処理手段および上記丸め手段の処理を行うことによって上記第１のフィルタのフィルタ係数群を求めるとともに、上記入力手段により入力された数値列もしくは関数に所定の演算を行い、その結果に対して上記逆フーリエ変換手段、上記並べ替え手段、上記窓処理手段および上記丸め手段の処理を行うことによって上記第２のフィルタのフィルタ係数群を求めるようにしたことを特徴とする請求の範囲第９項に記載の音質調整装置の設計装置。
【請求項１１】
上記入力手段は、周波数−ゲイン特性を表すための２次元入力座標上において上記所望の周波数特性の波形を描画するための手段と、描画された波形を上記数値列もしくは関数として入力するための手段とを含むことを特徴とする請求の範囲第９項に記載の音質調整装置の設計装置。
【請求項１２】
周波数軸およびゲイン軸の両軸が対数目盛りの２次元平面において上記入力手段により入力した数値列もしくは関数をｆ（ｘ）＝１＋ｇ（ｘ）で表した場合に、上記入力した数値列もしくは関数に対して行う上記所定の演算は、
ｆ（ｘ）’＝１−１／（１＋ｇ（ｘ））
であることを特徴とする請求の範囲第９項に記載の音質調整装置の設計装置。
【請求項１３】
請求の範囲第６項に記載の各手段としてコンピュータを機能させるための音質調整装置設計用プログラム。
【請求項１４】
請求の範囲第９項に記載の各手段としてコンピュータを機能させるための音質調整装置設計用プログラム。
【請求項１５】
請求の範囲第１項に記載の設計方法を用いて設計された音質調整装置。
【請求項１６】
請求の範囲第３項に記載の設計方法を用いて設計された音質調整装置。
【請求項１７】
請求の範囲第６項に記載の設計装置を用いて設計された音質調整装置。
【請求項１８】
請求の範囲第９項に記載の設計装置を用いて設計された音質調整装置。
【発明の詳細な説明】
技術分野
本発明は、音質調整装置の設計方法および設計装置、音質調整装置設計用プログラム、音質調整装置に関し、特に、デジタル信号処理によって音声信号の所望の周波数帯域を強調あるいは非強調して音質を改善するための装置（イコライザ）の設計方法に用いて好適なものである。
背景技術
従来、音声信号を出力する装置において、出力音声の音質を改善するための方法として種々のものが提案されている。その中でも比較的簡単な方法の１つに、入力音声信号に対してローパスフィルタ処理やハイパスフィルタ処理を施すというものがある。
この種の音質調整装置では、入力音声信号をローパスフィルタとハイパスフィルタとに通し、各フィルタの出力信号と入力音声信号との利得を制御して全て合算する。このとき、各フィルタ出力に対する利得と入力音声信号に対する利得とを任意に設定することにより、所望の周波数帯域の音を任意に強調することが可能となる。
例えば、低周波領域の音（いわゆる低音）を強調したいときは、ローパスフィルタの出力信号に対する利得を大きくすれば良い。また、高周波領域の音（いわゆる高音）を強調したいときは、ハイパスフィルタの出力信号に対する利得を大きくすれば良い。
この種の音質調整装置に用いるフィルタとしては、ＩＩＲ（Ｉｎｆｉｎｉｔｅ  Ｉｍｐｕｌｓｅ  Ｒｅｓｐｏｎｓｅ：無限長インパルス応答）フィルタやＦＩＲ（Ｆｉｎｉｔｅ  Ｉｍｐｕｌｓｅ  Ｒｅｓｐｏｎｓｅ：有限長インパルス応答）フィルタが多く用いられる。このうちＦＩＲフィルタは、次のような利点を持つ。第１に、ＦＩＲフィルタの伝達関数の極はｚ平面の原点のみにあるため、回路は常に安定である。第２に、完全に正確な直線位相特性を実現することができる。
これらのＩＩＲフィルタやＦＩＲフィルタでは、基本となるのはローパスフィルタであり、ハイパスフィルタ、帯域通過フィルタ、帯域消去フィルタ等のその他のフィルタは、ローパスフィルタから周波数変換等の処理を行うことによって導かれる。ここでの周波数変換処理では、サンプリング周波数とカットオフ周波数との比率をもとに、窓関数やチェビシェフ近似法などを用いた畳み込み演算等を行うことにより、フィルタの伝達関数を求め、それを更に周波数成分に置き換える処理を行っている。
しかしながら、上記従来の音質調整装置のフィルタ設計法では、周波数変換などの高度な専門知識が必要であり、音質調整装置を容易には設計できないという問題があった。また、窓関数やチェビシェフ近似法などを用いた周波数変換は、その計算が非常に複雑である。そのため、これをソフトウェアで実現すると処理負荷が重くなり、ハードウェアで実現すると回路規模が大きくなるという問題があった。
本発明は、このような問題を解決するために成されたものであり、ＦＩＲデジタルフィルタを用いた音質調整装置を簡易的に設計できるようにすることを目的とする。
発明の開示
上記課題を解決するために、本発明においては、所望の周波数特性を表す数値列もしくは関数を入力し、当該入力した数値列もしくは関数を逆フーリエ変換してその結果の実数項を抽出し、当該抽出した実数項から成る数値列に対して、その前半部と後半部とを並べ替える処理と、上記実数項から成る数値列を２ｎ倍（ｎは自然数）して小数点以下を丸めた後その結果を１／２ｎ倍する丸め処理とを行い、これによって得られた数値列を音質調整装置を構成する第１のフィルタのフィルタ係数群として決定する。
また、上記のように入力した数値列もしくは関数に所定の演算を行い、その結果に対して逆フーリエ変換、並べ替え処理および丸め処理を行うことにより、ゲインの基準値を軸として上記第１のフィルタと対称的な周波数特性を有する第２のフィルタのフィルタ係数群を求める。
本発明の他の態様では、所望の周波数特性を表す数値列もしくは関数であって、デジタルフィルタのタップ数よりも多いデータ点を有する数値列もしくは関数を入力し、当該入力した数値列もしくは関数を逆フーリエ変換してその結果の実数項を抽出し、当該抽出した実数項から成る数値列に対して、その前半部と後半部とを並べ替える処理と、上記実数項から成る数値列に所定の窓関数を掛ける処理とを行い、これによって得られた数値列を音質調整装置を構成する第１のフィルタのフィルタ係数群として決定する。
また、上記のように入力した数値列もしくは関数に所定の演算を行い、その結果に対して逆フーリエ変換、並べ替え処理および窓掛け処理を行うことにより、基準値を軸として上記第１のフィルタと対称的な周波数特性を有する第２のフィルタのフィルタ係数群を求める。
発明を実施するための最良の形態
以下、本発明の一実施形態を図面に基づいて説明する。
図１は、本実施形態による音質調整装置の設計方法の処理手順を示すフローチャート、図２は、本実施形態の音質調整装置を構成するデジタルフィルタの設計方法の処理手順を示すフローチャート、図３および図４は、設計する音質調整装置の周波数特性を示す図である。なお、この周波数特性においては、周波数軸（横軸）もゲイン軸（縦軸）も対数目盛りとしている。
本実施形態において設計する音質調整装置は、入力音声信号に対してローパスフィルタ処理やハイパスフィルタ処理を施し、各フィルタの出力信号と入力音声信号との利得を制御して全て合算するタイプのものである。したがって、この音質調整装置の設計は、ローパスフィルタとハイパスフィルタとを設計することによって成される。
ここで設計するフィルタは、複数の遅延器から成るタップ付き遅延線を備え、各タップの信号を、与えられるフィルタ係数群によりそれぞれ数倍した後、加算して出力するタイプのＦＩＲフィルタである。ＦＩＲフィルタは、有限時間長で表されるインパルス応答がそのままフィルタの係数となっている。したがって、ＦＩＲフィルタを設計するということは、希望の周波数特性が得られるようにフィルタ係数群を決定するということである。
図１に示すように、まず低音部の基本となる周波数特性を持つ第１のローパスフィルタ（ＢＡＳＳ１）を設計する（ステップＳ１）。この第１のローパスフィルタは、図３に示すように、ゲインの基準値１（０ｄＢ）より正の方向で最大の振幅（１２ｄＢ）を有するフィルタである。
このステップＳ１では、図２に示す手順に従って第１のローパスフィルタを設計する。すなわち、まず所望の周波数特性の波形を表す数値列を入力する（ステップＳ１１）。このとき入力する数値列は、できるだけデータ数が多くなるようにするのが好ましい。本来、理想的なフィルタを構成するには、フィルタ係数を無限個必要とし、フィルタのタップ数も無限個にする必要がある。したがって、所望の周波数特性との誤差を小さくするためには、フィルタ係数の数に対応する入力データの数を、周波数誤差が必要な範囲内に入る程度まで多くするのが好ましい。少なくとも、求めるフィルタ係数の数（デジタルフィルタのタップ数）よりもデータ数が多くなるように数値列を入力する。
具体的には、図５に示すように、対数目盛りのゲインを“１”で基準化したフィルタの周波数−ゲイン特性を描いて、これを数値データ化する。入力データは、サンプリング周波数の中央を軸として対称となるようにする。このとき、入力データ長（グラフの長さ、すなわち数値列の数）ｍは、周波数誤差が必要な範囲内に入る値で、かつ、ステップＳ１２における逆ＦＦＴ処理の簡易化のために２ｋとなるようにする。
例えば、サンプリング周波数が４４．１ＫＨｚの音声信号を対象とするＦＩＲフィルタを設計する場合、入力データ長ｍと最大周波数誤差との関係は、図６に示すようになる。ここで言う最大周波数誤差は、グラフの１目盛り当たりの周波数に相当し、４４．１ＫＨｚ／ｍの演算によって求められる。図５に示すグラフの例では、入力データ長ｍが５１２のローパスフィルタに相当する周波数特性を示している。
このデータ入力は、個々の数値を直接入力しても良いし、周波数−ゲイン特性を表すための２次元入力座標上において、所望の周波数特性の波形を描画し、描画された波形をそれに対応する数値列に置換入力するようにしても良い。後者の入力手法を用いれば、所望の周波数特性をイメージとして確認しながらデータ入力を行うことができるので、所望の周波数特性を表すデータの入力を直感的に行いやすくすることができる。
後者の入力手法を実現する手段は幾つか考えられる。例えば、コンピュータのディスプレイ画面上に周波数−ゲイン特性を表す２次元平面を表示して、その２次元平面上に所望の周波数特性の波形をＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）等により描画し、それを数値データ化するという方法が考えられる。また、コンピュータ画面上のＧＵＩの代わりに、アイジタイザやプロッタ等のポインティングデバイスを用いても良い。ここに挙げている手法は単なる例に過ぎず、これ以外の手法により数値列を入力するようにしても良い。また、ここでは所望の周波数特性を数値列として入力しているが、当該周波数特性の波形を表す関数として入力するようにしても良い。
次に、このようにして入力された周波数特性を伝達関数として逆フーリエ変換（逆ＦＦＴ）し、その結果の実数項を抽出する（ステップＳ１２）。周知のように、ある数値列に対してフーリエ変換（ＦＦＴ）の処理を行うと、その数値列に対応した周波数−ゲイン特性の波形が得られる。したがって、所望の周波数−ゲイン特性の波形を表す数値列もしくは関数を入力してそれを逆ＦＦＴし、その実数項を抽出すれば、当該周波数−ゲイン特性を実現するのに必要な元の数値列が得られる。この数値列が、求めるフィルタ係数群に相当するものである。
ただし、逆ＦＦＴにより求められた数値列そのものは、フィルタ係数群としてそのまま使える順番には並んでいない。すなわち、どのようなタイプのデジタルフィルタでも、フィルタ係数の数値列は、中央値が最も大きく、中央から離れるに従って振幅を繰り返しながら値が徐々に小さくなるという対称性を持っている。これに対して、逆ＦＦＴにより求められた数値列は、中央値が最も小さく、両端の値が最も大きくなっている。
そこで、逆ＦＦＴにより求められた数値列の中央値が両端にくるように、当該数値列を前半部と後半部とに分けてそれらを並べ替える（ステップＳ１３）。すなわち、図７に示すように、０クロック目の数値を２５６クロック目の数値に（以下、０→２５６と表記する）、１→２５７、２→２５８、・・・、２５５→５１１、２５６→０、２５７→１、・・・５１１→２５５のように並べ替えることにより、中央値が最大値となり前後対称となるようにする。
このようにして得られた数値列をそのままフィルタ係数群として決定することも可能であるが、本実施形態では更に、窓掛け演算を行う（ステップＳ１４）。上述のように、ステップＳ１１のデータ入力段階においては、所望の周波数特性との誤差が必要な範囲内に入る程度まで入力データの数を多くしている。この入力データ数はフィルタ係数の数に対応するものである。したがって、この入力データから逆ＦＦＴなどの処理によって求められた数値列をそのままフィルタ係数群として用いると、デジタルフィルタのタップ数が非常に多くなり、回路規模が大きなものになってしまう。そこで、窓掛け演算を行うことによって、タップ数を必要な数に減らすようにしている。
このとき用いる窓関数には、方形窓、ハミング窓、ハニング窓、ハートレット窓などの各種の関数が存在する。何れの窓関数を適用しても良いが、特にハニング窓を用いることが好ましい。ハニング窓は、窓の両端の値が０で、しかも中央値から両端に向かって値がなだらかに減衰していく関数だからである。例えば方形窓を用いた場合には、タップ数を有限個に強制的に打ち切ることになるが、これではフィルタ特性上にリンギング（波打ち現象）が発生してしまう。これに対し、フィルタ係数を有限の値で打ち切るのではなく、なだらかに０に移行するようにすれば、リンギングの発生を抑制することができる。
また、このとき用いる窓の幅は、入力データの減衰量の大きさと関連して決める必要がある。図５に示した入力データの場合は、減衰が緩やかなので、ハニング窓の打ち切りまでの幅を、例えば６４とする。ステップＳ１４では、この幅６４のハニング窓（６４個のデータ列）を、並べ替えによって求められた数値列（５１６個のデータ列）の中央部分に乗算する。このとき、ハニング窓の範囲外の係数は全て０として計算する。
このような窓掛け演算によって得られた数値列をそのままフィルタ係数群として用いることも可能である。しかし、逆ＦＦＴおよび窓掛け演算によって求まるフィルタ係数群は、少数点以下の桁数が非常に多く、かつ複雑でランダムな値の集合である。そのため、この数値列をそのままフィルタ係数群として用いると、デジタルフィルタに必要な乗算器の数が膨大となり、現実的でない。
そのため、数値列の少数点数桁以下を切り捨てるなどしてフィルタ係数を丸める必要がある。ところが、単なる切り捨てによる丸め処理では、その結果の数値列は桁数が減っているだけで依然として複雑でランダムな値であり、やはり多くの乗算器を必要とする。また、単なる切り捨てでは、得られるフィルタ係数群の精度が悪く、所望の周波数特性との誤差が大きくなってしまう。
そこで、本実施形態では、以下に述べるような丸め演算を行う（ステップＳ１５）。すなわち、上記ステップＳ１４で窓掛けされた後の数値列を２ｎ倍（ｎは自然数で、例えばｎ＝２０４８）して小数点以下を丸め（整数化する）、その結果を１／２ｎ倍する処理を行う。
このような丸め演算によれば、全てのフィルタ係数は１／２ｎの整数倍の値を持つようになる。よって、デジタルフィルタの各タップからの信号に対して整数倍の部分を個別に乗算し、それぞれの乗算出力を全て加算した後にまとめて１／２ｎ倍するようにデジタルフィルタを構成することが可能となる。しかも、整数倍の部分は、２ｉ＋２ｊ＋・・・（ｉ，ｊは任意の整数）のように２進数の足し算で表現できる。
これにより、デジタルフィルタ全体として乗算器の使用数を大きく削減し、構成を簡素化することができる。また、逆ＦＦＴにより得られた数値列を２ｎ倍してから丸めているので、数値列の小数点数桁以下を単に丸める場合に比べて丸め誤差を小さくすることができる。これにより、フィルタ特性の精度を落とすことなくフィルタ係数群を簡素化することができる。
本実施形態においては、このような丸め演算によって求められた数値列を最終的にフィルタ係数群として決定する。なお、上述のステップＳ１３〜Ｓ１５の処理は、必ずしもこの順番で行う必要はなく、少なくとも窓掛け演算より後に丸め演算を行うのであれば良い。例えば、窓掛け演算を並べ替えの前に行っても良い。この場合は、窓の両端の係数値が“１”で、窓の中央部の係数値が“０”となるようなハニング窓を乗算する。このように窓掛け演算を一連の手順の中の早い段階で行うことにより、以降の演算に使用するデータ数を減らすことができ、演算にかかる処理負荷を軽減することができる。
このようにして求められるフィルタ係数群（６４個のフィルタ係数）は、図５のような入力データの周波数特性をほぼ正確に実現している。しかも、位相特性も直線で安定な特性を実現できている。
以上のようにして第１のローパスフィルタを設計したら、次に第２のローパスフィルタ（ＢＡＳＳ２）を設計する（ステップＳ２）。この第２のローパスフィルタは、図３に示すように、ゲインの基準値１（０ｄＢ）より負の方向で最大の振幅（−１２ｄＢ）を有するフィルタであり、基準値１を軸として第１のローパスフィルタと線対称な特性を有するものである。この第２のローパスフィルタの設計も、図２のフローチャートに示す手順に従って行う。
縦横の両軸を対数目盛りとしたＬＯＧ−ＬＯＧ平面において、基準値１より上側の曲線ｆ（ｘ）を１＋ｇ（ｘ）で表すとすると、この曲線ｆ（ｘ）に対して基準値１を軸として線対称な曲線ｆ（ｘ）’は、次の式（１）のようになる。
ｆ（ｘ）’＝１−１／（１＋ｇ（ｘ））・・・（１）
そこで、ステップＳ１１では、第１のローパスフィルタを設計するために入力された数値列を式（１）に代入することにより、第２のローパスフィルタの入力データを得る。そして、この入力データに対してステップＳ１２〜Ｓ１５と同様の処理を行うことにより、第２のローパスフィルタのフィルタ係数群を求める。
さらに、以上のような第１および第２のローパスフィルタの設計法と同様にして、第１および第２のハイパスフィルタを設計する（ステップＳ３，Ｓ４）。ただし、ハイパスフィルタの設計では、ステップＳ１４の窓掛け演算で用いるハニング窓の幅を８とする。ハイパスフィルタの場合、逆ＦＦＴした結果の実数項の減衰量が大きいので、窓の幅を８まで短くすることが可能である。窓の幅を小さくすることにより、フィルタのタップ数も少なくすることができる。
なお、図１の例では、第１および第２のローパスフィルタを設計した後に第１および第２のハイパスフィルタを設計しているが、この順番は逆でも良い。また、図１の例では、第１のローパスフィルタあるいは第１のハイパスフィルタを設計した後に第２のローパスフィルタあるいは第２のハイパスフィルタを設計しているが、この順番も逆で良い。
図８は、以上のようにして求められたＬＰＦ１，２、ＨＰＦ１，２のフィルタ係数群を示す図である。これらのフィルタ係数群を用いて、入力音声信号を遅延させる１つのディレイラインと４つのＦＩＲフィルタとから成るフィルタブロックを形成することができる。また、このフィルタ係数群に対して図９に示すような係数を乗じて“１”に加えることにより、図３および図４に示すような２ｄＢ単位の音質調整装置のフィルタ係数群を得ることができる。
このようにして設計した音質調整装置を実際に構成する場合、図８に示すフィルタ係数群を２０４８倍すると全ての値が整数となる。このようにすると、複数の遅延器から成るタップ付き遅延線の各タップの信号にフィルタ係数を乗算する計算で乗算器を用いる必要がなく、ビットシフタと加算器だけの構成で済む。また、各タップの信号とフィルタ係数との積和演算後の数値を２０４８で割る割算器も、下位１１ビットを処理すれば良く、構成を簡素化することができる。
図１０は、図８に示す４つのフィルタブロックを用いた音質調整装置の全体構成例を示す図である。図８において、１１〜１４は上記図１および図２に示す手順によって設計した第１および第２のローパスフィルタ、第１および第２のハイパスフィルタである。このうち第１のローパスフィルタ１１は、入力音声信号のディレイラインも兼ねている。１５は信号処理部であり、各フィルタ１１〜１４から出力される信号（１つのディレイライン出力と４つのフィルタ出力）とを入力し、それらの利得を制御して出力する。
図１１〜図１４は、上記４つのフィルタ１１〜１４の内部構成を示す図である。これらのフィルタ１１〜１４では、縦続接続された複数個のＤ型フリップフロップによって入力信号を１クロックＣＫずつ順次遅延させる。そして、各Ｄ型フリップフロップの出力タップから取り出した信号に対し、フィルタ係数を２０４８倍した結果の整数値を複数個の係数器によってそれぞれ乗算し、それらの乗算結果をすべて複数個の加算器で加算して出力する。なお、第１のローパスフィルタ１１では、入力音声信号が複数のＤ型フリップフロップを通過するだけのディレイラインも設けられている。
図１５は、信号処理部１５の内部構成を示す図である。図１５において、２１は第１のデコーダであり、第１および第２のローパスフィルタ１１，１２の利得制御信号を入力してデコードする。２２〜２４は複数のスイッチであり、第１のデコーダ２１によるデコード結果に基づいてスイッチング動作する。このスイッチング動作により、第１および第２のローパスフィルタ１１，１２の何れかの出力信号を選択し、その利得を制御するようになっている。
２５は割算器であり、第１および第２のローパスフィルタ１１，１２よりスイッチ２２を通過した信号を２０４８で除算する。図１１および図１２に示したように、第１および第２のローパスフィルタ１１，１２の内部では、図８に示すフィルタ係数群を２０４８倍した結果の整数値を各タップ出力に乗算している。よって、振幅を正しい値に戻すために、割算器２５においてフィルタ出力を２０４８で除算している。２６は複数の係数器であり、割算器２５を通過した信号に対して、図９に示す係数値の何れかを乗算する。どの係数を乗算するかは、第１のデコーダ２１によるデコード結果に応じて決められる。
３１は第２のデコーダであり、第１および第２のハイパスフィルタ１３，１４の利得制御信号を入力してデコードする。３２〜３４は複数のスイッチであり、第２のデコーダ３１によるデコード結果に基づいてスイッチング動作する。このスイッチング動作により、第１および第２のハイパスフィルタ１３，１４の何れかの出力信号を選択し、その利得を制御するようになっている。
３５は割算器であり、第１および第２のハイパスフィルタ１３，１４よりスイッチ３２を通過した信号を２０４８で除算する。図１３および図１４に示したように、第１および第２のハイパスフィルタ１３，１４の内部では、図８に示すフィルタ係数群を２０４８倍した結果の整数値を各タップ出力に乗算している。よって、振幅を正しい値に戻すために、割算器３５においてフィルタ出力を２０４８で除算している。３６は複数の係数器であり、割算器３５を通過した信号に対して、図９に示す係数値の何れかを乗算する。どの係数を乗算するかは、第２のデコーダ３１によるデコード結果に応じて決められる。
４１は加算器であり、第１のローパスフィルタ１１のディレイラインから入力された音声信号と、第１および第２のローパスフィルタ１１，１２の何れかの出力に対して利得制御をした後の音声信号とを加算する。４２は加算器であり、第１のローパスフィルタ１１のディレイラインから入力された音声信号と、第１および第２のハイパスフィルタ１３，１４の何れかの出力に対して利得制御をした後の音声信号とを加算する。４３は加算器であり、各加算器４１，４２の出力どうしを加算して、最終的に音質調整のされた音声信号を出力する。
以上に説明した本実施形態による音質調整装置の設計方法を実現するための装置は、ハードウェア構成、ＤＳＰ、ソフトウェアの何れによっても実現することが可能である。例えばソフトウェアによって実現する場合、本実施形態の設計装置は、実際にはコンピュータのＣＰＵあるいはＭＰＵ、ＲＡＭ、ＲＯＭなどで構成され、ＲＡＭやＲＯＭあるいはハードディスク等に記憶されたプログラムが動作することによって実現できる。
したがって、コンピュータが上記本実施形態の機能を果たすように動作させるプログラムを例えばＣＤ−ＲＯＭのような記録媒体に記録し、コンピュータに読み込ませることによって実現できるものである。上記プログラムを記録する記録媒体としては、ＣＤ−ＲＯＭ以外に、フレキシブルディスク、ハードディスク、磁気テープ、光ディスク、光磁気ディスク、ＤＶＤ、不揮発性メモリカード等を用いることができる。また、上記プログラムをインターネット等のネットワークを介してコンピュータにダウンロードすることによっても実現できる。
また、コンピュータが供給されたプログラムを実行することにより上述の実施形態の機能が実現されるだけでなく、そのプログラムがコンピュータにおいて稼働しているＯＳ（オペレーティングシステム）あるいは他のアプリケーションソフト等と共同して上述の実施形態の機能が実現される場合や、供給されたプログラムの処理の全てあるいは一部がコンピュータの機能拡張ボードや機能拡張ユニットにより行われて上述の実施形態の機能が実現される場合も、かかるプログラムは本発明の実施形態に含まれる。
以上詳しく説明したように、本実施形態では、所望の周波数特性の波形を表す数値列をイメージとして入力し、これを逆フーリエ変換することによって、音質調整装置を構成する各フィルタのフィルタ係数群を求めるようにしたので、特別な数学知識や電気工学知識がなくても、所望の周波数特性を実現するＦＩＲデジタルフィルタの係数を簡単に決定することができる。
また、本実施形態では、逆フーリエ変換により求められた数値列に対して特殊な丸め演算を行うことにより、フィルタの精度を落とさずにフィルタ係数群を簡素化することができ、フィルタ構成要素の乗算器（割算器）の使用数を大幅に削減することができる。さらに、本実施形態では、逆フーリエ変換の結果に対して必要な長さの窓関数を乗ずるようにしたので、入力データ長を長くして周波数誤差を小さく抑制すると同時に、フィルタ係数の数（デジタルフィルタのタップ数）を少なく抑えることができる。これにより、設計する音質調整装置の構成を簡素化するとともに、希望する周波数特性を高精度に実現することができる。
なお、上記実施形態は、何れも本発明を実施するにあたっての具体化の一例を示したものに過ぎず、これによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその精神、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
以上説明したように本発明によれば、所望の周波数特性の波形を数値列もしくは関数として入力し、これに逆フーリエ変換等の処理を行うことによって第１のフィルタのフィルタ係数群を求めるとともに、上記のように入力した数値列もしくは関数に所定の演算を行い、その結果に対して逆フーリエ変換等の処理を行うことにより、ゲインの基準値を軸として上記第１のフィルタと対称的な周波数特性を有する第２のフィルタのフィルタ係数群を求めるようにしたので、専門知識がなくても、音質調整装置を構成するＦＩＲデジタルフィルタを簡易的に設計することができる。
また、本発明によれば、逆フーリエ変換により求められた数値列に対して特殊な丸め演算を行うようにしたので、フィルタ特性の精度を落とすことなく、求めるフィルタ係数群を簡素化することができ、フィルタ構成要素の乗算器の使用数を大幅に削減することができる。これにより、希望する周波数特性を小さな回路規模で高精度に実現することが可能な音質調整装置を簡易的に設計することができる。
また、本発明によれば、逆フーリエ変換の結果に対して窓掛け演算を行うようにしたので、最初に入力する数値列を長くして周波数誤差を小さく抑制すると同時に、フィルタ係数の数（デジタルフィルタのタップ数）を少なく抑え、設計するデジタルフィルタの構成を簡素化することができる。これにより、希望する周波数特性を小さな回路規模で高精度に実現することが可能な音質調整装置を簡易的に設計することができる。
産業上の利用可能性
本発明は、ＦＩＲデジタルフィルタを用いた音質調整装置を簡易的に設計できるようにするのに有用である。
【図面の簡単な説明】
図１は、本実施形態による音質調整装置の設計方法の処理手順を示すフローチャートである。
図２は、本実施形態によるデジタルフィルタの設計方法の処理手順を示すフローチャートである。
図３は、設計するローパスフィルタの周波数特性の例を示す図である。
図４は、設計するハイパスフィルタの周波数特性の例を示す図である。
図５は、図２のステップＳ１１で入力する所望の周波数特性の例を示す図である。
図６は、サンプリング周波数が４４．１ＫＨｚの音声信号を対象とするＦＩＲフィルタを設計する場合における、入力データ長ｍと最大周波数誤差との関係を示す図である。
図７は、図２のステップＳ１３における並べ替え処理を説明するための図である。
図８は、所望の周波数特性を表す数値列から本実施形態の設計方法を適用して求められるフィルタ係数群を示す図である。
図９は、図３および図４に示すような２ｄＢ単位の音質調整装置のフィルタ係数群を得る際に用いられる係数を示す図である。
図１０は、本実施形態による音質調整装置の全体構成を示す図である。
図１１は、図１０に示した第１のローパスフィルタの構成を示す図である。
図１２は、図１０に示した第２のローパスフィルタの構成を示す図である。
図１３は、図１０に示した第１のハイパスフィルタの構成を示す図である。
図１４は、図１０に示した第２のハイパスフィルタの構成を示す図である。
図１５は、図１０に示した信号処理部の構成を示す図である。
【図１】
2003096534.tif 000003
【図２】
2003096534.tif 000004
【図３】
2003096534.tif 000005
【図４】
2003096534.tif 000006
【図５】
2003096534.tif 000007
【図６】
2003096534.tif 000008
【図７】
2003096534.tif 000009
【図８】
2003096534.tif 000010
【図９】
2003096534.tif 000011
【図１０】
2003096534.tif 000012
【図１１】
2003096534.tif 000013
【図１２】
2003096534.tif 000014
【図１３】
2003096534.tif 000015
【図１４】
2003096534.tif 000016
【図１５】
2003096534.tif 000017
【国際調査報告】
2003096534.tif 000018
2003096534.tif 000019
2003096534.tif 000020
2003096534.tif 000021