JPWO2004079905A1 - デジタルフィルタの設計方法および装置、デジタルフィルタ設計用プログラム、デジタルフィルタ - Google Patents

デジタルフィルタの設計方法および装置、デジタルフィルタ設計用プログラム、デジタルフィルタ Download PDF

Info

Publication number
JPWO2004079905A1
JPWO2004079905A1 JP2005503011A JP2005503011A JPWO2004079905A1 JP WO2004079905 A1 JPWO2004079905 A1 JP WO2004079905A1 JP 2005503011 A JP2005503011 A JP 2005503011A JP 2005503011 A JP2005503011 A JP 2005503011A JP WO2004079905 A1 JPWO2004079905 A1 JP WO2004079905A1
Authority
JP
Japan
Prior art keywords
filter
basic
digital filter
numerical sequence
calculation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2005503011A
Other languages
English (en)
Inventor
裕喜生 小柳
裕喜生 小柳
Original Assignee
有限会社ニューロソリューション
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 有限会社ニューロソリューション filed Critical 有限会社ニューロソリューション
Publication of JPWO2004079905A1 publication Critical patent/JPWO2004079905A1/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03HIMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
    • H03H17/00Networks using digital techniques
    • H03H17/02Frequency selective networks
    • H03H17/06Non-recursive filters
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03HIMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
    • H03H17/00Networks using digital techniques
    • H03H2017/0072Theoretical filter design

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Filters That Use Time-Delay Elements (AREA)
  • Complex Calculations (AREA)

Abstract

“−1,m,−1”または“1,m,1”の比率から成る数値列に対して所定の移動平均演算をn回繰り返し行うことによって求められる数値列を基本フィルタのフィルタ係数とし、1以上の基本フィルタを任意に組み合わせて縦続接続することによって、求めるデジタルフィルタのフィルタ係数を算出することにより、従来のFIRフィルタに比べてタップ数および乗算器の使用数を大幅に削減できるようにする。しかも、“−1,m,−1”および“1,m,1”の数値列を用いることによってフィルタのインパルス応答が有限台の関数となるようにすることにより、打ち切り誤差がなく、かつ、大きな帯域外減衰量を有する良好な周波数特性が得られるようにする。

Description

