JP2005020554A - デジタルフィルタ - Google Patents
デジタルフィルタ Download PDFInfo
- Publication number
- JP2005020554A JP2005020554A JP2003184862A JP2003184862A JP2005020554A JP 2005020554 A JP2005020554 A JP 2005020554A JP 2003184862 A JP2003184862 A JP 2003184862A JP 2003184862 A JP2003184862 A JP 2003184862A JP 2005020554 A JP2005020554 A JP 2005020554A
- Authority
- JP
- Japan
- Prior art keywords
- moving average
- output
- processing unit
- filter
- input
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03H—IMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
- H03H17/00—Networks using digital techniques
- H03H17/02—Frequency selective networks
- H03H17/06—Non-recursive filters
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03H—IMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
- H03H17/00—Networks using digital techniques
- H03H17/02—Frequency selective networks
- H03H17/0223—Computation saving measures; Accelerating measures
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Filters That Use Time-Delay Elements (AREA)
- Cable Transmission Systems, Equalization Of Radio And Reduction Of Echo (AREA)
Abstract
【課題】良好な周波数特性を実現するFIRフィルタを極めて小さいハードウェア規模で構成できるようにする。
【解決手段】入力データとそれより所定遅延量だけ前の前データとを加算器13で加算もしくは減算し、その結果をシフト演算器14で振幅調整して出力するといった移動平均演算をm倍周波数のクロックm*ckに従って時分割多重でm回繰り返し行う多重処理部1−1,1−2,・・・,1−nをn段縦続接続し、入力データに対してシンプルな移動平均演算を繰り返し行う構成によってFIRフィルタ10を構成することにより、従来はタップ付遅延線の各タップ出力に対してフィルタ係数を乗算するために必要であった乗算器を無くすことができるようにするとともに、m回の移動平均演算を時分割多重で行うことによって加算器の使用数も大幅に削減できるようにする。
【選択図】 図1
【解決手段】入力データとそれより所定遅延量だけ前の前データとを加算器13で加算もしくは減算し、その結果をシフト演算器14で振幅調整して出力するといった移動平均演算をm倍周波数のクロックm*ckに従って時分割多重でm回繰り返し行う多重処理部1−1,1−2,・・・,1−nをn段縦続接続し、入力データに対してシンプルな移動平均演算を繰り返し行う構成によってFIRフィルタ10を構成することにより、従来はタップ付遅延線の各タップ出力に対してフィルタ係数を乗算するために必要であった乗算器を無くすことができるようにするとともに、m回の移動平均演算を時分割多重で行うことによって加算器の使用数も大幅に削減できるようにする。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
本発明はデジタルフィルタに関し、特に、FIRフィルタの改良技術に関するものである。
【0002】
【従来の技術】
デジタルフィルタの1つの形態として、FIR(Finite Impulse Response:有限長インパルス応答)フィルタが存在する。このFIRフィルタは、複数の遅延器から成るタップ付き遅延線を備え、各タップの出力信号をそれぞれフィルタ係数により数倍した後、それらの乗算結果を加算して出力するタイプのフィルタであり、次のような利点を持つ。第1に、FIRフィルタの伝達関数の極はz平面の原点のみにあるため、回路は常に安定である。第2に、フィルタ係数が対称型であれば、完全に正確な直線位相特性を実現することができる。
【0003】
このFIRフィルタは、有限時間長で表されるインパルス応答がそのままフィルタ係数となっている。したがって、FIRフィルタを設計するということは、希望の周波数特性が得られるようにフィルタ係数を決定するということである。従来、FIRフィルタを設計する際には、目標とする周波数特性に基づき無限インパルス応答を求め、これに所謂“窓掛け”を行うことによって有限個のフィルタ係数を決定していた。
【0004】
図12は、従来のFIRフィルタの構成を示す図である。この図12に示すように、タップ数(フィルタ係数の数)がN個のFIRフィルタでは、縦続接続された(N−1)個のD型フリップフロップ101−1〜101−(N−1)の入出力タップから取り出したN個の信号に対し、N個の乗算器102−1〜102−Nでフィルタ係数をそれぞれ乗算し、それらの乗算結果をすべて(N−1)個の加算器103−1〜103−(N−1)で加算する。
【0005】
【発明が解決しようとする課題】
上記図12に示したように、タップ数がN個のFIRフィルタをハードウェアで構成するためには、N個の乗算器と(N−1)個の加算器とが必要である。フィルタ係数の対称性を利用して回路構成を合理化しても、{(N−1)/2+1}個の乗算器と(N−1)個の加算器とが必要である。
【0006】
FIRフィルタの設計で窓掛けを行うのは、無限インパルス応答によるフィルタ係数をそのまま用いると、タップ数が膨大となり、非常に多くの乗算器および加算器を設けなければならなくなってしまうからである。ただし、目標とする周波数特性にできるだけ近い特性を得るためには、窓掛けによってフィルタ係数を無闇に減らすことができず、タップ数Nは多くならざるを得なかった。
【0007】
これに伴い、従来のFIRフィルタはハードウェア規模が非常に大きくなってしまうという問題があった。そのため、回路規模を比較的小さくできるIIR(Infinite Impulse Response:無限長インパルス応答)が用いられることも多かったが、IIRフィルタの場合にはFIRフィルタに比べて位相特性が悪くなってしまうという問題があった。
【0008】
本発明は、このような問題を解決するために成されたものであり、良好な周波数特性を実現するFIRフィルタを極めて小さいハードウェア規模で構成できるようにすることを目的とする。
【0009】
【課題を解決するための手段】
本発明によるデジタルフィルタは、入力データとそれより所定遅延量だけ前の前データとを加算もしくは減算し振幅調整して出力する移動平均演算をm回繰り返し行う移動平均演算回路を備え、上記移動平均演算回路をn段縦続接続して構成したことを特徴とする。
【0010】
本発明の他の態様では、上記移動平均演算回路は、上記振幅調整の結果を次段に出力するか自身の入力データとしてフィードバックするかの切り替えを行う出力処理部と、外部からのデータを入力するか上記出力処理部からフィードバックされたデータを入力するかの切り替えを行う入力処理部とを備え、上記m回の移動平均演算を時分割多重処理により行うようにしたことを特徴とする。
【0011】
本発明の他の態様では、上記n段の移動平均演算回路の周波数振幅特性において極大値をとる位置に接点を有し、当該接点において極小値をとる補正用の周波数振幅特性を実現する波形調整回路を更に備え、上記n段の移動平均演算回路に対して上記波形調整回路を縦続接続して構成したことを特徴とする。
【0012】
本発明の他の態様では、上記波形調整回路は、縦続接続された複数の遅延回路と、上記複数の遅延回路の入出力タップに接続された複数の係数器と、上記複数の係数器の出力段に接続された複数の加算器とを備えて構成されることを特徴とする。
【0013】
本発明の他の態様では、2組の上記遅延回路の入出力タップに3個の上記係数器を接続し、上記入出力タップの出力データに対して係数a,b,aを乗算するとともに、上記3個の係数器の出力段に接続された2個の加算器で上記乗算の結果を加減算して出力するように構成し、上記係数a,b,aを |b|−|2a|=1 の関係が成り立つように設定した(例えば、a=0.5、b=2)ことを特徴とする。
【0014】
【発明の実施の形態】
本発明者は、時間軸上のインパルス応答と周波数軸上の周波数特性との関係において、インパルス応答の畳み込みが周波数応答の積算となる点に着目し、特願2003−56265号に記載のフィルタ設計法を既に提案した。これは、有限インパルス応答を有する基本フィルタを周波数軸上で合成し、係数演算により阻止域の傾斜、通過域の帯域幅および通過域の平坦度を調整する手法である。
【0015】
この手法を簡単に説明すると、次の通りである。まず、所定の基本的な数値列より成るフィルタ係数に基づきFIR演算を行う。その後、その演算データに対して、演算前の元データとそれより所定遅延量だけ前の前データとを加算し振幅調整して出力する移動平均演算を複数回繰り返し行うことによってフィルタ係数を求める。この手法によれば、窓掛けの必要がなく、減衰特性に優れ位相の直線性も有する良好なフィルタ特性を得ることが可能である。
【0016】
これに対して、本実施形態では、この特願2003−56265号に記載の手法を更に一般化し、最もシンプルな移動平均の繰り返しを行う構成とすることにより、FIRフィルタから乗算器を無くすことを可能とした。また、この移動平均演算により生成されるオリジナル波形に対して補正波形による調整を行う構成を採用することにより、乗算器なしで通過域の帯域幅を調整することを可能とした。さらに、移動平均演算部に特殊な時分割多重処理を適用することにより、回路構成上で大きな面積を占める加算器を削減することも可能とした。
【0017】
以下に、本実施形態の詳細を説明する。図1は、本実施形態によるFIRフィルタ10の全体構成例を示す図である。図1に示すように、本実施形態のFIRフィルタ10は、移動平均演算処理部1および波形調整部2を備えて構成されている。移動平均演算処理部1は、n段(n≧1)の多重処理部1−1,1−2,・・・,1−nを備えて構成されている。
【0018】
個々の多重処理部1−1,1−2,・・・,1−nの内部は、データのスイッチ機能を備えた入力処理部11、複数のD型フリップフロップが縦続接続された遅延処理部12、加算器13、シフト演算器14、データのスイッチ機能を備えた出力処理部15により構成されている。各多重処理部1−1,1−2,・・・,1−nが備える遅延処理部12の遅延量M1,M2,・・・Mnは、全て同じでも構わないが、ここでは異なっているものとする。
【0019】
波形調整部2は、基準周波数のクロックckに従って動作する。これに対して多重処理部1−1,1−2,・・・,1−n内の遅延処理部12は、基準クロックckに比べて周波数がm倍(m≧1)のクロックm・ck(以下では一例としてm=4とする)に従って動作する。
【0020】
図1では、入力処理部11および遅延処理部12の構成を簡略化して図示している。これらの詳細な構成例を、次の図2および図3を用いて説明する。
図2は、1段目の多重処理部1−1について遅延処理部12の構成を詳細に示した図である。
【0021】
図2に示すように、遅延処理部12は、複数(この例では9個)のD型フリップフロップを縦続接続して構成されている。これらのD型フリップフロップは、基準クロックckの4倍の周波数を有する4倍クロック4ckに従って動作し、入力データを当該4倍クロック4ckに相当する時間ずつ順次遅延させて伝搬していく。
【0022】
1段目のD型フリップフロップD11の出力タップと、最終段のD型フリップフロップD31の出力タップとが、それぞれ加算器13の入力端に接続されている。加算器13は、1段目のD型フリップフロップD11の出力データから、最終段のD型フリップフロップD31の出力データを減算し、その結果をシフト演算器14に供給する。
【0023】
シフト演算器14は、加算器13からの出力データを1/2倍して振幅を調整する。ここでは1/2倍の乗算を行っているが、これはビットシフトで対応することができる。シフト演算器14から出力されるデータは、出力処理部15によりスイッチングされて、あるタイミングでは次段の多重処理部1−2に供給され、あるタイミングでは入力処理部11にフィードバックされる。入力処理部11および出力処理部15は、以下に説明する切替クロックck1に従って同期してスイッチング動作する。
【0024】
図3は、入力処理部11の詳細な構成例を示す図である。また、図4は、基準クロックck、4倍クロック4ck、切替クロックck1を示すタイミングチャートである。図3に示すように、本実施形態の入力処理部11は、D型フリップフロップ21と、インバータ22と、ANDゲート23,24と、ORゲート25とを備えて構成されている。
【0025】
D型フリップフロップ21は、入力データを切替クロックck1の時間分だけ保持して出力する。切替クロックck1は、図4に示すように、4倍クロック4ckの4クロックに1回の割合で1サイクル期間中ONとなるクロックである。この切替クロックck1は、一方のANDゲート23の入力端に供給されるとともに、インバータ22を介して他方のANDゲート24の入力端に供給される。
【0026】
一方のANDゲート23は、切替クロックck1の他にD型フリップフロップ21の出力データを入力し、切替クロックck1がONの期間中にD型フリップフロップ21の出力データを通過させる。他方のANDゲート24は、インバータ22を通過した切替クロックck1の他に出力処理部15の出力データをフィードバック入力し、切替クロックck1がOFFの期間中に当該フィードバックデータを通過させる。ORゲート25は、2つのANDゲート23,24から出力されるデータの何れかを通過させ、1段目のD型フリップフロップD11に供給する。
【0027】
図2の出力処理部15におけるスイッチング動作は、入力処理部11におけるスイッチング動作と同期して行われる。すなわち、出力処理部15は、切替クロックck1がONの期間中は、シフト演算器14の出力データを次段の多重処理部1−2に供給するようにスイッチング動作する。一方、切替クロックck1がOFFの期間中は、シフト演算器14の出力データを入力処理部11にフィードバックするようにスイッチング動作する。
【0028】
以上のように1段目の多重処理部1−1を構成することにより、4つの4倍クロック4ck中で切替クロックck1がONとなる1サイクル期間中は、外部入力データが1段目のD型フリップフロップD11に供給されるとともに、シフト演算器14の出力データが次段の多重処理部1−2に供給される。また、切替クロックck1がOFFとなる残りの3サイクル期間中は、シフト演算器14の出力データが1段目のD型フリップフロップD11にフィードバック入力される。
【0029】
このような構成により、多重処理部1−1では、4倍クロック4ckの下で移動平均演算を4回繰り返し行うことができる。通常、4回の移動平均演算を行うには、加算器と乗算器とが4個ずつ必要になる。これに対して、本実施形態の多重処理部1−1によれば、加算器13と乗算器(シフト演算器14)とが1個ずつで済み、使用数を1/4に削減することができる。しかも、1/2倍の乗算はビットシフト演算で実現できるので、乗算器は全く不要である。
【0030】
図5は、図2に示す多重処理部1−1に対して振幅“1”のインパルス信号を入力した場合の動作を示す図である。図5において、縦軸は4倍クロック4ckのサイクルを示し、横軸は遅延処理部12を構成する各D型フリップフロップのデータ保持状態を示す。この図5からも分かるように、多重処理部1−1では、4クロックごとに1個のデータを入力するとともに1個の移動平均演算データを出力し、その間に4回の移動平均演算を繰り返し行っている。
【0031】
図5において、一番右の列に示した出力データの数値列{0.0625,0,−0.25,0,0.375,0,−0.25,0,0.0625}が、4回の移動平均演算を繰り返し行った結果得られるフィルタ係数を示している。このフィルタ係数は、{0.5,0,0.5}のフィルタ係数を有する基本フィルタを4段縦続接続したものと等価であり、ハイパスフィルタの周波数特性を実現する。なお、このことの詳細は、特願2003−56265号に記載されている。
【0032】
以下、基準クロックckで1クロック分(=4倍クロック4ckで4クロック分)の遅延量をdとした場合、遅延処理部12の初段と最終段との間に遅延量dを有する多重処理部で構成されるハイパスフィルタを“H0d”で表すこととする。遅延量がdの下で移動平均演算を4回繰り返し行う場合、使用するD型フリップフロップの数は{4(d+1)+1}個となる。
【0033】
また、初段と最終段との間に挿入する遅延量をdとすることにより、周波数振幅特性の周波数軸(周波数方向に対する周期)は1/dとなる。よって、遅延量dを変えることにより、フィルタの通過帯域を調整することが可能である。
【0034】
なお、図2に示した多重処理部1−1は、基準クロックckで見た場合に初段となるD型フリップフロップD11〜D14と、最終段となるD型フリップフロップD31との間に、基準クロックckで1クロック分の遅延量(d=1)に相当するD型フリップフロップD21〜D24を備えているから、ハイパスフィルタH01と表すことができる。
【0035】
2段目以降の多重処理部1−2,・・・,1−nについても、1段目の多重処理部1−1と同様に構成する。ただし、上述したように遅延処理部12の遅延量(D型フリップフロップの使用数)は、それぞれの段ごとに異ならせても良い。また、加算器13において、初段のD型フリップフロップの出力データと最終段のD型フリップフロップの出力データとを加算するようにしても良い。加算を行うようにした場合、4回の移動平均演算によって得られるフィルタ係数は、ローパスフィルタの周波数特性を実現するものとなる。
【0036】
例えば、図2に示した多重処理部1−1の構成で、加算器13において減算ではなく加算を行うようにすると、多重処理部1−1は、{−0.5,0,−0.5}のフィルタ係数を有する基本フィルタを4段縦続接続したものと等価となり、ローパスフィルタの周波数特性を実現することができる。この場合は、ローパスフィルタL01と表すこととする。
【0037】
一例として、多重処理部1−1,1−2,・・・,1−nを6段構成にし(n=6)、H01*L03*H05*L07*H09*L011のように多重処理部1−1,1−2,・・・,1−6を縦続接続する。このように、ハイパスフィルタとローパスフィルタとを適当に組み合わせて縦続接続することにより、それぞれの周波数特性が掛け合わされて、減衰特性の良好なバンドパスフィルタが生成される。
【0038】
次に、波形調整部2について説明する。図6は、波形調整部2の詳細な構成例を示す図である。また、図7は、波形調整部2の動作を説明するための周波数特性図である。
【0039】
図7中に符号Aで示す波形は、移動平均演算処理部1によって実現されるオリジナルフィルタ(初段の多重処理部1−1に振幅“1”のインパルス信号を入力した場合に最終段の多重処理部1−nから出力される数値列をフィルタ係数として持つデジタルフィルタ)の周波数振幅特性を示している。ここでは、オリジナルフィルタの周波数振幅特性においてゲインが“1”で基準化(正規化)されている。
【0040】
このようなオリジナル波形の周波数振幅特性に対して、図7中の符号Bで示すような補正波形の周波数振幅特性をさらに掛け合わせることにより、阻止域(通過域から遮断域に変化する部分)の傾斜、通過帯域幅を調整することができる。すなわち、図7中に符号Cで示す波形のように、傾斜を急峻にするとともに、通過帯域幅を広くすることができる。
【0041】
図7中の符号Bで示す補正波形の周波数振幅特性は、オリジナル波形の周波数振幅特性において極大値をとる位置に接点を有し、当該接点において極小値をとるように成されたものである。図6は、このような補正波形の周波数振幅特性を実現するための構成例を示している。
【0042】
図6に示すように、波形調整部2は、縦続接続された2組のD型フリップフロップ31−1〜31−2(本発明の遅延回路に相当)と、各D型フリップフロップ31−1〜31−2の入出力タップに接続された3個の係数器32−1〜32−3と、これら3個の係数器32−1〜32−3の出力段に接続された2個の加算器33−1〜33−2とを備えて構成されている。
【0043】
2組のD型フリップフロップ31−1〜31−2は、入力データ(移動平均演算処理部1からの出力データ)を基準クロックckに従ってkクロック分ずつ順次遅延させる。ここでの遅延量kは、最終段の多重処理部1−nから出力される数値列のうち、各フィルタ係数の間に挿入されている“0”の数と同数程度で調整した適当な値とする。
【0044】
3個の係数器32−1〜32−3は、各D型フリップフロップ31−1〜31−2の入出力タップから取り出したデータに対して、それぞれ1/2,2,1/2の係数を乗算する。なお、ここでは1/2倍および2倍の乗算を行っているが、何れもビットシフトで対応することができる。
【0045】
第1の加算器33−1は、第2の係数器32−2の乗算結果から第1の係数器32−1の乗算結果を減算する。また、第2の加算器33−2は、第1の加算器33−1の減算結果から第3の係数器32−3の乗算結果を減算して出力する。このような構成により、図7中のオリジナル波形Aに対して補正波形Bを掛け合わせて結果波形Cを得ることができる。
【0046】
なお、上記3個の係数器32−1〜32−3が持つ係数値は、単なる一例を示したに過ぎない。第1および第3の係数器32−1,32−3が持つ係数値をa、第2の係数器32−2が持つ係数値bとした場合、|b|−|2a|=1の関係が成り立つように設定すれば、周波数振幅特性の極小値は常に“1”となり、その極小値がオリジナルフィルタの周波数振幅特性の極大値(これも“1”に基準化されている)と接するようにできる。
【0047】
係数値a,bを変えると、補正波形Bの傾斜や振幅が変わる。これにより、係数値a,bとして適当な値を設定することにより、結果波形Cの阻止域の傾斜や通過帯域幅を微調整することができる。ただし、係数値a,bは2のべき乗とするのが好ましい。2のべき乗とすれば、係数器32−1〜32−3をシフト演算器で構成できるからである。
【0048】
また、ここでは、移動平均演算処理部1に対して1個の波形調整部2を縦続接続する場合について説明しているが、複数の波形調整部2を縦続接続するようにしても良い。図8は、移動平均演算処理部1(オリジナルフィルタ)の周波数振幅特性およびこの移動平均演算処理部1に対して1〜3個の波形調整部2を縦続接続した場合に得られる周波数振幅特性を示す図である。
【0049】
図8において、41はオリジナルフィルタの周波数振幅特性、42は波形調整部2を1個縦続接続した場合に得られる周波数振幅特性、43は波形調整部2を2個縦続接続した場合に得られる周波数振幅特性、44は波形調整部2を3個縦続接続した場合に得られる周波数振幅特性をそれぞれ示す。
【0050】
この図8に示すように、移動平均演算処理部1に対して接続する波形調整部2の段数を多くすることにより、通過帯域幅がより広くて阻止域の傾斜もより急峻なフィルタ特性を得ることができる。
【0051】
図9は、複数の波形調整部2を縦続接続した場合に得られる周波数特性の変化の原理を説明するための図である。なお、この図9は基本原理を説明するためのものであり、図7に示した周波数特性の波形と一致するものではない。
【0052】
図9(a)は、移動平均演算処理部1に対して1個目の波形調整部2を縦続接続した場合における周波数振幅特性の変化を示す。図9(a)において、Aは移動平均演算処理部1の周波数振幅特性、Bは1個目の波形調整部2の周波数振幅特性、Cは移動平均演算処理部1と1個目の波形調整部2とを縦続接続した場合に得られる周波数振幅特性を示す。
【0053】
すなわち、移動平均演算処理部1に対して波形調整部2を1個縦続接続した場合の新たな周波数振幅特性Cは、移動平均演算処理部1の周波数振幅特性Aと、波形調整部2の周波数振幅特性Bとを掛け合わせた形となる。
【0054】
図9(b)は、2個目の波形調整部2を更に縦続接続した場合における周波数振幅特性の変化を示す。図9(b)において、A’は1個目の波形調整部2を縦続接続した場合の周波数振幅特性であり、図9(a)で求められた周波数振幅特性Cと同じものである。Bは2個目の波形調整部2の周波数振幅特性であり、図9(a)中のものと同じである。C’は2個目の波形調整部2を更に縦続接続した場合に得られる新たな周波数振幅特性であり、2つの周波数振幅特性A’,Bを掛け合わせた形のものとなっている。
【0055】
一例として、H01*L03*H05*L07*H09*L011のように6個の多重処理部1−1,1−2,・・・,1−6を縦続接続して移動平均演算処理部1を構成するとともに、これに1個の波形調整部2を接続してFIRフィルタ10を構成する。この場合は、波形調整部2から図10に示すような107タップ分のフィルタ係数が出力されることとなる。
【0056】
図11は、この107タップのフィルタ係数をFFT(高速フーリエ変換)した場合に得られる周波数特性を示す図である。このうち、図11(a)はゲインを直線目盛りで表した周波数振幅特性、図11(b)はゲインを対数目盛りで表した周波数振幅特性、図11(c)は位相特性を示している。この図11から分かるように、遮断域での減衰量が70dB以上で、直線的な位相特性も有する極めて良好なバンドパスフィルタを得ることができている。
【0057】
しかも、本実施形態のFIRフィルタ10では、このように良好な周波数特性を実現するためのハードウェア構成として必要な乗算器および加算器の数は、極めて少なくて済む。すなわち、移動平均演算処理部1や波形調整部2において乗算を行ってはいるが、その係数は全て2のべき乗で表されるので、シフト演算で済み、乗算器は全く不要である。また、加算器は6段の多重処理部1−1,1−2,・・・,1−6に1個ずつと波形調整部2に2個との合計8個だけで済む。
【0058】
従来のFIRフィルタにおいては、107タップを実現するためには、係数の対称性を利用して合理化しても乗算器が54個、加算器が106個必要であった。これに対して、本実施形態では移動平均演算の繰り返しによってフィルタ係数を求めるようにしているので、乗算器は0個とすることができる。さらに、移動平均演算を時分割多重処理で行っているので、加算器をわずか8個に減らすことができる。これにより、全体として回路規模を大幅に小さくすることができる。しかも、本実施形態のFIRフィルタ10は設計が極めて容易で、窓掛けも必要としない。
【0059】
以上詳しく説明したように、本実施形態によれば、タップ付遅延線の各タップ出力に対してフィルタ係数を乗算するタイプの一般的なFIRフィルタの構成ではなく、シンプルな移動平均演算を繰り返し行う移動平均演算処理部1を用いてFIRフィルタ10を構成したので、従来は各タップ出力に対してフィルタ係数を乗算するために必要であった乗算器を全て無くすことができる。すなわち、移動平均演算の際には、振幅調整のために乗算を行う必要があるが、その乗算はビットシフト演算で実現することができる。したがって、移動平均演算処理部1において乗算器を全く不要とすることができる。
【0060】
また、本実施形態では、移動平均演算処理部1を多重処理部1−1,1−2,・・・,1−nで構成し、4倍クロック4ckの下で4回の移動平均演算を時分割多重で行うようにしている。したがって、移動平均演算を行う際に必要な加算器の使用数も、通常の移動平均演算を行う場合に比べて1/4に削減することができる。これにより、移動平均演算処理部1の回路規模を格段に小さくすることができる。
【0061】
さらに、本実施形態では、周波数特性の波形調整用に波形調整部2を設けているが、これについても全ての乗算はビットシフト演算で実現することができる。よって、この波形調整部2においても乗算器は全く不要とすることができる。したがって、移動平均演算処理部1と波形調整部2とを合わせたFIRフィルタ10の全体として見ても、乗算器の使用数は0、加算器の使用数もほんのわずかで済み、極めて小さいハードウェア規模で、良好な周波数特性を有するFIRフィルタ10を構成することができる。
【0062】
なお、上記実施形態では、波形調整部2を設けているが、これは本発明において必須の構成ではない。すなわち、本実施形態のデジタルフィルタを用いる電子機器の用途によって、移動平均演算処理部1により実現される周波数特性で目標とする特性が達成できる場合には、波形調整部2は設ける必要がない。波形調整部2は、移動平均演算処理部1により実現される周波数特性では通過帯域幅が狭い場合や阻止域の傾斜が不十分であるような場合に、任意段数接続すれば良い。
【0063】
その他、上記実施形態は、何れも本発明を実施するにあたっての具体化の一例を示したものに過ぎず、これによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその精神、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
【0064】
【発明の効果】
以上説明したように本発明によれば、入力データに対してシンプルな移動平均演算を繰り返し行う構成によってFIRフィルタを構成したので、FIRフィルタから乗算器を無くすことができる。また、移動平均演算に特殊な時分割多重処理を適用したので、加算器の使用数も大幅に削減することができる。これにより、窓関数を用いることなく、良好な周波数特性を有するFIRフィルタを極めて小さなハードウェア規模で構成することができる。
【図面の簡単な説明】
【図1】本実施形態によるFIRフィルタの全体構成例を示す図である。
【図2】1段目の多重処理部について遅延処理部の構成を詳細に示した図である。
【図3】入力処理部の詳細な構成例を示す図である。
【図4】本実施形態で用いる各クロックを示すタイミングチャートである。
【図5】1段目の多重処理部に振幅“1”のインパルス信号を入力した場合の動作を示す図である。
【図6】波形調整部の詳細な構成例を示す図である。
【図7】波形調整部の動作を説明するための周波数特性図である。
【図8】移動平均演算処理部の周波数振幅特性およびこの移動平均演算処理部に対して1〜3個の波形調整部を縦続接続した場合に得られる周波数振幅特性を示す図である。
【図9】複数の波形調整部を縦続接続した場合に得られる周波数特性の変化の原理を説明するための図である。
【図10】本実施形態のFIRフィルタを構成する107タップのフィルタ係数を示す図である。
【図11】本実施形態によるFIRフィルタの周波数特性を示す図である。
【図12】従来のFIRフィルタの構成を示す図である。
【符号の説明】
1 移動平均演算処理部
1−1〜1−n 多重処理部
2 波形調整部
10 FIRフィルタ
11 入力処理部
12 遅延処理部
13 加算器
14 シフト演算器
15 出力処理部
21 D型フリップフロップ
22 インバータ
23,24 ANDゲート
25 ORゲート
31−1〜31−2 D型フリップフロップ
32−1〜32−3 係数器
33−1〜33−2 加算器
【発明の属する技術分野】
本発明はデジタルフィルタに関し、特に、FIRフィルタの改良技術に関するものである。
【0002】
【従来の技術】
デジタルフィルタの1つの形態として、FIR(Finite Impulse Response:有限長インパルス応答)フィルタが存在する。このFIRフィルタは、複数の遅延器から成るタップ付き遅延線を備え、各タップの出力信号をそれぞれフィルタ係数により数倍した後、それらの乗算結果を加算して出力するタイプのフィルタであり、次のような利点を持つ。第1に、FIRフィルタの伝達関数の極はz平面の原点のみにあるため、回路は常に安定である。第2に、フィルタ係数が対称型であれば、完全に正確な直線位相特性を実現することができる。
【0003】
このFIRフィルタは、有限時間長で表されるインパルス応答がそのままフィルタ係数となっている。したがって、FIRフィルタを設計するということは、希望の周波数特性が得られるようにフィルタ係数を決定するということである。従来、FIRフィルタを設計する際には、目標とする周波数特性に基づき無限インパルス応答を求め、これに所謂“窓掛け”を行うことによって有限個のフィルタ係数を決定していた。
【0004】
図12は、従来のFIRフィルタの構成を示す図である。この図12に示すように、タップ数(フィルタ係数の数)がN個のFIRフィルタでは、縦続接続された(N−1)個のD型フリップフロップ101−1〜101−(N−1)の入出力タップから取り出したN個の信号に対し、N個の乗算器102−1〜102−Nでフィルタ係数をそれぞれ乗算し、それらの乗算結果をすべて(N−1)個の加算器103−1〜103−(N−1)で加算する。
【0005】
【発明が解決しようとする課題】
上記図12に示したように、タップ数がN個のFIRフィルタをハードウェアで構成するためには、N個の乗算器と(N−1)個の加算器とが必要である。フィルタ係数の対称性を利用して回路構成を合理化しても、{(N−1)/2+1}個の乗算器と(N−1)個の加算器とが必要である。
【0006】
FIRフィルタの設計で窓掛けを行うのは、無限インパルス応答によるフィルタ係数をそのまま用いると、タップ数が膨大となり、非常に多くの乗算器および加算器を設けなければならなくなってしまうからである。ただし、目標とする周波数特性にできるだけ近い特性を得るためには、窓掛けによってフィルタ係数を無闇に減らすことができず、タップ数Nは多くならざるを得なかった。
【0007】
これに伴い、従来のFIRフィルタはハードウェア規模が非常に大きくなってしまうという問題があった。そのため、回路規模を比較的小さくできるIIR(Infinite Impulse Response:無限長インパルス応答)が用いられることも多かったが、IIRフィルタの場合にはFIRフィルタに比べて位相特性が悪くなってしまうという問題があった。
【0008】
本発明は、このような問題を解決するために成されたものであり、良好な周波数特性を実現するFIRフィルタを極めて小さいハードウェア規模で構成できるようにすることを目的とする。
【0009】
【課題を解決するための手段】
本発明によるデジタルフィルタは、入力データとそれより所定遅延量だけ前の前データとを加算もしくは減算し振幅調整して出力する移動平均演算をm回繰り返し行う移動平均演算回路を備え、上記移動平均演算回路をn段縦続接続して構成したことを特徴とする。
【0010】
本発明の他の態様では、上記移動平均演算回路は、上記振幅調整の結果を次段に出力するか自身の入力データとしてフィードバックするかの切り替えを行う出力処理部と、外部からのデータを入力するか上記出力処理部からフィードバックされたデータを入力するかの切り替えを行う入力処理部とを備え、上記m回の移動平均演算を時分割多重処理により行うようにしたことを特徴とする。
【0011】
本発明の他の態様では、上記n段の移動平均演算回路の周波数振幅特性において極大値をとる位置に接点を有し、当該接点において極小値をとる補正用の周波数振幅特性を実現する波形調整回路を更に備え、上記n段の移動平均演算回路に対して上記波形調整回路を縦続接続して構成したことを特徴とする。
【0012】
本発明の他の態様では、上記波形調整回路は、縦続接続された複数の遅延回路と、上記複数の遅延回路の入出力タップに接続された複数の係数器と、上記複数の係数器の出力段に接続された複数の加算器とを備えて構成されることを特徴とする。
【0013】
本発明の他の態様では、2組の上記遅延回路の入出力タップに3個の上記係数器を接続し、上記入出力タップの出力データに対して係数a,b,aを乗算するとともに、上記3個の係数器の出力段に接続された2個の加算器で上記乗算の結果を加減算して出力するように構成し、上記係数a,b,aを |b|−|2a|=1 の関係が成り立つように設定した(例えば、a=0.5、b=2)ことを特徴とする。
【0014】
【発明の実施の形態】
本発明者は、時間軸上のインパルス応答と周波数軸上の周波数特性との関係において、インパルス応答の畳み込みが周波数応答の積算となる点に着目し、特願2003−56265号に記載のフィルタ設計法を既に提案した。これは、有限インパルス応答を有する基本フィルタを周波数軸上で合成し、係数演算により阻止域の傾斜、通過域の帯域幅および通過域の平坦度を調整する手法である。
【0015】
この手法を簡単に説明すると、次の通りである。まず、所定の基本的な数値列より成るフィルタ係数に基づきFIR演算を行う。その後、その演算データに対して、演算前の元データとそれより所定遅延量だけ前の前データとを加算し振幅調整して出力する移動平均演算を複数回繰り返し行うことによってフィルタ係数を求める。この手法によれば、窓掛けの必要がなく、減衰特性に優れ位相の直線性も有する良好なフィルタ特性を得ることが可能である。
【0016】
これに対して、本実施形態では、この特願2003−56265号に記載の手法を更に一般化し、最もシンプルな移動平均の繰り返しを行う構成とすることにより、FIRフィルタから乗算器を無くすことを可能とした。また、この移動平均演算により生成されるオリジナル波形に対して補正波形による調整を行う構成を採用することにより、乗算器なしで通過域の帯域幅を調整することを可能とした。さらに、移動平均演算部に特殊な時分割多重処理を適用することにより、回路構成上で大きな面積を占める加算器を削減することも可能とした。
【0017】
以下に、本実施形態の詳細を説明する。図1は、本実施形態によるFIRフィルタ10の全体構成例を示す図である。図1に示すように、本実施形態のFIRフィルタ10は、移動平均演算処理部1および波形調整部2を備えて構成されている。移動平均演算処理部1は、n段(n≧1)の多重処理部1−1,1−2,・・・,1−nを備えて構成されている。
【0018】
個々の多重処理部1−1,1−2,・・・,1−nの内部は、データのスイッチ機能を備えた入力処理部11、複数のD型フリップフロップが縦続接続された遅延処理部12、加算器13、シフト演算器14、データのスイッチ機能を備えた出力処理部15により構成されている。各多重処理部1−1,1−2,・・・,1−nが備える遅延処理部12の遅延量M1,M2,・・・Mnは、全て同じでも構わないが、ここでは異なっているものとする。
【0019】
波形調整部2は、基準周波数のクロックckに従って動作する。これに対して多重処理部1−1,1−2,・・・,1−n内の遅延処理部12は、基準クロックckに比べて周波数がm倍(m≧1)のクロックm・ck(以下では一例としてm=4とする)に従って動作する。
【0020】
図1では、入力処理部11および遅延処理部12の構成を簡略化して図示している。これらの詳細な構成例を、次の図2および図3を用いて説明する。
図2は、1段目の多重処理部1−1について遅延処理部12の構成を詳細に示した図である。
【0021】
図2に示すように、遅延処理部12は、複数(この例では9個)のD型フリップフロップを縦続接続して構成されている。これらのD型フリップフロップは、基準クロックckの4倍の周波数を有する4倍クロック4ckに従って動作し、入力データを当該4倍クロック4ckに相当する時間ずつ順次遅延させて伝搬していく。
【0022】
1段目のD型フリップフロップD11の出力タップと、最終段のD型フリップフロップD31の出力タップとが、それぞれ加算器13の入力端に接続されている。加算器13は、1段目のD型フリップフロップD11の出力データから、最終段のD型フリップフロップD31の出力データを減算し、その結果をシフト演算器14に供給する。
【0023】
シフト演算器14は、加算器13からの出力データを1/2倍して振幅を調整する。ここでは1/2倍の乗算を行っているが、これはビットシフトで対応することができる。シフト演算器14から出力されるデータは、出力処理部15によりスイッチングされて、あるタイミングでは次段の多重処理部1−2に供給され、あるタイミングでは入力処理部11にフィードバックされる。入力処理部11および出力処理部15は、以下に説明する切替クロックck1に従って同期してスイッチング動作する。
【0024】
図3は、入力処理部11の詳細な構成例を示す図である。また、図4は、基準クロックck、4倍クロック4ck、切替クロックck1を示すタイミングチャートである。図3に示すように、本実施形態の入力処理部11は、D型フリップフロップ21と、インバータ22と、ANDゲート23,24と、ORゲート25とを備えて構成されている。
【0025】
D型フリップフロップ21は、入力データを切替クロックck1の時間分だけ保持して出力する。切替クロックck1は、図4に示すように、4倍クロック4ckの4クロックに1回の割合で1サイクル期間中ONとなるクロックである。この切替クロックck1は、一方のANDゲート23の入力端に供給されるとともに、インバータ22を介して他方のANDゲート24の入力端に供給される。
【0026】
一方のANDゲート23は、切替クロックck1の他にD型フリップフロップ21の出力データを入力し、切替クロックck1がONの期間中にD型フリップフロップ21の出力データを通過させる。他方のANDゲート24は、インバータ22を通過した切替クロックck1の他に出力処理部15の出力データをフィードバック入力し、切替クロックck1がOFFの期間中に当該フィードバックデータを通過させる。ORゲート25は、2つのANDゲート23,24から出力されるデータの何れかを通過させ、1段目のD型フリップフロップD11に供給する。
【0027】
図2の出力処理部15におけるスイッチング動作は、入力処理部11におけるスイッチング動作と同期して行われる。すなわち、出力処理部15は、切替クロックck1がONの期間中は、シフト演算器14の出力データを次段の多重処理部1−2に供給するようにスイッチング動作する。一方、切替クロックck1がOFFの期間中は、シフト演算器14の出力データを入力処理部11にフィードバックするようにスイッチング動作する。
【0028】
以上のように1段目の多重処理部1−1を構成することにより、4つの4倍クロック4ck中で切替クロックck1がONとなる1サイクル期間中は、外部入力データが1段目のD型フリップフロップD11に供給されるとともに、シフト演算器14の出力データが次段の多重処理部1−2に供給される。また、切替クロックck1がOFFとなる残りの3サイクル期間中は、シフト演算器14の出力データが1段目のD型フリップフロップD11にフィードバック入力される。
【0029】
このような構成により、多重処理部1−1では、4倍クロック4ckの下で移動平均演算を4回繰り返し行うことができる。通常、4回の移動平均演算を行うには、加算器と乗算器とが4個ずつ必要になる。これに対して、本実施形態の多重処理部1−1によれば、加算器13と乗算器(シフト演算器14)とが1個ずつで済み、使用数を1/4に削減することができる。しかも、1/2倍の乗算はビットシフト演算で実現できるので、乗算器は全く不要である。
【0030】
図5は、図2に示す多重処理部1−1に対して振幅“1”のインパルス信号を入力した場合の動作を示す図である。図5において、縦軸は4倍クロック4ckのサイクルを示し、横軸は遅延処理部12を構成する各D型フリップフロップのデータ保持状態を示す。この図5からも分かるように、多重処理部1−1では、4クロックごとに1個のデータを入力するとともに1個の移動平均演算データを出力し、その間に4回の移動平均演算を繰り返し行っている。
【0031】
図5において、一番右の列に示した出力データの数値列{0.0625,0,−0.25,0,0.375,0,−0.25,0,0.0625}が、4回の移動平均演算を繰り返し行った結果得られるフィルタ係数を示している。このフィルタ係数は、{0.5,0,0.5}のフィルタ係数を有する基本フィルタを4段縦続接続したものと等価であり、ハイパスフィルタの周波数特性を実現する。なお、このことの詳細は、特願2003−56265号に記載されている。
【0032】
以下、基準クロックckで1クロック分(=4倍クロック4ckで4クロック分)の遅延量をdとした場合、遅延処理部12の初段と最終段との間に遅延量dを有する多重処理部で構成されるハイパスフィルタを“H0d”で表すこととする。遅延量がdの下で移動平均演算を4回繰り返し行う場合、使用するD型フリップフロップの数は{4(d+1)+1}個となる。
【0033】
また、初段と最終段との間に挿入する遅延量をdとすることにより、周波数振幅特性の周波数軸(周波数方向に対する周期)は1/dとなる。よって、遅延量dを変えることにより、フィルタの通過帯域を調整することが可能である。
【0034】
なお、図2に示した多重処理部1−1は、基準クロックckで見た場合に初段となるD型フリップフロップD11〜D14と、最終段となるD型フリップフロップD31との間に、基準クロックckで1クロック分の遅延量(d=1)に相当するD型フリップフロップD21〜D24を備えているから、ハイパスフィルタH01と表すことができる。
【0035】
2段目以降の多重処理部1−2,・・・,1−nについても、1段目の多重処理部1−1と同様に構成する。ただし、上述したように遅延処理部12の遅延量(D型フリップフロップの使用数)は、それぞれの段ごとに異ならせても良い。また、加算器13において、初段のD型フリップフロップの出力データと最終段のD型フリップフロップの出力データとを加算するようにしても良い。加算を行うようにした場合、4回の移動平均演算によって得られるフィルタ係数は、ローパスフィルタの周波数特性を実現するものとなる。
【0036】
例えば、図2に示した多重処理部1−1の構成で、加算器13において減算ではなく加算を行うようにすると、多重処理部1−1は、{−0.5,0,−0.5}のフィルタ係数を有する基本フィルタを4段縦続接続したものと等価となり、ローパスフィルタの周波数特性を実現することができる。この場合は、ローパスフィルタL01と表すこととする。
【0037】
一例として、多重処理部1−1,1−2,・・・,1−nを6段構成にし(n=6)、H01*L03*H05*L07*H09*L011のように多重処理部1−1,1−2,・・・,1−6を縦続接続する。このように、ハイパスフィルタとローパスフィルタとを適当に組み合わせて縦続接続することにより、それぞれの周波数特性が掛け合わされて、減衰特性の良好なバンドパスフィルタが生成される。
【0038】
次に、波形調整部2について説明する。図6は、波形調整部2の詳細な構成例を示す図である。また、図7は、波形調整部2の動作を説明するための周波数特性図である。
【0039】
図7中に符号Aで示す波形は、移動平均演算処理部1によって実現されるオリジナルフィルタ(初段の多重処理部1−1に振幅“1”のインパルス信号を入力した場合に最終段の多重処理部1−nから出力される数値列をフィルタ係数として持つデジタルフィルタ)の周波数振幅特性を示している。ここでは、オリジナルフィルタの周波数振幅特性においてゲインが“1”で基準化(正規化)されている。
【0040】
このようなオリジナル波形の周波数振幅特性に対して、図7中の符号Bで示すような補正波形の周波数振幅特性をさらに掛け合わせることにより、阻止域(通過域から遮断域に変化する部分)の傾斜、通過帯域幅を調整することができる。すなわち、図7中に符号Cで示す波形のように、傾斜を急峻にするとともに、通過帯域幅を広くすることができる。
【0041】
図7中の符号Bで示す補正波形の周波数振幅特性は、オリジナル波形の周波数振幅特性において極大値をとる位置に接点を有し、当該接点において極小値をとるように成されたものである。図6は、このような補正波形の周波数振幅特性を実現するための構成例を示している。
【0042】
図6に示すように、波形調整部2は、縦続接続された2組のD型フリップフロップ31−1〜31−2(本発明の遅延回路に相当)と、各D型フリップフロップ31−1〜31−2の入出力タップに接続された3個の係数器32−1〜32−3と、これら3個の係数器32−1〜32−3の出力段に接続された2個の加算器33−1〜33−2とを備えて構成されている。
【0043】
2組のD型フリップフロップ31−1〜31−2は、入力データ(移動平均演算処理部1からの出力データ)を基準クロックckに従ってkクロック分ずつ順次遅延させる。ここでの遅延量kは、最終段の多重処理部1−nから出力される数値列のうち、各フィルタ係数の間に挿入されている“0”の数と同数程度で調整した適当な値とする。
【0044】
3個の係数器32−1〜32−3は、各D型フリップフロップ31−1〜31−2の入出力タップから取り出したデータに対して、それぞれ1/2,2,1/2の係数を乗算する。なお、ここでは1/2倍および2倍の乗算を行っているが、何れもビットシフトで対応することができる。
【0045】
第1の加算器33−1は、第2の係数器32−2の乗算結果から第1の係数器32−1の乗算結果を減算する。また、第2の加算器33−2は、第1の加算器33−1の減算結果から第3の係数器32−3の乗算結果を減算して出力する。このような構成により、図7中のオリジナル波形Aに対して補正波形Bを掛け合わせて結果波形Cを得ることができる。
【0046】
なお、上記3個の係数器32−1〜32−3が持つ係数値は、単なる一例を示したに過ぎない。第1および第3の係数器32−1,32−3が持つ係数値をa、第2の係数器32−2が持つ係数値bとした場合、|b|−|2a|=1の関係が成り立つように設定すれば、周波数振幅特性の極小値は常に“1”となり、その極小値がオリジナルフィルタの周波数振幅特性の極大値(これも“1”に基準化されている)と接するようにできる。
【0047】
係数値a,bを変えると、補正波形Bの傾斜や振幅が変わる。これにより、係数値a,bとして適当な値を設定することにより、結果波形Cの阻止域の傾斜や通過帯域幅を微調整することができる。ただし、係数値a,bは2のべき乗とするのが好ましい。2のべき乗とすれば、係数器32−1〜32−3をシフト演算器で構成できるからである。
【0048】
また、ここでは、移動平均演算処理部1に対して1個の波形調整部2を縦続接続する場合について説明しているが、複数の波形調整部2を縦続接続するようにしても良い。図8は、移動平均演算処理部1(オリジナルフィルタ)の周波数振幅特性およびこの移動平均演算処理部1に対して1〜3個の波形調整部2を縦続接続した場合に得られる周波数振幅特性を示す図である。
【0049】
図8において、41はオリジナルフィルタの周波数振幅特性、42は波形調整部2を1個縦続接続した場合に得られる周波数振幅特性、43は波形調整部2を2個縦続接続した場合に得られる周波数振幅特性、44は波形調整部2を3個縦続接続した場合に得られる周波数振幅特性をそれぞれ示す。
【0050】
この図8に示すように、移動平均演算処理部1に対して接続する波形調整部2の段数を多くすることにより、通過帯域幅がより広くて阻止域の傾斜もより急峻なフィルタ特性を得ることができる。
【0051】
図9は、複数の波形調整部2を縦続接続した場合に得られる周波数特性の変化の原理を説明するための図である。なお、この図9は基本原理を説明するためのものであり、図7に示した周波数特性の波形と一致するものではない。
【0052】
図9(a)は、移動平均演算処理部1に対して1個目の波形調整部2を縦続接続した場合における周波数振幅特性の変化を示す。図9(a)において、Aは移動平均演算処理部1の周波数振幅特性、Bは1個目の波形調整部2の周波数振幅特性、Cは移動平均演算処理部1と1個目の波形調整部2とを縦続接続した場合に得られる周波数振幅特性を示す。
【0053】
すなわち、移動平均演算処理部1に対して波形調整部2を1個縦続接続した場合の新たな周波数振幅特性Cは、移動平均演算処理部1の周波数振幅特性Aと、波形調整部2の周波数振幅特性Bとを掛け合わせた形となる。
【0054】
図9(b)は、2個目の波形調整部2を更に縦続接続した場合における周波数振幅特性の変化を示す。図9(b)において、A’は1個目の波形調整部2を縦続接続した場合の周波数振幅特性であり、図9(a)で求められた周波数振幅特性Cと同じものである。Bは2個目の波形調整部2の周波数振幅特性であり、図9(a)中のものと同じである。C’は2個目の波形調整部2を更に縦続接続した場合に得られる新たな周波数振幅特性であり、2つの周波数振幅特性A’,Bを掛け合わせた形のものとなっている。
【0055】
一例として、H01*L03*H05*L07*H09*L011のように6個の多重処理部1−1,1−2,・・・,1−6を縦続接続して移動平均演算処理部1を構成するとともに、これに1個の波形調整部2を接続してFIRフィルタ10を構成する。この場合は、波形調整部2から図10に示すような107タップ分のフィルタ係数が出力されることとなる。
【0056】
図11は、この107タップのフィルタ係数をFFT(高速フーリエ変換)した場合に得られる周波数特性を示す図である。このうち、図11(a)はゲインを直線目盛りで表した周波数振幅特性、図11(b)はゲインを対数目盛りで表した周波数振幅特性、図11(c)は位相特性を示している。この図11から分かるように、遮断域での減衰量が70dB以上で、直線的な位相特性も有する極めて良好なバンドパスフィルタを得ることができている。
【0057】
しかも、本実施形態のFIRフィルタ10では、このように良好な周波数特性を実現するためのハードウェア構成として必要な乗算器および加算器の数は、極めて少なくて済む。すなわち、移動平均演算処理部1や波形調整部2において乗算を行ってはいるが、その係数は全て2のべき乗で表されるので、シフト演算で済み、乗算器は全く不要である。また、加算器は6段の多重処理部1−1,1−2,・・・,1−6に1個ずつと波形調整部2に2個との合計8個だけで済む。
【0058】
従来のFIRフィルタにおいては、107タップを実現するためには、係数の対称性を利用して合理化しても乗算器が54個、加算器が106個必要であった。これに対して、本実施形態では移動平均演算の繰り返しによってフィルタ係数を求めるようにしているので、乗算器は0個とすることができる。さらに、移動平均演算を時分割多重処理で行っているので、加算器をわずか8個に減らすことができる。これにより、全体として回路規模を大幅に小さくすることができる。しかも、本実施形態のFIRフィルタ10は設計が極めて容易で、窓掛けも必要としない。
【0059】
以上詳しく説明したように、本実施形態によれば、タップ付遅延線の各タップ出力に対してフィルタ係数を乗算するタイプの一般的なFIRフィルタの構成ではなく、シンプルな移動平均演算を繰り返し行う移動平均演算処理部1を用いてFIRフィルタ10を構成したので、従来は各タップ出力に対してフィルタ係数を乗算するために必要であった乗算器を全て無くすことができる。すなわち、移動平均演算の際には、振幅調整のために乗算を行う必要があるが、その乗算はビットシフト演算で実現することができる。したがって、移動平均演算処理部1において乗算器を全く不要とすることができる。
【0060】
また、本実施形態では、移動平均演算処理部1を多重処理部1−1,1−2,・・・,1−nで構成し、4倍クロック4ckの下で4回の移動平均演算を時分割多重で行うようにしている。したがって、移動平均演算を行う際に必要な加算器の使用数も、通常の移動平均演算を行う場合に比べて1/4に削減することができる。これにより、移動平均演算処理部1の回路規模を格段に小さくすることができる。
【0061】
さらに、本実施形態では、周波数特性の波形調整用に波形調整部2を設けているが、これについても全ての乗算はビットシフト演算で実現することができる。よって、この波形調整部2においても乗算器は全く不要とすることができる。したがって、移動平均演算処理部1と波形調整部2とを合わせたFIRフィルタ10の全体として見ても、乗算器の使用数は0、加算器の使用数もほんのわずかで済み、極めて小さいハードウェア規模で、良好な周波数特性を有するFIRフィルタ10を構成することができる。
【0062】
なお、上記実施形態では、波形調整部2を設けているが、これは本発明において必須の構成ではない。すなわち、本実施形態のデジタルフィルタを用いる電子機器の用途によって、移動平均演算処理部1により実現される周波数特性で目標とする特性が達成できる場合には、波形調整部2は設ける必要がない。波形調整部2は、移動平均演算処理部1により実現される周波数特性では通過帯域幅が狭い場合や阻止域の傾斜が不十分であるような場合に、任意段数接続すれば良い。
【0063】
その他、上記実施形態は、何れも本発明を実施するにあたっての具体化の一例を示したものに過ぎず、これによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその精神、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
【0064】
【発明の効果】
以上説明したように本発明によれば、入力データに対してシンプルな移動平均演算を繰り返し行う構成によってFIRフィルタを構成したので、FIRフィルタから乗算器を無くすことができる。また、移動平均演算に特殊な時分割多重処理を適用したので、加算器の使用数も大幅に削減することができる。これにより、窓関数を用いることなく、良好な周波数特性を有するFIRフィルタを極めて小さなハードウェア規模で構成することができる。
【図面の簡単な説明】
【図1】本実施形態によるFIRフィルタの全体構成例を示す図である。
【図2】1段目の多重処理部について遅延処理部の構成を詳細に示した図である。
【図3】入力処理部の詳細な構成例を示す図である。
【図4】本実施形態で用いる各クロックを示すタイミングチャートである。
【図5】1段目の多重処理部に振幅“1”のインパルス信号を入力した場合の動作を示す図である。
【図6】波形調整部の詳細な構成例を示す図である。
【図7】波形調整部の動作を説明するための周波数特性図である。
【図8】移動平均演算処理部の周波数振幅特性およびこの移動平均演算処理部に対して1〜3個の波形調整部を縦続接続した場合に得られる周波数振幅特性を示す図である。
【図9】複数の波形調整部を縦続接続した場合に得られる周波数特性の変化の原理を説明するための図である。
【図10】本実施形態のFIRフィルタを構成する107タップのフィルタ係数を示す図である。
【図11】本実施形態によるFIRフィルタの周波数特性を示す図である。
【図12】従来のFIRフィルタの構成を示す図である。
【符号の説明】
1 移動平均演算処理部
1−1〜1−n 多重処理部
2 波形調整部
10 FIRフィルタ
11 入力処理部
12 遅延処理部
13 加算器
14 シフト演算器
15 出力処理部
21 D型フリップフロップ
22 インバータ
23,24 ANDゲート
25 ORゲート
31−1〜31−2 D型フリップフロップ
32−1〜32−3 係数器
33−1〜33−2 加算器
Claims (6)
- 入力データとそれより所定遅延量だけ前の前データとを加算もしくは減算し振幅調整して出力する移動平均演算をm回繰り返し行う移動平均演算回路を備え、
上記移動平均演算回路をn段縦続接続して構成したことを特徴とするデジタルフィルタ。 - 上記移動平均演算回路は、上記振幅調整の結果を次段に出力するか自身の入力データとしてフィードバックするかの切り替えを行う出力処理部と、
外部からのデータを入力するか上記出力処理部からフィードバックされたデータを入力するかの切り替えを行う入力処理部とを備え、
上記m回の移動平均演算を時分割多重処理により行うようにしたことを特徴とする請求項1に記載のデジタルフィルタ。 - 上記n段の移動平均演算回路の周波数振幅特性において極大値をとる位置に接点を有し、当該接点において極小値をとる補正用の周波数振幅特性を実現する波形調整回路を更に備え、
上記n段の移動平均演算回路に対して上記波形調整回路を縦続接続して構成したことを特徴とする請求項1または2に記載のデジタルフィルタ。 - 上記波形調整回路は、縦続接続された複数の遅延回路と、
上記複数の遅延回路の入出力タップに接続された複数の係数器と、
上記複数の係数器の出力段に接続された複数の加算器とを備えて構成されることを特徴とする請求項3に記載のデジタルフィルタ。 - 2組の上記遅延回路の入出力タップに3個の上記係数器を接続し、上記入出力タップの出力データに対して係数a,b,aを乗算するとともに、上記3個の係数器の出力段に接続された2個の加算器で上記乗算の結果を加減算して出力するように構成し、
上記係数a,b,aを |b|−|2a|=1 の関係が成り立つように設定したことを特徴とする請求項4に記載のデジタルフィルタ。 - a=0.5、b=2であることを特徴とする請求項5に記載のデジタルフィルタ。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003184862A JP2005020554A (ja) | 2003-06-27 | 2003-06-27 | デジタルフィルタ |
TW093105937A TW200501564A (en) | 2003-06-27 | 2004-03-05 | Digital filter |
PCT/JP2004/003690 WO2005002051A1 (ja) | 2003-06-27 | 2004-03-18 | デジタルフィルタ |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003184862A JP2005020554A (ja) | 2003-06-27 | 2003-06-27 | デジタルフィルタ |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005020554A true JP2005020554A (ja) | 2005-01-20 |
Family
ID=33549631
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003184862A Pending JP2005020554A (ja) | 2003-06-27 | 2003-06-27 | デジタルフィルタ |
Country Status (3)
Country | Link |
---|---|
JP (1) | JP2005020554A (ja) |
TW (1) | TW200501564A (ja) |
WO (1) | WO2005002051A1 (ja) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008070644A2 (en) | 2006-12-04 | 2008-06-12 | Aloka Co., Ltd. | Method and apparatus for implementing finite impulse response filters without the use of multipliers |
JP2010237215A (ja) * | 2008-04-07 | 2010-10-21 | Seiko Epson Corp | 周波数測定装置及び測定方法 |
JP2010271210A (ja) * | 2009-05-22 | 2010-12-02 | Seiko Epson Corp | 周波数測定装置 |
US8510589B2 (en) * | 2008-08-29 | 2013-08-13 | Intel Mobile Communications GmbH | Apparatus and method using first and second clocks |
JP2016111593A (ja) * | 2014-12-09 | 2016-06-20 | ローム株式会社 | オーディオ信号処理回路、車載用オーディオ装置、オーディオコンポーネント装置、電子機器 |
CN113381730A (zh) * | 2021-05-19 | 2021-09-10 | 浙江传媒学院 | 一种鲁棒性自适应滤波系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3316594B2 (ja) * | 1992-07-13 | 2002-08-19 | 富士通株式会社 | 波形等化器 |
JPH0697773A (ja) * | 1992-09-16 | 1994-04-08 | Matsushita Electric Ind Co Ltd | デジタルフィルタ装置 |
US6408318B1 (en) * | 1999-04-05 | 2002-06-18 | Xiaoling Fang | Multiple stage decimation filter |
JP2002368584A (ja) * | 2001-06-06 | 2002-12-20 | Sony Corp | ディジタルフィルタおよびそれを用いたディジタルビデオエンコーダ |
-
2003
- 2003-06-27 JP JP2003184862A patent/JP2005020554A/ja active Pending
-
2004
- 2004-03-05 TW TW093105937A patent/TW200501564A/zh unknown
- 2004-03-18 WO PCT/JP2004/003690 patent/WO2005002051A1/ja not_active Application Discontinuation
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008070644A2 (en) | 2006-12-04 | 2008-06-12 | Aloka Co., Ltd. | Method and apparatus for implementing finite impulse response filters without the use of multipliers |
EP2097759A2 (en) * | 2006-12-04 | 2009-09-09 | Aloka Co. Ltd. | Method and apparatus for implementing finite impulse response filters without the use of multipliers |
EP2097759A4 (en) * | 2006-12-04 | 2013-04-03 | Aloka Co Ltd | METHOD AND DEVICE FOR IMPLEMENTING FILES WITH FINITER IMPULSE RESPONSE WITHOUT USING MULTIPLICATORS |
JP2010237215A (ja) * | 2008-04-07 | 2010-10-21 | Seiko Epson Corp | 周波数測定装置及び測定方法 |
US8510589B2 (en) * | 2008-08-29 | 2013-08-13 | Intel Mobile Communications GmbH | Apparatus and method using first and second clocks |
JP2010271210A (ja) * | 2009-05-22 | 2010-12-02 | Seiko Epson Corp | 周波数測定装置 |
JP2016111593A (ja) * | 2014-12-09 | 2016-06-20 | ローム株式会社 | オーディオ信号処理回路、車載用オーディオ装置、オーディオコンポーネント装置、電子機器 |
CN113381730A (zh) * | 2021-05-19 | 2021-09-10 | 浙江传媒学院 | 一种鲁棒性自适应滤波系统 |
Also Published As
Publication number | Publication date |
---|---|
WO2005002051A1 (ja) | 2005-01-06 |
TW200501564A (en) | 2005-01-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7411525B2 (en) | Sampling rate converting method and circuit | |
US7529788B2 (en) | Digital filter design method and device, digital filter design program, and digital filter | |
JPWO2006048958A1 (ja) | デジタルフィルタおよびその設計方法、設計装置、デジタルフィルタ設計用プログラム | |
JPH0828649B2 (ja) | ディジタルフィルタ | |
JP4300272B2 (ja) | デジタルフィルタおよびその設計方法 | |
JP2002158561A (ja) | Firフィルタ及びそのデータ処理方法 | |
JP2005020554A (ja) | デジタルフィルタ | |
EP1557947A1 (en) | Digital filter design method and device, digital filter design program, and digital filter | |
EP1626499A1 (en) | Digital filter, design method thereof, design device, and digital filter design program | |
US6486813B1 (en) | Oversampling circuit digital/analog converter | |
JP2885121B2 (ja) | ディジタルフィルタ | |
JPH0865107A (ja) | ディジタル補間フィルタ回路 | |
JPWO2007102611A1 (ja) | 補間関数生成回路 | |
EP1557946A1 (en) | Digital filter design method and device, digital filter design program, and digital filter | |
JPWO2004079905A1 (ja) | デジタルフィルタの設計方法および装置、デジタルフィルタ設計用プログラム、デジタルフィルタ | |
JP3090043B2 (ja) | ディジタル補間フィルタ回路 | |
JPH08162906A (ja) | ディジタル信号処理装置 | |
US20050171988A1 (en) | Digital filter design method and device, digital filter design program, and digital filter | |
JP3141523B2 (ja) | 有限インパルス応答フィルタ装置 | |
JPH0590897A (ja) | オーバーサンプリングフイルタ回路 | |
JP4243473B2 (ja) | Firディジタルフィルタ | |
KR100464013B1 (ko) | 저면적/저전력 적응형 디지털 필터 | |
JP2004128858A (ja) | Firデジタルフィルタ | |
JP2001339277A (ja) | ディジタルfirフィルタ | |
Alle et al. | Implementation of two parallel FIR filter structure using LUT less DA |