(57)【要約】【課題】回路規模の増大を招かずに任意のデシメーション比に容易に対応することができるデシメーションフィルタを提供する。【解決手段】デシメーションフィルタ１は、所定のサンプリング周波数でサンプリングされた信号Ｓ１を、より低いサンプリング周波数の信号Ｓ２に変換するものであり、信号Ｓ１を一時的に記憶するバッファメモリ１１と、信号Ｓ１に対して所定のフィルタリングを行うためのフィルタ係数を記憶する係数メモリ１２と、係数メモリ１２から読み出されるフィルタ係数Ｄ２を用いてバッファメモリ１１から読み出される読み出しデータＤ１に対して所定の演算を行うことにより、上記の所定のフィルタリングを行う演算装置１３とを備える。【選択図】図１
2008219560.tif 000002
【特許請求の範囲】
【請求項１】
第１サンプリング周波数でサンプリングされた第１信号を、前記第１サンプリング周波数より低い第２サンプリング周波数の第２信号に変換するデシメーションフィルタにおいて、
前記第１信号を一時的に記憶するバッファメモリと、
前記第１信号に対して所定のフィルタリングを行うためのフィルタ係数を記憶する係数メモリと、
前記係数メモリから読み出されるフィルタ係数を用いて前記バッファメモリから読み出される信号に対して所定の演算を行うことにより、前記所定のフィルタリングを行う演算装置と
を備えることを特徴とするデシメーションフィルタ。
【請求項２】
前記バッファメモリは、前記第１サンプリング周波数よりも十分高い周波数を有するクロックに同期して信号の読み出しを行い、
前記演算装置は、前記バッファメモリから読み出された複数の信号に対し、前記第２サンプリング周波数で規定される時間間隔で前記所定の演算を行う
ことを特徴とする請求項１記載のデシメーションフィルタ。
【請求項３】
前記演算装置は、前記係数メモリから出力されるフィルタ係数と前記バッファメモリから出力される信号とを乗算する乗算器と、
前記乗算器の乗算結果を累積加算するアキュムレータと
を備えることを特徴とする請求項１又は請求項２記載のデシメーションフィルタ。
【請求項４】
前記バッファメモリから読み出される信号を順次遅延させる第１遅延部と、
前記係数メモリから読み出されるフィルタ係数を順次遅延させる第２遅延部とを備え、
前記乗算器は、前記第１遅延部で遅延された複数の信号と、前記第２遅延部で遅延された複数のフィルタ係数とをそれぞれ乗算するために複数設けられている
ことを特徴とする請求項３記載のデシメーションフィルタ。
【請求項５】
前記バッファメモリ及び前記係数メモリの読み出しタイミング、並びに前記演算装置の演算タイミングを制御するタイミング制御回路を備えることを特徴とする請求項１から請求項４の何れか一項に記載のデシメーションフィルタ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、所定のサンプリング周波数でサンプリングされた信号を、より低いサンプリング周波数の信号に変換するデシメーションフィルタに関する。
【背景技術】
【０００２】
信号処理を行うに際しては、所定のサンプリング周波数でサンプリングされた信号のサンプリング周波数を変化させる必要が生じる場合がある。入力された信号をより高いサンプリング周波数の信号に変換（アップサンプリング）するシステムをインターポレータ（補間器：interpolator）といい、逆に入力された信号をより低いサンプリング周波数の信号に変換（ダウンサンプリング）するシステムをデシメータ（間引き器：decimator）という。
【０００３】
デシメータは、入力された信号に対して所定のフィルタリング処理を行った後に信号を間引くことでダウンサンプリングしている。ここでダウンサンプリングされた信号に、そのサンプリング周波数の１／２の周波数（ナイキスト周波数）よりも高い周波数成分が含まれていると折り返しひずみ（エリアジング成分）が生ずる。上記のフィルタリング処理は信号の周波数帯域をナイキスト周波数以下に制限するために行われ、このフィルタリング処理で用いられるフィルタをデシメーションフィルタという。
【０００４】
デシメーションフィルタは、入力される信号を高レートでフィルタリングする必要があるため処理負担が大きい。そこで、デシメーションフィルタは、伝達関数Ｈ（ｚ）をデシメーション比Ｍに相当する複数のフィルタ係数のグループに分割して演算処理するポリフェーズ構成で実現されることが多い。一般的に、かかる構成のフィルタをポリフェーズフィルタという。ポリフェーズ構成における各フィルタの係数は、もとのフィルタ係数からＭ個おきに係数を取り出したものである。そして、各フィルタにデータを入力する前にダウンサンプリングを実施することで、各フィルタの動作速度をダウンサンプリング後の低レートにして各フィルタの処理負担を軽減している。
【０００５】
図７は、ポリフェーズ構成のデシメーションフィルタを備える従来のデシメータの構成を示すブロック図である。図７に示す通り、従来のデシメータ１００は、複数の遅延素子１０１、複数のダウンサンプラ１０２、複数のフィルタ１０３、及び加算器１０４を備えており、入力端Ｔ１０１から入力したサンプリング周波数Ｆｓの信号をより低いサンプリング周波数Ｆｄの信号に変換して出力端Ｔ１０２から出力する。
【０００６】
遅延素子１０１は、信号を１／Ｆｓ周期（１周波数分）だけ遅延させる素子であり、例えばシフトレジスタで実現される。ダウンサンプラ１０２は、入力された信号をデシメーション比Ｍにダウンサンプリングする。フィルタ１０３の各々は、ポリフェーズ構成のデシメーションフィルタの一部をなすものであって、Ｍ個おきにデシメーションフィルタのフィルタ係数が選択されたフィルタである。加算器１０４は、フィルタ１０３の各々から出力される信号を加算するものである。
【０００７】
ここで、例えば１：３にデシメートするタップ数ｎのデシメーションフィルタの伝達関数Ｈ（ｚ）が以下の（１）式で表されるとする。
H(z) = h０ + h１*z−１ + h２*z−２ + … + hｎ−２*z−（ｎ−２） + hｎ−１*z−（ｎ−１）  …（１）
すると、ポリフェーズフィルタをなすフィルタは、Ｄ０（ｚ）〜Ｄ２（ｚ）までの３つとなり、以下の（２）〜（４）式でそれぞれ表される。尚、ここではタップ数ｎを３の倍数としている。
D０(z) = h０ + h３*z−１ + h６*z−２ + … + hｎ−３*z−ｎ／３＋１  …（２）
D１(z) = h１ + h４*z−１ + h７*z−２ + … + hｎ−２*z−ｎ／３＋１  …（３）
D２(z) = h２ + h５*z−１ + h８*z−２ + … + hｎ−１*z−ｎ／３＋１  …（４）
【０００８】
このようにして、各フィルタ１０３はダウンサンプリング後のレートでフィルタ演算を行えばよいことになるから、デシメーションフィルタにおける処理負担の軽減を図ることができる。フィルタ１０３の各々から出力された信号は加算器１０４で加算され、最終的なダウンサンプリングされた信号が出力端Ｔ１０２から出力される。尚、ポリフェーズフィルタをなす各フィルタ１０３における演算は、ＦＩＲフィルタ（Finite Impulse Response Filter）やＩＩＲフィルタ（Infinite Impulse Response Filter）を用いて行ったり、ＦＦＴ演算（Fast Fourier Transform：高速フーリエ変換）を用いることができる。
【０００９】
尚、従来のデシメーションフィルタの詳細については、例えば以下の非特許文献１を参照されたい。
【非特許文献１】貴家仁志著，「マルチレート信号処理」，第３版，昭晃堂
【発明の開示】
【発明が解決しようとする課題】
【００１０】
ところで、図７に示す通り、デシメーションフィルタをポリフェーズ構成とした場合には、デシメーション比Ｍに応じた遅延素子１０１が必要になる。このため、例えばデシメーション比Ｍが「１００」を越えるような大きな値に設定されると、多数の遅延素子１０１が必要になって回路規模が増大するとともに、フィルタ１０３の規模も増大してしまうという問題がある。
【００１１】
デシメーション比Ｍが大きな値に設定される場合には、デシメーションフィルタの構成を、デシメーションを複数段に分けて行う構成にすることも考えられる。しかしながら、かかる構成のデシメーションフィルタは、例えば測定器等に用いられるデシメーションフィルタのように、予めデシメーション比が定まっておらずデシメーション比が可変される用途には使用することはできない。
【００１２】
本発明は上記事情に鑑みてなされたものであり、回路規模の増大を招かずに任意のデシメーション比に容易に対応することができるデシメーションフィルタを提供することを目的とする。
【課題を解決するための手段】
【００１３】
上記課題を解決するために、本発明のデシメーションフィルタは、第１サンプリング周波数でサンプリングされた第１信号（Ｓ１）を、前記第１サンプリング周波数より低い第２サンプリング周波数の第２信号（Ｓ２）に変換するデシメーションフィルタ（１）において、前記第１信号を一時的に記憶するバッファメモリ（１１）と、前記第１信号に対して所定のフィルタリングを行うためのフィルタ係数を記憶する係数メモリ（１２）と、前記係数メモリから読み出されるフィルタ係数（Ｄ２）を用いて前記バッファメモリから読み出される信号（Ｄ１）に対して所定の演算を行うことにより、前記所定のフィルタリングを行う演算装置（１３）とを備えることを特徴としている。
この発明によると、第１サンプリング周波数でサンプリングされた第１信号はバッファメモリに一時的に記憶された後にバッファメモリから読み出され、この読み出された信号に対して係数メモリから読み出されたフィルタ係数を用いた所定の演算が行われ、第１信号に対する所定のフィルタリングが行われる。
また、本発明のデシメーションフィルタは、前記バッファメモリが、前記第１サンプリング周波数よりも十分高い周波数を有するクロック（ＣＫ）に同期して信号の読み出しを行い、前記演算装置は、前記バッファメモリから読み出された複数の信号に対し、前記第２サンプリング周波数で規定される時間間隔で前記所定の演算を行うことを特徴としている。
また、本発明のデシメーションフィルタは、前記演算装置が、前記係数メモリから出力されるフィルタ係数と前記バッファメモリから出力される信号とを乗算する乗算器（２１）と、前記乗算器の乗算結果を累積加算するアキュムレータ（２２）とを備えることを特徴としている。
また、本発明のデシメーションフィルタは、前記バッファメモリから読み出される信号を順次遅延させる第１遅延部（３１）と、前記係数メモリから読み出されるフィルタ係数を順次遅延させる第２遅延部（３２）とを備え、前記乗算器は、前記第１遅延部で遅延された複数の信号と、前記第２遅延部で遅延された複数のフィルタ係数とをそれぞれ乗算するために複数設けられていることを特徴としている。
更に、本発明のデシメーションフィルタは、前記バッファメモリ及び前記係数メモリの読み出しタイミング、並びに前記演算装置の演算タイミングを制御するタイミング制御回路（１４）を備えることを特徴としている。
【発明の効果】
【００１４】
本発明によれば、係数メモリから読み出されるフィルタ係数を用いてバッファメモリから読み出される信号に対して演算装置で所定の演算を行ってダウンサンプリングを行っており、バッファメモリからの信号の読み出し方法を変えるだけでデシメーション比を変えることができる。このため、回路規模の増大を招かずに任意のデシメーション比に容易に対応することができるという効果がある。
【発明を実施するための最良の形態】
【００１５】
以下、図面を参照して本発明の一実施形態によるデシメーションフィルタについて詳細に説明する。図１は、本発明の一実施形態によるデシメーションフィルタの構成を示すブロック図である。図１に示す通り、本実施形態のデシメーションフィルタ１は、バッファメモリ１１、係数メモリ１２、演算装置１３、及びタイミング制御回路１４を備えており、所定のサンプリング周波数（第１サンプリング周波数）でサンプリングされた信号Ｓ１（第１信号）をより低いサンプリング周波数（第２サンプリング周波数）の信号Ｓ２（第２信号）に変換するものである。
【００１６】
本実施形態のデシメーションフィルタ１は、特に低周波数（例えば、１ＭＨｚ以下）の信号Ｓ１をフィルタリングするのに適している。尚、以下の説明では、信号Ｓ１が１ＭＨｚのサンプリング周波数でサンプリングされた１６ビットの信号であるとする。また、本実施形態のデシメーションフィルタ１には、信号Ｓ１のサンプリング周波数よりも十分高い周波数を有するクロックＣＫが入力されている。このクロックＣＫは、バッファメモリ１１及びタイミング制御回路１４に入力されている。尚、以下の説明では、クロックＣＫの周波数が１００ＭＨｚであるとする。
【００１７】
バッファメモリ１１は、入力される信号Ｓ１を一時的に記憶する。このバッファメモリ１１は、例えばＲＡＭ（Random Access Memory）であり、信号Ｓ１をアドレス順に順次記憶する。尚、このバッファメモリ１１としてＦＩＦＯ（First-In First-Out：先入れ先出し）を用いることもできる。バッファメモリ１１は、タイミング制御回路１４の制御の下で、一時的に記憶した信号をクロックＣＫに同期して読み出す。尚、以下の説明では、バッファメモリ１１から読み出される信号を読み出しデータＤ１という。
【００１８】
係数メモリ１２は、デシメーションフィルタ１に入力される信号Ｓ１に対して所定のフィルタリングを行うためのフィルタ係数を記憶する。この係数メモリ１２としては、バッファメモリ１１と同様にＲＡＭ等を用いることができる。尚、本実施形態においては、係数メモリ１２に記憶されるフィルタ係数は１６ビットであるとし、不図示の制御装置によって予め記憶されるものとする。このフィルタ係数は、デシメーションフィルタ１が実現しようとするフィルタリングの特性（伝達関数Ｈ（ｚ））によって適宜変更することができる。係数メモリ１２は、タイミング制御回路１４の制御の下でフィルタ係数Ｄ２を読み出す。
【００１９】
演算装置１３は、係数メモリ１２から読み出されるフィルタ係数Ｄ２を用いて、バッファメモリ１１から読み出される読み出しデータに対して所定の演算を行うことにより、上述した信号Ｓ１に対する所定のフィルタリングを行う。演算装置１３は上記の所定の演算をデシメーション比Ｍに相当するサンプル毎に行う、例えば、デシメーション比Ｍが「３」であるとすると、演算装置１３は３サンプル毎に上記の演算を行う。即ち、演算装置１３は、信号Ｓ２のサンプリング周波数で規定される時間間隔で上記の演算を行う。尚、上記の所定の演算は、具体的には、前述した（１）式に示した演算であり、そのタップ数及びデシメーション比は、不図示の制御装置によって設定される。次に、演算装置１３の具体的な構成について説明する。
【００２０】
図２は、演算装置１３の構成を示す図である。図２に示す通り、演算装置２は、乗算器２１とアキュムレータ２２とを備える。乗算器２１は、バッファメモリ１１から出力される読み出しデータＤ１と係数メモリ１２から出力されるフィルタ係数Ｄ２とを乗算する。アキュムレータ２２は、加算器２２ａと遅延素子２２ｂとからなり、乗算器２１から出力されるデータと、遅延素子２２ｂから出力されるデータとを加算器２２ａで加算することにより、乗算器２１から出力されるデータを累積加算する。尚、遅延素子２２ｂの遅延時間は、信号Ｓ１のサンプリング周波数並びにデシメーションフィルタ１のデシメーション比及びタップ数に応じて設定される。また、アキュムレータ２２は、タイミング制御回路１４からのタイミング信号Ｃ１が入力される。このタイミング信号Ｃ１が入力されると、アキュムレータ２２が初期化される。
【００２１】
ここで、信号Ｓ１のサンプリング周波数をＦｓとし、デシメーションフィルタ１のデシメーション比を「３」とすると、演算装置１３は、３／Ｆｓで示される時間内に一度の演算を完了する必要がある。デシメーションフィルタ１の伝達関数が前述した（１）式で示され、そのタップ数がｎであるとすると、図２に示す構成の演算装置１３では、乗算器２１での乗算及びアキュムレータ２２での累積加算を３／Ｆｓで示される時間内にタップ数ｎ回分実行しなければならない。
【００２２】
例えば、信号Ｆｓのサンプリング周波数が３０ＭＨｚであり、タップ数ｎが「１００」であるとすると、演算装置１３の内部における動作周波数は１ＧＨｚ以上である必要がある。このため、従来のデシメーションフィルタは、ポリフェーズフィルタとされている。これに対し、信号Ｓ１のサンプリング周波数が例えば１ＭＨｚと低速な場合には、タップ数ｎが「１００」であっても、演算装置１３の内部における動作周波数は３３ＭＨｚ程度で良く、図２示す構成で十分対応できる。
【００２３】
タイミング制御回路１４は、バッファメモリ１１、係数メモリ１２、及び演算装置１３の動作タイミングを制御するものである。具体的には、読み出しデータＤ１を読み出すためのアドレスＡ１をバッファメモリ１１に供給するとともに、前述したタイミング信号Ｃ１を演算装置１３に出力する。また、フィルタ係数Ｄ２の読み出し位置を所定の位置（例えば、先頭アドレス）に設定するタイミング信号Ｃ２を係数メモリ１２に出力する。
【００２４】
このタイミング制御信号１４には、トリガ信号Ｔｒが入力されている。このトリガ信号Ｔｒは、デシメーションフィルタ１でのフィルタリングのタイミングを規定する信号であり、例えばデシメーションフィルタ１が計測器等に設けられる場合には、計測器が備える制御装置（図示省略）から出力される信号である。尚、タイミング制御信号１４は、トリガ信号Ｔｒを必須とするものではなく、計測器以外の機器（例えば、オーディオ機器等）に設けられる場合には、省略されていても良い。
【００２５】
次に、本実施形態のデシメーションフィルタ１の動作について説明する。尚、以下の説明では、デシメーションフィルタ１のタップ数ｎが「１００」であり、デシメーション比Ｍが「３」である場合を例に挙げて説明する。サンプリング周波数が１ＭＨｚの信号Ｓ１が入力されると、図３（ａ）に示す通り、入力された信号Ｓ１はアドレス０からアドレス順に順次記憶される。
【００２６】
図３は、バッファメモリ１１及び係数メモリ１２のアドレスマップを示す図であって、（ａ）はバッファメモリ１１のアドレスマップを示す図であり、（ｂ）は係数メモリ１２のアドレスマップを示す図である。尚、図３中において、信号Ｓ１として入力される個々の信号（サンプル）を「ｄ０」，「ｄ１」，「ｄ２」，「ｄ３」，「ｄ４」，…,「ｄ９９」，…と表している。また、前述した（１）式中のフィルタ係数を、「ｈ０」，「ｈ１」，「ｈ２」，「ｈ３」，「ｈ４」，…,「ｈ９９」，…と表している。尚、説明の便宜上、メモリマップのアドレスは１０進数で表記している。
【００２７】
次いで、タイミング制御回路１４からバッファメモリ１１に対してアドレスＡ１が出力されるとともに、タイミング制御回路１４から演算回路１３及び係数メモリ１２に対してタイミング信号Ｃ１，Ｃ２がそれぞれ出力される。アドレスＡ１によって、バッファメモリ１１から読み出しデータＤ１がクロックＣＫに同期して読み出される。また、タイミング信号Ｃ１によって演算装置１３のアキュムレータ２２が初期化される。更に、タイミング信号Ｃ２によって係数メモリ１２におけるフィルタ係数Ｄ２の読み出し位置が所定の位置（例えば、先頭アドレス）に設定され、フィルタ係数Ｄ２の読み出しが開始される。
【００２８】
バッファメモリ１１から読み出された読み出しデータＤ１（「ｄ０」）及び係数メモリ１２から読み出されたフィルタ係数Ｄ２（「ｈ０」）は、演算装置１３の乗算器２１に入力されて乗算され、その乗算結果はアキュムレータ２２に保持される。尚、アキュムレータ２２は乗算器２１の乗算結果が入力されるまで初期化されていたため、乗算器２１の乗算結果は累積加算はされない。
【００２９】
次に、タイミング制御回路１４からバッファメモリ１１に対してアドレスＡ１が出力され、バッファメモリ１１から次の読み出しデータＤ１（「ｄ１」）が読み出されるとともに、係数メモリ１２からは次のフィルタ係数Ｄ２（「ｈ１」）が読み出される。これらは、先に読み出されたものと同様に、演算装置１３の乗算器２１に入力されて乗算され、その乗算結果がアキュムレータ２２で累積加算される。
【００３０】
以下、同様の処理がタップ数「１００」回分行われる。即ち、バッファメモリ１１に記憶された信号「ｄ９９」が読み出されるまで行われ、かかる処理を終えると、演算装置１３のアキュムレータ２２の累積加算結果が信号Ｓ２として出力される。ここで、信号Ｓ１のサンプリング周波数は１ＭＨｚであり、クロックＣＫの周波数は１００ＭＨｚである。このため、以上の一連の処理（バッファメモリ１１に記憶された信号「ｄ０」〜「ｄ９９」を順次読み出して演算装置１３の乗算器２１及びアキュムレータ２２で順次演算する処理）は、１つのサンプルが信号Ｓ１としてデシメーションフィルタ１に入力されてから次のサンプルが入力されるまでの間に行われる。
【００３１】
以上の処理が終了すると、再びタイミング制御回路１４からバッファメモリ１１に対してアドレスＡ１が出力されるとともに、タイミング制御回路１４から演算回路１３及び係数メモリ１２に対してタイミング信号Ｃ１，Ｃ２がそれぞれ出力される。ここで、前回の処理において、タイミング制御回路１４から最初に出力されたアドレスＡ１は、バッファメモリ１１の先頭アドレスに格納された信号「ｄ０」を読み出すためのアドレス「０」であった。
【００３２】
今回の処理においては、前回の処理で最初に読み出した信号「ｄ０」からデシメーション比「３」に相当するサンプル数だけタイミングが遅れている信号「ｄ３」を読み出すためのアドレスが出力される。つまり、タイミング制御回路１４からは、アドレス「３」を指定するアドレスＡ１が出力される。尚、タイミング信号Ｃ２によって設定されるフィルタ係数Ｄ２の読み出し開始位置は、前回と同様のアドレス（例えば、先頭アドレス）であり、タイミング信号Ｃ１により演算装置１３のアキュムレータ２２が初期化される。
【００３３】
以下、前回の処理と同様に、バッファメモリ１１に記憶された信号「ｄ３」〜「ｄ１０２」が順次読み出されるとともに、係数メモリ１２に記憶されたフィルタ係数「ｈ０」〜「ｈ９９」が順次読み出される。そして、これらを演算装置１３の乗算器２１及びアキュムレータ２２で順次演算し、アキュムレータ２２の累積加算結果を信号Ｓ２として出力する処理が行われる。
【００３４】
図４は、本発明の一実施形態によるデシメーションフィルタ１の動作を説明するための図である。図４に示す通り、サンプリング周波数Ｆｓを有するサンプリングクロックＳＫでサンプリングされた信号Ｓ１が順次デシメーションフィルタ１に入力されており、この信号Ｓ１は、タップ数ｎ（ここでは、「１００」）を単位として演算装置１３で演算される。
【００３５】
具体的には、最初にサンプル「ｄ０」〜「ｄ９９」の１００個のサンプルに対する演算が演算装置１３で行われ、この演算結果ｅ１が信号Ｓ２として出力される。次に、最初のサンプル「ｄ０」〜「ｄ９９」に対してデシメーション比Ｍ（ここでは「３」）に相当するサンプル数だけタイミングが遅れている１００個のサンプル「ｄ３」〜「ｄ１０２」に対する演算が演算装置１３で行われ、この演算結果ｅ２が信号Ｓ２として出力される。次いで、サンプル「ｄ３」〜「ｄ１０２」に対してデシメーション比「３」に相当するサンプル数だけタイミングが遅れている１００個のサンプル「ｄ６」〜「ｄ１０５」に対する演算が演算装置１３で行われ、この演算結果ｅ３が信号Ｓ２として出力される。
【００３６】
ここで、図４を参照すると、信号Ｓ１はサンプリングクロックＳＫ毎に入力されているのに対し、演算装置１３の演算結果ｅ１，ｅ２，ｅ３，…は、サンプリングクロックＳＫの３周期毎（即ち、デシメーション比「３」毎）に出力されているのが分かる。以下同様に、設定されたタップ数「１００」を単位とし、先に演算が行われたサンプルに比してデシメーション比「３」に相当するサンプル数だけタイミングが遅れたサンプルに対して順次演算が行われることにより、信号Ｓ１をデシメーション比Ｍでダウンサンプリングした信号Ｓ２が得られる。
【００３７】
次に、トリガ信号Ｔｒが入力されたときの動作について説明する。トリガ信号Ｔｒが入力された場合には、トリガ信号Ｔｒが入力されたタイミングに同期して信号Ｓ２を出力する必要がある。図４に示す通り、演算装置１３はタップ数ｎを単位として演算を行っているため、トリガ信号Ｔｒが入力されてから演算を開始すると、最初に得られる演算結果はタップ数ｎの１／２の遅延時間が生じたものとなる。
【００３８】
例えば、図４において、サンプル「ｄ０」がデシメーションフィルタ１に入力されたときにトリガ信号Ｔｒも入力された場合を考える。かかる場合に、１００個のサンプル「ｄ０」〜「ｄ９９」を用いて最初に得られる演算結果ｅ１は、サンプル「ｄ０」〜「ｄ９９」の中間時点（即ち、サンプル「ｄ５０」が入力された時点）における演算結果と考えることができ、トリガ信号Ｔｒに対してタップ数ｎの１／２の遅延時間が生じている。
【００３９】
タイミング制御回路１４は、この遅延時間を解消するための制御を行う。具体的には、トリガ信号Ｔｒが入力された時点よりも演算装置１３の遅延時間の１／２だけ前に入力された信号（サンプル）から読み出しを開始する制御を行う。図５は、トリガ信号Ｔｒが入力された場合にタイミング制御回路１４で行われる読み出し制御を説明するための図である。いま、図５に示す通り、例えばサンプル「ｄ１００」がデシメーションフィルタ１に入力されたときにトリガ信号Ｔｒが入力されたとする。
【００４０】
このとき、タイミング制御回路１４は、演算回路１３の遅延時間の１／２だけ前のサンプル（「ｄ５１」）を読み出すアドレスＡ１をバッファメモリ１１に出力する。そして、このサンプルを先頭として１００個分のサンプル（「ｄ５１」〜「ｄ１５０」）を読み出すアドレスＡ１を順次出力し、これらのサンプルを演算装置１３に演算させて演算結果ｅ１１を得る。ここで得られた演算結果ｅ１１は、１００個分のサンプル「ｄ５１」〜「ｄ１５０」の中間時点（即ち、トリガ信号Ｔｒが入力された時点）における演算結果と考えることができ、トリガ信号Ｔｒに対する遅延時間は生じていない。
【００４１】
次に、タイミング制御回路１４は、サンプル「ｄ５１」〜「ｄ１５０」に対してデシメーション比「３」に相当するサンプル数だけタイミングが遅れている１００個のサンプル「ｄ５４」〜「ｄ１５３」を読み出すアドレスＡ１を順次バッファメモリ１１に出力し、これらのサンプルを演算装置１３に演算させて演算結果ｅ１２を得る。ここで得られた演算結果ｅ１２は、トリガ信号Ｔｒに対してサンプルクロックＳＫの３周期分（デシメーション比「３」に相当するサンプル数）だけタイミングが遅れたものである。以下同様にして、トリガ信号Ｔｒが入力されたタイミングに同期した信号Ｓ２が得られる。
【００４２】
以上の通り、本実施形態のデシメーションフィルタ１は、信号Ｓ１を一時的に記憶するバッファメモリ１１とフィルタ係数を記憶する係数メモリ１２とを備え、係数メモリ１２から読み出されるフィルタ係数Ｄ２を用いてバッファメモリ１１から読み出される読み出しデータＤ１に対して演算装置１３で所定の演算を行ってダウンサンプリングを行っている。ここで、デシメーション比はバッファメモリ１１からの読み出しデータＤ１の読み出し方を変えることで変えることができる。このため、回路規模の増大を招かずに任意のデシメーション比に容易に対応することができる。
【００４３】
以上、本発明の一実施形態によるデシメーションフィルタについて説明したが、本発明は上記実施形態に制限されることなく、本発明の範囲内で自由に変更が可能である。例えば、上記実施形態では、演算装置１３が１つの乗算器２１と１つのアキュムレータ２２とからなる構成であった。しかしながら、デシメーション比が大きい場合には、乗算器２１及びアキュムレータ２２からなる回路を、バッファメモリを挟んで２段縦続接続した構成であっても良い。
【００４４】
また、信号Ｓ１はバッファメモリ１１に一時的に記憶されており、演算装置１３は信号Ｓ１のサンプリング周波数よりも十分高い動作周波数で動作する。このため、ダウンサンプリングのための処理が演算装置１３で行われていない間は、他の信号処理を行うために演算装置１３を用いても良い。例えば、他のフィルタ処理を行うフィルタ装置の一部に演算装置１３が組み込まれた構成とし、ダウンサンプリングのための処理が演算装置１３で行われていない間は、そのフィルタ装置で行われる信号処理を演算装置１３で行っても良い。
【００４５】
また、デシメーション比が予め固定される場合には、図６に示す構成とすることもできる。図６は、演算装置１３の変形例を示すブロック図である。尚、図６においては、図２に示した構成と同一の構成には同一の符号を付してある。図６に示す通り、演算装置１３は、遅延部３１（第１遅延部）、遅延部３２（第２遅延部）、乗算器３３ａ〜３３ｃ、及びアキュムレータ２２を備える。
【００４６】
遅延部３１は、Ｄフリップフロップ（ＤＦＦ）３１ａ〜３１ｃを縦続接続してなり、バッファメモリ１１から読み出される読み出しデータＤ１を順次遅延させる。遅延部３２は、Ｄフリップフロップ３２ａ〜３２ｃを縦続接続してなり、係数メモリ１２から読み出されるフィルタ係数Ｄ２を順次遅延させる。乗算器３３ａは、遅延部３１のＤフリップフロップ３１ａを介した読み出しデータＤ１と、遅延部３２のＤフリップフロップ３２ａを介したフィルタ係数Ｄ２とを乗算する。
【００４７】
乗算器３３ｂは、遅延部３１のＤフリップフロップ３１ｂを介した読み出しデータＤ１と、遅延部３２のＤフリップフロップ３２ｂを介したフィルタ係数Ｄ２とを乗算する。乗算器３３ｃは、遅延部３１のＤフリップフロップ３１ｃを介した読み出しデータＤ１と、遅延部３２のＤフリップフロップ３２ｃを介したフィルタ係数Ｄ２とを乗算する。乗算器３３ａ〜３３ｃの乗算結果はアキュムレータ２２の加算器２２ａに入力されている。
【００４８】
上記構成において、バッファメモリ１１から読み出された読み出しデータＤ１は遅延部３１に入力されて順次遅延され、これと同時に、係数メモリ１２から読み出されたフィルタ係数Ｄ２は遅延部３２に入力されて順次遅延される。３つの読み出しデータＤ１及び３つの係数データＤ３がバッファメモリ１１及び係数メモリ１２からそれぞれ読み出されるたびに乗算器３３ａ〜３３ｃの各々で乗算され、その乗算結果がアキュムレータ２２で累積加算される。
【００４９】
以上の構成にすることにより、図２に示す乗算器２１及びアキュムレータ２２の演算回数を、乗算器３３ａ〜３３ｃの数（図６に示す例では「３」）分の１にすることができる。乗算器３３ａ〜３３ｃの数を増やすほど演算回数を低減することができるが、回路規模の増大を招くため、乗算器３３ａ〜３３ｃの数及び遅延部３１，３２の段数は数個（数段）程度であることが望ましい。
【図面の簡単な説明】
【００５０】
【図１】本発明の一実施形態によるデシメーションフィルタの構成を示すブロック図である。
【図２】演算装置１３の構成を示す図である。
【図３】バッファメモリ１１及び係数メモリ１２のアドレスマップを示す図である。
【図４】本発明の一実施形態によるデシメーションフィルタ１の動作を説明するための図である。
【図５】トリガ信号Ｔｒが入力された場合にタイミング制御回路１４で行われる読み出し制御を説明するための図である。
【図６】演算装置１３の変形例を示すブロック図である。
【図７】ポリフェーズ構成のデシメーションフィルタを備える従来のデシメータの構成を示すブロック図である。
【符号の説明】
【００５１】
１            デシメーションフィルタ
１２          係数メモリ
１３          演算装置
１４          タイミング制御回路
２１          乗算器
２２          アキュムレータ
３１，３２    遅延部
ＣＫ          クロック
Ｄ１          読み出しデータ
Ｄ２          フィルタ係数
Ｓ１，Ｓ２    信号
【図１】
2008219560.tif 000003
【図２】
2008219560.tif 000004
【図３】
2008219560.tif 000005
【図４】
2008219560.tif 000006
【図５】
2008219560.tif 000007
【図６】
2008219560.tif 000008
【図７】
2008219560.tif 000009