(57)【要約】サンプリング周波数の整数分の１の通過帯域幅を有する基本フィルタに対して周波数シフトの演算を行うことによって、互いに隣接するフィルタバンクが振幅１／２の部分で重なり合うように基本フィルタの周波数振幅特性が所定周波数ずつシフトされた複数のフィルタを生成し、基本フィルタおよび複数の周波数シフトフィルタのうち、１以上のフィルタを任意に選んでそのフィルタ係数を加算することによって最終のフィルタ係数を求めることにより、基本フィルタおよびこれから生成した複数の周波数シフトフィルタの中から所望の１以上のフィルタを選択してそのフィルタ係数を加算するだけの極めて簡易な処理で、所望の周波数特性を有するデジタルフィルタを設計できるようにする。
2005057784.tif 000002
【特許請求の範囲】
【請求項１】
有限長インパルス応答型のデジタルフィルタを設計する方法であって、
サンプリング周波数の整数分の１の通過帯域幅を有する周波数振幅特性を実現する基本フィルタに対して周波数シフトの演算を行うことにより、互いに隣接するフィルタバンクが振幅１／２の部分で重なり合うように上記基本フィルタの周波数振幅特性が所定周波数ずつシフトされた周波数振幅特性を実現する複数の周波数シフトフィルタを生成する第１のステップと、
上記基本フィルタおよび上記周波数シフトフィルタを含む複数のフィルタのうち、任意の１以上のフィルタを抽出してそのフィルタ係数を加算することによって最終生成物たるデジタルフィルタのフィルタ係数を求める第２のステップとを有することを特徴とするデジタルフィルタの設計方法。
【請求項２】
有限長インパルス応答型のデジタルフィルタを設計するための装置であって、
サンプリング周波数の整数分の１の通過帯域幅を有する周波数振幅特性を実現する基本フィルタのフィルタ係数と、互いに隣接するフィルタバンクが振幅１／２の部分で重なり合うように上記基本フィルタの周波数振幅特性が所定周波数ずつシフトされた周波数振幅特性を実現する複数の周波数シフトフィルタのフィルタ係数とを含むフィルタ係数群のテーブルデータを記憶する係数テーブル記憶手段と、
上記係数テーブル記憶手段に記憶されているフィルタ係数群のうち、指定された１以上のフィルタのフィルタ係数を加算することによって最終生成物たるデジタルフィルタのフィルタ係数を求める演算手段とを備えたことを特徴とするデジタルフィルタの設計装置。
【発明の詳細な説明】
【技術分野】  本発明はデジタルフィルタの設計方法および設計装置に関し、特に、ＦＩＲフィルタの設計法に関するものである。
【背景技術】  デジタルフィルタの１つの形態として、ＦＩＲ（Ｆｉｎｉｔｅ  Ｉｍｐｕｌｓｅ  Ｒｅｓｐｏｎｓｅ：有限長インパルス応答）フィルタが存在する。このＦＩＲフィルタは、複数の遅延器から成るタップ付き遅延線を備え、各タップの出力信号をそれぞれフィルタ係数により数倍した後、それらの乗算結果を加算して出力するタイプのフィルタであり、次のような利点を持つ。第１に、ＦＩＲフィルタの伝達関数の極はｚ平面の原点のみにあるため、回路は常に安定である。第２に、フィルタ係数が対称型であれば、完全に正確な直線位相特性を実現することができる。
このＦＩＲフィルタは、有限時間長で表されるインパルス応答がそのままフィルタ係数となっている。したがって、ＦＩＲフィルタを設計するということは、希望の周波数特性が得られるようにフィルタ係数を決定するということである。従来、ＦＩＲフィルタを設計する際には、目標とする周波数特性に基づきフィルタ係数を算出し、これに窓掛けを行って有限個の係数群を得る。そして、得られた係数群をＦＦＴ（高速フーリエ変換）することによって周波数特性に変換し、これが目標値を満足しているかを確認する方法で設計していた。
目標とする周波数特性からフィルタ係数を算出する際には、例えば、サンプリング周波数とカットオフ周波数との比率をもとに、チェビシェフ近似法を用いた畳み込み演算等を行っていた。しかしながら、従来の設計法で得られるＦＩＲフィルタの周波数特性は窓関数や近似式に依存するので、これらをうまく設定しないと、目標とする良好な周波数特性を得ることができない。ところが、窓関数や近似式を適当に設定することは、一般に困難である。また、窓掛けをすると係数の打ち切り誤差が発生するため、所望の周波数特性を実現するのが困難となる。そのため、所望の周波数特性を実現するのが極めて難しいという問題があった。
なお、タップ付き遅延線の各タップ間（各フィルタ係数間）に１以上のゼロ値を挿入することによってフィルタバンク帯域を調整する方法が知られている（例えば、特許文献１参照）。また、複数のＦＩＲフィルタを縦続接続することによって急峻な周波数特性を実現する方法も知られている（例えば、特許文献２参照）。しかしながら、これら何れの方法を用いても、ただ単にフィルタの通過帯域を狭くすることができるのみで、任意形状の周波数特性を精密に実現することはできなかった。
【特許文献１】特表平６−５０３４５０号公報
【特許文献２】特開平５−２４３９０８号公報
【発明の開示】
本発明は、このような問題を解決するために成されたものであり、任意形状の精密な周波数特性が要求されるデジタルフィルタを簡易に設計できるようにすることを目的とする。
上記した課題を解決するために、本発明によるデジタルフィルタの設計方法では、サンプリング周波数の整数分の１の通過帯域幅を有する周波数振幅特性を実現する基本フィルタに対して周波数シフトの演算を行うことにより、互いに隣接するフィルタバンクが振幅１／２の部分で重なり合うように基本フィルタの周波数振幅特性が所定周波数ずつシフトされた周波数振幅特性を実現する複数の周波数シフトフィルタを生成する第１のステップと、基本フィルタおよび周波数シフトフィルタを含む複数のフィルタのうち、任意の１以上のフィルタを抽出してそのフィルタ係数を加算することによって最終生成物たるデジタルフィルタのフィルタ係数を求める第２のステップとを有する。
また、本発明によるデジタルフィルタの設計装置は、サンプリング周波数の整数分の１の通過帯域幅を有する周波数振幅特性を実現する基本フィルタのフィルタ係数と、互いに隣接するフィルタバンクが振幅１／２の部分で重なり合うように基本フィルタの周波数振幅特性が所定周波数ずつシフトされた周波数振幅特性を実現する複数の周波数シフトフィルタのフィルタ係数とを含むフィルタ係数群のテーブルデータを記憶する係数テーブル記憶手段と、係数テーブル記憶手段に記憶されているフィルタ係数群のうち、指定された１以上のフィルタのフィルタ係数を加算することによって最終生成物たるデジタルフィルタのフィルタ係数を求める演算手段とを備える。
上記のように構成した本発明によれば、基本フィルタおよびこれから生成した複数の周波数シフトフィルタの中から所望の１以上のフィルタを選択してそのフィルタ係数を加算するだけの極めて簡易な処理で、任意形状の周波数振幅特性を有するＦＩＲデジタルフィルタを精密に設計することができる。
【図面の簡単な説明】  図１は、本実施形態によるＦＩＲデジタルフィルタの設計方法の手順を示すフローチャートである。
図２は、本実施形態による基本フィルタの生成方法の手順を示すフローチャートである。
図３は、基本フィルタの周波数振幅特性を示す図である。
図４は、基本フィルタおよびこれから生成した複数の周波数シフトフィルタの周波数振幅特性を示す図である。
図５は、本実施形態のフィルタ設計法により生成されるデジタルフィルタの周波数振幅特性の一例を示す図である。
図６は、基本ユニットフィルタおよびそのフィルタ係数間に“０”を１個ずつ挿入したフィルタの周波数振幅特性を示す図である。
図７は、窓フィルタによる基本フィルタの切り出しを説明するための周波数振幅特性図である。
図８は、基本フィルタのフィルタ係数を求める演算内容を説明するための図である。
図９は、本実施形態によるＦＩＲデジタルフィルタの設計装置を示すブロック図である。
【発明を実施するための最良の形態】  以下、本発明の一実施形態を図面に基づいて説明する。図１および図２は、本実施形態によるＦＩＲデジタルフィルタの設計方法の手順を示すフローチャートである。また、図３〜図７は、本実施形態によるＦＩＲデジタルフィルタの設計方法の概念を説明するための周波数特性図である。なお、図３〜図７の周波数振幅特性では、周波数軸および振幅軸を共に“１”で基準化している。
図１は、本実施形態によるＦＩＲデジタルフィルタ設計方法の全体的な処理の流れを示すフローチャートである。図１において、まず、フィルタ係数の数値列が対称型の基本フィルタを生成する（ステップＳ１）。この基本フィルタは、フィルタリングの処理対象とする信号のサンプリング周波数ｆｓの１／ｎ（ｎは１以上の整数）の通過帯域幅を有する周波数振幅特性を有するものである。図３に、基本フィルタの周波数振幅特性を示す。この図３は、サンプリング周波数ｆｓの半分を１２８等分した帯域幅を持つ基本フィルタの周波数振幅特性を示したものである。
次に、図３のような周波数振幅特性を有する基本フィルタに対して周波数シフトの演算を行うことによって、互いに隣接するフィルタバンクが振幅１／２の部分で重なり合うように基本フィルタの周波数振幅特性が所定周波数ずつシフトされた複数の周波数シフトフィルタを生成する（ステップＳ２）。この周波数シフトは、次のような演算で行うことができる。
基本フィルタのフィルタ係数列を｛Ｈ−ｉ０，Ｈ−（ｉ−１）０，Ｈ−（ｉ−２）０，・・・，Ｈ−１０，Ｈ００，Ｈ１０，・・・，Ｈｉ−２０，Ｈｉ−１０，Ｈｉ０｝（係数Ｈ００を中心として対称型となっている）、基本フィルタから数えてｋ個目の周波数シフトフィルタ（基本フィルタの周波数振幅特性を「所定周波数×ｋ」だけ周波数シフトしたもの）のフィルタ係数列を｛Ｈ−ｉｋ，Ｈ−（ｉ−１）ｋ，Ｈ−（ｉ−２）ｋ，・・・，Ｈ−１ｋ，Ｈ０ｋ，Ｈ１ｋ，・・・，Ｈｉ−２ｋ，Ｈｉ−１ｋ，Ｈｉｋ｝とした場合、ｋ個目の周波数シフトフィルタにおける係数番号ｊ（ｊ＝−ｉ，−（ｉ−１），−（ｉ−２），・・・，−１，０，１，・・・，ｉ−２，ｉ−１，ｉ）の係数Ｈｊｋは、
Ｈｊｋ＝Ｈｊ０＊２ｃｏｓ（２πｋｊ／（ｎ／２））
によって求められる。
例えばｋ個目の周波数シフトフィルタにおける係数番号が−ｉの係数Ｈ−ｊｋは、
Ｈ−ｉｋ＝Ｈ−ｉ０＊２ｃｏｓ（２πｋ＊（−ｉ）／（ｎ／２））
によって求められる。また、係数番号が−（ｉ−１）の係数Ｈ−（ｉ−１）ｋは、
Ｈ−（ｉ−１）ｋ＝Ｈ−（ｉ−１）０＊２ｃｏｓ（２πｋ＊（−（ｉ−１）／（ｎ／２））
によって求められる。他の係数｛Ｈ−（ｉ−２）ｋ，・・・，Ｈ−１ｋ，Ｈ０ｋ，Ｈ１ｋ・・・，Ｈｉ−２ｋ，Ｈｉ−１ｋ，Ｈｉｋ｝も同様の演算によって求められる。
図４に、このステップＳ２で生成される複数の周波数シフトフィルタが有する周波数振幅特性を示す（点線は基本フィルタの周波数振幅特性）。上記ステップＳ１およびステップＳ２の処理により、フィルタバンクが振幅１／２の部分で重なり合うような周波数振幅特性を有する複数のフィルタのフィルタ係数群が得られる。周波数シフトによって生成するフィルタの個数は任意であるが、基本フィルタの帯域幅がサンプリング周波数ｆｓの半分を１２８分割したものであるときは、一例として、基本フィルタと周波数シフトフィルタとを含めて合計１２８個とする。ここで生成するフィルタの個数によって決まる周波数範囲が、最終生成物たるデジタルフィルタの設計エリアとなる。
そして、上記ステップＳ１およびステップＳ２で生成された複数のフィルタの中から任意の１以上のフィルタを取り出して、それらのフィルタ係数を対応する係数番号どうしで加算することにより、最終のフィルタ係数を求める（ステップＳ３）。例えば、基本フィルタから数えてｋ個目の周波数シフトフィルタと（ｋ＋１）個目の周波数シフトフィルタとを加算する場合、求めるフィルタ係数は、
｛Ｈ−ｉｋ＋Ｈ−ｉｋ＋１，Ｈ−（ｉ−１）ｋ＋Ｈ−（ｉ−１）ｋ＋１，Ｈ−（ｉ−２）ｋ＋Ｈ−（ｉ−２）ｋ＋１，・・・，Ｈ−１ｋ＋Ｈ−１ｋ＋１，Ｈ０ｋ＋Ｈ０ｋ＋１，Ｈ１ｋ＋Ｈ１ｋ＋１，・・・，Ｈｉ−２ｋ＋Ｈｉ−２ｋ＋１，Ｈｉ−１ｋ＋Ｈｉ−１ｋ＋１，Ｈｉｋ＋Ｈｉｋ＋１｝となる。
図５は、このステップＳ３で最終的に生成されるデジタルフィルタが有する周波数振幅特性の一例を示す図である。なお、この図５において、周波数軸のスケールは図３、図４と比べて大幅に圧縮している。この図５に示す周波数振幅特性は、ｋ＝０〜３１およびｋ＝３３〜３８に相当する複数のフィルタを取り出して、それらのフィルタ係数を対応する係数番号どうしで加算することによって生成したデジタルフィルタの周波数特性を示したものである。
上述のように、互いに隣接するフィルタは、フィルタバンクが振幅１／２の部分でちょうど重なり合うように作られているので、それらのフィルタ係数を加算すると、振幅はちょうど“１”となる。その結果、得られるフィルタの通過域の頂部が平坦化される。したがって、ｋ＝０〜３１に相当する３２個のフィルタの係数を加算すると、それら３２個のフィルタの頂部が平坦化され、（ｆｓ／２／１２８）×３２のバンド幅を有する通過域が得られる。また、ｋ＝３２に相当するフィルタは加算の対象となっていないので、その部分にはトラップが生じる。さらに、ｋ＝３３〜３８に相当する６個のフィルタの係数を加算すると、それら６個のフィルタの頂部が平坦化され、（ｆｓ／２／１２８）×６のバンド幅を有する通過域が得られる。以上により、ｋ＝０〜３８の部分に通過域を有し、かつ、ｋ＝３２の部分にトラップを有する特殊形状のローパスフィルタを得ることができる。
次に、上記ステップＳ１における基本フィルタの生成法について詳しく説明する。本発明では、この基本フィルタの生成法は特に限定せず、様々な生成法を適用することが可能である。図２は、基本フィルタの生成処理の一例を示すフローチャートである。図２において、まず、対称型の基本的な数値列をフィルタ係数として持つ基本ユニットフィルタに対し、数値列の間に複数の“０”を挿入することによってフィルタバンクを調整する（ステップＳ１１）。
図６は、基本ユニットフィルタのフィルタ係数の数値列を｛−１，０，９，１６，９，０，−１｝とした場合（以下、この基本ユニットフィルタを“Ｌ０”の記号で示す）およびこの数値列の間に“０”を１個ずつ挿入した場合（この場合のフィルタを“Ｌ１”の記号で示す）の周波数振幅特性を示す図である。
この図６から分かるように、数値列が｛−１，０，９，１６，９，０，−１｝から成るフィルタ係数の基本ユニットフィルタＬ０は、中心周波数の両側に通過域を１つずつ有するローパスフィルタ特性を実現するものである。このような基本ユニットフィルタＬ０のフィルタ係数間に“０”を１個ずつ挿入すると、その周波数振幅特性の周波数軸（周波数方向に対する周期）は１／２となり、通過域の数が増える。同様にして、フィルタ係数間に挿入する“０”の数を（ｎ＋１）個とすると、その周波数振幅特性の周波数軸は１／ｎとなる。
したがって、挿入する“０”の数を１２７個とすることにより、サンプリング周波数ｆｓの半分を１２８等分した帯域幅を通過域として持つローパスフィルタの周波数振幅特性が得られる。ただし、このままでは中心周波数より低い帯域内に１２８個の通過域が存在する連続波の周波数特性となっているので、この連続波から図３のような基本フィルタを構成する単独波の周波数特性を切り出す必要がある。この切り出しを行うのが、以下に説明するステップＳ１２，Ｓ１３の処理である。
単独波の切り出しを行う際には、まず、図７に示すような窓フィルタＷＦを生成する（ステップＳ１２）。この窓フィルタＷＦは、図３のような基本フィルタとして抽出すべき単独波の通過域のみと共通の通過域を有するものである。そして、このような窓フィルタＷＦと基本ユニットフィルタＬ１２７とを縦続接続することにより、図３のような基本フィルタを抽出する（ステップＳ１３）。
本発明では、窓フィルタＷＦの生成法も特に限定せず、様々な生成法を適用することが可能である。一例としては、窓フィルタＷＦの周波数特性を表す複数の振幅値を入力し、当該入力した数値列を逆フーリエ変換するという方法がある。周知のように、ある数値列に対してフーリエ変換（ＦＦＴ）の処理を行うと、その数値列に対応した周波数振幅特性の波形が得られる。したがって、所望の周波数振幅特性の波形を表す数値列を入力してそれを逆ＦＦＴし、その実数項を抽出すれば、当該周波数振幅特性を実現するのに必要な元の数値列が得られる。この数値列が、求める窓フィルタＷＦのフィルタ係数に相当する。
なお、理想的なフィルタを構成するには、本来、フィルタ係数を無限個必要とし、フィルタのタップ数も無限個にする必要がある。したがって、所望の周波数特性との誤差を小さくするためには、フィルタ係数の数に対応する入力データの数を、周波数誤差が必要な範囲内に入る程度まで多くするのが好ましい。ただし、窓フィルタＷＦに関しては、その通過域の中に基本フィルタだけの通過域が全て含まれていれば良く、それ以上の精度は要求されない。したがって、数値列の入力データ数（窓フィルタＷＦのフィルタ係数の数）はそれほど多くしなくも良い。また、逆ＦＦＴの演算によって得られたフィルタ係数に更に窓掛け演算等を行うことによって、フィルタ係数の数を更に少なくすることも可能である。
窓フィルタＷＦの周波数特性を表す振幅値の入力は、個々のサンプル点の数値を直接入力しても良いし、周波数振幅特性を表すための２次元入力座標上において、所望の周波数特性の波形を描画し、描画された波形をそれに対応する数値列に置換入力するようにしても良い。後者の入力手法を用いれば、所望の周波数特性をイメージとして確認しながらデータ入力を行うことができるので、所望の周波数特性を表すデータの入力を直感的に行いやすくすることができる。
後者の入力手法を実現する手段は幾つか考えられる。例えば、コンピュータのディスプレイ画面上に周波数振幅特性を表す２次元平面を表示して、その２次元平面上に所望の周波数特性の波形をＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）等により描画し、それを数値データ化するという方法が考えられる。また、コンピュータ画面上のＧＵＩの代わりに、ディジタイザやプロッタ等のポインティングデバイスを用いても良い。ここに挙げている手法は単なる例に過ぎず、これ以外の手法により数値列を入力するようにしても良い。また、ここでは所望の周波数振幅特性を数値列として入力しているが、当該周波数振幅特性の波形を表す関数として入力するようにしても良い。
ステップＳ１３におけるフィルタの縦続接続は、次のようなフィルタ係数の演算によって行うことができる。図８は、ステップＳ１３における演算内容を説明するための図である。この図８に示すように、ステップＳ１３では、基本ユニットフィルタＬ１２７のフィルタ係数を構成する（２ｍ＋１）個の数値列と、窓フィルタＷＦのフィルタ係数を構成する（２ｍ＋１）個の数値列との畳み込み演算を行うことによって、基本フィルタのフィルタ係数の数値列を求める。
この畳み込み演算では、窓フィルタＷＦのフィルタ係数については、
｛Ｈ−ｍ，Ｈ−（ｍ−１），・・・，Ｈ−１，Ｈ０，Ｈ１，・・・，Ｈｍ−１，Ｈｍ｝の全ての数値列を常に固定的に乗加算の対象とする。一方、基本ユニットフィルタＬ１２７のフィルタ係数については、その数値列｛−１，０，・・・，９，０，・・・，１６，０，・・・，９，０，・・・，−１｝の前後に更に０列があるものと仮定し、この０値も含めて（２ｍ＋１）個の数値列を畳み込み演算の対象とする。
基本フィルタのフィルタ係数におけるｘ番目の数値を求める際には、基本ユニットフィルタＬ１２７のフィルタ係数におけるｘ番目の数値を含めてそれより前にある（２ｍ＋１）個の数値列を乗加算の対象とする。例えば、基本フィルタのフィルタ係数における１番目の数値を求める際には、窓フィルタＷＦのフィルタ係数の全ての数値列｛Ｈ−ｍ，Ｈ−（ｍ−１），・・・，Ｈ−１，Ｈ０，Ｈ１，・・・，Ｈｍ−１，Ｈｍ｝（符号３１で示す点線で囲った配列）と、基本ユニットフィルタＬ１２７のフィルタ係数の１番目の数値を含めてそれより前にある（２ｍ＋１）個の数値列｛０，０，・・・，０，−１｝（符号３２で示す点線で囲った配列）とを対象として、配列の対応する要素の積を合計する演算を行う。すなわち、この場合の演算結果は、（（−１）×Ｈ−ｍ）となる。
また、基本フィルタのフィルタ係数における２番目の数値を求める際には、窓フィルタＷＦのフィルタ係数の全ての数値列｛Ｈ−ｍ，Ｈ−（ｍ−１），・・・，Ｈ−１，Ｈ０，Ｈ１，・・・，Ｈｍ−１，Ｈｍ｝（符号３１で示す点線で囲った配列）と、基本ユニットフィルタＬ１２７のフィルタ係数の２番目の数値を含めてそれより前にある（２ｍ＋１）個の数値列｛０，０，・・・，０，−１，０｝（符号３３で示す点線で囲った配列）とを対象として、配列の対応する要素の積を合計する演算を行う。すなわち、この場合の演算結果は、（（−１）×Ｈ−ｍ＋０×Ｈ−（ｍ−１））となる。以下同様にして、基本フィルタのフィルタ係数を構成する（２×（２ｍ＋１）−１）個の数値列を求める。
なお、基本フィルタの周波数特性を表す振幅値を入力して逆ＦＦＴすることにより、基本フィルタのフィルタ係数を直接求めることも可能である。ただし、逆ＦＦＴ演算によって理想的な基本フィルタを構成するため（所望の周波数特性との誤差を小さくするため）には、フィルタ係数の数に対応する入力データの数を非常に多くする必要がる。この場合、基本フィルタを構成するフィルタ係数の数が膨大になり、これを利用して生成される最終生成物としてのフィルタ係数の数も膨大になってしまう。したがって、フィルタ係数の数をできるだけ少なくすることを希望する場合には、上述のように窓フィルタＷＦを用いて基本フィルタを生成するのが好ましい。
上述したように、基本フィルタのフィルタ係数を求めたら、周波数シフトの演算によって複数の周波数シフトフィルタのフィルタ係数を更に求める。そして、基本フィルタおよび複数の周波数シフトフィルタの中から任意の１以上のフィルタを取り出して、それらのフィルタ係数を対応する係数番号どうしで加算することにより、最終のフィルタ係数を求める。抽出するフィルタを任意に変えることにより、任意の周波数特性を有するデジタルフィルタを生成することができる。
図５では一部にトラップを有するローパスフィルタの生成例を示したが、これ以外にも、任意の周波数帯域に通過域を有するローパスフィルタやハイパスフィルタ、バンドパスフィルタ、バンドエリミネーションフィルタを生成することが可能である。さらに、櫛型フィルタやその他の特殊な周波数特性を有するデジタルフィルタも簡単に生成することができる。また、基本フィルタを生成するときに分割数（ｎの数）を大きくしておけば、基本フィルタおよび個々の周波数シフトフィルタの阻止域の傾斜が大きくなるとともに、フィルタ設計エリアに対する分解能も高くなるので、希望の周波数特性に精密に合致したデジタルフィルタを生成することができる。
図９は、本実施形態によるデジタルフィルタ設計装置の構成例を示すブロック図である。図９において、１１はフィルタ係数テーブルであり、上述した基本フィルタのフィルタ係数と、複数の周波数シフトフィルタのフィルタ係数とを含むフィルタ係数群（フィルタ設計エリアを構成する全周波数帯域のフィルタ係数群）のテーブルデータを記憶している。図中、横軸の数字はフィルタの番号を示している。すなわち、０番の列は基本フィルタのフィルタ係数を記憶しており、１番以降の列は周波数シフトフィルタのフィルタ係数を記憶している。１２はコントローラであり、装置全体の制御を行う。
１３は操作部であり、基本フィルタおよび複数の周波数シフトフィルタの中から任意の１以上のフィルタを選択するためのものである。この操作部１３は、例えばキーボードやマウスなどの入力デバイスにより構成される。１４は表示部であり、任意の１以上のフィルタを選択する際の選択画面を表示する。この選択画面は、フィルタ係数テーブル１１の列番号を表示して何れかを選択させるものであっても良いし、図４のような周波数特性の波形を表示して何れかを選択させるものであっても良い。
１５は演算部であり、基本フィルタおよび複数の周波数シフトフィルタの中から操作部１３によって選択されたフィルタのフィルタ係数（コントローラ１２がフィルタ係数テーブル１１からの読み出す）を対応する係数番号どうしで加算することにより、ＦＩＲデジタルフィルタのフィルタ係数を求める。このように、本実施形態のデジタルフィルタ設計装置では、基本フィルタおよび複数の周波数シフトフィルタのフィルタ係数をあらかじめ求めてテーブルデータ化しておくことにより、ユーザが操作部１３を操作して選択したフィルタのフィルタ係数を単に足し算するだけの極めて簡単な演算だけで、所望のデジタルフィルタを設計することができる。
以上詳しく説明したように、本実施形態によれば、精密な周波数特性が要求されるＦＩＲデジタルフィルタを極めて簡易に設計することができる。
なお、上記実施形態では、基本ユニットフィルタのフィルタ係数の数値列として｛−１，０，９，１６，９，０，−１｝を用いる例について説明したが、本発明はこれに限定されない。数値列が対称型になっていれば、本発明に適用することが可能である。
また、上記実施形態では、基本フィルタとしてローパスフィルタを用い、これを高周波側に周波数シフトする例について説明したが、本発明はこれに限定されない。基本フィルタとしてハイパスフィルタを用い、これを低周波側に周波数シフトするようにしても良いし、基本フィルタとしてバンドパスフィルタを用い、これを高周波側および低周波側に周波数シフトするようにしても良い。
その他、上記実施形態は、何れも本発明を実施するにあたっての具体化の一例を示したものに過ぎず、これによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその精神、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
【産業上の利用可能性】  本発明は、複数の遅延器から成るタップ付き遅延線を備え、各タップの出力信号をそれぞれフィルタ係数により数倍した後、それらの乗算結果を加算して出力するタイプのＦＩＲデジタルフィルタを設計するのに有用である。
【図１】
2005057784.tif 000003
【図２】
2005057784.tif 000004
【図３】
2005057784.tif 000005
【図４】
2005057784.tif 000006
【図５】
2005057784.tif 000007
【図６】
2005057784.tif 000008
【図７】
2005057784.tif 000009
【図８】
2005057784.tif 000010
【図９】
2005057784.tif 000011
【国際調査報告】
2005057784.tif 000012
2005057784.tif 000013
2005057784.tif 000014