説明

ダウンサンプリングフィルタ

【課題】データに対して1/N倍のダウンサンプリングを行うダウンサンプリングフィルタで、使用する乗算器の数を削減する。
【解決手段】各時系列値選択手段1、Bがデータの時系列値xについてN個の異なるタイミングの時系列値の中から1個の時系列値を選択し、各時系列値加算手段Cが各選択された時系列値と予め定められたタイミングの時系列値とを加算し、各係数記憶手段Dがフィルタ係数に基づいて係数を記憶し、係数選択手段2が各1種類の係数を選択し、各乗算手段Eが加算結果と係数とを乗算し或いは所定の時系列値と係数とを乗算し、総和手段11が乗算結果を総和し、累加算手段12、13が連続したN回のタイミングについて総和結果を累加算し、出力手段14が入力レートに対して1/N倍の出力レートで累加算結果を出力する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ダウンサンプリングフィルタに関し、特に、使用する乗算器の数を削減したダウンサンプリングフィルタに関する。
【背景技術】
【0002】
従来の1/N倍ダウンサンプリングフィルタ(フィルタのタップ数はLとする)の実装方法について説明する。ここでは、一例として、N=4、L=17である場合、すなわち、1/4倍ダウンサンプリングを行い、フィルタタップ数が17である場合を考える。
図8には、ダウンサンプリングフィルタの回路の構成例を示してある。
入力データレートをFsとすると、出力データレートはFs/4となる。
【0003】
本例のダウンサンプリングフィルタの回路において行われる動作の一例を示す。
直列に接続された17個のフリップフロップF(0)〜F(16)のうちの1番目のフリップフロップF(0)に、ダウンサンプル前のデータxを入力する(図8の処理1)。
17個のフリップフロップF(0)〜F(16)により、タップ数(ここでは、17個)分のデータを保持する(図8の処理2)。
各フリップフロップF(0)〜F(16)からの出力に対応したフィルタ係数が17個の記憶部G(0)〜G(16)に記憶されて用意されている。
【0004】
各フリップフロップF(0)〜F(16)からの出力に対応した17個の乗算器H(0)〜H(16)により、各フリップフロップF(0)〜F(16)からの出力データに対して、各記憶部G(0)〜G(16)に記憶されたフィルタ係数を乗算する(図8の処理3)。
加算器101により、17個の乗算器H(0)〜H(16)からの出力の和を求め(図8の処理4)、この和のデータをフリップフロップ102へ出力する。
フリップフロップ102により、入力された和のデータをFs/4サンプルで保持し、データを出力する(図8の処理5)。ここで、1/4倍ダウンサンプリングを行うため、出力データレートはFs/4となる。
以降、(図8の処理1)〜(図8の処理5)の処理を繰り返して行う。
【0005】
1つの出力データの生成に必要な乗算回数はL(ここでは、17)回であり、この回路ではL個の乗算器H(0)〜H(16)を同時に動作させる必要がある。
しかしながら、出力データは入力データよりもレートが低いため、出力されないデータ部分の乗算は省くことが可能である。
図9には、この点を考慮したダウンサンプリングフィルタの実装方法として、ダウンサンプリングフィルタの回路の他の構成例を示してある。図8の場合と同様に、1/4倍ダウンサンプリングを行い、フィルタタップ数が17であるとする。
【0006】
本例のダウンサンプリングフィルタの回路において行われる動作の一例を示す。
直列に接続された17個のフリップフロップI(0)〜I(16)のうちの1番目のフリップフロップI(0)に、ダウンサンプル前のデータxを入力する(図9の処理1)。
17個のフリップフロップI(0)〜I(16)により、タップ数(ここでは、17個)分のデータを保持する(図9の処理2)。
5個のフリップフロップI(0)、I(4)、I(8)、I(12)、I(16)からの出力に対応したフィルタ係数が5個の記憶部J(1)〜J(5)に記憶されており、Fsのレートで動作するセレクタ111によりそれぞれのデータに乗算するフィルタ係数を選択する(図9の処理3)。
【0007】
各フリップフロップI(0)、I(4)、I(8)、I(12)、I(16)からの出力に対応した5個の乗算器K(1)〜K(5)により、各フリップフロップI(0)、I(4)、I(8)、I(12)、I(16)からの出力データに対して、セレクタ111により選択されたフィルタ係数を乗算する(図9の処理4)。
このように、本例では、17個のフリップフロップI(0)〜I(16)に保持されたデータの中から選抜されたデータに対して、選択されたフィルタ係数との乗算を行っている。なお、本例では、1/4倍ダウンサンプリングであることから、4サンプル間隔で5個のデータを選抜している。
【0008】
加算器112により、5個の乗算器K(1)〜K(5)からの出力の和を求め(図9の処理5)、この和のデータを加算器113へ出力する。
加算器113及びフリップフロップ114により、加算器112から出力された加算結果(和のデータ)を4回(1/4倍ダウンサンプリングであるため)累加算する(図9の処理6)。
フリップフロップ115により、この累加算の結果をFs/4のレートで保持し、出力データとする(図9の処理7)。
その後、ダウンサンプル前のデータを4サンプル進ませて、(図9の処理1)〜(図9の処理7)の処理を繰り返して行う。
【先行技術文献】
【特許文献】
【0009】
【特許文献1】特開平10−322164号公報
【発明の概要】
【発明が解決しようとする課題】
【0010】
上記した図9に示される方法では、回路上で必要な乗算回数をL/N(本例では、繰り上げて、5)に減らすことができる。
しかしながら、それでもフィルタは多くの乗算を必要とする。乗算は回路上では専用の乗算器を用いることが多いが、用意されている乗算器の数が設計上の制約となるため、なるべく使用する乗算器の数を減らすことが望ましい。
【0011】
ダウンサンプリングフィルタは通信分野などで頻繁に用いられる。特に、無線通信機器などにおいては、装置を小型にするために、使用リソースを小さく収めることが求められる。リソースでは、特に、乗算器の数がデバイス上の制約になることが多い。
【0012】
本発明は、このような従来の事情に鑑み為されたもので、1/N倍のダウンサンプリングに用いるフィルタについて、使用する乗算器の数を、例えば従来の半分(或いは、ほぼ半分)に、削減した回路を実現することができるダウンサンプリングフィルタを提供することを目的とする。
【課題を解決するための手段】
【0013】
(時系列値選択手段が1つである場合の構成例)
上記目的を達成するため、本発明では、データに対して1/N倍のダウンサンプリングを行うダウンサンプリングフィルタにおいて、次のような構成とした。
すなわち、当該ダウンサンプリングフィルタは、タップ数Lが奇数ではない場合及び奇数である場合の両方において、前記データの時系列値について、予め設定された態様で、N個の異なるタイミングの時系列値の中から1個の時系列値を選択する時系列値選択手段と、前記時系列値選択手段に対応して設けられ、前記時系列値選択手段により選択された時系列値と予め定められたタイミングの時系列値とを加算する時系列値加算手段と、フィルタ係数に基づいて予め設定された1種類又は2種類以上の係数を記憶する係数記憶手段と、前記係数記憶手段に記憶された係数の中から1種類の係数を選択する係数選択手段と、前記時系列値加算手段による加算結果と前記係数選択手段により選択された係数とを乗算する乗算手段と、を備えた。
【0014】
また、当該ダウンサンプリングフィルタは、前記タップ数Lが奇数である場合には、当該タップ数Lの中央値に対応する係数記憶手段である中央値係数記憶手段と、当該タップ数Lの中央値に対応する時系列値と前記中央値係数記憶手段について前記係数選択手段により選択された係数とを乗算する中央値乗算手段と、前記乗算手段により得られた乗算結果と前記中央値乗算手段により得られた乗算結果を総和する総和手段と、を備えた。
【0015】
更に、当該ダウンサンプリングフィルタは、前記タップ数Lが奇数ではない場合及び奇数である場合の両方において、連続したN回のタイミングについて、前記タップ数Lが奇数ではない場合には前記乗算手段による乗算結果を累加算し、前記タップ数Lが奇数である場合には前記総和手段による総和結果を累加算する累加算手段と、入力レートに対して1/N倍の出力レートで、前記累加算手段による累加算結果を出力する出力手段と、を備えた。
【0016】
また、フィルタ係数は、前記タップ数Lの中央値を中心として昇順と降順で対称である。
各フィルタ係数には、前記タップ数Lの中央値を中心として昇順と降順でN個の異なるタイミングが周期的に割り当てられている。
そして、前記時系列値選択手段と前記時系列値加算手段と前記係数記憶手段と前記係数選択手段と前記乗算手段は、前記連続したN回のタイミングのそれぞれについて各タイミングに割り当てられたフィルタ係数及び対応する時系列値が乗算されるように構成され、また、前記タップ数Lが奇数である場合には、前記中央値係数記憶手段と前記係数選択手段と前記中央値乗算手段は、当該タップ数Lの中央値に対応する時系列値に関する乗算が前記連続したN回のタイミングのいずれかのタイミングで行われるように構成された。
【0017】
従って、1/N倍のダウンサンプリングに用いるフィルタについて、使用する乗算器の数を、例えば従来の半分(或いは、ほぼ半分)に、削減した回路を実現することができる。
ここで、ダウンサンプリングの倍数(1/N)としては、種々な値が用いられてもよい。
また、フィルタのタップ数Lとしては、種々な値が用いられてもよい。
また、係数記憶手段としては、例えば、メモリを用いて構成することができる。
【0018】
(時系列値選択手段が2つ以上である場合の構成例)
上記目的を達成するため、本発明では、データに対して1/N倍のダウンサンプリングを行うダウンサンプリングフィルタにおいて、次のような構成とした。
すなわち、2つ以上の時系列値選択手段が、前記データの時系列値について、予め設定された態様で、N個の異なるタイミングの時系列値の中から1個の時系列値を選択する。
2つ以上の時系列値加算手段が、前記2つ以上の時系列値選択手段に対応して設けられ、各時系列値選択手段について、各時系列値選択手段により選択された時系列値と予め定められたタイミングの時系列値とを加算する。
2つ以上の係数記憶手段が、フィルタ係数に基づいて予め設定された1種類又は2種類以上の係数を記憶する。
係数選択手段が、前記係数記憶手段のそれぞれについて記憶された係数の中から1種類の係数を選択する。
2つ以上の乗算手段が、前記時系列値加算手段及び前記係数記憶手段の組み合わせ毎に、前記時系列値加算手段による加算結果と前記係数選択手段により選択された係数とを乗算することを行い、また、タップ数Lが奇数である場合には当該タップ数Lの中央値に対応する時系列値とそれに対応する前記係数記憶手段について前記係数選択手段により選択された係数とを乗算することを行う。
総和手段が、前記2つ以上の乗算手段により得られた乗算結果を総和する。
累加算手段が、連続したN回のタイミングについて、前記総和手段による総和結果を累加算する。
出力手段が、入力レートに対して1/N倍の出力レートで、前記累加算手段による累加算結果を出力する。
【0019】
また、フィルタ係数は、前記タップ数Lの中央値を中心として昇順と降順で対称である。
各フィルタ係数には、前記タップ数Lの中央値を中心として昇順と降順でN個の異なるタイミングが周期的に割り当てられている。
そして、前記時系列値選択手段と前記時系列値加算手段と前記係数記憶手段と前記係数選択手段と前記乗算手段は、前記連続したN回のタイミングのそれぞれについて各タイミングに割り当てられたフィルタ係数及び対応する時系列値が乗算されるように構成され、また、前記タップ数Lが奇数である場合には当該タップ数Lの中央値に対応する時系列値に関する乗算が前記連続したN回のタイミングのいずれかのタイミングで行われるように構成された。
【0020】
従って、1/N倍のダウンサンプリングに用いるフィルタについて、使用する乗算器の数を、例えば従来の半分(或いは、ほぼ半分)に、削減した回路を実現することができる。
ここで、ダウンサンプリングの倍数(1/N)としては、種々な値が用いられてもよい。
また、フィルタのタップ数Lとしては、種々な値が用いられてもよい。
また、係数記憶手段としては、例えば、メモリを用いて構成することができる。
【0021】
ここで、後述する実施例で参照される図4〜図7との対応を分かり易くするために、かっこ“()”内に具体例を示したものを記載しておく。
データに対して1/N(一例として、N=4)倍のダウンサンプリングを行うダウンサンプリングフィルタにおいて、
前記データの時系列値(x)について、予め設定された態様(図4〜図7に示される態様)で、N個の異なるタイミング(例えば、サンプルタイミング)の時系列値の中から1個の時系列値を選択する2つ以上の時系列値選択手段(セレクタ1により制御される各保持部B(1)、B(2))と、
前記2つ以上の時系列値選択手段に対応して設けられ、各時系列値選択手段について、各時系列値選択手段により選択された時系列値と予め定められたタイミングの時系列値(フリップフロップA(0)、A(4)から出力される時系列値)とを加算する2つ以上の時系列値加算手段(加算器C(1)、C(2))と、
フィルタ係数(例えば、図2に示されるC)に基づいて予め設定された1種類又は2種類以上の係数(なお、C以外に0が含まれてもよい)を記憶する2つ以上の係数記憶手段(2種類以上の係数を記憶する記憶部D(1)、D(2)及び1種類(0を除く)の係数を記憶する記憶部D(3))と、
前記係数記憶手段のそれぞれについて記憶された係数の中から1種類の係数を選択する(なお、0が選択されてもよい)係数選択手段(セレクタ2)と、
前記時系列値加算手段及び前記係数記憶手段の組み合わせ毎に、前記時系列値加算手段による加算結果と前記係数選択手段により選択された係数とを乗算することを行い(乗算器E(1)、E(2)による処理)、また、タップ数L(一例として、L=17)の中央値(9:なお、0〜16で考えると中央値は8)が整数値である場合(つまり、タップ数Lが奇数である場合)には当該中央値に対応する時系列値(x)とそれに対応する前記係数記憶手段(記憶部D(3))について前記係数選択手段により選択された係数(C)とを乗算することを行う(乗算器E(3)による処理)2つ以上の乗算手段(乗算器E(1)〜E(3))と、
前記2つ以上の乗算手段により得られた乗算結果を総和する総和手段(加算器11)と、
連続したN回のタイミング(t=T、T+1、T+2、T+3:例えば、サンプル単位)について、前記総和手段による総和結果を累加算する累加算手段(加算器12及びフリップフロップ13)と、
入力レート(Fs)に対して1/N倍の出力レート(Fs/N)で、前記累加算手段による累加算結果を出力する出力手段(フリップフロップ14)と、を備え、
フィルタ係数は、前記タップ数Lの中央値を中心として昇順と降順で対称であり(図2(a)参照。)、
各フィルタ係数には、前記タップ数Lの中央値を中心として昇順と降順でN個の異なるタイミング(t=T、T+1、T+2、T+3:例えば、サンプル単位)が周期的に割り当てられており(図2(a)、図2(b)参照。)、
前記時系列値選択手段と前記時系列値加算手段と前記係数記憶手段と前記係数選択手段と前記乗算手段は、前記連続したN回のタイミングのそれぞれについて各タイミングに割り当てられたフィルタ係数及び対応する時系列値が乗算されるように構成され、また、前記タップ数Lが奇数である場合には当該タップ数Lの中央値に対応する時系列値(x)に関する乗算が前記連続したN回のタイミングのいずれかのタイミング(例えば、t=T+3のタイミング)で行われるように構成された、
ことを特徴とするダウンサンプリングフィルタ。
【0022】
ここで、N、Lを一般化した場合について例示しておく。但し、ここでは、下記に示す各個数が整数になるようにN、Lが設定されているとする。
本例では、N回の累加算で、L個のCを総和する。
このため、Lが奇数である場合には、各回のタイミングで{(L−1)/N}個のCを求め、更に、いずれか1回のタイミングでLの中央値に対応する時系列値に関するCを求める。この場合、例えば、加算器の数は{(L−1)/2N}個となり、乗算器の数は{1+(L−1)/2N}個となる。
一方、Lが偶数である場合には、各回のタイミングで(L/N)個のCを求める。この場合、例えば、加算器の数は(L/2N)個となり、乗算器の数も(L/2N)個となる。
【発明の効果】
【0023】
以上説明したように、本発明に係るダウンサンプリングフィルタによると、例えば、1/N倍のダウンサンプリングに用いるフィルタについて、使用する乗算器の数を削減した回路を実現することができる。
【図面の簡単な説明】
【0024】
【図1】本発明の一実施例に係るダウンサンプリングフィルタの回路の構成例を示す図である。
【図2】(a)はタップ数が17である場合におけるフィルタ係数の一例及び対応する1/4倍ダウンサンプル時の使用タイミングの一例を示す図であり、(b)は使用タイミング毎のフィルタ係数の一例を示す図である。
【図3】タップ数が17である場合におけるフィルタ係数のグラフの一例を示す図である。
【図4】t=T(サンプル)においてダウンサンプリングフィルタにより行われる動作の一例を示す図である。
【図5】t=T+1(サンプル)においてダウンサンプリングフィルタにより行われる動作の一例を示す図である。
【図6】t=T+2(サンプル)においてダウンサンプリングフィルタにより行われる動作の一例を示す図である。
【図7】t=T+3(サンプル)においてダウンサンプリングフィルタにより行われる動作の一例を示す図である。
【図8】背景技術に係るダウンサンプリングフィルタの回路の構成例を示す図である。
【図9】背景技術に係るダウンサンプリングフィルタの回路の他の構成例を示す図である。
【発明を実施するための形態】
【0025】
本発明に係る実施例を図面を参照して説明する。
図1には、本発明の一実施例に係るFIR(Finite Impulse Response)フィルタを用いたダウンサンプリングフィルタの回路の構成例を示してある。本例では、1/N倍のダウンサンプリングフィルタであり、タップ数がLである場合について説明する。入力データレートをFsとすると、出力データレートはFs/Nとなる。
【0026】
本例のダウンサンプリングフィルタは、M個のフリップフロップA(0)〜A(M−1)と、複数個の保持部B(1)、B(2)と、複数個の加算器C(1)、C(2)と、セレクタ1と、複数個の記憶部D(1)、D(2)、D(M/2)と、複数個の乗算器E(1)、E(2)、E(M/2)と、セレクタ2と、2個の加算器11、12と、2個のフリップフロップ13、14を備えている。
【0027】
ここで、Mはタップ数Lである(M=L)。
また、記憶部D(M/2)及び乗算器E(M/2)は、タップ数Mの中心に対応しており、例えば、タップ数Mが奇数である場合にはフリップフロップA((M−1)/2)からの出力データを処理する。具体例として、M=17である場合には、フリップフロップA(8)からの出力データを処理する。
一方、タップ数Mが偶数である場合には、記憶部D(M/2)及び乗算器E(M/2)は備えられなくてもよい。
【0028】
本例のダウンサンプリングフィルタにおいて行われる動作の概略的な一例を示す。
直列に接続されたM個のフリップフロップA(0)〜A(M−1)のうちの1番目のフリップフロップA(0)に、ダウンサンプル前のデータxを入力する(図1の処理1)。
M個のフリップフロップA(0)〜A(M−1)により、フィルタ処理に必要な分のデータをFsのレートで保持する(図1の処理2)。
【0029】
セレクタ1により、各保持部B(1)、B(2)について、後の処理に必要なデータを選択する(図1の処理3)。具体例として、保持部B(1)では、セレクタ1により、フリップフロップ(M−7)、フリップフロップ(M−5)、フリップフロップ(M−3)、フリップフロップ(M−1)から出力されるデータの中から1つのデータを選択して、加算器C(1)へ出力する。また、保持部B(2)では、セレクタ1により、フリップフロップ(M−11)、フリップフロップ(M−9)、フリップフロップ(M−7)、フリップフロップ(M−5)から出力されるデータの中から1つのデータを選択して、加算器C(2)へ出力する。
【0030】
各加算器C(1)、C(2)では、各保持部B(1)、B(2)で選択されたデータと定められたタイミングのデータとを加算して、当該加算結果を出力する(図1の処理4)。具体例として、加算器C(1)では、保持部B(1)で選択されたデータとフリップフロップA(0)からのデータとを加算して、当該加算結果を乗算器E(1)へ出力する。また、加算器C(2)では、保持部B(2)で選択されたデータとフリップフロップA(4)からのデータとを加算して、当該加算結果を乗算器E(2)へ出力する。
【0031】
各記憶部D(1)、D(2)、D(M/2)はそれぞれフィルタ係数に関する係数を記憶しており、セレクタ2により、用意しておいた係数の中から1つを選択する(図1の処理5)。ここで、この係数としては、例えば、ゼロ(0)が含まれてもよい。
各加算器C(1)、C(2)から出力されたデータなどとセレクタ2により選択された係数を、対応する乗算器E(1)、E(2)、E(M/2)により、乗算する(図1の処理6)。
加算器11により、この乗算結果の出力の和を求め、その結果を加算器12へ出力する(図1の処理7)。
【0032】
加算器12及びフリップフロップ13により、加算器11からの入力(和の結果)をN回累加算して、その結果をフリップフロップ14へ出力する(図1の処理8)。
フリップフロップ14により、入力された累加算結果をFs/Nのレートで保持して、出力データとする(図1の処理9)。
その後、ダウンサンプル前のデータをNサンプル進ませて、(図1の処理1)〜(図1の処理9)の処理を繰り返して行う。
【0033】
以下で、具体例として、1/4倍のダウンサンプリングで、タップ数が17である場合に、本例のダウンサンプリングフィルタにおいて行われる動作の例を示す。
フィルタ係数をC(例えば、0≦n<17)とする。
図2(a)には、タップ数が17である場合におけるフィルタ係数の一例を示してあり、対応する1/4倍ダウンサンプル時の使用タイミングの一例を示してある。
図2(b)には、使用タイミング毎(例えば、サンプル単位)のフィルタ係数の一例を示してある。本例では、使用タイミングとして、サンプル単位で時間を表すT、T+1、T+2、T+3を用いている。
図3には、タップ数が17である場合におけるフィルタ係数のグラフの一例を示してある。
【0034】
本方式で用いるフィルタ係数は中心(ここではC)について対称である。1/4倍ダウンサンプリングの場合、例えば、従来方式に示したようにフィルタ係数を入力データのレートで変更しながら動作させることにより乗算器の数を削減することができる。
本方式においても、まず、その処理に適するようにフィルタ係数を使用タイミング毎(サンプル毎)に分類する。分類後のフィルタ係数が図2(b)に示されている。
【0035】
入力データをx(例えば、0≦n<17で、繰り返す)とした場合、フィルタの出力データは(式1)により表される。
【0036】
【数1】

