(57)【要約】所定の非対称型の数値列をフィルタ係数Ｈ１〜Ｈ３とするユニットフィルタＬ１０’，Ｈ１０’を任意に組み合わせることによってデジタルフィルタを設計するようにすることにより、ユニットフィルタの組み合わせだけで求めるデジタルフィルタの係数を自動的に得ることができるようにする。また、非対称型のフィルタ係数Ｈ１〜Ｈ３として、対称型の数値列｛−１，０，９，１６，９，０，−１｝／３２をその中央で半分に分けたうちの片側に対応するものを用いることにより、設計されるデジタルフィルタに必要なタップ数が少なくなるようにするとともに、窓関数を用いる必要もなくし、得られるフィルタ特性に打ち切り誤差が生じないようにする。
2004036746.tif 000002
【特許請求の範囲】
【請求項１】
複数の遅延器から成るタップ付き遅延線における各タップの信号を、与えられるフィルタ係数によりそれぞれ数倍した後、加算して出力するデジタルフィルタを設計する方法であって、
数値列が非対称型であり、上記数値列の合計値が非ゼロで、上記数値列の１つ飛びの合計値が同符号で互いに等しくなるように値が設定された基本のフィルタ係数を有する第１のユニットフィルタと、
数値列が非対称型であり、当該数値列の合計値がゼロで、当該数値列の１つ飛びの合計値が逆符号で互いに等しくなるように値が設定された基本のフィルタ係数を有する第２のユニットフィルタとの少なくとも一方を用いて、
０個以上の上記第１のユニットフィルタと０個以上の上記第２のユニットフィルタとを任意に縦続接続することによってフィルタ設計を行うようにしたことを特徴とするデジタルフィルタの設計方法。
【請求項２】
複数の遅延器から成るタップ付き遅延線における各タップの信号を、与えられるフィルタ係数によりそれぞれ数倍した後、加算して出力するデジタルフィルタを設計する方法であって、
数値列の合計値が非ゼロで、当該数値列の１つ飛びの合計値が同符号で互いに等しくなるように値が設定された非対称型のフィルタ係数を有する複数の基本フィルタを、全体としての数値列が対称型となるように縦続接続して成る第１のユニットフィルタと、
数値列の合計値がゼロで、当該数値列の１つ飛びの合計値が逆符号で互いに等しくなるように値が設定された非対称型のフィルタ係数を有する複数の基本フィルタを、全体としての数値列が対称型となるように縦続接続して成る第２のユニットフィルタとの少なくとも一方を用いて、
０個以上の上記第１のユニットフィルタと０個以上の上記第２のユニットフィルタとを任意に縦続接続することによってフィルタ設計を行うようにしたことを特徴とするデジタルフィルタの設計方法。
【請求項３】
上記第１のユニットフィルタを構成する非対称型のフィルタ係数は、所定の対称型の数値列をその中央で半分に分けたうちの片側の数値列を更に調整したものから成り、
上記所定の対称型の数値列は、その数値列の合計値が非ゼロで、当該数値列の１つ飛びの合計値が同符号で互いに等しくなるように値を設定したものであることを特徴とする請求の範囲第１項または第２項に記載のデジタルフィルタの設計方法。
【請求項４】
上記所定の対称型の数値列が−１，０，９，１６，９，０，−１の比率から成り、
上記非対称型のフィルタ係数は、その数値列が−（１−Ｎ／８），０，（９−Ｎ／８），８、もしくは、８，（９−Ｎ／８），０，−（１−Ｎ／８）の比率から成る（ただし、Ｎは０≦Ｎ≦８）ことを特徴とする請求の範囲第３項に記載のデジタルフィルタの設計方法。
【請求項５】
上記第２のユニットフィルタを構成する非対称型のフィルタ係数は、所定の対称型の数値列をその中央で半分に分けたうちの片側の数値列を更に調整したものから成り、
上記所定の対称型の数値列は、その数値列の合計値がゼロで、当該数値列の１つ飛びの合計値が逆符号で互いに等しくなるように値を設定したものであることを特徴とする請求の範囲第１項または第２項に記載のデジタルフィルタの設計方法。
【請求項６】
上記所定の対称型の数値列が１，０，−９，１６，−９，０，１の比率から成り、
上記非対称型のフィルタ係数は、その数値列が（１−Ｎ／８），０，−（９−Ｎ／８），８、もしくは、８，−（９−Ｎ／８），０，（１−Ｎ／８）の比率から成る（ただし、Ｎは０≦Ｎ≦８）ことを特徴とする請求の範囲第５項に記載のデジタルフィルタの設計方法。
【請求項７】
上記第１および第２のユニットフィルタを構成する非対称型のフィルタ係数に対応する各タップの間にｎクロック分のディレイを挿入することによってフィルタの通過周波数帯域を調整するようにしたことを特徴とする請求の範囲第１項〜第６項の何れか１項に記載のデジタルフィルタの設計方法。
【請求項８】
数値列の合計値が非ゼロで、当該数値列の１つ飛びの合計値が同符号で互いに等しくなるように値が設定されたフィルタ係数を有し、複数の遅延器から成るタップ付き遅延線における各タップの信号を上記フィルタ係数によりそれぞれ数倍した後、それらの乗算結果を加算して出力するように成された第１のユニットフィルタに関する情報を保持する第１のユニットフィルタ保持手段と、
数値列の合計値がゼロで、当該数値列の１つ飛びの合計値が逆符号で互いに等しくなるように値が設定されたフィルタ係数を有し、複数の遅延器から成るタップ付き遅延線における各タップの信号を上記フィルタ係数によりそれぞれ数倍した後、それらの乗算結果を加算して出力するように成された第２のユニットフィルタに関する情報を保持する第２のユニットフィルタ保持手段と、
０個以上の上記第１のユニットフィルタと０個以上の上記第２のユニットフィルタとの任意の組み合わせを指示する組み合わせ手段と、
上記第１および第２のユニットフィルタ保持手段により保持されている情報を用いて、上記組み合わせ手段により指示された組み合わせに対応するフィルタ係数を求めるフィルタ係数演算手段とを備えたことを特徴とするデジタルフィルタの設計装置。
【請求項９】
数値列の合計値が非ゼロで、当該数値列の１つ飛びの合計値が同符号で互いに等しくなるように値が設定された非対称型のフィルタ係数を有する複数の基本フィルタを、全体としての数値列が対称型となるように縦続接続して成る第１のユニットフィルタに関する情報を保持する第１のユニットフィルタ保持手段と、
数値列の合計値がゼロで、当該数値列の１つ飛びの合計値が逆符号で互いに等しくなるように値が設定された非対称型のフィルタ係数を有する基本フィルタを、全体としての数値列が対称型となるように縦続接続して成る第２のユニットフィルタに関する情報を保持する第２のユニットフィルタ保持手段と、
０個以上の上記第１のユニットフィルタと０個以上の上記第２のユニットフィルタとの任意の組み合わせを指示する組み合わせ手段と、
上記第１および第２のユニットフィルタ保持手段により保持されている情報を用いて、上記組み合わせ手段により指示された組み合わせに対応するフィルタ係数を求めるフィルタ係数演算手段とを備えたことを特徴とするデジタルフィルタの設計装置。
【請求項１０】
上記第１および第２のユニットフィルタを構成する非対称型のフィルタ係数に対応する各タップの間にｎクロック分のディレイを挿入することによってフィルタの通過周波数帯域を調整する遅延手段を備えたことを特徴とする請求の範囲第８項または第９項に記載のデジタルフィルタの設計装置。
【請求項１１】
複数の遅延器から成るタップ付き遅延線を備え、各タップの信号を、請求の範囲第１項〜第７項の何れか１項に記載のフィルタ設計法により求められたフィルタ係数によりそれぞれ数倍した後、加算して出力することを特徴とするデジタルフィルタ。
【請求項１２】
複数の遅延器から成るタップ付き遅延線を備え、各タップの信号を、与えられるフィルタ係数によりそれぞれ数倍した後、加算して出力するデジタルフィルタであって、
上記フィルタ係数は、その数値列が非対称型であり、上記数値列の合計値が非ゼロで、上記数値列の１つ飛びの合計値が同符号で互いに等しくなるように値を設定したものであることを特徴とするデジタルフィルタ。
【請求項１３】
複数の遅延器から成るタップ付き遅延線を備え、各タップの信号を、与えられるフィルタ係数によりそれぞれ数倍した後、加算して出力するデジタルフィルタであって、
数値列の合計値が非ゼロで、当該数値列の１つ飛びの合計値が同符号で互いに等しくなるように値が設定された非対称型のフィルタ係数を有する複数の基本フィルタを、全体としての数値列が対称型となるように縦続接続して成ることを特徴とするデジタルフィルタ。
【請求項１４】
上記非対称型のフィルタ係数は、所定の対称型の数値列をその中央で半分に分けたうちの片側の数値列を更に調整したものから成り、
上記所定の対称型の数値列は、その数値列の合計値が非ゼロで、当該数値列の１つ飛びの合計値が同符号で互いに等しくなるように値を設定したものであることを特徴とする請求の範囲第１１項または第１２項に記載のデジタルフィルタ。
【請求項１５】
上記所定の対称型の数値列が−１，０，９，１６，９，０，−１の比率から成ることを特徴とする請求の範囲第１４項に記載のデジタルフィルタ。
【請求項１６】
上記非対称型のフィルタ係数は、その数値列が−（１−Ｎ／８），０，（９−Ｎ／８），８、もしくは、８，（９−Ｎ／８），０，−（１−Ｎ／８）の比率から成る（ただし、Ｎは０≦Ｎ≦８）ことを特徴とする請求の範囲第１５項に記載のデジタルフィルタ。
【請求項１７】
複数の遅延器から成るタップ付き遅延線を備え、各タップの信号を、与えられるフィルタ係数によりそれぞれ数倍した後、加算して出力するデジタルフィルタであって、
上記フィルタ係数は、その数値列が非対称型であり、上記数値列の合計値がゼロで、上記数値列の１つ飛びの合計値が逆符号で互いに等しくなるように値を設定したものであることを特徴とするデジタルフィルタ。
【請求項１８】
複数の遅延器から成るタップ付き遅延線を備え、各タップの信号を、与えられるフィルタ係数によりそれぞれ数倍した後、加算して出力するデジタルフィルタであって、
数値列の合計値がゼロで、当該数値列の１つ飛びの合計値が逆符号で互いに等しくなるように値が設定された非対称型のフィルタ係数を有する複数の基本フィルタを、全体としての数値列が対称型となるように縦続接続して成ることを特徴とするデジタルフィルタ。
【請求項１９】
上記非対称型のフィルタ係数は、所定の対称型の数値列をその中央で半分に分けたうちの片側の数値列を更に調整したものから成り、
上記所定の対称型の数値列は、その数値列の合計値がゼロで、当該数値列の１つ飛びの合計値が逆符号で互いに等しくなるように値を設定したものであることを特徴とする請求の範囲第１７項または第１８項に記載のデジタルフィルタ。
【請求項２０】
上記所定の対称型の数値列が１，０，−９，１６，−９，０，１の比率から成ることを特徴とする請求の範囲第１９項に記載のデジタルフィルタ。
【請求項２１】
上記非対称型のフィルタ係数は、その数値列が（１−Ｎ／８），０，−（９−Ｎ／８），８、もしくは、８，−（９−Ｎ／８），０，（１−Ｎ／８）の比率から成る（ただし、Ｎは０≦Ｎ≦８）ことを特徴とする請求の範囲第２０項に記載のデジタルフィルタ。
【請求項２２】
上記非対称型のフィルタ係数に対応する各タップの間にｎクロック分のディレイを挿入するための遅延手段を備えたことを特徴とする請求の範囲第１２項〜第２１項の何れか１項に記載のデジタルフィルタ。
【請求項２３】
請求の範囲第１２項または第１３項に記載のデジタルフィルタ、もしくは、上記非対称型のフィルタ係数に対応する各タップの間にｎクロック分のディレイを挿入したデジタルフィルタを基本的なユニットフィルタとして、当該ユニットフィルタを複数段縦続接続して成ることを特徴とするデジタルフィルタ。
【請求項２４】
請求の範囲第１７項または第１８項に記載のデジタルフィルタ、もしくは、上記非対称型のフィルタ係数に対応する各タップの間にｎクロック分のディレイを挿入したデジタルフィルタを基本的なユニットフィルタとして、当該ユニットフィルタを複数段縦続接続して成ることを特徴とするデジタルフィルタ。
【請求項２５】
請求の範囲第１２項または第１３項に記載のデジタルフィルタ、もしくは、上記非対称型のフィルタ係数に対応する各タップの間にｎクロック分のディレイを挿入したデジタルフィルタを基本的なローパスユニットフィルタとするとともに、請求の範囲第１７項または第１８項に記載のデジタルフィルタ、もしくは、上記非対称型のフィルタ係数に対応する各タップの間にｎクロック分のディレイを挿入したデジタルフィルタを基本的なハイパスユニットフィルタとして、１以上の上記ローパスユニットフィルタおよび１以上の上記ハイパスユニットフィルタを任意に縦続接続して成ることを特徴とするデジタルフィルタ。
【請求項２６】
請求の範囲第１４項に記載した上記所定の対称型の数値列をフィルタ係数とするデジタルフィルタ、もしくは、当該所定の対称型の数値列から成るフィルタ係数に対応する各タップの間にｎクロック分のディレイを挿入したデジタルフィルタを第２のローパスユニットフィルタとして、当該第２のローパスユニットフィルタを更に任意に縦続接続して成ることを特徴とする請求の範囲第２５項に記載のデジタルフィルタ。
【請求項２７】
請求の範囲第１９項に記載した上記所定の対称型の数値列をフィルタ係数とするデジタルフィルタ、もしくは、当該所定の対称型の数値列から成るフィルタ係数に対応する各タップの間にｎクロック分のディレイを挿入したデジタルフィルタを第２のハイパスユニットフィルタとして、当該第２のハイパスユニットフィルタを更に任意に縦続接続して成ることを特徴とする請求の範囲第２５項に記載のデジタルフィルタ。
【請求項２８】
上記遅延手段は、基準クロックの１／ｎ倍の周期を持つ第２のクロックに従って、入力されたデータを保持して出力するディレイ回路を備えて構成されることを特徴とする請求の範囲第２２項に記載のデジタルフィルタ。
【請求項２９】
請求の範囲第１項〜第７項の何れか１項に記載のフィルタ設計方法に関する処理手順をコンピュータに実行させるためのデジタルフィルタ設計用プログラム。
【請求項３０】
請求の範囲第８項〜第１０項の何れか１項に記載の各手段としてコンピュータを機能させるためのデジタルフィルタ設計用プログラム。
【発明の詳細な説明】
【技術分野】  本発明はデジタルフィルタの設計方法および装置、デジタルフィルタ設計用プログラム、デジタルフィルタに関し、特に、複数の遅延器から成るタップ付き遅延線を備え、各タップの信号をそれぞれ数倍した後、加算して出力するＦＩＲフィルタおよびその設計法に関するものである。
【背景技術】  通信、計測、音声・画像信号処理、医療、地震学などの様々な分野で提供されている種々の電子機器においては、その内部で何らかのデジタル信号処理を行っているのが通常である。デジタル信号処理の最も重要な基本操作に、各種の信号や雑音が混在している入力信号の中から、必要なある周波数帯域の信号のみを取り出すフィルタリング処理がある。このために、デジタル信号処理を行う電子機器では、デジタルフィルタが用いられることが多い。
デジタルフィルタとしては、ＩＩＲ（Ｉｎｆｉｎｉｔｅ  Ｉｍｐｕｌｓｅ  Ｒｅｓｐｏｎｓｅ：無限長インパルス応答）フィルタやＦＩＲ（Ｆｉｎｉｔｅ  Ｉｍｐｕｌｓｅ  Ｒｅｓｐｏｎｓｅ：有限長インパルス応答）フィルタが多く用いられる。このうちＦＩＲフィルタは、次のような利点を持つ。第１に、ＦＩＲフィルタの伝達関数の極はｚ平面の原点のみにあるため、回路は常に安定である。第２に、フィルタ係数が対称型であれば、完全に正確な直線位相特性を実現することが可能である。
フィルタを通過域と阻止域との配置から分類すると、主にローパスフィルタ、ハイパスフィルタ、帯域通過フィルタ、帯域消去フィルタの４つに分けられる。ＩＩＲフィルタやＦＩＲフィルタで基本となるのはローパスフィルタであり、その他のハイパスフィルタ、帯域通過フィルタ、帯域消去フィルタは、ローパスフィルタから周波数変換等の処理を行うことによって導かれる。
ところで、ＦＩＲフィルタは、有限時間長で表されるインパルス応答がそのままフィルタの係数となっている。したがって、ＦＩＲフィルタを設計するということは、希望の周波数特性が得られるようにフィルタ係数を決定するということである。
従来、基本となるローパスフィルタを設計する際には、サンプリング周波数とカットオフ周波数との比率をもとに、窓関数やチェビシェフ近似法などを用いた畳み込み演算等を行うことにより、ＦＩＲフィルタの各タップに対するフィルタ係数を求める。そして、その求めたフィルタ係数を用いてシミュレーションを行うことにより周波数特性を確認しながら、係数値を適宜修正し、所要特性のローパスフィルタを得ていた。
また、ハイパスフィルタ、帯域通過フィルタ、帯域消去フィルタ等の他のフィルタを設計する際には、まず上述のような手順で基本となるローパスフィルタを複数設計する。そして、それらを組み合わせて周波数変換等の操作を行うことにより、所望の周波数特性を有するＦＩＲフィルタを設計していた。
しかしながら、従来の設計法で得られるフィルタの周波数特性は、窓関数やチェビシェフ近似式に依存するので、これらをうまく設定しないと、良好な周波数特性を得ることができない。ところが、窓関数や近似式を適当に設定することは一般に困難である。すなわち、上記従来のフィルタ設計法では、熟練した技術者が時間と手間をかけて設計する必要があり、所望特性のＦＩＲフィルタを容易には設計できないという問題があった。
また、仮に所望特性に近いＦＩＲフィルタを設計できたとしても、設計されたフィルタのタップ数は膨大となり、しかもその係数値は非常に複雑でランダムな値となる。そのため、そのタップ数および係数値を実現するためには大規模な回路構成（加算器、乗算器）が必要になるという問題もあった。また、設計されたＦＩＲフィルタを実際に使用する際に、その演算量が非常に多くなり、処理負荷が重くなるという問題もあった。
本発明はこのような問題を解決するために成されたものであり、所望の周波数特性を有するＦＩＲデジタルフィルタを簡易的に設計できるようにすることを目的とする。
また、本発明は、希望する周波数特性を小さな回路規模で高精度に実現することが可能なＦＩＲデジタルフィルタを提供することを目的とする。
【発明の開示】
本発明によるデジタルフィルタの設計方法は、数値列が非対称型であり、上記数値列の合計値が非ゼロで、上記数値列の１つ飛びの合計値が同符号で互いに等しくなるように値が設定された基本のフィルタ係数を有する第１のユニットフィルタと、数値列が非対称型であり、当該数値列の合計値がゼロで、当該数値列の１つ飛びの合計値が逆符号で互いに等しくなるように値が設定された基本のフィルタ係数を有する第２のユニットフィルタとの少なくとも一方を用いて、０個以上の上記第１のユニットフィルタと０個以上の上記第２のユニットフィルタとを任意に縦続接続することによってフィルタ設計を行うようにしたことを特徴とする。
本発明の他の態様では、数値列の合計値が非ゼロで、当該数値列の１つ飛びの合計値が同符号で互いに等しくなるように値が設定された非対称型のフィルタ係数を有する複数の基本フィルタを、全体としての数値列が対称型となるように縦続接続して成る第１のユニットフィルタと、数値列の合計値がゼロで、当該数値列の１つ飛びの合計値が逆符号で互いに等しくなるように値が設定された非対称型のフィルタ係数を有する複数の基本フィルタを、全体としての数値列が対称型となるように縦続接続して成る第２のユニットフィルタとの少なくとも一方を用いて、０個以上の上記第１のユニットフィルタと０個以上の上記第２のユニットフィルタとを任意に縦続接続することによってフィルタ設計を行うようにしたことを特徴とする。
本発明の他の態様では、上記第１および第２のユニットフィルタを構成する非対称型のフィルタ係数に対応する各タップの間にｎクロック分のディレイを挿入することによってフィルタの通過周波数帯域を調整するようにしたことを特徴とする。
また、本発明によるデジタルフィルタは、複数の遅延器から成るタップ付き遅延線を備え、各タップの信号を、請求の範囲第１項〜第７項の何れか１項に記載のフィルタ設計法により求められたフィルタ係数によりそれぞれ数倍した後、加算して出力することを特徴とする。
本発明の他の態様では、上記非対称型のフィルタ係数に対応する各タップの間にｎクロック分のディレイを挿入するための遅延手段を以下のように構成したことを特徴とする。すなわち、基準クロックの１／ｎ倍の周期を持つ第２のクロックに従って、入力されたデータを保持して出力するディレイ回路を備えて遅延手段を構成する。
以上説明したように本発明によれば、所定の非対称型の数値列をフィルタ係数とする１以上のユニットフィルタを任意に組み合わせることによってデジタルフィルタを設計するようにしたので、ユニットフィルタの組み合わせだけで、所望の周波数特性を有するデジタルフィルタの係数を自動的に得ることができ、熟練した技術者でなくてもフィルタの設計を極めて簡単に行うことができる。
また、本発明によれば、上記所定の非対称型の数値列は、所定の対称型の数値列をその中央で半分に分けたうちの片側に対応するものであるので、設計されるデジタルフィルタに必要なタップ数は非常にわずかで済み、かつ、各タップ出力に対して必要なフィルタ係数の種類も非常に少なくて済む。しかも、窓関数を用いる必要がなく、得られるフィルタ係数に打ち切り誤差が生じることもない。したがって、回路素子数（特に乗算器）を大幅に削減して回路規模を削減、消費電力の低減、演算負荷の軽減等を図ることができるとともに、デジタルフィルタの希望する周波数特性を高精度に実現することができる。また、設計されるデジタルフィルタは、ユニットフィルタという同一パターンの繰り返しから成る極めて単純な構成であるので、集積化に際して工数を短縮することができ、ＩＣ化を容易にすることもできる。
【図面の簡単な説明】  図１は、５タップユニットフィルタＬ１０，Ｈ１０の回路構成およびフィルタ係数の数値列を示す図である。
図２は、５タップユニットフィルタＬ１０，Ｈ１０のフィルタ係数の生成アルゴリズムを示す図である。
図３は、５タップローパスユニットフィルタＬ１０のフィルタ係数の意味を説明するための図である。
図４は、５タップハイパスユニットフィルタＨ１０のフィルタ係数の意味を説明するための図である。
図５は、５タップローパスユニットフィルタＬ１１のフィルタ係数の生成アルゴリズムを示す図である。
図６は、５タップローパスユニットフィルタＬ１０，Ｌ１１の周波数−ゲイン特性を示す図である。
図７は、５タップハイパスユニットフィルタＨ１１のフィルタ係数の生成アルゴリズムを示す図である。
図８は、５タップハイパスユニットフィルタＨ１０，Ｈ１１の周波数−ゲイン特性を示す図である。
図９は、５タップローパスユニットフィルタ（Ｌ１０）ｍの周波数−ゲイン特性を示す図である。
図１０は、５タップハイパスユニットフィルタ（Ｈ１０）ｍの周波数−ゲイン特性を示す図である。
図１１は、周波数帯域の抜き取りについて説明するための図である。
図１２は、周波数帯域の他の抜き取り例を示す図である。
図１３は、第１の実施形態によるフィルタ設計法で最も基本となる２種類の３タップユニットフィルタの回路構成およびフィルタ係数の数値列を示す図である。
図１４は、単純な数値列｛８，−９，０，１｝／１６をフィルタ係数とした場合における３タップハイパスユニットフィルタＨ１０’の周波数特性を示す図である。
図１５は、フィルタ係数Ｈ３のみを調整した場合における３タップハイパスユニットフィルタＨ１０’の周波数特性を示す図である。
図１６は、フィルタ係数Ｈ２，Ｈ３を調整した場合における３タップハイパスユニットフィルタＨ１０’の周波数特性を示す図である。
図１７は、第１の実施形態によるバンドパスフィルタの回路例を示す図である。
図１８は、図１７に示すバンドパスフィルタの周波数特性を示す図である。
図１９は、第２の実施形態によるユニットフィルタＬ１０”，Ｈ１０”の回路構成およびフィルタ係数の数値列を示す図である。
図２０は、第２の実施形態によるローパスユニットフィルタＬ１０”の周波数特性を示す図である。
図２１は、第２の実施形態によるハイパスユニットフィルタＨ１０”の周波数特性を示す図である。
図２２は、５タップユニット２次フィルタＬ２０，Ｈ２０のフィルタ係数の生成アルゴリズムを示す図である。
【発明を実施するための最良の形態】  以下、本発明の一実施形態を図面に基づいて説明する。
本実施形態のデジタルフィルタは、複数の遅延器から成るタップ付き遅延線を備え、各タップの出力信号を所与のフィルタ係数によりそれぞれ数倍した後、加算して出力するタイプのＦＩＲフィルタである。
（第１の実施形態）
第１の実施形態によるフィルタ設計法は、以下に説明する２種類の３タップユニットフィルタＬ１ｎ’，Ｈ１ｎ’を作り、これらの組み合わせだけで所望の周波数特性を有するＦＩＲフィルタを設計できるようにしたものである。なお、ユニットフィルタを表す符号の後ろに付けた“ｎ”の文字は、各タップ間に挿入するディレイのクロック数、すなわち、各フィルタ係数の間に挿入する“０”の数を示している（詳細は後述する）。
まず、上記２種類の３タップユニットフィルタＬ１ｎ’，Ｈ１ｎ’を理解する上で参考になる２種類の５タップユニットフィルタＬ１ｎ，Ｈ１ｎについて説明する。図１は、５タップユニットフィルタＬ１０，Ｈ１０を示す図であり、（ａ）はその回路構成を示し、（ｂ）はフィルタ係数の数値列を示している。
図１（ａ）に示すように、５タップユニットフィルタＬ１０，Ｈ１０では、縦続接続された６個のＤ型フリップフロップ１−１〜１−６によって入力信号を１クロックＣＫずつ順次遅延させる。そして、各Ｄ型フリップフロップ１−１〜１−６の所定のタップから取り出した信号に対して、図１（ｂ）に示すフィルタ係数ｈ１〜ｈ５を５個の係数器２−１〜２−５でそれぞれ乗算し、それらの乗算結果を全て４個の加算器３−１〜３−４で加算して出力する。
上記２種類の５タップユニットフィルタＬ１０，Ｈ１０の回路構成は、何れも図１（ａ）のようになっており、フィルタ係数（係数器２−１〜２−５の乗数値ｈ１〜ｈ５）のみが図１（ｂ）のように異なっている。
図１（ｂ）から分かるように、５タップローパスユニットフィルタＬ１０のフィルタ係数は、極めて単純な数値列｛−１，０，９，１６，９，０，−１｝／３２から成る（ただし、値が“０”の部分は図１（ａ）のようにタップ出力がなく、フィルタ係数として用いていない）。このようなフィルタ係数は、その数値列が対称型であり、数値列の合計値が非ゼロで、数値列の１つ飛びの合計値が同符号で互いに等しくなるという性質を持っている（−１＋９＋９−１＝１６、０＋１６＋０＝１６）。
また、５タップハイパスユニットフィルタＨ１０のフィルタ係数は、極めて単純な数値列｛１，０，−９，１６，−９，０，１｝／３２から成る（ただし、値が“０”の部分はタップ出力がなく、フィルタ係数として用いていない）。このようなフィルタ係数は、その数値列が対称型であり、数値列の合計値がゼロで、数値列の１つ飛びの合計値が逆符号で互いに等しくなるという性質を持っている（１−９−９＋１＝−１６、０＋１６＋０＝１６）。
ここで、これらのフィルタ係数を構成する数値列の意味について、図２〜図４を用いて説明する。
図２は、５タップユニットフィルタＬ１０，Ｈ１０のフィルタ係数を構成する数値列の生成法を説明するための図である。図２（ａ）に示すように、５タップローパスユニットフィルタＬ１０のフィルタ係数を構成する数値列は、１クロックＣＫ毎にデータ値が｛−１，１，８，８，１，−１｝／１６と変化する所定のデジタル基本関数を１回移動平均演算することによって得られるものである。
また、図２（ｂ）に示すように、５タップハイパスユニットフィルタＨ１０のフィルタ係数を構成する数値列は、１クロックＣＫ毎にデータ値が｛１，−１，−８，８，−１，１｝／１６と変化するデジタル基本関数と、１クロックＣＫ毎にデータ値が｛１，−１，８，−８，−１，１｝／１６と変化するデジタル基本関数とを移動平均演算することによって得られるものである。
図３は、５タップローパスユニットフィルタＬ１０のフィルタ係数を構成する数値列に対して、４倍のオーバーサンプリングとコンボリューション演算とを施した結果を示す図である。なお、ここでは説明を分かりやすくするために、元の数値列を３２倍した整数の数値列｛−１，０，９，１６，９，０，−１｝に対してオーバーサンプリングとコンボリューション演算とを行う例について示している。
図３（ａ）において、一番左の列に示される一連の数値列は、元の数値列｛−１，０，９，１６，９，０，−１｝に対して４倍のオーバーサンプリングを行った値である。また、一番左から右に向かって４列分の数値列は、一番左の列に示される数値列を１つずつ下方向にシフトしていったものである。図３（ａ）の列方向は時間軸を示しており、数値列を下方向にシフトするということは、一番左の列に示される数値列を徐々に遅延させていくことに対応する。
すなわち、左から２列目の数値列は、一番左の列に示される数値列を４倍周波数のクロック４ＣＫの１／４位相分だけずらした数値列であることを示す。また、左から３列目の数値列は、左から２列目に示される数値列を４倍周波数のクロック４ＣＫの１／４位相分だけずらした数値列、左から４列目の数値列は、左から３列目に示される数値列を４倍周波数のクロック４ＣＫの１／４位相分だけ更にずらした数値列であることを示す。
また、左から５列目の数値列は、１〜４列目の各数値列を対応する行どうしで加算した値である。この左から５列目までの処理により、４相のコンボリューション演算を伴う４倍のオーバーサンプリングがデジタル的に実行されることになる。
上記５列目から右に向かって４列分の数値列は、５列目に示される数値列を１つずつ下方向にシフトしていったものである。また、左から９列目の数値列は、５〜８列目の各数値列を対応する行どうしで加算した値である。この左から９列目までの処理により、４相のコンボリューション演算を伴う４倍のオーバーサンプリングがデジタル的に２回実行されることになる。
また、左から１０列目の数値列は、９列目に示される数値列を１つ下方向にシフトしたものである。また、左から１１列目（一番右の列）の数値列は、９列目の数値列と１０列目の数値列とを対応する行どうしで加算した値である。
この図３（ａ）の一番右の列に示される最終的に得られた数値列をグラフ化したのが、図３（ｂ）である。この図３（ｂ）に示す波形を有する関数は、横軸に沿った標本位置がｔ１からｔ４の間にあるときにのみ“０”以外の有限な値を有し、それ以外の領域では値が全て“０”となる関数、つまり標本位置ｔ１，ｔ４において値が“０”に収束する関数である。このように関数の値が局所的な領域で“０”以外の有限の値を有し、それ以外の領域で“０”となる場合を「有限台」と称する。
また、この図３（ｂ）に示す関数は、中央の標本位置ｔ５においてのみ極大値をとり、ｔ１，ｔ２，ｔ３，ｔ４の４つの標本位置において値が“０”になるという特徴を有する標本化関数であり、滑らかな波形のデータを得るために必要なサンプル点は全て通る。
次いで、図４は、５タップハイパスユニットフィルタＨ１０のフィルタ係数を構成する数値列に対して、４倍のオーバーサンプリングとコンボリューション演算とを施した結果を示す図である。なお、ここでも説明を分かりやすくするために、元の数値列を３２倍した整数の数値列｛１，０，−９，１６，−９，０，１｝に対してオーバーサンプリングとコンボリューション演算とを行う例について示している。
図４（ａ）は、上記図３（ａ）と同様の演算過程を示している。この図４（ａ）の一番右の列に示される最終的に得られた数値列をグラフ化すると、図４（ｂ）のようになる。この図４（ｂ）に示す関数も、中央の標本位置ｔ７’においてのみ極大値をとる標本化関数であって、全域において１回微分可能であり、しかも標本位置ｔ１’，ｔ６’において０に収束する有限台の関数である。
次に、各タップ間に挿入するディレイのクロック数ｎをｎ≧１とした場合について説明する。図５は、５タップローパスユニットフィルタＬ１１（ｎ＝１の場合）のフィルタ係数を示す図である。この図５に示すように、５タップローパスユニットフィルタＬ１１のフィルタ係数は、上記５タップローパスユニットフィルタＬ１０の各フィルタ係数の間に“０”を１つずつ挿入することによって生成する。
同様に、５タップローパスユニットフィルタＬ１ｎ（ｎ＝２，３，・・・）のフィルタ係数は、５タップローパスユニットフィルタＬ１０の各フィルタ係数の間に“０”をｎ個ずつ挿入することによって生成する。
図６は、５タップローパスユニットフィルタＬ１０，Ｌ１１の数値列をＦＦＴ（Ｆａｓｔ  Ｆｏｕｒｉｅｒ  Ｔｒａｎｓｆｅｒ：高速フーリエ変換）した結果の周波数−ゲイン特性を示す図である。ここではゲインおよび周波数を“１”で基準化している。
この図６から分かるように、５タップローパスユニットフィルタＬ１０，Ｌ１１では、中心周波数においてゲインが０．５となり、かつ、低周波領域でのオーバーシュートや高周波領域でのリンギングも存在しない良好なローパスフィルタ特性が得られる。また、各フィルタ係数の間に挿入する“０”の数をｎとすると、その周波数−ゲイン特性の周波数軸（周波数方向に対する周期）は１／ｎとなる。
このようなローパスフィルタ特性を実現する大元となる上記図２（ａ）の数値列は、図３（ｂ）に示した有限台の標本化関数の基礎となるものである。従来一般的に用いられていた標本化関数はｔ＝±∞の標本位置で“０”に収束するのに対し、図３（ｂ）に示した標本化関数は、ｔ＝ｔ１，ｔ４の有限の標本位置で“０”に収束する。
そのため、上記図２（ａ）の数値列をＦＦＴ変換した場合、ｔ＝ｔ１〜ｔ４の範囲内に相当するデータだけが意味を持つ。ｔ＝ｔ１〜ｔ４の範囲外に相当するデータについては、本来これを考慮すべきであるのに無視しているという訳ではなく、理論的に考慮する必要がないため、打ち切り誤差は発生しない。したがって、上記図２（ａ）に示す数値列をフィルタ係数として用いれば、窓関数を用いて係数の打ち切りを行う必要もなく、良好なローパスフィルタ特性を得ることができる。
図７は、５タップハイパスユニットフィルタＨ１１のフィルタ係数を示す図である。この図７に示すように、５タップハイパスユニットフィルタＨ１１のフィルタ係数は、上記５タップハイパスユニットフィルタＨ１０の各フィルタ係数の間に“０”を１つずつ挿入することによって生成する。
同様に、５タップハイパスユニットフィルタＨ１ｎ（ｎ＝２，３，・・・）のフィルタ係数は、５タップハイパスユニットフィルタＨ１０の各フィルタ係数の間に“０”をｎ個ずつ挿入することによって生成する。
図８は、５タップハイパスユニットフィルタＨ１０，Ｈ１１の周波数−ゲイン特性を示す図である。ここでもゲインおよび周波数を“１”で基準化している。この図８から分かるように、５タップハイパスユニットフィルタＨ１０，Ｈ１１では、中心周波数においてゲインが０．５となり、かつ、高周波領域でのオーバーシュートや低周波領域でのリンギングも存在しない良好なハイパスフィルタ特性が得られる。また、フィルタ係数の間に挿入する“０”の数をｎとすると、その周波数−ゲイン特性の周波数軸（周波数方向に対する周期）は１／ｎとなる。
このようなハイパスフィルタ特性を実現する大元となる上記図２（ｂ）の数値列も、図４（ｂ）に示すような有限台の標本化関数の基礎となるものである。したがって、この数値列をフィルタ係数として用いることにより、窓関数を用いて係数の打ち切りを行う必要もなく、良好なハイパスフィルタ特性を得ることができる。
次に、５タップユニットフィルタの縦続接続について説明する。５タップユニットフィルタを縦続接続することにより、各ユニットフィルタの係数どうしが乗算・加算されて新しいフィルタ係数が作り出される。以下では、例えば５タップローパスユニットフィルタＬ１０の縦続数をｍとするとき、これを（Ｌ１０）ｍと記述することにする。
図９は、５タップローパスユニットフィルタＬ１０，（Ｌ１０）２，（Ｌ１０）４，（Ｌ１０）８の周波数−ゲイン特性を示す図である。この図９でもゲインおよび周波数を“１”で基準化している。５タップローパスユニットフィルタＬ１０が１個のみの場合、振幅が０．５となる位置のクロックは０．２５である。これに対して縦続数ｍが多くなると、フィルタの通過帯域幅が狭くなる。例えばｍ＝８の場合、振幅が０．５となる位置のクロックは０．１２５となる。
図１０は、５タップハイパスユニットフィルタＨ１０，（Ｈ１０）２，（Ｈ１０）４，（Ｈ１０）８の周波数−ゲイン特性を示す図である。この図１０でもゲインおよび周波数を“１”で基準化している。５タップハイパスユニットフィルタＨ１０が１個のみの場合、振幅が０．５となる位置のクロックは０．２５である。これに対して縦続数ｍが多くなると、フィルタの通過帯域幅が狭くなる。例えばｍ＝８の場合、振幅が０．５となる位置のクロックは０．３７５となる。
次に、所望の周波数帯域の抜き出しについて説明する。図１１は、周波数帯域の抜き出しを説明するための図である。周波数帯域の抜き出しは、上述のユニットフィルタを４個以上縦続接続したものを用いて行う。図１１（ａ）は、５タップローパスユニットフィルタ（Ｌ１０）４，（Ｌ１１）４，（Ｌ１３）４，（Ｌ１７）４の周波数−ゲイン特性を１つのグラフ上にまとめて示した図である。この図１１（ａ）でもゲインおよび周波数を“１”で基準化している。
これら複数種の５タップローパスユニットフィルタ（Ｌ１０）４，（Ｌ１１）４，（Ｌ１３）４，（Ｌ１７）４を組み合わせると、各特性値どうしが相殺し合って周波数帯域の抜き取りが行われる。また、これらの波形を基本として組み合わせ、必要に応じて反転周波数軸方向への移動を行うことにより、所望の周波数帯域のみが通過域となるフィルタを作ることができる。
図１１（ｂ）は、これら４種類の５タップローパスユニットフィルタ（Ｌ１０）４，（Ｌ１１）４，（Ｌ１３）４，（Ｌ１７）４を縦続接続したときに得られる周波数特性を示している。これによれば、低周波の極めて狭い領域が通過域となる、ほぼ良好な減衰特性を有するローパスフィルタが得られている。わずかにリンギングが発生しているが、このリンギングは−１０６ｄＢ以上落ち込んだ部分で生じているため、殆ど無視できる。
図１２は、周波数帯域の他の抜き取り例を示す図である。図１２（ａ）に示すように、５タップハイパスユニットフィルタ（Ｈ１０）８と、５タップローパスユニットフィルタ（Ｌ１１）８，（Ｌ１３）８，（Ｌ１７）８とを組み合わせてこれらを縦続接続すると、所定の周波数帯域が通過域となるハイパスフィルタを得ることができる。
また、図１２（ｂ）に示すように、５タップローパスユニットフィルタ（Ｌ１０）４，（Ｌ１１）８，（Ｌ１３）４を組み合わせてこれらを縦続接続すると、所定の周波数帯域が通過域となるローパスフィルタを得ることができる。また、図１２（ｃ）に示すように、５タップハイパスユニットフィルタ（Ｈ１１）８と、５タップローパスユニットフィルタ（Ｌ１３）４，（Ｌ１７）４，（Ｌ１１５）８とを組み合わせてこれらを縦続接続すると、所定の周波数帯域が通過域となるバンドパスフィルタを得ることができる。
以上のように、所定の基本的な数値列をフィルタ係数とする５タップユニットフィルタを用いてこれらを任意に組み合わせることにより、ユニットフィルタの組み合わせだけで、所望の周波数特性を有するＦＩＲフィルタのフィルタ係数を自動的に生成することができる。したがって、フィルタ設計法が単純で考えやすく、熟練した技術者でなくてもフィルタ設計を極めて簡単に行うことができる。
また、上述の手法を適用して設計されるフィルタ回路に必要なタップ数は非常に僅かで済み、かつ、各タップ出力に対して必要なフィルタ係数の種類も僅かで済むので、フィルタ回路の演算部の構成を極めて簡単にすることができる。したがって、回路素子数（特に乗算器）を大幅に削減してフィルタ回路の規模を小さくすることができるとともに、消費電力の低減、演算負荷の軽減等を図ることができる。
また、上述の手法を適用して設計されるフィルタ回路は、同一パターンの繰り返しから成る極めて単純な構成であるので、集積化に際して工数を短縮することができ、ＩＣ化を容易にすることができるというメリットも有する。また、特性面では遮断特性の極めて大きな改善が可能となり、位相特性も直線で優れたフィルタ特性を得ることができる。
以上説明した内容については、本出願人が既に特許出願済みである（特願２００１−３２１３２１号）。本実施形態は、この既出願の内容を更に改良したものであり、上述したように２種類の３タップユニットフィルタＬ１ｎ’，Ｈ１ｎ’の組み合わせだけで所望の周波数特性を有するＦＩＲフィルタを設計できるようにしたものである。上記３タップユニットフィルタＬ１ｎ’，Ｈ１ｎ’のフィルタ係数は、上述した５タップユニットフィルタＬ１ｎ，Ｈ１ｎのフィルタ係数の数値列をその中央で半分に分けたうちの片側を更に調整したものである。
図１３は、３タップユニットフィルタＬ１０’，Ｈ１０’を示す図であり、（ａ）はその回路構成を示し、（ｂ）はフィルタ係数の数値列を示している。図１３（ａ）に示すように、３タップユニットフィルタＬ１０’，Ｈ１０’では、縦続接続された３個のＤ型フリップフロップ１１−１〜１１−３によって入力信号を１クロックＣＫずつ順次遅延させる。そして、各Ｄ型フリップフロップ１１−１〜１１−３の所定のタップから取り出した信号に対して、図１３（ｂ）に示すフィルタ係数Ｈ１〜Ｈ３を３個の係数器１２−１〜１２−３でそれぞれ乗算し、それらの乗算結果を全て２個の加算器１３−１〜１３−２で加算して出力する。
上記２種類の３タップユニットフィルタＬ１０’，Ｈ１０’の回路構成は、何れも図１３（ａ）のようになっており、フィルタ係数（係数器１２−１〜１２−３の乗数値Ｈ１〜Ｈ３）のみが図１３（ｂ）のように異なっている。
３タップローパスユニットフィルタＬ１０’のフィルタ係数は、その数値列が非対称型であり、当該数値列の合計値が非ゼロで、当該数値列の１つ飛びの合計値が同符号で互いに等しくなるという性質を持っている。また、３タップハイパスユニットフィルタＨ１０’のフィルタ係数は、その数値列が非対称型であり、当該数値列の合計値がゼロで、当該数値列の１つ飛びの合計値が逆符号で互いに等しくなるという性質を持っている。
このように、これら３タップユニットフィルタＬ１０’，Ｈ１０’のフィルタ係数は、非対称型であることを除けば上述した５タップユニットフィルタＬ１０，Ｈ１０と同じ性質を持っている。ただし、５タップユニットフィルタＬ１０，Ｈ１０のフィルタ係数に比べて多少複雑な値になっている。以下に、この理由を説明する。
図１４は、５タップハイパスユニットフィルタＨ１０のフィルタ係数｛１，０，−９，１６，−９，０，１｝／３２をその中央で半分に分けたものの片側に相当する単純な数値列｛８，−９，０，１｝／１６をフィルタ係数とした場合（ただし、値が“０”の部分はタップ出力がなく、フィルタ係数として用いない）の周波数特性を示す図である。ここではゲインおよび周波数を“１”で基準化している。
この図１４に示すように、５タップハイパスユニットフィルタＨ１０の数値列を単純に半分に分けただけの数値列をフィルタ係数として用いると、その周波数特性において通過域となる部分のピークが波打って複数の極大値を生じ、かつ、その極大値が“１”を超えてしまう。このような周波数特性を持つユニットフィルタは、これを複数縦続接続して所望のＦＩＲフィルタを設計する方式には適しない。
そこで、上記単純な数値列｛８，−９，０，１｝／１６を調整する。まず、高域側の周波数特性を決定付けるフィルタ係数Ｈ３の絶対値を小さくする。すなわち、その係数値を“１”から“１−Ｎ／８”（Ｎ＝１，２，・・・８の何れか）に変更して高域の成分を少なくすることにより、通過域のちょうど中央のみがゲインの最大値となるようにする。
図１５は、フィルタ係数Ｈ３についてＮ＝３とした場合の周波数特性を示す図である。この図１５から明らかなように、通過域の波打ちは改善され、中央部分のみがゲインの最大値となっている。しかし、その最大値は依然として“１”を超えている。そこで次に、このゲインの最大値がちょうど“１”となるように係数値を更に調整する。
最大値の調整は、高域成分の調整のために用いたフィルタ係数Ｈ３と逆符号のフィルタ係数Ｈ２で行うことができる。ここでは、フィルタ係数Ｈ２の値を“−９”から“−（９−Ｎ／８）”（Ｎ＝１，２，・・・８の何れか）のように絶対値を小さくする。
このとき、ゲイン調整用のＮの値（フィルタ係数Ｈ２のＮの値）を、上述した高域調整用のＮの値（フィルタ係数Ｈ３のＮの値）と同じにすることにより、調整後の数値列の合計が、調整前の数値列の合計と同じ値になるようにする（調整前：８−９＋０＋１＝０、調整後：８−（９−Ｎ／８）＋０＋（１−Ｎ／８）＝０）。また、数値列の１つ飛びの合計値も調整前後で変わらないようにする。
図１６は、フィルタ係数Ｈ２，Ｈ３についてＮ＝３とした場合の周波数特性を示す図であり、（ａ）はゲインを直線目盛りで表し、（ｂ）はゲインを対数目盛りで表している。この図１６でも、ゲインおよび周波数を“１”で基準化している。
この図１６から明らかなように、フィルタ係数Ｈ２，Ｈ３を調整した場合は、通過域での波打ちが無く中央部分のみがゲインの最大値となっており、かつ、その最大値がちょうど“１”になっている。また、約−５５ｄＢの良好な減衰量も得られている。このような周波数特性を持つ３タップハイパスユニットフィルタＨ１０’は、これを縦続接続して所望のＦＩＲフィルタを設計する方式に適したものとなっている。
また、上述した５タップハイパスユニットフィルタＨ１ｎ（ｎ＝１，２，・・・）と同様に、３タップハイパスユニットフィルタＨ１０’の各フィルタ係数の間に“０”をｎ個ずつ挿入することにより、３タップハイパスユニットフィルタＨ１ｎ’を生成することが可能である。
上記３タップハイパスユニットフィルタＨ１０’と同様にして、３タップローパスユニットフィルタＬ１０’のフィルタ係数も適宜調整することができる。すなわち、５タップローパスユニットフィルタＬ１０の数値列を単純に半分に分けただけの数値列｛８，９，０，−１｝／１６に対して、高域側の周波数特性を決定付けるフィルタ係数Ｈ３の値を“−１”から“−（１−Ｎ／８）”のように絶対値を小さくする。
また、このフィルタ係数Ｈ３と逆符号のフィルタ係数Ｈ２によってゲインの最大値を調整する。すなわち、フィルタ係数Ｈ２の値を“９”から“９−Ｎ／８”のように小さくする。このとき、高域調整用のＮの値とゲイン調整用のＮの値とを同じにすることにより、調整後の数値列の合計が、調整前の数値列の合計と同じ値になるようにする（調整前：８＋９＋０−１＝１６、調整後：８＋（９−Ｎ／８）＋０−（１−Ｎ／８）＝１６）。また、数値列の１つ飛びの合計値も調整前後で変わらないようにする。
このように３タップローパスユニットフィルタＬ１０’のフィルタ係数値を調整した場合も、通過域での波打ちが無く中央部分のみがゲインの最大値となり、かつ、その最大値がちょうど“１”になるようなローパスフィルタ特性を得ることができる。このような周波数特性を持つ３タップローパスユニットフィルタＬ１０’も、これを縦続接続して所望のＦＩＲフィルタを設計する方式に適したものとなっている。
また、上述した５タップローパスユニットフィルタＬ１ｎ（ｎ＝１，２，・・・）と同様に、３タップローパスユニットフィルタＬ１０’の各フィルタ係数の間に“０”をｎ個ずつ挿入することにより、３タップローパスユニットフィルタＬ１ｎ’を生成することが可能である。
以上のように、図１３のように構成した２種類の３タップユニットフィルタＬ１０’，Ｈ１０’を適宜組み合わせて縦続接続することにより、５タップユニットフィルタＬ１０，Ｈ１０を組み合わせた場合と同様に所望の周波数特性を有するＦＩＲフィルタを簡単に設計することができる。
なお、３タップユニットフィルタＬ１０’，Ｈ１０’のフィルタ係数は、５タップユニットフィルタＬ１０，Ｈ１０のフィルタ係数の数値列をその中央で半分に分けたもう片側の数値列｛−１，０，９，８｝／１６、｛１，０，−９，８｝／１６を調整して生成しても良い。
次に、上述の３タップユニットフィルタＬ１０’，Ｈ１０’を用いたバンドパスフィルタの設計例を示す。設計するバンドパスフィルタの目標規格は、次の通りとする。すなわち、バンドパスフィルタの中心周波数Ｆｃが６７５ＫＨｚ、信号のサンプリング周波数Ｆｓが２．７ＭＨｚ（Ｆｓ＝４＊Ｆｃ）、−３ｄＢの帯域幅が１００ＫＨｚ、−８０ｄＢの帯域幅が２００ＫＨｚ、帯域外減衰量は−８０ｄＢ以上である。
図１７は、この目標規格を実現するバンドパスフィルタの回路例を示す図である。図１７に示す回路は、３タップハイパスユニットフィルタＨ１１’を６個、３タップローパスユニットフィルタＬ１３’を４個、３タップハイパスユニットフィルタＨ１５’を３個、３タップローパスユニットフィルタＬ１７’を３個、５タップハイパスユニットフィルタＨ１９を２個、この順番で縦続接続することによって構成されている。
図１８は、図１７に示すバンドパスフィルタの周波数特性を示す図であり、（ａ）はゲインを直線目盛りで表し、（ｂ）はゲインを対数目盛りで表している。図１８から分かるように、図１７に示すバンドパスフィルタは上述した目標規格を満足している。なお、３タップユニットフィルタＬ１ｎ’，Ｈ１ｎ’はそのフィルタ係数の数値列が非対称型であるため、これ単独では図１６に示したように位相の直線性が保証されない。しかし、これを多数集めて図１７のように縦続接続すると、位相の歪みが打ち消しあって、図１８のように位相特性が多少改善される。
これらの図１７および図１８から分かるように、本実施形態のフィルタ設計法によれば、よりタップ数の少ない３タップユニットフィルタＬ１ｎ’，Ｈ１ｎ’を基本とし、これを縦続接続した極めて単純な構成で所望特性のバンドパスフィルタを得ることができる。このとき全体として必要なタップ数は、１ビット当たり僅か５１タップである。
すなわち、このバンドパスフィルタのフィルタ係数は上述した有限台の関数に基づいて生成されたものであり、縦続接続の両サイド付近では係数値が無視できるほど小さくなる。有限台の性質上、この部分を無視しても打切り誤差は生じないので、この部分は除外する。除外した残りの部分が、目標規格を満足するバンドパスフィルタについて求める最終的なフィルタ係数となる。
したがって、実際にはこのフィルタ係数をハードウェアとして構成すれば良く、それに必要なタップは５１個で済む。これにより、５タップユニットフィルタＬ１ｎ，Ｈ１ｎのみを用いる場合に比べて、全体として必要なタップ数を少なくすることができ、フィルタ回路の構成を極めて簡単にすることができる。
なお、ここでは３タップユニットフィルタＬ１ｎ’，Ｈ１ｎ’を用いてバンドパスフィルタを設計する例について説明したが、同様の手法によりハイパスフィルタ、ローパスフィルタ、バンドエリミネーションフィルタ等を設計することも可能である。
（第２の実施形態）
次に、本発明の第２の実施形態について説明する。上記第１の実施形態では、例えば３タップローパスユニットフィルタＬ１０’のフィルタ係数として、５タップローパスユニットフィルタＬ１０のフィルタ係数を構成する数値列｛−１，０，９，１６，９，０，−１｝／３２を半分に分けたうちの片側の数値列｛８，９，０，−１｝／１６を更に調整したものを用いていた。
また、３タップハイパスユニットフィルタＨ１０’のフィルタ係数として、５タップハイパスユニットフィルタＨ１０のフィルタ係数を構成する数値列｛１，０，−９，１６，−９，０，１｝／３２を半分に分けたうちの片側の数値列｛８，−９，０，１｝／１６を更に調整したものを用いていた。これら３タップユニットフィルタＬ１０’，Ｈ１０’のフィルタ係数は共に非対称型なので、上述したように位相の直線性は保証されない。
これに対して、第２の実施形態は、タップ数を減らせる３タップユニットフィルタを用いつつも、直線位相特性を実現できるようにするものである。
図１９は、第２の実施形態によるユニットフィルタＬ１０”，Ｈ１０”を示す図であり、（ａ）はその回路構成を示し、（ｂ）はフィルタ係数の数値列を示している。
図１９（ａ）に示すように、本実施形態のユニットフィルタＬ１０”，Ｈ１０”は共に同様の構成を有している。すなわち、ローパスユニットフィルタＬ１０”は、２つの３タップローパスユニットフィルタ１Ｌ１０，２Ｌ１０を縦続接続して構成されている。また、ハイパスユニットフィルタＨ１０”は、２つの３タップハイパスユニットフィルタ１Ｈ１０，２Ｈ１０を縦続接続して構成されている。
図１９（ｂ）に示すように、ローパスユニットフィルタＬ１０”を構成する一方の３タップローパスユニットフィルタ２Ｌ１０は、上記５タップローパスユニットフィルタＬ１０のフィルタ係数の数値列｛−１，０，９，１６，９，０，−１｝／３２を半分に分けたうちの片側の数値列｛８，９，０，−１｝／１６を更に調整したものをフィルタ係数Ｈ４〜Ｈ６とするものである。これは、第１の実施形態で説明した３タップローパスユニットフィルタＬ１０’と同じものである。また、他方の３タップローパスユニットフィルタ１Ｌ１０は、上述のように半分に分けたうちのもう片側の数値列｛−１，０，９，８｝／１６を更に調整したものをフィルタ係数Ｈ１〜Ｈ３とするものである。
また、ハイパスユニットフィルタＨ１０”を構成する一方の３タップハイパスユニットフィルタ２Ｈ１０は、上記５タップハイパスユニットフィルタＨ１０のフィルタ係数の数値列｛１，０，−９，１６，−９，０，１｝／３２を半分に分けたうちの片側の数値列｛８，−９，０，１｝／１６を更に調整したものをフィルタ係数Ｈ４〜Ｈ６とするものである。これは、第１の実施形態で説明した３タップハイパスユニットフィルタＨ１０’と同じものである。また、他方の３タップハイパスユニットフィルタ１Ｈ１０は、上述のように半分に分けたうちのもう片側の数値列｛１，０，−９，８｝／１６を更に調整したものをフィルタ係数Ｈ１〜Ｈ３とするものである。
なお、上記２つの３タップローパスユニットフィルタ１Ｌ１０，２Ｌ１０の接続関係や、上記２つの３タップハイパスユニットフィルタ１Ｈ１０，２Ｈ１０の接続関係は、図１９（ａ）に示したものと左右反対でも良い。
以上のようにユニットフィルタＬ１０”，Ｈ１０”を構成すると、フィルタ係数は対称型となるので、位相特性は直線となる。図２０はローパスユニットフィルタＬ１０”の周波数特性、図２１はハイパスユニットフィルタＨ１０”の周波数特性を示す図であり、ゲインを対数目盛りで表している。この図２０および図２１でも、ゲインおよび周波数を“１”で基準化している。
これらの図から分かるように、周波数−ゲイン特性では通過域での波打ちが無く、かつ、最大値がちょうど“１”になっている。また、約−５５ｄＢの良好な減衰量も得られている。さらに、周波数−位相特性では非常にきれいな直線位相特性が得られている。したがって、このような周波数特性を持つユニットフィルタＬ１ｎ”，Ｈ１ｎ”を、第１の実施形態で説明したように縦続接続することにより、非常に少ないタップ数で、係数が対称な直線位相フィルタを構成することができる。
ところで、図１９に示したユニットフィルタＬ１０”，Ｈ１０”は全体で６タップを備えており、５タップユニットＬ１０，Ｈ１０よりもタップ数が多くなっている。しかし、５タップユニットＬ１０，Ｈ１０は１段で構成されるのに対して、ユニットフィルタＬ１０”，Ｈ１０”は２つの３タップユニットフィルタを縦続接続して構成されている。したがって、バンド幅は既に５タップユニットＬ１０，Ｈ１０よりも狭くなっている。
そのため、第２の実施形態はバンド幅の狭いＦＩＲフィルタを設計する場合に特に有効である。すなわち、所望の狭いバンド幅を実現するために全体として必要なユニットフィルタの縦続数を、５タップユニットフィルタＬ１０，Ｈ１０を用いる場合に比べて大幅に少なくすることができる。これにより、全体としてみれば回路規模を小さくすることができる。
以上に説明した第１および第２の実施形態によるデジタルフィルタの設計方法を実現するための装置は、ハードウェア構成、ＤＳＰ、ソフトウェアの何れによっても実現することが可能である。例えばソフトウェアによって実現する場合、フィルタ設計装置はコンピュータのＣＰＵあるいはＭＰＵ、ＲＡＭ、ＲＯＭなどで構成され、ＲＡＭやＲＯＭあるいはハードディスク等に記憶されたプログラムが動作することによって実現できる。
したがって、コンピュータが上記本実施形態の機能を果たすように動作させるプログラムを例えばＣＤ−ＲＯＭのような記録媒体に記録し、これをコンピュータに読み込ませることによって実現できるものである。上記プログラムを記録する記録媒体としては、ＣＤ−ＲＯＭ以外に、フレキシブルディスク、ハードディスク、磁気テープ、光ディスク、光磁気ディスク、ＤＶＤ、不揮発性メモリカード等を用いることができる。また、上記プログラムをインターネット等のネットワークを介してコンピュータにダウンロードすることによっても実現できる。
すなわち、各種のユニットフィルタに関するフィルタ係数を情報としてＲＡＭあるいはＲＯＭ等のメモリに保持しておき、ユーザがユニットフィルタに関する任意の組み合わせを指示すると、ＣＰＵが、上記メモリに保持されているフィルタ係数の情報を用いて、指示された組み合わせに対応するフィルタ係数を演算してＦＩＲフィルタを求めるようにすることが可能である。
例えば、各種のユニットフィルタをアイコン化しておき（各アイコンに対応してフィルタ係数を情報として保持している）、ユーザがこれらのアイコンをディスプレイ画面上で任意に組み合わせて配置することにより、ＣＰＵがその配列に対応するフィルタ係数を自動的に演算して求めるようにしても良い。また、求めたフィルタ係数を自動的にＦＦＴ変換し、その結果を周波数−ゲイン特性図として表示するようにすれば、設計したフィルタの特性を確認することができ、フィルタ設計をより容易に行うことができる。
なお、コンピュータが供給されたプログラムを実行することにより上述の実施形態の機能が実現されるだけでなく、そのプログラムがコンピュータにおいて稼働しているＯＳ（オペレーティングシステム）あるいは他のアプリケーションソフト等と共同して上述の実施形態の機能が実現される場合や、供給されたプログラムの処理の全てあるいは一部がコンピュータの機能拡張ボードや機能拡張ユニットにより行われて上述の実施形態の機能が実現される場合も、かかるプログラムは本発明の実施形態に含まれる。
（その他の実施形態）
上記第１および第２の実施形態では、図２（ａ）および（ｂ）に示した対称型の数値列を半分に分けて非対称型の３タップユニットフィルタのフィルタ係数としたが、元の対称型の数値列はこれに限定されるものではない。例えば、図２２（ａ）に示すように生成した５タップローパスユニット２次フィルタＬ２０や、図２２（ｂ）に示すように生成した５タップハイパスユニット２次フィルタＨ２０の対称型の数値列を用いても良い。
これらの５タップユニット２次フィルタＬ２０，Ｈ２０の周波数−ゲイン特性では、カットオフ特性は急峻であるが、肩の部分（通過域）に多少の盛り上がりが生じる。したがって、これらの５タップユニット２次フィルタＬ２０，Ｈ２０は、縦続接続するフィルタブロックの最終段において、波形調整用として使用するのが好ましい。
このような特性を有する５タップユニット２次フィルタＬ２ｎ，Ｈ２ｎのフィルタ係数を構成する数値列を半分に分けて、その片側を更に調整して３タップユニット２次フィルタＬ２ｎ’，Ｈ２ｎ’のフィルタ係数とすることが可能である。また、この３タップユニット２次フィルタＬ２ｎ’，Ｈ２ｎ’を対称型となるようにミラー接続することにより、直線位相特性を実現するユニット２次フィルタＬ２ｎ”，Ｈ２ｎ”を構成することも可能である。
また、上記図２および図２２に示したもの以外でも、絶対値が“１”と“８”の数値を用いて上述の数値列と異なる数値列を５タップユニットフィルタのフィルタ係数とし、その数値列を半分に分けて３タップユニットフィルタのフィルタ係数とするようにしても良い。
また、上記実施形態では、複数種類のユニットフィルタを組み合わせることにより、各特性値どうしの相殺により周波数帯域の抜き出しを行う例について説明した。これに対して、バンドパスフィルタの中心周波数Ｆｃまたは信号のサンプリング周波数Ｆｓの何れかを自由に決定できるときは、周波数抜き出しの条件を最適化することにより、フィルタの構成をより簡素化することができる。
今、バンドパスフィルタの中心周波数Ｆｃと信号のサンプリング周波数Ｆｓとの関係が、
Ｆｓ＝４＊Ｆｃ
であるとする。Ｆｃ＝４５０ＫＨｚのとき、Ｆｓ＝１．８ＭＨｚである。このような設定の場合には、ローパスユニットフィルタとハイパスユニットフィルタとを組み合わせた特性値どうしの相殺により必要な周波数帯域を抜き出すようにすることなく、例えばハイパスユニットフィルタの縦続接続のみでバンドパスフィルタを直接設計することができる。
例えば、５タップハイパスユニットフィルタＨ１１の縦続接続のみによってＦＭ用バンドパスフィルタを構成することができ、その接続数ｍによってバンド幅（通過帯域幅）を調整する。このことを、３タップハイパスユニットフィルタＨ１１’あるいはハイパスユニットフィルタＨ１１”等に応用することが可能である。
さらに、上記のように構成したＦＭ用バンドパスフィルタの後段に５タップローパスユニットフィルタ（Ｌ１ｎ）ｍを縦続接続することにより、ＡＭ用バンドパスフィルタを構成することも可能である。これについても同様に、３タップローパスユニットフィルタＬ１１’あるいはローパスユニットフィルタＬ１１”等に応用することが可能である。
また、上述のユニットフィルタを用いて比較的簡単なローパスフィルタを設計し、その通過域を周波数軸方向にシフトすることによって、所望の周波数帯域を通過域とするハイパスフィルタ、バンドパスフィルタ、バンドエリミネーションフィルタ等を設計するようにしても良い。
一般に、ローパスフィルタの係数Ｈ０，Ｈ１，Ｈ−１，Ｈ２，Ｈ−２，・・・（係数Ｈ０が中央で対称型になっている）に２ｃｏｓ（ｍω０）をかけるとバンドパスフィルタの係数が得られることが知られている。ここで、ω０＝２πＦｃ／Ｆｓ（Ｆｃはフィルタの中心周波数、Ｆｓは信号のサンプリング周波数）、ｍ＝０，１，−１，２，−２，・・・である。
その他、上記実施形態は、何れも本発明を実施するにあたっての具体化の一例を示したものに過ぎず、これによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその精神、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
【産業上の利用可能性】  本発明は、複数の遅延器から成るタップ付き遅延線を備え、各タップの信号をそれぞれ数倍した後、加算して出力するタイプのＦＩＲデジタルフィルタに有用である。
【図１】
2004036746.tif 000003
【図２】
2004036746.tif 000004
【図３】
2004036746.tif 000005
【図４】
2004036746.tif 000006
【図５】
2004036746.tif 000007
【図６】
2004036746.tif 000008
【図７】
2004036746.tif 000009
【図８】
2004036746.tif 000010
【図９】
2004036746.tif 000011
【図１０】
2004036746.tif 000012
【図１１】
2004036746.tif 000013
【図１２】
2004036746.tif 000014
【図１３】
2004036746.tif 000015
【図１４】
2004036746.tif 000016
【図１５】
2004036746.tif 000017
【図１６】
2004036746.tif 000018
【図１７】
2004036746.tif 000019
【図１８】
2004036746.tif 000020
【図１９】
2004036746.tif 000021
【図２０】
2004036746.tif 000022
【図２１】
2004036746.tif 000023
【図２２】
2004036746.tif 000024
【国際調査報告】
2004036746.tif 000025
2004036746.tif 000026
2004036746.tif 000027
2004036746.tif 000028