(57)【要約】“−１，ｍ，−１”または“１，ｍ，１”の比率から成る数値列に対して所定の移動平均演算をｎ回繰り返し行うことによって求められる数値列を基本フィルタのフィルタ係数とし、１以上の基本フィルタを任意に組み合わせて縦続接続することによって、求めるデジタルフィルタのフィルタ係数を算出することにより、従来のＦＩＲフィルタに比べてタップ数および乗算器の使用数を大幅に削減できるようにする。しかも、“−１，ｍ，−１”および“１，ｍ，１”の数値列を用いることによってフィルタのインパルス応答が有限台の関数となるようにすることにより、打ち切り誤差がなく、かつ、大きな帯域外減衰量を有する良好な周波数特性が得られるようにする。
2004079905.tif 000002
【特許請求の範囲】
【請求項１】
基本のフィルタ係数を有するＦＩＲ型の１以上の基本フィルタを任意に組み合わせて縦続接続した場合のフィルタ係数を算出し、当該算出したフィルタ係数を、求めるデジタルフィルタのフィルタ係数として決定するように成し、
上記基本のフィルタ係数は、“−１，ｍ，−１”の比率より成る数値列に対して、演算前の元データとそれより所定遅延量だけ前の前データとを加算し振幅調整して出力する移動平均演算をｎ回繰り返し行うことによって求められる数値列、“１，ｍ，１”の比率より成る数値列に対して、演算前の元データからそれより所定遅延量だけ前の前データを減算し振幅調整して出力する移動平均演算をｎ回繰り返し行うことによって求められる数値列の少なくとも何れか一方の数値列から成ることを特徴とするデジタルフィルタの設計方法。
【請求項２】
上記“−１，ｍ，−１”もしくは“１，ｍ，１”の比率より成る数値列、または、当該数値列に対して上記移動平均演算をｎ回繰り返し行った後の数値列の各数値の間にゼロ値を数個ずつ挿入することによってフィルタの通過周波数帯域を調整するようにしたことを特徴とする請求の範囲第１項に記載のデジタルフィルタの設計方法。
【請求項３】
上記“−１，ｍ，−１”の比率の数値列は、上記“−１，ｍ，−１”の数値列を１／（ｍ−２）倍したものであることを特徴とする請求の範囲第１項に記載のデジタルフィルタの設計方法。
【請求項４】
上記“１，ｍ，１”の比率の数値列は、上記“１，ｍ，１”の数値列を１／（ｍ−２）倍したものであることを特徴とする請求の範囲第１項に記載のデジタルフィルタの設計方法。
【請求項５】
上記移動平均演算を繰り返し行う回数ｎは、８／（ｍ−２）回であることを特徴とする請求の範囲第１項に記載のデジタルフィルタの設計方法。
【請求項６】
上記ｍの値は、２＜ｍ≦１０の条件を満たす値であることを特徴とする請求の範囲第５項に記載のデジタルフィルタの設計方法。
【請求項７】
上記基本フィルタを任意に組み合わせて縦続接続した場合の算出結果であるｙビットのフィルタ係数に対して下位数ビットを切り捨てる丸め処理を行うことによってｘビット（ｘ＜ｙ）のフィルタ係数を求めるようにしたことを特徴とする請求の範囲第１項に記載のデジタルフィルタの設計方法。
【請求項８】
上記丸め処理によって求められたｘビットのフィルタ係数を２ｘ倍して小数点以下を丸める第２の丸め処理を行うことによってフィルタ係数を整数化するようにしたことを特徴とする請求の範囲第７項に記載のデジタルフィルタの設計方法。
【請求項９】
“−１，ｍ，−１”の比率より成る数値列に対して、演算前の元データとそれより所定遅延量だけ前の前データとを加算し振幅調整して出力する移動平均演算をｎ回繰り返し行うことによって求められる数値列から成る基本のフィルタ係数、および、“１，ｍ，１”の比率より成る数値列に対して、演算前の元データからそれより所定遅延量だけ前の前データを減算し振幅調整して出力する移動平均演算をｎ回繰り返し行うことによって求められる数値列から成る基本のフィルタ係数に関するデータを記憶する基本フィルタ係数記憶手段と、
上記基本のフィルタ係数を有するＦＩＲ型の１以上の基本フィルタを任意に組み合わせて縦続接続した場合のフィルタ係数を、上記基本フィルタ係数記憶手段に記憶されたデータを用いて算出する演算手段とを備えたことを特徴とするデジタルフィルタの設計装置。
【請求項１０】
上記演算手段は、上記基本フィルタを任意に組み合わせて縦続接続した場合の算出結果であるｙビットのフィルタ係数に対して下位数ビットを切り捨てる丸め処理を行うことによってｘビット（ｘ＜ｙ）のフィルタ係数を求める手段を更に備えることを特徴とする請求の範囲第９項に記載のデジタルフィルタの設計装置。
【請求項１１】
上記演算手段は、上記丸め処理によって求められたｘビットのフィルタ係数を２ｘ倍して小数点以下を丸める第２の丸め処理を行うことによってフィルタ係数を整数化する手段を更に備えることを特徴とする請求の範囲第１０項に記載のデジタルフィルタの設計装置。
【請求項１２】
請求の範囲第１項〜第８項の何れか１項に記載されたデジタルフィルタの設計方法に関する処理手順をコンピュータに実行させるためのデジタルフィルタ設計用プログラム。
【請求項１３】
請求の範囲第９項〜第１１項の何れか１項に記載の各手段としてコンピュータを機能させるためのデジタルフィルタ設計用プログラム。
【請求項１４】
請求の範囲第１項〜第８項の何れか１項に記載の設計方法、あるいは、請求の範囲第９項〜第１１項の何れか１項に記載の設計装置を用いて算出された数値列をフィルタ係数として持つＦＩＲ型のデジタルフィルタ。
【請求項１５】
複数の遅延器から成るタップ付き遅延線を備え、各タップの出力信号を、請求の範囲第１項〜第８項の何れか１項に記載の設計方法、あるいは、請求の範囲第９項〜第１１項の何れか１項に記載の設計装置を用いて求められたフィルタ係数によりそれぞれ数倍した後、それらの乗算結果を加算して出力するように構成したことを特徴とするデジタルフィルタ。
【請求項１６】
複数の遅延器から成るタップ付き遅延線における各タップの出力データを、“−１，ｍ，−１”の比率の数値列より成るフィルタ係数によりそれぞれ数倍した後、それらの乗算結果を加算して出力するように成されたＦＩＲ演算部と、
上記ＦＩＲ演算部の出力データに対して、演算前の元データとそれより所定遅延量だけ前の前データとを加算し振幅調整して出力する移動平均演算をｎ回繰り返し行う移動平均演算部とを備えたことを特徴とするデジタルフィルタ。
【請求項１７】
複数の遅延器から成るタップ付き遅延線における各タップの出力データを、“１，ｍ，１”の比率の数値列より成るフィルタ係数によりそれぞれ数倍した後、それらの乗算結果を加算して出力するように成されたＦＩＲ演算部と、
上記ＦＩＲ演算部の出力データに対して、演算前の元データからそれより所定遅延量だけ前の前データを減算し振幅調整して出力する移動平均演算をｎ回繰り返し行う移動平均演算部とを備えたことを特徴とするデジタルフィルタ。
【請求項１８】
基本単位フィルタを偶数段縦続接続して成るＦＩＲ演算部であって、当該基本単位フィルタが、複数の遅延器から成るタップ付き遅延線における各タップの出力データを“−１，Ｎ”の比率の数値列より成るフィルタ係数によりそれぞれ数倍した後、それらの乗算結果を加算して出力するように成されているＦＩＲ演算部と、
上記ＦＩＲ演算部の出力データに対して、演算前の元データとそれより所定遅延量だけ前の前データとを加算し振幅調整して出力する移動平均演算をｎ回繰り返し行う移動平均演算部とを備えたことを特徴とするデジタルフィルタ。
【請求項１９】
基本単位フィルタを偶数段縦続接続して成るＦＩＲ演算部であって、当該基本単位フィルタが、複数の遅延器から成るタップ付き遅延線における各タップの出力データを“１，Ｎ”の比率の数値列より成るフィルタ係数によりそれぞれ数倍した後、それらの乗算結果を加算して出力するように成されているＦＩＲ演算部と、
上記ＦＩＲ演算部の出力データに対して、演算前の元データからそれより所定遅延量だけ前の前データを減算し振幅調整して出力する移動平均演算をｎ回繰り返し行う移動平均演算部とを備えたことを特徴とするデジタルフィルタ。
【請求項２０】
上記Ｎの値が０で、上記基本単位フィルタを偶数段縦続接続して成るＦＩＲ演算部のフィルタ係数が“１”であることを特徴とする請求の範囲第１８項または第１９項に記載のデジタルフィルタ。
【請求項２１】
上記ＦＩＲ演算部を構成する遅延器の遅延間隔および上記移動平均演算部を構成する遅延器の遅延間隔を所定量に設定したことを特徴とする請求の範囲第１６項〜第２０項の何れか１項に記載のデジタルフィルタ。
【請求項２２】
請求の範囲第１８項に記載のデジタルフィルタ、請求の範囲第１９項に記載のデジタルフィルタ、請求の範囲第１８項または第１９項に記載のデジタルフィルタにおいて上記ＦＩＲ演算部を構成する遅延器の遅延間隔および上記移動平均演算部を構成する遅延器の遅延間隔を所定量に設定したデジタルフィルタをそれぞれ基本フィルタとし、１以上の基本フィルタを任意に組み合わせてそれらを縦続接続することによって構成したことを特徴とするデジタルフィルタ。
【請求項２３】
上記“−１，ｍ，−１”の比率の数値列は、上記“−１，ｍ，−１”の数値列を１／（ｍ−２）倍したものであることを特徴とする請求の範囲第１６項に記載のデジタルフィルタ。
【請求項２４】
上記“１，ｍ，１”の比率の数値列は、上記“１，ｍ，１”の数値列を１／（ｍ−２）倍したものであることを特徴とする請求の範囲第１７項に記載のデジタルフィルタ。
【請求項２５】
上記移動平均演算を繰り返し行う回数ｎは、８／（ｍ−２）回であることを特徴とする請求の範囲第１６項または第１７項に記載のデジタルフィルタ。
【請求項２６】
上記ｍの値は、２＜ｍ≦１０の条件を満たす値であることを特徴とする請求の範囲第２５項に記載のデジタルフィルタ。
【発明の詳細な説明】
【技術分野】  本発明はデジタルフィルタの設計方法および装置、デジタルフィルタ設計用プログラム、デジタルフィルタに関し、特に、複数の遅延器から成るタップ付き遅延線を備え、各タップの出力信号をそれぞれ数倍した後、それらの乗算結果を加算して出力するタイプのＦＩＲフィルタおよびその設計法に関するものである。
【背景技術】  デジタルフィルタの１つの形態として、ＦＩＲ（Ｆｉｎｉｔｅ  Ｉｍｐｕｌｓｅ  Ｒｅｓｐｏｎｓｅ：有限長インパルス応答）フィルタが存在する。このＦＩＲフィルタは、複数の遅延器から成るタップ付き遅延線を備え、各タップの出力信号をそれぞれフィルタ係数により数倍した後、それらの乗算結果を加算して出力するタイプのフィルタであり、次のような利点を持つ。第１に、ＦＩＲフィルタの伝達関数の極はｚ平面の原点のみにあるため、回路は常に安定である。第２に、フィルタ係数が対称型であれば、完全に正確な直線位相特性を実現することができる。
このＦＩＲフィルタは、有限時間長で表されるインパルス応答がそのままフィルタ係数となっている。したがって、ＦＩＲフィルタを設計するということは、希望の周波数特性が得られるようにフィルタ係数を決定するということである。従来、ＦＩＲフィルタを設計する際には、目標とする周波数特性に基づきフィルタ係数を算出し、これに窓掛けを行って有限個の係数群を得る。そして、得られた係数群をＦＦＴ（高速フーリエ変換）することによって周波数特性に変換し、これが目標の特性を満足しているか否かを確認する方法で設計していた。
目標とする周波数特性からフィルタ係数を算出する際には、例えば、サンプリング周波数とカットオフ周波数との比率をもとに、チェビシェフ近似法を用いた畳み込み演算等を行っていた。これにより求められる係数の数は膨大となり、その係数を全て使用すると、フィルタ回路のタップ数や乗算器は非常に多くなってしまい、現実的でない。そのため、窓掛けによってフィルタ係数の数を実用上耐えうる程度に減らす必要があった。
しかしながら、従来の設計法で得られるＦＩＲフィルタの周波数特性は、窓関数や近似式に依存するので、これらをうまく設定しないと、目標とする良好な周波数特性を得ることができない。ところが、窓関数や近似式を適当に設定することは、一般に困難である。また、フィルタ係数の数を減らすために窓掛けをすると、周波数特性に打ち切り誤差が発生してしまう。そのため、従来のフィルタ設計法で所望の周波数特性を実現するのは非常に困難という問題があった。
また、従来のフィルタ設計法で所望の周波数特性を得るためには、求めたフィルタ係数をＦＦＴしてその周波数特性を確認しながらの試行錯誤が必要であった。したがって、従来は熟練した技術者が時間と手間をかけて設計する必要があり、所望特性のＦＩＲフィルタを容易には設計できないという問題があった。
また、所望の周波数特性をできるだけ精密に実現するＦＩＲフィルタを設計するためには、窓掛けによって減らせるフィルタ係数の数に限界がある。そのため、設計されたＦＩＲフィルタのタップ数は非常に多くなり、しかもそのフィルタ係数値は非常に複雑でランダムな値となる。そのため、そのタップ数およびフィルタ係数値を実現するためには大規模な回路構成（加算器、乗算器）が必要になるという問題もあった。
なお、タップ付き遅延線の各タップ間（各フィルタ係数間）に１以上のゼロ値を挿入することによってフィルタバンク帯域を調整する方法が知られている（例えば、特表平６−５０３４５０号公報参照）。また、複数のＦＩＲフィルタを縦続接続することによって急峻な周波数特性を実現する方法も知られている（例えば、特開平５−２４３９０８号公報参照）。しかしながら、これら何れの方法を用いても、ただ単にフィルタの通過帯域を狭くすることができるのみで、任意形状の周波数特性を少ないタップ数で精密に実現することはできなかった。
【発明の開示】
本発明は、このような問題を解決するために成されたものであり、所望の周波数特性を有するＦＩＲデジタルフィルタを簡易的に設計できるようにすることを目的とする。
また、本発明は、所望の周波数特性を有するＦＩＲデジタルフィルタを小さな回路規模で高精度に実現することができるようにすることをも目的としている。
上記課題を解決するために、本発明においては、“−１，ｍ，−１”または“１，ｍ，１”の比率から成る数値列に対して所定の移動平均演算をｎ回繰り返し行うことによって求められる数値列を基本フィルタのフィルタ係数とし、１以上の基本フィルタを任意に組み合わせて縦続接続することによって、求めるデジタルフィルタのフィルタ係数を算出するようにした。
このように構成した本発明によれば、従来のＦＩＲフィルタに比べてタップ数および乗算器の使用数を大幅に削減することができ、デジタルフィルタの構成を極めて簡単にすることができる。また、フィルタ係数の数を減らすために窓掛けを行う必要がなく、フィルタのインパルス応答も有限台の関数となるので、打ち切り誤差がなく、かつ、大きな帯域外減衰量を有する良好な周波数特性を得ることができる。したがって、所望の周波数特性を有するＦＩＲデジタルフィルタを小さな回路規模で高精度に実現することができる。また、本発明によれば、基本フィルタの組み合わせだけで所望のデジタルフィルタを構成することができるので、熟練した技術者でなくても、所望の周波数特性を有するＦＩＲデジタルフィルタを極めて簡単に設計することができる。
【図面の簡単な説明】  図１は、基本ローパスフィルタＬ４ａｎのフィルタ係数を示す図である。
図２は、基本ローパスフィルタＬ４ａ４の周波数特性を示す図である。
図３は、基本ローパスフィルタＬ４ａｎの周波数−ゲイン特性を示す図である。
図４は、基本ローパスフィルタＬａｎのフィルタ係数を示す図である。
図５は、基本ローパスフィルタＬａ４の周波数特性を示す図である。
図６は、基本ローパスフィルタＬａｎの周波数−ゲイン特性を示す図である。
図７は、基本ハイパスフィルタＨ４ｓｎのフィルタ係数を示す図である。
図８は、基本ハイパスフィルタＨ４ｓ４の周波数特性を示す図である。
図９は、基本ハイパスフィルタＨ４ｓｎの周波数−ゲイン特性を示す図である。
図１０は、基本ハイパスフィルタＨｓｎのフィルタ係数を示す図である。
図１１は、基本ハイパスフィルタＨｓ４の周波数特性を示す図である。
図１２は、基本ハイパスフィルタＨｓｎの周波数−ゲイン特性を示す図である。
図１３は、基本バンドパスフィルタＢ４ｓｎのフィルタ係数を示す図である。
図１４は、基本バンドパスフィルタＢ４ｓ４の周波数特性を示す図である。
図１５は、基本バンドパスフィルタＢ４ｓｎの周波数−ゲイン特性を示す図である。
図１６は、基本バンドパスフィルタＢｓｎのフィルタ係数を示す図である。
図１７は、基本バンドパスフィルタＢｓ４の周波数特性を示す図である。
図１８は、基本バンドパスフィルタＢｓｎの周波数−ゲイン特性を示す図である。
図１９は、基本ハイパスフィルタＨｍｓｎにおいてｍをパラメータとした周波数−ゲイン特性を示す図である。
図２０は、パラメータｍに対するパラメータｎの最適値を示す図である。
図２１は、パラメータｍとそれに対するパラメータｎの最適値との関係およびパラメータｍとそれに対するパラメータｘとの関係を示す図である。
図２２は、基本ハイパスフィルタＨｍｓｎのインパルス応答を示す図である。
図２３は、基本ローパスフィルタＬ４ａ４，Ｌ４ａ４（１）の周波数−ゲイン特性を示す図である。
図２４は、基本フィルタを縦続接続した場合のフィルタ係数の演算内容を説明するための図である。
図２５は、基本ローパスフィルタ（Ｌ４ａ４）Ｍの周波数−ゲイン特性を示す図である。
図２６は、基本ハイパスフィルタ（Ｈ４ｓ４）Ｍの周波数−ゲイン特性を示す図である。
図２７は、１６ビットの演算精度で実際に算出したフィルタ係数値（丸め処理前のもの）をグラフ化した図である。
図２８は、フィルタ係数を丸め処理する前におけるデジタルフィルタの周波数特性を示す図である。
図２９は、図２７のフィルタ係数に対して１０ビットの丸め処理を行った結果として残った４１タップ（ゼロ値を含めた段数は４６段）分のフィルタ係数値とそれを整数化した係数値とを示す図である。
図３０は、１６ビットの演算精度でフィルタ係数を算出した後、それを１０ビットに丸めて更に整数化した場合の周波数−ゲイン特性を示す図である。
図３１は、基本ローパスフィルタＬ４ａ４のハードウェア構成例を示す図である。
図３２は、基本ローパスフィルタＬａ４のハードウェア構成例を示す図である。
図３３は、基本ハイパスフィルタＨ４ｓ４のハードウェア構成例を示す図である。
図３４は、基本ハイパスフィルタＨｓ４のハードウェア構成例を示す図である。
図３５は、基本バンドパスフィルタＢ４ｓ４のハードウェア構成例を示す図である。
図３６は、基本バンドパスフィルタＢｓ４のハードウェア構成例を示す図である。
図３７は、バンドパスフィルタの構成例を示す図である。
図３８は、図３７に示すバンドパスフィルタの周波数特性を示す図である。
図３９は、バンドパスフィルタの他の構成例を示す図である。
図４０は、図３９に示すバンドパスフィルタの周波数−ゲイン特性を示す図である。
【発明を実施するための最良の形態】  以下、本発明の一実施形態を図面に基づいて説明する。本実施形態では、相互に対応する時間軸上のインパルス応答と周波数軸上の周波数特性とにおいて、インパルス応答の畳み込みが周波数応答の積算となる点に着目し、フィルタ係数の算出を出発点とする従来の設計法とは根本的に異なる全く新しいフィルタ設計法およびその生成物であるデジタルフィルタを提供する。
すなわち、本実施形態では、特定のインパルス応答を有する数種類の基本フィルタを定義し、それらを任意に縦続接続する形で所望の周波数特性を有するＦＩＲフィルタを実現する。基本フィルタは、基本ローパスフィルタ、基本ハイパスフィルタ、基本バンドパスフィルタ（櫛型フィルタを含む）の３種類に大きく分類される。以下、これらの基本フィルタについて説明する。
＜基本ローパスフィルタＬｍａｎ（ｍ，ｎは変数で、ｎは自然数）＞
基本ローパスフィルタＬｍａｎのフィルタ係数は、“−１，ｍ，−１”の数値列を出発点として、演算前の元データとそれより所定遅延量だけ前の前データとを順次加算していく移動平均演算によって求める。
図１は、基本ローパスフィルタＬ４ａｎ（ｍ＝４とした場合）のフィルタ係数を示す図である。図１において、移動平均演算によってｎ列目の上からｊ番目のフィルタ係数を求める際に、元データとは、（ｎ−１）列目の上からｊ番目のデータを指す。また、前データとは、（ｎ−１）列目の上から（ｊ−１）番目のデータを指す。
例えば、基本ローパスフィルタＬ４ａ１の上から１番目の数値“−１”は元データ“−１”と前データ“０”とを加算することによって得られ、２番目の数値“３”は元データ“４”と前データ“−１”とを加算することによって得られる。また、３番目の数値“３”は元データ“−１”と前データ“４”とを加算することによって得られ、４番目の数値“−１”は元データ“０”と前データ“−１”とを加算することによって得られる。
図１に示す基本ローパスフィルタＬ４ａｎの何れのフィルタ係数も、その数値列は対称型であり、数値列の１つ飛びの合計値が同符号で互いに等しくなるという性質を持っている（例えば基本ローパスフィルタＬ４ａ４の場合、−１＋９＋９＋（−１）＝１６，０＋１６＋０＝１６）。
上記“−１，ｍ，−１”の数値列は、大元の数値列“−１，Ｎ”を基本として生成する。この数値列“−１，Ｎ”をフィルタ係数とする基本単位フィルタは、１〜２個（Ｎ＝０の場合は１個、それ以外の場合は２個）のタップを有する。なお、Ｎの値は必ずしも整数である必要はない。
この数値列“−１，Ｎ”をフィルタ係数として持つ基本単位フィルタは非対称型なので、対称型とするために、これを偶数段縦続接続して使用する必要がある。例えば２段縦続接続した場合、数値列“−１，Ｎ”の畳み込みにより、フィルタ係数は“−Ｎ，Ｎ２＋１，−Ｎ”となる。ここで、（Ｎ２＋１）／Ｎ＝ｍとすると、ｍを整数としたとき、Ｎ＝（ｍ＋（ｍ２−４）１／２）／２となる。
図１の例のようにｍ＝４とした場合、Ｎ＝２＋√３である。すなわち、基本単位フィルタの係数は“−１，３．７３２”となる（ここでは、小数点以下を３桁まで表示している）。また、この基本単位フィルタを２段縦続接続した場合のフィルタ係数は、“−３．７３２，１４．９２８，−３．７３２”となる。この数値列は、−１：４：−１の関係になっている。
この数値列を実際にフィルタ係数として使用する場合は、数値列の各値を２Ｎ（＝２＊（２＋√３）＝７．４６４）で割ることにより、フィルタ係数の数値列をＦＦＴ変換した場合の振幅が“１”となるようにして、ゲインを“１”に基準化（正規化）する。すなわち、実際に使用するフィルタ係数の数値列は、“−１／２，２，−１／２”となる。この実際に使用する数値列“−１／２，２，−１／２”は、元の数値列“−１，４，−１”をｚ倍（ｚ＝１／（ｍ−２））したものに相当する。
このように基準化した数値列をフィルタ係数として使用した場合、基本ローパスフィルタＬｍａｎのフィルタ係数は、何れもその数値列の総和が“１”で、数値列の１つ飛びの合計値が同符号で互いに等しくなるという性質を持つ。
図２は、基本ローパスフィルタＬ４ａ４（ｍ＝４，ｎ＝４とした場合）のフィルタ係数の数値列をＦＦＴ変換して得られる周波数特性（周波数−ゲイン特性および周波数−位相特性）を示す図である。ここではゲインを直線目盛りで表し、基準化されたゲインを３２倍して示している。一方、周波数は“１”で基準化している。
この図２から分かるように、周波数−ゲイン特性は通過域がほぼ平坦で、遮断域の傾斜がなだらかな特性が得られている。また、周波数−位相特性ではほぼ直線的な特性も得られている。このように、基本ローパスフィルタＬ４ａ４では、オーバーシュートやリンギングも存在しない良好なローパスフィルタの周波数特性を得ることができる。
図３は、基本ローパスフィルタＬ４ａｎのｎをパラメータとした周波数−ゲイン特性を示す図であり、（ａ）はゲインを直線目盛りで表し、（ｂ）はゲインを対数目盛りで表している。この図３より、ｎの値が大きくなるほど遮断域の傾斜が急峻になることが分かる。この基本ローパスフィルタＬ４ａｎは、ｎ≧５のときは比較的急峻な周波数特性の用途に適し、ｎ＜５のときは比較的緩やかな周波数特性の用途に適すると言える。
図４は、基本単位フィルタの数値列“−１，Ｎ”でＮ＝０とした場合の基本ローパスフィルタＬａｎのフィルタ係数を示す図である。Ｎ＝０の場合、基本単位フィルタを２段縦続接続したときのフィルタ係数は“０，１，０”となる。したがって、基本ローパスフィルタＬａｎのフィルタ係数は、“１”を出発点として、元データと前データとを順次加算していく移動平均演算によって求められる。
図４に示す基本ローパスフィルタＬａｎの何れのフィルタ係数も、その数値列は対称型であり、数値列の１つ飛びの合計値が同符号で互いに等しくなるという性質を持っている（例えば基本ローパスフィルタＬａ４の場合、１＋６＋１＝８，４＋４＝８）。
図５は、基本ローパスフィルタＬａ４のフィルタ係数の数値列をＦＦＴ変換して得られる周波数特性を示す図である。ここではゲインを直線目盛りで表し、基準化されたゲインを１６倍して示している。一方、周波数は“１”で基準化している。
この図５から分かるように、周波数−ゲイン特性でほぼ平坦な通過域は図２に比べて狭くなるが、遮断域の傾斜はなだらかな特性が得られている。また、周波数−位相特性ではほぼ直線的な特性も得られている。このように、基本ローパスフィルタＬａ４においても、オーバーシュートやリンギングも存在しない良好なローパスフィルタの周波数特性を得ることができる。
図６は、基本ローパスフィルタＬａｎのｎをパラメータとした周波数−ゲイン特性を示す図であり、（ａ）はゲインを直線目盛りで表し、（ｂ）はゲインを対数目盛りで表している。この図６より、ｎの値が大きくなるほど遮断域の傾斜が急峻になることが分かる。この基本ローパスフィルタＬａｎは、ｎ≧５のときは比較的急峻な周波数特性の用途に適し、ｎ＜５のときは比較的緩やかな周波数特性の用途に適すると言える。
＜基本ハイパスフィルタＨｍｓｎ（ｍ，ｎは変数で、ｎは自然数）＞
基本ハイパスフィルタＨｍｓｎのフィルタ係数は、“１，ｍ，１”の数値列を出発点として、演算前の元データからそれより所定遅延量だけ前の前データを順次減算していく移動平均演算によって求める。
図７は、基本ハイパスフィルタＨ４ｓｎ（ｍ＝４とした場合）のフィルタ係数を示す図である。図７において、移動平均演算によってｎ列目の上からｊ番目のフィルタ係数を求める際に、元データとは、（ｎ−１）列目の上からｊ番目のデータを指す。また、前データとは、（ｎ−１）列目の上から（ｊ−１）番目のデータを指す。
例えば、基本ハイパスフィルタＨ４ｓ１の上から１番目の数値“１”は元データ“１”から前データ“０”を減算することによって得られ、２番目の数値“３”は元データ“４”から前データ“１”を減算することによって得られる。また、３番目の数値“−３”は元データ“１”から前データ“４”を減算することによって得られ、４番目の数値“−１”は元データ“０”から前データ“１”を減算することによって得られる。
図７に示す基本ハイパスフィルタＨ４ｓｎにおいて、ｎが偶数のときは何れのフィルタ係数も、その数値列は対称型であり、数値列の１つ飛びの合計値が逆符号で互いに等しくなるという性質を持っている（例えば基本ハイパスフィルタＨ４ｓ４の場合、１＋（−９）＋（−９）＋１＝−１６，０＋１６＋０＝１６）。ｎが奇数のときは、その数値列は絶対値が対称型となっており、前半の数値列と後半の数値列とは逆符号になる。また、数値列の１つ飛びの合計値が逆符号で互いに等しくなるという性質を持っている。
上記“１，ｍ，１”の数値列は、大元の数値列“１，Ｎ”を基本として生成する。この数値列“１，Ｎ”をフィルタ係数とする基本単位フィルタは、１〜２個（Ｎ＝０の場合は１個、それ以外の場合は２個）のタップを有する。なお、Ｎの値は必ずしも整数である必要はない。
この数値列“１，Ｎ”をフィルタ係数として持つ基本単位フィルタは非対称型なので、対称型とするために、これを偶数段縦続接続して使用する必要がある。例えば２段縦続接続した場合、数値列“１，Ｎ”の畳み込みにより、フィルタ係数は“Ｎ，Ｎ２＋１，Ｎ”となる。ここで、（Ｎ２＋１）／Ｎ＝ｍとすると、ｍを整数としたとき、Ｎ＝（ｍ＋（ｍ２−４）１／２）／２となる。
図７の例のようにｍ＝４とした場合、Ｎ＝２＋√３である。すなわち、基本単位フィルタの係数は“１，３．７３２”となる（ここでは、小数点以下を３桁まで表示している）。また、この基本単位フィルタを２段縦続接続した場合のフィルタ係数は、“３．７３２，１４．９２８，３．７３２”となる。この数値列は、１：４：１の関係になっている。
この数値列を実際にフィルタ係数として使用する場合は、数値列の各値を２Ｎ（＝２＊（２＋√３）＝７．４６４）で割ることにより、フィルタ係数の数値列をＦＦＴ変換した場合の振幅が“１”となるようにして、ゲインを“１”に基準化する。すなわち、実際に使用するフィルタ係数の数値列は、“１／２，２，１／２”となる。この実際に使用する数値列“１／２，２，１／２”も、元の数値列“１，４，１”をｚ倍（ｚ＝１／（ｍ−２））したものに相当する。
このように基準化した数値列をフィルタ係数として使用した場合、基本ハイパスフィルタＨｍｓｎのフィルタ係数は、何れもその数値列の総和が“０”で、数値列の１つ飛びの合計値が逆符号で互いに等しくなるという性質を持つ。
図８は、基本ハイパスフィルタＨ４ｓ４（ｍ＝４，ｎ＝４とした場合）のフィルタ係数の数値列をＦＦＴ変換して得られる周波数特性を示す図である。ここではゲインを直線目盛りで表し、基準化されたゲインを３２倍して示している。一方、周波数は“１”で基準化している。
この図８から分かるように、周波数−ゲイン特性は通過域がほぼ平坦で、遮断域の傾斜がなだらかな特性が得られている。また、周波数−位相特性ではほぼ直線的な特性も得られている。このように、基本ハイパスフィルタＨ４ｓ４では、オーバーシュートやリンギングも存在しない良好なハイパスフィルタの周波数特性を得ることができる。
図９は、基本ハイパスフィルタＨ４ｓｎのｎをパラメータとした周波数−ゲイン特性を示す図であり、（ａ）はゲインを直線目盛りで表し、（ｂ）はゲインを対数目盛りで表している。この図９より、ｎの値が大きくなるほど遮断域の傾斜が急峻になることが分かる。この基本ハイパスフィルタＨ４ｓｎは、ｎ≧５のときは比較的急峻な周波数特性の用途に適し、ｎ＜５のときは比較的緩やかな周波数特性の用途に適すると言える。
図１０は、基本単位フィルタの数値列“１，Ｎ”でＮ＝０とした場合の基本ハイパスフィルタＨｓｎのフィルタ係数を示す図である。Ｎ＝０の場合、基本単位フィルタを２段縦続接続したときのフィルタ係数は“０，１，０”となる。したがって、基本ハイパスフィルタＨｓｎのフィルタ係数は、“１”を出発点として、元データから前データを順次減算していく移動平均演算によって求められる。
図１０に示す基本ハイパスフィルタＨｓｎにおいて、ｎが偶数のときは何れのフィルタ係数も、その数値列は対称型であり、数値列の１つ飛びの合計値が逆符号で互いに等しくなるという性質を持っている（例えば基本ハイパスフィルタＨｓ４の場合、１＋６＋１＝８，−４＋（−４）＝−８）。ｎが奇数のときは、その数値列は絶対値が対称型となっており、前半の数値列と後半の数値列とは逆符号になる。また、数値列の１つ飛びの合計値が逆符号で互いに等しくなるという性質を持っている。
図１１は、基本ハイパスフィルタＨｓ４のフィルタ係数の数値列をＦＦＴ変換して得られる周波数特性を示す図である。ここではゲインを直線目盛りで表し、基準化されたゲインを１６倍して示している。一方、周波数は“１”で基準化している。
この図１１から分かるように、周波数−ゲイン特性でほぼ平坦な通過域は図８に比べて狭くなるが、遮断域の傾斜はなだらかな特性が得られている。また、周波数−位相特性ではほぼ直線的な特性も得られている。このように、基本ハイパスフィルタＨｓ４においても、オーバーシュートやリンギングも存在しない良好なハイパスフィルタの周波数特性を得ることができる。
図１２は、基本ハイパスフィルタＨｓｎのｎをパラメータとした周波数−ゲイン特性を示す図であり、（ａ）はゲインを直線目盛りで表し、（ｂ）はゲインを対数目盛りで表している。この図１２より、ｎの値が大きくなるほど遮断域の傾斜が急峻になることが分かる。この基本ハイパスフィルタＨｓｎは、ｎ≧５のときは比較的急峻な周波数特性の用途に適し、ｎ＜５のときは比較的緩やかな周波数特性の用途に適すると言える。
＜基本バンドパスフィルタＢｍｓｎ（ｍ，ｎは変数で、ｎは自然数）＞
基本バンドパスフィルタＢｍｓｎのフィルタ係数は、“１，０，ｍ，０，１”の数値列を出発点として、元データから２つ前の前データを順次減算していく移動平均演算によって求める。
図１３は、基本バンドパスフィルタＢ４ｓｎ（ｍ＝４とした場合）のフィルタ係数を示す図である。図１３において、移動平均演算によってｎ列目の上からｊ番目のフィルタ係数を求める際に、元データとは、（ｎ−１）列目の上からｊ番目のデータを指す。また、前データとは、（ｎ−１）列目の上から（ｊ−２）番目のデータを指す。
例えば、基本バンドパスフィルタＢ４ｓ１の上から１番目の数値“１”は元データ“１”から前データ“０”を減算することによって得られ、３番目の数値“３”は元データ“４”から前データ“１”を減算することによって得られる。また、５番目の数値“−３”は元データ“１”から前データ“４”を減算することによって得られ、７番目の数値“−１”は元データ“０”から前データ“１”を減算することによって得られる。
図１３に示す基本バンドパスフィルタＢ４ｓｎにおいて、ｎが偶数とのきは何れのフィルタ係数も、その数値列は対称型であり、数値列の３つ飛びの合計値が逆符号で互いに等しくなるという性質を持っている（例えば基本バンドパスフィルタＢ４ｓ４の場合、１＋（−９）＋（−９）＋１＝−１６，０＋１６＋０＝１６）。ｎが奇数のときは、その数値列は絶対値が対称型となっており、前半の数値列と後半の数値列とは逆符号になる。また、数値列の３つ飛びの合計値が逆符号で互いに等しくなるという性質を持っている。
上記“１，０，ｍ，０，１”の数値列は、大元の数値列“１，０，Ｎ”を基本として生成する。この数値列“１，０，Ｎ”をフィルタ係数とする基本単位フィルタは、１〜２個（Ｎ＝０の場合は１個、それ以外の場合は２個）のタップを有する。なお、Ｎの値は必ずしも整数である必要はない。
この数値列“１，０，Ｎ”をフィルタ係数として持つ基本単位フィルタは非対称型なので、対称型とするために、これを偶数段縦続接続して使用する必要がある。例えば２段縦続接続した場合、数値列“１，０，Ｎ”の畳み込みにより、フィルタ係数は“Ｎ，０，Ｎ２＋１，０，Ｎ”となる。ここで、（Ｎ２＋１）／Ｎ＝ｍとすると、ｍを整数としたとき、Ｎ＝（ｍ＋（ｍ２−４）１／２）／２となる。
図１３の例のようにｍ＝４とした場合、Ｎ＝２＋√３である。すなわち、基本単位フィルタの係数は“１，０，３．７３２”となる（ここでは、小数点以下を３桁まで表示している）。また、この基本単位フィルタを２段縦続接続した場合のフィルタ係数は、“３．７３２，０，１４．９２８，０，３．７３２”となる。この数値列は、１：０：４：０：１の関係になっている。
この数値列を実際にフィルタ係数として使用する場合は、数値列の各値を２Ｎ（＝２＊（２＋√３）＝７．４６４）で割ることにより、フィルタ係数の数値列をＦＦＴ変換した場合の振幅が“１”となるようにして、ゲインを“１”に基準化する。すなわち、実際に使用するフィルタ係数の数値列は、“１／２，０，２，０，１／２”となる。この実際に使用する数値列“１／２，０，２，０，１／２”も、元の数値列“１，０，４，０，１”をｚ倍（ｚ＝１／（ｍ−２））したものに相当する。
このように基準化した数値列をフィルタ係数として使用した場合、基本バンドパスフィルタＢｍｓｎのフィルタ係数は、何れもその数値列の総和が“０”で、数値列の３つ飛びの合計値が逆符号で互いに等しくなるという性質を持つ。
図１４は、基本バンドパスフィルタＢ４ｓ４（ｍ＝４，ｎ＝４とした場合）のフィルタ係数の数値列をＦＦＴ変換して得られる周波数特性を示す図である。ここではゲインを直線目盛りで表し、基準化されたゲインを３２倍して示している。一方、周波数は“１”で基準化している。
この図１４から分かるように、周波数−ゲイン特性は通過域がほぼ平坦で、遮断域の傾斜がなだらかな特性が得られている。また、周波数−位相特性ではほぼ直線的な特性も得られている。このように、基本バンドパスフィルタＢ４ｓ４では、オーバーシュートやリンギングも存在しない良好なバンドパスフィルタの周波数特性を得ることができる。
図１５は、基本バンドパスフィルタＢ４ｓｎのｎをパラメータとした周波数−ゲイン特性を示す図であり、（ａ）はゲインを直線目盛りで表し、（ｂ）はゲインを対数目盛りで表している。この図１５より、ｎの値が大きくなるほど遮断域の傾斜が急峻になることが分かる。この基本バンドパスフィルタＢ４ｓｎは、ｎ≧５のときは比較的急峻な周波数特性の用途に適し、ｎ＜５のときは比較的緩やかな周波数特性の用途に適すると言える。
図１６は、基本単位フィルタの数値列“１，０，Ｎ”でＮ＝０とした場合の基本バンドパスフィルタＢｓｎのフィルタ係数を示す図である。Ｎ＝０の場合、基本単位フィルタを２段縦続接続したときのフィルタ係数は“０，０，１，０，０”となる。したがって、基本バンドパスフィルタＢｓｎのフィルタ係数は、“１”を出発点として、元データから２つ前の前データを順次減算していく移動平均演算によって求められる。
図１６に示す基本バンドパスフィルタＢｓｎにおいて、ｎが偶数のときは何れのフィルタ係数も、その数値列は対称型であり、数値列の３つ飛びの合計値が逆符号で互いに等しくなるという性質を持っている（例えば基本バンドパスフィルタＢｓ４の場合、１＋６＋１＝８，−４＋（−４）＝−８）。ｎが奇数のときは、その数値列は絶対値が対称型となっており、前半の数値列と後半の数値列とは逆符号になる。また、数値列の３つ飛びの合計値が逆符号で互いに等しくなるという性質を持っている。
図１７は、基本バンドパスフィルタＢｓ４のフィルタ係数の数値列をＦＦＴ変換して得られる周波数特性を示す図である。ここではゲインを直線目盛りで表し、基準化されたゲインを１６倍して示している。一方、周波数は“１”で基準化している。
この図１７から分かるように、周波数−ゲイン特性でほぼ平坦な通過域は図１４に比べて狭くなるが、遮断域の傾斜はなだらかな特性が得られている。また、周波数−位相特性ではほぼ直線的な特性も得られている。このように、基本バンドパスフィルタＢｓ４においても、オーバーシュートやリンギングも存在しない良好なバンドパスフィルタの周波数特性を得ることができる。
図１８は、基本バンドパスフィルタＢｓｎのｎをパラメータとした周波数−ゲイン特性を示す図であり、（ａ）はゲインを直線目盛りで表し、（ｂ）はゲインを対数目盛りで表している。この図１８より、ｎの値が大きくなるほど遮断域の傾斜が急峻になることが分かる。この基本バンドパスフィルタＢｓｎは、ｎ≧５のときは比較的急峻な周波数特性の用途に適し、ｎ＜５のときは比較的緩やかな周波数特性の用途に適すると言える。
＜パラメータ値ｍ，ｎの特性に与える影響＞
まず、移動平均演算の段数ｎを変えた場合の影響について説明する。例えば図３に示したように、基本ローパスフィルタＬｍａｎにおいて、ｎの値を大きくすると遮断域の傾斜が急峻になり、通過域のバンド幅は狭くなる。また、ｎの値が小さいときは、周波数特性の頂部は両端が盛り上がる。ｎの値が大きくなるに従って頂部は徐々に平坦に近づき、ｎ＝４で完全に平坦になる。ｎの値がそれより大きくなると、今度は頂部の両端が中央値より低くなっていく。このような傾向は、基本ハイパスフィルタＨｍｓｎ、基本バンドパスフィルタＢｍｓｎについても同様に言える（図９、図１５参照）。
一方、基本単位フィルタの係数値をＮ＝０として構成した基本ローパスフィルタＬａｎ、基本ハイパスフィルタＨｓｎおよび基本バンドパスフィルタＢｓｎに関しては、図６、図１２、図１８に示したように、ｎの値が何れの場合も頂部の両端は中央値より低くなる。ｎの値を大きくすると遮断域の傾斜が急峻になり、通過域のバンド幅が狭くなることは、Ｎ≠０である基本ローパスフィルタＬｍａｎ、基本ハイパスフィルタＨｍｓｎおよび基本バンドパスフィルタＢｍｓｎの場合と同様である。
次に、ｍの値を変えた場合の影響について説明する。図１９は、基本ハイパスフィルタＨｍｓｎにおいてｍをパラメータとした周波数−ゲイン特性を示す図である。この図１９より、ｍの値を小さくすると遮断域の傾斜が急峻になり、通過域のバンド幅が狭くなることが分かる。ここでは図示を省略するが、基本ローパスフィルタＬｍａｎおよび基本バンドパスフィルタＢｍｓｎについても同様のことが言える。
この図１９は、パラメータｍに対するパラメータｎの最適値（周波数特性の頂部が平坦になるｎの値）も同時に示している。すなわち、ｍ＝４のときの最適値はｎ＝４、ｍ＝３．５のときの最適値はｎ＝６、ｍ＝３のときの最適値はｎ＝８、ｍ＝２．５のときの最適値はｎ＝１６である。図２０は、これを分かりやすくグラフ化したものである。この図２０から分かるように、パラメータｍに対するパラメータｎの最適値は、ｍの値が小さくなるにつれて大きくなる。
このことを、図２１を用いて更に詳細に説明する。図２１は、パラメータｍとそれに対するパラメータｎの最適値との関係を表形式によって示す図である。なお、この図２１では、パラメータｍに対するパラメータｘの関係も併せて示している。
上述のように、パラメータｍに対するパラメータｎの最適値は、ｍの値が小さくなるにつれて大きくなる。ここで、ｍ＝２になるとフィルタ特性が大きく変わってしまい、良好な周波数特性が得られなくなる。逆に言うと、ｍ＞２の条件であれば、タップ間に挿入する遅延量を増やさなくても、通過域におけるバンド幅の狭い良好なフィルタ特性を得ることができる。一方、パラメータｍの値が大きくなるにつれてパラメータｎの最適値は小さくなり、ｍ＝１０のときにｎ＝１となる。つまり、ｍ＝１０のときは、移動平均演算の段数は１段で良い。このことから、パラメータｍは、２＜ｍ≦１０の条件で使用するのが好ましい。
また、パラメータｎの値は、図２１に示す最適値を中心として前後の或る範囲で選択した任意の値を用いることにより、図３、図９、図１５のように周波数特性の調整をすることができる。
図２２は、図１９に示した４種類の基本ハイパスフィルタＨｍｓｎのインパルス応答を示す図である。この図２２に示すような波形を有するインパルス応答は、横軸に沿った標本位置が一定の間にあるときにのみ“０”以外の有限な値を有し、それ以外の領域では値が全て“０”となる関数、つまり所定の標本位置において値が“０”に収束する関数である。
このように、関数の値が局所的な領域で“０”以外の有限の値を有し、それ以外の領域で“０”となる場合を「有限台」と称する。ここでは図示を省略するが、基本ハイパスフィルタＨｓｎ、基本ローパスフィルタＬｍａｎ，Ｌａｎおよび基本バンドパスフィルタＢｍｓｎ，Ｂｓｎについても同様に、インパルス応答は有限台となる。
このような有限台のインパルス応答では、“０”以外の有限の値を有する局所的な領域内のデータだけが意味を持つ。この領域外のデータについては、本来これを考慮すべきであるのに無視している訳ではなく、理論的に考慮する必要がないため、打ち切り誤差は発生しない。したがって、図１、図４、図７、図１０、図１３、図１６に示した数値列をフィルタ係数として用いれば、窓掛けによって係数の打ち切りを行う必要もなく、良好なフィルタ特性を得ることができる。
＜フィルタ係数間のゼロ値の調整＞
基本フィルタのフィルタ係数を構成する数値列の各数値間のゼロ値（各タップ間の遅延量に相当）を変えることによって、基本フィルタの通過域のバンド幅を調整することが可能である。すなわち、上述の基本ローパスフィルタＬｍａｎ，Ｌａｎ、基本ハイパスフィルタＨｍｓｎ，Ｈｓｎ、基本バンドパスフィルタＢｍｓｎ，Ｂｓｎでは、各タップ間の遅延量は１クロック分であったが、これを（ｋ＋１）クロック分とすると（各フィルタ係数の間に“０”をｋ個ずつ挿入すると）、その周波数−ゲイン特性の周波数軸（周波数方向に対する周期）は１／（ｋ＋１）となり、通過域のバンド幅は狭くなる。以下、例えば基本ローパスフィルタＬｍａｎにおいて各フィルタ係数の間に“０”をｋ個ずつ挿入する場合をＬｍａｎ（ｋ）と表記することにする。ただし、ｋ＝０の場合は（０）を省略して表記する。
図２３は、基本ローパスフィルタＬ４ａ４および、その各フィルタ係数の間に“０”を１つずつ挿入することによって生成した基本ローパスフィルタＬ４ａ４（１）の周波数−ゲイン特性を示す図であり、（ａ）はゲインを直線目盛りで表し、（ｂ）はゲインを対数目盛りで表している。この図２３から分かるように、フィルタ係数の間に挿入する“０”の数をｋ個とすると、その周波数−ゲイン特性の周波数軸（周波数方向に対する周期）は１／（ｋ＋１）となり、通過域のバンド幅を狭くすることが可能である。
＜同種の基本フィルタの縦続接続＞
同種の基本フィルタを縦続接続することにより、各基本フィルタの係数どうしが乗算・加算されて新しいフィルタ係数が作り出される。以下では、例えば基本ローパスフィルタＬｍａｎの縦続接続数をＭとするとき、これを（Ｌｍａｎ）Ｍと記述することにする。
ここで、基本フィルタを縦続接続した場合におけるフィルタ係数の演算内容について説明する。図２４は、縦続接続によるフィルタ係数の演算内容を説明するための図である。この図２４に示すように、２つの基本フィルタを縦続接続した場合には、一方のフィルタ係数を構成する（２ｉ＋１）個（２ｉ＋１は、一方のフィルタ係数を構成する全数値列の個数を表す）の数値列｛Ｈ１−ｉ，Ｈ１−（ｉ−１），Ｈ１−（ｉ−２），・・・，Ｈ１−１，Ｈ１０，Ｈ１１，・・・，Ｈ１ｉ−２，Ｈ１ｉ−１，Ｈ１ｉ｝と、他方のフィルタ係数を構成する（２ｉ＋１）個の数値列｛Ｈ２−ｉ，Ｈ２−（ｉ−１），Ｈ２−（ｉ−２），・・・，Ｈ２−１，Ｈ２０，Ｈ２１，・・・，Ｈ２ｉ−２，Ｈ２ｉ−１，Ｈ２ｉ｝との畳み込み演算を行うことによって、新たなフィルタ係数の数値列を求める。
この畳み込み演算では、他方のフィルタ係数については、｛Ｈ２−ｉ，Ｈ２−（ｉ−１），Ｈ２−（ｉ−２），・・・，Ｈ２−１，Ｈ２０，Ｈ２１，・・・，Ｈ２ｉ−２，Ｈ２ｉ−１，Ｈ２ｉ｝の全ての数値列を常に固定的に乗加算の対象とする。一方、一方のフィルタ係数については、｛Ｈ１−ｉ，Ｈ１−（ｉ−１），Ｈ１−（ｉ−２），・・・，Ｈ１−１，Ｈ１０，Ｈ１１，・・・，Ｈ１ｉ−２，Ｈ１ｉ−１，Ｈ１ｉ｝の数値列の前後に０列があるものと仮定し、この０値も含めて（２ｉ＋１）個の数値列を畳み込み演算の対象とする。このとき、新たなフィルタ係数のｐ番目の数値を求める際には、一方のフィルタ係数のｐ番目の数値を含めてそれより前にある（２ｉ＋１）個の数値列を乗加算の対象とする。
例えば、新たなフィルタ係数の１番目の数値を求める際には、他方のフィルタ係数の全ての数値列｛Ｈ２−ｉ，Ｈ２−（ｉ−１），Ｈ２−（ｉ−２），・・・，Ｈ２−１，Ｈ２０，Ｈ２１，・・・，Ｈ２ｉ−２，Ｈ２ｉ−１，Ｈ２ｉ｝（符号３１で示す点線で囲った配列）と、一方のフィルタ係数の１番目の数値を含めてそれより前にある（２ｉ＋１）個の数値列｛０，０，・・・，０，Ｈ１−ｉ｝（符号３２で示す点線で囲った配列）とを対象として、配列の対応する要素の積を合計する演算を行う。すなわち、この場合の演算結果は、（Ｈ１−ｉ×Ｈ２−ｉ）となる。
また、新たなフィルタ係数の２番目の数値を求める際には、他方のフィルタ係数の全ての数値列｛Ｈ２−ｉ，Ｈ２−（ｉ−１），Ｈ２−（ｉ−２），・・・，Ｈ２−１，Ｈ２０，Ｈ２１，・・・，Ｈ２ｉ−２，Ｈ２ｉ−１，Ｈ２ｉ｝（符号３１で示す点線で囲った配列）と、一方のフィルタ係数の２番目の数値を含めてそれより前にある（２ｉ＋１）個の数値列｛０，０，・・・，０，Ｈ１−ｉ，Ｈ１−（ｉ−１）｝（符号３３で示す点線で囲った配列）とを対象として、配列の対応する要素の積を合計する演算を行う。すなわち、この場合の演算結果は、（Ｈ１−ｉ×Ｈ２−ｉ＋Ｈ１−（ｉ−１）×Ｈ２−（ｉ−１））となる。以下同様にして、新たなフィルタ係数を構成する（２×（２ｉ＋１）−１）個の数値列を求める。
図２５は、基本ローパスフィルタＬ４ａ４，（Ｌ４ａ４）２，（Ｌ４ａ４）４，（Ｌ４ａ４）８の周波数−ゲイン特性を示す図であり、（ａ）はゲインを直線目盛りで表し、（ｂ）はゲインを対数目盛りで表している。基本ローパスフィルタＬ４ａ４が１個のみの場合、振幅が０．５となる位置のクロックは０．２５である。これに対して縦続接続数Ｍが多くなると、フィルタの通過帯域幅が狭くなる。例えばＭ＝８の場合、振幅が０．５となる位置のクロックは０．１２５となる。
上記図２５から分かるように、基本ローパスフィルタＬ４ａ４は、周波数特性のカットオフ周波数部分の傾斜が急峻であるという特徴を持つ。また、基本ローパスフィルタフィルタ（Ｌ４ａ４）Ｍの周波数−ゲイン特性は、縦続接続数Ｍが多くなるほど通過帯域幅が狭くなり、低周波域においても極めて深くストレートに落ち込む特性が得られる。
図２６は、基本ハイパスフィルタＨ４ｓ４，（Ｈ４ｓ４）２，（Ｈ４ｓ４）４，（Ｈ４ｓ４）８の周波数−ゲイン特性を示す図であり、（ａ）はゲインを直線目盛りで表し、（ｂ）はゲインを対数目盛りで表している。る。基本ハイパスフィルタＨ４ｓ４が１個のみの場合、振幅が０．５となる位置のクロックは０．２５である。これに対して縦続接続数Ｍが多くなると、フィルタの通過帯域幅が狭くなる。例えばＭ＝８の場合、振幅が０．５となる位置のクロックは０．３７５となる。
上記図２６から分かるように、基本ハイパスフィルタＨ４ｓ４は、周波数特性のカットオフ周波数部分の傾斜が急峻であるという特徴を持つ。また、基本ハイパスフィルタフィルタ（Ｈ４ｓ４）Ｍの周波数−ゲイン特性は、縦続接続数Ｍが多くなるほど通過帯域幅が狭くなり、高周波域においても極めて深くストレートに落ち込む特性が得られる。
＜異種の基本フィルタの縦続接続＞
異種の基本フィルタを縦続接続した場合も、各基本フィルタの係数どうしが畳み込み演算により乗算・加算されて新しいフィルタ係数が作り出される。この場合は、異種の基本フィルタを任意に組み合わせることによって、各基本フィルタの特性どうしが相殺し合い、所望の周波数帯域を抜き取ることができる。これにより、所望特性のローパスフィルタやハイパスフィルタ、バンドパスフィルタ、バンドエリミネーションフィルタ、コムフィルタなどを簡単に設計することができる。
＜フィルタ係数の丸め処理＞
以上のような基本フィルタの縦続接続、バンド幅の調整等によって求められた数値列が、所望の周波数特性を実現するためのフィルタ係数となる。図２７は、１６ビットの演算精度で実際に算出したフィルタ係数値（丸め処理前のもの）をグラフ化した図である。また、図２８は、フィルタ係数を丸め処理する前におけるデジタルフィルタの周波数−ゲイン特性および周波数−位相特性を示す図であり、（ａ）はゲインを直線目盛りで示し、（ｂ）はゲインを対数目盛りで示している。
図２７に示すように、本実施形態の設計法によって得られるフィルタ係数の値は、中央（係数Ｈ０）で最大となる。また、各フィルタ係数の値の差は、従来のフィルタ設計法で得られるフィルタ係数のそれに比べて極めて大きくなる。そのため、所定の閾値より小さい値のフィルタ係数を丸め処理によって破棄しても、周波数特性を決定付ける主要なフィルタ係数は殆ど残り、周波数特性に悪影響を与えることは殆どない。また、周波数特性の帯域外減衰量はフィルタ係数のビット数によって制約を受けるが、図２８に示すように、本実施形態のフィルタ設計法によって得られる周波数特性は非常に深い減衰を持っているので、ビット数を多少減らしても、所望の減衰量は確保できる。
したがって、丸め処理によって不要なフィルタ係数を大幅に削減することができる。例えば、フィルタ係数の下位数ビットを切り捨てることでビット数を減らすことにより、その下位数ビットだけで表される最大値よりも小さい値のフィルタ係数を全て“０”に丸めて破棄することができる。よって、フィルタ係数の数を減らすために従来のような窓掛けは必要ない。なお、上述したように、縦続接続されている基本フィルタのインパルス応答は有限台の関数となる。そのため、この基本フィルタをもとに設計されるフィルタ係数の数は、従来に比べてそもそも少なく、丸め処理をすることなくそのまま使用することも可能である。しかし、よりタップ数を少なくするために、ビット数を減らす丸め処理を行うのが好ましい。
この点は、従来のフィルタ設計法と大きく異なる本実施形態の特徴点である。すなわち、従来のフィルタ設計法では、求められる各フィルタ係数の値の差がそれほど大きくならないため、フィルタ係数の値で丸め処理をすると、周波数特性を決定付ける主要なフィルタ係数も破棄されてしまうことが多い。また、非常に深い帯域外減衰量を持った周波数特性を得ることも困難なため、フィルタ係数のビット数を減らすと必要な帯域外減衰量を確保できなくなってしまう。よって、従来はビット数を減らす丸め処理を行うことができず、窓掛けによってフィルタ係数の数を減らさざるを得なかった。そのため、周波数特性に打ち切り誤差が発生し、所望の周波数特性を得ることが極めて困難であった。
これに対して、本実施形態では窓掛けを行うことなくフィルタの設計ができるので、周波数特性に打ち切り誤差が生じることはない。したがって、遮断特性の極めて大きな改善が可能となり、位相特性も直線で優れたフィルタ特性を得ることができる。
図２９は、１６ビットの演算精度で算出した図２７のようなフィルタ係数に対して１０ビットの丸め処理を行った結果として残った４１タップ（ゼロ値を含めた段数は４６段）分のフィルタ係数値とそれを整数化した係数値とを示す図である。上述のような基本フィルタの縦続接続によって求まるフィルタ係数の値は小数であり、１０ビットの丸め処理によってその桁数を減らすことができるが、ランダムな値の集合である。この数値列をそのままフィルタ係数として用いても良いが、デジタルフィルタを実装する際に使用する乗算器の数をより少なくするために、フィルタ係数の数値を更に丸めて単純化するようにしても良い。そのために本実施形態では、１０ビットで丸めたフィルタ係数の数値列を２１０倍して小数点以下を丸め、係数値を整数化する。
このような整数化の丸め演算を行うと、デジタルフィルタの各タップからの出力信号に対して整数のフィルタ係数を個別に乗算し、それぞれの乗算出力を全て加算した後にまとめて１／２１０倍するようにデジタルフィルタを構成することが可能となる。しかも、整数のフィルタ係数は、２ｉ＋２ｊ＋・・・（ｉ，ｊは任意の整数）のように２進数の足し算で表現できる。これにより、乗算器の代わりにビットシフト回路で係数器を構成し、実装するデジタルフィルタの構成を簡素化することができる。
図３０は、１６ビットの演算精度でフィルタ係数を算出した後、それを１０ビットに丸めて（１０ビット以下の桁数を切り捨てて）更に整数化した場合の周波数−ゲイン特性を示す図であり、（ａ）はゲインを直線目盛りで示し、（ｂ）はゲインを対数目盛りで示している。
図３０からよく分かるように、本実施形態ではフィルタ設計の際に窓掛けを行っていないので、周波数−ゲイン特性における平坦部のリップルが極めて小さく、±０．３ｄＢの範囲内に充分収まっている。また、丸め処理後の帯域外減衰量は約４４ｄＢとなっているが、この帯域外減衰量は実装しようとするハードウェアで対応可能なビット数によって制約される。したがって、ハードウェア規模の制約がなければ、丸め処理後のビット数を大きくしてより減衰の深い帯域外減衰特性を得ることができる。
なお、ここでは丸め処理の例として、フィルタ係数のデータに対して下位数ビットを切り捨てることによってｙビットのデータをｘビットに丸める処理について説明したが、この例に限定されない。例えば、各フィルタ係数の値を所定の閾値と比較し、閾値より小さいフィルタ係数を破棄するようにしても良い。この場合、残されるフィルタ係数は元のｙビットのままであるから、これを整数化する際には２ｙ倍する。
＜フィルタ設計装置の実装例＞
以上に説明した本実施形態によるデジタルフィルタの設計方法を実現するための装置は、ハードウェア構成、ＤＳＰ、ソフトウェアの何れによっても実現することが可能である。例えばソフトウェアによって実現する場合、本実施形態のフィルタ設計装置は、実際にはコンピュータのＣＰＵあるいはＭＰＵ、ＲＡＭ、ＲＯＭなどで構成され、ＲＡＭやＲＯＭあるいはハードディスク等に記憶されたプログラムが動作することによって実現できる。
例えば、各種の基本フィルタＬｍａｎ，Ｌａｎ，Ｈｍｓｎ，Ｈｓｎ，Ｂｍｓｎ，Ｂｓｎに関するフィルタ係数をデータとしてＲＡＭやＲＯＭ、ハードディスク等の記憶装置に記憶しておく。そして、ユーザが基本フィルタＬｍａｎ，Ｌａｎ，Ｈｍｓｎ，Ｈｓｎ，Ｂｍｓｎ，Ｂｓｎに関する任意の組み合わせと接続順、各フィルタ係数間に挿入するゼロ値の数ｋ、基本フィルタの同種縦続接続数Ｍなどを指示すると、ＣＰＵが、上記記憶装置に記憶されているフィルタ係数のデータを用いて、指示された内容に対応するフィルタ係数を上述した演算により求めるようにすることが可能である。この場合、記憶装置が本発明の基本フィルタ係数記憶手段に相当し、ＣＰＵが本発明の演算手段に相当する。
ユーザが各基本フィルタＬｍａｎ，Ｌａｎ，Ｈｍｓｎ，Ｈｓｎ，Ｂｍｓｎ，Ｂｓｎに関する組み合わせと接続順、ゼロ値の挿入数ｋ、縦続接続数Ｍなどを指示する際のユーザインタフェースは、任意に構成することが可能である。例えば、基本フィルタのタイプ（Ｌｍａｎ，Ｌａｎ，Ｈｍｓｎ，Ｈｓｎ，Ｂｍｓｎ，Ｂｓｎの何れか）を画面表示された一覧表からキーボードやマウスの操作によって選択できるようにするとともに、パラメータｍ，ｎ，ｋ，Ｍの値をキーボードやマウスの操作によって入力できるようにする。そして、タイプの選択とパラメータの入力とを１つずつ順に行っていったときの入力順を基本フィルタの接続順として入力する。ＣＰＵは、このようにして入力された情報を取得し、その入力情報により指示された内容に対応するフィルタ係数を上述した演算により求める。
また、各種の基本フィルタＬｍａｎ，Ｌａｎ，Ｈｍｓｎ，Ｈｓｎ，Ｂｍｓｎ，Ｂｓｎをアイコン化してディスプレイ画面上に表示するようにし（各アイコンに対応してフィルタ係数をデータとして記憶装置に記憶している）、ユーザがこれらのアイコンをキーボードやマウスの操作によりディスプレイ画面上で任意に組み合わせて配置する。また、その他の必要なパラメータはキーボードやマウスの操作によって入力する。そして、ＣＰＵがアイコンの配列や入力パラメータに対応するフィルタ係数を自動的に演算して求めるようにしても良い。
また、パーソナルコンピュータ等にインストールされている表計算ソフトの関数機能などを利用して、基本フィルタを求める際の移動平均演算、基本フィルタを縦続接続するときの畳み込み演算などを行うようにすることも可能である。この場合の演算は、実際には、表計算ソフトがインストールされているパーソナルコンピュータ等のＣＰＵ、ＲＯＭ、ＲＡＭなどによって行われる。
また、求めたフィルタ係数を自動的にＦＦＴ変換し、その結果を周波数−ゲイン特性図としてディスプレイ画面に表示するようにしても良い。このようにすれば、設計したフィルタの周波数特性を視覚的に確認することができ、フィルタ設計をより容易に行うことができる。
＜デジタルフィルタの実装例＞
実際にデジタルフィルタを電子機器内や半導体ＩＣに実装する場合には、以上のようなフィルタ設計装置によって最終的に求められた数値列をフィルタ係数として持つＦＩＲフィルタを構成すればよい。すなわち、単に複数のＤ型フリップフロップと複数の係数器と複数の加算器とにより１つのデジタルフィルタを構成し、以上のような手順で求めた最終的なフィルタ係数を、当該デジタルフィルタ内の複数の係数器に設定する形で構成する。
その場合、求められたフィルタ係数の数は１０ビットの丸め処理によって大幅に削減されており、かつ、２１０倍による丸め処理によって単純な整数に変換されている。したがって、タップ数は非常に少なく、しかも基本的に乗算器は不要でビットシフト回路にて対応可能であり、所望の周波数特性を小さな回路規模で高精度に実現することができる。
また、各基本フィルタＬｍａｎ（ｋ），Ｌａｎ（ｋ），Ｈｍｓｎ（ｋ），Ｈｓｎ（ｋ），Ｂｍｓｎ（ｋ），Ｂｓｎ（ｋ）のうち、フィルタ設計の際に用いたものをそれぞれハードウェアとして構成し、それらをハードウェアとして接続することによってデジタルフィルタを実装するようにしても良い。以下に、各基本フィルタＬｍａｎ，Ｌａｎ，Ｈｍｓｎ，Ｈｓｎ，Ｂｍｓｎ，Ｂｓｎのハードウェア構成例を示す。
図３１は、基本ローパスフィルタＬ４ａ４（ｍ＝４，ｎ＝４とした場合）のハードウェア構成を示す図である。図３１に示すように、基本ローパスフィルタＬ４ａ４は、出発点となる数値列“−１／２，２，−１／２”をフィルタ係数として持つＦＩＲ演算部１０１と、当該数値列を移動平均演算する移動平均演算部２０１とを備えて構成される。このうちＦＩＲ演算部１０１は、縦続接続された２個のＤ型フリップフロップ１−１〜１−２と、３個の係数器２−１〜２−３と、２個の減算器３−１〜３−２とにより構成される。
２個のＤ型フリップフロップ１−１〜１−２は、入力データを１クロックＣＫずつ順次遅延させる。３個の係数器２−１〜２−３は、各Ｄ型フリップフロップ１−１〜１−２の入出力タップから取り出した信号に対し、１／２，２，１／２のフィルタ係数をそれぞれ乗算する。第１の減算器３−１は、第２の係数器２−２の乗算結果から第１の係数器２−１の乗算結果を減算する。また、第２の減算器３−２は、第１の減算器３−１の減算結果から第３の係数器２−３の乗算結果を減算する。
また、移動平均演算部２０１は、何れも同様に構成された４個の積分器４−１〜４−４を縦続接続することによって構成される。例えば１段目の積分器４−１は、入力データを１クロック分遅延させるＤ型フリップフロップ５−１と、当該Ｄ型フリップフロップ５−１を通らない元データとＤ型フリップフロップ５−１を通って遅延を受けた前データとを加算する加算器６−１と、加算結果の振幅を元に戻すための調整器７−１とにより構成される。
この図３１に示す基本ローパスフィルタＬ４ａ４の構成では、フィルタ係数の乗算が行われる係数器２−１〜２−３およびその係数器２−１〜２−３へのデータの取出口である出力タップが必要なのは、初段のＦＩＲ演算部１０１だけである。しかも、その数はわずか３個である。
さらに、フィルタ係数の値は１／２，２，１／２であるので、係数器２−１〜２−３はビットシフト回路で構成することが可能である。また、４個の積分器４−１〜４−４が備える調整器７−１〜７−４もビットシフト回路で構成することが可能である。ｎの値を４以外として調整器の数が変わっても、その調整器は全てビットシフト回路で構成できる。よって、基本ローパスフィルタＬ４ａｎのハードウェア構成において、乗算器は全く不要である。
なお、ここではｍ＝４の場合について説明したが、ｍ＝２ｉ（ｉは整数）であれば、全ての係数器と調整器とをビットシフト回路で構成することが可能であり、乗算器は必要でない。
図３２は、基本ローパスフィルタＬａ４（ｎ＝４とした場合）のハードウェア構成を示す図である。ここでは、出発点となる数値列は単一の“１”であるので、図３１に示した２個のＤ型フリップフロップ１−１〜１−２、３個の係数器２−１〜２−３および２個の減算器３−１〜３−２は不要である。すなわち、図３１に示した後半の４つの積分器４−１〜４−４を縦続接続するだけで基本ローパスフィルタＬａ４を構成することができる。よって、タップ数は０で、乗算器も全く不要である。
図３３は、基本ハイパスフィルタＨ４ｓ４（ｍ＝４，ｎ＝４とした場合）のハードウェア構成を示す図である。図３３に示すように、基本ハイパスフィルタＨ４ｓ４は、出発点となる数値列“１／２，２，１／２”をフィルタ係数として持つＦＩＲ演算部１０２と、当該数値列を移動平均演算する移動平均演算部２０２とを備えて構成される。このうちＦＩＲ演算部１０２は、縦続接続された２個のＤ型フリップフロップ１１−１〜１１−２と、３個の係数器１２−１〜１２−３と、２個の加算器１３−１〜１３−２とにより構成される。
２個のＤ型フリップフロップ１１−１〜１１−２は、入力データを１クロックＣＫずつ順次遅延させる。３個の係数器１２−１〜１２−３は、各Ｄ型フリップフロップ１１−１〜１１−２の入出力タップから取り出した信号に対し、１／２，２，１／２のフィルタ係数をそれぞれ乗算する。２個の加算器１３−１〜１３−２は、各係数器１２−１〜１２−３の乗算結果を全て加算して出力する。
また、移動平均演算部２０２は、何れも同様に構成された４個の微分器１４−１〜１４−４を縦続接続することによって構成される。例えば１段目の微分器１４−１は、入力データを１クロック分遅延させるＤ型フリップフロップ１５−１と、当該Ｄ型フリップフロップ１５−１を通らない元データからＤ型フリップフロップ１５−１を通って遅延を受けた前データを減算する減算器１６−１と、減算結果の振幅を元に戻すための調整器１７−１とにより構成される。
この図３３に示す基本ハイパスフィルタＨ４ｓ４の構成では、フィルタ係数の乗算が行われる係数器１２−１〜１２−３およびその係数器１２−１〜１２−３へのデータの取出口である出力タップが必要なのは、初段のＦＩＲ演算部１０２だけである。しかも、その数はわずか３個である。
さらに、フィルタ係数の値は１／２，２，１／２であるので、係数器１２−１〜１２−３はビットシフト回路で構成することが可能である。また、４個の微分器１４−１〜１４−４が備える調整器１７−１〜１７−４もビットシフト回路で構成することが可能である。ｎの値を４以外として調整器の数が変わっても、その調整器は全てビットシフト回路で構成できる。よって、基本ハイパスフィルタＨ４ｓｎのハードウェア構成においても、乗算器は全く不要である。
なお、ここではｍ＝４の場合について説明したが、ｍ＝２ｉであれば（ｉは整数）、全ての係数器と調整器とをビットシフト回路で構成することが可能であり、乗算器は必要でない。
図３４は、基本ハイパスフィルタＨｓ４（ｎ＝４とした場合）のハードウェア構成を示す図である。ここでは、出発点となる数値列は単一の“１”であるので、図３３に示した２個のＤ型フリップフロップ１１−１〜１１−２、３個の係数器１２−１〜１２−３および２個の加算器１３−１〜１３−２は不要である。すなわち、図３３に示した後半の４つの微分器１４−１〜１４−４を縦続接続するだけで基本ハイパスフィルタＨｓ４を構成することができる。よって、タップ数は０で、乗算器も全く不要である。
図３５は、基本バンドパスフィルタＢ４ｓ４（ｍ＝４，ｎ＝４とした場合）のハードウェア構成を示す図である。図３５に示すように、基本バンドパスフィルタＢ４ｓ４は、出発点となる数値列“１／２，０，２，０，１／２”をフィルタ係数として持つＦＩＲ演算部１０３と、当該数値列を移動平均演算する移動平均演算部２０３とを備えて構成される。このうちＦＩＲ演算部１０３は、縦続接続された２個のＤ型フリップフロップ２１−１〜２１−２と、３個の係数器２２−１〜２２−３と、２個の加算器２３−１〜２３−２とにより構成される。
２個のＤ型フリップフロップ２１−１〜２１−２は、入力データを２クロックＣＫずつ順次遅延させる。３個の係数器２２−１〜２２−３は、各Ｄ型フリップフロップ２１−１〜２１−２の入出力タップから取り出した信号に対し、１／２，２，１／２のフィルタ係数をそれぞれ乗算する。２個の加算器２３−１〜２３−２は、各係数器２２−１〜２２−３の乗算結果を全て加算して出力する。
また、移動平均演算部２０３は、何れも同様に構成された４個の微分器２４−１〜２４−４を縦続接続することによって構成される。例えば１段目の微分器２４−１は、入力データを２クロック分遅延させるＤ型フリップフロップ２５−１と、当該Ｄ型フリップフロップ２５−１を通らない元データからＤ型フリップフロップ２５−１を通って遅延を受けた前データを減算する減算器２６−１と、減算結果の振幅を元に戻すための調整器２７−１とにより構成される。
この図３５に示す基本バンドパスフィルタＢ４ｓ４の構成では、フィルタ係数の乗算が行われる係数器２２−１〜２２−３およびその係数器２２−１〜２２−３へのデータの取出口である出力タップが必要なのは、初段のＦＩＲ演算部１０２だけである。しかも、その数はわずか３個である。
さらに、フィルタ係数の値は１／２，２，１／２であるので、係数器２２−１〜２２−３はビットシフト回路で構成することが可能である。また、４個の微分器２４−１〜２４−４が備える調整器２７−１〜２７−４もビットシフト回路で構成することが可能である。ｎの値を４以外として調整器の数が変わっても、その調整器は全てビットシフト回路で構成できる。よって、基本バンドパスフィルタＢ４ｓｎのハードウェア構成においても、乗算器は全く不要である。
なお、ここではｍ＝４の場合について説明したが、ｍ＝２ｉ（ｉは整数）であれば、全ての係数器と調整器とをビットシフト回路で構成することが可能であり、乗算器は必要でない。
図３６は、基本バンドパスフィルタＢｓ４（ｎ＝４とした場合）のハードウェア構成を示す図である。ここでは、出発点となる数値列は単一の“１”であるので、図３５に示した２個のＤ型フリップフロップ２１−１〜２１−２、３個の係数器２２−１〜２２−３および２個の加算器２３−１〜２３−２は不要である。すなわち、図３５に示した後半の４つの微分器２４−１〜２４−４を縦続接続するだけで基本バンドパスフィルタＢｓ４を構成することができる。よって、タップ数は０で、乗算器も全く不要である。
＜デジタルフィルタの設計例＞
次に、以上に説明した基本フィルタを用いたデジタルフィルタの設計例について説明する。ここでは、以下の目標規格を満足するバンドパスフィルタを設計する場合を例にとって説明する。
中心周波数：４５０ＫＨｚ
サンプリング周波数：１．８ＭＨｚ
帯域外減衰量：−８０ｄＢ
−３ｄＢのバンド幅：１０ＫＨｚ
図３７は、上記目標規格を実現するバンドパスフィルタの回路構成を示す図である。このバンドパスフィルタは、基本ハイパスフィルタＨ２．４ｓ２４（２）と基本ハイパスフィルタＨ２．４ｓ１６（６）とを縦続接続することによって構成している。複数の基本フィルタを適宜組み合わせて縦続接続すると、各特性値どうしが相殺し合って周波数帯域の抜き取りが行われ、所望の周波数特性を実現することが可能となる。
図３８は、図３７のように構成したバンドパスフィルタの周波数特性を示す図であり、（ａ）はゲインを対数目盛りで表した全体特性、（ｂ）はゲインを対数目盛りで表した一部拡大特性、（ｃ）はゲインを直線目盛りで表した一部拡大特性を示している。この図３８から分かるように、図３７のバンドパスフィルタは目標規格を満足している。
図３８に示すバンドパスフィルタでは、タップ数はわずか６個で済む。また、各タップ出力にある係数器はビットシフト回路で構成できるので（２．５＝２＋１／２，６＝４＋２）、乗算器は不要である。しかも、殆ど同様の回路の繰り返しから成る極めて単純な構成で所望特性のバンドパスフィルタを得ることができる。
図３９は、以下の目標規格を満足する他のバンドパスフィルタの構成例を示す図である。
中心周波数：４５０ＫＨｚ
サンプリング周波数：１．８ＭＨｚ
帯域外減衰量：−８０ｄＢ
−３ｄＢのバンド幅：４０ＫＨｚ
図３９に示すバンドバスフィルタは、基本バンドパスフィルタＢ２．９ｓ１６（２）と基本バンドパスフィルタＢ２．９ｓ１６（６）と基本バンドパスフィルタＢ２．９ｓ１６（１０）とを縦続接続することによって構成している。なお、ｍ＝２．９は、基本単位フィルタの係数“１，０，Ｎ”で見るとＮ＝２．５に相当する。そこで、ビットシフトで実現可能な係数値を有する基本単位フィルタを２段縦続接続する形で基本バンドパスフィルタＢ２．９ｓ１６を構成している。
図４０は、図３９のように構成したバンドパスフィルタの周波数−ゲイン特性を示す図であり、（ａ）はゲインを対数目盛りで表した全体特性、（ｂ）はゲインを対数目盛りで表した一部拡大特性、（ｃ）はゲインを直線目盛りで表した一部拡大特性を示している。この図４０から分かるように、図３９のバンドパスフィルタは目標規格を満足している。
なお、図３９の例では１倍の係数器も図示しているが、実質的にこれは不要である。したがって、図３９に示すバンドパスフィルタで必要なタップ数は、わずか６個である。また、各タップ出力にある係数器はビットシフト回路で構成できるので、乗算器は不要である。しかも、殆ど同様の回路の繰り返しから成る極めて単純な構成で所望特性のバンドパスフィルタを得ることができる。
なお、ここではバンドパスフィルタの設計例についてのみ示したが、基本フィルタの組み合わせ方を変えることにより、所望特性のローパスフィルタやハイパスフィルタ、バンドエリミネーションフィルタ、コムフィルタなども、同一の手法で簡単に設計することができる。
以上詳しく説明したように、本実施形態では、“１，Ｎ”または“−１，Ｎ”の数値列をフィルタ係数とする基本単位フィルタを偶数個縦続接続して得られる数値列を出発点として、ｎ回の移動平均演算を行うことによって基本フィルタを生成し、１以上の基本フィルタを任意に組み合わせることによって所望の周波数特性を有するデジタルフィルタを設計するようにしたので、以下のようなメリットを有する。
（１）従来のＦＩＲフィルタに比べてタップ数を大幅に削減することができる。また、乗算器も不要である。構成の殆どはＤ型フリップフロップおよび加減算器となる。したがって、回路素子数を大幅に削減して回路規模を小さくすることができるとともに、消費電力の低減、演算負荷の軽減等を図ることができる。
（２）個々の基本フィルタを縦続接続するハードウェアの形でデジタルフィルタを実装するようにした場合、個々の基本フィルタに必要なタップ数はわずか１〜３個であり、各タップ出力に対して必要なフィルタ係数は何れも単純な数値で、種類も多くない。しかも、同一パターンの繰り返しから成る極めて単純な構成であるので、集積化に際して工数を短縮することができ、ＩＣ化を容易にすることができる。
（３）個々の基本フィルタは基本的に乗算器が不要であり、デジタルフィルタを作るに当たってＤＳＰは必要でない。
（４）基本フィルタの組み合わせだけでデジタルフィルタを構成することが可能であり、設計は実際の周波数軸での周波数特性を合成する作業となる。したがって、フィルタ設計が単純で考えやすく、熟練した技術者でなくても、フィルタ設計を極めて簡単に感覚的に行うことができる。
（５）基本フィルタのインパルス応答は有限台の関数となるので、従来のような窓掛けは必要ない。窓掛けを行うことなくフィルタを設計することができるので、周波数特性に打ち切り誤差が生じることはない。したがって、遮断特性の極めて大きな改善が可能となり、位相特性も直線で優れたフィルタ特性を得ることができる。
（６）帯域外減衰量はほぼハードウェアのビット数で制約される。したがって、減衰の深いほぼ一様な帯域外減衰特性を得ることができる。
（７）１以上の基本フィルタを任意に組み合わせて縦続接続する形で算出した数値列をフィルタ係数としてデジタルフィルタに実装する場合も、丸め処理によって不要なフィルタ係数を大幅に削除することにより、従来のＦＩＲフィルタに比べてタップ数を大幅に削減することができる。また、フィルタ係数を整数化することにより、各タップ出力にある係数器はビットシフト回路で構成できるので、乗算器が不要となり、回路素子数を大幅に削減して回路規模を小さくすることができる。
なお、上記実施形態では、図４、図１０および図１６において、“１”を出発点として移動平均演算を行う例について説明したが、“−１”を出発点としても良い。“−１”を出発点とした場合は、位相特性がπだけシフトするだけで、周波数特性は同一で変化はない。
また、上記実施形態では、基本単位フィルタを２段縦続接続することによってＦＩＲ演算部を構成する例について説明したが、４段、６段、８段、・・・のように２段以外の偶数段接続によってＦＩＲ演算部を構成するようにしても良い。
その他、上記実施形態は、何れも本発明を実施するにあたっての具体化の一例を示したものに過ぎず、これによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその精神、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
【産業上の利用可能性】  本発明は、複数の遅延器から成るタップ付き遅延線を備え、各タップの出力信号をそれぞれフィルタ係数により数倍した後、それらの乗算結果を加算して出力するタイプのＦＩＲデジタルフィルタに有用である。
【図１】
2004079905.tif 000003
【図２】
2004079905.tif 000004
【図３】
2004079905.tif 000005
【図４】
2004079905.tif 000006
【図５】
2004079905.tif 000007
【図６】
2004079905.tif 000008
【図７】
2004079905.tif 000009
【図８】
2004079905.tif 000010
【図９】
2004079905.tif 000011
【図１０】
2004079905.tif 000012
【図１１】
2004079905.tif 000013
【図１２】
2004079905.tif 000014
【図１３】
2004079905.tif 000015
【図１４】
2004079905.tif 000016
【図１５】
2004079905.tif 000017
【図１６】
2004079905.tif 000018
【図１７】
2004079905.tif 000019
【図１８】
2004079905.tif 000020
【図１９】
2004079905.tif 000021
【図２０】
2004079905.tif 000022
【図２１】
2004079905.tif 000023
【図２２】
2004079905.tif 000024
【図２３】
2004079905.tif 000025
【図２４】
2004079905.tif 000026
【図２５】
2004079905.tif 000027
【図２６】
2004079905.tif 000028
【図２７】
2004079905.tif 000029
【図２８】
2004079905.tif 000030
【図２９】
2004079905.tif 000031
【図３０】
2004079905.tif 000032
【図３１】
2004079905.tif 000033
【図３２】
2004079905.tif 000034
【図３３】
2004079905.tif 000035
【図３４】
2004079905.tif 000036
【図３５】
2004079905.tif 000037
【図３６】
2004079905.tif 000038
【図３７】
2004079905.tif 000039
【図３８】
2004079905.tif 000040
【図３９】
2004079905.tif 000041
【図４０】
2004079905.tif 000042
【国際調査報告】
2004079905.tif 000043
2004079905.tif 000044
2004079905.tif 000045
2004079905.tif 000046