(57)【特許請求の範囲】
【請求項１】
ソフトウェアで信号に対して１つまたは複数のデジタル・フロントエンド（ＤＦＥ）機能を実行するための方法であって、
前記信号に前記１つまたは複数のデジタル・フロントエンド（ＤＦＥ）機能を実行するために、プロセッサで１つまたは複数の専門化された命令を実行するステップであって、前記プロセッサは、線形および非線形の命令の１つまたは複数で構成された命令セットを持つステップ
を含み、
前記１つまたは複数のデジタル・フロントエンド（ＤＦＥ）機能は、デジタル・プリディストーション機能を含み、前記１つまたは複数の専門化された命令は、１つまたは複数のユーザ定義の非線形の命令を含み、前記１つまたは複数のユーザ定義の非線形の命令は、少なくとも１つのユーザに指定されたパラメータを含み、
少なくとも１つのユーザに指定されたパラメータを持つ少なくとも１つの非線形関数に対するソフトウェア命令の少なくとも１つに応じて、
入力値ｘに前記非線形関数を適用するために前記少なくとも１つのソフトウェア命令を実装する少なくとも１つの機能単位を呼び出すステップと、
前記入力値ｘの前記非線形関数に対応する出力を生成するステップと
が実行され、
前記ユーザに指定されたパラメータは、有限数の入力値に対する前記非線形関数の値を格納するルックアップ・テーブルを含み、望まれる入力値ｘが前記ルックアップ・テーブルにない場合、結果を得るためにハードウェアで直線補間が実行される、
方法。
【請求項２】
前記専門化された命令は、ベクトル畳み込み関数、復素指数関数、およびベクトルｘのｘｋ関数の１つまたは複数を含む請求項１に記載の方法。
【請求項３】
複数のデータ・サンプルで構成されたサンプルのブロックを形成するステップを含み、前記１つまたは複数のデジタル・フロントエンド（ＤＦＥ）機能は、サンプルの前記ブロックに対して実行される請求項１または２に記載の方法。
【請求項４】
ソフトウェアで信号に対して１つまたは複数のデジタル・フロントエンド（ＤＦＥ）機能を実行するためのプロセッサであって、
メモリと、
前記１つまたは複数のデジタル・フロントエンド（ＤＦＥ）機能を前記信号に対して実行するために、１つまたは複数の専門化された命令を実行するように動作し、前記プロセッサは、線形および非線形の命令の１つまたは複数で構成された命令セットを持つ
前記メモリに結合された少なくとも１つのハードウェア・デバイスと
を含み、
前記１つまたは複数のデジタル・フロントエンド（ＤＦＥ）機能は、デジタル・プリディストーション機能を含み、前記１つまたは複数の専門化された命令は、１つまたは複数のユーザ定義の非線形の命令を含み、前記１つまたは複数のユーザ定義の非線形の命令は、少なくとも１つのユーザに指定されたパラメータを含み、
少なくとも１つのユーザに指定されたパラメータを持つ少なくとも１つの非線形関数に対するソフトウェア命令の少なくとも１つに応じて、
入力値ｘに前記非線形関数を適用するために、前記少なくとも１つのソフトウェア命令を実装する少なくとも１つの機能単位を呼び出すステップと、
前記入力値ｘの前記非線形関数に対応する出力を生成するステップと
が実行され、
前記ユーザに指定されたパラメータは、有限数の入力値に対する前記非線形関数の値を格納するルックアップ・テーブルを含み、望まれる入力値ｘが前記ルックアップ・テーブルにない場合、結果を得るためにハードウェアで直線補間が実行される、
プロセッサ。
【請求項５】
前記専門化された命令は、ベクトル畳み込み関数、復素指数関数、およびベクトルｘのｘｋ関数の１つまたは複数を含む請求項４に記載のプロセッサ。
【請求項６】
前記少なくとも１つのハードウェア・デバイスは、複数のデータ・サンプルで構成されたサンプルのブロックを形成するようにさらに構成され、前記１つまたは複数のデジタル・フロントエンド（ＤＦＥ）機能は、サンプルの前記ブロックに対して実行される請求項４または５に記載のプロセッサ。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、参照により本明細書に組み込まれている、２０１１年１０月２７日に出願した米国特許仮出願第６１／５５２，２４２号「Ｓｏｆｔｗａｒｅ  Ｄｉｇｉｔａｌ  Ｆｒｏｎｔ  Ｅｎｄ（ＳｏｆｔＤＦＥ）Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｉｎｇ  ａｎｄ  Ｄｉｇｉｔａｌ  Ｒａｄｉｏ」の優先権を主張するものである。
【０００２】
本発明は、デジタル信号処理技法に関し、より詳細には、通信デバイスにおけるデジタル・フロントエンド処理のための技法に関する。
【背景技術】
【０００３】
通信システムにおいて、「フロントエンド」という用語は、元々、アンテナの近くにある受信機または送信機のアナログ部分を表していた。フロントエンドは、デジタル処理のために中間周波数（ＩＦ）でアナログ信号をバックエンドに送っていた。より最近には、「フロントエンド」という用語は、以前はアナログ領域で実行された信号調節の一部をより最近の端末または基地局システムではデジタル処理コンポーネントに含めるように拡大された。
【０００４】
デジタル・フロントエンド（ＤＦＥ）は今、ＢＢプロセッサとアナログ・ベースバンド／ＲＦ回路との間の回路に対する一般的な用語である。受信機では、ＤＦＥは、中間周波数を含む、または含まない場合がある（受信機がゼロＩＦか非ゼロＩＦかに依存する）、ＲＦ復調されたデジタル化された信号を処理するコンポーネントを含む。受信機側では、ＤＦＥは、デジタルＩＦ信号から、様々なＩＦ周波数で異なるチャネル（ＧＳＭ、ＷＣＤＭＡ、ＬＴＥ、またはこれらの技術の組み合わせ）をデジタル方式で抽出する（前世代システムではアナログ領域で実行された動作）。
【０００５】
送信機では、ＤＦＥは、デジタル領域の様々なチャネルに対してベースバンド信号を処理し、アップコンバートされたデジタル信号を提供するコンポーネントを含む。このアップコンバートされた信号は、波高因子低減およびＲＦパワー増幅器の非線形の応答のデジタル・プリディストーションなど、追加の信号調節をさらに受けることができ、最終的にデジタル／アナログ変換器（ＤＡＣ）に適用される。
【０００６】
デジタル・フロントエンドは、典型的には、上記のマルチキャリア・マルチスタンダード無線信号の高いサンプリング・レートのために、ハードワイヤード・ロジックを使用して実装される。そのようなハードウェアベースのＤＦＥ技法は、通信信号を効果的に処理するが、それらは多くの制限を受け、それを克服すれば、ＤＦＥシステムの効率および柔軟性をさらに改善することができる。たとえば、既存のハードウェアベースのＤＦＥ技法は柔軟性を欠き、高価であり、時間がかかり、かつＤＦＥ  ＡＳＩＣ（特定用途向け集積回路）の設計は高価であり時間がかかる（多くの場合、２年のサイクル）ため、新しいＲＦ設計のためにＤＦＥ設計を変更するのが難しい。
【０００７】
ＤＦＥシステムの一部をソフトウェアに実装するために、多くの技法が提案または提言されてきた。たとえば、ＤＦＥの一部は、フィールドプログラマブル・ゲートアレイ（ＦＰＧＡ）に実装され、ＤＦＥの他の部分はハードワイヤードであり、他の部分はＡＳＩＣに実装される。ＦＰＧＡは、「論理ブロック」と呼ばれるプログラマブル・ロジック・コンポーネントを含む。しかし、ＦＰＧＡベースの技法は、コストおよび電力消費に関して法外に高い。
【０００８】
様々なＤＦＥ機能のソフトウェアへの実装は可能である。しかし、数百メガヘルツという既存のサンプリング・レートについて、たとえば、リアルタイムのＤＦＥソフトウェアの実装は、標準的なデジタル信号プロセッサまたはベクタ・プロセッサでも達成可能ではない。したがって、効率的なソフトウェアベースのＤＦＥ技法に対する必要性が存在する。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】国際特許出願ＰＣＴ／＿「Ｄｉｇｉｔａｌ  Ｐｒｏｃｅｓｓｏｒ  Ｈａｖｉｎｇ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ  Ｗｉｔｈ  Ｃｏｍｐｌｅｘ  Ｅｘｐｏｎｅｎｔｉａｌ  Ｎｏｎ−Ｌｉｎｅａｒ  Ｆｕｎｃｔｉｏｎ」
【特許文献２】国際特許出願ＰＣＴ＿「Ｖｅｃｔｏｒ  Ｐｒｏｃｅｓｓｏｒ  Ｈａｖｉｎｇ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ  Ｗｉｔｈ  Ｖｅｃｔｏｒ  Ｃｏｎｖｏｌｕｔｉｏｎ  Ｆｕｎｃｔｉｏｎ  Ｆｏｒ  ＦＩＲ  Ｆｉｌｔｅｒｉｎｇ」
【特許文献３】米国特許出願第１２／３６２，８７４号
【特許文献４】米国特許出願第１２／３２４，９３４号
【特許文献５】米国特許出願第１２／３２４，９２６号
【特許文献６】米国特許出願第１２／３２４，９２７号
【特許文献７】米国特許出願第１２／８４９１４２号
【非特許文献】
【００１０】
【非特許文献１】Ｌｅｉ  Ｄｉｎｇら、「Ｃｏｍｐｅｎｓａｔｉｏｎ  ｏｆ  Ｆｒｅｑｕｅｎｃｙ−Ｄｅｐｅｎｄｅｎｔ  Ｇａｉｎ／Ｐｈａｓｅ  Ｉｍｂａｌａｎｃｅ  ｉｎ  Ｐｒｅｄｉｓｔｏｒｔｉｏｎ  Ｌｉｎｅａｒｉｚａｔｉｏｎ  Ｓｙｓｔｅｍｓ」、ＩＥＥＥ  Ｔｒａｎｓａｃｔｉｏｎｓ  ｏｎ  Ｃｉｒｃｕｉｔｓ  ａｎｄ  Ｓｙｓｔｅｍｓ、Ｖｏｌ．５５，Ｎｏ．１、３９０〜９７（２００８年２月）
【発明の概要】
【課題を解決するための手段】
【００１１】
一般的に、ソフトウェアによるデジタル・フロントエンド（ＳｏｆｔＤＦＥ）信号処理技法が提供される。本発明の一態様によると、１つまたは複数のデジタル・フロントエンド（ＤＦＥ）機能は、信号に対して１つまたは複数のデジタル・フロントエンド（ＤＦＥ）機能を実行するために、プロセッサで１つまたは複数に専門化された命令を実行することによって、ソフトウェアにおいて信号に対して実行され、プロセッサは、線形および非線形の命令の１つまたは複数で構成された命令セットを持つ。プロセッサは、たとえば、デジタル信号プロセッサまたはベクタ・プロセッサでもよい。
【００１２】
専門化された命令は、Ｎ１＋Ｎ２−１サンプルの入力ベクトルを受信し、入力ベクトルＮ１のＮ１サンプルの時間シフト版および係数を処理するベクトル畳み込み関数を含むことができ、時間シフト版ごとにＦＩＲ出力値を生成する。さらに、専門化された命令は、復素指数関数および／またはベクトルｘのｘｋ関数を含むことができる。
【００１３】
信号は、サンプルごと、またはデータ・サンプルのブロックとして処理することができる。本発明の他の態様によると、サンプルのブロックは、複数のデータ・サンプルで構成されて形成され、デジタル・フロントエンド（ＤＦＥ）機能は、サンプルのブロックに対して実行される。
【００１４】
代表的なチャネル・フィルタリングＤＦＥ機能について、専門化された命令は、ベクトル畳み込み関数を含む。代表的なデジタル・アップ・コンバージョンＤＦＥ機能について、専門化された命令は、復素指数関数命令を含む。
【００１５】
代表的な波高因子低減ＤＦＥ機能について、専門化された命令は、（ｉ）ピーク検出について、ベクトル比較命令およびベクトルｍａｘ（）命令の１つまたは複数を含み；（ｉｉ）ピーク・キャンセレーションについて、ベクトル積和演算命令、ベクトル乗算命令、およびベクトル加算命令の１つまたは複数を含み；（ｉｉｉ）ポーラー・クリッピング（ｐｏｌａｒ  ｃｌｉｐｐｉｎｇ）演算について、ベクトルｘ−０．５命令、ベクトルｓｑｒｔ（）命令、およびベクトル１／ｘ命令の１つまたは複数を含む。
【００１６】
代表的なデジタル・プリディストーションＤＦＥ機能について、専門化された命令は、１つまたは複数のユーザ定義の非線形の命令を含む。ユーザ定義の非線形の命令は、少なくとも１つのユーザに指定されたパラメータを含む。少なくとも１つのユーザに指定されたパラメータを持つ少なくとも１つの非線形関数のソフトウェア命令の少なくとも１つに応じて、以下のステップが実行される：（ｉ）入力値ｘに非線形関数を適用するために、少なくとも１つのソフトウェア命令を実装する少なくとも１つの機能単位を呼び出す；および（ｉｉ）入力値ｘの非線形関数に対応する出力を生成する。ユーザに指定されたパラメータは、メモリから少なくとも１つのレジスタにロードすることができる。ユーザに指定されたパラメータは、たとえば、有限数の入力値に対する非線形関数の値を格納するルックアップ・テーブルを含む。
【００１７】
本発明のより完全な理解、ならびに他の本発明の特徴および利点は、以下の詳細な説明および図を参照することによって得られるだろう。
【図面の簡単な説明】
【００１８】
【図１】本発明の態様を用いることができる代表的な通信システムの一部を示す図である。
【図２】個々のデータ・サンプルをデータのブロックに変換するブロック生成プロセスを示す図である。
【図３】図１のブロックを実装するために使用できる、代表的なチャネル・フィルタおよびデジタル・アップ・コンバージョン段階を示す略ブロック図である。
【図４Ａ】図３のデジタル・アップコンバータ・フィルタを示す略ブロック図である。
【図４Ｂ】図３の補間フィルタを示す略ブロック図である。
【図５】チャネル・フィルタおよびデジタル・アップ・コンバージョン段階の代表的な擬似コードを示す図である。
【図６】図１の波高因子低減段階によって用いることができる適切な波高因子低減アルゴリズムの代表的な擬似コードを示す図である。
【図７】本発明の一実施形態により波高因子低減を処理するブロックを示す図である。
【図８】本発明の一実施形態により波高因子低減を処理するブロックを示す図である。
【図９】図６の波高因子低減アルゴリズムの代表的なハード・クリッピング段階を示す図である。
【図１０】本発明の一実施形態により１つまたは複数の数を同時に処理する代表的なベクトルベースのデジタル信号プロセッサを示す略ブロック図である。
【図１１】本発明の態様を用いることができる代替の代表的な送信機の一部を示す図である。
【図１２】ユーザ定義の非線形の命令ｆｍ，ｌを使用してベクタ・プロセッサでソフトウェアにＤＰＤ機能を実装するための代表的な擬似コードを示す図である。
【図１２Ａ】前述のユーザ定義の非線形の命令ｆｍ，ｌの代表的な機能ブロック図を示す図である。
【図１２Ｂ】前述のユーザ定義の非線形の命令ｆｍ，ｌの代表的な代替の機能ブロック図を示す図である。
【図１３Ａ】ｘ（ｎ）に応じて個々のユーザ定義の非線形関数ｆｍ，ｌを示す図である。
【図１３Ｂ】図１３Ａの個々のユーザ定義の非線形関数ｆｍ，ｌの代表的な概算を示す図である。
【図１４】テイラー・サム（Ｔａｙｌｏｒ  Ｓｕｍ）計算ブロックを示す図である。
【図１５】本発明の一実施形態により１つまたは複数の複素数のユーザ定義の非線形関数を同時に評価する代表的なベクトルベースのデジタル・プロセッサを示す略ブロック図である。
【図１６】適応可能なプリディストーションのための第１のシステムを示す概略図である。
【図１７】適応可能なプリディストーションのための直接的な形式のシステムを示す概略図である。
【図１８】本明細書に記述されたフィルタリング操作の多くによって用いることができるベクトル畳み込み関数を示す図である。
【図１９】図１のＩＱ／等化ブロックを実装するために使用できる代表的な等化／ＩＱインバランス補正（ＩＱＩＣ）段階を示す略ブロック図である。
【発明を実施するための形態】
【００１９】
図１は、本発明の態様を用いることができる代表的な通信システム１００の一部を示している。図１に示すように、代表的な通信システム１００は、チャネル・フィルタおよびデジタル・アップ・コンバージョン（ＤＵＣ）段階１１０、波高因子低減（ＣＦＲ）段階１２０、デジタル・プリディストーション（ＤＰＤ）段階１３０、および等化／ＩＱインバランス補正１４０を持つ送信部を含む。一般的に、図３〜図５に関して以下にさらに記述するように、チャネル・フィルタおよびデジタル・アップ・コンバージョン段階１１０は、たとえば、有限のインパルス応答（ＦＩＲ）フィルタを使用するチャネル・フィルタリングおよびデジタル化されたベースバンド信号を無線周波数（ＲＦ）に変換するためのデジタル・アップ・コンバージョンを実行する。図６〜図１０に関して以下にさらに記述するように、波高因子低減段階１２０は、送信された信号のＰＡＲを制限する。図１１〜図１５に関して以下にさらに記述するように、デジタル・プリディストーション段階１３０は、効率を向上するために電力増幅器を線形化する。図１９に関連してさらに下に記述するように、等化／ＩＱインバランス補正１４０は、チャネル障害を緩和するために、ＩＱ補正を実行し、ＲＦチャネル等化を用いる。
【００２０】
図１に示すように、図１６および図１７に関してさらに下に記述するように、アナログ／デジタル変換器（ＡＤＣ）からのデジタル信号は、ＤＰＤパラメータ推定１６０のためにオンチップ・メモリ１７０に格納される。次に、ＤＰＤタップは、たとえば、中央制御装置（ＣＰＵ）、汎用プロセッサ（ＧＰＰ）、デジタル信号プロセッサ（ＤＳＰ）、またはベクタ・プロセッサを使用して、段階１５０で構成される。
【００２１】
図１に示すように、代表的な通信システム１００は、また、アナログ／デジタル変換器（ＡＤＣ）から信号を受信するチャネル・フィルタ／チャネル・デジタル・ダウン・コンバージョン（ＤＤＣ）ブロック１８０を持つ受信部を含み、ＲＸインターフェースにベースバンド信号を提供する。
【００２２】
本発明の一態様によると、図１の通信システム１００のデジタル・フロントエンド（ＤＦＥ）のブロックの１つまたは複数は、ソフトウェアに実装される。以下に記述するように、これらのＳｏｆｔＤＦＥブロックは、アップサンプリングおよびアップコンバートされたサンプルならびに出力サンプルを生成するために個々のサンプルまたはサンプルのブロックのいずれかを取る（典型的にはサンプルのブロック）。ＳｏｆｔＤＦＥ機能の１つまたは複数は、ベクタ・プロセッサの専門化された特徴を使用してソフトウェアに実装される。異なるアンテナ・データの処理は、異なるベクタ・プロセッサで実行できることに注意されたい。さらに、異なるＳｏｆｔＤＦＥ機能は、異なるベクタ・プロセッサまたは同じベクタ・プロセッサで処理することができる。
【００２３】
図２は、個々のデータ・サンプル２１０をデータのブロック２５０に変換するブロック生成プロセス２００を示している。図２に示すように、個々のデータ・サンプル２１０は、入力周期タイマー・イベント２２０を使用して読み込まれる。２３０に示すように、処理時間は、ベクトル・エンジン（ＶＥ）などプロセッサで変化することがある。上記のように、本発明の態様によるブロック処理は、プロセス負荷と無関係に、遅延を維持することを可能にする。したがって、データのブロック２５０は、出力周期タイマー・イベント２４０を使用して読み出される。
【００２４】
データ・ブロック２５０は、オプションとしてバッファに格納される。代表的な一実装では、２つのデータ・ブロック２５０は、一度にバッファに格納することができる。したがって、バッファは、少なくとも２ブロック長のサイズを持つ。
【００２５】
チャネル・フィルタおよびデジタル・アップ・コンバージョン段階１１０
上記のように、チャネル・フィルタおよびデジタル・アップ・コンバージョン段階１１０は、たとえば、有限のインパルス応答（ＦＩＲ）フィルタを使用するチャネル・フィルタリングおよびデジタル化されたベースバンド信号を無線周波数（ＲＦ）に変換するためのデジタル・アップ・コンバージョンを実行する。以下に記述するように、チャネル・フィルタおよびデジタル・アップ・コンバージョン段階１１０の１つまたは複数の機能は、ベクトル乗算、ベクトル加算および縮小（ｒｅｄｕｃｔｉｏｎ）、あるいは、ベクトル畳み込み演算命令を使用して加速された１つまたは複数のベクタ・プロセッサでソフトウェアに実装される。デジタル・アップ・コンバージョンは、たとえば、入力信号に復素指数関数をかけることを必要とし（ベクトル乗算、つまり２つのベクトル、信号およびロテーターのベクトルのコンポーネント・ワイズ（ｃｏｍｐｏｎｅｎｔ  ｗｉｓｅ）の積）、本発明の態様は、加速された復素指数関数を用いる。デジタル変調は、（ベクトルとして計算された）復素指数関数に基づいて数値的に制御された発振器（ＮＣＯ）を使用してオプションとして実行される。
【００２６】
図３は、図１のブロック１１０を実装するために使用できる代表的なチャネル・フィルタおよびデジタル・アップ・コンバージョン段階３００の略ブロック図である。図３に示すように、代表的なチャネル・フィルタおよびデジタル・アップ・コンバージョン段階３００は、たとえば、３．８４メガサンプル／秒（ＭＳＰＳ）の代表的なサンプリング・レートを持つ代表的なＷＣＤＭＡ信号３１０を含む（またはマルチスタンダード無線（ＭＳＲ）の他の代表的な技術の信号。次に、ＷＣＤＭＡ信号３１０は、図４Ａに関して下にさらに記述するように、３０．７２ＭＳＰＳの代表的なサンプリング・レートに信号をアップコンバートするために、デジタル・アップコンバータ・フィルタ３２０に適用される。次に、アップコンバートされた信号は、図４Ｂに関連してさらに下に記述するように、３０７．２ＭＳＰＳの代表的なサンプリング・レートに信号をさらにアップコンバートする補間フィルタ３３０に適用される。
【００２７】
補間フィルタ３３０の出力は乗算器３４０に適用され、復素指数関数ｅｘｐ（ｊω０ｎ）がかけられる。復素指数関数ｅｘｐ（ｊω０ｎ）の詳細については、ここに同時に出願され参照によって本明細書に組み込まれている、国際特許出願ＰＣＴ／＿「Ｄｉｇｉｔａｌ  Ｐｒｏｃｅｓｓｏｒ  Ｈａｖｉｎｇ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ  Ｗｉｔｈ  Ｃｏｍｐｌｅｘ  Ｅｘｐｏｎｅｎｔｉａｌ  Ｎｏｎ−Ｌｉｎｅａｒ  Ｆｕｎｃｔｉｏｎ」を参照すること。
【００２８】
次に、様々なチャネルは集合され、図１のＣＦＲ１２０に適用される。
【００２９】
図４Ａは、図３のデジタル・アップコンバータ・フィルタ３２０の略ブロック図である。図４Ａに図示するように、デジタル・アップコンバータ・フィルタ３２０は、２倍アップサンプリングを実行するルート・レイズド・コサイン（ＲＲＣ）フィルタ４１０、それぞれ２倍アップサンプリングを実行する２つのハーフバンド・フィルタ４２０、４３０を含む。
【００３０】
以下の表は、図４Ａのフィルタ４１０、４２０、４３０の代表的な実装を記述している。
【００３１】
【表１】
0006037318.tif 000002
【００３２】
図１８に関連してさらに下に記述するように、本発明は、フィルタ４１０、４２０、４３０のフィルタリング操作を含む、本明細書に記述したフィルタリング操作は、ベクトル畳み込み関数を使用して加速できることを認識している。ここに同時に出願され参照によって本明細書に組み込まれている、国際特許出願ＰＣＴ＿「Ｖｅｃｔｏｒ  Ｐｒｏｃｅｓｓｏｒ  Ｈａｖｉｎｇ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ  Ｗｉｔｈ  Ｖｅｃｔｏｒ  Ｃｏｎｖｏｌｕｔｉｏｎ  Ｆｕｎｃｔｉｏｎ  Ｆｏｒ  ＦＩＲ  Ｆｉｌｔｅｒｉｎｇ」も参照すること。
【００３３】
図４Ｂは、図３の補間フィルタ３３０の略ブロック図である。図４Ｂに示すように、補間フィルタ３３０は、２つのフィルタ４５０、５６０を含む。合計１０のアップサンプリング比のために、フィルタ４５０は、２倍アップサンプリングを実行し、フィルタ４６０は、５倍アップサンプリングを実行する、
【００３４】
以下の表は、図４Ｂのフィルタ４５０、４６０の代表的な実装を記述している。
【００３５】
【表２】
0006037318.tif 000003
【００３６】
図５は、チャネル・フィルタおよびデジタル・アップ・コンバージョン段階１１０の代表的な擬似コード５００を示している。代表的な擬似コード５００は、入力複素数データのブロックを処理し、出力複素数データのブロックを作成する。アップサンプリングおよび補間フィルタリングを実行するために、各フィルタ段階に対してループが処理される。さらに、サンプルのブロックについてデジタル・アップ・コンバージョン（中間周波数ｆ＿ＩＦによる変調）が実行される。
【００３７】
波高因子低減段階１２０
上記のように、波高因子低減段階１２０は、送信された信号のＰＡＲを制限する。以下に記述するように、波高因子低減は、ピーク検出およびピーク・キャンセレーションを必要とする。ピーク検出は、ベクトル比較命令または専門化されたｍａｘ（）命令を活用することができる。同様に、ピーク・キャンセレーションは、ベクトルの乗算および加算を含み、ハード・クリッピングは、しきい値およびベクタ・プロセッサを使用して加速できる調整（ベクトル・コンポーネント・ワイズに対して１／ｘ）に比較するエンベロープ計算（ベクトルｓｑｒｔ（）およびベクトル（ｘ＊ｃｏｎｊ（ｘ）））を含む。ｓｑｒｔ（）および１／ｘの演算は、加えて、ベクトルｘ−０．５の演算／命令を使用して、組み合わせて実行することができる。
【００３８】
図６は、図１の波高因子低減段階１２０によって用いることができる適切な波高因子低減アルゴリズムの代表的な擬似コード６００を示している。任意の代替の波高因子低減アルゴリズムも用いることができることに注意されたい。図６に示すように、代表的な波高因子低減アルゴリズム６００は、ピーク検索段階６１０、パルス・キャンセレーション段階６４０、およびハード・クリッピング段階６８０という３つの部分を含む。
【００３９】
代表的な波高因子低減アルゴリズム６００は、ピーク再成長（ｐｅａｋ  ｒｅｇｒｏｗｔｈ）に対処するためにオプションとして反復的に実行することができる。たとえば、反復の数Ｎ＿ｉｔｅｒは、１から４の間の一般的な値を持つことができる。一般的に、パルスの両側のリンギングのために、他のピークをキャンセルするときに新しいピークが導入される場合、ピーク再成長が結果として生じる（パルスは、従来、複数のタップを持つ線形位相の対称的なＦＩＲフィルタとして設計されている）。中央タップの両側にタップがある。したがって、現在または過去のサンプル値にピークを導入することができる。過去のサンプルに導入されたピークに対処するために、既存のＣＦＲアルゴリズムは、ピークをすべてキャンセルするために複数の反復を必要とする。
【００４０】
ピーク検索段階６１０の間に、ピークの数、それらの場所、およびしきい値レベルを上回る規模を決定するために、信号を通じて検索が実行される。代表的な波高因子低減アルゴリズム６００は、最初にアンテナ・サンプル規模を計算する。次に、しきい値を上回るサンプル値が識別される。たとえば、しきい値は、ＰＡＲターゲットに基づいて確立することができる。その後、ピーク位置は、たとえば、ベクトルｍａｘ（）命令を使用して識別することができる。ピーク検出は、オプションとして、ベクトル比較命令または専門化されたベクトルｍａｘ（）命令を活用することができる。
【００４１】
パルス・キャンセレーション段階６４０の間に、キャンセレーション・パルスはピークのそれぞれで配列され、次にパルスのすべてがピークから引かれる。代表的な波高因子低減アルゴリズム６００は、パルス・キャンセレーション利得を計算する（たとえば、検出されたピークの規模で割られたしきい値）。その後、代表的な波高因子低減アルゴリズム６００は、各ピークを別々に処理するためにループに入る。各ピークについて、たとえば、ベクトル乗算命令を使用してパルスが生成され、たとえば、ベクトル加算命令を使用して、アンテナからパルスがキャンセルされる。ピーク・キャンセレーションは、ベクタ・プロセッサで加速することができる、ベクトルの乗算および加算を含む。
【００４２】
ハード・クリッピング段階６８０の間に、代表的な波高因子低減アルゴリズム６００は、たとえば、規模反転（ｍａｇｎｉｔｕｄｅ  ｉｎｖｅｒｓｅ）のために非線形の演算を使用して、出力波形をハード・クリッピングする。クリッピングしきい値レベルＲは、ＰＡＲターゲットに基づいて設定される。ハード・クリッピングは、たとえば、ポーラー・クリッピング技法を使用して実行することができる。一般的に、ポーラー・クリッピングは、｜ｘ｜の計算、しきい値Ｒに対する｜ｘ｜の比較、Ｒ／｜ｘ｜による調整を含む。｜ｘ｜がＲより大きい場合、ｘはＲに置き換えられる。ここでも、１／｜ｘ｜は、ベクトルｘ−０．５の演算／命令を使用して、ベクタ・プロセッサで効率的に計算することができる。
【００４３】
他の変形形態では、波高因子低減は、周波数領域で実行することができる。
【００４４】
上記のように、本発明の一態様は、効率を向上するためにデータのブロックに対してＣＦＲ処理を実行できることを認識する。たとえば、データのブロックに対してＣＦＲを実行するために、ベクトル・エンジン（ＶＥ）を用いることができる。たとえば、ソフトウェア実装では、ブロック処理により、プロセッサ負荷と無関係に、遅延を一定に維持することが可能になる。さらに、ソフトウェア実装では、個々のデータ・サンプル３１０だけでなく、データのブロック全体を通じてオーバヘッドを償却することによって、ブロック処理により効率を向上する。
【００４５】
図７は、本発明の一実施形態によるブロック処理波高因子低減を示している。図７に示すように、データのブロック７００は、図６の波高因子低減アルゴリズム６００に適用することができる。しかし、ピーク７０５、７１５などのピークがブロック７００の端部の近くで検出された場合、対応するキャンセレーション・パルス７１０、７２０のタップがデータのブロック４００の外部に延在する場合、縁効果（ｅｄｇｅ  ｅｆｆｅｃｔ）があるだろう。
【００４６】
したがって、本発明の他の態様によると、データのブロック間における処理の継続性は、１つまたは複数のプリカーソルおよび／またはポストカーソルのブロック・サンプルを使用して保証される。図８は、本発明の一実施形態による波高因子低減のブロック処理８００を示している。図８の代表的な実施形態に図示するように、図６の代表的な波高因子低減アルゴリズム６００に適用される前に、２つのプリカーソル８１０−１、８１０−２が、処理されている現在のブロック８５０の前に配置され、単一のポストカーソル・ブロック８６０が、現在のブロック８５０の終わりに添付される。このようにして、ブロック８５０の始まりおよび終わりは、他の場合には、ブロック処理によって引き起こされるエッジ効果を生じることなく処理することができる。
【００４７】
代表的な一実施形態では、キャンセレーション・パルス７１０、７２０の半分のサイズとほぼ等しいように、各カーソル・ブロック８１０、８６０のサイズが選択される。さらに、適切な量のオーバヘッドを維持するために、各データ・ブロック８５０のサイズは、各カーソル・ブロック８１０、８６０のサイズよりかなり大きい必要がある。一般的に、各データ・ブロック８５０のサイズが大きいほど、必要なメモリは大きくなり、遅延は大きくなる。
【００４８】
プリカーソル・ブロック８１０には、前のデータ・ブロックの終わりから入力データが入れられ、ポストカーソル・ブロック８６０は、次のデータ・ブロックの始めから入力データが入れられる。
【００４９】
代表的な一実施形態では、ピークは、ポストカーソル・ブロック８６０ではなく、ブロック８５０および第１のプリカーソル・ブロック８１０−１で検出されキャンセルされる。その理由は、ポストカーソル・データは、次のブロックの処理の間に処理されるからである。ポストカーソル・ブロック８６０に関連するポストカーソル入力サンプルは、ブロック８５０内のピークをキャンセルする必要があるだけである。
【００５０】
さらに、ブロック８５０の左端でピークをキャンセルする場合、第１のプリカーソル・ブロック８１０−１でピーク再成長が発生する。したがって、第１のプリカーソル・ブロック５１０−１において、これらの新しいピークをキャンセルするために、第２のプリカーソル・ブロック８１０−２が必要である（しかし、第２のプリカーソル・ブロック８１０−２ではキャンセレーションは実行されない。
【００５１】
図９は、図６の波高因子低減アルゴリズム６００の代表的なハード・クリッピング段階６８０を示している。上記のように、ハード・クリッピング段階６８０の間に、代表的な波高因子低減アルゴリズム６００は、たとえば、規模反転のために非線形の演算を使用して、出力波形をハード・クリッピングする。クリッピングしきい値レベルＲは、ピーク対平均値比（ＰＡＲ）ターゲットに基づいて設定される。ハード・クリッピングは、たとえば、図９に示すように、ポーラー・クリッピング加速技法を使用して実行することができる。一般的に、ポーラー・クリッピングは、｜ｘ｜を計算すること、｜ｘ｜をしきい値Ｒ（半径によって設定）と比較すること、およびＲ／｜ｘ｜により調整することを含む。｜ｘ｜がＲより大きい場合、ｘはＲと置き換えられる。
【００５２】
ハード・クリッピングは、しきい値およびベクタ・プロセッサを使用して加速できる調整（ベクトル・コンポーネント・ワイズに対して１／ｘ）に比較するエンベロープ計算（ベクトルｓｑｒｔ（）およびベクトル（ｘ＊ｃｏｎｊ（ｘ））を含む。これらの虚数乗法は、ベクトル平方根演算だけでなくベクトル乗算器も使用して加速することができる。
【００５３】
さらに、本発明の態様は、（ｘ＊ｃｏｎｊ（ｘ））−０５を使用して１／｜ｘ｜を直接的に計算できることを認識しており、これは専門化されたベクトルｘｋ（ｖｅｃ＿ｘ＿ｐｏｗ＿ｋ）命令を使用して加速することができる。
【００５４】
図１０は、本発明の一実施形態により１つまたは複数の数を同時に処理する、代表的なベクトルベースのデジタル信号プロセッサ１０００の略ブロック図である。一般的に、図１０のベクトルベースの実装は、多数のプロセスを同時に実行する。したがって、ベクトルベースのデジタル信号プロセッサ１０００は、ｘｋ関数１０１０−１から１０１０−Ｎの複数の機能単位を含む。
【００５５】
ベクトルベースのデジタル信号プロセッサ１０００への入力は、並列に処理される複数のスカラー数ｘｎで構成されたベクトルｘである。たとえば、ベクトルベースのデジタル信号プロセッサ１０００が、ベクトルｘのｘｋ関数をサポートすると想定し、ここでＸは、スカラー数ｘ１からｘ４で構成される。代表的なｘｋ関数は、以下のように表現することができる。
Ｐｏｗ＿ｖｅｃ４（ｘ１，ｘ２，ｘ３，ｘ４，Ｋ）
【００５６】
参照によって本明細書に組み込まれている、２００９年１月３０に出願された米国特許出願第１２／３６２，８７４号「Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ  Ｈａｖｉｎｇ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ  ｗｉｔｈ  ａｎ  ｘｋ  Ｆｕｎｃｔｉｏｎ  Ｕｓｉｎｇ  Ｒｅｄｕｃｅｄ  Ｌｏｏｋ−Ｕｐ  Ｔａｂｌｅ」も参照すること。
【００５７】
代表的なベクトルベースのデジタル・プロセッサ１０００は、以下のように実装されたｐｏｗ（ｘ，Ｋ）命令を使用して、３２ｘｋの演算を計算するために、１６−ｗａｙのベクタ・プロセッサとして実装することができる。
ｖｅｃ＿ｐｏｗ（ｘ１，ｘ２・・・ｘ３２，Ｋ）、ここでＫ値は、たとえば、０．５、−０．５、−１である。
【００５８】
このようにして、ベクトルベースのデジタル・プロセッサ１０００は、１６のそのような演算を実行し、単一サイクルにそれらを組み合わせることができる。
【００５９】
デジタル・プリディストーション段階１３０
上記のように、デジタル・プリディストーション段階１３０は、効率を向上するために電力増幅器を線形化する。以下に記述するように、デジタル・プリディストーションは、ベクトルの非線形関数を計算することを含む。非線形関数は、多項式または他の基底関数でもよい。これは、ルックアップ・テーブルおよびテイラー級数を組み合わせる非線形の命令を使用して加速することができる。
【００６０】
図１のデジタル・プリディストーション段階１３０は、以下のように実装することができる。
【００６１】
図１１は、本発明の態様を用いることができる代替の代表的な送信機１１００の一部を示している。図１１に示すように、代表的な送信機部分１１００は、２つのパルス整形およびローパス・フィルタ（ＬＰＦ）段階１１１０−１、１１１０−２、ならびに複素信号Ｉ、Ｑを処理する２つのデジタル・アップコンバータ１１２０−１、１１２０−２を含む。図１１の代表的な送信機部１１００は、図１の波高因子低減段階１２０を含んでいないが、オプションとしてＣＦＲ段階を含むことができる。次に、複素入力（Ｉ、Ｑ）は、図１１のデジタル前置補償器１１３０に適用される。図１１のデジタル前置補償器１１３０は、たとえば、図１２および図１３に関して以下にさらに記述する。
【００６２】
デジタル前置補償器１１３０の出力は、２つのデジタル／アナログ変換器（ＤＡＣ）１１４０−１、１１４０−２に並列に適用され、次に、アナログ信号は、信号をＲＦ信号にさらにアップコンバートする直角変調段階１１５０によって処理される。
【００６３】
直角変調段階１１５０の出力１１５５は、ドハーティ増幅器またはドレイン変調器など電力増幅器１１６０に適用される。上記のように、デジタル前置補償器１１３０は、電力増幅器１１６０の効率を向上させるために電力増幅器１１６０を線形化する。
【００６４】
フィードバック経路１１６５において、電力増幅器１１６０の出力は、信号をベースバンドにダウンコンバートする復調段階１１８０に適用される前に減衰器１１７０に適用される。ダウンコンバートされた信号は、信号をデジタル化するためにアナログ／デジタル変換器（ＡＤＣ）１１９０に適用される。次に、デジタル化されたサンプルは、デジタル前置補償器１１３０に対してパラメータｗを生成する、複素適応アルゴリズム１１９５によって処理される。複素適応アルゴリズム１１９５は、本出願の範囲の外にある。最小二乗（ＬＳ）または再帰的な最小二乗（ＲＬＳ）など既知の技法は、デジタル前置補償器１１３０に対してパラメータを生成するために用いることができる。
【００６５】
デジタル前置補償器の非線形フィルタ実装
デジタル前置補償器１１３０は、非線形系のボルテラ級数モデルを使用して、非線形のフィルタとして実装することができる。ボルテラ級数は、テイラー級数と同様に非線形の振る舞いのモデルである。ボルテラ級数は「メモリ」効果をキャプチャするその能力では、テイラー級数と異なる。テイラー級数は、このシステムの出力がその特定の時間の入力に厳密に依存している場合、所与の入力に対して非線形系の応答を近似するために使用することができる（静的な非線形性）。ボルテラ級数では、非線形系の出力は、他のときのシステムへの入力に依存している。したがって、ボルテラ級数では、デバイスの「メモリ」の影響をキャプチャすることが可能になる。
【００６６】
一般的に、メモリを用いる因果線形系（ｃａｕｓａｌ  ｌｉｎｅａｒ  ｓｙｓｔｅｍ）は、以下のように表現することができる。
【数１】
0006037318.tif 000004
【００６７】
さらに、メモリを用いない静的かつ弱い非線形系は、多項式を使用してモデル化することができる。
【数２】
0006037318.tif 000005
【００６８】
ボルテラ級数は、以下の２つの組み合わせとして考えることができる。
【数３】
0006037318.tif 000006
【００６９】
個別の領域では、ボルテラ級数は、以下のように表現することができる。
【数４】
0006037318.tif 000007
【００７０】
ボルテラ級数の複雑性は、指数関数的に増大する場合があるため、ＤＰＤなど多くの一般的な用途において使用が非実用的になる。したがって、非線形系の多数の単純化されたモデルが提案されてきた。たとえば、メモリ多項式（ｍｅｍｏｒｙ  ｐｏｌｙｎｏｍｉａｌ）は一般的に使用されるモデルである。
【数５】
0006037318.tif 000008
【００７１】
一般化されたメモリ多項式モデル（Ｇｅｎｅｒａｌｉｚｅｄ  Ｍｅｍｏｒｙ  Ｐｏｌｙｎｏｍｉａｌ  Ｍｏｄｅｌ）と呼ばれる他の単純化されたモデルは、以下のように表すことができる（ここで、Ｍは、メモリの深さを示し、Ｋは多項式次数を示す）。
【数６】
0006037318.tif 000009
【００７２】
クロス乗積を用いる一般化されたメモリ多項式の等価の式は、以下のように表すことができる。
【数７】
0006037318.tif 000010
ここで
【数８】
0006037318.tif 000011
ここで、ｆ（ｘ）は、下に記述した、ユーザ定義の非線形の命令ｖｅｃ＿ｎｌを使用する、本発明の態様により加速されることが想定される１つまたは複数のユーザに指定されたパラメータを持つ非線形関数である。非線形の分解のためにｘｋ以外の他の基底関数が可能であることに注意されたい。
【００７３】
以下に記述するように、ユーザ定義の非線形の命令ｆｍ，ｌは、たとえば、ベクタ・プロセッサによって処理することができる。ｆｍ，ｌは、非線形関数のｍ×ｌ配列である。各非線形関数は、ルックアップ・テーブルまたは係数などユーザに指定されたパラメータを持つことができる。ルックアップ・テーブルは、ユーザ定義の非線形命令ｆｍ，ｌの多項式近似でもよい。図１５に関して下にさらに記述するように、ｍ×ｌ配列の各ユーザ定義の非線形の命令ｆｍ，ｌのルックアップ・テーブルは、メモリに格納し、命令がプロセッサによって処理されたときに、機能単位に関連するレジスタにロードすることができる。次に、入力サンプルは、ｍ×ｌ配列の個々の非線形の命令ｆｍ，ｌで評価することができる。
【００７４】
図１２は、等式（１）のユーザ定義の非線形の命令を使用して１６成分ベクトルのベクタ・プロセッサでソフトウェアにＤＰＤ機能を実装するための代表的な擬似コード１２００を示している。代表的な擬似コード１２００は、入力ｘの規模を計算するために第１の部分１２０４を含む。１２０６行目で、ｍ×ｌ配列の個々の非線形の命令ｆｍ，ｌのルックアップ・テーブルをレジスタにロードすることができる。その後、代表的な擬似コード１２００は、等式（１）を実装するために部分１２０８を含む（たとえば、サンプルを入力する、サンプルに対して二乗演算を実行する、非線形関数を計算する、結果を積和演算する）。
【００７５】
図１２Ａは、等式（１）を実装する代表的な機能ブロック図１２１０を示す図である。明細書に記述した代表的な実施形態では、｜ｘ｜ｋの代わりに｜ｘ｜２ｋを使用する。図１２Ａに示すように、代表的な回路１２１０は、二乗演算１２１２の出力を遅らせることによって、等式（１）のｘ（ｎ−ｍ）項を生成するために遅延要素１２１５−１から１２１５−５、および等式（２）の｜ｘ（ｎ−ｌ）｜２項を生成するために遅延要素１２１５−６から１２１５−９など、複数の遅延要素を含む。さらに、代表的な機能ブロック図１２１０は、適切な｜ｘ（ｎ−ｌ）｜２項を受信し等式（２）を実装する機能単位１２２０−１，１から１２２０−４，４の配列を含む。代表的な機能ブロック図１２１０は、また、適切なｘ（ｎ−ｍ）項を受信し、対応するｍ，ｌ機能単位１２２０の出力をそれにかける複数の乗算器（ｘ）を含む。各行の乗算の出力は、加算器（＋）１２３０によって加えられ、所与の行の各加算器１２３０の出力は、出力ｙ（ｎ）を生成するために対応する加算器１２４０によって合計される。
【００７６】
図１２Ｂは、数を減らされた乗算演算を用いる等式（１）を実装する代替の代表的な機能ブロック図１２５０を示す図１２５０である。図１２Ｂに示すように、代表的な回路１２５０は、二乗演算１２６０の出力を遅らせることによって、等式（１）のｘ（ｎ−ｍ）項を生成するために遅延要素１２５５−１から１２５５−５、および等式（２）の｜ｘ（ｎ−ｌ）｜２項を生成するために遅延要素１２５５−７から１２５５−９など、複数の遅延要素を含む。さらに、代表的な機能ブロック図１２５０は、適切な｜ｘ（ｎ−１）｜２項を受信する機能単位１２７０−１，１から１２７０−４，４の配列を含み、等式（２）を実装する。加算器１２８０は、非線形の利得（入力の規模の非線形関数の合計）を計算する。
【００７７】
代表的な機能ブロック図１２５０は、また、適切なｘ（ｎ−ｍ）項を受信し、対応するｍ，ｌ機能単位１２７０の列の合計された出力の出力をそれにかける複数の乗算器（ｘ）１２７５を含む。このようにして、加算器１２８０からの非線形の利得は、入力データに適用される（複素積和演算（ＣＭＡＣ）動作）。加算器（＋）１２８５によって加えられた乗算が出力され、出力ｙ（ｎ）が生成される。
【００７８】
図１３Ａは、ｘ（ｎ）に応じて個々のユーザ定義の非線形関数ｆｍ，ｌ１３００を示している。図１３Ｂは、図１３Ａの個々のユーザ定義の非線形関数ｆｍ，ｌの代表的な概算１３５０を示している。図１３Ｂの代表的な概算１３５０は、分割されたテイラー級数のルックアップ・テーブルを使用する。非線形関数ｆｍ，ｌ１３００は、ｊ個のセグメントへと分解される。各セグメントに関連するサンプル１３６０−１から１３６０−ｊは、ルックアップ・テーブルに格納される。サンプルが所与のｘに対してルックアップ・テーブルに格納されている場合、サンプルは、ルックアップ・テーブルから取得し、非線形関数の評価に直接的に用いることができる。望まれるｘがルックアップ・テーブルの２つの値の間にある場合、図１５に関連して下にさらに記述したように、直線補間またはより一般的にはテイラー級数がベースの補間は、結果を得るために機能単位内でハードウェアで実行される。このようにして、非線形のデジタル・プリディストーション動作は、入力信号１３５０の異なるセグメントにテイラー級数係数によって記述することができる。３２セグメントを持つ代表的な一実装では、ルックアップ・テーブルにおいて４つの立方多項式の概算係数を使用して表される係数について、１２８の複素エントリがある（１６ビット複素数および１６ビット実数）。１２８セグメント、およびセグメントごとに１つの係数を持つ他の変形形態において、直線補間に対して１２８の複素係数がある（１６ビット複素数および１６ビット実数）。
【００７９】
上記のように、望まれるｘ値がルックアップ・テーブルにないが、ルックアップ・テーブルの２つの値の間にある場合、直線補間は、結果を得るために機能単位内でハードウェアで実行される。テイラー級数計算は、以下のように、小さな立方多項式を評価するために立方体の補間として実行することができる。
ｆ（ε）＝α０＋α１・ε＋α２・ε２＋α３・ε３
ここで、係数αはルックアップ・テーブルから取得される。しかし、この式の複雑性は重要である（乗算および二乗演算を実行する多数の乗算器を用いる）。
【００８０】
複雑性は、以下のようにｆ（ε）を計算できるように、ホメロス・アルゴリズム（因数分解）を使用して減らすことができる。参照によって本明細書に組み込まれている、２００８年１１月２８日に出願された米国特許出願第１２／３２４，９３４号「Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ  Ｗｉｔｈ  Ｏｎｅ  Ｏｒ  Ｍｏｒｅ  Ｎｏｎ−Ｌｉｎｅａｒ  Ｆｕｎｃｔｉｏｎｓ  Ｕｓｉｎｇ  Ｆａｃｔｏｒｉｚｅｄ  Ｐｏｌｙｎｏｍｉａｌ  Ｉｎｔｅｒｐｏｌａｔｉｏｎ」も参照すること。
ｆ（ε）＝（（ｂ３・ε＋ｂ２）・ε＋ｂ１）・ε＋ｂ０（３）
等式（３）の複雑性は、たった３つの乗算および３つの加算の演算に減らされた。ｆ（ε）は、ルックアップ・テーブルに格納された値からのオフセットである。
【００８１】
図１４は、等式（３）を実装するテイラー合計（Ｔａｙｌｏｒ  Ｓｕｍ）計算ブロック１４００を示している。係数ｂ０、ｂ１、ｂ２、ｂ３は、ルックアップ・テーブル１４５０から取得される。３つの乗算（１４１０）演算および３つの加算（１４２０）演算のみを用いてテイラー合計計算ブロック１４００は、等式（３）を実装する。
【００８２】
図１５は、本発明の実施形態により１つまたは複数複素数のユーザ定義の非線形関数を同時に評価する、代表的なベクトルベースのデジタル・プロセッサ１５００の略ブロック図である。一般的に、図１５のベクトルベースの実装は、異なる演算を同時に実行する。したがって、ベクトルベースのデジタル・プロセッサ１５００は、ユーザ定義の非線形関数を評価するために複数の機能単位１５１０−１から１５１０−Ｎを含む。
【００８３】
一般的に、ベクトルベースのデジタル・プロセッサ１５００は、入力ｘのベクトルを処理し、出力ｙ（ｎ）のベクトルを生成する。以下のように実装される１６−ｗａｙのベクタ・プロセッサのｎｌ命令について、代表的なベクトルベースのデジタル・プロセッサ１５００が示されている。
ｖｅｃ＿ｎｌ（ｘ１，ｘ２・・・ｘ１６）、ｘ［ｋ］の範囲は０から１
【００８４】
このようにして、ベクトルベースのデジタル・プロセッサ１５００は、１６のそのような非線形演算を実行し、単一サイクルにそれらを直線的に組み合わせることができる。たとえば、ユーザ定義の非線形関数は、以下のように表すことができる。
【数９】
0006037318.tif 000012
【００８５】
より一般的な場合において、異なる関数ｆ０（）、ｆ１（）・・・ｆ１５（）は、ベクタ・プロセッサのベクトル・データの各コンポーネントに適用できることに注意されたい。
【００８６】
図１５に示すように、機能単位１５１０は、レジスタに格納するためにメモリから、ルックアップ・テーブルまたは係数などユーザ仕様を受信する。
【００８７】
ＤＰＤパラメータ推定１６０
上記のように、アナログ／デジタル変換器（ＡＤＣ）からのデジタル信号は、ＤＰＤパラメータ推定１６０のためにオンチップ・メモリ１７０に格納される。以下に説明するように、ＤＰＤパラメータ推定は、ｘ．｜ｙ｜ｋなど非線形の項を含む行列を計算することを含む。エンベロープ演算は、ベクタ・プロセッサを使用して加速できるタイプｘ＊ｃｏｎｊ（ｘ）およびベクトルｓｑｒｔ（）のベクトル演算を含む。行列の乗算は、ベクトルの乗算、加算、および縮小を使用することができる。畳み込み演算は、ベクトル畳み込み演算命令を使用して加速することができる。
【００８８】
図１６は、適応可能なプリディストーションに対する第１のシステム１６００の概略図である。一般的に、適応可能なプリディストーション１６１０は、電力増幅器１６２０の逆モデルを使用して達成される。プリディストーション段階１６１０は、図１のＤＰＤ１３０について上に記述した方法で実装することができる。第１に、逆増幅器モデルは、その入力を推定するために増幅器１６２０の出力を使用して、推定アルゴリズム１６５０によって識別される。適応可能なフィルタ１６４０は、遅延１６２５に続きプリディストーション段階１６１０の出力に等価であるべき信号
【数１０】
0006037318.tif 000013
を生成する。したがって、推定アルゴリズム１６５０は、加算器１６３０によって計算された誤差を最小限にすることを目的とする。
【００８９】
その後、推定アルゴリズム１６５０によって生成される逆モデルの係数ｗは、増幅器１６２０への入力を事前に歪めるために前置補償器１６１０にコピーされる。
【００９０】
図１７は、適応可能なプリディストーションのための標準形システム１７００の概略図である。一般的に、適応可能なプリディストーション１７１０は、電力増幅器１７２０の逆モデルを使用して達成される。プリディストーション段階１７１０は、図１のＤＰＤ１３０について上に記述した方法で実装することができる。第１に、逆増幅器モデルは、その入力を推定するために増幅器１７２０の出力を使用して、適応推定アルゴリズム１７５０によって識別される。遅延１７２５に続きプリディストーション段階１７１０の遅延した入力に信号ｙ（ｎ）は等価である。したがって、適応推定アルゴリズム１７５０は、加算器１７３５によって計算された誤差を最小限にすることを目的とする。
【００９１】
その後、推定アルゴリズム１７５０によって生成された逆モデルの係数ｗは、増幅器１７２０への入力を事前に歪めるために前置補償器１７１０に提供される。
【００９２】
ＤＦＥ出力は、ｚ（ｎ）として表すことができ、観察信号ＰＡフィードバック受信機入力は、ｙ（ｎ）として表すことができる。電力増幅器１６２０、１７２０の逆モデルが望まれる。ｒ、ｐ、およびｑのすべてに相関が必要である。
Ｃ（ｒ，ｐ，ｑ）＝Ｅ（｜ｙ（ｎ−ｐ）｜ｒｙ＊（ｎ−ｑ）・−ｚ（ｎ））
【数１１】
0006037318.tif 000014
ここで、
ｈｋ，ｍ，ｌは、電力増幅器１６２０、１７２０の逆モデルに対して望まれる係数である。
【数１２】
0006037318.tif 000015
【００９３】
したがって、以下も計算する必要がある。
Ｂ（ｋ，ｒ，ｌ，ｍ，ｐ，ｑ）＝Ｅ（｜ｙ（ｎ−ｐ）｜ｒ．｜ｙ（ｎ−ｌ）｜ｋｙ＊（ｎ−ｑ）．ｙ（ｎ−ｍ））
【００９４】
以下が得られる。
【数１３】
0006037318.tif 000016
【００９５】
インデックスを再順序付け／名称変更することによって、
【数１４】
0006037318.tif 000017
【００９６】
ｈは、マトリックス・インバージョンを使用して計算することができる（ＣＰＵで実行）。
ｈ＝Ｂ−１Ｃ
ｈは、ＤＰＤ係数に使用される。
【００９７】
数学的期待値の推定：
【数１５】
0006037318.tif 000018
【００９８】
ベクトル畳み込み演算
図１８は、本明細書に記述されたフィルタリング操作の多くで用いることができるベクトル畳み込み関数１８００を示している。一般的に、ベクトル畳み込み関数１８００は、Ｎビット複素数データ（Ｎ／２ビット実数およびＮ／２ビット虚数）および複素対蹠的データ（たとえば係数）の畳み込み演算を計算する。ベクトル畳み込み関数１８００は、典型的にはＮ１＋Ｎ２−１サンプルの入力ベクトルを受信し、（軸１８３０に沿った）入力ベクトル１８１０  Ｎ１および係数のＮ１サンプルの時間シフト版１８２０を処理し、時間シフト版ごとに（ゼロシフト版を含む各タイムラグ）ＦＩＲ出力値１８２５を生成する。出力ベクトル１８６０は、Ｎ２出力値で構成される。
【００９９】
図１８の代表的な実施形態では、入力ベクトル１８１０は、実数または複素数データのＮ１＋Ｎ２−１サンプル（たとえば３２ビット実数および３２ビット虚数）、および、そこで係数で畳み込まれるＮ１サンプル（１６ビット実数および１６ビット虚数）を持つＮ２時間シフト版１８２０（ゼロシフト版を含む）を含む。係数はそれぞれ２進値でもよい（たとえば、または２ビット、４ビットなど）。
【０１００】
開示されたベクトル畳み込み関数（ｖｅｃ＿ｃｏｎｖ（））は、ベクトル畳み込み関数１８００内のＦＩＲフィルタを加速し、ここで係数は、たとえば２進値（２ビット、４ビットなど）である。さらに、演算は、１８ビットなど、十分な数のビットを係数に使用して単一サイクルでさらに加速および実行することができる。一般的に、各時間シフトされた演算は、シフトされた入力値１８２０および係数のＦＩＲフィルタリングを含む。
【０１０１】
２ビット値を用いる代表的な畳み込み演算について、ＦＩＲフィルタ／畳み込み演算の操作は、以下のように書くことができる。
【数１６】
0006037318.tif 000019
ここで
ｈｊ，ｋ∈｛０，１｝およびｈ”ｊ，ｋ∈｛０，１｝
【数１７】
0006037318.tif 000020
ここで、ｈ（ｋ）は係数を示し、ｘ（ｎ−ｋ）は時間シフトされた入力値を示す。多重段階フィルタの場合には、係数ｈｋは、フィルタの各段階について変更することができる。
【０１０２】
インパルス応答ｈを持つフィルタによる入力信号ｘの畳み込み演算は、以下のように書くことができる。
【数１８】
0006037318.tif 000021
【０１０３】
入力信号ｘの入力信号ｙとの相関または相互相関は、以下のように書くことができる（ここで、信号ｘおよび／または信号ｙは、パイロット信号またはＣＤＭＡ２進数／バイポーダル（ｂｉｐｏｄａｌ）コードなど既知の参照信号でもよい）。
【数１９】
0006037318.tif 000022
【０１０４】
係数の１２ビット表現を用いる代表的な畳み込み演算について、ＦＩＲフィルタ出力を計算するために６回の反復がある（６×２ビット値）。
【０１０５】
ベクタ・プロセッサの畳み込み演算命令の詳細な記述については、たとえば、ここに同時に出願され参照によって本明細書に組み込まれている、国際特許出願ＰＣＴ／＿「Ｖｅｃｔｏｒ  Ｐｒｏｃｅｓｓｏｒ  Ｈａｖｉｎｇ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ  Ｗｉｔｈ  Ｖｅｃｔｏｒ  Ｃｏｎｖｏｌｕｔｉｏｎ  Ｆｕｎｃｔｉｏｎ  ｆｏｒ  ＦＩＲ  Ｆｉｌｔｅｒｉｎｇ」を参照すること。
【０１０６】
等化／ＩＱインバランス補正１４０
上記のように、等化／ＩＱインバランス補正１４０は、チャネル障害を緩和するために、ＩＱ補正を実行し、ＲＦチャネル等化を用いる。以下に記述するように、ＲＦチャネル等化および／またはＩ／Ｑインバランス補正は、ベクトル乗算、加算、および縮小、または、畳み込み演算命令を使用して実装することができる。同様に、ベクトル乗算／加算／縮小、または相関命令を使用して実装することができる。代表的な実施例では、ＲＦチャネル等化およびＩ／Ｑインバランス補正は、等化／ＩＱインバランス補正１４０で組み合わせられる。
【０１０７】
図１９は、図１のＩＱ／Ｅｑブロック１４０を実装するために使用できる代表的な等化／ＩＱインバランス補正（ＩＱＩＣ）段階１９００の略ブロック図である。図１９に示すように、組み合わせたＲＦイコライザおよびＩＱインバランス補正（ＩＱＩＣ）段階３００は、２つの並列ＦＩＲフィルタ１９００−１、１９００−２として以下のように実装することができる。
【数２０】
0006037318.tif 000023
【０１０８】
たとえば、各ＦＩＲフィルタ１９００は、３０７．２ＭＳＰＳのサンプリング・レートで３２のタップを持つＦＩＲフィルタとして実装することができる。２つの並列ＦＩＲフィルタ１９００−１、１９００−２は、複素入力および複素係数を持つことができる。図１９の代表的な実施形態では、入力信号ｘは第１のＦＩＲフィルタ１９００−１に適用され、入力信号ｘの共役ｘ＊は、第２のＦＩＲフィルタ１９００−２に適用される。したがって、ＩＱインバランス補正は、加算器１９１０によって組み合わせられた出力を用いて２つの複素フィルタ１９００として表すことができる。
【０１０９】
したがって、周波数依存のＩ／Ｑインバランス補正は、入力ｘおよびｘの共役を用いる２つのＦＩＲフィルタを使用して実行され、ここでｘは、Ｉ／Ｑインバランス補正処理への入力である。
【０１１０】
図１８に関連して上にさらに記述するように、組み合わせたＲＦイコライザおよびＩＱインバランス補正（ＩＱＩＣ）段階１９００は、ベクタ・プロセッサの畳み込み演算命令を使用して、ハードウェア、またはソフトウェアに実装することができる、
【０１１１】
チャネル・フィルタ／チャネル・デジタル・ダウン・コンバージョン（ＤＤＣ）ブロック１８０
たとえば、有限のインパルス応答（ＦＩＲ）フィルタおよび無線周波数（ＲＦ）をデジタル化されたベースバンド信号に変換するデジタル・ダウン・コンバージョンを使用して、受信経路のチャネル・フィルタリングを実行するために、チャネル・フィルタ／チャネル・デジタル・ダウン・コンバージョン（ＤＤＣ）ブロック１８０は、図１のチャネル・フィルタおよびデジタル・アップ・コンバージョン段階１１０と同様に実装することができる。
【０１１２】
組み込まれたアプリケーション
本明細書に記述した多数の非線形関数および他の関数の詳細な記述については、たとえば、それぞれ参照により本明細書に組み込まれている、２００８年１１月２８日に出願された米国特許出願第１２／３２４，９２６号「Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ  Ｈａｖｉｎｇ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ  ｗｉｔｈ  Ｏｎｅ  ｏｒ  Ｍｏｒｅ  Ｎｏｎ−Ｌｉｎｅａｒ  Ｃｏｍｐｌｅｘ  Ｆｕｎｃｔｉｏｎｓ」、２００８年１１月２８日に出願された米国特許出願第１２／３２４，９２７号「Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ  Ｈａｖｉｎｇ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ  Ｗｉｔｈ  Ｏｎｅ  Ｏｒ  Ｍｏｒｅ  Ｎｏｎ−Ｌｉｎｅａｒ  Ｆｕｎｃｔｉｏｎｓ  Ｕｓｉｎｇ  Ｒｅｄｕｃｅｄ  Ｌｏｏｋ−Ｕｐ  Ｔａｂｌｅ」、２００８年１１月２８日に出願された米国特許出願第１２／３２４，９３４号「Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ  Ｗｉｔｈ  Ｏｎｅ  Ｏｒ  Ｍｏｒｅ  Ｎｏｎ−Ｌｉｎｅａｒ  Ｆｕｎｃｔｉｏｎｓ  Ｕｓｉｎｇ  Ｆａｃｔｏｒｉｚｅｄ  Ｐｏｌｙｎｏｍｉａｌ  Ｉｎｔｅｒｐｏｌａｔｉｏｎ」、２００９年１月３０日に出願された米国特許出願第１２／３６２，８７４号「Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ  Ｈａｖｉｎｇ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ  Ｗｉｔｈ  Ａｎ  Ｘｋ  Ｆｕｎｃｔｉｏｎ  Ｕｓｉｎｇ  Ｒｅｄｕｃｅｄ  Ｌｏｏｋ−Ｕｐ  Ｔａｂｌｅ」、２０１０年８月３日に出願された米国特許出願第１２／８４９１４２号「Ｓｙｓｔｅｍ  ａｎｄ  Ｍｅｔｈｏｄ  ｆｏｒ  Ｐｒｏｖｉｄｉｎｇ  Ｍｅｍｏｒｙ  Ｂａｎｄｗｉｄｔｈ  Ｅｆｆｉｃｉｅｎｔ  Ｃｏｒｒｅｌａｔｉｏｎ  Ａｃｃｅｌｅｒａｔｉｏｎ」、および／またはＬｅｉ  Ｄｉｎｇら、「Ｃｏｍｐｅｎｓａｔｉｏｎ  ｏｆ  Ｆｒｅｑｕｅｎｃｙ−Ｄｅｐｅｎｄｅｎｔ  Ｇａｉｎ／Ｐｈａｓｅ  Ｉｍｂａｌａｎｃｅ  ｉｎ  Ｐｒｅｄｉｓｔｏｒｔｉｏｎ  Ｌｉｎｅａｒｉｚａｔｉｏｎ  Ｓｙｓｔｅｍｓ」、ＩＥＥＥ  Ｔｒａｎｓａｃｔｉｏｎｓ  ｏｎ  Ｃｉｒｃｕｉｔｓ  ａｎｄ  Ｓｙｓｔｅｍｓ、Ｖｏｌ．５５，Ｎｏ．１、３９０〜９７（２００８年２月）を参照すること。
【０１１３】
結論
本発明の代表的な実施形態について、デジタル論理ブロックおよびデジタル・プロセッサ内のメモリ・テーブルに関して記述してきたが、当業者には明白であろうように、ソフトウェア・プログラムの処理ステップとして、回路素子または状態機械によるハードウェアにおいて、またはソフトウェアとハードウェアの両方の組み合わせにおいて、デジタル領域に様々な機能を実装することができる。そのようなソフトウェアは、たとえば、デジタル信号プロセッサ、特定用途向け集積回路、またはマイクロコントローラに用いることができる。そのようなハードウェアおよびソフトウェアは、集積回路内に実装された回路内に統合することができる。
【０１１４】
したがって、本発明の機能は、それらの方法を実施する方法および装置の形で統合することができる。本発明の１つまたは複数の態様は、たとえば、記憶媒体に格納された、機械にロードし、かつ／または機械によって実行されるプログラム・コードの形で統合することができ、プログラム・コードがプロセッサなど機械にロードされ機械によって実行されると、機械は、本発明を実施するための装置になる。汎用プロセッサに実装された場合、特定の論理回路と同様に動作する装置を提供するために、プログラムコード・セグメントはプロセッサと組み合わせられる。本発明は、また、集積回路、デジタル・プロセッサ、マイクロプロセッサ、およびマイクロコントローラの１つまたは複数に実装することができる。
【０１１５】
本明細書に図示し記述した実施形態および変形形態は、単に本発明の原理を説明するためのものであり、当業者は、本発明の範囲および精神から逸脱することなく、様々な変更を実装することができることを理解されるだろう。
【図１】
0006037318.tif 000024
【図２】
0006037318.tif 000025
【図３】
0006037318.tif 000026
【図４Ａ】
0006037318.tif 000027
【図４Ｂ】
0006037318.tif 000028
【図５】
0006037318.tif 000029
【図６】
0006037318.tif 000030
【図７】
0006037318.tif 000031
【図８】
0006037318.tif 000032
【図９】
0006037318.tif 000033
【図１０】
0006037318.tif 000034
【図１１】
0006037318.tif 000035
【図１２】
0006037318.tif 000036
【図１２Ａ】
0006037318.tif 000037
【図１２Ｂ】
0006037318.tif 000038
【図１３Ａ】
0006037318.tif 000039
【図１３Ｂ】
0006037318.tif 000040
【図１４】
0006037318.tif 000041
【図１５】
0006037318.tif 000042
【図１６】
0006037318.tif 000043
【図１７】
0006037318.tif 000044
【図１８】
0006037318.tif 000045
【図１９】
0006037318.tif 000046