(57)【要約】【課題】電子回路中で乗算演算または除算演算を行う方法において、演算を簡単に行えるようにする。【解決手段】電子回路中で、Ｘ・Ｋの乗算演算またはＸ・１／Ｋの除算演算を行う方法であって、回路のソフトウェア回路領域（５０）中で、ｐｓｖがＫの近似値になるように、シフト桁ｓｖを計算する。乗算時には、ハードウェア回路領域（８０）中で、Ｘをｓｖ桁左にシフトし、除算時には、Ｘをｓｖ桁右にシフトする。ソフトウェア回路領域（５０）中で、適切な補正因子Ｋｆを計算する。Ｘの値に補正因子Ｋｆを乗算する。【選択図】図２
2006172475.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウェア回路領域とハードウェア回路領域とを有する電子回路中で、Ｘ・Ｋの乗算演算またはＸ・１／Ｋの除算演算を行う方法であって、ＸおよびＫは、２の値を取り得るＰを底とする数値表記で、実数であるような方法において、
ｐｓｖがＫの近似値になるように、前記ソフトウェア回路領域（５０）中でシフト桁ｓｖを計算する工程と、
乗算時には前記ハードウェア回路領域（８０）中でＸをｓｖ桁左にシフトし、除算時には前記ハードウェア回路領域（８０）中でＸをｓｖ桁右にシフトする工程と、
前記電子回路の前記ソフトウェア回路領域（５０）中で、適切な補正因子Ｋｆを計算する工程と、
シフトしたＸの値に前記補正因子Ｋｆを乗算（１００）する工程と
を含むことを特徴とする方法。
【請求項２】
前記シフト桁は、ｓｖ＝ｒｏｕｎｄ（ｌｏｇｐＫ）であることを特徴とする請求項１に記載の方法。
【請求項３】
前記補正因子Ｋｆは、除算時は（ｐｓｖ）／Ｋの値を有し、乗算時はＫ／ｐｓｖの値を有することを特徴とする請求項１または２に記載の方法。
【請求項４】
値Ｘは、値Ｋよりも時間的に速く変化することを特徴とする請求項１ないし３のいずれか１項に記載の方法。
【請求項５】
前記シフトしたＸの値に補正因子Ｋｆを乗算する工程は、前記ソフトウェア回路領域（１００）で行われることを特徴とする請求項１ないし４のいずれか１項に記載の方法。
【請求項６】
前記シフトしたＸの値が所定の数値に達した場合に、シフトしたＸの値を飽和させる工程をさらに含むことを特徴とする請求項１ないし５のいずれか１項に記載の方法。
【請求項７】
前記Ｘの値をシフトする工程は、バレルシフタ（８０）により行われることを特徴とする請求項１ないし６のいずれか１項に記載の方法。
【請求項８】
ＵＭＴＳの移動通信網中で、ＤＰＣＨチャネルを介して伝送される信号電力および／またはＣＰＩＣＨチャネルを介して伝送される信号電力を計算するために実行されることを特徴とする請求項１ないし７のいずれか１項に記載の方法。
【請求項９】
ソフトウェア回路領域とハードウェア回路領域とを有し、Ｘ・Ｋの乗算演算またはＸ・１／Ｋの除算演算を行う電子回路であって、ＸおよびＫは、２の値を取り得るＰを底とする数値表記で、実数であるような電子回路において、
ｐｓｖがＫの近似値になるように、前記ソフトウェア回路領域でシフト桁ｓｖを計算するための、前記ソフトウェア回路領域に設けられた第１計算手段（５０）と、
乗算時には値Ｘを左にｓｖ桁シフトし、除算時には値Ｘを右にｓｖ桁シフトする、前記ハードウェア回路領域に設けられた制御可能な桁シフト器（８０）と、
適切な補正因子Ｋｆを計算するために、前記ソフトウェア回路領域に設けられた第２計算手段（５０）と、
シフトしたＸの値に補正因子Ｋｆを乗算する手段（１００）と
を有する電子回路。
【請求項１０】
前記値ｓｖは、ｓｖ＝ｒｏｕｎｄ（ｌｏｇｐＫ）であることを特徴とする請求項９に記載の電子回路。
【請求項１１】
補正因子Ｋｆは、除算時は（ｐｓｖ）／Ｋの値を有し、乗算時はＫ／ｐｓｖの値を有することを特徴とする請求項９または１０に記載の電子回路。
【請求項１２】
値Ｘは、値Ｋよりも時間的に速く変化することを特徴とする請求項９ないし１１のいずれか１項に記載の電子回路。
【請求項１３】
前記シフトしたＸの値に補正因子Ｋｆを乗算する手段（１００）は、ソフトウェア回路領域中に設けられていることを特徴とする請求項９ないし１２のいずれか１項に記載の電子回路。
【請求項１４】
前記シフトしたＸの値を飽和させる飽和段が設けられていることを特徴とする請求項９ないし１３のいずれか１項に記載の電子回路。
【請求項１５】
前記制御可能な桁シフト器は、バレルシフタ（８０）であることを特徴とする請求項９ないし１４のいずれか１項に記載の電子回路。
【請求項１６】
ＵＭＴＳの移動通信網中で、ＤＰＣＨチャネルを介して伝送される信号電力および／またはＣＰＩＣＨチャネルを介して伝送される信号電力を計算するように設計されていることを特徴とする請求項９ないし１５のいずれか１項に記載の電子回路。
【請求項１７】
ＵＭＴＳ通信システム中でＳＩＮＲ推定を行うための電子回路であって、
ＤＰＣＨ電力計算を行うための第１ハードウェアブロック（２１０）と、
ＣＰＩＣＨ電力計算を行うための第２ハードウェアブロック（２２０）と、
雑音電力計算を行うための第３ハードウェアブロック（２３０）と、
前記第１ハードウェアブロック（２１０）、前記第２ハードウェアブロック（２２０）、および前記第３ハードウェアブロック（２３０）で計算された変数に基づいて、データをさらに処理するためのプロセッサ（ＤＳＰ）と、
を有し、前記第１ハードウェアブロック（２１０）、前記第２ハードウェアブロック（２２０）、および前記第３ハードウェアブロック（２３０）は、請求項９ないし１６のいずれか１項に記載のハードウェア回路領域を構成しており、前記プロセッサは、請求項９ないし１６のいずれか１項に記載のソフトウェア回路領域を構成していることを特徴とする電子回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子回路中で乗算演算または除算演算を行う方法およびその装置に関する。特に、本発明は、移動通信受信機中でＳＩＮＲ（Signal-to-Noise and Interference Ratio ：信号対干渉雑音電力比）の推定を行う回路に関する。
【背景技術】
【０００２】
最新のチップベースシステム（いわゆる、システムオンチップ、ＳｏＣ）では、多数の乗算演算または除算演算が行われている。これゆえに、このようなシステムにおいて、可能な限り手間なくこれらの演算機能を実装することは、非常に重要である。該チップベースシステムにおけるこのような信号処理は、しばしば、様々な信号処理フェーズを有し、そして、様々な回路領域において行われることを考慮せねばならない。通常、アナログ信号処理フェーズの後に、デジタル信号処理フェーズがあり、デジタル信号処理は、さらに、ハードウェアベースの機能実装部分と、ソフトウェアベースの機能実装部分とに分けられる。
【０００３】
アナログ信号処理は、特有のアナログ回路にて行われる。例えば、送信された信号は、無線通信システムの端末機器において、アンテナを介して受信され、いわゆる「高周波フロントエンド」においてアナログ回路を用いてベースバンド部に転送され、次いでアナログデジタル変換が行われる。次にデジタル信号処理として、まずデータ復調と復号とが行われるが、これは効率面を考慮して、しばしば、大半がハードウェアベースで行われる。次の信号処理フェーズは、大概、デジタル信号プロセッサ（ＤＳＰ）またはマイクロコントローラにおいて、すなわち、ファームウェアまたはソフトウェア中でプログラミングされるが、これは、このように実装した方が、ハードウェア的に実装するよりも効率的および／または柔軟性があるからである。
【０００４】
以下では、チップベースシステムのデジタル信号処理領域のみについて考慮する。基本的な設計上の課題は、電力消費およびチップ面積要件に関する重要な要求をできる限り満たすように機能を実現することである。このために、所定の機能を、ハードウェア、または、ソフトウェアもしくはファームウェアで実施するか、またはこれらの中で分担して行うか否かが非常に重要な点となる。
【０００５】
ハードウェアベースで、実数で乗算または除算をすると、例えば、正規化において、ハードウェア実装された加数の累積演算とは数が異なる。実数（乗数または除数）は、累積される加数の数に依存し、既知の時間間隔で変化する。例えば、ＵＭＴＳ（Universal Mobile Telecommunications System）の場合、ＵＭＴＳの仕様で可変のデータレートが要求されていることにより、受信機のいくつかの部分において、累積演算で加数の数が大きく変化するという困難性に直面する。この問題により、積算演算結果を可変の正規化因子を用いて正規化する必要性が生じる。
【０００６】
図１は、可変正規化因子１／Ｋを用いた正規化を実施するための、従来の方法を示す。ここで、Ｋは整数である。この回路は、ハードウェア（「ハードウェア領域」）およびファームウェア（「ファームウェア領域」）に実装される。先行のハードウェアブロック１は、データストリームからデータ値ａｋを供給する。ｋは離散時間である。このデータストリームａｋは、平均値を算出するためにハードウェア回路２に送られる。ハードウェア回路２は、平均値
【０００７】
【数１】
2006172475.tif 000003
【０００８】
を算出する。このために、アキュームレータ３を用いて、所望の数Ｋのデータ値ａｋを累積（合計）する。総和
【０００９】
【数２】
2006172475.tif 000004
【００１０】
は、ワード長Ｂａを有する。この総和は、必要なワード長Ｂａを有する乗算器４に送られる。他方の乗数（正規化因子１／Ｋ）は、部分的にファームウェアで、部分的にハードウェアで計算される。ファームウェアでの逆数器５により、数Ｋから乗数１／Ｋを算出する。この乗数１／Ｋは、最大ワード長Ｂｋを有する。この乗数１／Ｋは、ワード長Ｂｋを有するバスを介して、ハードウェア領域に渡され、そこでレジスタ７に保存される。乗算器４は、レジスタ７にアクセスし、値ｂを算出する。
【００１１】
ワードｂの最大ワード長はＢｐである。数字は固定小数点で表記されているので、通常、続いてスケーラ８によりＢｐからＢｂへ（Ｂｐ＞Ｂｂ）ワード長が短くされる。スケーリングされた平均値ｂは、続いて、後続のハードウェアブロック９に渡される。
【発明の開示】
【発明が解決しようとする課題】
【００１２】
図１に示された回路は、以下のような欠点を有する。
【００１３】
乗数（ここでは、１／Ｋ）を保存するためのレジスタ７と乗算器４とは、それぞれ最大ワード長Ｂｋに適するように設計されねばならない。
【００１４】
バス６を介したファームウェアとハードウェアとの間での乗数（ここでは、１／Ｋ）の伝送は、乗数の最大ワード長およびその最大の変化周波数に適するように設計せねばならない。Ｋの値が小さい場合には、変化周波数は、データストリームａｋのデータレートの大きさの桁となり、すなわち、非常に大きい値をとる。
【００１５】
本発明の目的は、電子回路中で乗算演算または除算演算を行う方法において、演算を簡単に行えるようにすることである。それは特に、電力消費を少なくし、ハードウェアを節約できるようにすることを狙ったものである。さらに、本発明の目的は、電子回路、とりわけ、ＳＩＮＲ推定を行う回路の中で、乗算演算および除算演算を行う装置を、上述の利点を有する装置として提供することである。
【課題を解決するための手段】
【００１６】
本発明のこの目的は、独立請求項の特徴により達成される。より良い本発明の実施形態およびさらなる構成は、従属請求項中に示される。
【００１７】
本発明の方法は、ソフトウェア回路領域とハードウェア回路領域とを有する電子回路中で、Ｘ・Ｋの乗算演算またはＸ・１／Ｋの除算演算を行う方法である。ＸおよびＫは、ｐを底とする数値表記で実数である。ｐは特に２の値を取り得る。本発明の方法では、まずｐｓｖがＫの近似値になるように、ソフトウェア回路領域中で、値Ｋからシフト桁ｓｖを計算する。続いて、乗算時には、ハードウェア回路領域中で値Ｘをｓｖ桁左にシフトし、除算時には、ハードウェア回路領域中で値Ｘをｓｖ桁右にシフトする。ソフトウェア回路領域中で、適切な補正因子Ｋｆを計算する。シフトしたＸの値に補正因子Ｋｆを乗算する。
【００１８】
値Ｘに値Ｋないし１／Ｋを乗算する代わりに、値Ｘの桁シフトを行うことにより、ハードウェア回路領域で、複雑な乗算演算を省くことできる。代わりに行われる値Ｘのシフトは、ハードウェア回路領域において、実質的により効率的（面積は少なくてすみ、必要電力も少なくてすむ）に行われる。従来技術と比べるとシフトしたＸの値にさらに、適切な補正因子Ｋｆを乗算する工程が付け加わるが、この追加の手間は、従来技術に対して得られた節約に比べると、小さい。
【００１９】
ｓｖとして可能な値の数は、Ｋとして可能な値の数よりもずっと少ない。これは、ｓｖの値は、通常Ｋの値よりもダイナミックレンジ(変化周波数)が小さいことを意味する。この結果、桁シフト演算の更新レートは、通常の、従来技術における乗算演算の更新レートよりも小さくなる。したがって、従来技術（図１参照）と比較して、値ｓｖをソフトウェア回路領域からハードウェア回路領域に転送する際のバス負荷が小さくなる（消費電力が減る）。
【００２０】
シフト桁ｓｖは、Ｋに対して対数的に（底ｐ）スケーリングされ、整数のみを取るので、シフト桁ｓｖを表すために（すなわち、桁シフト演算を制御するために）必要なワード長は、従来技術（図１参照）における乗算を構成するための値Ｋまたは１／Ｋのワード長よりも、明らかに短い。これにより、ソフトウェア回路領域からハードウェア回路領域に値ｓｖを転送するためのバス負荷も小さくなるが、これは、従来技術（図１参照）に比べて、バスのワード長が明らかに短くなるからである。
【００２１】
本発明の特に好適な実施形態では、桁ｓｖは、ｓｖ＝ｒｏｕｎｄ（ｌｏｇｐＫ）である。ここで、ｒｏｕｎｄ（．）は丸め演算（引き数をもっとも近似する整数に丸める）である。この式により、シフト桁ｓｖを算出する上で、特に利点が生じうる。桁シフトにより決まる乗算用の近似値Ｋ’は、この場合、
【００２２】
【数３】
2006172475.tif 000005
【００２３】
になる。
【００２４】
補正因子Ｋｆの選択においては、続くハードウェアブロックにおいて、本発明の乗算演算または除算演算に対して調整を行わないでもよいように選択される。本発明の好適な実施形態の特徴は、続くハードウェアブロックにおいて線形性が保たれる限り、補正因子Ｋｆは、除算時は（ｐｓｖ）／Ｋの値を有し、乗算時はＫ／ｐｓｖの値を有することである。続くハードウェアブロックにおいて、非線形性がある場合、補正因子Ｋｆをこれに応じて変更する。
【００２５】
本発明のさらに好適な構成の特徴は、シフトしたＸの値が所定の数値に達した場合、シフトしたＸの値を飽和させる工程をさらに含むことである。これにより、信号のオーバーフローを防ぎ、量子化の精度の観点からは不要となる最下位ビット（ＬＳＢｓ）が切り捨てられる。
【００２６】
本発明の電子回路は、Ｘ・Ｋの乗算演算またはＸ・１／Ｋの除算演算を行うための電子回路である。この電子回路は、ｐｓｖがＫの近似値となるように、シフト桁ｓｖを計算するための第１計算手段をソフトウェア回路領域に有する。さらに、この電子回路は、この電子回路のハードウェア回路領域に制御可能な桁シフト器（バレルシフタ）を有し、乗算時には値Ｘをｓｖ桁左にシフトし、除算時には、値Ｘをｓｖ桁右にシフトする。このソフトウェア回路領域は、さらに第２計算手段を有し、これが、適切な補正因子Ｋｆを計算し、シフトしたＸの値に補正因子Ｋｆを乗算する。
【００２７】
このように実現された本発明の電子回路は、すでに請求項１に関して述べた利点を有する。
【発明の効果】
【００２８】
本発明により、電子回路中で乗算演算または除算演算を行う方法において、演算を簡単に行えるようにすることができるという効果を奏する。また本発明により、電子回路、とりわけ、ＳＩＮＲ推定を行う回路の中で、乗算演算および除算演算を行う装置を、上述の利点を有する装置として提供することができるという効果を奏する。
【発明を実施するための最良の形態】
【００２９】
以下に、図面を参照し、本発明を実施形態を用いてより詳しく説明する。
【００３０】
図１は、除算演算を行うための従来の回路を示す図である。
【００３１】
図２は、除算演算を行うための本発明の回路の実施形態を示す図である。
【００３２】
図３は、本発明の回路を複数回用いた、信号対干渉雑音電力比を推定するための回路の実施形態を示す図である。
【００３３】
図２は、Ｋによる除算（ないし、因子１／Ｋによる乗算）を行うための本発明の回路の実施形態を示す図である。図１で示した回路部材と同じまたは類似の回路部材は、同じ参照符号で示す。先行のハードウェアブロック１の後に接続されるハードウェア回路２０は、近似平均値を算出するための回路である。このハードウェア回路２０は、アキュームレータ３と、バレルシフタとして実現される制御可能なスケーラ８０と、レジスタ７０とを有する。アキュームレータ３の出力のワード長はＢａであり、アキュームレータ３の出力は、スケーラ８０のデータ入力と接続されている。スケーラ８０の制御入力は、レジスタ７０の出力と接続されている。スケーラ８０の出力はハードウェア回路２０の終点となり、この出力は後続のハードウェアブロック９に送られる。後続のハードウェアブロック９は、図１に図示したハードウェアブロック９と同じである。
【００３４】
ファームウェア領域（ソフトウェア回路領域）は、シフト桁ｓｖを算出するためのファームウェア計算ブロック５０を有する。シフト桁ｓｖは、バス６０を介して、ハードウェア領域（ハードウェア回路領域）に渡され、レジスタ７０中で保存される。ファームウェア計算ブロック５０は、さらに、
【００３５】
【数４】
2006172475.tif 000006
【００３６】
の形式での補正因子２ｓｖ／Ｋを計算する。この因子は、ファームウェアの補正ブロック１００に送られ、この補正ブロック１００は、ハードウェアブロック９の出力データを処理する。このようにして補正されたデータストリームは、ファームウェアブロック１１０でさらに処理される。
【００３７】
本発明の回路の作用は、以下の通りである。
【００３８】
入力データストリームａｋは、公知で、可変となり得るデータレートを有する。Ｋ個のデータ値が累積され、正規化因子１／Ｋによる正規化が行われる。すなわち、
【００３９】
【数５】
2006172475.tif 000007
【００４０】
の値が計算される。値Ｋは可変で、広い範囲で変わり得る。
【００４１】
ファームウェア領域内で既知の値Ｋは、（不図示の方法で）アキュームレータ３に伝えられ、ファームウェアブロック５０で利用可能になる。アキュームレータ３は、総和
【００４２】
【数６】
2006172475.tif 000008
【００４３】
を計算する。ファームウェア計算ブロック５０は、値Ｋから、ｓｖを例えば
ｓｖ＝ｒｏｕｎｄ（ｌｏｇ２Ｋ）
で算出する。値ｓｖのワード長（ビット長）はＢｉであり、これが、バス６０を介して、ハードウェア領域中のレジスタ７０に書き込まれる。
【００４４】
総和
【００４５】
【数７】
2006172475.tif 000009
【００４６】
のワード長はＢａである。シフト桁ｓｖは、パラメータ設定可能なスケーラ８０により、総和
【００４７】
【数８】
2006172475.tif 000010
【００４８】
に適用されるシフト演算に対するビットを選択するために使用される。シフト演算により生成される近似値
【００４９】
【数９】
2006172475.tif 000011
【００５０】
のワード長は、
【００５１】
【数１０】
2006172475.tif 000012
【００５２】
である。
【００５３】
【数１１】
2006172475.tif 000013
【００５４】
は常に成立するので、ワード長
【００５５】
【数１２】
2006172475.tif 000014
【００５６】
は、補正値ｂのワード長Ｂｂと同じであり、すなわち、
【００５７】
【数１３】
2006172475.tif 000015
【００５８】
である。
【００５９】
換言すると、総和
【００６０】
【数１４】
2006172475.tif 000016
【００６１】
は、ハードウェア回路２０中で、補正因子１／Ｋ自体と乗算されるのではなく、近似値
【００６２】
【数１５】
2006172475.tif 000017
【００６３】
と乗算される。
【００６４】
これにより生じた誤差は、ファームウェア計算ブロック５０中で算出される補正因子Ｋｆにより補正される。
【００６５】
ハードウェアブロック９が、線形応答を行う限り、補正因子Ｋｆは
【００６６】
【数１６】
2006172475.tif 000018
【００６７】
である。ｓｖ＝ｒｏｕｎｄ（ｌｏｇ２Ｋ）なので、
【００６８】
【数１７】
2006172475.tif 000019
【００６９】
となる。ファームウェア補正ブロック１００中の補正乗算により、続くデータ処理（ファームウェアブロック１１０）が、正しい値ｂでさらなる処理を行うことができる。
【００７０】
補正因子
【００７１】
【数１８】
2006172475.tif 000020
【００７２】
での補正乗算は、後続のハードウェアブロック９が、線形応答を行うことを前提としている。後続のハードウェアブロック９の応答が線形でない場合には、これに応じた適切な補正乗算を行わねばならない。いずれにせよ、ファームウェア補正ブロック１００以降のデータ処理ブロック（ファームウェアブロック１１０および／または不図示のハードウェアブロック）は、この変更による影響を受けない。上述したように、後続のハードウェアブロック９は、従来技術で用いられている後続のハードウェアブロック９と同じである。
【００７３】
本発明の方法は、以下の利点を有する。
【００７４】
シフト演算を表すのに必要なワード長Ｂｉは、通常、この因子自体のワード長よりもずっと小さい。すなわち、Ｂｉ＜＜Ｂｋである。
【００７５】
Ｋの丸め値
【００７６】
【数１９】
2006172475.tif 000021
【００７７】
のダイナミックレンジはＫのダイナミックレンジよりも小さいので、シフト演算の更新レートを、従来の乗数（正規化因子１／Ｋ）の場合の更新レートよりも小さくすることができる。この点および上述の点により、バス６０におけるバス負荷を（バス６のバス負荷に比較して）低減することができる。
【００７８】
従来技術で必要な乗算器４を省くことができる。スケーラ８０は、従来技術のスケーラ８よりも少し複雑になるが、結果として、複雑なハードウェアを減らすことができる。
【００７９】
本発明により生じる小さな欠点は、ファームウェアでの、値Ｋの、シフト演算（シフト桁ｓｖ）および補正因子Ｋｆへのマッピングを行う必要がある点である。しかし、この際の複雑さは、図１で行われるＫから１／Ｋへのマッピング（逆数を取ること）と対等である。
【００８０】
さらに、ハードウェア領域で同じ因子（Ｋおよび１／Ｋ）を用いて複数のこのような乗算または除算が行われるときに、本発明の概念を特に効率的に用いることができる。この場合に、同じファームウェアの補正乗算により、全ての演算を、ファームウェア補正ブロック１００で補正することができる。これは、次の実施形態からも明らかになる。
【００８１】
図３は、例えば（インフィネオンテクノロジーズ株式会社製の）ＭＧＯＬＤ２ＴＭチップのＳＩＮＲ（信号対干渉雑音電力比）推定回路ブロック２００およびＣＳ（チャネル状態）推定回路ブロック２５０中で、本発明を用いた場合の例を示す図である。発明の本質的な点をよりよく理解するために、ＳＩＮＲ推定回路ブロック２００およびＣＳ推定回路ブロック２５０は、簡略化して（「通常モード、データベース」の動作モードのみ）示す。
【００８２】
ＳＩＮＲ推定回路ブロック２００は、４つのサブブロック、すなわち、ＤＰＣＨ電力算出サブブロック２１０と、ＣＰＩＣＨ電力算出サブブロック２２０と、ＣＰＩＣＨ雑音電力算出サブブロック２３０と、振幅比算出サブブロック２４０とからなる。チャネル状態の推定を行うＣＳ推定回路ブロック２５０は、ＳＩＮＲ推定回路ブロック２００の後段に配されている。
【００８３】
ＵＭＴＳにおいて、ＳＩＮＲ推定は、物理的なチャネルＤＰＣＨ（専用物理チャネル）とＣＰＩＣＨ（共通パイロットチャネル）とが受信した複素シンボルに基づいている。ＵＭＴＳのチャネル構造は公知であり、例えば、仕様３ＧＰＰ  ＴＳ  ２５．２１１  Ｖ４．６．０（２００２−０９）（リリース４）に示されている。
【００８４】
ＤＰＣＨ電力算出サブブロック２１０の出力は、ファームウェア領域と振幅比算出サブブロック２４０とに送られる。ＣＰＩＣＨ電力算出サブブロック２２０の出力は、振幅比算出サブブロック２４０に供給される。振幅比算出サブブロック２４０の出力は、ファームウェア領域とＣＳ推定回路ブロック２５０の入力とへ供給される。ＣＰＩＣＨ雑音電力算出サブブロック２３０の出力は、ＣＳ推定ブロック２５０のもう一つの入力とファームウェア領域とに供給される。ファームウェア領域は、例えば、ＤＳＰにより実現される。
【００８５】
以下に、各サブブロック２１０・２２０・２３０・２４０およびブロック２５０の構造と作用とについて、より詳しく説明する。
【００８６】
サブブロック２１０・２２０・２３０の入力信号は、逆拡散され遅延補正がなされたＤＰＣＨシンボルｘｄａｔａ、ＣＰＩＣＨシンボルｙ、およびＣＰＩＣＨチャネルの重みｈより形成される。ＣＰＩＣＨチャネルの重みｈは、ローパスフィルタに通されて逆拡散され、かつ遅延補正されたＣＰＩＣＨシンボルｙであると見なすことができる。入力信号は全て複素値であり、ＵＭＴＳ受信機中で並列に処理される全ての伝搬パス（Ｒａｋｅフィンガ：Ｒake finger）に供給される。ここで、上流の遅延補正により、パス固有の伝搬経路を通した時間のずれはすでに補正されている。これゆえに、様々な伝搬パスを介して受信した入力信号成分は、時間的に同期したものと見なせる。
【００８７】
ＤＰＣＨ電力算出サブブロック２１０は、複素二乗器ＣＳＱＲと、マルチチャネルアキュームレータｃｅｌｌ−ａｃｃｕとを有する。マルチチャネルアキュームレータｃｅｌｌ−ａｃｃｕの出力には、制御可能なスケーラ（バレルシフタ）ｓｃ１２が設けられている。制御可能なスケーラｓｃ１２の後段には、ＦＩＲフィルタＦＩＲ１が接続されている。
【００８８】
ＤＰＣＨ電力算出サブブロック２１０中では、以下の式により、信号電力Ｗｐが計算される。
【００８９】
【数２０】
2006172475.tif 000022
【００９０】
式中、ｍはフィンガ番号、ｋは時間インデックスである。Ｃはセル番号、Ｍ（Ｃ）はセルＣにおけるＲａｋｅフィンガ数、ｘｄａｔａｍ（ｋ）は、Ｒａｋｅフィンガｍのタイムスロットにおける、ｋ番目のデータシンボル（ｋ＝１，…，Ｋｘ）である。Ｋｘは、あるタイムスロットのシンボル数である。
【００９１】
これにより、ＤＰＣＨ電力算出サブブロック２１０は、複素二乗器ＣＳＱＲにより、複素ＤＰＣＨデータシンボルｘｄａｔａｍ（ｋ）の絶対値の二乗を計算する。タイムスロット（ｋ＝１，…，Ｋｘ）の全てのシンボル、および、セル（ｍ＝１，…Ｍ（ｃ））の全てのＲａｋｅフィンガについて、絶対値の二乗がマルチチャネルアキュームレータｃｅｌｌ−ａｃｃｕで累積される。各セルには、ＵＭＴＳのタイムスロット毎に結果値が出る。このセル固有の結果値は、制御可能なスケーラｓｃ１２により、タイムスロット１／Ｋｘ毎のシンボル数の逆数を用いたスケーリングが施されることにより正規化される。Ｋｘは、タイムスロットの境界において、逆拡散係数が変わるときに変更することもできる。各セル用に得られた正規化された結果は、ＦＩＲ１フィルタ中のローパスフィルタに通される。ＷＤ（Ｃ）は、セル番号ＣのセルのＤＰＣＨ電力を示す。
【００９２】
ＣＰＩＣＨ電力算出サブブロック２２０は、ＤＰＣＨ電力算出サブブロック２１０と類似の構成である。ＣＰＩＣＨ電力算出サブブロック２２０中のスケーラを参照符号ｓｃ３３で示す。データシンボルｘｄａｔａｍ（Ｋ）の代わりに、チャネル重みｈｍ（ｋ）が処理される。式中、ｈｍ（ｋ）は、Ｒａｋｅフィンガｍのｋ番目のチャネル重み（ｋ＝１，．．．，１０）を示す。タイムスロット毎に、常に１０のチャネル重みが存在する。それゆえに、スケーリングは、常に、係数１／１０を用いて行われる。ＣＰＩＣＨ電力算出用の式は、以下の通りである。
【００９３】
【数２１】
2006172475.tif 000023
【００９４】
式中、Ｗｃ（Ｃ）は、セル番号Ｃのセル中のＣＰＩＣＨ信号電力を示す。
【００９５】
ＣＰＩＣＨ雑音電力算出サブブロック２３０は、ＤＰＣＨ電力算出サブブロック２１０およびＣＰＩＣＨ電力算出サブブロック２２０と類似の構成であるが、このサブブロックは、さらに、入力側に減算器ｓｕｂを有する。ｙｍ（ｋ）は、Ｒａｋｅフィンガｍのｋ番目のＣＰＩＣＨシンボル（ｋ＝１，．．．，１０）を示す。減算器ｓｕｂでは、差ｙｍ（ｋ）−ｈｍ（ｋ）を得る。この差は、ＣＰＩＣＨからの推定雑音信号と考えることができるが、この理由は、この差が、元のＣＰＩＣＨ信号から、ローパスフィルタに通して得られたＣＰＩＣＨ信号を引くことにより形成されたものであることである。現時点での推定された複素雑音振幅ｙｍ（ｋ）−ｈｍ（ｋ）の絶対値は、複素二重器ＣＳＱＲ中で二乗され、アキュームレータｃｅｌｌ−ａｃｃｕ中で合計され、スケーラｓｃ２２でスケーリングされ、ＦＩＲフィルタＦＩＲ３によりフィルタリングされる。セル番号Ｃのセルに対して得られる雑音電力Ｎ（Ｃ）は、以下のとおりである。
【００９６】
【数２２】
2006172475.tif 000024
【００９７】
上式から以下のことが明らかになる。すなわち、上述のアルゴリズム（式（１）および式（２））とは異なり、式（３）では、タイムスロット毎にＣＰＩＣＨシンボルの数、すなわち、１０により除算が行われるのみならず、さらにセルのフィンガの数Ｍ（Ｃ）によっても除算が行われる。数Ｍ（Ｃ）は、各セル毎に異なり、タイムスロット毎に変わり得る。
【００９８】
全てのＦＩＲフィルタＦＩＲ１・ＦＩＲ２・ＦＩＲ３は、周波数０Ｈｚにおいて利得１の低域通過応答特性を有している。これゆえに、これらのフィルタは、スケーリング係数を考える際に、考慮しなくても良い。ＦＩＲフィルタＦＩＲ１・ＦＩＲ２・ＦＩＲ３の係数は、異なる添え字１・２・３により示唆されるように、互いに異なっている。
【００９９】
振幅比算出サブブロック２４０は、推定されたＣＰＩＣＨ電力Ｗｃ（Ｃ）でＤＰＣＨ信号電力ＷＤ（Ｃ）を除算し、かつ、この比の平方根の計算を行う。このようにして得られた大きさＡ（Ｃ）を振幅比とする。各タイムスロットに対して、かつ、各セル（セル番号Ｃ）に対して値が算出される。
【０１００】
【数２３】
2006172475.tif 000025
【０１０１】
ＣＳ推定回路ブロック２５０は、除算器ＤＩＶとスケーラｓｃｅ−ｓｃａｌｅとを有する。除算器ＤＩＶは、振幅比Ａ（Ｃ）を雑音電力Ｎ（Ｃ）で除算する。除算の結果は、図３では不図示の、Ｒａｋｅ受信機の合成器を構成するＭＲＣハードウェアユニット（ＭＲＣ：最大比合成器）に必要な正規化因子Ｆ（Ｃ）である。正規化因子Ｆ（Ｃ）は、各タイムスロットおよび各セルに対して、
【０１０２】
【数２４】
2006172475.tif 000026
【０１０３】
で算出される。
【０１０４】
ＳＩＮＲ推定回路ブロック２００およびＣＳ推定回路ブロック２５０から出力される結果は、ＭＲＣ以外にＤＳＰ（ファームウェア領域）においても、さらに処理をするために必要とされる。ファームウェア領域では、例えば、ハードウェアで算出される信号電力を雑音電力で割り、その常用対数を取って、そこから、セル固有の信号対干渉雑音電力比ＳＩＮＲの推定値を、デシベル（ｄＢ）で表すことができる。
【０１０５】
なお、式（１）〜式（５）で示した信号処理アルゴリズムは、例示的なものである。なぜならば、これらの式は、特定の動作モード（通常モード、データベース）時のみの値であり、他の動作モードでは異なり得るからである。
【０１０６】
上述の内容から、以下のことが明らかになる。図３で示したハードウェアブロックのタスクは、比較的単純な数学演算を用いた入力信号の前処理であるが、これによってかなりのデータの縮小が可能になる。これにより得られる効果は、上記結果のデータをＤＳＰにおいてさらに処理するに当たり、より複雑な数学演算を僅かに必要とするのみとなる、ということである。この複雑な数学演算は、ファームウェアで容易にプログラミングすることができる。
【０１０７】
本発明では、式（１）〜（５）による「理想的な」アルゴリズムを直接ハードウェアに実装するのは非効率であるとしているが、この理由は、スケーリング演算のためには、２の累乗ではない数による除算が必要であるからである。１０による除算、または、式（１）〜（５）で出てきたようなシンボルまたはＲａｋｅフィンガの変数による除算は、ハードウェア中よりも、ファームウェア中での方が、実質的により容易に実施可能である。したがって、ハードウェア中では、２の累乗による除算のみ、すなわちシフトレジスタ演算のみを行う。任意の正の整数Ｚによる除算は、「近似的な」２の累乗である
【０１０８】
【数２５】
2006172475.tif 000027
【０１０９】
による除算に置き換えられる。１０で除算する代わりに、右方向に３ビットのシフトが行われるが、これは８での除算に相当する。ＷＤ（Ｃ）、Ａ（Ｃ）、Ｎ（Ｃ）の結果は、誤差を有したまま、ＤＳＰ（ファームウェア領域）に送られる。近似値誤差は、ファームウェア中で（ＤＳＰにより）補正される。この際、ファームウェア中では、ハードウェア中よりもずっと容易に、所望の数での除算を行うことができる。ハードウェアの結果にファームウェア中で乗算されるべき補正因子は、
【０１１０】
【数２６】
2006172475.tif 000028
【０１１１】
であり、すなわち、近似値と実際値の分母との商と同じである。
【０１１２】
これに関して、スケーラｓｃ１２・ｓｃ２２・ｓｃ３３は実質的にバレルシフタであり、すなわち、プログラム可能なビット数だけの右方向（または左方向）へのシフトを行うことができ、これにより式（１）〜（３）中のスケーリング係数を近似することができるハードウェアユニットである。シフトするビットの数は、図２に示した大きさｓｖ（シフト桁）に相当する。
【０１１３】
スケーラｓｃ１２・ｓｃ２２・ｓｃ３３には、シフト演算以外にも、信号が所定の閾値に到達したときに信号を飽和させることにより、信号のオーバーフローを防ぐとともに、量子化の精度の観点からは不要となるＬＳＢを切り捨てる機能がある。
【０１１４】
スケーラｓｃ１２・ｓｃ２２・ｓｃ３３とは異なり、ＣＳ推定回路ブロック２５０におけるスケーラｓｃｅ−ｓｃａｌｅは、従来と同様のもの、すなわち、図１のハードウェア乗算器として実施する。この理由は、正規化因子Ｆ（Ｃ）が直接ハードウェア中で必要であり、ファームウェアにおいて除算を行った場合には時間が長くかかりすぎるからである（ハードウェア−ファームウェア−ハードウェアループ）。したがって、ファームウェアは、スケーラｓｃ１２・ｓｃ２２・ｓｃ３３中のスケーリング係数の全ての近似誤差の積から得られる補正因子を算出する。この値は、一般に、２の累乗ではない。このために、スケーラｃｓｅ−ｓｃａｌｅは、除算器ＤＩＶから出力されたデータ信号を、ＤＳＰで計算され（不図示の）レジスタでプログラムされたスケーリング係数と乗算するハードウェア乗算器を必要とする。
【０１１５】
図２の回路においても、図３の回路においても、補正因子Ｋｆは、ファームウェアにおいて計算される。２つの回路の差異は、図２では、補正ブロック１００がファームウェアで実装されているのに対し、図３では、計算された変数のうちの１つの値Ｆ（Ｃ）に対する補正ブロックが、スケーラｃｓｅ−ｓｃａｌｅで表されている、すなわち、ハードウェア中で実現されていることである。
【０１１６】
本発明をよりよく理解するために、これを簡単な数字の例で説明する。ＤＰＣＨタイムスロット形式（スロット形式）を１５とする。冒頭で示したＵＭＴＳ標準３ＧＰＰ  ＴＳ  ２５．２１１（２００２−０９）によれば、この場合、ＫＸ＝３０４のデータシンボルが、タイムスロット中にある。復調伝播パスへのＲａｋｅフィンガを７つ有する（すなわち、Ｍ（Ｃ）＝７である）セルを、基本とする。スケーラｓｃ１２をプログラミングするために、２のほぼ何乗が３０４になるかを計算、すなわち
【０１１７】
【数２７】
2006172475.tif 000029
【０１１８】
を計算する。それゆえに、スケーラｓｃ１２中では係数１／２５６を用いて乗算を行う。スケーラｓｃ１２を動作させるために、ビットシフト数（すなわち、数８）のみを、スケーリングパラメータレジスタ（図２中のレジスタ７０に対応）中にプログラミングする。数２５６に比べて、数字の表記のために必要となるビット長は、明らかに短くなる。すなわち、図２におけるＢｉ＜＜Ｂｋである。
【０１１９】
ＤＰＣＨ電力算出サブブロック２１０での近似誤差は因数３０４／２５６で表される、すなわち、結果はこの因数分だけ大きくなる。
【０１２０】
ＣＰＩＣＨ電力算出サブブロック２２０での近似誤差は因数１０／８で表されるが、これは、スケーラｓｃ３３中で、１０の代わりに、８のみで除算を行ったからである。
【０１２１】
ＣＰＩＣＨ雑音電力算出サブブロック２３０中の、スケーラｓｃ２２での近似誤差は因数７０／６４（１０・Ｍ（Ｃ）＝１０・７＝７０の代わりに６４で割るので）で表される。ここから、以下の補正因子が算出される。
【０１２２】
信号電力（サブブロック２１０）の補正因子：
Ｋｆ１＝２５６／３０４＝０．８４２１０…
雑音電力（サブブロック２３０）の補正因子：
Ｋｆ２＝６４／７０＝０．９１４２８…
振幅比（サブブロック２３０）の補正因子：
Ｋｆ３＝ｓｑｒｔ（２５６／３０４）／（８／１０）＝１．０２５９７…
したがって、ブロック２５０中の正規化因子を計算するための補正因子として、
Ｋｆ４＝ｓｑｒｔ（（２５６／３０４）／（８／１０））／（６４／７０）＝１．１２２１６…
を用いる。
【０１２３】
最初の３つの補正因子Ｋｆ１・Ｋｆ２・Ｋｆ３と、出力の大きさＷＤ（Ｃ）・Ｎ（Ｃ）・Ａ（Ｃ）との乗算は、純粋に、（図２の補正ブロック１００に対応するＤＳＰを用いて）ファームウェア中でのみ行われる。最後の補正因子Ｋｆ４による乗算は、上述のように、スケーラｃｓｅ−ｓｃａｌｅにより、ハードウェア中で行われる。しかしその補正因子Ｋｆ４はファームウェアで計算され、（不図示の）レジスタを用いて、ハードウェアブロック２５０中で、パラメータとしてプログラミングされる。
【図面の簡単な説明】
【０１２４】
【図１】除算演算を行うための従来の回路を示す図である。
【図２】除算演算を行うための本発明の回路の実施形態を示す図である。
【図３】本発明の回路を複数回用いた、信号対干渉雑音電力比を推定するための回路の実施形態を示す図である。
【符号の説明】
【０１２５】
８０          スケーラ（バレルシフタ、桁シフト器）
【図１】
2006172475.tif 000030
【図２】
2006172475.tif 000031
【図３】
2006172475.tif 000032