(57)【特許請求の範囲】
【請求項１】
デジタル・フィルタのフィルタ係数を決定する方法であって、前記フィルタ係数は予め定められた複数のフィルタ係数から形成されており、前記予め定められた複数のフィルタ係数は、フィルタ設計プログラムで変更される方法において、
前記予め定められた複数のフィルタ係数（ｂｖ）を同一のスケーリング・ファクタによって除算して、対応するスケールリングされたフィルタ係数を生成し、
前記スケーリングされたフィルタ係数を量子化し、最上位ビットより後の「１」のビットの数を、予め定められた最大の数（ｎ）個のビットに制限して、量子化されたフィルタ係数（βｖ）を生成し、
前記量子化されたフィルタ係数のそれぞれの量子化誤差を、前記予め定められたフィルタ係数に関連して決定し、
前記スケーリング・ファクタについて、予め定められた基準が満たされるまで、前記スケーリング・ファクタを変更し、
各スケーリング・ファクタについて、対応する量子化フィルタ係数と、同一の予め定められたフィルタ係数の対応する量子化誤差とを、決定し、
前記量子化誤差が最小になるように各々のスケーリング・ファクタ（Ｓ０）を設定し、
前記同一の予め定められたフィルタ係数の対応する最小の量子化誤差を有する前記量子化フィルタ係数が、前記デジタル・フィルタに組み入れられるフィルタ係数として用いられる、
ことを特徴とする方法。
【請求項２】
前記個数（ｎ）が４、または３、または２であることを特徴とする請求項１に記載の方法。
【請求項３】
最後の「１」のビットの後にさらに「１」のビットが続く場合は、前記量子化フィルタ係数を、対応する最も近い次の値に切り上げるように、丸め処理が行われる、ことを特徴とする請求項１または請求項２に記載の方法。
【請求項４】
入力信号（Ｘ）を受信して、前記入力信号（Ｘ）を該デジタル・フィルタのフィルタ係数で処理するように構成されたデジタル・フィルタであって、
前記フィルタ係数（βｖ）は、
量子化による誤差が最小となるように設定された最適スケーリング・ファクタ（Ｓ０）により、予め定められたフィルタ係数（ｂｖ）をスケーリングして、スケーリングされたフィルタ係数を生成し、
前記スケーリングされたフィルタ係数を量子化し、前記量子化されたフィルタ係数における、最上位ビットより後の「１」のビットの数を、予め定められた最大の数（ｎ）個のビットに制限することにより、
決定されるとともに、
当該デジタル・フィルタは、複数の加算器ステージを含んでおり、
各加算器ステージは、前記入力信号を受信し、当該デジタル・フィルタの前記フィルタ係数（βｖ）で前記入力信号が処理された結果として、出力信号を供給する、
ことを特徴とするデジタル・フィルタ。
【請求項５】
当該デジタル・フィルタに含まれる加算器ステージの出力信号のすべての和から得られる最終出力信号に、前記最適スケーリング・ファクタ（Ｓ０）の逆数である係数を乗算する、最終ステージ（４）を備えたことを特徴とする請求項４に記載のデジタル・フィルタ。
【請求項６】
前記各加算器ステージ（３）は、ｎ−１個の加算器（９、１０、１１）と、ｎ個のスクエアリング乗算器（５、６、７、８）とを備えたことを特徴とする請求項４または請求項５に記載のデジタル・フィルタ。
【請求項７】
前記各加算器ステージ（３）において、前記スクエアリング乗算器の個数ｎが異なり、それに従って前記加算器の個数が異なることを特徴とする請求項６に記載のデジタル・フィルタ。
【請求項８】
個々の加算器ステージがたった１つの前記スクエアリング乗算器を備えることを特徴とする請求項７に記載のデジタル・フィルタ。
【請求項９】
前記スクエアリング乗算器（５、６、７、８）は、前記入力信号が入力される入力端子と、平方乗算信号を供給する出力端子とを含む、ことを特徴とする請求項６乃至請求項８のいずれか一項に記載のデジタル・フィルタ。
【請求項１０】
前記加算器ステージ（３）は、プログラム可能なセレクタ（１２）を備え、
前記セレクタは、そのプログラミングに従って前記スクエアリング乗算器（５、６、７、８）と前記加算器（９、１１）とを接続することを特徴とする請求項６乃至請求項９のいずれか一項に記載のデジタル・フィルタ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デジタル・フィルタのフィルタ係数を変更する方法に関し、より詳細には、ＵＭＴＳ（Universal Mobile Telecommunication System）用デジタル・フィルタのフィルタ係数を、フィルタ設計プログラム中で予め決定しかつ変更する方法に関する。さらに、本発明は、この種のデジタル・フィルタに関する。
【背景技術】
【０００２】
デジタル・フィルタは、例えば、ＵＭＴＳ規格（３ＧＰＰ、ＴＳ２５．２０１：ＵＥ  Ｒａｄｉｏ  Ｔｒａｎｓｍｉｓｓｉｏｎ  Ａｎｄ  Ｒｅｃｅｐｔｉｏｎ（ＦＤＤ）、Ｖ３．２．０）および（３ＧＰＰ，ＴＳ２５．２１３：Ｓｐｒｅａｄｉｎｇ  Ａｎｄ  Ｍｏｄｕｌａｔｉｏｎ（ＦＤＤ）、Ｖ３．０．０）のパルス整形フィルタや整合フィルタとして使用される。処理すべきフィルタ係数の数が多く、信号帯域幅も広いため、このようなフィルタは多くの計算回路を必要とする。したがって、これらのフィルタは、フィルタ機能を備えた装置の一部である単一のプロセッサで実施することは困難である。結果として、フィルタ専用の部品（チップ）を備えたハードウェアでの実施が必要になり、そのため、装置中の大きな表面エリアが使用され、エネルギー消費が増大する。これら２つの要因は、装置のコンパクトな構造を妨げるものである。
【０００３】
米国特許第６，３１１，２０３号明細書には、フィルタ係数の計算を簡単化するように２つの要素が乗算されるデジタル・フィルタが記載されている。簡単な方法で求められるフィルタ係数を予め選択することについては示されていない。
【０００４】
米国特許第５，７３２，００４号明細書では、個々のフィルタ係数にスケーリング・ファクタが割り当てられる。すべてのフィルタ係数に共通するスケーリング・ファクタは提供されていない。
【０００５】
国際公開第０１／２２５８２Ａ１号パンフレットからは、浮動小数点ＦＩＲフィルタを知ることができる。共通のスケーリング・ファクタは提供されていない。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明の目的は、冒頭で定義した種類の方法およびフィルタを提供することであり、その際、フィルタ特性および処理速度を決定的に低下させることなく、またチップ表面積が小さく、電流消費が少ないフィルタを生産することである。
【課題を解決するための手段】
【０００７】
この方法に関する上記の目的は、請求項１の特性によって達成され、このフィルタに関する上記の目的は、請求項４の特性によって達成される。
【０００８】
この目的のために、設計プログラム中で予め決定された理想的なフィルタ係数は、コストのかかる乗算を避け単純な加算演算によって処理できるように、量子化されスケーリングされる。量子化およびスケーリングによって単純化されるフィルタ係数は、フィルタ機能を含む個々の装置中で決定されるわけではない。それらの係数は、拡張されたフィルタ設計プログラム中で理想的なフィルタ係数から決定され、続いてその装置で実施される。
【０００９】
フィルタ係数を量子化しスケーリングすることによって、フィルタリングされた信号の計算についての数値的な複雑さが簡単化される。このことにより、装置中で必要になる面積または空間が小さく、かつエネルギー消費の少ないフィルタ機能を実現することができる。このフィルタは、固定小数点演算を使用するものならば、ＵＭＴＳ用のアップリンクおよび／またはダウンリンク・フィルタであっても、ＲＲＣ（root-raised cosine）フィルタであってもよい。しかしながら、記載の方法は、固定小数点演算によって動作する、他の非再帰型（non-recursive）フィルタにおいても使用することができる。
【発明を実施するための最良の形態】
【００１０】
本発明の有利な実施形態は、特許請求の範囲の従属項ならびに以下の説明から明らかになる。
【００１１】
従来技術のフィルタ（図１）では、複数の乗算器１で入力信号Ｘにフィルタ係数ｂＮ−１〜ｂ０を乗算する。フィルタ係数は、所望の種類のフィルタに対応するフィルタ設計プログラムによって予め決定されている。乗算の結果得られた部分信号（partial signal）ＹＮ−１〜Ｙ０には、時間遅れ（ｚ−１）の後、加算器２によって加算され、その合計がフィルタを通った出力信号Ｖで示される。ＲＲＣフィルタの理想的な周波数応答は図９〜１２の破線で示される。図７は、従来技術による乗算の例を示している。この場合、信号値は１０進数の２１７、すなわち２進数の１１０１１００１であり、フィルタ係数は１０進数の０．７１６７９６８７５、すなわち２進数の０．１０１１０１１１１である。小数点以下９桁の２進数を用いた任意の係数の場合は、８つの計算ステップが必要になる。この結果、フィルタが複雑になる。
【００１２】
ここで記載されたフィルタでは、スケーリングと量子化とによって単純化されたフィルタ係数を使用し、その係数をより簡単に処理することができる。図６の流れ図は、所定のフィルタ係数ｂＶから新しいフィルタ係数βＶがどのように形成されるかを図式的に示している。この処理は、フィルタ係数をフィルタに導入する前に行われる。
【００１３】
標準のフィルタ設計によって、まずフィルタの代表的なフィルタ係数ｂＶを決定すると、そのフィルタ係数を、すべてのフィルタ係数に対して同一のスケーリング・ファクタで除算する。その結果が、スケーリングされたフィルタ係数βＶ＝ｂＶ／ｓである。
【００１４】
続いて、スケーリングされたフィルタ係数の量子化を行う。量子化の間、最上位ビット（ＭＳＢ）の後に現れる「１」のビットの個数ｎは、ある最大個数ｎに制限される。記載の例の場合、ｎは４、３または２である。個数ｎは、提供された係数に応じて、各加算器ステージごとに異なる値であってもよい。量子化は、ある単一の値に対して、「１」のビットの個数が少ないフィルタ係数を乗算するほうが、同一有効ワード長の任意のフィルタ係数を乗算するよりも、必要な加算演算の数が少なくなるという認識に基づいて行われる。
【００１５】
量子化の結果として、フィルタリングされた信号に歪みが生じることは避けられない。この量子化誤差を可能な限り小さくする。
【００１６】
量子化のあと、それぞれの量子化誤差、
Ｅ（ｓ）＝Σ｜ｂＶ−ｓ×βＶ｜２
が決定され（図６参照）格納される。次に、例えば１．０であったスケーリング・ファクタｓを、１ステップ（ｓｓｔｅｐ）分増加させ、この新しいスケーリング・ファクタで生ずる量子化誤差を再度決定し格納する。複数のステップで増加されたスケーリング・ファクタが２．０を超えた場合は、どのスケーリング・ファクタｓｏが最小の量子化誤差をもたらすかを比較する。次に、このスケーリング・ファクタｓｏを、スケーリングおよび量子化によって求められるフィルタ係数βＶの最終決定に使用する。この場合、
βＶ＝Ｑ（ｂＶ／ｓｏ）
となる。Ｑは量子化を表す。
【００１７】
フィルタの出力において、共通値ｓｏによる元のフィルタ係数の除算は、共通スケーリング・ファクタｓｏでの乗算の結果としてキャンセルされる。
【００１８】
次表は、量子化アルゴリズムの各ステージを、数値例で示したものである。
ステージ                          ２進          １０進       量子化による誤差
元の値                            0.101101111   0.716796875       −
ステップ１：「１」のビットが４個  0.101101      0.703125       0.013671875
次のビットを考慮する              0.1011011     0.7109375      0.005859375
４番目の「１」のビットで丸める    0.101110      0.71875        0.00195125
【００１９】
この表では、最上位ビットの後に許容される「１」のビットの数をｎ＝４に想定している。
【００２０】
表から明らかなように、２進数の元の値には「１」のビットが７個含まれる。ガイドラインに従えば、ステップ１で、２進数値の最上位ビット、この場合０、の後の「１」のビットは４個に制限される。この数値に対応する１０進数値は０．７０３１２５であり、１０進数の元の値に対する量子化による誤差は、０．０１３６７１８７５になる。
【００２１】
第２ステップでは、ステップ１の最後の「１」のビットに続く次のビットを考慮する。この例では、このビットも「１」である。このビットが「１」なので、次のステップで丸めを行い、その結果の２進数値は０．１０１１１０となる。これは、１０進数値の０．７１８７５に相当する。この値を１０進数の元の値と比較すると、使用するスケーリング・ファクタには関係なく、量子化による誤差は、０．００１９５１２５になる。したがって、丸めにより量子化による誤差はかなり減少する。
【００２２】
図８は、この計算方式を図７との比較で示したものである。この図では、「２１７」が、上述の量子化されスケーリングされたフィルタ係数、すなわち１０進数の０．７１８７５、２進数の０．１０１１１０を使用して処理される。使用する量子化方式に基づき、フィルタ係数は、「１」にセットされたすべてのビットの位置（最大ｎ個）によって、この場合、値１、３、４および５を有する位置ｉ０、ｋ０、ｌ０およびｍ０によって、明確に記述することができる。この処理に必要なのは、４つのステップｉ０、ｋ０、ｌ０、ｍ０だけである。この各々の「１」を乗算することは、入力信号、ここでは１０進の２１７、２進の１１０１１００１をシフトすることに相当する。したがって、ｉ０は１ビット分の位置シフト、ｋ０は３ビット分の位置シフト、ｌ０は４ビット分の位置シフト、ｍ０は５ビット分の位置シフトになる。このようなシフトは、わずかな回路で実現できる。その理由は、この目的のための適切な接続に必要になるのは、図１３に示すように、各データ・ラインを１ビット位置分シフトさせることだけだからである。
【００２３】
上記の量子化の結果、最適スケーリング・ファクタｓ０は、限られた区間、例えば区間１〜２、または区間１／２√２〜√２の間で求めることができる。
【００２４】
前述のフィルタ係数βＶを用いると、それぞれフィルタ構造を単純にし、あるいはフィルタの導入を簡単にすることができる。その理由は、乗算器を加算器で置き換えるからである。
【００２５】
図２は、フィルタの構造を図式的に示したものである。図１の乗算器１は、加算器ステージＡＤＤ３で置き換えられている。この各加算器ステージでは、スケーリングされ量子化されたフィルタ係数βＶ、すなわちβＮ−１〜β０のそれぞれが処理される。乗算器として構成された最終ステージ４では、加算結果の信号を、フィルタ係数のスケーリング・ファクタ１／ｓ０の逆数である係数ｓ０を用いて処理して、スケーリング・ファクタが出力信号Ｖに与える影響を排除する。最終ステージ４は、絶対値が重要な役割を果たさない場合には省略することができる。
【００２６】
図３は、フィルタ係数βＮ−１のための、加算器ステージＡＤＤ３の１つを示す。図３は、前述の個数がｎ＝４の場合に関するものであり、したがって、フィルタ係数の各係数あたりの「１」のビットは４個に制限される。したがって、各フィルタ係数に応じて、２の累乗すなわち−ｉＮ−１、−ｋＮ−１、−ｌＮ−１、−ｍＮ−１乗を乗算するように設計された４つの乗算器５、６、７、８を備える。また、これらの累乗は図８の例のｉ０、ｋ０、ｌ０、ｍ０に対応している。
【００２７】
乗算器５および６の乗算結果は、加算器９で加算される。乗算器７および８の乗算結果は加算器１１で加算される。この２つの加算器の加算結果は、もう１つの加算器１０で加算されて中間信号ＹＮ−１になる。この場合、および他の実施形態において、加算器９、１０、１１の数はｎ−１個である。ｎ＝１の場合は、１つだけの乗算器が必要であり、加算器は不要である。
【００２８】
図４に示した実施形態の例ではｎ＝２と想定され、したがって各フィルタ係数の「１」のビットは２個に制限される。したがって、２個の乗算器５、６と１個の加算器１０だけが必要になる。
【００２９】
図５に示した実施形態の例では、加算器ステージ３はプログラム可能なセレクタ１２を含む。このプログラム可能な構造のために、フィルタの導入前にフィルタ係数を決めておく必要がなくなる。より正確に言うと、このセレクタを用いて、フィルタ係数の「１」のビットを最大ｎ個含む汎用のプログラム可能フィルタを導入することができる。ここで再び、ｎ＝４と想定する（図５参照）。したがって、３個の加算器９、１０、１１が必要になる。プログラム可能セレクタ１２を用いて、プログラムに応じた出力Ｘｉ、Ｘｋ、Ｘｌ、Ｘｍを選択する。入力ｉ、ｋ、ｌおよびｍの値の範囲は、０からＭ−１の間であり、それぞれ入力Ｘ０、．．．、ＸＭ−１のうちの１つを出力の１つに接続する。出力Ｘｉはｉによって決定され、Ｘｍはｍによって決定され、以下同様に決定される。例えば、入力をｉ＝１、ｋ＝３、ｌ＝４、およびｍ＝５とプログラムすると、出力Ｘｉ＝Ｘ１、Ｘｋ＝Ｘ３、Ｘｌ＝Ｘ４、およびＸｍ＝Ｘ５が選択される。この例の場合、Ｍは８である（図７、および図８参照）。
【００３０】
図１３は、スクエアリング乗算器（squaring multiplier）５、６、７、８の１つを示す。この乗算器は、８ビット入力と８ビット出力との間のデータ・ラインを単純に接続することによって形成される。図１３は、１ビット位置だけシフトする場合の接続を示している。前述の他の場合には、それぞれ他の接続が選択される。
【００３１】
図９では、上記方法によって選択されたフィルタ係数を有するフィルタの量応答（quantity response）が実線で示されている。ただし、ｎ＝４である。実線と破線を比較すると、フィルタ係数の上記の選択の結果として、大きな偏差がまったく生じていないことが分かる。
【００３２】
図１０では、ｎ＝３のフィルタ係数を用いた場合の量応答が実線で示される。比較によると、４ＭＨｚ付近から、わずかな偏差が存在することが分かる。また、図１１は、ｎ＝２のフィルタ係数に対する量応答を示す。ここでもまた、３．５ＭＨｚ付近からのみ、ある程度の偏差が存在することが分かる。
【００３３】
図１２は、スケーリング・ファクタを１．６〜２．１の範囲とした場合の上記の量子化誤差Ｅ（ｓ）を示す曲線である。量子化誤差は、約１．９７付近で最小になる。したがって、この値がスケーリング・ファクタｓ０として使用される。
【００３４】
実施形態のすべての例において、量子化とスケーリング・ファクタの最適化とを用いることにより、コストのかかる乗算器（図１）の代わりに、必要なハードウェアのチップ領域が小さい、単純な加算器ステージ３が使用できるようになった。加算器ステージ３の乗算器５〜８は、図１の乗算器とは対象的に、かなり簡単な方法で製造することができる。必要な算術演算が従来技術より少なくなるので、電力消費も削減される。信号の歪はわずかであり、個数ｎの選択に応じて決まる。加算演算が、すべての加算器ステージ３で、多数の加算器によって同時に実行された場合は、処理速度が向上する。
【００３５】
提案の量子化をＵＭＴＳのＲＲＣフィルタで使用するとき、長さ３２ビットの対称係数を有するフィルタにおいて、１６個の１２ビット乗算器１を１６個の１２ビット加算器ステージ３で置き換えることが可能になる。
【図面の簡単な説明】
【００３６】
【図１】従来技術によるＦＩＲフィルタを示す図である。
【図２】フィルタ係数の加算器ステージを備えた改良されたフィルタ構成を示す図である。
【図３】３個の加算器を備えた加算器ステージの１つを示す図である。
【図４】代替的に、１個の加算器を備えた加算器ステージを示す図である。
【図５】代替的に、選択可能なフィルタ係数を有する加算器ステージを示す図である。
【図６】フィルタ係数の決定を示す流れ図である。
【図７】従来技術による、フィルタ係数で乗算するための計算方式を示す図である。
【図８】量子化されたフィルタ係数で乗算するための計算方式を示す図である。
【図９】各係数あたり「１」のビットが４個の場合を評価するための量応答を示す図である。
【図１０】各係数あたり「１」のビットが３個の場合を評価するための量応答を示す図である。
【図１１】各係数あたり「１」のビットが２個の場合を評価するための量応答を示す図である。
【図１２】スケーリング・ファクタが１．５〜２．３の間にある場合の量子化誤差を示す図である。
【図１３】２の累乗で乗算するための乗算器を示す図である。
【図１】
0004665099.tif 000002
【図２】
0004665099.tif 000003
【図３】
0004665099.tif 000004
【図４】
0004665099.tif 000005
【図５】
0004665099.tif 000006
【図６】
0004665099.tif 000007
【図７】
0004665099.tif 000008
【図８】
0004665099.tif 000009
【図９】
0004665099.tif 000010
【図１０】
0004665099.tif 000011
【図１１】
0004665099.tif 000012
【図１２】
0004665099.tif 000013
【図１３】
0004665099.tif 000014