本発明はデジタルフィルタの設計方法および装置、デジタルフィルタ設計用プログラム、デジタルフィルタに関し、特に、複数の遅延器から成るタップ付き遅延線を備え、各タップの出力信号をそれぞれ数倍した後、それらの乗算結果を加算して出力するタイプのFIRフィルタおよびその設計法に関するものである。
デジタルフィルタの1つの形態として、FIR(Finite Impulse Response:有限長インパルス応答)フィルタが存在する。このFIRフィルタは、複数の遅延器から成るタップ付き遅延線を備え、各タップの出力信号をそれぞれフィルタ係数により数倍した後、それらの乗算結果を加算して出力するタイプのフィルタであり、次のような利点を持つ。第1に、FIRフィルタの伝達関数の極はz平面の原点のみにあるため、回路は常に安定である。第2に、フィルタ係数が対称型であれば、完全に正確な直線位相特性を実現することができる。
このFIRフィルタは、有限時間長で表されるインパルス応答がそのままフィルタ係数となっている。したがって、FIRフィルタを設計するということは、希望の周波数特性が得られるようにフィルタ係数を決定するということである。従来、FIRフィルタを設計する際には、目標とする周波数特性に基づきフィルタ係数を算出し、これに窓掛けを行って有限個の係数群を得る。そして、得られた係数群をFFT(高速フーリエ変換)することによって周波数特性に変換し、これが目標の特性を満足しているか否かを確認する方法で設計していた。
目標とする周波数特性からフィルタ係数を算出する際には、例えば、サンプリング周波数とカットオフ周波数との比率をもとに、チェビシェフ近似法を用いた畳み込み演算等を行っていた。これにより求められる係数の数は膨大となり、その係数を全て使用すると、フィルタ回路のタップ数や乗算器は非常に多くなってしまい、現実的でない。そのため、窓掛けによってフィルタ係数の数を実用上耐えうる程度に減らす必要があった。
しかしながら、従来の設計法で得られるFIRフィルタの周波数特性は、窓関数や近似式に依存するので、これらをうまく設定しないと、目標とする良好な周波数特性を得ることができない。ところが、窓関数や近似式を適当に設定することは、一般に困難である。また、フィルタ係数の数を減らすために窓掛けをすると、周波数特性に打ち切り誤差が発生してしまう。そのため、従来のフィルタ設計法で所望の周波数特性を実現するのは非常に困難という問題があった。
また、従来のフィルタ設計法で所望の周波数特性を得るためには、求めたフィルタ係数をFFTしてその周波数特性を確認しながらの試行錯誤が必要であった。したがって、従来は熟練した技術者が時間と手間をかけて設計する必要があり、所望特性のFIRフィルタを容易には設計できないという問題があった。
また、所望の周波数特性をできるだけ精密に実現するFIRフィルタを設計するためには、窓掛けによって減らせるフィルタ係数の数に限界がある。そのため、設計されたFIRフィルタのタップ数は非常に多くなり、しかもそのフィルタ係数値は非常に複雑でランダムな値となる。そのため、そのタップ数およびフィルタ係数値を実現するためには大規模な回路構成(加算器、乗算器)が必要になるという問題もあった。
なお、タップ付き遅延線の各タップ間(各フィルタ係数間)に1以上のゼロ値を挿入することによってフィルタバンク帯域を調整する方法が知られている(例えば、特表平6−503450号公報参照)。また、複数のFIRフィルタを縦続接続することによって急峻な周波数特性を実現する方法も知られている(例えば、特開平5−243908号公報参照)。しかしながら、これら何れの方法を用いても、ただ単にフィルタの通過帯域を狭くすることができるのみで、任意形状の周波数特性を少ないタップ数で精密に実現することはできなかった。
本発明は、このような問題を解決するために成されたものであり、所望の周波数特性を有するFIRデジタルフィルタを簡易的に設計できるようにすることを目的とする。
また、本発明は、所望の周波数特性を有するFIRデジタルフィルタを小さな回路規模で高精度に実現することができるようにすることをも目的としている。
上記課題を解決するために、本発明においては、“−1,m,−1”または“1,m,1”の比率から成る数値列に対して所定の移動平均演算をn回繰り返し行うことによって求められる数値列を基本フィルタのフィルタ係数とし、1以上の基本フィルタを任意に組み合わせて縦続接続することによって、求めるデジタルフィルタのフィルタ係数を算出するようにした。
このように構成した本発明によれば、従来のFIRフィルタに比べてタップ数および乗算器の使用数を大幅に削減することができ、デジタルフィルタの構成を極めて簡単にすることができる。また、フィルタ係数の数を減らすために窓掛けを行う必要がなく、フィルタのインパルス応答も有限台の関数となるので、打ち切り誤差がなく、かつ、大きな帯域外減衰量を有する良好な周波数特性を得ることができる。したがって、所望の周波数特性を有するFIRデジタルフィルタを小さな回路規模で高精度に実現することができる。また、本発明によれば、基本フィルタの組み合わせだけで所望のデジタルフィルタを構成することができるので、熟練した技術者でなくても、所望の周波数特性を有するFIRデジタルフィルタを極めて簡単に設計することができる。
図1は、基本ローパスフィルタL4anのフィルタ係数を示す図である。
図2は、基本ローパスフィルタL4a4の周波数特性を示す図である。
図3は、基本ローパスフィルタL4anの周波数−ゲイン特性を示す図である。
図4は、基本ローパスフィルタLanのフィルタ係数を示す図である。
図5は、基本ローパスフィルタLa4の周波数特性を示す図である。
図6は、基本ローパスフィルタLanの周波数−ゲイン特性を示す図である。
図7は、基本ハイパスフィルタH4snのフィルタ係数を示す図である。
図8は、基本ハイパスフィルタH4s4の周波数特性を示す図である。
図9は、基本ハイパスフィルタH4snの周波数−ゲイン特性を示す図である。
図10は、基本ハイパスフィルタHsnのフィルタ係数を示す図である。
図11は、基本ハイパスフィルタHs4の周波数特性を示す図である。
図12は、基本ハイパスフィルタHsnの周波数−ゲイン特性を示す図である。
図13は、基本バンドパスフィルタB4snのフィルタ係数を示す図である。
図14は、基本バンドパスフィルタB4s4の周波数特性を示す図である。
図15は、基本バンドパスフィルタB4snの周波数−ゲイン特性を示す図である。
図16は、基本バンドパスフィルタBsnのフィルタ係数を示す図である。
図17は、基本バンドパスフィルタBs4の周波数特性を示す図である。
図18は、基本バンドパスフィルタBsnの周波数−ゲイン特性を示す図である。
図19は、基本ハイパスフィルタHmsnにおいてmをパラメータとした周波数−ゲイン特性を示す図である。
図20は、パラメータmに対するパラメータnの最適値を示す図である。
図21は、パラメータmとそれに対するパラメータnの最適値との関係およびパラメータmとそれに対するパラメータxとの関係を示す図である。
図22は、基本ハイパスフィルタHmsnのインパルス応答を示す図である。
図23は、基本ローパスフィルタL4a4,L4a4(1)の周波数−ゲイン特性を示す図である。
図24は、基本フィルタを縦続接続した場合のフィルタ係数の演算内容を説明するための図である。
図25は、基本ローパスフィルタ(L4a4)の周波数−ゲイン特性を示す図である。
図26は、基本ハイパスフィルタ(H4s4)の周波数−ゲイン特性を示す図である。
図27は、16ビットの演算精度で実際に算出したフィルタ係数値(丸め処理前のもの)をグラフ化した図である。
図28は、フィルタ係数を丸め処理する前におけるデジタルフィルタの周波数特性を示す図である。
図29は、図27のフィルタ係数に対して10ビットの丸め処理を行った結果として残った41タップ(ゼロ値を含めた段数は46段)分のフィルタ係数値とそれを整数化した係数値とを示す図である。
図30は、16ビットの演算精度でフィルタ係数を算出した後、それを10ビットに丸めて更に整数化した場合の周波数−ゲイン特性を示す図である。
図31は、基本ローパスフィルタL4a4のハードウェア構成例を示す図である。
図32は、基本ローパスフィルタLa4のハードウェア構成例を示す図である。
図33は、基本ハイパスフィルタH4s4のハードウェア構成例を示す図である。
図34は、基本ハイパスフィルタHs4のハードウェア構成例を示す図である。
図35は、基本バンドパスフィルタB4s4のハードウェア構成例を示す図である。
図36は、基本バンドパスフィルタBs4のハードウェア構成例を示す図である。
図37は、バンドパスフィルタの構成例を示す図である。
図38は、図37に示すバンドパスフィルタの周波数特性を示す図である。
図39は、バンドパスフィルタの他の構成例を示す図である。
図40は、図39に示すバンドパスフィルタの周波数−ゲイン特性を示す図である。
以下、本発明の一実施形態を図面に基づいて説明する。本実施形態では、相互に対応する時間軸上のインパルス応答と周波数軸上の周波数特性とにおいて、インパルス応答の畳み込みが周波数応答の積算となる点に着目し、フィルタ係数の算出を出発点とする従来の設計法とは根本的に異なる全く新しいフィルタ設計法およびその生成物であるデジタルフィルタを提供する。
すなわち、本実施形態では、特定のインパルス応答を有する数種類の基本フィルタを定義し、それらを任意に縦続接続する形で所望の周波数特性を有するFIRフィルタを実現する。基本フィルタは、基本ローパスフィルタ、基本ハイパスフィルタ、基本バンドパスフィルタ(櫛型フィルタを含む)の3種類に大きく分類される。以下、これらの基本フィルタについて説明する。
<基本ローパスフィルタLman(m,nは変数で、nは自然数)>
基本ローパスフィルタLmanのフィルタ係数は、“−1,m,−1”の数値列を出発点として、演算前の元データとそれより所定遅延量だけ前の前データとを順次加算していく移動平均演算によって求める。
図1は、基本ローパスフィルタL4an(m=4とした場合)のフィルタ係数を示す図である。図1において、移動平均演算によってn列目の上からj番目のフィルタ係数を求める際に、元データとは、(n−1)列目の上からj番目のデータを指す。また、前データとは、(n−1)列目の上から(j−1)番目のデータを指す。
例えば、基本ローパスフィルタL4a1の上から1番目の数値“−1”は元データ“−1”と前データ“0”とを加算することによって得られ、2番目の数値“3”は元データ“4”と前データ“−1”とを加算することによって得られる。また、3番目の数値“3”は元データ“−1”と前データ“4”とを加算することによって得られ、4番目の数値“−1”は元データ“0”と前データ“−1”とを加算することによって得られる。
図1に示す基本ローパスフィルタL4anの何れのフィルタ係数も、その数値列は対称型であり、数値列の1つ飛びの合計値が同符号で互いに等しくなるという性質を持っている(例えば基本ローパスフィルタL4a4の場合、−1+9+9+(−1)=16,0+16+0=16)。
上記“−1,m,−1”の数値列は、大元の数値列“−1,N”を基本として生成する。この数値列“−1,N”をフィルタ係数とする基本単位フィルタは、1〜2個(N=0の場合は1個、それ以外の場合は2個)のタップを有する。なお、Nの値は必ずしも整数である必要はない。
この数値列“−1,N”をフィルタ係数として持つ基本単位フィルタは非対称型なので、対称型とするために、これを偶数段縦続接続して使用する必要がある。例えば2段縦続接続した場合、数値列“−1,N”の畳み込みにより、フィルタ係数は“−N,N+1,−N”となる。ここで、(N+1)/N=mとすると、mを整数としたとき、N=(m+(m−4)1/2)/2となる。
図1の例のようにm=4とした場合、N=2+√3である。すなわち、基本単位フィルタの係数は“−1,3.732”となる(ここでは、小数点以下を3桁まで表示している)。また、この基本単位フィルタを2段縦続接続した場合のフィルタ係数は、“−3.732,14.928,−3.732”となる。この数値列は、−1:4:−1の関係になっている。
この数値列を実際にフィルタ係数として使用する場合は、数値列の各値を2N(=2*(2+√3)=7.464)で割ることにより、フィルタ係数の数値列をFFT変換した場合の振幅が“1”となるようにして、ゲインを“1”に基準化(正規化)する。すなわち、実際に使用するフィルタ係数の数値列は、“−1/2,2,−1/2”となる。この実際に使用する数値列“−1/2,2,−1/2”は、元の数値列“−1,4,−1”をz倍(z=1/(m−2))したものに相当する。
このように基準化した数値列をフィルタ係数として使用した場合、基本ローパスフィルタLmanのフィルタ係数は、何れもその数値列の総和が“1”で、数値列の1つ飛びの合計値が同符号で互いに等しくなるという性質を持つ。
図2は、基本ローパスフィルタL4a4(m=4,n=4とした場合)のフィルタ係数の数値列をFFT変換して得られる周波数特性(周波数−ゲイン特性および周波数−位相特性)を示す図である。ここではゲインを直線目盛りで表し、基準化されたゲインを32倍して示している。一方、周波数は“1”で基準化している。
この図2から分かるように、周波数−ゲイン特性は通過域がほぼ平坦で、遮断域の傾斜がなだらかな特性が得られている。また、周波数−位相特性ではほぼ直線的な特性も得られている。このように、基本ローパスフィルタL4a4では、オーバーシュートやリンギングも存在しない良好なローパスフィルタの周波数特性を得ることができる。
図3は、基本ローパスフィルタL4anのnをパラメータとした周波数−ゲイン特性を示す図であり、(a)はゲインを直線目盛りで表し、(b)はゲインを対数目盛りで表している。この図3より、nの値が大きくなるほど遮断域の傾斜が急峻になることが分かる。この基本ローパスフィルタL4anは、n≧5のときは比較的急峻な周波数特性の用途に適し、n<5のときは比較的緩やかな周波数特性の用途に適すると言える。
図4は、基本単位フィルタの数値列“−1,N”でN=0とした場合の基本ローパスフィルタLanのフィルタ係数を示す図である。N=0の場合、基本単位フィルタを2段縦続接続したときのフィルタ係数は“0,1,0”となる。したがって、基本ローパスフィルタLanのフィルタ係数は、“1”を出発点として、元データと前データとを順次加算していく移動平均演算によって求められる。
図4に示す基本ローパスフィルタLanの何れのフィルタ係数も、その数値列は対称型であり、数値列の1つ飛びの合計値が同符号で互いに等しくなるという性質を持っている(例えば基本ローパスフィルタLa4の場合、1+6+1=8,4+4=8)。
図5は、基本ローパスフィルタLa4のフィルタ係数の数値列をFFT変換して得られる周波数特性を示す図である。ここではゲインを直線目盛りで表し、基準化されたゲインを16倍して示している。一方、周波数は“1”で基準化している。
この図5から分かるように、周波数−ゲイン特性でほぼ平坦な通過域は図2に比べて狭くなるが、遮断域の傾斜はなだらかな特性が得られている。また、周波数−位相特性ではほぼ直線的な特性も得られている。このように、基本ローパスフィルタLa4においても、オーバーシュートやリンギングも存在しない良好なローパスフィルタの周波数特性を得ることができる。
図6は、基本ローパスフィルタLanのnをパラメータとした周波数−ゲイン特性を示す図であり、(a)はゲインを直線目盛りで表し、(b)はゲインを対数目盛りで表している。この図6より、nの値が大きくなるほど遮断域の傾斜が急峻になることが分かる。この基本ローパスフィルタLanは、n≧5のときは比較的急峻な周波数特性の用途に適し、n<5のときは比較的緩やかな周波数特性の用途に適すると言える。
<基本ハイパスフィルタHmsn(m,nは変数で、nは自然数)>
基本ハイパスフィルタHmsnのフィルタ係数は、“1,m,1”の数値列を出発点として、演算前の元データからそれより所定遅延量だけ前の前データを順次減算していく移動平均演算によって求める。
図7は、基本ハイパスフィルタH4sn(m=4とした場合)のフィルタ係数を示す図である。図7において、移動平均演算によってn列目の上からj番目のフィルタ係数を求める際に、元データとは、(n−1)列目の上からj番目のデータを指す。また、前データとは、(n−1)列目の上から(j−1)番目のデータを指す。
例えば、基本ハイパスフィルタH4s1の上から1番目の数値“1”は元データ“1”から前データ“0”を減算することによって得られ、2番目の数値“3”は元データ“4”から前データ“1”を減算することによって得られる。また、3番目の数値“−3”は元データ“1”から前データ“4”を減算することによって得られ、4番目の数値“−1”は元データ“0”から前データ“1”を減算することによって得られる。
図7に示す基本ハイパスフィルタH4snにおいて、nが偶数のときは何れのフィルタ係数も、その数値列は対称型であり、数値列の1つ飛びの合計値が逆符号で互いに等しくなるという性質を持っている(例えば基本ハイパスフィルタH4s4の場合、1+(−9)+(−9)+1=−16,0+16+0=16)。nが奇数のときは、その数値列は絶対値が対称型となっており、前半の数値列と後半の数値列とは逆符号になる。また、数値列の1つ飛びの合計値が逆符号で互いに等しくなるという性質を持っている。
上記“1,m,1”の数値列は、大元の数値列“1,N”を基本として生成する。この数値列“1,N”をフィルタ係数とする基本単位フィルタは、1〜2個(N=0の場合は1個、それ以外の場合は2個)のタップを有する。なお、Nの値は必ずしも整数である必要はない。
この数値列“1,N”をフィルタ係数として持つ基本単位フィルタは非対称型なので、対称型とするために、これを偶数段縦続接続して使用する必要がある。例えば2段縦続接続した場合、数値列“1,N”の畳み込みにより、フィルタ係数は“N,N+1,N”となる。ここで、(N+1)/N=mとすると、mを整数としたとき、N=(m+(m−4)1/2)/2となる。
図7の例のようにm=4とした場合、N=2+√3である。すなわち、基本単位フィルタの係数は“1,3.732”となる(ここでは、小数点以下を3桁まで表示している)。また、この基本単位フィルタを2段縦続接続した場合のフィルタ係数は、“3.732,14.928,3.732”となる。この数値列は、1:4:1の関係になっている。
この数値列を実際にフィルタ係数として使用する場合は、数値列の各値を2N(=2*(2+√3)=7.464)で割ることにより、フィルタ係数の数値列をFFT変換した場合の振幅が“1”となるようにして、ゲインを“1”に基準化する。すなわち、実際に使用するフィルタ係数の数値列は、“1/2,2,1/2”となる。この実際に使用する数値列“1/2,2,1/2”も、元の数値列“1,4,1”をz倍(z=1/(m−2))したものに相当する。
このように基準化した数値列をフィルタ係数として使用した場合、基本ハイパスフィルタHmsnのフィルタ係数は、何れもその数値列の総和が“0”で、数値列の1つ飛びの合計値が逆符号で互いに等しくなるという性質を持つ。
図8は、基本ハイパスフィルタH4s4(m=4,n=4とした場合)のフィルタ係数の数値列をFFT変換して得られる周波数特性を示す図である。ここではゲインを直線目盛りで表し、基準化されたゲインを32倍して示している。一方、周波数は“1”で基準化している。
この図8から分かるように、周波数−ゲイン特性は通過域がほぼ平坦で、遮断域の傾斜がなだらかな特性が得られている。また、周波数−位相特性ではほぼ直線的な特性も得られている。このように、基本ハイパスフィルタH4s4では、オーバーシュートやリンギングも存在しない良好なハイパスフィルタの周波数特性を得ることができる。
図9は、基本ハイパスフィルタH4snのnをパラメータとした周波数−ゲイン特性を示す図であり、(a)はゲインを直線目盛りで表し、(b)はゲインを対数目盛りで表している。この図9より、nの値が大きくなるほど遮断域の傾斜が急峻になることが分かる。この基本ハイパスフィルタH4snは、n≧5のときは比較的急峻な周波数特性の用途に適し、n<5のときは比較的緩やかな周波数特性の用途に適すると言える。
図10は、基本単位フィルタの数値列“1,N”でN=0とした場合の基本ハイパスフィルタHsnのフィルタ係数を示す図である。N=0の場合、基本単位フィルタを2段縦続接続したときのフィルタ係数は“0,1,0”となる。したがって、基本ハイパスフィルタHsnのフィルタ係数は、“1”を出発点として、元データから前データを順次減算していく移動平均演算によって求められる。
図10に示す基本ハイパスフィルタHsnにおいて、nが偶数のときは何れのフィルタ係数も、その数値列は対称型であり、数値列の1つ飛びの合計値が逆符号で互いに等しくなるという性質を持っている(例えば基本ハイパスフィルタHs4の場合、1+6+1=8,−4+(−4)=−8)。nが奇数のときは、その数値列は絶対値が対称型となっており、前半の数値列と後半の数値列とは逆符号になる。また、数値列の1つ飛びの合計値が逆符号で互いに等しくなるという性質を持っている。
図11は、基本ハイパスフィルタHs4のフィルタ係数の数値列をFFT変換して得られる周波数特性を示す図である。ここではゲインを直線目盛りで表し、基準化されたゲインを16倍して示している。一方、周波数は“1”で基準化している。
この図11から分かるように、周波数−ゲイン特性でほぼ平坦な通過域は図8に比べて狭くなるが、遮断域の傾斜はなだらかな特性が得られている。また、周波数−位相特性ではほぼ直線的な特性も得られている。このように、基本ハイパスフィルタHs4においても、オーバーシュートやリンギングも存在しない良好なハイパスフィルタの周波数特性を得ることができる。
図12は、基本ハイパスフィルタHsnのnをパラメータとした周波数−ゲイン特性を示す図であり、(a)はゲインを直線目盛りで表し、(b)はゲインを対数目盛りで表している。この図12より、nの値が大きくなるほど遮断域の傾斜が急峻になることが分かる。この基本ハイパスフィルタHsnは、n≧5のときは比較的急峻な周波数特性の用途に適し、n<5のときは比較的緩やかな周波数特性の用途に適すると言える。
<基本バンドパスフィルタBmsn(m,nは変数で、nは自然数)>
基本バンドパスフィルタBmsnのフィルタ係数は、“1,0,m,0,1”の数値列を出発点として、元データから2つ前の前データを順次減算していく移動平均演算によって求める。
図13は、基本バンドパスフィルタB4sn(m=4とした場合)のフィルタ係数を示す図である。図13において、移動平均演算によってn列目の上からj番目のフィルタ係数を求める際に、元データとは、(n−1)列目の上からj番目のデータを指す。また、前データとは、(n−1)列目の上から(j−2)番目のデータを指す。
例えば、基本バンドパスフィルタB4s1の上から1番目の数値“1”は元データ“1”から前データ“0”を減算することによって得られ、3番目の数値“3”は元データ“4”から前データ“1”を減算することによって得られる。また、5番目の数値“−3”は元データ“1”から前データ“4”を減算することによって得られ、7番目の数値“−1”は元データ“0”から前データ“1”を減算することによって得られる。
図13に示す基本バンドパスフィルタB4snにおいて、nが偶数とのきは何れのフィルタ係数も、その数値列は対称型であり、数値列の3つ飛びの合計値が逆符号で互いに等しくなるという性質を持っている(例えば基本バンドパスフィルタB4s4の場合、1+(−9)+(−9)+1=−16,0+16+0=16)。nが奇数のときは、その数値列は絶対値が対称型となっており、前半の数値列と後半の数値列とは逆符号になる。また、数値列の3つ飛びの合計値が逆符号で互いに等しくなるという性質を持っている。
上記“1,0,m,0,1”の数値列は、大元の数値列“1,0,N”を基本として生成する。この数値列“1,0,N”をフィルタ係数とする基本単位フィルタは、1〜2個(N=0の場合は1個、それ以外の場合は2個)のタップを有する。なお、Nの値は必ずしも整数である必要はない。
この数値列“1,0,N”をフィルタ係数として持つ基本単位フィルタは非対称型なので、対称型とするために、これを偶数段縦続接続して使用する必要がある。例えば2段縦続接続した場合、数値列“1,0,N”の畳み込みにより、フィルタ係数は“N,0,N+1,0,N”となる。ここで、(N+1)/N=mとすると、mを整数としたとき、N=(m+(m−4)1/2)/2となる。
図13の例のようにm=4とした場合、N=2+√3である。すなわち、基本単位フィルタの係数は“1,0,3.732”となる(ここでは、小数点以下を3桁まで表示している)。また、この基本単位フィルタを2段縦続接続した場合のフィルタ係数は、“3.732,0,14.928,0,3.732”となる。この数値列は、1:0:4:0:1の関係になっている。
この数値列を実際にフィルタ係数として使用する場合は、数値列の各値を2N(=2*(2+√3)=7.464)で割ることにより、フィルタ係数の数値列をFFT変換した場合の振幅が“1”となるようにして、ゲインを“1”に基準化する。すなわち、実際に使用するフィルタ係数の数値列は、“1/2,0,2,0,1/2”となる。この実際に使用する数値列“1/2,0,2,0,1/2”も、元の数値列“1,0,4,0,1”をz倍(z=1/(m−2))したものに相当する。
このように基準化した数値列をフィルタ係数として使用した場合、基本バンドパスフィルタBmsnのフィルタ係数は、何れもその数値列の総和が“0”で、数値列の3つ飛びの合計値が逆符号で互いに等しくなるという性質を持つ。
図14は、基本バンドパスフィルタB4s4(m=4,n=4とした場合)のフィルタ係数の数値列をFFT変換して得られる周波数特性を示す図である。ここではゲインを直線目盛りで表し、基準化されたゲインを32倍して示している。一方、周波数は“1”で基準化している。
この図14から分かるように、周波数−ゲイン特性は通過域がほぼ平坦で、遮断域の傾斜がなだらかな特性が得られている。また、周波数−位相特性ではほぼ直線的な特性も得られている。このように、基本バンドパスフィルタB4s4では、オーバーシュートやリンギングも存在しない良好なバンドパスフィルタの周波数特性を得ることができる。
図15は、基本バンドパスフィルタB4snのnをパラメータとした周波数−ゲイン特性を示す図であり、(a)はゲインを直線目盛りで表し、(b)はゲインを対数目盛りで表している。この図15より、nの値が大きくなるほど遮断域の傾斜が急峻になることが分かる。この基本バンドパスフィルタB4snは、n≧5のときは比較的急峻な周波数特性の用途に適し、n<5のときは比較的緩やかな周波数特性の用途に適すると言える。
図16は、基本単位フィルタの数値列“1,0,N”でN=0とした場合の基本バンドパスフィルタBsnのフィルタ係数を示す図である。N=0の場合、基本単位フィルタを2段縦続接続したときのフィルタ係数は“0,0,1,0,0”となる。したがって、基本バンドパスフィルタBsnのフィルタ係数は、“1”を出発点として、元データから2つ前の前データを順次減算していく移動平均演算によって求められる。
図16に示す基本バンドパスフィルタBsnにおいて、nが偶数のときは何れのフィルタ係数も、その数値列は対称型であり、数値列の3つ飛びの合計値が逆符号で互いに等しくなるという性質を持っている(例えば基本バンドパスフィルタBs4の場合、1+6+1=8,−4+(−4)=−8)。nが奇数のときは、その数値列は絶対値が対称型となっており、前半の数値列と後半の数値列とは逆符号になる。また、数値列の3つ飛びの合計値が逆符号で互いに等しくなるという性質を持っている。
図17は、基本バンドパスフィルタBs4のフィルタ係数の数値列をFFT変換して得られる周波数特性を示す図である。ここではゲインを直線目盛りで表し、基準化されたゲインを16倍して示している。一方、周波数は“1”で基準化している。
この図17から分かるように、周波数−ゲイン特性でほぼ平坦な通過域は図14に比べて狭くなるが、遮断域の傾斜はなだらかな特性が得られている。また、周波数−位相特性ではほぼ直線的な特性も得られている。このように、基本バンドパスフィルタBs4においても、オーバーシュートやリンギングも存在しない良好なバンドパスフィルタの周波数特性を得ることができる。
図18は、基本バンドパスフィルタBsnのnをパラメータとした周波数−ゲイン特性を示す図であり、(a)はゲインを直線目盛りで表し、(b)はゲインを対数目盛りで表している。この図18より、nの値が大きくなるほど遮断域の傾斜が急峻になることが分かる。この基本バンドパスフィルタBsnは、n≧5のときは比較的急峻な周波数特性の用途に適し、n<5のときは比較的緩やかな周波数特性の用途に適すると言える。
<パラメータ値m,nの特性に与える影響>
まず、移動平均演算の段数nを変えた場合の影響について説明する。例えば図3に示したように、基本ローパスフィルタLmanにおいて、nの値を大きくすると遮断域の傾斜が急峻になり、通過域のバンド幅は狭くなる。また、nの値が小さいときは、周波数特性の頂部は両端が盛り上がる。nの値が大きくなるに従って頂部は徐々に平坦に近づき、n=4で完全に平坦になる。nの値がそれより大きくなると、今度は頂部の両端が中央値より低くなっていく。このような傾向は、基本ハイパスフィルタHmsn、基本バンドパスフィルタBmsnについても同様に言える(図9、図15参照)。
一方、基本単位フィルタの係数値をN=0として構成した基本ローパスフィルタLan、基本ハイパスフィルタHsnおよび基本バンドパスフィルタBsnに関しては、図6、図12、図18に示したように、nの値が何れの場合も頂部の両端は中央値より低くなる。nの値を大きくすると遮断域の傾斜が急峻になり、通過域のバンド幅が狭くなることは、N≠0である基本ローパスフィルタLman、基本ハイパスフィルタHmsnおよび基本バンドパスフィルタBmsnの場合と同様である。
次に、mの値を変えた場合の影響について説明する。図19は、基本ハイパスフィルタHmsnにおいてmをパラメータとした周波数−ゲイン特性を示す図である。この図19より、mの値を小さくすると遮断域の傾斜が急峻になり、通過域のバンド幅が狭くなることが分かる。ここでは図示を省略するが、基本ローパスフィルタLmanおよび基本バンドパスフィルタBmsnについても同様のことが言える。
この図19は、パラメータmに対するパラメータnの最適値(周波数特性の頂部が平坦になるnの値)も同時に示している。すなわち、m=4のときの最適値はn=4、m=3.5のときの最適値はn=6、m=3のときの最適値はn=8、m=2.5のときの最適値はn=16である。図20は、これを分かりやすくグラフ化したものである。この図20から分かるように、パラメータmに対するパラメータnの最適値は、mの値が小さくなるにつれて大きくなる。
このことを、図21を用いて更に詳細に説明する。図21は、パラメータmとそれに対するパラメータnの最適値との関係を表形式によって示す図である。なお、この図21では、パラメータmに対するパラメータxの関係も併せて示している。
上述のように、パラメータmに対するパラメータnの最適値は、mの値が小さくなるにつれて大きくなる。ここで、m=2になるとフィルタ特性が大きく変わってしまい、良好な周波数特性が得られなくなる。逆に言うと、m>2の条件であれば、タップ間に挿入する遅延量を増やさなくても、通過域におけるバンド幅の狭い良好なフィルタ特性を得ることができる。一方、パラメータmの値が大きくなるにつれてパラメータnの最適値は小さくなり、m=10のときにn=1となる。つまり、m=10のときは、移動平均演算の段数は1段で良い。このことから、パラメータmは、2<m≦10の条件で使用するのが好ましい。
また、パラメータnの値は、図21に示す最適値を中心として前後の或る範囲で選択した任意の値を用いることにより、図3、図9、図15のように周波数特性の調整をすることができる。
図22は、図19に示した4種類の基本ハイパスフィルタHmsnのインパルス応答を示す図である。この図22に示すような波形を有するインパルス応答は、横軸に沿った標本位置が一定の間にあるときにのみ“0”以外の有限な値を有し、それ以外の領域では値が全て“0”となる関数、つまり所定の標本位置において値が“0”に収束する関数である。
このように、関数の値が局所的な領域で“0”以外の有限の値を有し、それ以外の領域で“0”となる場合を「有限台」と称する。ここでは図示を省略するが、基本ハイパスフィルタHsn、基本ローパスフィルタLman,Lanおよび基本バンドパスフィルタBmsn,Bsnについても同様に、インパルス応答は有限台となる。
このような有限台のインパルス応答では、“0”以外の有限の値を有する局所的な領域内のデータだけが意味を持つ。この領域外のデータについては、本来これを考慮すべきであるのに無視している訳ではなく、理論的に考慮する必要がないため、打ち切り誤差は発生しない。したがって、図1、図4、図7、図10、図13、図16に示した数値列をフィルタ係数として用いれば、窓掛けによって係数の打ち切りを行う必要もなく、良好なフィルタ特性を得ることができる。
<フィルタ係数間のゼロ値の調整>
基本フィルタのフィルタ係数を構成する数値列の各数値間のゼロ値(各タップ間の遅延量に相当)を変えることによって、基本フィルタの通過域のバンド幅を調整することが可能である。すなわち、上述の基本ローパスフィルタLman,Lan、基本ハイパスフィルタHmsn,Hsn、基本バンドパスフィルタBmsn,Bsnでは、各タップ間の遅延量は1クロック分であったが、これを(k+1)クロック分とすると(各フィルタ係数の間に“0”をk個ずつ挿入すると)、その周波数−ゲイン特性の周波数軸(周波数方向に対する周期)は1/(k+1)となり、通過域のバンド幅は狭くなる。以下、例えば基本ローパスフィルタLmanにおいて各フィルタ係数の間に“0”をk個ずつ挿入する場合をLman(k)と表記することにする。ただし、k=0の場合は(0)を省略して表記する。
図23は、基本ローパスフィルタL4a4および、その各フィルタ係数の間に“0”を1つずつ挿入することによって生成した基本ローパスフィルタL4a4(1)の周波数−ゲイン特性を示す図であり、(a)はゲインを直線目盛りで表し、(b)はゲインを対数目盛りで表している。この図23から分かるように、フィルタ係数の間に挿入する“0”の数をk個とすると、その周波数−ゲイン特性の周波数軸(周波数方向に対する周期)は1/(k+1)となり、通過域のバンド幅を狭くすることが可能である。
<同種の基本フィルタの縦続接続>
同種の基本フィルタを縦続接続することにより、各基本フィルタの係数どうしが乗算・加算されて新しいフィルタ係数が作り出される。以下では、例えば基本ローパスフィルタLmanの縦続接続数をMとするとき、これを(Lman)と記述することにする。
ここで、基本フィルタを縦続接続した場合におけるフィルタ係数の演算内容について説明する。図24は、縦続接続によるフィルタ係数の演算内容を説明するための図である。この図24に示すように、2つの基本フィルタを縦続接続した場合には、一方のフィルタ係数を構成する(2i+1)個(2i+1は、一方のフィルタ係数を構成する全数値列の個数を表す)の数値列{H1−i,H1−(i−1),H1−(i−2),・・・,H1−1,H1,H1,・・・,H1i−2,H1i−1,H1}と、他方のフィルタ係数を構成する(2i+1)個の数値列{H2−i,H2−(i−1),H2−(i−2),・・・,H2−1,H2,H2,・・・,H2i−2,H2i−1,H2}との畳み込み演算を行うことによって、新たなフィルタ係数の数値列を求める。
この畳み込み演算では、他方のフィルタ係数については、{H2−i,H2−(i−1),H2−(i−2),・・・,H2−1,H2,H2,・・・,H2i−2,H2i−1,H2}の全ての数値列を常に固定的に乗加算の対象とする。一方、一方のフィルタ係数については、{H1−i,H1−(i−1),H1−(i−2),・・・,H1−1,H1,H1,・・・,H1i−2,H1i−1,H1}の数値列の前後に0列があるものと仮定し、この0値も含めて(2i+1)個の数値列を畳み込み演算の対象とする。このとき、新たなフィルタ係数のp番目の数値を求める際には、一方のフィルタ係数のp番目の数値を含めてそれより前にある(2i+1)個の数値列を乗加算の対象とする。
例えば、新たなフィルタ係数の1番目の数値を求める際には、他方のフィルタ係数の全ての数値列{H2−i,H2−(i−1),H2−(i−2),・・・,H2−1,H2,H2,・・・,H2i−2,H2i−1,H2}(符号31で示す点線で囲った配列)と、一方のフィルタ係数の1番目の数値を含めてそれより前にある(2i+1)個の数値列{0,0,・・・,0,H1−i}(符号32で示す点線で囲った配列)とを対象として、配列の対応する要素の積を合計する演算を行う。すなわち、この場合の演算結果は、(H1−i×H2−i)となる。
また、新たなフィルタ係数の2番目の数値を求める際には、他方のフィルタ係数の全ての数値列{H2−i,H2−(i−1),H2−(i−2),・・・,H2−1,H2,H2,・・・,H2i−2,H2i−1,H2}(符号31で示す点線で囲った配列)と、一方のフィルタ係数の2番目の数値を含めてそれより前にある(2i+1)個の数値列{0,0,・・・,0,H1−i,H1−(i−1)}(符号33で示す点線で囲った配列)とを対象として、配列の対応する要素の積を合計する演算を行う。すなわち、この場合の演算結果は、(H1−i×H2−i+H1−(i−1)×H2−(i−1))となる。以下同様にして、新たなフィルタ係数を構成する(2×(2i+1)−1)個の数値列を求める。
図25は、基本ローパスフィルタL4a4,(L4a4),(L4a4),(L4a4)の周波数−ゲイン特性を示す図であり、(a)はゲインを直線目盛りで表し、(b)はゲインを対数目盛りで表している。基本ローパスフィルタL4a4が1個のみの場合、振幅が0.5となる位置のクロックは0.25である。これに対して縦続接続数Mが多くなると、フィルタの通過帯域幅が狭くなる。例えばM=8の場合、振幅が0.5となる位置のクロックは0.125となる。
上記図25から分かるように、基本ローパスフィルタL4a4は、周波数特性のカットオフ周波数部分の傾斜が急峻であるという特徴を持つ。また、基本ローパスフィルタフィルタ(L4a4)の周波数−ゲイン特性は、縦続接続数Mが多くなるほど通過帯域幅が狭くなり、低周波域においても極めて深くストレートに落ち込む特性が得られる。
図26は、基本ハイパスフィルタH4s4,(H4s4),(H4s4),(H4s4)の周波数−ゲイン特性を示す図であり、(a)はゲインを直線目盛りで表し、(b)はゲインを対数目盛りで表している。る。基本ハイパスフィルタH4s4が1個のみの場合、振幅が0.5となる位置のクロックは0.25である。これに対して縦続接続数Mが多くなると、フィルタの通過帯域幅が狭くなる。例えばM=8の場合、振幅が0.5となる位置のクロックは0.375となる。
上記図26から分かるように、基本ハイパスフィルタH4s4は、周波数特性のカットオフ周波数部分の傾斜が急峻であるという特徴を持つ。また、基本ハイパスフィルタフィルタ(H4s4)の周波数−ゲイン特性は、縦続接続数Mが多くなるほど通過帯域幅が狭くなり、高周波域においても極めて深くストレートに落ち込む特性が得られる。
<異種の基本フィルタの縦続接続>
異種の基本フィルタを縦続接続した場合も、各基本フィルタの係数どうしが畳み込み演算により乗算・加算されて新しいフィルタ係数が作り出される。この場合は、異種の基本フィルタを任意に組み合わせることによって、各基本フィルタの特性どうしが相殺し合い、所望の周波数帯域を抜き取ることができる。これにより、所望特性のローパスフィルタやハイパスフィルタ、バンドパスフィルタ、バンドエリミネーションフィルタ、コムフィルタなどを簡単に設計することができる。
<フィルタ係数の丸め処理>
以上のような基本フィルタの縦続接続、バンド幅の調整等によって求められた数値列が、所望の周波数特性を実現するためのフィルタ係数となる。図27は、16ビットの演算精度で実際に算出したフィルタ係数値(丸め処理前のもの)をグラフ化した図である。また、図28は、フィルタ係数を丸め処理する前におけるデジタルフィルタの周波数−ゲイン特性および周波数−位相特性を示す図であり、(a)はゲインを直線目盛りで示し、(b)はゲインを対数目盛りで示している。
図27に示すように、本実施形態の設計法によって得られるフィルタ係数の値は、中央(係数H)で最大となる。また、各フィルタ係数の値の差は、従来のフィルタ設計法で得られるフィルタ係数のそれに比べて極めて大きくなる。そのため、所定の閾値より小さい値のフィルタ係数を丸め処理によって破棄しても、周波数特性を決定付ける主要なフィルタ係数は殆ど残り、周波数特性に悪影響を与えることは殆どない。また、周波数特性の帯域外減衰量はフィルタ係数のビット数によって制約を受けるが、図28に示すように、本実施形態のフィルタ設計法によって得られる周波数特性は非常に深い減衰を持っているので、ビット数を多少減らしても、所望の減衰量は確保できる。
したがって、丸め処理によって不要なフィルタ係数を大幅に削減することができる。例えば、フィルタ係数の下位数ビットを切り捨てることでビット数を減らすことにより、その下位数ビットだけで表される最大値よりも小さい値のフィルタ係数を全て“0”に丸めて破棄することができる。よって、フィルタ係数の数を減らすために従来のような窓掛けは必要ない。なお、上述したように、縦続接続されている基本フィルタのインパルス応答は有限台の関数となる。そのため、この基本フィルタをもとに設計されるフィルタ係数の数は、従来に比べてそもそも少なく、丸め処理をすることなくそのまま使用することも可能である。しかし、よりタップ数を少なくするために、ビット数を減らす丸め処理を行うのが好ましい。
この点は、従来のフィルタ設計法と大きく異なる本実施形態の特徴点である。すなわち、従来のフィルタ設計法では、求められる各フィルタ係数の値の差がそれほど大きくならないため、フィルタ係数の値で丸め処理をすると、周波数特性を決定付ける主要なフィルタ係数も破棄されてしまうことが多い。また、非常に深い帯域外減衰量を持った周波数特性を得ることも困難なため、フィルタ係数のビット数を減らすと必要な帯域外減衰量を確保できなくなってしまう。よって、従来はビット数を減らす丸め処理を行うことができず、窓掛けによってフィルタ係数の数を減らさざるを得なかった。そのため、周波数特性に打ち切り誤差が発生し、所望の周波数特性を得ることが極めて困難であった。
これに対して、本実施形態では窓掛けを行うことなくフィルタの設計ができるので、周波数特性に打ち切り誤差が生じることはない。したがって、遮断特性の極めて大きな改善が可能となり、位相特性も直線で優れたフィルタ特性を得ることができる。
図29は、16ビットの演算精度で算出した図27のようなフィルタ係数に対して10ビットの丸め処理を行った結果として残った41タップ(ゼロ値を含めた段数は46段)分のフィルタ係数値とそれを整数化した係数値とを示す図である。上述のような基本フィルタの縦続接続によって求まるフィルタ係数の値は小数であり、10ビットの丸め処理によってその桁数を減らすことができるが、ランダムな値の集合である。この数値列をそのままフィルタ係数として用いても良いが、デジタルフィルタを実装する際に使用する乗算器の数をより少なくするために、フィルタ係数の数値を更に丸めて単純化するようにしても良い。そのために本実施形態では、10ビットで丸めたフィルタ係数の数値列を210倍して小数点以下を丸め、係数値を整数化する。
このような整数化の丸め演算を行うと、デジタルフィルタの各タップからの出力信号に対して整数のフィルタ係数を個別に乗算し、それぞれの乗算出力を全て加算した後にまとめて1/210倍するようにデジタルフィルタを構成することが可能となる。しかも、整数のフィルタ係数は、2+2+・・・(i,jは任意の整数)のように2進数の足し算で表現できる。これにより、乗算器の代わりにビットシフト回路で係数器を構成し、実装するデジタルフィルタの構成を簡素化することができる。
図30は、16ビットの演算精度でフィルタ係数を算出した後、それを10ビットに丸めて(10ビット以下の桁数を切り捨てて)更に整数化した場合の周波数−ゲイン特性を示す図であり、(a)はゲインを直線目盛りで示し、(b)はゲインを対数目盛りで示している。
図30からよく分かるように、本実施形態ではフィルタ設計の際に窓掛けを行っていないので、周波数−ゲイン特性における平坦部のリップルが極めて小さく、±0.3dBの範囲内に充分収まっている。また、丸め処理後の帯域外減衰量は約44dBとなっているが、この帯域外減衰量は実装しようとするハードウェアで対応可能なビット数によって制約される。したがって、ハードウェア規模の制約がなければ、丸め処理後のビット数を大きくしてより減衰の深い帯域外減衰特性を得ることができる。
なお、ここでは丸め処理の例として、フィルタ係数のデータに対して下位数ビットを切り捨てることによってyビットのデータをxビットに丸める処理について説明したが、この例に限定されない。例えば、各フィルタ係数の値を所定の閾値と比較し、閾値より小さいフィルタ係数を破棄するようにしても良い。この場合、残されるフィルタ係数は元のyビットのままであるから、これを整数化する際には2倍する。
<フィルタ設計装置の実装例>
以上に説明した本実施形態によるデジタルフィルタの設計方法を実現するための装置は、ハードウェア構成、DSP、ソフトウェアの何れによっても実現することが可能である。例えばソフトウェアによって実現する場合、本実施形態のフィルタ設計装置は、実際にはコンピュータのCPUあるいはMPU、RAM、ROMなどで構成され、RAMやROMあるいはハードディスク等に記憶されたプログラムが動作することによって実現できる。
例えば、各種の基本フィルタLman,Lan,Hmsn,Hsn,Bmsn,Bsnに関するフィルタ係数をデータとしてRAMやROM、ハードディスク等の記憶装置に記憶しておく。そして、ユーザが基本フィルタLman,Lan,Hmsn,Hsn,Bmsn,Bsnに関する任意の組み合わせと接続順、各フィルタ係数間に挿入するゼロ値の数k、基本フィルタの同種縦続接続数Mなどを指示すると、CPUが、上記記憶装置に記憶されているフィルタ係数のデータを用いて、指示された内容に対応するフィルタ係数を上述した演算により求めるようにすることが可能である。この場合、記憶装置が本発明の基本フィルタ係数記憶手段に相当し、CPUが本発明の演算手段に相当する。
ユーザが各基本フィルタLman,Lan,Hmsn,Hsn,Bmsn,Bsnに関する組み合わせと接続順、ゼロ値の挿入数k、縦続接続数Mなどを指示する際のユーザインタフェースは、任意に構成することが可能である。例えば、基本フィルタのタイプ(Lman,Lan,Hmsn,Hsn,Bmsn,Bsnの何れか)を画面表示された一覧表からキーボードやマウスの操作によって選択できるようにするとともに、パラメータm,n,k,Mの値をキーボードやマウスの操作によって入力できるようにする。そして、タイプの選択とパラメータの入力とを1つずつ順に行っていったときの入力順を基本フィルタの接続順として入力する。CPUは、このようにして入力された情報を取得し、その入力情報により指示された内容に対応するフィルタ係数を上述した演算により求める。
また、各種の基本フィルタLman,Lan,Hmsn,Hsn,Bmsn,Bsnをアイコン化してディスプレイ画面上に表示するようにし(各アイコンに対応してフィルタ係数をデータとして記憶装置に記憶している)、ユーザがこれらのアイコンをキーボードやマウスの操作によりディスプレイ画面上で任意に組み合わせて配置する。また、その他の必要なパラメータはキーボードやマウスの操作によって入力する。そして、CPUがアイコンの配列や入力パラメータに対応するフィルタ係数を自動的に演算して求めるようにしても良い。
また、パーソナルコンピュータ等にインストールされている表計算ソフトの関数機能などを利用して、基本フィルタを求める際の移動平均演算、基本フィルタを縦続接続するときの畳み込み演算などを行うようにすることも可能である。この場合の演算は、実際には、表計算ソフトがインストールされているパーソナルコンピュータ等のCPU、ROM、RAMなどによって行われる。
また、求めたフィルタ係数を自動的にFFT変換し、その結果を周波数−ゲイン特性図としてディスプレイ画面に表示するようにしても良い。このようにすれば、設計したフィルタの周波数特性を視覚的に確認することができ、フィルタ設計をより容易に行うことができる。
<デジタルフィルタの実装例>
実際にデジタルフィルタを電子機器内や半導体ICに実装する場合には、以上のようなフィルタ設計装置によって最終的に求められた数値列をフィルタ係数として持つFIRフィルタを構成すればよい。すなわち、単に複数のD型フリップフロップと複数の係数器と複数の加算器とにより1つのデジタルフィルタを構成し、以上のような手順で求めた最終的なフィルタ係数を、当該デジタルフィルタ内の複数の係数器に設定する形で構成する。
その場合、求められたフィルタ係数の数は10ビットの丸め処理によって大幅に削減されており、かつ、210倍による丸め処理によって単純な整数に変換されている。したがって、タップ数は非常に少なく、しかも基本的に乗算器は不要でビットシフト回路にて対応可能であり、所望の周波数特性を小さな回路規模で高精度に実現することができる。
また、各基本フィルタLman(k),Lan(k),Hmsn(k),Hsn(k),Bmsn(k),Bsn(k)のうち、フィルタ設計の際に用いたものをそれぞれハードウェアとして構成し、それらをハードウェアとして接続することによってデジタルフィルタを実装するようにしても良い。以下に、各基本フィルタLman,Lan,Hmsn,Hsn,Bmsn,Bsnのハードウェア構成例を示す。
図31は、基本ローパスフィルタL4a4(m=4,n=4とした場合)のハードウェア構成を示す図である。図31に示すように、基本ローパスフィルタL4a4は、出発点となる数値列“−1/2,2,−1/2”をフィルタ係数として持つFIR演算部101と、当該数値列を移動平均演算する移動平均演算部201とを備えて構成される。このうちFIR演算部101は、縦続接続された2個のD型フリップフロップ1−1〜1−2と、3個の係数器2−1〜2−3と、2個の減算器3−1〜3−2とにより構成される。
2個のD型フリップフロップ1−1〜1−2は、入力データを1クロックCKずつ順次遅延させる。3個の係数器2−1〜2−3は、各D型フリップフロップ1−1〜1−2の入出力タップから取り出した信号に対し、1/2,2,1/2のフィルタ係数をそれぞれ乗算する。第1の減算器3−1は、第2の係数器2−2の乗算結果から第1の係数器2−1の乗算結果を減算する。また、第2の減算器3−2は、第1の減算器3−1の減算結果から第3の係数器2−3の乗算結果を減算する。
また、移動平均演算部201は、何れも同様に構成された4個の積分器4−1〜4−4を縦続接続することによって構成される。例えば1段目の積分器4−1は、入力データを1クロック分遅延させるD型フリップフロップ5−1と、当該D型フリップフロップ5−1を通らない元データとD型フリップフロップ5−1を通って遅延を受けた前データとを加算する加算器6−1と、加算結果の振幅を元に戻すための調整器7−1とにより構成される。
この図31に示す基本ローパスフィルタL4a4の構成では、フィルタ係数の乗算が行われる係数器2−1〜2−3およびその係数器2−1〜2−3へのデータの取出口である出力タップが必要なのは、初段のFIR演算部101だけである。しかも、その数はわずか3個である。
さらに、フィルタ係数の値は1/2,2,1/2であるので、係数器2−1〜2−3はビットシフト回路で構成することが可能である。また、4個の積分器4−1〜4−4が備える調整器7−1〜7−4もビットシフト回路で構成することが可能である。nの値を4以外として調整器の数が変わっても、その調整器は全てビットシフト回路で構成できる。よって、基本ローパスフィルタL4anのハードウェア構成において、乗算器は全く不要である。
なお、ここではm=4の場合について説明したが、m=2(iは整数)であれば、全ての係数器と調整器とをビットシフト回路で構成することが可能であり、乗算器は必要でない。
図32は、基本ローパスフィルタLa4(n=4とした場合)のハードウェア構成を示す図である。ここでは、出発点となる数値列は単一の“1”であるので、図31に示した2個のD型フリップフロップ1−1〜1−2、3個の係数器2−1〜2−3および2個の減算器3−1〜3−2は不要である。すなわち、図31に示した後半の4つの積分器4−1〜4−4を縦続接続するだけで基本ローパスフィルタLa4を構成することができる。よって、タップ数は0で、乗算器も全く不要である。
図33は、基本ハイパスフィルタH4s4(m=4,n=4とした場合)のハードウェア構成を示す図である。図33に示すように、基本ハイパスフィルタH4s4は、出発点となる数値列“1/2,2,1/2”をフィルタ係数として持つFIR演算部102と、当該数値列を移動平均演算する移動平均演算部202とを備えて構成される。このうちFIR演算部102は、縦続接続された2個のD型フリップフロップ11−1〜11−2と、3個の係数器12−1〜12−3と、2個の加算器13−1〜13−2とにより構成される。
2個のD型フリップフロップ11−1〜11−2は、入力データを1クロックCKずつ順次遅延させる。3個の係数器12−1〜12−3は、各D型フリップフロップ11−1〜11−2の入出力タップから取り出した信号に対し、1/2,2,1/2のフィルタ係数をそれぞれ乗算する。2個の加算器13−1〜13−2は、各係数器12−1〜12−3の乗算結果を全て加算して出力する。
また、移動平均演算部202は、何れも同様に構成された4個の微分器14−1〜14−4を縦続接続することによって構成される。例えば1段目の微分器14−1は、入力データを1クロック分遅延させるD型フリップフロップ15−1と、当該D型フリップフロップ15−1を通らない元データからD型フリップフロップ15−1を通って遅延を受けた前データを減算する減算器16−1と、減算結果の振幅を元に戻すための調整器17−1とにより構成される。
この図33に示す基本ハイパスフィルタH4s4の構成では、フィルタ係数の乗算が行われる係数器12−1〜12−3およびその係数器12−1〜12−3へのデータの取出口である出力タップが必要なのは、初段のFIR演算部102だけである。しかも、その数はわずか3個である。
さらに、フィルタ係数の値は1/2,2,1/2であるので、係数器12−1〜12−3はビットシフト回路で構成することが可能である。また、4個の微分器14−1〜14−4が備える調整器17−1〜17−4もビットシフト回路で構成することが可能である。nの値を4以外として調整器の数が変わっても、その調整器は全てビットシフト回路で構成できる。よって、基本ハイパスフィルタH4snのハードウェア構成においても、乗算器は全く不要である。
なお、ここではm=4の場合について説明したが、m=2であれば(iは整数)、全ての係数器と調整器とをビットシフト回路で構成することが可能であり、乗算器は必要でない。
図34は、基本ハイパスフィルタHs4(n=4とした場合)のハードウェア構成を示す図である。ここでは、出発点となる数値列は単一の“1”であるので、図33に示した2個のD型フリップフロップ11−1〜11−2、3個の係数器12−1〜12−3および2個の加算器13−1〜13−2は不要である。すなわち、図33に示した後半の4つの微分器14−1〜14−4を縦続接続するだけで基本ハイパスフィルタHs4を構成することができる。よって、タップ数は0で、乗算器も全く不要である。
図35は、基本バンドパスフィルタB4s4(m=4,n=4とした場合)のハードウェア構成を示す図である。図35に示すように、基本バンドパスフィルタB4s4は、出発点となる数値列“1/2,0,2,0,1/2”をフィルタ係数として持つFIR演算部103と、当該数値列を移動平均演算する移動平均演算部203とを備えて構成される。このうちFIR演算部103は、縦続接続された2個のD型フリップフロップ21−1〜21−2と、3個の係数器22−1〜22−3と、2個の加算器23−1〜23−2とにより構成される。
2個のD型フリップフロップ21−1〜21−2は、入力データを2クロックCKずつ順次遅延させる。3個の係数器22−1〜22−3は、各D型フリップフロップ21−1〜21−2の入出力タップから取り出した信号に対し、1/2,2,1/2のフィルタ係数をそれぞれ乗算する。2個の加算器23−1〜23−2は、各係数器22−1〜22−3の乗算結果を全て加算して出力する。
また、移動平均演算部203は、何れも同様に構成された4個の微分器24−1〜24−4を縦続接続することによって構成される。例えば1段目の微分器24−1は、入力データを2クロック分遅延させるD型フリップフロップ25−1と、当該D型フリップフロップ25−1を通らない元データからD型フリップフロップ25−1を通って遅延を受けた前データを減算する減算器26−1と、減算結果の振幅を元に戻すための調整器27−1とにより構成される。
この図35に示す基本バンドパスフィルタB4s4の構成では、フィルタ係数の乗算が行われる係数器22−1〜22−3およびその係数器22−1〜22−3へのデータの取出口である出力タップが必要なのは、初段のFIR演算部102だけである。しかも、その数はわずか3個である。
さらに、フィルタ係数の値は1/2,2,1/2であるので、係数器22−1〜22−3はビットシフト回路で構成することが可能である。また、4個の微分器24−1〜24−4が備える調整器27−1〜27−4もビットシフト回路で構成することが可能である。nの値を4以外として調整器の数が変わっても、その調整器は全てビットシフト回路で構成できる。よって、基本バンドパスフィルタB4snのハードウェア構成においても、乗算器は全く不要である。
なお、ここではm=4の場合について説明したが、m=2(iは整数)であれば、全ての係数器と調整器とをビットシフト回路で構成することが可能であり、乗算器は必要でない。
図36は、基本バンドパスフィルタBs4(n=4とした場合)のハードウェア構成を示す図である。ここでは、出発点となる数値列は単一の“1”であるので、図35に示した2個のD型フリップフロップ21−1〜21−2、3個の係数器22−1〜22−3および2個の加算器23−1〜23−2は不要である。すなわち、図35に示した後半の4つの微分器24−1〜24−4を縦続接続するだけで基本バンドパスフィルタBs4を構成することができる。よって、タップ数は0で、乗算器も全く不要である。
<デジタルフィルタの設計例>
次に、以上に説明した基本フィルタを用いたデジタルフィルタの設計例について説明する。ここでは、以下の目標規格を満足するバンドパスフィルタを設計する場合を例にとって説明する。
中心周波数:450KHz
サンプリング周波数:1.8MHz
帯域外減衰量:−80dB
−3dBのバンド幅:10KHz
図37は、上記目標規格を実現するバンドパスフィルタの回路構成を示す図である。このバンドパスフィルタは、基本ハイパスフィルタH2.4s24(2)と基本ハイパスフィルタH2.4s16(6)とを縦続接続することによって構成している。複数の基本フィルタを適宜組み合わせて縦続接続すると、各特性値どうしが相殺し合って周波数帯域の抜き取りが行われ、所望の周波数特性を実現することが可能となる。
図38は、図37のように構成したバンドパスフィルタの周波数特性を示す図であり、(a)はゲインを対数目盛りで表した全体特性、(b)はゲインを対数目盛りで表した一部拡大特性、(c)はゲインを直線目盛りで表した一部拡大特性を示している。この図38から分かるように、図37のバンドパスフィルタは目標規格を満足している。
図38に示すバンドパスフィルタでは、タップ数はわずか6個で済む。また、各タップ出力にある係数器はビットシフト回路で構成できるので(2.5=2+1/2,6=4+2)、乗算器は不要である。しかも、殆ど同様の回路の繰り返しから成る極めて単純な構成で所望特性のバンドパスフィルタを得ることができる。
図39は、以下の目標規格を満足する他のバンドパスフィルタの構成例を示す図である。
中心周波数:450KHz
サンプリング周波数:1.8MHz
帯域外減衰量:−80dB
−3dBのバンド幅:40KHz
図39に示すバンドバスフィルタは、基本バンドパスフィルタB2.9s16(2)と基本バンドパスフィルタB2.9s16(6)と基本バンドパスフィルタB2.9s16(10)とを縦続接続することによって構成している。なお、m=2.9は、基本単位フィルタの係数“1,0,N”で見るとN=2.5に相当する。そこで、ビットシフトで実現可能な係数値を有する基本単位フィルタを2段縦続接続する形で基本バンドパスフィルタB2.9s16を構成している。
図40は、図39のように構成したバンドパスフィルタの周波数−ゲイン特性を示す図であり、(a)はゲインを対数目盛りで表した全体特性、(b)はゲインを対数目盛りで表した一部拡大特性、(c)はゲインを直線目盛りで表した一部拡大特性を示している。この図40から分かるように、図39のバンドパスフィルタは目標規格を満足している。
なお、図39の例では1倍の係数器も図示しているが、実質的にこれは不要である。したがって、図39に示すバンドパスフィルタで必要なタップ数は、わずか6個である。また、各タップ出力にある係数器はビットシフト回路で構成できるので、乗算器は不要である。しかも、殆ど同様の回路の繰り返しから成る極めて単純な構成で所望特性のバンドパスフィルタを得ることができる。
なお、ここではバンドパスフィルタの設計例についてのみ示したが、基本フィルタの組み合わせ方を変えることにより、所望特性のローパスフィルタやハイパスフィルタ、バンドエリミネーションフィルタ、コムフィルタなども、同一の手法で簡単に設計することができる。
以上詳しく説明したように、本実施形態では、“1,N”または“−1,N”の数値列をフィルタ係数とする基本単位フィルタを偶数個縦続接続して得られる数値列を出発点として、n回の移動平均演算を行うことによって基本フィルタを生成し、1以上の基本フィルタを任意に組み合わせることによって所望の周波数特性を有するデジタルフィルタを設計するようにしたので、以下のようなメリットを有する。
(1)従来のFIRフィルタに比べてタップ数を大幅に削減することができる。また、乗算器も不要である。構成の殆どはD型フリップフロップおよび加減算器となる。したがって、回路素子数を大幅に削減して回路規模を小さくすることができるとともに、消費電力の低減、演算負荷の軽減等を図ることができる。
(2)個々の基本フィルタを縦続接続するハードウェアの形でデジタルフィルタを実装するようにした場合、個々の基本フィルタに必要なタップ数はわずか1〜3個であり、各タップ出力に対して必要なフィルタ係数は何れも単純な数値で、種類も多くない。しかも、同一パターンの繰り返しから成る極めて単純な構成であるので、集積化に際して工数を短縮することができ、IC化を容易にすることができる。
(3)個々の基本フィルタは基本的に乗算器が不要であり、デジタルフィルタを作るに当たってDSPは必要でない。
(4)基本フィルタの組み合わせだけでデジタルフィルタを構成することが可能であり、設計は実際の周波数軸での周波数特性を合成する作業となる。したがって、フィルタ設計が単純で考えやすく、熟練した技術者でなくても、フィルタ設計を極めて簡単に感覚的に行うことができる。
(5)基本フィルタのインパルス応答は有限台の関数となるので、従来のような窓掛けは必要ない。窓掛けを行うことなくフィルタを設計することができるので、周波数特性に打ち切り誤差が生じることはない。したがって、遮断特性の極めて大きな改善が可能となり、位相特性も直線で優れたフィルタ特性を得ることができる。
(6)帯域外減衰量はほぼハードウェアのビット数で制約される。したがって、減衰の深いほぼ一様な帯域外減衰特性を得ることができる。
(7)1以上の基本フィルタを任意に組み合わせて縦続接続する形で算出した数値列をフィルタ係数としてデジタルフィルタに実装する場合も、丸め処理によって不要なフィルタ係数を大幅に削除することにより、従来のFIRフィルタに比べてタップ数を大幅に削減することができる。また、フィルタ係数を整数化することにより、各タップ出力にある係数器はビットシフト回路で構成できるので、乗算器が不要となり、回路素子数を大幅に削減して回路規模を小さくすることができる。
なお、上記実施形態では、図4、図10および図16において、“1”を出発点として移動平均演算を行う例について説明したが、“−1”を出発点としても良い。“−1”を出発点とした場合は、位相特性がπだけシフトするだけで、周波数特性は同一で変化はない。
また、上記実施形態では、基本単位フィルタを2段縦続接続することによってFIR演算部を構成する例について説明したが、4段、6段、8段、・・・のように2段以外の偶数段接続によってFIR演算部を構成するようにしても良い。
その他、上記実施形態は、何れも本発明を実施するにあたっての具体化の一例を示したものに過ぎず、これによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその精神、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
本発明は、複数の遅延器から成るタップ付き遅延線を備え、各タップの出力信号をそれぞれフィルタ係数により数倍した後、それらの乗算結果を加算して出力するタイプのFIRデジタルフィルタに有用である。