【0037】
1/4倍ダウンサンプリングの場合には、4サンプルに1回この値を出力すればよい。また、フィルタ係数は中心について対称であるため、同一のフィルタ係数を乗算する2つの入力データを乗算前に加算することにより半分の乗算回数にすることができる。
【0038】
以下で、各サンプルにおける動作の例を示す。
図4には、t=T(サンプル)について、本例のダウンサンプリングフィルタにより行われる動作の一例を示してある。
直列に接続された17個のフリップフロップA(0)〜A(16)のうちの1番目のフリップフロップA(0)に、ダウンサンプル前のデータxを入力する(図4の処理1)。
17個のフリップフロップA(0)〜A(16)により、フィルタ処理に必要な分(本例では、17個)のデータをFsのレートで保持する(図4の処理2)。
本例において、t=Tでは、先頭データxはフリップフロップA(13)に保持されているとする。
【0039】
セレクタ1及び保持部B(1)、B(2)により、適当なデータを選択する(図4の処理3)。本例では、フリップフロップA(10)に保持されているxを保持部B(1)において選択し、フリップフロップA(6)に保持されているxを保持部B(2)において選択する。
加算器C(1)、C(2)により、選択されたデータと定められたフリップフロップのデータを加算する(図4の処理4)。本例では、定められたフリップフロップA(0)に保持されているx13と保持部B(1)で選択されたデータであるxとを加算器C(1)により加算してx+x13を算出し、また、定められたフリップフロップA(4)に保持されているxと保持部B(2)で選択されたデータであるxとを加算器C(2)により加算してx+xを算出する。
【0040】
セレクタ2により、各記憶部D(1)〜D(3)について、用意しておいた係数の中から1つを選択する(図4の処理5)。本例では、各記憶部D(1)、D(2)、D(3)について、それぞれ、C、C、0を選択する。
各乗算器E(1)〜E(3)により、各加算結果のデータなどと各選択された係数を乗算する(図4の処理6)。本例では、乗算器E(1)により乗算結果としてC(x+x13)を求め、乗算器E(2)により乗算結果としてC(x+x)を求め、乗算器E(3)により乗算結果として0を求める。
【0041】
加算器11により、全ての乗算結果の出力の和を求める(図4の処理7)。本例では、加算結果として、C(x+x13)+C(x+x)を求める。
加算器12及びフリップフロップ13により、加算結果を累加算する(図4の処理8)。本例では、4回の累加算の1回目となるため、累加算結果は、C(x+x13)+C(x+x)となる。
【0042】
図5には、t=T+1(サンプル)について、本例のダウンサンプリングフィルタにより行われる動作の一例を示してある。
直列に接続された17個のフリップフロップA(0)〜A(16)のうちの1番目のフリップフロップA(0)に、ダウンサンプル前のデータxを入力する(図5の処理1)。
17個のフリップフロップA(0)〜A(16)により、フィルタ処理に必要な分(本例では、17個)のデータをFsのレートで保持する(図5の処理2)。
本例において、t=T+1では、先頭データxはフリップフロップA(14)に保持されている。
【0043】
セレクタ1及び保持部B(1)、B(2)により、適当なデータを選択する(図5の処理3)。本例では、フリップフロップA(12)に保持されているxを保持部B(1)において選択し、フリップフロップA(8)に保持されているxを保持部B(2)において選択する。
加算器C(1)、C(2)により、選択されたデータと定められたフリップフロップのデータを加算する(図5の処理4)。本例では、定められたフリップフロップA(0)に保持されているx14と保持部B(1)で選択されたデータであるxとを加算器C(1)により加算してx+x14を算出し、また、定められたフリップフロップA(4)に保持されているx10と保持部B(2)で選択されたデータであるxとを加算器C(2)により加算してx+x10を算出する。
【0044】
セレクタ2により、各記憶部D(1)〜D(3)について、用意しておいた係数の中から1つを選択する(図5の処理5)。本例では、各記憶部D(1)、D(2)、D(3)について、それぞれ、C、C、0を選択する。
各乗算器E(1)〜E(3)により、各加算結果のデータなどと各選択された係数を乗算する(図5の処理6)。本例では、乗算器E(1)により乗算結果としてC(x+x14)を求め、乗算器E(2)により乗算結果としてC(x+x10)を求め、乗算器E(3)により乗算結果として0を求める。
【0045】
加算器11により、全ての乗算結果の出力の和を求める(図5の処理7)。本例では、加算結果として、C(x+x14)+C(x+x10)を求める。
加算器12及びフリップフロップ13により、加算結果を累加算する(図5の処理8)。本例では、4回の累加算の2回目となるため、累加算結果は、C(x+x14)+C(x+x13)+C(x+x10)+C(x+x)となる。
【0046】
図6には、t=T+2(サンプル)について、本例のダウンサンプリングフィルタにより行われる動作の一例を示してある。
直列に接続された17個のフリップフロップA(0)〜A(16)のうちの1番目のフリップフロップA(0)に、ダウンサンプル前のデータxを入力する(図6の処理1)。
17個のフリップフロップA(0)〜A(16)により、フィルタ処理に必要な分(本例では、17個)のデータをFsのレートで保持する(図6の処理2)。
本例において、t=T+2では、先頭データxはフリップフロップA(15)に保持されている。
【0047】
セレクタ1及び保持部B(1)、B(2)により、適当なデータを選択する(図6の処理3)。本例では、フリップフロップA(14)に保持されているxを保持部B(1)において選択し、フリップフロップA(10)に保持されているxを保持部B(2)において選択する。
加算器C(1)、C(2)により、選択されたデータと定められたフリップフロップのデータを加算する(図6の処理4)。本例では、定められたフリップフロップA(0)に保持されているx15と保持部B(1)で選択されたデータであるxとを加算器C(1)により加算してx+x15を算出し、また、定められたフリップフロップA(4)に保持されているx11と保持部B(2)で選択されたデータであるxとを加算器C(2)により加算してx+x11を算出する。
【0048】
セレクタ2により、各記憶部D(1)〜D(3)について、用意しておいた係数の中から1つを選択する(図6の処理5)。本例では、各記憶部D(1)、D(2)、D(3)について、それぞれ、C、C、0を選択する。
各乗算器E(1)〜E(3)により、各加算結果のデータなどと各選択された係数を乗算する(図6の処理6)。本例では、乗算器E(1)により乗算結果としてC(x+x15)を求め、乗算器E(2)により乗算結果としてC(x+x11)を求め、乗算器E(3)により乗算結果として0を求める。
【0049】
加算器11により、全ての乗算結果の出力の和を求める(図6の処理7)。本例では、加算結果として、C(x+x15)+C(x+x11)を求める。
加算器12及びフリップフロップ13により、加算結果を累加算する(図6の処理8)。本例では、4回の累加算の3回目となるため、累加算結果は、C(x+x15)+C(x+x14)+C(x+x13)+C(x+x11)+C(x+x10)+C(x+x)となる。
【0050】
図7には、t=T+3(サンプル)について、本例のダウンサンプリングフィルタにより行われる動作の一例を示してある。
直列に接続された17個のフリップフロップA(0)〜A(16)のうちの1番目のフリップフロップA(0)に、ダウンサンプル前のデータxを入力する(図7の処理1)。
17個のフリップフロップA(0)〜A(16)により、フィルタ処理に必要な分(本例では、17個)のデータをFsのレートで保持する(図7の処理2)。
本例において、t=T+3では、先頭データxはフリップフロップA(16)に保持されている。
【0051】
セレクタ1及び保持部B(1)、B(2)により、適当なデータを選択する(図7の処理3)。本例では、フリップフロップA(16)に保持されているxを保持部B(1)において選択し、フリップフロップA(12)に保持されているxを保持部B(2)において選択し、更に、フリップフロップA(8)に保持されているxを選択する(本例では、その係数を0以外の値とする。)。
【0052】
加算器C(1)、C(2)により、選択されたデータと定められたフリップフロップのデータを加算する(図7の処理4)。本例では、定められたフリップフロップA(0)に保持されているx16と保持部B(1)で選択されたデータであるxとを加算器C(1)により加算してx+x16を算出し、また、定められたフリップフロップA(4)に保持されているx12と保持部B(2)で選択されたデータであるxとを加算器C(2)により加算してx+x12を算出する。なお、xはタップの中心にあたるデータであるため、加算は行わない。
【0053】
セレクタ2により、各記憶部D(1)〜D(3)について、用意しておいた係数の中から1つを選択する(図7の処理5)。本例では、各記憶部D(1)、D(2)、D(3)について、それぞれ、C、C、Cを選択する。
各乗算器E(1)〜E(3)により、各加算結果のデータなどと各選択された係数を乗算する(図7の処理6)。本例では、乗算器E(1)により乗算結果としてC(x+x16)を求め、乗算器E(2)により乗算結果としてC(x+x12)を求め、乗算器E(3)により乗算結果としてCを求める。
【0054】
加算器11により、全ての乗算結果の出力の和を求める(図7の処理7)。本例では、加算結果として、C(x+x16)+C(x+x12)+Cを求める。
加算器12及びフリップフロップ13により、加算結果を累加算する(図7の処理8)。本例では、4回の4回目となるため累加算の、累加算結果は、(式1)に示されるものとなり、具体的には、C(x+x16)+C(x+x15)+C(x+x14)+C(x+x13)+C(x+x12)+C(x+x11)+C(x+x10)+C(x+x)+Cとなる。
フリップフロップ14により、累加算結果をFs/4のサンプルで保持して、フィルタ出力yとする(図7の処理9)。
【0055】
ここで、セレクタ2、記憶部D(3)、乗算器E(3)により行われるCを取得する乗算処理は、t=T+3のタイミングでのみ行われ、本例では、これを実現するために、他のタイミングt=T、T+1、T+2では記憶部D(3)から係数として(係数の代わりに)0を出力する構成としたが、他の構成例として、当該他のタイミングt=T、T+1、T+2ではxが乗算器E(3)に入力されずに例えばゼロ信号が乗算器E(3)に入力されるような構成が用いられてもよい。
【0056】
以上のように、本例のダウンサンプリングフィルタでは、1/N倍ダウンサンプリングを行うFIRフィルタにおいて、例えば、乗算器の数を1/N(或いは、ほぼ1/N)に減らした回路の効果に加えて、フィルタ係数の対称性を用いて更に半分(或いは、ほぼ半分)に乗算器の数を減らす効果が得られている。
また、本例のダウンサンプリングフィルタでは、ダウンサンプリングフィルタに対して、ダウンサンプル前のタイミング毎にフィルタ係数を分類し、また、同一のフィルタ係数を乗算する2つのデータを選択機能により選択することにより、フィルタ出力を行う。
また、本例のダウンサンプリングフィルタでは、ダウンサンプリングフィルタに対して、前記選択機能を有し、それらのフィルタ係数とデータを乗算して、累加算することにより、フィルタ出力を行う。
【0057】
従って、本例のダウンサンプリングフィルタでは、ダウンサンプリングフィルタの実装回路において、使用する乗算器の数を小さくすることができ、例えば、従来に比べて、回路を小規模にし、装置をより小型にすることが可能である。
【0058】
ここで、本例のダウンサンプリングフィルタでは、各加算器C(1)、C(2)により加算するデータを各タイミング(t=T、T+1、T+2、T+3)で変更しており、更に、その実現手段として、加算するデータをセレクタ1により選択する機能を有している。例えば、加算するデータを変更する機能を、RAM(或いは、例えば、シフトレジスタなど)の参照アドレスを変更することで実現するような場合には、データを貯め込む必要性が生じ、処理時間や回路構成が大きくなるという問題が発生する可能性が考えられるが、本例では、加算するデータを選択する機能を用いることにより、このような問題を改善している。
【0059】
なお、図4〜図7を例とすると、本例のダウンサンプリングフィルタでは、xによりデータの時系列値が構成されており、セレクタ1及び保持部B(1)の機能により1つの時系列値選択手段が構成されており、セレクタ1及び保持部B(2)の機能により他の1つの時系列値選択手段が構成されており、2つの加算器C(1)、C(2)の機能により2つの時系列値加算手段が構成されており、3つの記憶部D(1)、D(2)、D(3)の機能により3つの係数記憶手段が構成されており、セレクタ2の機能により係数選択手段が構成されており、3つの乗算器E(1)、E(2)、E(3)の機能により3つの乗算手段が構成されており、加算器11の機能により総和手段が構成されており、加算器12及びフリップフロップ13の機能により累加算手段が構成されており、フリップフロップ14の機能により出力手段が構成されている。
本例では、2つ以上の時系列値選択手段が備えられる構成例を示したが、例えば、1つの時系列値選択手段が備えられる構成が用いられてもよい。
【0060】
ここで、本発明に係るシステムや装置などの構成としては、必ずしも以上に示したものに限られず、種々な構成が用いられてもよい。また、本発明は、例えば、本発明に係る処理を実行する方法或いは方式や、このような方法や方式を実現するためのプログラムや当該プログラムを記録する記録媒体などとして提供することも可能であり、また、種々なシステムや装置として提供することも可能である。
また、本発明の適用分野としては、必ずしも以上に示したものに限られず、本発明は、種々な分野に適用することが可能なものである。
また、本発明に係るシステムや装置などにおいて行われる各種の処理としては、例えばプロセッサやメモリ等を備えたハードウエア資源においてプロセッサがROM(Read Only Memory)に格納された制御プログラムを実行することにより制御される構成が用いられてもよく、また、例えば当該処理を実行するための各機能手段が独立したハードウエア回路として構成されてもよい。
また、本発明は上記の制御プログラムを格納したフロッピー(登録商標)ディスクやCD(Compact Disc)−ROM等のコンピュータにより読み取り可能な記録媒体や当該プログラム(自体)として把握することもでき、当該制御プログラムを当該記録媒体からコンピュータに入力してプロセッサに実行させることにより、本発明に係る処理を遂行させることができる。
【符号の説明】
【0061】
1、2、111・・セレクタ、 11、12、101、112、113、C・・加算器、 13、14、102、114、115、A、F、I・・フリップフロップ、 B・・保持部、 D、G、J・・記憶部、 E、H、K・・乗算器、

