(57)【要約】ディジタル信号プロセッサは、無線電話システムにおける逆拡散復号を実行する。直交符号を使用して、データ信号を結合して、伝送する１つの全体符号化信号とする。この直交符号は、伝送された全体符号化信号から個々のデータ信号を取り出すのに使用される。逆拡散命令は、ディジタル信号プロセッサ機能に含められる。
2004538710.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも信号値と逆拡散符号を指定する単一の命令に応答して、前記信号値に逆拡散符号を乗じるステップを含む、ディジタル信号プロセッサにおいて信号値を処理する方法。
【請求項２】
乗算の結果を、以前の乗算の結果に加算するステップをさらに含む、請求項１に記載の方法。
【請求項３】
逆拡散符号が、４で割り切れる拡散係数を有する、請求項１に記載の方法。
【請求項４】
逆拡散符号が、符号セグメントに分割されて、各符号セグメントは、１実数ビットと１虚数ビットを含む、２ビット複素符号を含む、請求項１に記載の方法。
【請求項５】
セット符号ビットが、−１の値を表し、クリア符号ビットが＋１の値を表す、請求項４に記載の方法。
【請求項６】
信号値が１６ビットを含む、請求項１に記載の方法。
【請求項７】
信号値が、８実数ビットと８虚数ビットを含む、請求項６に記載の方法。
【請求項８】
少なくとも信号値と１組の符号とを指定する１または２以上の命令に応答して、
前記１組の符号の１つずつについて、前記信号値に前記１組の符号の１つを乗じるステップと、
前記乗算の結果を合計するステップと、
前記合計の結果から得られるデータセットを生成するステップとを含む、ディジタル信号プロセッサにおいてデータセットを計算する方法。
【請求項９】
合計するステップが、乗算の結果を、以前の組の符号を乗算した結果と合計するステップを含む、請求項８に記載の方法。
【請求項１０】
符号の組が、４で割り切れる拡散係数を有する、請求項８に記載の方法。
【請求項１１】
前記１組の符号の１つずつが、１実数ビットと１虚数ビットを含む、２ビット複素符号である、請求項８に記載の方法。
【請求項１２】
セット符号ビットが−１の値を表し、クリア符号ビットが＋１の値を表す、請求項１１に記載の方法。
【請求項１３】
信号値が、１６ビットを含む、請求項８に記載の方法。
【請求項１４】
信号値が、８実数ビットと８虚数ビットを含む、請求項１３に記載の方法。
【請求項１５】
ディジタイル信号計算のための命令およびオペランドを記憶するメモリと、
前記命令の内の選択されたものを、前記メモリからフェッチするための命令アドレスを生成するためのプログラムシーケンサと、
オペランドおよび結果を一時的に記憶するためのレジスタファイル、ならびにデータ信号および符号を指定する復号命令を実行する実行ブロックを含む計算ブロックであって、前記実行ブロックが、データ信号の部分に符号を乗じて、その結果を累算するための複素乗算・累算エンジンを含む、前記計算ブロックとを含む、ディジタル信号プロセッサ。
【請求項１６】
復号命令の実行に応答して、ディジタル信号プロセッサが、
データ信号の部分および符号の部分に対して１組の複素乗算を実行し、かつ
前記複素乗算の結果を合計する、請求項１５に記載のディジタル信号プロセッサ。
【請求項１７】
符号が、４で割り切れる拡散係数を有する、請求項１５に記載の方法。
【請求項１８】
符号が符号セグメントに分割されて、各符号セグメントが、１実数ビットと１虚数ビットを含む、２ビット複素符号を含む、請求項１５に記載の方法。
【請求項１９】
セット符号ビットが−１の値を表し、クリア符号ビットが＋１の値を表す、請求項１８に記載の方法。
【請求項２０】
データ信号が、１６ビットを含む、請求項１５に記載の方法。
【請求項２１】
データ信号が、８実数ビットと８虚数ビットを含む、請求項２０に記載の方法。
【請求項２２】
それぞれが８実数ビットおよび８虚数ビットを含む少なくとも１組の複素第１オペランドと、それぞれが１実数ビットおよび１虚数ビットを含む１組の複素第２オペランドとを指定する、１または２以上の命令に応答して、
第２オペランドの１つずつに対して、第１オペランドの１つと、第２オペランドの１つとの複素乗算を実行するステップと、
前記１組の第２オペランドについて、前記乗算の結果を合計するステップと、
前記合計から得られる１組のデータを、出力として生成するステップとを含む、ディジタル信号プロセッサにおいて出力データを計算する方法。
【請求項２３】
第２オペランドの１つにおけるセットビットが−１の値を表し、第２オペランドの１つにおけるクリアビットが＋１の値を表す、請求項２２に記載の方法。
【請求項２４】
前記１組の複素第２オペランドが、逆拡散符号を含む、請求項２２に記載の方法。
【請求項２５】
前記１組の複素第１オペランドが、入力データ信号を含む、請求項２２に記載の方法。
【請求項２６】
入力データ信号が、音声伝送信号である、請求項２５に記載の方法。
【請求項２７】
命令によって指定される複素信号値と２ビット複素符号セグメントとに応答して、信号値と符号セグメントとの複素乗算を実行して、処理されたデータ値を提供するステップを含む、
ディジタル信号プロセッサにおいて信号値を処理する方法。
【請求項２８】
（ａ）命令によって指定される、１組の複素信号値と対応する組の複素符号セグメントとに応答して、各信号値と対応する符号セグメントとの複素乗算を実行して１組の中間値を提供するステップと、
（ｂ）前記中間値の複素加算を実行して、処理された信号値を提供するステップとを含む、ディジタル信号プロセッサにおいて信号値を処理する方法。
【請求項２９】
複数の組の複素信号値に対して、ステップ（ａ）および（ｂ）を反復して、処理された信号値のストリームを提供する、請求項２８に記載の方法。
【請求項３０】
複素符号セグメントのそれぞれが、２ビット複素符号である、請求項２８に記載の方法。
【発明の詳細な説明】
【０００１】
分野
本発明は、無線電話応用のためのディジタル信号プロセッサに関し、より具体的には準直交符号（near orthogonal codes）を使用する信号成分の分離命令に関する。
【０００２】
背景
セルラー電話システムを実現する場合には、利用可能な周波数において伝送できるデータ量を最大化することが重要である。これには、より大量のデータの伝送を可能にするための、データ信号の変更を必要とすることが多い。このような変更は、受信端において原信号が十分に回復できるように、可逆でなくてはならない。データ変更の１つの方法は、符号分割多重アクセス（ＣＤＭＡ）と拡散によるものである。
【０００３】
拡散とは、通常は狭帯域の信号を、非常に広帯域の信号に変換するデータ変更方法である。信号を広帯域に拡散させると、より小さな電力で信号を送信し、かつ受信することができる。拡散は、信号を拡張し、かつ複製する符号を原信号に乗じることによって達成される。広い周波数帯域にわたって信号が複製される回数は、拡散係数と呼ばれる。例えば、拡散符号（１，１，１，１）は拡散係数（spreading factor）が４であり、この理由は、符号に信号を乗じるときに、各信号部分（「記号」と呼ばれる）が４回反復されることによる。上記の拡散符号の例では、記号「ａｂｃｄ」からなる信号を乗じると、拡散信号（ａａａａｂｂｂｂｃｃｃｃｄｄｄｄ）が得られる。同じ記号を拡散するのに発行される拡散符号が（１，−１，１，−１）の場合には、拡散信号は
【数１】
2004538710.tif 000003
となり、ここで
【数２】
2004538710.tif 000004
は原記号ｘの負の値を示す。拡散が行われると、広帯域信号が受信機に伝送される。この信号は、受信端で逆拡散されて、原信号を回復する。信号を拡散するのに使用される符号は、その信号を逆拡散するのにも使用される。
【０００４】
逆拡散関数に集中的な計算が必要なことを含み、いくつかの要因のために、受信機には、ＡＳＩＣの使用およびディジタル信号プロセッサ内の最も基礎的なコンポーネントを有するハードウエアブロックの使用を含む、逆拡散装置が実装されている。これらの実装には、プログラミングができないという欠点がある。その他の逆拡散装置には、ＦＰＧＡが使用されているが、これらは、コストの理由、およびプログラミングにおける柔軟性がないという理由で、望ましくはない。
【０００５】
ディジタル信号プロセッサは、ソフトウエアのプログラムミングが可能であると理由から、ＡＳＩＣよりも望ましい解決策である。しかしながら、ディジタル信号プロセッサでは、満足な逆拡散装置を実現するために必要な、高速の複素計算を扱うのは困難である。
したがって、伝送された無線電話信号の復号に使用する逆拡散装置の実装を改善することに対する要望がある。
【０００６】
概要
ディジタル信号プロセッサにおいて、信号値を処理する方法が提供され、この方法は、少なくとも信号値と逆拡散符号を指定する単一の命令に応答して、前記信号値に逆拡散符号を乗じるステップを含む。この方法は、乗算の結果を、以前の乗算の結果に加算するステップをさらに含むことができる。逆拡散符号は、４で割り切れる拡散係数を有することができる。逆拡散符号は、符号セグメントに分割されて、各符号セグメントは、１実数ビットと１虚数ビットを含む２ビット複素符号を含む。符号ビットに対して、セット符号ビットは、−１の値を表し、クリア符号ビットは、＋１の値を表してもよい。信号値は、８実数ビットおよび８虚数ビットを含む、１６ビットを含むことができる。
【０００７】
ディジタル信号プロセッサにおいてデータセットを計算するためにさらなる方法が提供され、この方法は、少なくとも信号値と１組の符号とを指定する１または２以上の命令に応答して、前記１組の符号の１つずつについて、前記信号値に前記１組の符号の１つを乗じるステップと、前記乗算の結果を合計するステップと、前記合計の結果から得られるデータセットを生成するステップとを含む。この合計のステップには、乗算の結果を、以前の組の符号を乗算した結果と合計することを含めることができる。符号の組は、４で割り切れる拡散係数を有することができる。前記符号の組の１つずつは、１実数ビットおよび１虚数ビットを含む、２ビット複素符号とすることができる。セット符号ビットは、−１の値を表し、クリア符号ビットが＋１の値を表わすことができる。信号値は、８実数ビットと８虚数ビットを含む、１６ビットを含むことができる。
【０００８】
別の一実施態様においては、ディジタル信号プロセッサが提供され、このディジタル信号プロセッサは、ディジタル信号計算のための命令およびオペランドを記憶するメモリと、前記命令の内の選択されたものを前記メモリからフェッチするための、命令アドレスを生成するプログラムシーケンサと、オペランドおよび結果を一時的に記憶するためのレジスタファイル、ならびにデータ信号および符号を指定する復号命令を実行する実行ブロックを含む計算ブロックであって、前期実行ブロックが、データ信号の部分に符号を乗じて、その結果を累算するための複素乗算・累算エンジンを含む、前記計算ブロックとを含む。ディジタル信号プロセッサは、ディジタル信号プロセッサによる復号命令の実行に応答して、データ信号の部分および符号の部分に対して１組の複素乗算を実行し、かつ前記複素乗算の結果を合計することができる。符号は、４で割り切れる拡散係数を有することができる。さらに別の実施態様においては、符号は符号セグメントに分割され、各符号セグメントは、１実数ビットと１虚数ビットを含む、２ビット複素符号を含む。さらに別の実施態様においては、セット符号ビットは、−１の値を表し、クリア符号ビットは＋１の値を表す。データ信号は、８実数ビットおよび８虚数ビットを含む、１６ビットを含むことができる。
【０００９】
別の実施態様においては、ディジタル信号プロセッサにおいて出力データを計算する方法が提供され、この方法は、それぞれが８実数ビットおよび８虚数ビットを含む少なくとも１組の複素第１オペランドと、それぞれが１実数ビットおよび１虚数ビットを含む１組の複素第２オペランドとを指定する、１または２以上の命令に応答して、第２オペランドの１つずつについて、第１オペランドの１つと、第２オペランドの１つとの複素乗算を実行するステップと、前記１組の第２オペランドについて、前記乗算の結果を合計するステップと、前記合計の結果として得られる１組のデータを、出力として生成するステップとを含む。さらに別の実施態様においては、第２オペランドの１つにおけるセットビットは、−１の値を表し、第２オペランドの１つにおけるクリアビットは＋１の値を表す。さらに別の実施態様においては、前記１組の複素第２オペランドが、逆拡散符号を含む。さらに別の実施態様においては、前記１組の複素第１オペランドは、入力データ信号を含む。さらに別の実施態様においては、前記入力データ信号は、音声伝送信号である。
【００１０】
ディジタル信号プロセッサにおいて信号値を処理する方法がさらに提供され、この方法は、命令によって指定される複素信号値と２ビット複素符号セグメントとに応答して、信号値と符号セグメントとの複素乗算を実行して、処理されたデータ値を提供するステップを含む。
ディジタル信号プロセッサにおいて信号値を処理する方法がさらに提供され、この方法は、（ａ）命令によって指定される、１組の複素信号値と対応する組の複素符号セグメントに応答して、各信号値と対応する符号セグメントとの複素乗算を実行して１組の中間値を提供するステップと、（ｂ）前記中間値の複素加算を実行して、処理された信号値を提供するステップとを含む。この方法は、複数の組の複素信号値に対してステップ（ａ）および（ｂ）を反復して、処理された信号値のストリームを提供するステップをさらに含むことができる。この方法において、複素符号セグメントのそれぞれは、２ビット複素符号とすることができる。
本発明をさらによく理解するために、参照により本明細書に組み入れた、添付の図面を参照する。
【００１１】
詳細な説明
説明の目的で、以下に記述する技法は、セルラー電話信号の伝送という状況において記述される。しかしながら、記述される技法の多くは、セル電話に有用でありながら、その他の高速データ伝送用途にも有用である。
無線電話基地局信号チェインの例のブロック図を図１に示してある。この信号チェインは、記号レート処理１０およびチップレート処理１２を含む。記号レート処理１０をディジタル信号プロセッサに組み込むのが望ましい。送信側では、記号レート処理１０は、ＣＲＣアタッチメントブロック２０、チャネル符号化ブロック２２、レートマッチングブロック２４およびインターリーブブロック２６を含む。受信側では、記号レート処理１０は、逆インターリーブブロック３０、レート決定ブロック３２、チャネル復号ブロック３４およびＣＲＣアタッチメントブロック３６を含む。
【００１２】
チップレート処理１２は、送信側の拡散および変調ブロック４０と、受信側のレーク受信装置４２を含む。逆拡散を実行する、ディジタル信号プロセッサを、受信側に使用することができる。
本発明の実施特徴に適するディジタル信号プロセッサ（ＤＳＰ）１１０の例の、ブロック図を図２に示す。ＤＳＰ１１０の主要構成要素は、計算ブロック１１２および１１４、メモリ１１６、制御ブロック１２４、リンクポートバッファ１２６、外部ポート１２８、ＤＲＡＭコントローラ１３０、命令アライメントバッファ（ＩＡＢ）１３２および１次命令復号器１３４である。計算ブロック１１２および１１４、命令アライメントバッファ１３２、１次命令復号器１３４および制御ブロック１２４は、ＤＳＰ１１０の主要な計算およびデータ処理機能を実行するコアプロセッサを構成する。外部ポート１２８は、外部アドレスバス１５８および外部データバス１６８を介しての外部通信を制御する。リンクポートバッファ１２６は、通信ポート１３６を介する外部通信を制御する。ＤＳＰは好ましくは、単一のモノリシック集積回路として構成される。
【００１３】
メモリ１１６には、３つの独立した大容量メモリバンク１４０、１４２および１４４を含めることができる。好ましい一実施態様においては、それぞれのメモリバンク１４０、１４２および１４４は、それぞれ３２ビットの６４Ｋワードの容量を有する。以下に述べるように、それぞれのメモリバンク１４０、１４２および１４４は、好ましくは１２８ビットデータバスを有する。１クロックサイクルで、それぞれが３２ビットの、最大４つの連続して整列されたデータワードを、各メモリバンクに、またはそこから転送することができる。
【００１４】
ＤＳＰ１１０の要素は、効率の良い高速動作のために、バスによって相互接続されている。バスのそれぞれは、バイナリ情報を並列転送するための多重ラインを含む。第１のアドレスバス１５０（ＭＡ０）は、メモリバンク１４０（Ｍ０）と制御ブロック１２４を相互接続する。第２アドレスバスバス１５２（ＭＡ１）は、メモリバンク１４２（Ｍ１）と制御ブロック１２４を相互接続する。第３のアドレスバス１５４（ＭＡ２）は、メモリバンク１４４（Ｍ２）と制御ブロック１２４を相互接続する。アドレスバス１５０、１５２および１５４のそれぞれは、好ましくは１６ビット幅である。外部アドレスバス１５６（ＭＡＥ）は、外部ポート１２８と制御ブロック１２４を相互接続する。外部アドレスバス１５６は、外部ポート１２８を介して、外部アドレスバス１５８に相互接続されている。外部アドレスバス１５６および１５８のそれぞれは、好ましくは３２ビット幅である。第１のデータバス１６０（ＭＤ０）は、メモリバンク１４０、計算ブロック１１２および１１４、制御ブロック１２４、リンクポートバッファ１２６、ＩＡＢ１３２および外部ポート１２８を相互接続する。第２のデータバス１６２（ＭＤ１）は、メモリバンク１４２、計算ブロック１１２および１１４、制御ブロック１２４、リンクポートバッファ１２６、ＩＡＢ１３２および外部ポート１２８を相互接続する。第３のデータバス１６４（ＭＤ２）は、メモリバンク１４４、計算ブロック１１２および１１４、制御ブロック１２４、リンクポートバッファ１２６、ＩＡＢ１３２および外部ポート１２８を相互接続する。データバス１６０、１６２および１６４は、外部ポート１２８を介して、外部データバス１６８に接続されている。データバス１６０、１６２および１６４のそれぞれは、好ましくは１２８ビット幅であり、外部データバス１６８は好ましくは６４ビット幅である。
【００１５】
第１のアドレスバス１５０および第１のデータバス１６０は、メモリバンク１４０へ、およびそこからのデータ転送用のバスを含む。第２のアドレスバス１５２および第２のデータバス１６２は、メモリバンク１４２へ、およびそこからのテータ転送用の第２のバスを含む。第３のアドレスバス１５４および第３のデータバス１６４は、メモリバンク１４４への、およびそこからのデータ転送用の第３のバスを含む。メモリバンク１４０、１４２および１４４のそれぞれが、別個のバスを有するので、メモリバンク１４０、１４２および１４４は、同時にアクセスが可能である。本明細書における使用では、「データ」とは、ＤＳＰ１１０の動作と関連する、命令またはオペランドを表すバイナリワードを意味する。
【００１６】
通常の動作モードにおいて、プログラム命令はメモリバンクの１つに記憶されており、オペランドは他の２つのメモリバンクに記憶されている。したがって、１クロックサイクルに、少なくとも１つの命令と２つのオペランドを計算ブロック１１２および１１４に供給することができる。メモリバンク１４０、１４２および１４４のそれぞれは、単一クロックサイクルでの複数のデータワードの読み取り、および書き込みを可能にするように構成することができる。単一クロックサイクルで、各メモリバンクから複数のデータワードを同時転送することが、命令キャッシュまたはデータキャッシュを必要とすることなく達成される。
【００１７】
上記のように、それぞれのメモリバンク１４０、１４２および１４４は、それぞれが３２ビットの、６４Ｋワードの容量を有するのが好ましい。各メモリバンクは、１２８ビット幅のデータバスに接続することができる。別の一実施態様においては、各データバスは、６４ビット幅としてもよく、クロックフェーズ１およびクロックフェーズ２のそれぞれにおいて、６４ビットを転送して、これによって実効的に１２８ビットのバス幅を提供する。各メモリバンクにおいて、単一クロックサイクルで複数データワードにアクセスすることができる。具体的には、データは、それぞれが３２ビットのシングル、デュアルまたはクワッドワードとしてアクセスすることができる。
【００１８】
クワッドワード転送を使用すると、１クロックサイクルで、それぞれが３２ビットの４つの命令および８つのオペランドを、計算ブロック１１２および１１４に供給することができる。転送されるデータワード数、およびデータワードが転送される計算ブロック（単数または複数）は、命令中の制御ビットによって選択される。シングル、デュアルまたはクワッドデータワードを計算ブロック１１２、計算ブロック１１４、またはその両方に転送することができる。デュアルおよびクワッドデータワードアクセスによって、単一クロックサイクルに、いくつかのオペランドを計算ブロック１１２および１１４に転送することを可能にすることによって、多くの用途でＤＳＰ１１０の性能が改善される。各クロックサイクルにおいて複数の命令にアクセスできる能力によって、各クロックサイクルにおいて複数の動作を実行することが可能となり、それによって性能が向上する。
【００１９】
計算ブロック１１２および１１４の、それぞれの実施態様のブロック図を図３に示してある。多重ポートレジスタファイル２００は、オペランドおよび結果用の一時記憶を提供する。好ましい一実施態様においては、レジスタファイル２００は、それぞれが１２８ビットの８行で構成された、それぞれが３２ビットの３２ワードの容量を有する。レジスタファイル２００は、マルチプレクサおよびラッチ（図示せず）を介してそれぞれのデータバス１６０、１６２および１６４に接続されている（図２）。オペランドがメモリ１１６からフェッチされると、３つのデータバスの２つが選択されて、選択されたバス上のオペランドがレジスタファイル２００に供給される。
【００２０】
図３に示す計算ブロックは、乗算器／累算器２１０、論理演算装置（ＡＬＵ）２１２、シフタ２１４およびアクセラレータ２１６を含む。乗算器／累算器２２０、ＡＬＵ２１２、シフタ２１４およびアクセラレータ２１６は、十分な命令およびオペランドが計算ブロックに供給される程度に、命令を同時に実行することができる。オペランドは、オペランドバス上で、レジスタファイル２００から、乗算器／累算器２１０、ＡＬＵ２１０、シフタ２１４およびアクセラレータ２１６に供給される。乗算器／累算器２１０、ＡＬＵ２１２、シフタ２１４およびアクセラレータ２１６からの結果は、結果バス２２２上を、レジスタファイル２００に戻される。計算ブロックの構成要素は、２次命令復号器２２４からの信号によって、復号された命令に応答して制御される。計算ブロックは、性能の改善のためにはパイプラインアーキテクチャを有するのが好ましい。
【００２１】
ＤＳＰ中のそれぞれの計算ブロック１１２および１１４は、無線電話基地局における性能を向上させるためのアクセラレータ２１６を含む。アクセラレータは、データおよび制御値の一時記憶のためのレジスタ、および指定された命令を実行するためのアクセラレータ回路を含む。アクセラレータは、以下に記述するように、逆拡散関数において必要とされる、複素乗算を実行する。
拡散および逆拡散のプロセスを示す略図を図４に示してある。２つのディジタル化された音声信号３００および３０２が、変調器３０４によって転送の準備のために処理される。変調は、ディジタルビットを無線伝送のための複素数にマッピングするプロセスである。図５に示すように、ディジタルビット０およびディジタルビット１が、複素平面上の点にマッピングされている。高速の伝送速度に対しては、複素平面上の１点が、複数のビットを表すことができる。例えば図６に、ビット対が、複素平面上の点にマッピングされている。このようにして、１＋ｊの値を有する複素信号を受信する受信装置が、その信号をディジタルビット対００と解釈する。このようにして、ディジタルビットの３重項、４重項などを表すように、点を選択することができる。しかしながら、これらの点は、複素平面内で十分離れた位置に選択し、それによって受信装置が受信した複素値を正確に解釈できるようにする必要がある。結果として得られる変調データ信号部分は、記号と呼ばれている。
【００２２】
記号３０６および３０８は、それぞれ、乗算装置３０７および３０９において、それぞれの複素拡散符号３１０、３１２を乗じられる。複素拡散符号３１０および３１２は、互いに直交するように選択される。複素符号を直交とすることによって、結果として得られる符号化信号３１４および３１６を、システムの後に符号を受信する能力と干渉することなく、総和ユニット３１８によって加算することができる。互いに直交する２つの符号の例としては、（１，１）と（１，−１）がある。
【００２３】
図４は、２つの信号のみを含む伝送のための、拡散および逆拡散を示しているが、３つ以上の信号を結合して伝送することもできることに留意することが重要である。複数信号が結合される場合には、各信号は、記号が受信端で取り出されるように、他のすべての符号に直交する拡散符号が必要である。十分な直交性を有する符号セットを決定するいくつかの方法があるが、好ましい方法を図７のツリーに示してある。ツリー内の、他のすべての符号に直交する符号を生成するためには、基本符号（例中では、（１））を、上部ブランチでは２度反復し、下部ブランチでは１度反復し、１度否定する。例えば、２度反復された符号（１）は、（１，１）となる。反復、かつ否定された符号（１）は、（１，−１）となる。次いで、結果として得られる符号が、図７に示すアルゴリズムに従って、上部ブランチで２回反復されて、底部ブランチで反復かつ否定される。この方法で導いた結果得られる符合はすべて、互いに直交している。直交する符号を選択することによって、受信装置によって信号が取り出されることが保証される。
【００２４】
拡散の後、符号化された信号は合計されて受信装置に伝送される。合計され、かつ拡散された信号部分は、チップと呼ばれる。受信された信号は、逆拡散ブロック３１７および３１９において逆拡散される。逆拡散関数は、乗算・累算関数として簡略化される。受信された信号は、異なるブランチに供給されて、各ブランチにおいて原拡散符合の１つを乗じられる。各ブランチにおける乗算の結果が累算される。複素スクランブル符号は、互いに直交しているので、拡散符号に符号化信号を乗じると、その拡散符号によって拡散された原記号が残り、他の記号は相殺される。逆拡散動作を以下に詳細に記述する。
【００２５】
こうして分離された原記号は、バンドパスフィルタ（ＢＰＦ）３２４に送られる。ＢＰＦ３２４は、信号が属する周波数範囲の外部からのノイズを除去するために使用される。このノイズは、帯域外ノイズと呼ばれる。この帯域外ノイズが除去された後に、信号は、復調器３２６および３２８によって復調されて、原ディジタル信号３００および３０２が回復される。
拡散および逆換算のプロセスによって、多重音声信号を同時に伝送することが可能となる。上記のように、図４の例は、２つの音声信号に限定されない。
【００２６】
記号に対する拡散および逆拡散の効果の詳細な例を図８に示してある。２つの記号セット、ａｂｃｄ５００およびｆｇｈｋ５０２に、それぞれ直交符号５０４および５０６をそれぞれ乗じる。符号５０４は、符号５０６に対して直交している。結果として得られる符号化記号セット５０８および５１０は、互いに加算されて、次いで符号化信号５１２として伝送される。符号化信号部分または「チップ」（符号化信号５１２は１６のチップを含む）が受信されると、それらにそれぞれの符号を乗じ、互いに加算して、拡散係数（図８の例の場合には４である）で除する。こうして、原信号ａｂｃｄおよびｆｇｈｋが、受信側で回復される。
【００２７】
この逆拡散プロセスには、計算が集中している。受信端で結果として得られるデータ信号を得るためには、いくつかの複素乗算実行が必要である。各チップは、逆拡散符号の各セクションで乗じられ、次いでその結果は累算されなければならない。これらの乗算および累算は、受信装置が信号を受信する速度に等しいか、それよりも大きな速度で実行しなくてはならない。セルラー音声伝送に要する高いデータ速度の点から、これまで、ディジタル信号プロセッサは、逆拡散計算を実装するのに必要な計算速度を提供することができなかった。
逆拡散装置のコア動作は、複素乗算および累算である。一実施態様によれば、逆拡散機能は、いくつかのＤＥＳＰＲＥＡＤ（逆拡散）命令の１つを使用して、ディジタル信号プロセッサのアクセラレータ部分２１６で実施される。逆拡散命令のオペランドには、チップ、符号、および前に累算された逆拡散値を含めることができる。
【００２８】
ＤＥＳＰＲＥＡＤ命令によって、ＤＳＰは、逆拡散動作に必要となる複素乗算および累算機能を迅速に実行することが可能となる。図８の例を参照すると、（ａ＋ｆ）、（ａ−ｆ）、（ａ＋ｆ）などと記されている、信号５１２の部分はチップである（（ａ＋ｆ）は１つのチップである）。それぞれは、８実数ビットと８虚数ビットによってディジタルで表すのが好ましい。（実際には、チップは、サンプリング率またはその他のシステム関連に応じてサイズが変わってもよいが、説明の目的および現在のシステムの好適さから、チップは１６ビットと仮定している。）上記のように、チップは伝送データ信号の一部分である。受信されたチップ値は、ＤＥＳＰＲＥＡＤ命令による処理のために、ＤＳＰレジスタに記憶される。
【００２９】
同様に、ＤＳＰＲＥＡＤ命令に使用するために、複素符号値が、ＤＳＰレジスタ内に記憶される。符号値を±１±ｊに選ぶのが有利である。第１に、これらの符号セグメントは小さく、かつ直交させるのが容易である。第２に、これらの符号セグメントは、２ビットだけ、すなわち１実数ビットと１虚数ビットだけを使用して表すのがはるかに容易であり、ビットがセットされている場合には−１の値を表わし、ビットがクリアされているときには、＋１の値を表す。この表現によって、符号に複素乗算を実施するのに要するハードウエアを大幅に低減することができる。第３に、この符号は十分に小さいために、容易にレジスタに記憶することができ、実行中にメモリからロードする必要がない。
上記のように、拡散係数は、ＤＥＳＰＲＥＡＤ動作毎の複素乗算の数を定義する。ハードウエア上の制約が理由で、本発明の好ましい実施態様では、４で割り切れる拡散係数を使用するが、説明の目的で拡散係数８を使用する。
【００３０】
拡散係数８を有する符号は、ディジタル形式では１６ビット、すなわち、それぞれ１ビット実数部および１ビット虚数部を含む８つの符号セグメントで表される。ディジタイル表現に対して、クリアビットは、＋１の値を表し、セットビットは−１の値を表す。このようにして、２つの１６ビット符号を、３２ビットワード内に記憶することができる。ＤＥＳＰＲＥＡＤ命令の動作を、以下に記述する。
以上に説明したように、符号化データ値から信号を分離するためには、チップに複素符号を乗じる。第１のＤＥＳＰＲＥＡＤ命令は、次の関数を実行することによってこれを達成する。
【数３】
2004538710.tif 000005
【００３１】
上記の式は、チップと逆拡散符号の複素乗算から得られる信号を計算する。その結果得られる、ＳｉｇｎａｌＲｅａｌは、結果として得られる信号の実数部であり、結果として得られるＳｉｇｎａｌＩｍａｇは、結果として得られる信号の虚数部である。ｎＣｏｄｅＲｅａｌは、ビット値ｎにおける逆拡散符号の実数部分であり、ｎＣｏｄｅＩｍａｇは、ビット値ｎにおける逆拡散符号の虚数部分である。同様に、ｎＣｈｉｐＲｅａｌは、ｎにおける逆拡散符号に対応するチップ値の実数部分であり、ｎＣｈｉｐＩｍａｇは、ｎにおける符号値に対応するチップ値の虚数部分である。
【００３２】
この第１のタイプのＤＥＳＰＲＥＡＤ命令は、次の形式を有する。
ＴＲｓ＝ＤＥＳＰＲＥＡＤ（ＲｍＱ，ＴＨｒｄ）
この第１のタイプのＤＥＳＰＲＥＡＤ命令に応答して実行される動作を説明するデータフロー図を図９に示してある。この８つの１６ビットチップ（各チップは、８実数ビットと８虚数ビットで構成される）の値は、クワッドレジスタＲｍｑ７０４に保持されて（合計１２８ビット）、３２個の２ビット符号セグメントの値（各符号が１実数ビットと１虚数ビットで構成される）が、レジスタペアＴＨｒｄ７０２に保持される。レジスタペア７０２の８つの符号（１６ビット）だけが、この命令の実行中に使用される。この第１のＤＥＳＰＲＥＡＤ命令を実行した後に、符号レジスタＴＨｒｄは、論理的に正しい１６ビットにシフトされて、レジスタの能動部分に新しい符号をロードする。
【００３３】
図９で示すように、複素乗算器７１０〜７１７を使用して、７０２に記憶される各符号セグメントに、７０４に記憶された対応するチップを乗じる。これらの乗算の結果は、複素総和ユニット７２０によって加算されて、結果レジスタＴＲｓ７２４に記憶される。図９に示す動作は、上記の式（１）および（２）に対応する。
複素乗算は、ＤＳＰのアクセラレータ２１６（図３）によって実行される。システムを、±１±ｊで表わすことのできる逆拡散符号に限定することによって、複素乗算は、正または負の１の乗算としてＤＳＰで実行することができ、これは、ＤＳＰによって、チップ部分のパスまたはチップ部分の否定として実行することができる。例えば、複素符号が（１，−ｊ）の場合、符号の実数部分は１であり、符号の虚数部分は−１である。実数部分を乗じたチップ部分はすべて、同じままであり、虚数部を乗じたチップ部分はすべて、否定される。
【００３４】
図９に示すように、８つの符号セグメントに、８つのチップを乗じて、互いに加算して結果を得る。この第１のＤＥＳＰＲＥＡＤ命令は、一度に８つの符号セグメントしか使用できないので、第１の逆拡散命令は、拡散係数８を有する逆拡散符号とともに使用するのが好ましい。第１の逆拡散命令はまた、第１の逆拡散命令の結果を、その後の逆拡散命令の結果に加算して、全逆拡散動作を完了することによって、８よりも大きな拡散係数を有する逆拡散符号用に使用することもできる。例えば、逆拡散符号が、拡散係数３２を有するとき、最初の８チップを復号するには、第１の逆拡散命令を１回実行することが必要であり、最終の１６ビット符号セグメントを逆拡散するには、累算を含む逆拡散命令を２回実行することが必要である。
【００３５】
この第２の逆拡散命令は、累算とともに逆拡散されて、次の式を実行する。
【数４】
2004538710.tif 000006
ここで、Ａｃｃｕｍ．ＳｉｇｎａｌＲｅａｌは、先に累算されて逆拡散された信号の実数部であり、Ａｃｃｕｍ．ＳｉｇｎａｌＩｍａｇ．は、先に累算されて逆拡散された信号の虚数部分である。累算とともに逆拡散された、この第２の逆拡散命令は、次の式で表される。
ＴＲｓ＝ＤＥＳＰＲＥＡＤ（ＲｍＱ，ＴＨｒｄ）＋ＴＲｎ
【００３６】
第２のタイプのＤＥＳＰＲＥＡＤ命令に応答して実行される動作を示す、データフロー図を図１０に示してある。図９および１０の同一要素は、同一の参照番号をつけてある。図１０に示す動作は、加算器７２０が、以前のレジスタ値７２２を現在の結果信号に加算して、その結果を出力レジスタ値７２４に配置すること以外は、図９に示すものと同じある。この第２のＤＥＳＰＲＥＡＤ命令は、累算付きＤＥＳＰＲＥＡＤ命令と呼ぶことができる。
【００３７】
これらの命令を組み込んだソフトウエアコードの例を図１１に示してある。ライン６０２では、信号部分（レジスタＲ３：０に記憶）の最初の８チップに、最初の８つの符号セグメント（ＴＨＲレジスタ１：０に記憶）を乗じて、その結果を結果レジスタＴＲ０に記憶する。同じサイクルにおいて，新規のチップがレジスタＲ３：０にロードされる。（好ましい実施態様のＤＥＳＰＲＥＡＤ命令は、自動的にＴＨＲレジスタをシフトして、新規の符号部分を、レジスタの能動部分に移動させる。）ライン６０４では、（レジスタＲ７：４に記憶された）信号部分の２番目の８チップに、新規の符号部分を乗算して、その乗算の結果を、以前の結果に加算して、新規な結果をレジスタＴＲ０に記憶させる。同一のサイクル中に、新規のチップをレジスタＲ７：４にロードする。乗算および累算関数は、ライン６０６および６０８において反復される。ＤＥＳＰＲＥＡＤ関数を４回実行した後に、レジスタＴＨＲ（３６ビットレジスタ）が、完全にシフトされ（８ビットの４シフト）、新規の符号をＤＳＰによってレジスタＴＨＲにロードしなくてはならないが、レジスタＴＨＲはライン６１０上で再ロードされる。
【００３８】
上記の逆拡散命令の２つの実施態様は、命令が符号の８セグメントを使用して、一時に８チップを復号するように設計されているので、好ましくは、８またはそれよりも大きい拡散係数を有する符号について使用される。これらの命令は、信号部分を逆拡散を完了するのに必要な回数だけ、累算付きＤＥＳＰＲＥＡＤ命令をコールすることによって、８で割り切れる拡散係数を有する信号を逆拡散するのに使用することができる。拡散係数が４（または４で割り切れる）である符号について、逆拡散命令の第３の実施態様について記述する。このＤＥＳＰＲＥＡＤ命令の第３の実施態様は、次の形態を有する。
ＴＲｓｄ＝ＤＥＳＰＲＥＡＤ（ＲｍＱ，ＴＨｒｄ）
【００３９】
この第３のＤＥＳＰＲＥＡＤ命令に応答して実行される動作を示すデータフロー図を、図１２に示してある。図９、１０および１２にある同一の要素は、同一の参照番号をつけてある。図１２に示す動作は、この命令によって逆拡散される符号における拡散係数が４であるので、４つのチップだけを合わせて加算する必要があることを除けば、図１０に示すものと同様である。したがって、この命令は、一度に８チップを復号し、結果を累算しデュアル結果レジスタＴＲｓｄ９２４の別個の半分に記憶することによって、利用可能な８つの複素乗算を使用する。ＤＳＰにおけるＤＥＳＰＲＥＡＤ関数の３つの記述された実施態様は、入信する無線データ信号の処理において、より高い柔軟性と速度を可能にする。
【００４０】
上記のＤＥＳＰＲＥＡＤ命令の例が実行されて、好ましくは８ビット長のビットセグメントで、８つの複素乗算を一度に実行するのが、図９、１０および１２に示してある。これらの命令は、これらの実施態様に限定されるものではなく、より多数の複素乗算器、または異なる長さのビットストリームを使用して実現することが可能であり、また動作を計算ブロック１１２および１１４（図２）の両方で実行することによって処理速度を倍増することができる。
現時点において本発明の好ましい実施態様であると考えられるものを示し、記述したが、添付の特許請求の範囲に定義される本発明の範囲から逸脱することなく、様々な変更および修正ができることが、当業者には明白であろう。
【図面の簡単な説明】
【００４１】
【図１】無線電話基地局信号チェインのブロック図である。
【図２】本発明の一態様によるチャネル復号器を実装するのに好適なディジタル信号プロセッサのブロック図である。
【図３】図２のディジタル信号プロセッサに示した、各計算ブロックの一実施態様のブロック図である。
【図４】直交符号を使用する拡散および逆拡散の処理を示すブロック図である。
【図５】ディジタルビットの複素面上の代表点へのマッピングを示す図である。
【図６】ディジタルビット対の複素面上の代表点へのマッピングを示す図である。
【図７】直交符号ツリーの例を示す図である。
【図８】２組の記号の拡散および逆拡散を示すデータフロー図である。
【図９】逆拡散命令に応答して実行することのできる動作の第１の実施態様を示す、データフロー図である。
【図１０】逆拡散命令に応答して実行することのできる動作の第２の実施態様を示す、データフロー図である。
【図１１】本発明の一態様による逆拡散を実行するためのソフトウエアコードを示す図である。
【図１２】逆拡散命令に応答して実行することのできる動作の第３の実施態様を示す、データフロー図である。
【図１】
2004538710.tif 000007
【図２】
2004538710.tif 000008
【図３】
2004538710.tif 000009
【図４】
2004538710.tif 000010
【図５】
2004538710.tif 000011
【図６】
2004538710.tif 000012
【図７】
2004538710.tif 000013
【図８】
2004538710.tif 000014
【図９】
2004538710.tif 000015
【図１０】
2004538710.tif 000016
【図１１】
2004538710.tif 000017
【図１２】
2004538710.tif 000018
【国際公開パンフレット】
2004538710.tif 000019
2004538710.tif 000020
2004538710.tif 000021
2004538710.tif 000022
2004538710.tif 000023
2004538710.tif 000024
2004538710.tif 000025
2004538710.tif 000026
2004538710.tif 000027
2004538710.tif 000028
2004538710.tif 000029
2004538710.tif 000030
2004538710.tif 000031
2004538710.tif 000032
2004538710.tif 000033
2004538710.tif 000034
2004538710.tif 000035
2004538710.tif 000036
2004538710.tif 000037
2004538710.tif 000038
2004538710.tif 000039
2004538710.tif 000040
2004538710.tif 000041
2004538710.tif 000042
2004538710.tif 000043
2004538710.tif 000044
2004538710.tif 000045
2004538710.tif 000046
2004538710.tif 000047
2004538710.tif 000048
2004538710.tif 000049
【国際調査報告】
2004538710.tif 000050
2004538710.tif 000051