Claims (26)

  1. 基本のフィルタ係数を有するFIR型の1以上の基本フィルタを任意に組み合わせて縦続接続した場合のフィルタ係数を算出し、当該算出したフィルタ係数を、求めるデジタルフィルタのフィルタ係数として決定するように成し、
    上記基本のフィルタ係数は、“−1,m,−1”の比率より成る数値列に対して、演算前の元データとそれより所定遅延量だけ前の前データとを加算し振幅調整して出力する移動平均演算をn回繰り返し行うことによって求められる数値列、“1,m,1”の比率より成る数値列に対して、演算前の元データからそれより所定遅延量だけ前の前データを減算し振幅調整して出力する移動平均演算をn回繰り返し行うことによって求められる数値列の少なくとも何れか一方の数値列から成ることを特徴とするデジタルフィルタの設計方法。
  2. 上記“−1,m,−1”もしくは“1,m,1”の比率より成る数値列、または、当該数値列に対して上記移動平均演算をn回繰り返し行った後の数値列の各数値の間にゼロ値を数個ずつ挿入することによってフィルタの通過周波数帯域を調整するようにしたことを特徴とする請求の範囲第1項に記載のデジタルフィルタの設計方法。
  3. 上記“−1,m,−1”の比率の数値列は、上記“−1,m,−1”の数値列を1/(m−2)倍したものであることを特徴とする請求の範囲第1項に記載のデジタルフィルタの設計方法。
  4. 上記“1,m,1”の比率の数値列は、上記“1,m,1”の数値列を1/(m−2)倍したものであることを特徴とする請求の範囲第1項に記載のデジタルフィルタの設計方法。
  5. 上記移動平均演算を繰り返し行う回数nは、8/(m−2)回であることを特徴とする請求の範囲第1項に記載のデジタルフィルタの設計方法。
  6. 上記mの値は、2<m≦10の条件を満たす値であることを特徴とする請求の範囲第5項に記載のデジタルフィルタの設計方法。
  7. 上記基本フィルタを任意に組み合わせて縦続接続した場合の算出結果であるyビットのフィルタ係数に対して下位数ビットを切り捨てる丸め処理を行うことによってxビット(x<y)のフィルタ係数を求めるようにしたことを特徴とする請求の範囲第1項に記載のデジタルフィルタの設計方法。
  8. 上記丸め処理によって求められたxビットのフィルタ係数を2倍して小数点以下を丸める第2の丸め処理を行うことによってフィルタ係数を整数化するようにしたことを特徴とする請求の範囲第7項に記載のデジタルフィルタの設計方法。
  9. “−1,m,−1”の比率より成る数値列に対して、演算前の元データとそれより所定遅延量だけ前の前データとを加算し振幅調整して出力する移動平均演算をn回繰り返し行うことによって求められる数値列から成る基本のフィルタ係数、および、“1,m,1”の比率より成る数値列に対して、演算前の元データからそれより所定遅延量だけ前の前データを減算し振幅調整して出力する移動平均演算をn回繰り返し行うことによって求められる数値列から成る基本のフィルタ係数に関するデータを記憶する基本フィルタ係数記憶手段と、
    上記基本のフィルタ係数を有するFIR型の1以上の基本フィルタを任意に組み合わせて縦続接続した場合のフィルタ係数を、上記基本フィルタ係数記憶手段に記憶されたデータを用いて算出する演算手段とを備えたことを特徴とするデジタルフィルタの設計装置。
  10. 上記演算手段は、上記基本フィルタを任意に組み合わせて縦続接続した場合の算出結果であるyビットのフィルタ係数に対して下位数ビットを切り捨てる丸め処理を行うことによってxビット(x<y)のフィルタ係数を求める手段を更に備えることを特徴とする請求の範囲第9項に記載のデジタルフィルタの設計装置。
  11. 上記演算手段は、上記丸め処理によって求められたxビットのフィルタ係数を2倍して小数点以下を丸める第2の丸め処理を行うことによってフィルタ係数を整数化する手段を更に備えることを特徴とする請求の範囲第10項に記載のデジタルフィルタの設計装置。
  12. 請求の範囲第1項〜第8項の何れか1項に記載されたデジタルフィルタの設計方法に関する処理手順をコンピュータに実行させるためのデジタルフィルタ設計用プログラム。
  13. 請求の範囲第9項〜第11項の何れか1項に記載の各手段としてコンピュータを機能させるためのデジタルフィルタ設計用プログラム。
  14. 請求の範囲第1項〜第8項の何れか1項に記載の設計方法、あるいは、請求の範囲第9項〜第11項の何れか1項に記載の設計装置を用いて算出された数値列をフィルタ係数として持つFIR型のデジタルフィルタ。
  15. 複数の遅延器から成るタップ付き遅延線を備え、各タップの出力信号を、請求の範囲第1項〜第8項の何れか1項に記載の設計方法、あるいは、請求の範囲第9項〜第11項の何れか1項に記載の設計装置を用いて求められたフィルタ係数によりそれぞれ数倍した後、それらの乗算結果を加算して出力するように構成したことを特徴とするデジタルフィルタ。
  16. 複数の遅延器から成るタップ付き遅延線における各タップの出力データを、“−1,m,−1”の比率の数値列より成るフィルタ係数によりそれぞれ数倍した後、それらの乗算結果を加算して出力するように成されたFIR演算部と、
    上記FIR演算部の出力データに対して、演算前の元データとそれより所定遅延量だけ前の前データとを加算し振幅調整して出力する移動平均演算をn回繰り返し行う移動平均演算部とを備えたことを特徴とするデジタルフィルタ。
  17. 複数の遅延器から成るタップ付き遅延線における各タップの出力データを、“1,m,1”の比率の数値列より成るフィルタ係数によりそれぞれ数倍した後、それらの乗算結果を加算して出力するように成されたFIR演算部と、
    上記FIR演算部の出力データに対して、演算前の元データからそれより所定遅延量だけ前の前データを減算し振幅調整して出力する移動平均演算をn回繰り返し行う移動平均演算部とを備えたことを特徴とするデジタルフィルタ。
  18. 基本単位フィルタを偶数段縦続接続して成るFIR演算部であって、当該基本単位フィルタが、複数の遅延器から成るタップ付き遅延線における各タップの出力データを“−1,N”の比率の数値列より成るフィルタ係数によりそれぞれ数倍した後、それらの乗算結果を加算して出力するように成されているFIR演算部と、
    上記FIR演算部の出力データに対して、演算前の元データとそれより所定遅延量だけ前の前データとを加算し振幅調整して出力する移動平均演算をn回繰り返し行う移動平均演算部とを備えたことを特徴とするデジタルフィルタ。
  19. 基本単位フィルタを偶数段縦続接続して成るFIR演算部であって、当該基本単位フィルタが、複数の遅延器から成るタップ付き遅延線における各タップの出力データを“1,N”の比率の数値列より成るフィルタ係数によりそれぞれ数倍した後、それらの乗算結果を加算して出力するように成されているFIR演算部と、
    上記FIR演算部の出力データに対して、演算前の元データからそれより所定遅延量だけ前の前データを減算し振幅調整して出力する移動平均演算をn回繰り返し行う移動平均演算部とを備えたことを特徴とするデジタルフィルタ。
  20. 上記Nの値が0で、上記基本単位フィルタを偶数段縦続接続して成るFIR演算部のフィルタ係数が“1”であることを特徴とする請求の範囲第18項または第19項に記載のデジタルフィルタ。
  21. 上記FIR演算部を構成する遅延器の遅延間隔および上記移動平均演算部を構成する遅延器の遅延間隔を所定量に設定したことを特徴とする請求の範囲第16項〜第20項の何れか1項に記載のデジタルフィルタ。
  22. 請求の範囲第18項に記載のデジタルフィルタ、請求の範囲第19項に記載のデジタルフィルタ、請求の範囲第18項または第19項に記載のデジタルフィルタにおいて上記FIR演算部を構成する遅延器の遅延間隔および上記移動平均演算部を構成する遅延器の遅延間隔を所定量に設定したデジタルフィルタをそれぞれ基本フィルタとし、1以上の基本フィルタを任意に組み合わせてそれらを縦続接続することによって構成したことを特徴とするデジタルフィルタ。
  23. 上記“−1,m,−1”の比率の数値列は、上記“−1,m,−1”の数値列を1/(m−2)倍したものであることを特徴とする請求の範囲第16項に記載のデジタルフィルタ。
  24. 上記“1,m,1”の比率の数値列は、上記“1,m,1”の数値列を1/(m−2)倍したものであることを特徴とする請求の範囲第17項に記載のデジタルフィルタ。
  25. 上記移動平均演算を繰り返し行う回数nは、8/(m−2)回であることを特徴とする請求の範囲第16項または第17項に記載のデジタルフィルタ。
  26. 上記mの値は、2<m≦10の条件を満たす値であることを特徴とする請求の範囲第25項に記載のデジタルフィルタ。
