(57)【特許請求の範囲】
【請求項１】
複数のチャネライゼーションコードで拡散され、多重化された拡散データをアダマール変換によって復元するアダマール変換回路において、
前記アダマール変換を行うための複数のバタフライ演算の各段における演算結果を保持するバッファと、
前記バッファに保持されている前記演算結果を用いて次段の複数の前記バタフライ演算を行い、その演算結果を前記バッファに保持するアダーと、
前記チャネライゼーションコードを識別する識別番号に基づいて、前記アダーの複数の前記バタフライ演算における個々の加算処理においてその加算処理が必要か否か判断するアダー動作判断手段と、
を有することを特徴とするアダマール変換回路。
【請求項２】
前記識別番号と前記アダーのどの前記加算処理が必要か否かを示す情報とを対応付けて記憶した記憶装置を有することを特徴とする請求項１記載のアダマール変換回路。
【請求項３】
前記アダー動作判断手段は、前記記憶装置を参照して、前記アダーの個々の前記加算処理が必要か否か判断することを特徴とする請求項２記載のアダマール変換回路。
【請求項４】
前記アダー動作判断手段は、前記アダーの加算処理が不要であると判断した場合、前記バッファから前記アダーの加算処理に必要な前記演算結果を出力しないようにすることを特徴とする請求項１記載のアダマール変換回路。
【請求項５】
前記アダーの前段には、前記アダーに入力される前記演算結果を負の値にする乗算器が設けられていることを特徴とする請求項１記載のアダマール変換回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はアダマール変換回路に関し、特に複数のチャネライゼーションコードで拡散され、多重化された拡散データをアダマール変換によって復元するアダマール変換回路に関する。
【背景技術】
【０００２】
近年、無線端末の高速通信サービスとして、ＨＳＤＰＡ（High Speed Downlink Packet Access）と呼ばれるサービスが提供されつつある。このＨＳＤＰＡで提供される通信速度は、サービスカテゴリにより最大速度が規定されており、また、通信環境に応じて可変する（ベストエフォート型）。
【０００３】
端末は、ＨＳ−ＰＤＳＣＨ（High-Speed Physical Downlink Shared Channel）によりデータを受信するが、ＨＳ−ＰＤＳＣＨのマルチコード数により通信速度が増減する。つまり、サービスカテゴリや通信環境によって、ＨＳ−ＰＤＳＣＨのマルチコード数が可変する。
【０００４】
このマルチコードに対する逆拡散処理として、ＦＨＴ（Fast Hadamard Transform）を用いたＦＨＴ回路がしばしば用いられる（例えば、特許文献１参照）。ＦＨＴ回路では、マルチコードに対する逆拡散出力を同時に得ることが可能であり、マルチコードに対する逆拡散処理にメリットがある。
【０００５】
ところが、ＨＳ−ＰＤＳＣＨでは、前述した通りマルチコード数が増減する。そのため、マルチコード数が少ない場合、ＦＨＴ回路は、演算動作する必要がない部分が生じる。つまり、マルチコード数が多い場合は、ＦＨＴ回路は有効に機能するが、マルチコード数が少ない場合は、無駄に動作する部分が増加する。
【特許文献１】特開２００３−１９８５０４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
このように、マルチコード数が可変すると、回路に不要に動作する部分が生じ、演算量および回路の消費電力の効率が低いという問題点があった。
本発明はこのような点に鑑みてなされたものであり、アダマール変換の演算量および回路の消費電力を低減することができるアダマール変換回路を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明では上記問題を解決するために、図１に示すような複数のチャネライゼーションコードで拡散され、多重化された拡散データをアダマール変換によって復元するアダマール変換回路において、アダマール変換を行うための複数のバタフライ演算の各段における演算結果を保持するバッファ１と、バッファ１に保持されている演算結果を用いて次段の複数のバタフライ演算を行い、その演算結果をバッファ１に保持するアダー２と、チャネライゼーションコードを識別する識別番号に基づいて、アダー２の複数のバタフライ演算における個々の加算処理においてその加算処理が必要か否か判断するアダー動作判断手段３と、を有することを特徴とするアダマール変換回路が提供される。
【０００８】
このようなアダマール変換回路によれば、アダー動作判断手段３は、アダー２のバタフライ演算における個々の加算処理においてその加算処理が必要か否か判断する。これにより、アダー２の不要な加算処理を省略することができる。
【発明の効果】
【０００９】
本発明のアダマール変換回路では、アダーのバタフライ演算における個々の加算処理においてその加算処理が必要か否か判断するようにした。これによって、アダーの不要な加算処理を省略することができるようになり、アダマール変換の演算量および回路の消費電力を低減することができる。
【発明を実施するための最良の形態】
【００１０】
以下、本発明の原理を図面を参照して詳細に説明する。
図１は、アダマール変換回路の概要を示した図である。図に示すようにアダマール変換回路は、バッファ１、アダー２、アダー動作判断手段３、および乗算器４を有している。図に示すアダマール変換回路は、複数のチャネライゼーションコードで拡散され、多重化された拡散データを、アダマール変換によって同時に複数復元することができる。
【００１１】
バッファ１は、拡散データが入力され、複数のバタフライ演算の各段における演算結果を保持する。例えば、拡散データが１６チップの場合、１６×４段のバタフライ演算が行われ、バッファ１は、１〜４段の各段で行われるバタフライ演算の演算結果を保持する。
【００１２】
アダー２は、バッファ１に保持されている拡散データ、またはバタフライ演算の演算結果を用いて次段のバタフライ演算を行い、その演算結果をバッファ１に保持する。
アダー動作判断手段３には、拡散データの拡散に使用したチャネライゼーションコードの識別番号が入力される。アダー動作判断手段３は、入力された識別番号に基づいて、アダー２の複数のバタフライ演算における個々の加算処理においてその加算処理が必要か否か判断する。アダー動作判断手段３は、判断したアダー２の不要な加算処理では、バッファ１からアダー２にデータを出力しないようにし、その加算処理を省略するようにする。
【００１３】
例えば、データを拡散したチャネライゼーションコードの識別番号が１〜５であったとする。この場合、アダー動作判断手段３は、この識別番号１〜５に基づいて、アダー２のバタフライ演算におけるどの加算処理が不要か判断する。そして、判断したアダー２の不要な加算処理では、バッファ１からアダー２にその加算処理のためのデータを出力しないようにし、次の加算処理に必要なデータを出力するようにする。すなわち、アダー動作判断手段３は、アダー２の不要な加算処理を省略するようにする。
【００１４】
図２は、アダマール変換回路の加算処理不要の判断単位を説明する図である。図２の（Ａ），（Ｂ）には、バタフライ演算の例が示してある。図２の（Ａ），（Ｂ）に示す点線丸は、図１に示したアダー２の加算処理が対応する。バタフライ演算は、図２の（Ａ），（Ｂ）に示すように、ｉｎ１，ｉｎ２のデータ（バッファ１に保持されている拡散データまたは、前段のバタフライ演算結果）を矢印に示すように加算演算し、ｏｕｔ１，ｏｕｔ２の次段のバタフライ演算結果を得る。
【００１５】
アダー動作判断手段３は、複数のバタフライ演算における個々の加算処理においてその加算処理が必要か否か判断する。従って、アダー動作判断手段３は、図２の（Ａ）に示すバタフライ演算単位で動作を停止するのではなく、図２の（Ｂ）の点線矢印に示すように、バタフライ演算のｏｕｔ１，ｏｕｔ２の加算処理単位で動作を停止する。すなわち、アダー動作判断手段３は、アダー単位で処理を停止させる。
【００１６】
図１の説明に戻る。乗算器４は、バッファ１から出力されるデータに１または−１を乗算する。バタフライ演算では、加減算処理が行われ、乗算器４は、バタフライ演算の減算処理が必要な場合に、データに−１を乗算する。これにより、アダー２は、データの加算処理を行っているが実質減算処理も行うことができる。
【００１７】
このように、アダマール変換回路は、アダーのバタフライ演算における個々の加算処理においてその加算処理が必要か否か判断するようにした。これによって、アダーの不要な加算処理を省略することができるようになり、アダマール変換の演算量および回路の消費電力を低減することができる。
【００１８】
次に、本発明の第１の実施の形態を図面を参照して詳細に説明する。
図３は、第１の実施の形態に係るＦＨＴ回路を適用した端末のシステム構成例を示す図である。図には、端末１１，１２および基地局１３が示してある。
【００１９】
端末１１，１２は、基地局１３からＨＳ−ＰＤＳＣＨによってデータ受信を行う。基地局１３は、端末１１，１２が対応しているサービスカテゴリや通信環境によって、端末１１，１２に割り当てるマルチコード数を可変する。端末１１，１２は、ＦＨＴ回路を搭載し、マルチコードに対する逆拡散出力を同時に得ることができる。
【００２０】
ＨＳ−ＰＤＳＣＨの拡散率は、ＳＦ（Spreading Factor）＝１６である。ＳＦ＝１６の場合、基地局１３は、ユーザ（端末）を識別するためのチャネライゼーションコードＣｃ（ＳＦ，ｋ）を１６個作成することができる。ｋは、チャネライゼーションコードを識別するための識別番号であり、ＳＦ＝１６の場合、ｋ＝０〜１５である。具体的には、基地局１３は、Ｃｃ（１６，０），Ｃｃ（１６，１），…，Ｃｃ（１６，１５）と、１６個のチャネライゼーションコードを作成することができる。なお、基地局１３は、１つの端末に１個のチャネライゼーションコードを割り当てれば、１６台の端末との通信を識別することができる。
【００２１】
マルチコードとは、基地局１３が複数のチャネライゼーションコードを１セットとして端末１１，１２に割り当て、無線通信する方式である。基地局１３は、１つの端末に多くのチャネライゼーションコードを割り当てれば、複数のデータを複数のチャネライゼーションコードで拡散し、多重して無線送信できるため、無線通信できるデータ量が増加して通信速度を向上することができる。
【００２２】
図４は、ＦＨＴのバタフライ演算例を示した図である。図３に示した端末１１は、ＦＨＴ回路により、図４に示すバタフライ演算を行うことによって、マルチコードに対する逆拡散出力を同時に得ることができる。端末１２も同様である。
【００２３】
図４に示すｉｎには、基地局１３から受信した拡散データ（チップ）が入力される。図４は、ＨＳ−ＰＤＳＣＨのＳＦ＝１６の例が示してあり、ｉｎには、１６チップのデータが入力される。
【００２４】
図４に示す＋の記号は、加算演算（アダー）を示す。アダーは、矢印の起点のデータを加算する。例えば、図４に示す１６×４段のアダーの、一番左上のアダーは、基地局１３から受信したチップ０とチップ８とを加算する。その右隣のアダーは、一番左上のアダーの加算結果と、そのアダーから４個下のアダーの加算結果とを加算する。なお、ＳＦ＝１６の場合、逆拡散に必要なＦＨＴのバタフライ演算用アダー数は、１６チップ×４段で６４個となる。
【００２５】
図４に示す点線矢印は、データを−１乗算して次のアダーに出力していることを示している。例えば、図４に示す一番左上から８個下のアダーは、チップ０と、−１乗算したチップ８とを加算する。つまり、このアダーは、加算演算を行っているが、結果として減算をしているのと同じである。
【００２６】
なお、データの−１乗算は、例えば、−１の乗算を行う乗算器をアダーの前段に設けることにより可能である。
ＦＨＴ回路は、図４に示すバタフライ演算を行うことによって、図４に示すｏｕｔから逆拡散出力を得ることができる。例えば、図のｏｕｔ０からは、ｋ＝０のチャネライゼーションコードに対する逆拡散出力を得ることができ、ｏｕｔ１からは、ｋ＝８のチャネライゼーションコードに対する逆拡散出力を得ることができる。なお、図４に示すｋは、ｏｕｔから得られる逆拡散出力のチャネライゼーションコードの識別番号を示している。
【００２７】
従来のＦＨＴ回路では、マルチコード数に関係なく、１６×４段の全アダーが使用されていた。例えば、ｋ＝１〜５の５個のチャネライゼーションコードしか使用していない場合であっても、１６×４段の全アダーを動作させてバタフライ演算を行っていた。
【００２８】
これに対し、端末１１に搭載されるＦＨＴ回路では、動作する必要のないアダーに対しては、その動作を停止するようにする。また、バタフライ演算単位ではなく、アダー単位で動作を停止するようにする。
【００２９】
例えば、基地局１３は、ｋ＝１〜５のチャネライゼーションコードの識別番号を端末１１に割り当て、データ拡散し、無線送信したとする。この場合、端末１１のＦＨＴ回路は、図４の斜線が付されたアダーの動作を停止する。すなわち、ＦＨＴ回路は、ｋ＝１〜５のバタフライ演算に不要なアダーの動作を停止する。
【００３０】
動作不要なアダーは、使用されていないチャネライゼーションコードの識別番号の逆拡散結果を出力するアダーを、最終段（図４の一番左のアダーの列を１段目、その右のアダーの列を２段目、…とし、４段目を最終段とする）のアダーから入力（ｉｎ）側に向かってたどっていくことにより分かる。
【００３１】
例えば、図４の例の場合、使用されていない識別番号ｋ＝０，６〜１５に対応する４段目のアダーが、動作を停止すべきアダーと分かる。なお、図４の４段目の斜線を付したアダーが、動作を停止すべきアダーである。
【００３２】
次いで、３段目のアダーにおいて、４段目の動作を停止するアダーのみに加算結果を出力するアダーが、動作を停止すべきアダーと分かる。図４の例では、３段目の上から１，２，７，８，１５，１６番目のアダーが、４段目の動作を停止するアダーのみに加算結果を出力しており、これらのアダーが動作を停止すべきアダーと分かる。なお、図４の３段目の斜線を付したアダーが、動作を停止すべきアダーである。
【００３３】
次いで、２段目のアダーにおいて、３段目の動作を停止するアダーのみに加算結果を出力しているアダーが、動作を停止すべきアダーと分かる。なお、図４の例では、２段目のアダーにおいて、３段目の動作を停止するアダーのみに加算結果を出力するアダーは存在しない。
【００３４】
すなわち、ｋ＝１〜５の逆拡散出力を得るのに、斜線が付されたアダーの動作を停止させても、バタフライ演算結果に影響はない。これにより、ＦＨＴ回路の消費電力を低減することができる。なお、図の一点鎖線は、アダーから加算結果が出力されないことを示している（アダーの動作を停止したことを示す）。
【００３５】
図５は、ＦＨＴ回路の別のバタフライ演算例を示した図である。図５のバタフライ演算は、図４のバタフライ演算と順番が異なっているだけで、演算内容自体は同様である。すなわち、図５のバタフライ演算は、図４のバタフライ演算と演算方向が逆なだけである。図５の記号等は、図４と同様であり、その説明を省略する。
【００３６】
図５の場合も、動作を停止させるアダーは、図４と同様の考え方によって分かる。例えば、図４と同様に、端末１１にｋ＝１〜５のチャネライゼーションコードが割り当てられたとする。この場合、使用されていないチャネライゼーションコードの識別番号ｋ＝０，６〜１５の逆拡散結果を出力するアダーを、最終段のアダーから入力側に向かってたどっていけば、動作不要なアダーが分かる。
【００３７】
図５の例の場合、使用されていない識別番号ｋ＝０，６〜１５に対応する４段目のアダーが、動作を停止すべきアダーと分かる。なお、図５の４段目の斜線を付したアダーが、動作を停止すべきアダーである。
【００３８】
次いで、３段目のアダーにおいて、４段目の動作を停止するアダーのみに加算結果を出力するアダーが、動作を停止すべきアダーと分かる。図５の例では、３段目の上から２，４，６〜８，１０，１２，１４〜１６番目のアダーが、４段目の動作を停止するアダーのみに加算結果を出力しており、これらのアダーが動作を停止すべきアダーと分かる。なお、図５の３段目の斜線を付したアダーが、動作を停止すべきアダーである。
【００３９】
次いで、２段目のアダーにおいて、３段目の動作を停止するアダーのみに加算結果を出力するアダーが、動作を停止すべきアダーと分かる。図５の例では、２段目の上から２，４，６，８，１０，１２，１４，１６番目のアダーが、３段目の動作を停止するアダーのみに加算結果を出力しており、これらのアダーが動作を停止すべきアダーと分かる。なお、図５の２段目の斜線を付したアダーが、動作を停止すべきアダーである。
【００４０】
最後に、１段目のアダーにおいて、２段目の動作を停止するアダーのみに加算結果を出力するアダーが、動作を停止すべきアダーと分かる。図５の例では、１段目の上から２，４，６，８，１０，１２，１４，１６番目のアダーが、２段目の動作を停止するアダーのみに加算結果を出力しており、これらのアダーが動作を停止すべきアダーと分かる。なお、図５の１段目の斜線を付したアダーが、動作を停止すべきアダーである。
【００４１】
このように、異なるバタフライ演算によってもＦＨＴ回路の演算量および消費電力を低減することができる。
図６は、ＦＨＴ回路のブロック構成図である。図６に示すようにＦＨＴ回路は、バッファ２１、制御部２２，２４、セレクタ２３、乗算器２５、およびアダー２６を有している。図６に示すＦＨＴ回路は、図４または図５で説明したバタフライ演算を行う。
【００４２】
バッファ２１には、ＦＨＴが行われる入力信号が入力される。入力信号は、図４で説明したチップが対応する。すなわち、図６の入力信号は、図４、図５に示すｉｎと対応する。
【００４３】
バッファ２１は、入力信号を一時的に保持する。また、図４、図５で説明した各段のアダーの加算結果を一時的に保持する。
バッファ２１に保持されたチップは、図４、図５で説明したように、１段目のアダーに入力され、加算演算（バタフライ演算）される。以下で詳細に説明するが、図６のセレクタ２３、制御部２４、乗算器２５、およびアダー２６によって、図４、図５に示した矢印の１段目の加算演算が行われる。
【００４４】
１段目の加算演算結果（アダー結果）は、再びバッファ２１に保持される。すなわち、図４、図５に示した１段目のアダー結果は、バッファ２１に一時的に保持される。なお、加算演算した結果は、バッファ２１のチップを記憶した領域とは別の領域に記憶するようにする。
【００４５】
バッファ２１に記憶された１段目のアダー結果は、同様に、図６に示すセレクタ２３、制御部２４、乗算器２５、およびアダー２６によって、図４、図５に示した矢印の２段目の加算処理が行われる。
【００４６】
２段目のアダー結果は、再びバッファ２１に保持される。すなわち、図４、図５に示した２段目のアダー結果は、バッファ２１に一時的に保持される。なお、２段目のアダー結果は、バッファ２１のチップを記憶した領域を上書きするようにしてもよいし、別の領域に記憶するようにしてもよい。
【００４７】
同様に、ＦＨＴ回路は、３段目、４段目のアダー処理を行う。これにより、バッファ２１には、最終的に各チャネライゼーションコードにおける逆拡散結果が保持されることになる。そして、バッファ２１から出力信号として出力すれば、逆拡散結果が得られる。
【００４８】
制御部２２は、バッファ２１のデータの入出力制御を行う。例えば、バッファ２１に一時的に保持されたチップを乗算器２５およびアダー２６に出力する。また、制御部２２は、各段におけるアダー結果を乗算器２５およびアダー２６に出力する。制御部２２は、図４、図５に示した矢印の加算処理が行われるように、チップまたはアダー結果を乗算器２５およびアダー２６に出力する。
【００４９】
例えば、図４に示した一番左上のアダーは、チップ０とチップ８の加算処理を行う。従って、この場合、制御部２２は、バッファ２１からチップ０とチップ８が出力されるように制御する。また、図４に示した一番左上のアダーの１つ右隣のアダー（アダーＡ）は、１段目の一番上のアダー結果と、上から５番目のアダー結果とを加算処理する。従って、アダー２６が上記アダーＡの加算処理を行う場合、制御部２２は、バッファ２１に一時的に保持されている、対応する１段目のアダー結果を乗算器２５とアダー２６に出力するようにする。
【００５０】
端末１１は、基地局１３から割り当てられたチャネライゼーションコードの識別番号（ｋ）が通知される。制御部２２には、基地局１３から通知されたチャネライゼーションコードの識別番号が入力される。制御部２２は、入力されたチャネライゼーションコードの識別番号に基づいて、加算処理が不要なアダーを判断する。
【００５１】
例えば、基地局１３からｋ＝１〜５のチャネライゼーションコードの識別番号が通知されたとする。この場合、図４で説明したように、図４の斜線が付されたアダーの加算演算は不要である。制御部２２は、基地局１３から通知されたｋ＝１〜５のチャネライゼーションコードの識別番号に基づき、図４の斜線を付したアダーに対応する加算処理を行う場合には、バッファ２１からデータを出力しないようにする。これにより、制御部２２は、アダー２６の不要な加算処理を省略することができる。
【００５２】
セレクタ２３には、１および−１が入力されている。セレクタ２３は、制御部２４からの指示によって、１および−１の一方を乗算器２５に出力する。
制御部２４は、バタフライ演算において、減算処理が必要な場合に、セレクタ２３から−１が出力されるように制御する。例えば、図４、図５に示した点線矢印に対応するデータがバッファ２１から出力される場合、セレクタ２３から−１が出力されるように制御する。
【００５３】
乗算器２５は、セレクタ２３から出力される１および−１と、バッファ２１から出力されるデータとを乗算する。セレクタ２３から−１が出力された場合、バッファ２１から出力されるデータは、負の値にされるため、その結果アダー２６では、減算処理が行われることになる。セレクタ２３から１が出力された場合は、アダー２６では、加算処理が行われることになる。
【００５４】
アダー２６は、バッファ２１から出力されるデータを加算処理する。アダー２６は、図４、図５で示したアダー演算に対応する。アダー２６には、制御部２２の制御によって、図４、図５に示した矢印の起点のデータが出力されるので、アダー２６は、図４、図５の矢印のデータを加算処理することになる。
【００５５】
例えば、制御部２２の制御によって、バッファ２１に一時的に保持されているチップ０とチップ８のデータがバッファ２１から出力されたとする。この場合、アダー２６は、チップ０とチップ８の加算処理を行うことになる。この結果は、再びバッファ２１に保持される。なお、この加算処理は、図４の一番左上のアダー処理が対応する。
【００５６】
図７は、ＦＨＴ回路の別のブロック構成図である。図７に示すようにＦＨＴ回路は、バッファ３１、制御部３２，３３、およびアダー３４，３５を有している。図７のＦＨＴ回路も図６のＦＨＴ回路と同様に図４または図５で説明したバタフライ演算を行う。
【００５７】
バッファ３１および制御部３２は、図６で説明したバッファ２１および制御部２２と同様の機能を有する。
バッファ３１から出力されるデータは、アダー３４，３５に出力される。アダー３５は、一方のデータを負にして（例えば、２の補数にして）加算演算する。すなわち、アダー３５は、減算器と同じ機能を有していることになる。
【００５８】
制御部３３は、イネーブル信号Ｅｎを出力して、動作させるアダー３４，３５を選択する。例えば、図４、図５の実線矢印に示すように、バッファ３１から出力されるデータを加算処理する場合には、制御部３３は、アダー３４を選択するようにする。図４、図５の点線矢印に示すように、バッファ３１から出力されるデータを減算処理する場合には、制御部３３は、アダー３５を選択するようにする。
【００５９】
図６のＦＨＴ回路では、１つのアダー２６で減算処理を行うため、乗算器２５によって入力されるデータに−１を乗算している。図７のＦＨＴ回路では、乗算器２５を用いることなく、アダー３５によって、直接減算処理を行うようにしている。
【００６０】
すなわち、図７の制御部３３、アダー３４，３５は、図６のセレクタ２３、制御部２４、乗算器２５、およびアダー２６と同様の機能を発揮し、図４、図５の各段におけるアダー処理を行って、そのアダー結果をバッファ３１に一時格納している。
【００６１】
図８は、図６のＦＨＴ回路の動作を説明するフローチャートである。図６のＦＨＴ回路は、以下のステップに従って図４で説明したバタフライ演算を行う。
ステップＳ１において、ＦＨＴ回路の制御部２２は、変数Ｎに１を代入する。変数Ｎの値は、図４に示したアダーが対応する。例えば、図４の１段目の一番上のアダーから順に１，２，…，１６と対応し、２段目の一番上のアダーからは、順に１７，１８，…，３２と対応し、以下同様に、４段目の一番上のアダーからは、順に４９，５０，…，６４と対応する。
【００６２】
ステップＳ２において、制御部２２は、基地局１３から通知されたチャネライゼーションコードの識別番号に基づいて、アダーＮの加算演算が必要か否か判断する。例えば、チャネライゼーションコードの識別番号がｋ＝１〜５の場合、図４で説明したように、斜線が付されたアダーの加算演算は不要である。従って、制御部２２は、Ｎ＝３３，３４，３９，４０，４７〜５０，５２，５４〜５６，５８，６０，６２〜６４の場合、ステップＳ４へ進む。Ｎがそれ以外の値の場合には、加算演算が必要であるため、ステップＳ３へ進む。
【００６３】
ステップＳ３において、制御部２２は、アダーＮの演算を行うため、バッファ２１から所定のデータを出力する。例えば、２段目のアダーＮ＝２０の演算を行う場合、制御部２２は、バッファ２１に一時的に保持されている、前段（１段目）のアダーＮ＝４，８のアダー結果を乗算器２５およびアダー２６に出力するように制御する。また、アダーＮ＝２１の演算を行う場合、制御部２２は、バッファ２１に一時的に保持されている、前段のアダーＮ＝１，５のアダー結果を乗算器２５およびアダー２６に出力するように制御する。なお、Ｎ＝２１の加算演算は、図４に示すようにＮ＝５のアダー結果を−１乗算してＮ＝１のアダー結果を加算しなければならない。従って、この場合、制御部２４は、セレクタ２３から−１が出力されるように制御する。
【００６４】
ステップＳ４において、制御部２２は、変数Ｎに１を加算する。
ステップＳ５において、制御部２２は、全アダーについての演算が終了したか判断する。すなわち、変数Ｎの値が６５になったか否か判断する。変数Ｎが６５より小さければ、ステップＳ２へ進む。変数Ｎが６５であれば処理を終了する。
【００６５】
なお、上記では、図４のバタフライ演算についてフローチャートを用いて説明したが、図５のバタフライ演算の場合も図８のフローチャートに従って動作する。図５のバタフライ演算の場合、制御部２２のバッファ２１からデータを出力する制御が異なるのみである。
【００６６】
また、上記では、図６のＦＨＴ回路の動作についてフローチャートを用いて説明したが、図７のＦＨＴ回路の場合も図８のフローチャートに従って動作する。図７のＦＨＴ回路の場合、図６の乗算器２５に対し、制御部３３とアダー３５によって加算処理および減算処理を行うところが異なるのみである。
【００６７】
このように、ＦＨＴ回路は、アダーのバタフライ演算における個々の加算処理においてその加算処理が必要か否か判断するようにした。これによって、アダーの不要な加算処理を省略することができるようになり、アダマール変換の演算量および回路の消費電力を低減することができる。
【００６８】
次に、本発明の第２の実施の形態を図面を参照して詳細に説明する。第１の実施の形態では、制御部２２，３２がチャネライゼーションコードの識別番号に基づいて所定の処理を行い、アダーＮの演算の有無を判断していた。第２の実施の形態では、制御部２２，３２は、記憶装置に記憶されているテーブルに基づいて、アダーＮの演算の有無を判断する。
【００６９】
図９は、第２の実施の形態に係るＦＨＴ回路のブロック構成図である。図９には、図６で説明したバッファ２１が示してある。また、ＲＡＭ（Random Access Memory）などで構成される記憶装置４１と制御部４２が示してある。図９では、図６で示したセレクタ２３、制御部２４、乗算器２５、およびアダー２６の図示を省略している。
【００７０】
記憶装置４１には、チャネライゼーションコードの識別番号と、そのチャネライゼーションコードの識別番号に対してどのアダーを停止させるかのアダー情報とが対応して記憶されている。
【００７１】
例えば、記憶装置４１には、チャネライゼーションコードの識別番号ｋ＝１〜５と、このチャネライゼーションコードの識別番号ｋ＝１〜５の場合に停止させるアダー情報（図４に示した斜線が付されたアダー、つまり、Ｎ＝３３，３４，３９，４０，４７〜５０，５２，５４〜５６，５８，６０，６２〜６４）とが対応して記憶されている。
【００７２】
制御部４２は、図６で説明した制御部２２と同様に、チャネライゼーションコードの識別番号ｋが入力される。制御部４２は、記憶装置４１を参照し、入力されたチャネライゼーションコードの識別番号に対応する、動作を停止すべきアダー情報を取得する。そして、取得したアダー情報の加算処理が行われる場合、バッファ２１からデータを出力しないようにする。
【００７３】
例えば、制御部４２に、ｋ＝１〜５のチャネライゼーションコードの識別番号が入力されたとする。この場合、制御部４２は、記憶装置４１を参照し、ｋ＝１〜５に対応するアダー情報Ｎ＝３３，３４，３９，４０，４７〜５０，５２，５４〜５６，５８，６０，６２〜６４を取得することになる。制御部４２は、このＮの値のアダーに対しては加算処理が行われないよう、バッファ２１からデータを出力しないようにする。
【００７４】
もちろん、図７のＦＨＴ回路においても同様に、上記の記憶装置を適用することができる。
図１０は、図９の記憶装置に構成されるテーブルの例を示した図である。図１０に示すようにテーブル４３は、識別番号の欄とアダー情報との欄が設けられている。
【００７５】
識別番号の欄には、端末１１に割り当てられるチャネライゼーションコードの識別番号が格納されている。アダー情報の欄には、動作を停止すべきアダーの情報が格納されている。
【００７６】
例えば、端末１１にｋ＝１の識別番号のチャネライゼーションコードが割り当てられた場合、制御部４２は、図１０のテーブル４３の識別番号１のアダー情報を参照することにより、どのアダーを停止すればよいかの情報を取得することができる。制御部４２は、取得した停止すべきアダー情報に基づき、バッファ２１のデータの出力制御を行う。
【００７７】
このように、端末１１に割り当てられるチャネライゼーションコードの識別番号と、停止すべきアダー情報とを対応させたテーブル４３を作成することにより、制御部４２は、所定の演算をすることなくテーブル４３を参照するだけで、高速に動作させる必要のないアダーを認識することができる。
【００７８】
（付記１）  複数のチャネライゼーションコードで拡散され、多重化された拡散データをアダマール変換によって復元するアダマール変換回路において、
前記アダマール変換を行うための複数のバタフライ演算の各段における演算結果を保持するバッファと、
前記バッファに保持されている前記演算結果を用いて次段の複数の前記バタフライ演算を行い、その演算結果を前記バッファに保持するアダーと、
前記チャネライゼーションコードを識別する識別番号に基づいて、前記アダーの複数の前記バタフライ演算における個々の加算処理においてその加算処理が必要か否か判断するアダー動作判断手段と、
を有することを特徴とするアダマール変換回路。
【００７９】
（付記２）  前記識別番号と前記アダーのどの前記加算処理が必要か否かを示す情報とを対応付けて記憶した記憶装置を有することを特徴とする付記１記載のアダマール変換回路。
【００８０】
（付記３）  前記アダー動作判断手段は、前記記憶装置を参照して、前記アダーの個々の前記加算処理が必要か否か判断することを特徴とする付記２記載のアダマール変換回路。
【００８１】
（付記４）  前記アダー動作判断手段は、前記アダーの加算処理が不要であると判断した場合、前記バッファから前記アダーの加算処理に必要な前記演算結果を出力しないようにすることを特徴とする付記１記載のアダマール変換回路。
【００８２】
（付記５）  前記アダーの前段には、前記アダーに入力される前記演算結果を負の値にする乗算器が設けられていることを特徴とする付記１記載のアダマール変換回路。
（付記６）  前記アダーは、前記演算結果を加算処理する第１のアダーと、前記演算結果の一方を負の値にして加算処理する第２のアダーとを有することを特徴とする付記１記載のアダマール変換回路。
【図面の簡単な説明】
【００８３】
【図１】アダマール変換回路の概要を示した図である。
【図２】アダマール変換回路の加算処理不要の判断単位を説明する図である。
【図３】第１の実施の形態に係るＦＨＴ回路を適用した端末のシステム構成例を示す図である。
【図４】ＦＨＴのバタフライ演算例を示した図である。
【図５】ＦＨＴ回路の別のバタフライ演算例を示した図である。
【図６】ＦＨＴ回路のブロック構成図である。
【図７】ＦＨＴ回路の別のブロック構成図である。
【図８】図６のＦＨＴ回路の動作を説明するフローチャートである。
【図９】第２の実施の形態に係るＦＨＴ回路のブロック構成図である。
【図１０】図９の記憶装置に構成されるテーブルの例を示した図である。
【符号の説明】
【００８４】
１  バッファ
２  アダー
３  アダー動作判断手段
４  乗算器
【図１】
0005012285.tif 000002
【図２】
0005012285.tif 000003
【図３】
0005012285.tif 000004
【図４】
0005012285.tif 000005
【図５】
0005012285.tif 000006
【図６】
0005012285.tif 000007
【図７】
0005012285.tif 000008
【図８】
0005012285.tif 000009
【図９】
0005012285.tif 000010
【図１０】
0005012285.tif 000011