(57)【要約】【課題】多タップのデジタルフィルタをパラレルに積和演算可能に構成しつつ、タップデータ記憶用遅延素子間のデータ転送頻度を低減する。【解決手段】ｎワード（ｎは自然数で例えば６４）の入力データを演算して１ワードの出力データを出力するデジタルフィルタを、ｎの整数倍でかつタップ数以上の個数（例えば２０４８）を有し、データ入力毎に１ワードずつ書き込み動作する遅延素子１０４〜１１３と、遅延素子の書き込み順に選択された遅延素子１０４〜１１３の出力が入力に循環的に接続されたｎ／Ｎ個（Ｎは自然数で例えばｎ／Ｎは８）のセレクタ１１４〜１１７と、セレクタ１１４〜１１７の出力と係数データ記憶部１０２に記憶されたタップ係数の積和演算を行う積和演算装置１０３とを用いて構成する。【選択図】  図１
2005318204.tif 000002
【特許請求の範囲】
【請求項１】
ｎワード（ｎは自然数）の入力データを演算して１ワードの出力データを出力するデジタルフィルタにおいて、
ｎの整数倍でかつタップ数以上の個数を有し、データ入力毎に１ワードずつ書き込み動作する遅延素子と、
前記遅延素子の書き込み順に選択された前記遅延素子の出力が入力に循環的に接続されたｎ／Ｎ個（Ｎは自然数）のセレクタと、
前記セレクタの出力とタップ係数の積和演算を行う積和演算装置と、
を備えるデジタルフィルタ。
【請求項２】
前記遅延素子がＲＡＭである請求項１記載のデジタルフィルタ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はダウンサンプリングを伴うデジタルフィルタに関する。
【背景技術】
【０００２】
デジタルフィルタの構成として、インパルス応答が有限である有限インパルス応答（ＦＩＲ）型と、インパルス応答が無限に続く無限インパルス応答（ＩＩＲ）型とがある。両者のうちＦＩＲ型は、ＩＩＲ型に較べてフィルタ次数（タップ数）は大きいが、群遅延歪が無く、リミットサイクル発振が発生しないという長所を有するため、近年のＬＳＩの微細化とともに、特にオーディオ分野の用途が拡大している。
【０００３】
近年、高精度オーディオ用にΔΣ型オーバサンプリングＡＤコンバータが広く用いられている。このＡＤコンバータの特徴として、高いＳ／Ｎを実現する手段としてオーバーサンプリング率を高くしていることが挙げられる。そのときに、ΔΣ変調器中のアナログ回路からの出力を所望のサンプル速度（例えばオーディオ用ではｆｓ＝３２ｋＨｚ〜４８ｋＨｚ）にダウンサンプリング（デシメーション）するために、高いデシメーション比のフィルタが必要になる。
【０００４】
また、ＦＩＲフィルタの特性として、タップ数が多いほど良好なフィルタ特性が実現できることが挙げられる。従って、高精度なＡＤコンバータを実現しようとすると、高速でタップ数が大きいＦＩＲフィルタが求められる。例えば、オーディオ用に必要なレベル（１６〜２０ビット相当）のＳ／Ｎを得るためには、入力アナログ信号をｆｓの６４〜２５６倍程度の高速１ビットＰＤＭ（パルス密度変調）信号に変換する必要がある。
【０００５】
その際、オーディオ用として必要なタップ数は２０００〜４０００タップが必要となり、ＦＩＲフィルタ中の乗算器は１００〜２００ＭＨｚのスピード（４８ｋＨｚ×４０００＝１９２ＭＨｚ）が要求されることになるが、高速なロジックを実現する製造プロセスが必要となるため、コスト面で不利である。
【０００６】
従って、一般に複数の低デシメーション比率のＦＩＲフィルタを多段縦続する手段により、上記デジタルフィルタを実現している。図３を用いて２段のＦＩＲ縦続接続について説明する。
【０００７】
図３の構成において、１段目のＦＩＲフィルタ３０１には高速動作可能なフィルタ、例えば移動平均フィルタ等を用いる。移動平均フィルタは、速度のボトルネックとなる乗算器を含まないため高速動作が可能であるが、フィルタ特性を自由に変更することができない。
【０００８】
２段目のＦＩＲフィルタ３０２は語長の大きい低速なＦＩＲフィルタとして構成する。このとき、２段目のＦＩＲフィルタの特性は、１段目と２段目のフィルタ系全体としての特性が規格を満足するように決める必要がある。
【０００９】
しかしながら、この場合後段のフィルタ設計時に前段のフィルタ特性を補正するように係数設定する必要があるが、この補正のため後段のフィルタでの阻止帯域特性に悪影響を与えてしまうという問題がある。
【００１０】
ΔΣ変調による高オーバーサンプリングデータに対するデシメーションを、フィルタの多段縦続による悪影響が無いように１段で行う従来の技術としては、特許文献１に記載されている技術がある。この技術では、ＦＩＲフィルタ内の遅延素子の構成を工夫し、パラレルに積和演算を行うことで乗算器の処理速度を緩和し、１段のＦＩＲフィルタで多タップ数かつ高デシメーション比率のＦＩＲフィルタを実現している。
【００１１】
以下、従来例としてこの方式のフィルタの動作原理を図を用いて説明する。図１０は従来の高速高デシメーション比のＦＩＲフィルタの構成例を示すブロック図である。また、そのタイミングチャートを図１１に示す。
【００１２】
図１０において、１００１はデータ記憶部、１００２は係数データ記憶部、１００３は積和演算部、１００４はデータレート変換用バッファ、１００５は０番目のセレクタ、１００６は０番目の遅延素子、１００７は１番目の遅延素子、１００８は２５４番目の遅延素子、１００９は２５５番目の遅延素子、１０１０は１番目のセレクタ、１０１１は２５６番目の遅延素子、１０１２は２０４７番目の遅延素子である。
【００１３】
ＦＩＲフィルタへのデータ入力は１ビット  ６４ｆｓで、データ出力は１６ビット  １ｆｓである。従って、デシメーション比は６４ｆｓ：１ｆｓ＝６４：１である。外部からの入力データはデータ記憶部１００１とデータレートが異なるため、一旦データレート変換用バッファ１００４に蓄えられる。データレート変換用バッファ１００４に蓄えられたデータが１００６の遅延素子０にロードされるタイミングは、図１１で示す遅延素子自己データループ指示信号がＬレベルになったときである。
【００１４】
データ記憶部１００１内の遅延素子０〜遅延素子２０４７は図１０に示すクロックＣＬＫ０〜ＣＬＫ２０４７で動作する。遅延素子の自己ループ指示信号がＨレベルのときはセレクタ１００５により、１００６の遅延素子０の入力データは１００９の遅延素子２５５の出力データとなる。
【００１５】
遅延素子１ラインは各々２５６個の遅延素子からなる。同様の遅延素子のライン構造が計８セットあり、全体で２０４８個の遅延素子があるので２０４８タップ分のデータが記憶できる。データ記憶部は１ビットで２５６ｆｓの出力を８組出力し、これを用いて積和演算部１００３でパラレルに積和演算を行う。フィルタ出力の演算のボトルネックである乗算をパラレルに行うので、高速動作が可能である。
【特許文献１】特許第３０９５３９５号公報
【発明の開示】
【発明が解決しようとする課題】
【００１６】
しかしながら、図１０に示すように、データ記憶部１００１内の２０４８個の遅延素子１００６〜１０１２が２５６ｆｓで動作するため、出力１サンプル計算時に延べ５０万個（２０４８個×２５６ｆｓ＝５２４，２８８）の遅延素子間データ転送が発生する。すなわち、図１０の構成は、遅延素子間データ転送非常に多く、データ記憶部の消費電力が大きくなるという欠点を有していた。
【００１７】
本発明は、パラレルに積和演算可能に構成しつつ、タップデータ記憶用遅延素子間のデータ転送頻度を低減することが可能な多タップのデジタルフィルタを提供することを目的とする。
【課題を解決するための手段】
【００１８】
本発明のデジタルフィルタは、ｎワード（ｎは自然数）の入力データを演算して１ワードの出力データを出力するデジタルフィルタにおいて、ｎの整数倍でかつタップ数以上の個数を有し、データ入力毎に１ワードずつ書き込み動作する遅延素子と、前記遅延素子の書き込み順に選択された前記遅延素子の出力が入力に循環的に接続されたｎ／Ｎ個（Ｎは自然数）のセレクタと、前記セレクタの出力とタップ係数の積和演算を行う積和演算装置とを備える。
【００１９】
上記構成によれば、１回のデータ入力に対してタップ用遅延素子書き込み動作は最低限の１回で済み、多タップのデジタルフィルタで並列積和演算ができるため、多タップデジタルフィルタでも低消費電力と高速動作を両立することができる。
【００２０】
本発明において、ＲＡＭを用いて前記遅延素子を構成する。本発明においては１乗算タイミング毎に限られた個数のデータのみを更新することができるためＲＡＭで構成することが可能であり、上記構成によれば、ＲＡＭを用いることでフリップフロップに比べて同容量ならば小面積化できるため、低コストを実現することができる。
【発明の効果】
【００２１】
本発明によれば、多タップデジタルフィルタでも低消費電力と高速動作を両立することができるため、大タップ数のフィルタでかつ低消費電力なフィルタを実現することが可能となり、多ビット乗算器のスピード限界に制約されず、前段フィルタ特性の補正が不要で、フィルタ間のインターフェイス語長制限による丸め誤差の影響の無い、高性能の優れたデジタルフィルタを提供することができる。
【発明を実施するための最良の形態】
【００２２】
（実施の形態１）
以下、本発明の実施形態について図面を参照しながら詳細に説明する。従来の技術の説明で取り上げた図１０のＦＩＲフィルタは、タップ数２０４８、デシメーション比６４：１と大規模であり、説明が煩雑になるので、タップ数５、デシメーション比２：１の簡略化されたＦＩＲフィルタの構成例により、３段階に分けて本発明の動作を説明する。タップ数を奇数としたのは、説明のため、意図的にデシメーション比の２で割り切れない値に設定したものである。
【００２３】
まず、遅延素子間のデータ転送を削減する方法について述べる。図４と図５は、タップ数５、デシメーション比２：１の簡略化されたＦＩＲフィルタの構成例を示すブロック図とタイミングチャートである。
【００２４】
図４において、４０１は書き込み制御回路、４０２は第０番目の遅延素子、４０３は第１番目の遅延素子、４０４は第２番目の遅延素子、４０５は第３番目の遅延素子、４０６は第４番目の遅延素子、４０７はセレクタ、４０８は係数データ記憶部、４０９は乗算器、４１０は累加算器、４１１は読み出し制御回路である。
【００２５】
書き込み制御回路４０１は、遅延素子０〜遅延素子４のそれぞれに対して図５に示す書き込みクロックＣＬＫ０、ＣＬＫ１、ＣＬＫ２、ＣＬＫ３、ＣＬＫ４を供給する。
【００２６】
このＦＩＲフィルタの伝達関数を、
Ｈ（ｚ）＝｛ｈ（−４）ｚ−４＋ｈ（−３）ｚ−３＋ｈ（−２）ｚ−２＋ｈ（−１）ｚ−１＋ｈ（−０）ｚ−０｝ｚ−１
と記述すると、第１サンプル計算期間では出力ｙ（ｔ）は次のようになる。
ｙ（ｔ）＝Ｈ（ｚ）・Ｘ（ｚ）
＝ｈ（−４）×遅延素子２＋ｈ（−３）×遅延素子３＋ｈ（−２）×遅延素子４＋ｈ（−１）×遅延素子０＋ｈ（−０）×遅延素子１
従って、この構成でＦＩＲフィルタを構成できる。
【００２７】
また、図４に示す通り、１個の入力データに対して遅延素子の値を１個しか更新しない。これは、図１０に示す従来例において１回のシフト動作に対して２５６個の遅延素子値更新が発生することと対照的に、低消費電力化ができることを意味する。
【００２８】
読み出し制御回路４１１は、係数データ記憶部４０８とセレクタ４０７がこの順番でデータを取り出せるように、図５に示す読み出しアドレスを出力する。
【００２９】
第２サンプル計算期間では、デシメーション比が２：１なので、遅延ｚ−２を加えて解釈する必要があり、出力ｙ（ｔ）は次のようになる。
ｙ（ｔ）＝ｈ（−４）×遅延素子４＋ｈ（−３）×遅延素子０
＋ｈ（−２）×遅延素子１＋ｈ（−１）×遅延素子２＋ｈ（−０）×遅延素子３
【００３０】
第３サンプル計算期間でも書き込みアドレスが２ずれるのは同様であるが、遅延素子５が無いため、第３サンプル期間で２個目のデータの書き込みは遅延素子０になる。このため、第４サンプル計算期間では、遅延素子１から書き込みが始まり、第１サンプル計算期間と書き込みアドレスが異なる。最終的に、第１サンプルと書き込みアドレスが等しくなるのは、第６サンプル期間である。
【００３１】
図５の周期性を考慮に入れると、全サンプル期間に渡って、係数ｈ（−０）に乗算する可能性がある値は遅延素子０、遅延素子１、遅延素子２、遅延素子３、遅延素子４となり、全ての遅延素子との組み合わせで乗算できる必要があることが分かる。係数ｈ（−１）、ｈ（−２）、ｈ（−３）、ｈ（−４）についても同様であり、全ての遅延素子との組み合わせで乗算できる必要がある。
【００３２】
このような場合に乗算器を多数並べて並列演算しようとすると、乗算器の並列度分だけの個数のセレクタが必要となる。図４に示す小規模な例ではそれほど問題ではないが、図１０の従来例のように２０４８タップで並列度８の場合は、２０４８個中の１個を選択するセレクタを８個用意する必要があるため、ゲート段数と回路規模が大きくなるという問題が発生する。
【００３３】
セレクタの規模を小さくするには、各々の遅延素子に対応した特定の係数のみを乗算するだけで済む構成にすれば良い。そのためには、遅延素子の個数をタップ読み出しアドレスの１回の出力サンプル周期当たりの変化量のＭ倍、もしくはタップ読み出しアドレスの１回の出力サンプル周期当たりに変化量のＭ倍のＮ分の１にすれば良い（Ｍ、Ｎは整数）。
【００３４】
図６と図７は、図４のＦＩＲフィルタの構成に対して、上述したようにセレクタの規模を小さくするために遅延素子の数を追加したＦＩＲフィルタの構成例を示すブロック図とタイミングチャートである。
【００３５】
図６において、６０１は書き込み制御回路、６０２は第０番目の遅延素子、６０３は第１番目の遅延素子、６０４は第２番目の遅延素子、６０５は第３番目の遅延素子、６０６は第４番目の遅延素子、６０７は第５番目の遅延素子、６０８はセレクタ、６０９は係数データ記憶部、６１０は乗算器、６１１は累加算器、６１２は読み出し制御回路である。図４の構成と異なるのは、第５番目の遅延素子６０７を設けた点である。
【００３６】
以上のように構成されたＦＩＲフィルタについて、以下その動作を説明する。まず、第２のサンプル計算期間までについては図４と同様の動作をする。第３のサンプル計算期間においては図４と異なり、遅延素子６０７が追加されているため、第３のサンプル計算期間の途中で書き込みアドレスが最初（アドレス０）に戻らず、第３のサンプル計算期間が完了した後に第４のサンプル計算期間の最初で書き込みアドレスが最初に戻る。そのため、出力サンプル計算期間の整数倍の期間とアドレスの変化周期が一致する。
【００３７】
図７の周期性を考慮に入れると、全サンプル期間に渡って、係数ｈ（−０）に乗算する可能性がある値は遅延素子０、遅延素子２、遅延素子４となり、限定された遅延素子と乗算できれば良いことが分かる。係数ｈ（−１）、ｈ（−２）、ｈ（−３）、ｈ（−４）についても同様であり、限定された遅延素子と乗算できれば良いことが分かる。
【００３８】
上記構成において係数とそれと乗算する必要のある遅延素子の組み合わせが限定されることを利用し、セレクタを２つに分けることにより、並列に積和演算することが可能になる。図８および図９は、セレクタを２つに分けた場合のＦＩＲフィルタの構成例を示すブロック図とタイミングチャートである。
【００３９】
図８において、８０１は書き込み制御回路、８０２は第０グループの遅延素子、８０３は第１グループの遅延素子、８０４は第０のセレクタ、８０５は第１のセレクタ、８０６は第０番目の遅延素子、８０７は第２番目の遅延素子、８０８は第４番目の遅延素子、８０９は第１番目の遅延素子、８１０は第３番目の遅延素子、８１１は第５番目の遅延素子である。
【００４０】
図６の構成と異なるのは、セレクタのデータ入力が６入力ではなく３入力となり、セレクタ個数が２つになったこと、第０のセレクタ８０４は第０グループの遅延素子８０２からのデータのみを選択すること、第１のセレクタ８０５は第１グループの遅延素子８０３からのデータのみを選択すること、および積和演算部が並列処理する点である。
【００４１】
以上のように、本実施形態の構成により大タップ数のフィルタでかつ低消費電力なフィルタを実現することが可能となり、特に高デシメーション比のデジタルフィルタを１段フィルタのみで実現でき、従来の多段フィルタの従続による場合の欠点を排除できる。すなわち、多ビット乗算器のスピード限界に制約されず、前段フィルタ特性の補正が不要で、フィルタ間のインターフェイス語長制限による丸め誤差の影響の無い、高性能フィルタを提供できる。
【００４２】
ここで、上記実施形態の具体的な例として、ΔΣ変調された６４ｆｓ＝３．０７２ＭＨｚの１ビットＰＤＭ信号に対して１／６４デシメーションを実施し、出力レートが１ｆｓ＝４８ＫＨｚの１６ビットＰＣＭ信号を出力するデジタルフィルタに本発明を適用する場合について説明する。
【００４３】
デジタルフィルタのタップ数としては、デシメーション比が１／６４であることにより、ｎ＝２０００〜４０００程度がオーディオ用として必要であるが、ここでは簡単のため、ｎ＝２０４７とする。
【００４４】
図１および図２は、図８および図９で示した実施形態のＦＩＲフィルタを、上記の具体的な規模のタップ数、デシメーション比に改めた場合のＦＩＲフィルタの構成例を示すブロック図とタイミングチャートである。図１の構成例は、図１０および図１１の従来例と同じ処理結果が得られるＦＩＲフィルタの構成となっている。
【００４５】
図１において、１０１はデータ記憶部、１０２は係数データ記憶部、１０３は積和演算部、１０４は０番目の遅延素子、１０５は１番目の遅延素子、１０６は６番目の遅延素子、１０７は７番目の遅延素子、１０８は８番目の遅延素子、１０９は１２番目の遅延素子、１１０は２０２４番目の遅延素子、１１１は２０３２番目の遅延素子、１１２は２０４０番目の遅延素子、１１３は２０４７番目の遅延素子、１１４は０番目のセレクタ、１１５は１番目のセレクタ、１１６は６番目のセレクタ、１１７は７番目のセレクタである。
【００４６】
遅延素子１０４〜１１３はデータ記憶部１０１に全部で２０４８個あり、その入力は全て本発明のＦＩＲフィルタのデータ入力端子へ接続されている。遅延素子の出力はデータ記憶部１０１内にあるセレクタ１１４〜１１７の入力に接続されている。セレクタ１１４〜１１７は２５６個の入力から１個の出力を選択する８個のセレクタであり、その出力は積和演算部１０３の入力となっている。
【００４７】
以上のように構成された図１のＦＩＲフィルタは、６４ワード（１ワードが１ビット幅）の入力を演算し１ワードの出力を出すＦＩＲフィルタであり、６４の整数倍で（６４×３２＝２０４８）の遅延素子個数はタップ数以上であり、セレクタには６４の４分の１である８個おきの遅延素子が接続されている（０個目、８個目、…２０３２個目、２０４０個目の遅延素子がセレクタ１１４に接続されている。）ため、本発明の請求項１の構成になっている。
【００４８】
上記のように構成されたＦＩＲフィルタにおいて、遅延素子１０４〜１１３は、図２に示すように１入力データタイミング毎に１個ずつデータ取り込みを行う。従って、図１０の従来例のように１回の乗算タイミング毎にすべての遅延素子でデータ移動が発生することが無いため、低消費電力化が可能となる。
【００４９】
（実施の形態２）
図１２は本発明の第２の実施形態に係るＦＩＲフィルタの構成を示すブロック図である。図１２において、１２０１はデータ記憶部、１２０２は係数データ記憶部、１２０３は積和演算部、１２０４は１ビットシリアル／８ビットパラレル変換器、１２０５はＲＡＭである。図１２で図１の構成と異なる点は、データ記憶部１２０１がＲＡＭ１２０５と１ビットシリアル／８ビットパラレル変換器１２０４で構成されていることである。
【００５０】
図１０に示した従来の構成のＦＩＲフィルタでは、１乗算タイミング毎にすべての遅延素子においてデータ書き換えが行われていた。ＲＡＭは全記憶領域を一度に書き換えることが困難なため、従来の構成では、データ記憶部をＲＡＭを用いて構成することができない。
【００５１】
これに対して、本発明においては１乗算タイミング毎に限られた個数（８ビット）のデータのみを更新することができるため、ＲＡＭで構成することが可能である。ＲＡＭはフリップフロップに比べて同容量ならば小面積化できるため、低コストで実現することができる。
【産業上の利用可能性】
【００５２】
本発明のデジタルフィルタは高速で多タップのデジタルフィルタを低消費電力に実現できる特徴を有し、高品質オーディオ用ΔΣＡ／Ｄコンバータのデシメーションフィルタ等として有用であり、無線器の復調用ΔΣＡ／Ｄコンバータ等の用途にも応用することができる。
【図面の簡単な説明】
【００５３】
【図１】本発明の第１の実施形態に係るＦＩＲフィルタの構成例を示すブロック図。
【図２】本発明の第１の実施形態に係るＦＩＲフィルタのタイミングチャート。
【図３】従来の多段ＦＩＲフィルタの構成例を示すブロック図。
【図４】第１の実施形態の簡素化されたＦＩＲフィルタの構成例を示すブロック図。
【図５】第１の実施形態の簡素化されたＦＩＲフィルタのタイミングチャート。
【図６】第１の実施形態の簡素化されたＦＩＲフィルタの構成例を示すブロック図。
【図７】第１の実施形態の簡素化されたＦＩＲフィルタのタイミングチャート。
【図８】第１の実施形態の簡素化されたＦＩＲフィルタの構成例を示すブロック図。
【図９】第１の実施形態の簡素化されたＦＩＲフィルタのタイミングチャート。
【図１０】従来の高デシメーション比のＦＩＲフィルタの構成例を示すブロック図。
【図１１】従来の高デシメーション比のＦＩＲフィルタのタイミングチャート。
【図１２】本発明の第２の実施形態に係るＦＩＲフィルタの構成例を示すブロック図。
【符号の説明】
【００５４】
１０１、１００１、１２０１  データ記憶部
１０２、１００２、１２０２  係数データ記憶部
１０３、１００３、１２０３  積和演算部
１０４〜１１３、４０２〜４０６、６０２〜６０７、８０２〜８１１、
１００６〜１００９、１０１１、１０１２  遅延素子
１１４〜１１７、４０７、６０８、１００５、１０１０  セレクタ
３０１  １段目のＦＩＲフィルタ
３０２  ２段目のＦＩＲフィルタ
４０１、６０１、８０１  書き込み制御回路
４０８、６０９  係数データ記憶部
４０９、６１０  乗算器
４１０、６１１  累加算器
４１１、６１２  読み出し制御回路
１００４  データレート変換用バッファ
１２０４  １ビットシリアル／８ビットパラレル変換器
１２０５  ＲＡＭ
【図１】
2005318204.tif 000003
【図２】
2005318204.tif 000004
【図３】
2005318204.tif 000005
【図４】
2005318204.tif 000006
【図５】
2005318204.tif 000007
【図６】
2005318204.tif 000008
【図７】
2005318204.tif 000009
【図８】
2005318204.tif 000010
【図９】
2005318204.tif 000011
【図１０】
2005318204.tif 000012
【図１１】
2005318204.tif 000013
【図１２】
2005318204.tif 000014