JP2005503011A 2003-03-03 2004-02-23 デジタルフィルタの設計方法および装置、デジタルフィルタ設計用プログラム、デジタルフィルタ Pending JPWO2004079905A1 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2003056265 2003-03-03
JP2003056265 2003-03-03
PCT/JP2004/002070 WO2004079905A1 (ja) 2003-03-03 2004-02-23 デジタルフィルタの設計方法および装置、デジタルフィルタ設計用プログラム、デジタルフィルタ

Publications (1)

Publication Number Publication Date
JPWO2004079905A1 true JPWO2004079905A1 (ja) 2006-06-08

Family

ID=32958694

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005503011A Pending JPWO2004079905A1 (ja) 2003-03-03 2004-02-23 デジタルフィルタの設計方法および装置、デジタルフィルタ設計用プログラム、デジタルフィルタ

Country Status (6)

Country Link
US (1) US20050289206A1 (ja)
EP (1) EP1605590A4 (ja)
JP (1) JPWO2004079905A1 (ja)
CN (1) CN1757162A (ja)
TW (1) TW200501563A (ja)
WO (1) WO2004079905A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4690243B2 (ja) * 2005-05-11 2011-06-01 ティーオーエー株式会社 デジタルフィルタ、周期性騒音低減装置および騒音低減装置
WO2006134688A1 (ja) * 2005-06-16 2006-12-21 Neuro Solution Corp. 補間処理回路
JP2013229677A (ja) * 2012-04-24 2013-11-07 Olympus Corp 画像処理プログラム及び画像処理装置
US9391591B2 (en) * 2014-02-19 2016-07-12 Pentomics, Inc. Optimal factoring of FIR filters
US20190220498A1 (en) * 2018-01-15 2019-07-18 Der-Feng Huang Digital signal processing system and design method thereof
DE102018207604A1 (de) 2018-05-16 2019-11-21 Robert Bosch Gmbh Linearphasiges FIR-Audio-Filter, Erzeugungsverfahren und Signalprozessor
CN116827308B (zh) * 2023-08-24 2023-11-24 上海力通通信有限公司 资源优化型fir滤波器及其实现方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6290017A (ja) * 1985-10-16 1987-04-24 Hitachi Ltd デイジタルロ−ルオフフイルタ
JPH05243908A (ja) * 1991-12-06 1993-09-21 Nec Corp ろ波器
JPH06503450A (ja) * 1990-12-19 1994-04-14 ルンナー,トマス 積の数を減らすことによりディジタルフィルタバンクの電力消費を減らす方法
JPH06326555A (ja) * 1992-12-21 1994-11-25 Sony United Kingdom Ltd サブバンド・フィルタ装置及びその応用
JP2002541706A (ja) * 1999-04-05 2002-12-03 ソニック イノヴェイションズ インコーポレイテッド 多段デシメーション・フィルタ

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0738561B2 (ja) * 1993-02-15 1995-04-26 日本電気株式会社 ディジタルフィルタ回路
KR100299139B1 (ko) * 1997-12-31 2001-11-14 윤종용 데시메이션여파기장치및방법
WO2003023960A1 (fr) * 2001-09-10 2003-03-20 Neuro Solution Corp. Filtre numerique et son procede de conception
JP3899966B2 (ja) * 2002-03-14 2007-03-28 松下電器産業株式会社 ディジタル信号受信装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6290017A (ja) * 1985-10-16 1987-04-24 Hitachi Ltd デイジタルロ−ルオフフイルタ
JPH06503450A (ja) * 1990-12-19 1994-04-14 ルンナー,トマス 積の数を減らすことによりディジタルフィルタバンクの電力消費を減らす方法
JPH05243908A (ja) * 1991-12-06 1993-09-21 Nec Corp ろ波器
JPH06326555A (ja) * 1992-12-21 1994-11-25 Sony United Kingdom Ltd サブバンド・フィルタ装置及びその応用
JP2002541706A (ja) * 1999-04-05 2002-12-03 ソニック イノヴェイションズ インコーポレイテッド 多段デシメーション・フィルタ

