(57)【要約】【課題】入力された信号の周波数を低い周波数に変換するために用いられるデシメーションフィルタに関し、ハードウェアの増大を招くことなく任意のデシメーション比に容易に対応可能なフィルタ構成を提供することを目的とする。【解決手段】乗算器２１とアキュムレータ２２とからなる複数の演算装置２０と、フィルタ係数を格納し、演算装置と対応する複数の係数メモリ（リングメモリ３０、シフトレジスタ３１）と、クロックに同期して複数の演算装置２０の出力を順次選択的に出力するセレクタ１３とを備え、デシメーション比をｎとした場合、複数の係数メモリからは順次ｎ個ずつずれたフィルタ係数を読み出し、演算装置２０の乗算器２１において信号と乗算を行い、アキュムレータ２２において累算して出力することを特徴とする。【選択図】図１
2008124593.tif 000002
【特許請求の範囲】
【請求項１】
乗算器とアキュムレータとからなる複数の演算装置と、
フィルタ係数を格納し、前記演算装置と対応する複数の係数メモリと、
クロックに同期して前記複数の演算装置の出力を順次選択的に出力するセレクタとを備え、
デシメーション比をｎとした場合、前記複数の係数メモリからは順次ｎ個ずつずれたフィルタ係数を読み出し、前記演算装置の乗算器において信号と乗算を行い、前記アキュムレータにおいて累算して出力することを特徴とするデシメーションフィルタ。
【請求項２】
前記複数の係数メモリは、
あらかじめ計算された全てのフィルタ係数を格納し、クロックに同期して順次巡回的に読み出すリングメモリと、
前記リングメモリにカスケードに接続された複数のシフトレジスタとからなり、
前記シフトレジスタは、デシメーション比をｎとした場合にｎ個のフィルタ係数を格納しうる容量を備え、前記リングメモリから読み出したフィルタ係数を前記複数のシフトレジスタに順次ずらしながら保存および読み出すことを特徴とする請求項１記載のデシメーションフィルタ。
【請求項３】
前記演算装置の数は、フィルタ係数の数をデシメーション比で除算した値と等しいか、または前記除算した値より大きな整数値であることを特徴とする請求項１記載のデシメーションフィルタ。
【請求項４】
前記係数メモリに格納するフィルタ係数の数は、前記演算装置の数とデシメーション比とを乗算した数と等しいかまたは少ないことを特徴とする請求項１記載のデシメーションフィルタ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、信号の周波数を所定比の低い周波数に変換するデシメーションフィルタに関する。
【背景技術】
【０００２】
信号処理を行うに際し、所定のサンプリング周波数でサンプルされた信号のサンプリングレートを変化させる必要が生じる場合がある。周波数を上げるシステムをインタポレータ（補間器：interpolator）と呼び、周波数を下げるシステムをデシメータ（間引き器：decimator）と呼ぶ。本発明は、デシメータに関するものである。
【０００３】
デシメータでは、データに対してフィルタリング処理を行った後、データを間引くことで実現する。フィルタリング処理は、低い周波数にダウンサンプリングする際に、その低い周波数の１／２の周波数（ナイキスト周波数）よりも高い成分が含まれていると折り返しひずみ（エリアジング成分）が生じてしまうことから、周波数帯域をナイキスト周波数以下に制限するために行う。このフィルタリング処理に用いるフィルタを、デシメーションフィルタと呼ぶ。
【０００４】
デシメータを原理通りに実現すればアナログ信号を介さずにサンプリングレートを変換できるが、ダウンサンプリング前に高レートでフィルタリングを行わなくてならないことの処理負担、理想フィルタを使用できないことなどの問題点がある。そこで伝達関数Ｈ（ｚ）をデシメーション比Ｍに相当する複数のフィルタ係数のグループに分割して演算処理することが行われる。このようなフィルタ構成のことをポリフェーズ構成と呼び、このような構成のフィルタのことをポリフェーズフィルタと呼ぶ。
【０００５】
ポリフェーズ構成における各フィルタの係数は、もとのフィルタ係数からＭ個おきに係数を取りだしたものである。そして、各フィルタにデータを入力する前にダウンサンプリングを実施することで、フィルタの動作スピードをダウンサンプリング後の低レートで動作させることができ、効率的なフィルタを構成することが可能となる。
【０００６】
図４はポリフェーズ構成で実現されるデシメータの例を示す図である。図において入力側５０から高いサンプリング周波数Ｆｓで入力された信号は、出力側５１から低いサンプリング周波数Ｆｄで出力される。遅延素子５２は、信号を１／Ｆｓ周期（１周波数分）だけ遅延させるシフトレジスタである。図において[↓Ｄ]で示されるダウンサンプラ５３は、入力信号をデシメーション比Ｍにダウンサンプリングする。ポリフェーズフィルタ５４のD0(z)…Dm-1(z)は伝達関数Ｈ（ｚ）をポリフェーズ分解したものであり、それぞれＭ個おきにフィルタ係数が選択されたフィルタ群となる。加算器５５は、フィルタをかけられた各信号を重ね合わせる。
【０００７】
例えば１：３にデシメートするタップ数ｎのフィルタの伝達関数Ｈ（ｚ）が次式で表されるとする。
H(z) = h0 + h1*z-1 + h2*z-2 + h3*z-3 + h4*z-4 + … + hn-2*zn-2 + hn-1*zn-1    (a)
すると、ポリフェーズフィルタ５４はD0(z)〜D2(z)までの３つとなり、次式で表される（タップ数ｎが３の倍数とした場合）。
D0(z) =h0 + h3*z-1 + h6*z-2 + … +hn-3*z-n/3+1    (b)
D1(z) =h1 + h4*z-1 + h7*z-2 + … +hn-2*z-n/3+1    (c)
D2(z) =h2 + h5*z-1 + h8*z-2 + … +hn-1*z-n/3+1    (d)
【０００８】
このようにして、各ポリフェーズフィルタ５４はダウンサンプリング後のレートでフィルタ演算を行えばよいことになるから、処理負担の軽減を図ることができる。各出力は加算器５５で加算されて、最終的なダウンサンプリングされた信号を出力側５１から出力する。ポリフェーズフィルタ５４内の演算は、ＦＩＲフィルタ(Finite Impulse Response Filter)やＩＩＲフィルタ(Infinite Impulse Response Filter)、ＦＦＴ演算(Fast Fourier Transform：高速フーリエ変換)を用いることができる。
【非特許文献１】マルチレート信号処理(昭晃堂  貴家仁志著)特に第３章
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかし、上記従来構成のデシメータでは、デシメーション比が１００を越えるような大きなデシメーションを行う場合、遅延素子５２がデシメーション比に比例して必要となり、回路規模の増大を招いてしまう（上の例のようにデシメーション比が３であれば、遅延素子は３つでよい）。また各ポリフェーズフィルタ５４の演算規模も大きなものとなってしまう。このような場合、デシメータを何段かに分けて行うなどの方法が取られている。
【００１０】
一方、測定器のようなアプリケーションにおいては、デシメーション比が大きいうえ、あらかじめデシメーション比が定まっていない場合がある。このような場合には、デシメータを多段にすることも必ずしも適切な構成とはいえず、目的とするデシメーションフィルタを実現する回路を提供することは難しかった。
【００１１】
そこで本発明は、入力された信号の周波数を低い周波数に変換するために用いられるデシメーションフィルタに関し、ハードウェアの増大を招くことなく任意のデシメーション比に容易に対応可能なフィルタ構成を提供することを目的とする。
【課題を解決するための手段】
【００１２】
上記課題を解決するために、本発明にかかるデシメーションフィルタの代表的な構成は、乗算器とアキュムレータとからなる複数の演算装置と、フィルタ係数を格納し、演算装置と対応する複数の係数メモリと、クロックに同期して複数の演算装置の出力を順次選択的に出力するセレクタとを備え、デシメーション比をｎとした場合、複数の係数メモリからは順次ｎ個ずつずれたフィルタ係数を読み出し、演算装置の乗算器において信号と乗算を行い、アキュムレータにおいて累算して出力することを特徴とする。これにより、ハードウェアの増大を招くことなく任意のデシメーション比に容易に対応可能なフィルタ構成を提供することができる。
【００１３】
複数の係数メモリは、あらかじめ計算された全てのフィルタ係数を格納し、クロックに同期して順次巡回的に読み出すリングメモリと、リングメモリにカスケードに接続された複数のシフトレジスタとからなり、シフトレジスタは、デシメーション比をｎとした場合にｎ個のフィルタ係数を格納しうる容量を備えることにより、リングメモリから読み出したフィルタ係数を複数のシフトレジスタに順次ずらしながら保存および読み出すことができる。これにより、係数メモリに必要な記憶容量を大幅に削減することができる。
【００１４】
演算装置の数は、フィルタ係数の数をデシメーション比で除算した値と等しいか、または除算した値より大きな整数値であることが好ましい。または、係数メモリに格納するフィルタ係数の数は、演算装置の数とデシメーション比とを乗算した数と等しいかまたは少ないことが好ましい。これにより、備えられた数の演算装置を効率的に使用して演算を行うことができる。
【発明の効果】
【００１５】
本発明によれば、入力された信号の周波数を低い周波数に変換するために用いられるデシメーションフィルタに関し、ハードウェアの増大を招くことなく任意のデシメーション比に容易に対応可能なフィルタ構成を提供することを目的としている。
【発明を実施するための最良の形態】
【００１６】
本発明にかかるデシメーションフィルタの実施形態について説明する。図１は本実施形態にかかるデシメーションフィルタの構成を説明する図、図２はサンプリングされた信号とフィルタ係数の関係を説明する図である。なお、本発明にかかるデシメーションフィルタは、ポリフェーズフィルタではない。また、以下の実施例に示す係数、分割数、その他具体的な数値などは、発明の理解を容易とするための例示に過ぎず、特に断る場合を除き、本発明を限定するものではない。
【００１７】
図１に示すデシメーションフィルタは、入力側１０から高いサンプリング周波数Ｆｓで入力された信号を、出力側１１から低いサンプリング周波数Ｆｄで出力する。またデシメーションフィルタは、乗算器２１とアキュムレータ２２とからなる複数の演算装置２０と、係数メモリの例としてのリングメモリ３０と、同じく係数メモリの例としての複数のシフトレジスタ３１と、演算装置２０の出力を順次選択して出力するセレクタ１３とを備えている。
【００１８】
リングメモリ３０はあらかじめ計算された全てのフィルタ係数を保存し、クロックに同期して順次巡回的に読み出すことができる。シフトレジスタ３１はリングメモリ３０にカスケード（階層的）に接続され、リングメモリ３０から読み出したフィルタ係数を複数のシフトレジスタ３１に順次ずらしながら保存し、また読み出しを行う。
【００１９】
リングメモリ３０とシフトレジスタ３１の動作について詳細に説明する。リングメモリ３０から演算装置２０にフィルタ係数を読み出すとき、同時に1つめのシフトレジスタ３１にもフィルタ係数のデータが送られる。リングメモリ３０においては、次に読み出すフィルタ係数のアドレスがシフトする。シフトレジスタ３１においては、送られたフィルタ係数を順次シフトしながら格納していき、シフトレジスタ３１の容量が充満したところで、シフトレジスタ３１から演算装置２０へと読み出しが行われる。このとき読み出しと同時に、さらに次のシフトレジスタ３１へとフィルタ係数のデータが送られる。これを繰り返すことにより、各シフトレジスタ３１には、あたかも押し出すように、順にフィルタ係数のデータが移動する。
【００２０】
リングメモリ３０には、デシメーション比をｎとした場合に、ｎ＊ｋ−ｍ個のフィルタ係数が保存される。シフトレジスタ３１は、ｎ個のフィルタ係数を格納しうる容量（深さ）を備えている。ここで係数ｋは演算装置２０の個数であって、フィルタタップ長を決定する係数でもあり、例えば２４程度の値である。また係数ｍは０以上の整数であり、乗算器２１を余らせないためにはｎ−１以下とすることが好ましい。
【００２１】
演算装置２０の数は、フィルタ係数の数をデシメーション比で除算した値と等しいか、または除算した値より大きな整数値であることが好ましい。換言すれば、リングメモリ３０に格納するフィルタ係数の数は、演算装置２０の数とデシメーション比とを乗算した数と等しいかまたは少ないことが好ましい。これにより、備えられた数の演算装置を効率的に使用して演算を行うことができる。
【００２２】
入力側１０から入力された信号は、複数の演算装置２０の乗算器２１の一方の入力にそれぞれ入力される。各乗算器２１の他方の入力には、リングメモリ３０またはシフトレジスタ３１の出力が接続されており、入力信号とフィルタ係数との間でそれぞれ乗算が行われる。乗算された結果は一連のフィルタタップ長の演算が完了するまでアキュムレータ２２によって累算され、セレクタ１３が接続されることによって出力側１１に出力される。
【００２３】
図２を用いて、上記デシメーションフィルタの動作の例を説明する。例としてデシメーション比は３とし、係数ｋは２４、係数ｍは０とする。するとフィルタタップ長は７２となるため、リングメモリ３０は７２タップのフィルタ係数を保存する容量とし、シフトレジスタ３１は３タップのフィルタ係数を保存する容量とする。図１において演算装置２０を左から順に２０−１、２０−２、２０−３、…２０−２４とし、また図２において７２タップのフィルタ係数をそれぞれｈ０、ｈ１、ｈ２、…ｈ７１、各サンプル点における入力信号をｄ０、ｄ１、ｄ２…とする。
【００２４】
上記条件において、演算装置２０−１、２０−２、２０−３、２０−２４では、それぞれ次の（ｅ）（ｆ）（ｇ）（ｈ）で示される演算が行われる。
(20-1)d0*h0 + dl*h1 + d2*h2 + d3*h3 + …d69*h69 + d70*h70 + d71*h71    (e)
(20-2)d3*h0 + d4*h1 + d5*h2 + d6*h3 + …d72*h69 + d73*h70 + d74*h71    (f)
(20-3)d6*h0 + d7*h1 + d8*h2 + d9*h3 + …d75*h69 + d76*h70 + d77*h71    (g)
(20-24)d69*h0 + d70*h1 + d71*h2 + d72*h3 + …d138*h69 + d139*h70 + d140*h71  (h)
演算装置２０−２は、演算装置２０−１が演算を開始してからｎクロック後（本実施形態では３クロック後）に演算を開始する。以下同様に、ｎクロックおきに各演算装置２０が順に動作を開始する。
【００２５】
演算装置２０−１において式（ｅ）で示される演算が終了すると、アキュムレータ２２をリセットした後、ｄ７２のタイミングから式（ｉ）で示されるフィルタ演算を引き続き開始する。同様に各演算装置２０−２〜２０−２４においても、このように後続のデータを処理することで、連続して周波数のデシメーションが可能となる。
(20-1)d72*h0 + d73*hl + d74*h2 + d75*h3 + …d141*h69 + d142*h70 + d143*h71    (i)
【００２６】
セレクタ１３は演算装置２０−１が７２タップの演算を終了したタイミングで演算装置２０−１に接続し、それからサンプリング周波数Ｆｓの１／３のレートで各演算装置２０を順次切り替えて接続し、累算されたデータを出力する。すなわち式（ｅ）の演算が終了した時点で演算装置２０−１の出力を選択し、その３クロック後には演算装置２０−２の出力を選択し、順次演算装置２０−２４まで選択した後、再び演算装置２０−１の出力を選択する。なお、演算装置２０−２４の演算（ｈ）が終了してから３クロック後には、演算装置２０−１で次の演算が終了する。
【００２７】
上記構成のデシメーションフィルタは、係数メモリ（リングメモリ３０、シフトレジスタ３１）の深さ（容量）を調節するだけで、任意のデシメーション比のフィルタを容易に構成することができる。従来例であれば、入力データをシフトさせる遅延素子５２やポリフェーズフィルタ５４の数が変わることになり、大幅な回路変更を伴うため、任意のデシメーションフィルタを実現することは困難であった。しかし本発明によれば、ハードウェアの増大を招くことなく任意のデシメーション比に容易に対応可能なフィルタ構成を提供することができる。
【００２８】
特に、係数メモリを１つのリングメモリ３０と複数のシフトレジスタ３１によって構成し、フィルタ係数データを次段の係数メモリに順次シフトしながら格納することにより、各演算装置に対応してそれぞれの係数メモリに全てのフィルタ係数データを持たせる必要がなくなり、係数メモリに必要な記憶容量を大幅に削減することができる。
【００２９】
また上記構成のデシメーションフィルタは、例えばＦＰＧＡで構成することができる。昨今のＦＰＧＡにはこのような乗算器２１やメモリ（リングメモリ３０、シフトレジスタ３１）１００個以上内蔵されており、上記構成を実現するために最適である。そしてＦＰＧＡを用いて上記フィルタを構成することにより、演算装置２０の数や、メモリの容量（深さ）を動的に適宜設定することができる。
【００３０】
演算装置２０の数はフィルタタップ長と対応しており、演算装置２０の数を増減させることで要求されるフィルタ特性を調整することができる。すなわち遮断周波数領域において急峻な過渡特性を必要とするような場合は、演算装置２０の数を増やすことでよい。逆に許容される程度までフィルタ条件をゆるくできる場合は、演算装置２０の数を減らすことができ、廉価で実現可能なデシメーションフィルタを構成することができる。
【００３１】
また各演算装置２０は常時無駄な期間なく動作しており、一般にマルチコアで構成されるコンピュータなどでソフトウェア処理するよりも、高速で演算処理することが可能である。特にＩＣテスタやメモリテスタなどの測定器において、被測定対象によりそれぞれ異なる比率で入力信号をデシメーションする必要がある場合、このような構成でフィルタを構成することにより、実時間で動作する高速かつ高精度なフィルタが実現できる。
【００３２】
［他の実施形態］
上記実施形態においては、係数メモリを１つのリングメモリ３０と複数のシフトレジスタ３１によって構成するよう説明した。しかし、全ての係数メモリをリングメモリとすることによっても、本発明を実現することができる。
【００３３】
図３は、デシメーションフィルタの他の構成例を説明する図である。図３ではシフトレジスタ３１を設けておらず、全ての係数メモリはリングメモリ３０である。各リングメモリ３０にはあらかじめ計算された全てのフィルタ係数を保存しているが、デシメーション比をｎとした場合、各リングメモリ３０からは順次ｎ個ずつずれたフィルタ係数を読み出すよう構成している。そして、読み出したフィルタ係数と信号とを各演算装置２０の乗算器２１において乗算を行い、アキュムレータ２２において累算して出力することにより、上記実施形態と同様の演算処理を行うことができる。
【００３４】
本発明にかかるデシメーションフィルタは、デシメーション比を１とすることによって一般的なＦＩＲフィルタとなる。このため、実時間で動作する高速かつ高精度なＦＩＲフィルタとしても利用することができる。
【００３５】
以上、添付図面を参照しながら本発明の好適な実施例について説明したが、本発明は係る例に限定されないことは言うまでもない。当業者であれば、特許請求の範囲に記載された範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
【産業上の利用可能性】
【００３６】
本発明は、信号の周波数を所定比の低い周波数に変換するデシメーションフィルタとして利用することができる。
【図面の簡単な説明】
【００３７】
【図１】本実施形態にかかるデシメーションフィルタの構成を説明する図である。
【図２】サンプリングされた信号とフィルタ係数の関係を説明する図である。
【図３】デシメーションフィルタの他の構成例を説明する図である。
【図４】ポリフェーズ構成で実現されるデシメータの例を示す図である。
【符号の説明】
【００３８】
１０   …入力側
１１   …出力側
１３   …セレクタ
２０   …演算装置
２１   …乗算器
２２   …アキュムレータ
３０   …リングメモリ
３１   …シフトレジスタ
５０   …入力側
５１   …出力側
５２   …遅延素子
５３   …ダウンサンプラ
５４   …ポリフェーズフィルタ
５５   …加算器
【図１】
2008124593.tif 000003
【図２】
2008124593.tif 000004
【図３】
2008124593.tif 000005
【図４】
2008124593.tif 000006