【特許請求の範囲】
【請求項1】
データに対して1/N倍のダウンサンプリングを行うダウンサンプリングフィルタにおいて、
当該ダウンサンプリングフィルタは、タップ数Lが奇数ではない場合及び奇数である場合の両方において、
前記データの時系列値について、予め設定された態様で、N個の異なるタイミングの時系列値の中から1個の時系列値を選択する時系列値選択手段と、
前記時系列値選択手段に対応して設けられ、前記時系列値選択手段により選択された時系列値と予め定められたタイミングの時系列値とを加算する時系列値加算手段と、
フィルタ係数に基づいて予め設定された1種類又は2種類以上の係数を記憶する係数記憶手段と、
前記係数記憶手段に記憶された係数の中から1種類の係数を選択する係数選択手段と、
前記時系列値加算手段による加算結果と前記係数選択手段により選択された係数とを乗算する乗算手段と、を備え、
また、当該ダウンサンプリングフィルタは、前記タップ数Lが奇数である場合には、
当該タップ数Lの中央値に対応する係数記憶手段である中央値係数記憶手段と、
当該タップ数Lの中央値に対応する時系列値と前記中央値係数記憶手段について前記係数選択手段により選択された係数とを乗算する中央値乗算手段と、
前記乗算手段により得られた乗算結果と前記中央値乗算手段により得られた乗算結果を総和する総和手段と、を備え、
更に、当該ダウンサンプリングフィルタは、前記タップ数Lが奇数ではない場合及び奇数である場合の両方において、
連続したN回のタイミングについて、前記タップ数Lが奇数ではない場合には前記乗算手段による乗算結果を累加算し、前記タップ数Lが奇数である場合には前記総和手段による総和結果を累加算する累加算手段と、
入力レートに対して1/N倍の出力レートで、前記累加算手段による累加算結果を出力する出力手段と、を備え、
フィルタ係数は、前記タップ数Lの中央値を中心として昇順と降順で対称であり、
各フィルタ係数には、前記タップ数Lの中央値を中心として昇順と降順でN個の異なるタイミングが周期的に割り当てられており、
前記時系列値選択手段と前記時系列値加算手段と前記係数記憶手段と前記係数選択手段と前記乗算手段は、前記連続したN回のタイミングのそれぞれについて各タイミングに割り当てられたフィルタ係数及び対応する時系列値が乗算されるように構成され、また、前記タップ数Lが奇数である場合には、前記中央値係数記憶手段と前記係数選択手段と前記中央値乗算手段は、当該タップ数Lの中央値に対応する時系列値に関する乗算が前記連続したN回のタイミングのいずれかのタイミングで行われるように構成された、
ことを特徴とするダウンサンプリングフィルタ。
【請求項2】
データに対して1/N倍のダウンサンプリングを行うダウンサンプリングフィルタにおいて、
前記データの時系列値について、予め設定された態様で、N個の異なるタイミングの時系列値の中から1個の時系列値を選択する2つ以上の時系列値選択手段と、
前記2つ以上の時系列値選択手段に対応して設けられ、各時系列値選択手段について、各時系列値選択手段により選択された時系列値と予め定められたタイミングの時系列値とを加算する2つ以上の時系列値加算手段と、
フィルタ係数に基づいて予め設定された1種類又は2種類以上の係数を記憶する2つ以上の係数記憶手段と、
前記係数記憶手段のそれぞれについて記憶された係数の中から1種類の係数を選択する係数選択手段と、
前記時系列値加算手段及び前記係数記憶手段の組み合わせ毎に、前記時系列値加算手段による加算結果と前記係数選択手段により選択された係数とを乗算することを行い、また、タップ数Lが奇数である場合には当該タップ数Lの中央値に対応する時系列値とそれに対応する前記係数記憶手段について前記係数選択手段により選択された係数とを乗算することを行う2つ以上の乗算手段と、
前記2つ以上の乗算手段により得られた乗算結果を総和する総和手段と、
連続したN回のタイミングについて、前記総和手段による総和結果を累加算する累加算手段と、
入力レートに対して1/N倍の出力レートで、前記累加算手段による累加算結果を出力する出力手段と、を備え、
フィルタ係数は、前記タップ数Lの中央値を中心として昇順と降順で対称であり、
各フィルタ係数には、前記タップ数Lの中央値を中心として昇順と降順でN個の異なるタイミングが周期的に割り当てられており、
前記時系列値選択手段と前記時系列値加算手段と前記係数記憶手段と前記係数選択手段と前記乗算手段は、前記連続したN回のタイミングのそれぞれについて各タイミングに割り当てられたフィルタ係数及び対応する時系列値が乗算されるように構成され、また、前記タップ数Lが奇数である場合には当該タップ数Lの中央値に対応する時系列値に関する乗算が前記連続したN回のタイミングのいずれかのタイミングで行われるように構成された、
ことを特徴とするダウンサンプリングフィルタ。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2011−10035(P2011−10035A)
【公開日】平成23年1月13日(2011.1.13)
【国際特許分類】
【出願番号】特願2009−151455(P2009−151455)
【出願日】平成21年6月25日(2009.6.25)
【出願人】(000001122)株式会社日立国際電気 (5,007)