Also Published As

Publication number Publication date
EP1605590A4 (en) 2008-04-02
US20050289206A1 (en) 2005-12-29
EP1605590A1 (en) 2005-12-14
TW200501563A (en) 2005-01-01
WO2004079905A1 (ja) 2004-09-16
CN1757162A (zh) 2006-04-05

Similar Documents

Publication Publication Date Title
JPWO2006048958A1 (ja) デジタルフィルタおよびその設計方法、設計装置、デジタルフィルタ設計用プログラム
US7529788B2 (en) Digital filter design method and device, digital filter design program, and digital filter
JPH11261376A (ja) 少ない乗算器によるディジタルiirフィルタ
US20070053420A1 (en) Method, apparatus, and program for designing digital filters
US11263293B2 (en) Digital sample rate conversion
Stošić et al. Design of selective CIC filter functions
JP4300272B2 (ja) デジタルフィルタおよびその設計方法
US20050289206A1 (en) Digital filter design method and device, digital filter design program, digital filter
US20060218213A1 (en) Optimization technique for FIR and IIR filter design
US7590675B2 (en) Digital filter, design method thereof, design device, and digital filter design program
JPWO2004036747A1 (ja) デジタルフィルタの設計方法および装置、デジタルフィルタ設計用プログラム、デジタルフィルタ
JP2003168958A (ja) デジタルフィルタの設計方法および設計装置、デジタルフィルタ設計用プログラム、デジタルフィルタ
JPWO2004036746A1 (ja) デジタルフィルタの設計方法および装置、デジタルフィルタ設計用プログラム、デジタルフィルタ
JPWO2004008637A1 (ja) デジタルフィルタの設計方法、デジタルフィルタ設計用プログラム、デジタルフィルタ
JPWO2007102611A1 (ja) 補間関数生成回路
JPWO2005104365A1 (ja) デジタルフィルタの設計方法および設計装置、デジタルフィルタ設計用プログラム、デジタルフィルタ、所望周波数特性の数値列の生成方法および生成装置、所望周波数特性の数値列生成用プログラム
US20050171988A1 (en) Digital filter design method and device, digital filter design program, and digital filter
JP2005020554A (ja) デジタルフィルタ
Mottaghi-Kashtiban et al. FIR filters involving shifts and only two additions, efficient for short word-length signal processing
US20050120067A1 (en) Digital filter designing method, digital filter designing program, digital filter
JPWO2003096534A1 (ja) 音質調整装置の設計方法および設計装置、音質調整装置設計用プログラム、音質調整装置
Aydin et al. FPGA Implementation of Multichannel FIR Filters
JPH10150344A (ja) 再帰型デジタルフィルタ
JP2001339277A (ja) ディジタルfirフィルタ

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070131

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070131

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20090319

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091110

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100323