(57)【要約】【課題】データに対して１／Ｎ倍のダウンサンプリングを行うダウンサンプリングフィルタで、使用する乗算器の数を削減する。【解決手段】各時系列値選択手段１、Ｂがデータの時系列値ｘｎについてＮ個の異なるタイミングの時系列値の中から１個の時系列値を選択し、各時系列値加算手段Ｃが各選択された時系列値と予め定められたタイミングの時系列値とを加算し、各係数記憶手段Ｄがフィルタ係数に基づいて係数を記憶し、係数選択手段２が各１種類の係数を選択し、各乗算手段Ｅが加算結果と係数とを乗算し或いは所定の時系列値と係数とを乗算し、総和手段１１が乗算結果を総和し、累加算手段１２、１３が連続したＮ回のタイミングについて総和結果を累加算し、出力手段１４が入力レートに対して１／Ｎ倍の出力レートで累加算結果を出力する。【選択図】  図４
2011010035.tif 000002
【特許請求の範囲】
【請求項１】
データに対して１／Ｎ倍のダウンサンプリングを行うダウンサンプリングフィルタにおいて、
当該ダウンサンプリングフィルタは、タップ数Ｌが奇数ではない場合及び奇数である場合の両方において、
前記データの時系列値について、予め設定された態様で、Ｎ個の異なるタイミングの時系列値の中から１個の時系列値を選択する時系列値選択手段と、
前記時系列値選択手段に対応して設けられ、前記時系列値選択手段により選択された時系列値と予め定められたタイミングの時系列値とを加算する時系列値加算手段と、
フィルタ係数に基づいて予め設定された１種類又は２種類以上の係数を記憶する係数記憶手段と、
前記係数記憶手段に記憶された係数の中から１種類の係数を選択する係数選択手段と、
前記時系列値加算手段による加算結果と前記係数選択手段により選択された係数とを乗算する乗算手段と、を備え、
また、当該ダウンサンプリングフィルタは、前記タップ数Ｌが奇数である場合には、
当該タップ数Ｌの中央値に対応する係数記憶手段である中央値係数記憶手段と、
当該タップ数Ｌの中央値に対応する時系列値と前記中央値係数記憶手段について前記係数選択手段により選択された係数とを乗算する中央値乗算手段と、
前記乗算手段により得られた乗算結果と前記中央値乗算手段により得られた乗算結果を総和する総和手段と、を備え、
更に、当該ダウンサンプリングフィルタは、前記タップ数Ｌが奇数ではない場合及び奇数である場合の両方において、
連続したＮ回のタイミングについて、前記タップ数Ｌが奇数ではない場合には前記乗算手段による乗算結果を累加算し、前記タップ数Ｌが奇数である場合には前記総和手段による総和結果を累加算する累加算手段と、
入力レートに対して１／Ｎ倍の出力レートで、前記累加算手段による累加算結果を出力する出力手段と、を備え、
フィルタ係数は、前記タップ数Ｌの中央値を中心として昇順と降順で対称であり、
各フィルタ係数には、前記タップ数Ｌの中央値を中心として昇順と降順でＮ個の異なるタイミングが周期的に割り当てられており、
前記時系列値選択手段と前記時系列値加算手段と前記係数記憶手段と前記係数選択手段と前記乗算手段は、前記連続したＮ回のタイミングのそれぞれについて各タイミングに割り当てられたフィルタ係数及び対応する時系列値が乗算されるように構成され、また、前記タップ数Ｌが奇数である場合には、前記中央値係数記憶手段と前記係数選択手段と前記中央値乗算手段は、当該タップ数Ｌの中央値に対応する時系列値に関する乗算が前記連続したＮ回のタイミングのいずれかのタイミングで行われるように構成された、
ことを特徴とするダウンサンプリングフィルタ。
【請求項２】
データに対して１／Ｎ倍のダウンサンプリングを行うダウンサンプリングフィルタにおいて、
前記データの時系列値について、予め設定された態様で、Ｎ個の異なるタイミングの時系列値の中から１個の時系列値を選択する２つ以上の時系列値選択手段と、
前記２つ以上の時系列値選択手段に対応して設けられ、各時系列値選択手段について、各時系列値選択手段により選択された時系列値と予め定められたタイミングの時系列値とを加算する２つ以上の時系列値加算手段と、
フィルタ係数に基づいて予め設定された１種類又は２種類以上の係数を記憶する２つ以上の係数記憶手段と、
前記係数記憶手段のそれぞれについて記憶された係数の中から１種類の係数を選択する係数選択手段と、
前記時系列値加算手段及び前記係数記憶手段の組み合わせ毎に、前記時系列値加算手段による加算結果と前記係数選択手段により選択された係数とを乗算することを行い、また、タップ数Ｌが奇数である場合には当該タップ数Ｌの中央値に対応する時系列値とそれに対応する前記係数記憶手段について前記係数選択手段により選択された係数とを乗算することを行う２つ以上の乗算手段と、
前記２つ以上の乗算手段により得られた乗算結果を総和する総和手段と、
連続したＮ回のタイミングについて、前記総和手段による総和結果を累加算する累加算手段と、
入力レートに対して１／Ｎ倍の出力レートで、前記累加算手段による累加算結果を出力する出力手段と、を備え、
フィルタ係数は、前記タップ数Ｌの中央値を中心として昇順と降順で対称であり、
各フィルタ係数には、前記タップ数Ｌの中央値を中心として昇順と降順でＮ個の異なるタイミングが周期的に割り当てられており、
前記時系列値選択手段と前記時系列値加算手段と前記係数記憶手段と前記係数選択手段と前記乗算手段は、前記連続したＮ回のタイミングのそれぞれについて各タイミングに割り当てられたフィルタ係数及び対応する時系列値が乗算されるように構成され、また、前記タップ数Ｌが奇数である場合には当該タップ数Ｌの中央値に対応する時系列値に関する乗算が前記連続したＮ回のタイミングのいずれかのタイミングで行われるように構成された、
ことを特徴とするダウンサンプリングフィルタ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ダウンサンプリングフィルタに関し、特に、使用する乗算器の数を削減したダウンサンプリングフィルタに関する。
【背景技術】
【０００２】
従来の１／Ｎ倍ダウンサンプリングフィルタ（フィルタのタップ数はＬとする）の実装方法について説明する。ここでは、一例として、Ｎ＝４、Ｌ＝１７である場合、すなわち、１／４倍ダウンサンプリングを行い、フィルタタップ数が１７である場合を考える。
図８には、ダウンサンプリングフィルタの回路の構成例を示してある。
入力データレートをＦｓとすると、出力データレートはＦｓ／４となる。
【０００３】
本例のダウンサンプリングフィルタの回路において行われる動作の一例を示す。
直列に接続された１７個のフリップフロップＦ（０）〜Ｆ（１６）のうちの１番目のフリップフロップＦ（０）に、ダウンサンプル前のデータｘｎを入力する（図８の処理１）。
１７個のフリップフロップＦ（０）〜Ｆ（１６）により、タップ数（ここでは、１７個）分のデータを保持する（図８の処理２）。
各フリップフロップＦ（０）〜Ｆ（１６）からの出力に対応したフィルタ係数が１７個の記憶部Ｇ（０）〜Ｇ（１６）に記憶されて用意されている。
【０００４】
各フリップフロップＦ（０）〜Ｆ（１６）からの出力に対応した１７個の乗算器Ｈ（０）〜Ｈ（１６）により、各フリップフロップＦ（０）〜Ｆ（１６）からの出力データに対して、各記憶部Ｇ（０）〜Ｇ（１６）に記憶されたフィルタ係数を乗算する（図８の処理３）。
加算器１０１により、１７個の乗算器Ｈ（０）〜Ｈ（１６）からの出力の和を求め（図８の処理４）、この和のデータをフリップフロップ１０２へ出力する。
フリップフロップ１０２により、入力された和のデータをＦｓ／４サンプルで保持し、データを出力する（図８の処理５）。ここで、１／４倍ダウンサンプリングを行うため、出力データレートはＦｓ／４となる。
以降、（図８の処理１）〜（図８の処理５）の処理を繰り返して行う。
【０００５】
１つの出力データの生成に必要な乗算回数はＬ（ここでは、１７）回であり、この回路ではＬ個の乗算器Ｈ（０）〜Ｈ（１６）を同時に動作させる必要がある。
しかしながら、出力データは入力データよりもレートが低いため、出力されないデータ部分の乗算は省くことが可能である。
図９には、この点を考慮したダウンサンプリングフィルタの実装方法として、ダウンサンプリングフィルタの回路の他の構成例を示してある。図８の場合と同様に、１／４倍ダウンサンプリングを行い、フィルタタップ数が１７であるとする。
【０００６】
本例のダウンサンプリングフィルタの回路において行われる動作の一例を示す。
直列に接続された１７個のフリップフロップＩ（０）〜Ｉ（１６）のうちの１番目のフリップフロップＩ（０）に、ダウンサンプル前のデータｘｎを入力する（図９の処理１）。
１７個のフリップフロップＩ（０）〜Ｉ（１６）により、タップ数（ここでは、１７個）分のデータを保持する（図９の処理２）。
５個のフリップフロップＩ（０）、Ｉ（４）、Ｉ（８）、Ｉ（１２）、Ｉ（１６）からの出力に対応したフィルタ係数が５個の記憶部Ｊ（１）〜Ｊ（５）に記憶されており、Ｆｓのレートで動作するセレクタ１１１によりそれぞれのデータに乗算するフィルタ係数を選択する（図９の処理３）。
【０００７】
各フリップフロップＩ（０）、Ｉ（４）、Ｉ（８）、Ｉ（１２）、Ｉ（１６）からの出力に対応した５個の乗算器Ｋ（１）〜Ｋ（５）により、各フリップフロップＩ（０）、Ｉ（４）、Ｉ（８）、Ｉ（１２）、Ｉ（１６）からの出力データに対して、セレクタ１１１により選択されたフィルタ係数を乗算する（図９の処理４）。
このように、本例では、１７個のフリップフロップＩ（０）〜Ｉ（１６）に保持されたデータの中から選抜されたデータに対して、選択されたフィルタ係数との乗算を行っている。なお、本例では、１／４倍ダウンサンプリングであることから、４サンプル間隔で５個のデータを選抜している。
【０００８】
加算器１１２により、５個の乗算器Ｋ（１）〜Ｋ（５）からの出力の和を求め（図９の処理５）、この和のデータを加算器１１３へ出力する。
加算器１１３及びフリップフロップ１１４により、加算器１１２から出力された加算結果（和のデータ）を４回（１／４倍ダウンサンプリングであるため）累加算する（図９の処理６）。
フリップフロップ１１５により、この累加算の結果をＦｓ／４のレートで保持し、出力データとする（図９の処理７）。
その後、ダウンサンプル前のデータを４サンプル進ませて、（図９の処理１）〜（図９の処理７）の処理を繰り返して行う。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開平１０−３２２１６４号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
上記した図９に示される方法では、回路上で必要な乗算回数をＬ／Ｎ（本例では、繰り上げて、５）に減らすことができる。
しかしながら、それでもフィルタは多くの乗算を必要とする。乗算は回路上では専用の乗算器を用いることが多いが、用意されている乗算器の数が設計上の制約となるため、なるべく使用する乗算器の数を減らすことが望ましい。
【００１１】
ダウンサンプリングフィルタは通信分野などで頻繁に用いられる。特に、無線通信機器などにおいては、装置を小型にするために、使用リソースを小さく収めることが求められる。リソースでは、特に、乗算器の数がデバイス上の制約になることが多い。
【００１２】
本発明は、このような従来の事情に鑑み為されたもので、１／Ｎ倍のダウンサンプリングに用いるフィルタについて、使用する乗算器の数を、例えば従来の半分（或いは、ほぼ半分）に、削減した回路を実現することができるダウンサンプリングフィルタを提供することを目的とする。
【課題を解決するための手段】
【００１３】
（時系列値選択手段が１つである場合の構成例）
上記目的を達成するため、本発明では、データに対して１／Ｎ倍のダウンサンプリングを行うダウンサンプリングフィルタにおいて、次のような構成とした。
すなわち、当該ダウンサンプリングフィルタは、タップ数Ｌが奇数ではない場合及び奇数である場合の両方において、前記データの時系列値について、予め設定された態様で、Ｎ個の異なるタイミングの時系列値の中から１個の時系列値を選択する時系列値選択手段と、前記時系列値選択手段に対応して設けられ、前記時系列値選択手段により選択された時系列値と予め定められたタイミングの時系列値とを加算する時系列値加算手段と、フィルタ係数に基づいて予め設定された１種類又は２種類以上の係数を記憶する係数記憶手段と、前記係数記憶手段に記憶された係数の中から１種類の係数を選択する係数選択手段と、前記時系列値加算手段による加算結果と前記係数選択手段により選択された係数とを乗算する乗算手段と、を備えた。
【００１４】
また、当該ダウンサンプリングフィルタは、前記タップ数Ｌが奇数である場合には、当該タップ数Ｌの中央値に対応する係数記憶手段である中央値係数記憶手段と、当該タップ数Ｌの中央値に対応する時系列値と前記中央値係数記憶手段について前記係数選択手段により選択された係数とを乗算する中央値乗算手段と、前記乗算手段により得られた乗算結果と前記中央値乗算手段により得られた乗算結果を総和する総和手段と、を備えた。
【００１５】
更に、当該ダウンサンプリングフィルタは、前記タップ数Ｌが奇数ではない場合及び奇数である場合の両方において、連続したＮ回のタイミングについて、前記タップ数Ｌが奇数ではない場合には前記乗算手段による乗算結果を累加算し、前記タップ数Ｌが奇数である場合には前記総和手段による総和結果を累加算する累加算手段と、入力レートに対して１／Ｎ倍の出力レートで、前記累加算手段による累加算結果を出力する出力手段と、を備えた。
【００１６】
また、フィルタ係数は、前記タップ数Ｌの中央値を中心として昇順と降順で対称である。
各フィルタ係数には、前記タップ数Ｌの中央値を中心として昇順と降順でＮ個の異なるタイミングが周期的に割り当てられている。
そして、前記時系列値選択手段と前記時系列値加算手段と前記係数記憶手段と前記係数選択手段と前記乗算手段は、前記連続したＮ回のタイミングのそれぞれについて各タイミングに割り当てられたフィルタ係数及び対応する時系列値が乗算されるように構成され、また、前記タップ数Ｌが奇数である場合には、前記中央値係数記憶手段と前記係数選択手段と前記中央値乗算手段は、当該タップ数Ｌの中央値に対応する時系列値に関する乗算が前記連続したＮ回のタイミングのいずれかのタイミングで行われるように構成された。
【００１７】
従って、１／Ｎ倍のダウンサンプリングに用いるフィルタについて、使用する乗算器の数を、例えば従来の半分（或いは、ほぼ半分）に、削減した回路を実現することができる。
ここで、ダウンサンプリングの倍数（１／Ｎ）としては、種々な値が用いられてもよい。
また、フィルタのタップ数Ｌとしては、種々な値が用いられてもよい。
また、係数記憶手段としては、例えば、メモリを用いて構成することができる。
【００１８】
（時系列値選択手段が２つ以上である場合の構成例）
上記目的を達成するため、本発明では、データに対して１／Ｎ倍のダウンサンプリングを行うダウンサンプリングフィルタにおいて、次のような構成とした。
すなわち、２つ以上の時系列値選択手段が、前記データの時系列値について、予め設定された態様で、Ｎ個の異なるタイミングの時系列値の中から１個の時系列値を選択する。
２つ以上の時系列値加算手段が、前記２つ以上の時系列値選択手段に対応して設けられ、各時系列値選択手段について、各時系列値選択手段により選択された時系列値と予め定められたタイミングの時系列値とを加算する。
２つ以上の係数記憶手段が、フィルタ係数に基づいて予め設定された１種類又は２種類以上の係数を記憶する。
係数選択手段が、前記係数記憶手段のそれぞれについて記憶された係数の中から１種類の係数を選択する。
２つ以上の乗算手段が、前記時系列値加算手段及び前記係数記憶手段の組み合わせ毎に、前記時系列値加算手段による加算結果と前記係数選択手段により選択された係数とを乗算することを行い、また、タップ数Ｌが奇数である場合には当該タップ数Ｌの中央値に対応する時系列値とそれに対応する前記係数記憶手段について前記係数選択手段により選択された係数とを乗算することを行う。
総和手段が、前記２つ以上の乗算手段により得られた乗算結果を総和する。
累加算手段が、連続したＮ回のタイミングについて、前記総和手段による総和結果を累加算する。
出力手段が、入力レートに対して１／Ｎ倍の出力レートで、前記累加算手段による累加算結果を出力する。
【００１９】
また、フィルタ係数は、前記タップ数Ｌの中央値を中心として昇順と降順で対称である。
各フィルタ係数には、前記タップ数Ｌの中央値を中心として昇順と降順でＮ個の異なるタイミングが周期的に割り当てられている。
そして、前記時系列値選択手段と前記時系列値加算手段と前記係数記憶手段と前記係数選択手段と前記乗算手段は、前記連続したＮ回のタイミングのそれぞれについて各タイミングに割り当てられたフィルタ係数及び対応する時系列値が乗算されるように構成され、また、前記タップ数Ｌが奇数である場合には当該タップ数Ｌの中央値に対応する時系列値に関する乗算が前記連続したＮ回のタイミングのいずれかのタイミングで行われるように構成された。
【００２０】
従って、１／Ｎ倍のダウンサンプリングに用いるフィルタについて、使用する乗算器の数を、例えば従来の半分（或いは、ほぼ半分）に、削減した回路を実現することができる。
ここで、ダウンサンプリングの倍数（１／Ｎ）としては、種々な値が用いられてもよい。
また、フィルタのタップ数Ｌとしては、種々な値が用いられてもよい。
また、係数記憶手段としては、例えば、メモリを用いて構成することができる。
【００２１】
ここで、後述する実施例で参照される図４〜図７との対応を分かり易くするために、かっこ“（）”内に具体例を示したものを記載しておく。
データに対して１／Ｎ（一例として、Ｎ＝４）倍のダウンサンプリングを行うダウンサンプリングフィルタにおいて、
前記データの時系列値（ｘｎ）について、予め設定された態様（図４〜図７に示される態様）で、Ｎ個の異なるタイミング（例えば、サンプルタイミング）の時系列値の中から１個の時系列値を選択する２つ以上の時系列値選択手段（セレクタ１により制御される各保持部Ｂ（１）、Ｂ（２））と、
前記２つ以上の時系列値選択手段に対応して設けられ、各時系列値選択手段について、各時系列値選択手段により選択された時系列値と予め定められたタイミングの時系列値（フリップフロップＡ（０）、Ａ（４）から出力される時系列値）とを加算する２つ以上の時系列値加算手段（加算器Ｃ（１）、Ｃ（２））と、
フィルタ係数（例えば、図２に示されるＣｎ）に基づいて予め設定された１種類又は２種類以上の係数（なお、Ｃｎ以外に０が含まれてもよい）を記憶する２つ以上の係数記憶手段（２種類以上の係数を記憶する記憶部Ｄ（１）、Ｄ（２）及び１種類（０を除く）の係数を記憶する記憶部Ｄ（３））と、
前記係数記憶手段のそれぞれについて記憶された係数の中から１種類の係数を選択する（なお、０が選択されてもよい）係数選択手段（セレクタ２）と、
前記時系列値加算手段及び前記係数記憶手段の組み合わせ毎に、前記時系列値加算手段による加算結果と前記係数選択手段により選択された係数とを乗算することを行い（乗算器Ｅ（１）、Ｅ（２）による処理）、また、タップ数Ｌ（一例として、Ｌ＝１７）の中央値（９：なお、０〜１６で考えると中央値は８）が整数値である場合（つまり、タップ数Ｌが奇数である場合）には当該中央値に対応する時系列値（ｘ８）とそれに対応する前記係数記憶手段（記憶部Ｄ（３））について前記係数選択手段により選択された係数（Ｃ８）とを乗算することを行う（乗算器Ｅ（３）による処理）２つ以上の乗算手段（乗算器Ｅ（１）〜Ｅ（３））と、
前記２つ以上の乗算手段により得られた乗算結果を総和する総和手段（加算器１１）と、
連続したＮ回のタイミング（ｔ＝Ｔ、Ｔ＋１、Ｔ＋２、Ｔ＋３：例えば、サンプル単位）について、前記総和手段による総和結果を累加算する累加算手段（加算器１２及びフリップフロップ１３）と、
入力レート（Ｆｓ）に対して１／Ｎ倍の出力レート（Ｆｓ／Ｎ）で、前記累加算手段による累加算結果を出力する出力手段（フリップフロップ１４）と、を備え、
フィルタ係数は、前記タップ数Ｌの中央値を中心として昇順と降順で対称であり（図２（ａ）参照。）、
各フィルタ係数には、前記タップ数Ｌの中央値を中心として昇順と降順でＮ個の異なるタイミング（ｔ＝Ｔ、Ｔ＋１、Ｔ＋２、Ｔ＋３：例えば、サンプル単位）が周期的に割り当てられており（図２（ａ）、図２（ｂ）参照。）、
前記時系列値選択手段と前記時系列値加算手段と前記係数記憶手段と前記係数選択手段と前記乗算手段は、前記連続したＮ回のタイミングのそれぞれについて各タイミングに割り当てられたフィルタ係数及び対応する時系列値が乗算されるように構成され、また、前記タップ数Ｌが奇数である場合には当該タップ数Ｌの中央値に対応する時系列値（ｘ８）に関する乗算が前記連続したＮ回のタイミングのいずれかのタイミング（例えば、ｔ＝Ｔ＋３のタイミング）で行われるように構成された、
ことを特徴とするダウンサンプリングフィルタ。
【００２２】
ここで、Ｎ、Ｌを一般化した場合について例示しておく。但し、ここでは、下記に示す各個数が整数になるようにＮ、Ｌが設定されているとする。
本例では、Ｎ回の累加算で、Ｌ個のＣｎｘｎを総和する。
このため、Ｌが奇数である場合には、各回のタイミングで｛（Ｌ−１）／Ｎ｝個のＣｎｘｎを求め、更に、いずれか１回のタイミングでＬの中央値に対応する時系列値に関するＣｎｘｎを求める。この場合、例えば、加算器の数は｛（Ｌ−１）／２Ｎ｝個となり、乗算器の数は｛１＋（Ｌ−１）／２Ｎ｝個となる。
一方、Ｌが偶数である場合には、各回のタイミングで（Ｌ／Ｎ）個のＣｎｘｎを求める。この場合、例えば、加算器の数は（Ｌ／２Ｎ）個となり、乗算器の数も（Ｌ／２Ｎ）個となる。
【発明の効果】
【００２３】
以上説明したように、本発明に係るダウンサンプリングフィルタによると、例えば、１／Ｎ倍のダウンサンプリングに用いるフィルタについて、使用する乗算器の数を削減した回路を実現することができる。
【図面の簡単な説明】
【００２４】
【図１】本発明の一実施例に係るダウンサンプリングフィルタの回路の構成例を示す図である。
【図２】（ａ）はタップ数が１７である場合におけるフィルタ係数の一例及び対応する１／４倍ダウンサンプル時の使用タイミングの一例を示す図であり、（ｂ）は使用タイミング毎のフィルタ係数の一例を示す図である。
【図３】タップ数が１７である場合におけるフィルタ係数のグラフの一例を示す図である。
【図４】ｔ＝Ｔ（サンプル）においてダウンサンプリングフィルタにより行われる動作の一例を示す図である。
【図５】ｔ＝Ｔ＋１（サンプル）においてダウンサンプリングフィルタにより行われる動作の一例を示す図である。
【図６】ｔ＝Ｔ＋２（サンプル）においてダウンサンプリングフィルタにより行われる動作の一例を示す図である。
【図７】ｔ＝Ｔ＋３（サンプル）においてダウンサンプリングフィルタにより行われる動作の一例を示す図である。
【図８】背景技術に係るダウンサンプリングフィルタの回路の構成例を示す図である。
【図９】背景技術に係るダウンサンプリングフィルタの回路の他の構成例を示す図である。
【発明を実施するための形態】
【００２５】
本発明に係る実施例を図面を参照して説明する。
図１には、本発明の一実施例に係るＦＩＲ（Ｆｉｎｉｔｅ  Ｉｍｐｕｌｓｅ  Ｒｅｓｐｏｎｓｅ）フィルタを用いたダウンサンプリングフィルタの回路の構成例を示してある。本例では、１／Ｎ倍のダウンサンプリングフィルタであり、タップ数がＬである場合について説明する。入力データレートをＦｓとすると、出力データレートはＦｓ／Ｎとなる。
【００２６】
本例のダウンサンプリングフィルタは、Ｍ個のフリップフロップＡ（０）〜Ａ（Ｍ−１）と、複数個の保持部Ｂ（１）、Ｂ（２）と、複数個の加算器Ｃ（１）、Ｃ（２）と、セレクタ１と、複数個の記憶部Ｄ（１）、Ｄ（２）、Ｄ（Ｍ／２）と、複数個の乗算器Ｅ（１）、Ｅ（２）、Ｅ（Ｍ／２）と、セレクタ２と、２個の加算器１１、１２と、２個のフリップフロップ１３、１４を備えている。
【００２７】
ここで、Ｍはタップ数Ｌである（Ｍ＝Ｌ）。
また、記憶部Ｄ（Ｍ／２）及び乗算器Ｅ（Ｍ／２）は、タップ数Ｍの中心に対応しており、例えば、タップ数Ｍが奇数である場合にはフリップフロップＡ（（Ｍ−１）／２）からの出力データを処理する。具体例として、Ｍ＝１７である場合には、フリップフロップＡ（８）からの出力データを処理する。
一方、タップ数Ｍが偶数である場合には、記憶部Ｄ（Ｍ／２）及び乗算器Ｅ（Ｍ／２）は備えられなくてもよい。
【００２８】
本例のダウンサンプリングフィルタにおいて行われる動作の概略的な一例を示す。
直列に接続されたＭ個のフリップフロップＡ（０）〜Ａ（Ｍ−１）のうちの１番目のフリップフロップＡ（０）に、ダウンサンプル前のデータｘｎを入力する（図１の処理１）。
Ｍ個のフリップフロップＡ（０）〜Ａ（Ｍ−１）により、フィルタ処理に必要な分のデータをＦｓのレートで保持する（図１の処理２）。
【００２９】
セレクタ１により、各保持部Ｂ（１）、Ｂ（２）について、後の処理に必要なデータを選択する（図１の処理３）。具体例として、保持部Ｂ（１）では、セレクタ１により、フリップフロップ（Ｍ−７）、フリップフロップ（Ｍ−５）、フリップフロップ（Ｍ−３）、フリップフロップ（Ｍ−１）から出力されるデータの中から１つのデータを選択して、加算器Ｃ（１）へ出力する。また、保持部Ｂ（２）では、セレクタ１により、フリップフロップ（Ｍ−１１）、フリップフロップ（Ｍ−９）、フリップフロップ（Ｍ−７）、フリップフロップ（Ｍ−５）から出力されるデータの中から１つのデータを選択して、加算器Ｃ（２）へ出力する。
【００３０】
各加算器Ｃ（１）、Ｃ（２）では、各保持部Ｂ（１）、Ｂ（２）で選択されたデータと定められたタイミングのデータとを加算して、当該加算結果を出力する（図１の処理４）。具体例として、加算器Ｃ（１）では、保持部Ｂ（１）で選択されたデータとフリップフロップＡ（０）からのデータとを加算して、当該加算結果を乗算器Ｅ（１）へ出力する。また、加算器Ｃ（２）では、保持部Ｂ（２）で選択されたデータとフリップフロップＡ（４）からのデータとを加算して、当該加算結果を乗算器Ｅ（２）へ出力する。
【００３１】
各記憶部Ｄ（１）、Ｄ（２）、Ｄ（Ｍ／２）はそれぞれフィルタ係数に関する係数を記憶しており、セレクタ２により、用意しておいた係数の中から１つを選択する（図１の処理５）。ここで、この係数としては、例えば、ゼロ（０）が含まれてもよい。
各加算器Ｃ（１）、Ｃ（２）から出力されたデータなどとセレクタ２により選択された係数を、対応する乗算器Ｅ（１）、Ｅ（２）、Ｅ（Ｍ／２）により、乗算する（図１の処理６）。
加算器１１により、この乗算結果の出力の和を求め、その結果を加算器１２へ出力する（図１の処理７）。
【００３２】
加算器１２及びフリップフロップ１３により、加算器１１からの入力（和の結果）をＮ回累加算して、その結果をフリップフロップ１４へ出力する（図１の処理８）。
フリップフロップ１４により、入力された累加算結果をＦｓ／Ｎのレートで保持して、出力データとする（図１の処理９）。
その後、ダウンサンプル前のデータをＮサンプル進ませて、（図１の処理１）〜（図１の処理９）の処理を繰り返して行う。
【００３３】
以下で、具体例として、１／４倍のダウンサンプリングで、タップ数が１７である場合に、本例のダウンサンプリングフィルタにおいて行われる動作の例を示す。
フィルタ係数をＣｎ（例えば、０≦ｎ＜１７）とする。
図２（ａ）には、タップ数が１７である場合におけるフィルタ係数の一例を示してあり、対応する１／４倍ダウンサンプル時の使用タイミングの一例を示してある。
図２（ｂ）には、使用タイミング毎（例えば、サンプル単位）のフィルタ係数の一例を示してある。本例では、使用タイミングとして、サンプル単位で時間を表すＴ、Ｔ＋１、Ｔ＋２、Ｔ＋３を用いている。
図３には、タップ数が１７である場合におけるフィルタ係数のグラフの一例を示してある。
【００３４】
本方式で用いるフィルタ係数は中心（ここではＣ８）について対称である。１／４倍ダウンサンプリングの場合、例えば、従来方式に示したようにフィルタ係数を入力データのレートで変更しながら動作させることにより乗算器の数を削減することができる。
本方式においても、まず、その処理に適するようにフィルタ係数を使用タイミング毎（サンプル毎）に分類する。分類後のフィルタ係数が図２（ｂ）に示されている。
【００３５】
入力データをｘｎ（例えば、０≦ｎ＜１７で、繰り返す）とした場合、フィルタの出力データは（式１）により表される。
【００３６】
【数１】
2011010035.tif 000003
【００３７】
１／４倍ダウンサンプリングの場合には、４サンプルに１回この値を出力すればよい。また、フィルタ係数は中心について対称であるため、同一のフィルタ係数を乗算する２つの入力データを乗算前に加算することにより半分の乗算回数にすることができる。
【００３８】
以下で、各サンプルにおける動作の例を示す。
図４には、ｔ＝Ｔ（サンプル）について、本例のダウンサンプリングフィルタにより行われる動作の一例を示してある。
直列に接続された１７個のフリップフロップＡ（０）〜Ａ（１６）のうちの１番目のフリップフロップＡ（０）に、ダウンサンプル前のデータｘｎを入力する（図４の処理１）。
１７個のフリップフロップＡ（０）〜Ａ（１６）により、フィルタ処理に必要な分（本例では、１７個）のデータをＦｓのレートで保持する（図４の処理２）。
本例において、ｔ＝Ｔでは、先頭データｘ０はフリップフロップＡ（１３）に保持されているとする。
【００３９】
セレクタ１及び保持部Ｂ（１）、Ｂ（２）により、適当なデータを選択する（図４の処理３）。本例では、フリップフロップＡ（１０）に保持されているｘ３を保持部Ｂ（１）において選択し、フリップフロップＡ（６）に保持されているｘ７を保持部Ｂ（２）において選択する。
加算器Ｃ（１）、Ｃ（２）により、選択されたデータと定められたフリップフロップのデータを加算する（図４の処理４）。本例では、定められたフリップフロップＡ（０）に保持されているｘ１３と保持部Ｂ（１）で選択されたデータであるｘ３とを加算器Ｃ（１）により加算してｘ３＋ｘ１３を算出し、また、定められたフリップフロップＡ（４）に保持されているｘ９と保持部Ｂ（２）で選択されたデータであるｘ７とを加算器Ｃ（２）により加算してｘ７＋ｘ９を算出する。
【００４０】
セレクタ２により、各記憶部Ｄ（１）〜Ｄ（３）について、用意しておいた係数の中から１つを選択する（図４の処理５）。本例では、各記憶部Ｄ（１）、Ｄ（２）、Ｄ（３）について、それぞれ、Ｃ３、Ｃ７、０を選択する。
各乗算器Ｅ（１）〜Ｅ（３）により、各加算結果のデータなどと各選択された係数を乗算する（図４の処理６）。本例では、乗算器Ｅ（１）により乗算結果としてＣ３（ｘ３＋ｘ１３）を求め、乗算器Ｅ（２）により乗算結果としてＣ７（ｘ７＋ｘ９）を求め、乗算器Ｅ（３）により乗算結果として０を求める。
【００４１】
加算器１１により、全ての乗算結果の出力の和を求める（図４の処理７）。本例では、加算結果として、Ｃ３（ｘ３＋ｘ１３）＋Ｃ７（ｘ７＋ｘ９）を求める。
加算器１２及びフリップフロップ１３により、加算結果を累加算する（図４の処理８）。本例では、４回の累加算の１回目となるため、累加算結果は、Ｃ３（ｘ３＋ｘ１３）＋Ｃ７（ｘ７＋ｘ９）となる。
【００４２】
図５には、ｔ＝Ｔ＋１（サンプル）について、本例のダウンサンプリングフィルタにより行われる動作の一例を示してある。
直列に接続された１７個のフリップフロップＡ（０）〜Ａ（１６）のうちの１番目のフリップフロップＡ（０）に、ダウンサンプル前のデータｘｎを入力する（図５の処理１）。
１７個のフリップフロップＡ（０）〜Ａ（１６）により、フィルタ処理に必要な分（本例では、１７個）のデータをＦｓのレートで保持する（図５の処理２）。
本例において、ｔ＝Ｔ＋１では、先頭データｘ０はフリップフロップＡ（１４）に保持されている。
【００４３】
セレクタ１及び保持部Ｂ（１）、Ｂ（２）により、適当なデータを選択する（図５の処理３）。本例では、フリップフロップＡ（１２）に保持されているｘ２を保持部Ｂ（１）において選択し、フリップフロップＡ（８）に保持されているｘ６を保持部Ｂ（２）において選択する。
加算器Ｃ（１）、Ｃ（２）により、選択されたデータと定められたフリップフロップのデータを加算する（図５の処理４）。本例では、定められたフリップフロップＡ（０）に保持されているｘ１４と保持部Ｂ（１）で選択されたデータであるｘ２とを加算器Ｃ（１）により加算してｘ２＋ｘ１４を算出し、また、定められたフリップフロップＡ（４）に保持されているｘ１０と保持部Ｂ（２）で選択されたデータであるｘ６とを加算器Ｃ（２）により加算してｘ６＋ｘ１０を算出する。
【００４４】
セレクタ２により、各記憶部Ｄ（１）〜Ｄ（３）について、用意しておいた係数の中から１つを選択する（図５の処理５）。本例では、各記憶部Ｄ（１）、Ｄ（２）、Ｄ（３）について、それぞれ、Ｃ２、Ｃ６、０を選択する。
各乗算器Ｅ（１）〜Ｅ（３）により、各加算結果のデータなどと各選択された係数を乗算する（図５の処理６）。本例では、乗算器Ｅ（１）により乗算結果としてＣ２（ｘ２＋ｘ１４）を求め、乗算器Ｅ（２）により乗算結果としてＣ６（ｘ６＋ｘ１０）を求め、乗算器Ｅ（３）により乗算結果として０を求める。
【００４５】
加算器１１により、全ての乗算結果の出力の和を求める（図５の処理７）。本例では、加算結果として、Ｃ２（ｘ２＋ｘ１４）＋Ｃ６（ｘ６＋ｘ１０）を求める。
加算器１２及びフリップフロップ１３により、加算結果を累加算する（図５の処理８）。本例では、４回の累加算の２回目となるため、累加算結果は、Ｃ２（ｘ２＋ｘ１４）＋Ｃ３（ｘ３＋ｘ１３）＋Ｃ６（ｘ６＋ｘ１０）＋Ｃ７（ｘ７＋ｘ９）となる。
【００４６】
図６には、ｔ＝Ｔ＋２（サンプル）について、本例のダウンサンプリングフィルタにより行われる動作の一例を示してある。
直列に接続された１７個のフリップフロップＡ（０）〜Ａ（１６）のうちの１番目のフリップフロップＡ（０）に、ダウンサンプル前のデータｘｎを入力する（図６の処理１）。
１７個のフリップフロップＡ（０）〜Ａ（１６）により、フィルタ処理に必要な分（本例では、１７個）のデータをＦｓのレートで保持する（図６の処理２）。
本例において、ｔ＝Ｔ＋２では、先頭データｘ０はフリップフロップＡ（１５）に保持されている。
【００４７】
セレクタ１及び保持部Ｂ（１）、Ｂ（２）により、適当なデータを選択する（図６の処理３）。本例では、フリップフロップＡ（１４）に保持されているｘ１を保持部Ｂ（１）において選択し、フリップフロップＡ（１０）に保持されているｘ５を保持部Ｂ（２）において選択する。
加算器Ｃ（１）、Ｃ（２）により、選択されたデータと定められたフリップフロップのデータを加算する（図６の処理４）。本例では、定められたフリップフロップＡ（０）に保持されているｘ１５と保持部Ｂ（１）で選択されたデータであるｘ１とを加算器Ｃ（１）により加算してｘ１＋ｘ１５を算出し、また、定められたフリップフロップＡ（４）に保持されているｘ１１と保持部Ｂ（２）で選択されたデータであるｘ５とを加算器Ｃ（２）により加算してｘ５＋ｘ１１を算出する。
【００４８】
セレクタ２により、各記憶部Ｄ（１）〜Ｄ（３）について、用意しておいた係数の中から１つを選択する（図６の処理５）。本例では、各記憶部Ｄ（１）、Ｄ（２）、Ｄ（３）について、それぞれ、Ｃ１、Ｃ５、０を選択する。
各乗算器Ｅ（１）〜Ｅ（３）により、各加算結果のデータなどと各選択された係数を乗算する（図６の処理６）。本例では、乗算器Ｅ（１）により乗算結果としてＣ１（ｘ１＋ｘ１５）を求め、乗算器Ｅ（２）により乗算結果としてＣ５（ｘ５＋ｘ１１）を求め、乗算器Ｅ（３）により乗算結果として０を求める。
【００４９】
加算器１１により、全ての乗算結果の出力の和を求める（図６の処理７）。本例では、加算結果として、Ｃ１（ｘ１＋ｘ１５）＋Ｃ５（ｘ５＋ｘ１１）を求める。
加算器１２及びフリップフロップ１３により、加算結果を累加算する（図６の処理８）。本例では、４回の累加算の３回目となるため、累加算結果は、Ｃ１（ｘ１＋ｘ１５）＋Ｃ２（ｘ２＋ｘ１４）＋Ｃ３（ｘ３＋ｘ１３）＋Ｃ５（ｘ５＋ｘ１１）＋Ｃ６（ｘ６＋ｘ１０）＋Ｃ７（ｘ７＋ｘ９）となる。
【００５０】
図７には、ｔ＝Ｔ＋３（サンプル）について、本例のダウンサンプリングフィルタにより行われる動作の一例を示してある。
直列に接続された１７個のフリップフロップＡ（０）〜Ａ（１６）のうちの１番目のフリップフロップＡ（０）に、ダウンサンプル前のデータｘｎを入力する（図７の処理１）。
１７個のフリップフロップＡ（０）〜Ａ（１６）により、フィルタ処理に必要な分（本例では、１７個）のデータをＦｓのレートで保持する（図７の処理２）。
本例において、ｔ＝Ｔ＋３では、先頭データｘ０はフリップフロップＡ（１６）に保持されている。
【００５１】
セレクタ１及び保持部Ｂ（１）、Ｂ（２）により、適当なデータを選択する（図７の処理３）。本例では、フリップフロップＡ（１６）に保持されているｘ０を保持部Ｂ（１）において選択し、フリップフロップＡ（１２）に保持されているｘ４を保持部Ｂ（２）において選択し、更に、フリップフロップＡ（８）に保持されているｘ８を選択する（本例では、その係数を０以外の値とする。）。
【００５２】
加算器Ｃ（１）、Ｃ（２）により、選択されたデータと定められたフリップフロップのデータを加算する（図７の処理４）。本例では、定められたフリップフロップＡ（０）に保持されているｘ１６と保持部Ｂ（１）で選択されたデータであるｘ０とを加算器Ｃ（１）により加算してｘ０＋ｘ１６を算出し、また、定められたフリップフロップＡ（４）に保持されているｘ１２と保持部Ｂ（２）で選択されたデータであるｘ４とを加算器Ｃ（２）により加算してｘ４＋ｘ１２を算出する。なお、ｘ８はタップの中心にあたるデータであるため、加算は行わない。
【００５３】
セレクタ２により、各記憶部Ｄ（１）〜Ｄ（３）について、用意しておいた係数の中から１つを選択する（図７の処理５）。本例では、各記憶部Ｄ（１）、Ｄ（２）、Ｄ（３）について、それぞれ、Ｃ０、Ｃ４、Ｃ８を選択する。
各乗算器Ｅ（１）〜Ｅ（３）により、各加算結果のデータなどと各選択された係数を乗算する（図７の処理６）。本例では、乗算器Ｅ（１）により乗算結果としてＣ０（ｘ０＋ｘ１６）を求め、乗算器Ｅ（２）により乗算結果としてＣ４（ｘ４＋ｘ１２）を求め、乗算器Ｅ（３）により乗算結果としてＣ８ｘ８を求める。
【００５４】
加算器１１により、全ての乗算結果の出力の和を求める（図７の処理７）。本例では、加算結果として、Ｃ０（ｘ０＋ｘ１６）＋Ｃ４（ｘ４＋ｘ１２）＋Ｃ８ｘ８を求める。
加算器１２及びフリップフロップ１３により、加算結果を累加算する（図７の処理８）。本例では、４回の４回目となるため累加算の、累加算結果は、（式１）に示されるものとなり、具体的には、Ｃ０（ｘ０＋ｘ１６）＋Ｃ１（ｘ１＋ｘ１５）＋Ｃ２（ｘ２＋ｘ１４）＋Ｃ３（ｘ３＋ｘ１３）＋Ｃ４（ｘ４＋ｘ１２）＋Ｃ５（ｘ５＋ｘ１１）＋Ｃ６（ｘ６＋ｘ１０）＋Ｃ７（ｘ７＋ｘ９）＋Ｃ８ｘ８となる。
フリップフロップ１４により、累加算結果をＦｓ／４のサンプルで保持して、フィルタ出力ｙ０とする（図７の処理９）。
【００５５】
ここで、セレクタ２、記憶部Ｄ（３）、乗算器Ｅ（３）により行われるＣ８ｘ８を取得する乗算処理は、ｔ＝Ｔ＋３のタイミングでのみ行われ、本例では、これを実現するために、他のタイミングｔ＝Ｔ、Ｔ＋１、Ｔ＋２では記憶部Ｄ（３）から係数として（係数の代わりに）０を出力する構成としたが、他の構成例として、当該他のタイミングｔ＝Ｔ、Ｔ＋１、Ｔ＋２ではｘ８が乗算器Ｅ（３）に入力されずに例えばゼロ信号が乗算器Ｅ（３）に入力されるような構成が用いられてもよい。
【００５６】
以上のように、本例のダウンサンプリングフィルタでは、１／Ｎ倍ダウンサンプリングを行うＦＩＲフィルタにおいて、例えば、乗算器の数を１／Ｎ（或いは、ほぼ１／Ｎ）に減らした回路の効果に加えて、フィルタ係数の対称性を用いて更に半分（或いは、ほぼ半分）に乗算器の数を減らす効果が得られている。
また、本例のダウンサンプリングフィルタでは、ダウンサンプリングフィルタに対して、ダウンサンプル前のタイミング毎にフィルタ係数を分類し、また、同一のフィルタ係数を乗算する２つのデータを選択機能により選択することにより、フィルタ出力を行う。
また、本例のダウンサンプリングフィルタでは、ダウンサンプリングフィルタに対して、前記選択機能を有し、それらのフィルタ係数とデータを乗算して、累加算することにより、フィルタ出力を行う。
【００５７】
従って、本例のダウンサンプリングフィルタでは、ダウンサンプリングフィルタの実装回路において、使用する乗算器の数を小さくすることができ、例えば、従来に比べて、回路を小規模にし、装置をより小型にすることが可能である。
【００５８】
ここで、本例のダウンサンプリングフィルタでは、各加算器Ｃ（１）、Ｃ（２）により加算するデータを各タイミング（ｔ＝Ｔ、Ｔ＋１、Ｔ＋２、Ｔ＋３）で変更しており、更に、その実現手段として、加算するデータをセレクタ１により選択する機能を有している。例えば、加算するデータを変更する機能を、ＲＡＭ（或いは、例えば、シフトレジスタなど）の参照アドレスを変更することで実現するような場合には、データを貯め込む必要性が生じ、処理時間や回路構成が大きくなるという問題が発生する可能性が考えられるが、本例では、加算するデータを選択する機能を用いることにより、このような問題を改善している。
【００５９】
なお、図４〜図７を例とすると、本例のダウンサンプリングフィルタでは、ｘｎによりデータの時系列値が構成されており、セレクタ１及び保持部Ｂ（１）の機能により１つの時系列値選択手段が構成されており、セレクタ１及び保持部Ｂ（２）の機能により他の１つの時系列値選択手段が構成されており、２つの加算器Ｃ（１）、Ｃ（２）の機能により２つの時系列値加算手段が構成されており、３つの記憶部Ｄ（１）、Ｄ（２）、Ｄ（３）の機能により３つの係数記憶手段が構成されており、セレクタ２の機能により係数選択手段が構成されており、３つの乗算器Ｅ（１）、Ｅ（２）、Ｅ（３）の機能により３つの乗算手段が構成されており、加算器１１の機能により総和手段が構成されており、加算器１２及びフリップフロップ１３の機能により累加算手段が構成されており、フリップフロップ１４の機能により出力手段が構成されている。
本例では、２つ以上の時系列値選択手段が備えられる構成例を示したが、例えば、１つの時系列値選択手段が備えられる構成が用いられてもよい。
【００６０】
ここで、本発明に係るシステムや装置などの構成としては、必ずしも以上に示したものに限られず、種々な構成が用いられてもよい。また、本発明は、例えば、本発明に係る処理を実行する方法或いは方式や、このような方法や方式を実現するためのプログラムや当該プログラムを記録する記録媒体などとして提供することも可能であり、また、種々なシステムや装置として提供することも可能である。
また、本発明の適用分野としては、必ずしも以上に示したものに限られず、本発明は、種々な分野に適用することが可能なものである。
また、本発明に係るシステムや装置などにおいて行われる各種の処理としては、例えばプロセッサやメモリ等を備えたハードウエア資源においてプロセッサがＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）に格納された制御プログラムを実行することにより制御される構成が用いられてもよく、また、例えば当該処理を実行するための各機能手段が独立したハードウエア回路として構成されてもよい。
また、本発明は上記の制御プログラムを格納したフロッピー（登録商標）ディスクやＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ）−ＲＯＭ等のコンピュータにより読み取り可能な記録媒体や当該プログラム（自体）として把握することもでき、当該制御プログラムを当該記録媒体からコンピュータに入力してプロセッサに実行させることにより、本発明に係る処理を遂行させることができる。
【符号の説明】
【００６１】
１、２、１１１・・セレクタ、  １１、１２、１０１、１１２、１１３、Ｃ・・加算器、  １３、１４、１０２、１１４、１１５、Ａ、Ｆ、Ｉ・・フリップフロップ、  Ｂ・・保持部、  Ｄ、Ｇ、Ｊ・・記憶部、  Ｅ、Ｈ、Ｋ・・乗算器、
【図１】
2011010035.tif 000004
【図２】
2011010035.tif 000005
【図３】
2011010035.tif 000006
【図４】
2011010035.tif 000007
【図５】
2011010035.tif 000008
【図６】
2011010035.tif 000009
【図７】
2011010035.tif 000010
【図８】
2011010035.tif 000011
【図９】
2011010035.tif 000012