(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-06-04
(54)【発明の名称】通信信号を表す複数のダウンリンク信号の信号変調のためのシステム及び方法
(51)【国際特許分類】
H04L 27/00 20060101AFI20240528BHJP
H04B 7/08 20060101ALI20240528BHJP
【FI】
H04L27/00 C
H04B7/08 370
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023562734
(86)(22)【出願日】2021-05-24
(85)【翻訳文提出日】2023-10-12
(86)【国際出願番号】 US2021033905
(87)【国際公開番号】W WO2022250651
(87)【国際公開日】2022-12-01
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】519008175
【氏名又は名称】クラトス インテグラル ホールディングス,エルエルシー
(74)【代理人】
【識別番号】100114775
【氏名又は名称】高岡 亮一
(74)【代理人】
【識別番号】100121511
【氏名又は名称】小田 直
(74)【代理人】
【識別番号】100202751
【氏名又は名称】岩堀 明代
(74)【代理人】
【識別番号】100208580
【氏名又は名称】三好 玲奈
(74)【代理人】
【識別番号】100191086
【氏名又は名称】高橋 香元
(72)【発明者】
【氏名】ジャリエル,ジェフリー,デイビッド
(72)【発明者】
【氏名】サットン,ダニエル,ジョセフ
(72)【発明者】
【氏名】ストルテンバーグ,マシュー,ジェームズ
(72)【発明者】
【氏名】キング,ブランドン,グレゴリー
(57)【要約】
通信信号を表すダウンリンク信号を変調するためのシステム及び方法の実施形態が本明細書で提供される。例示的な方法は、入力信号を受信することと、1つ以上のプロセッサ内の1つ以上の第一処理ブロックでは、ダウンリンク信号の受信器のための変調スキームに基づいて、入力信号の第一データパケットに第一変調操作を実行することと、1つ以上の第一処理ブロックと並列して、1つ以上のプロセッサ内の1つ以上の第二処理ブロックでは、変調スキームに基づいて入力信号の第二データパケットに第二変調操作を実行することと、第一及び第二変調操作を実行することに基づいて、波形をダウンリンク信号として生成することとを含む。
【選択図】
図10
【特許請求の範囲】
【請求項1】
通信信号を表すダウンリンク信号を変調するための方法であって、
入力信号を受信することと、
1つ以上のプロセッサ内の1つ以上の第一処理ブロックでは、
前記ダウンリンク信号の受信器のための変調スキームに基づいて、前記入力信号の第一データパケットに第一変調操作を実行することと、
前記1つ以上の第一処理ブロックと並列して、前記1つ以上のプロセッサ内の1つ以上の第二処理ブロックでは、
前記変調スキームに基づいて、前記入力信号の第二データパケットに第二変調操作を実行することと、
前記第一変調操作及び前記第二変調操作を実行することに基づいて、波形を前記ダウンリンク信号として生成することと、
を含む、前記方法。
【請求項2】
前記1つ以上の第一処理ブロックは1つ以上の第一中央処理装置(CPU)コアを含み、前記1つ以上の第二処理ブロックは1つ以上の第二CPUコアを含む、請求項1に記載の方法。
【請求項3】
前記1つ以上のプロセッサは複数のプロセッサを含み、
前記1つ以上の第一処理ブロックは前記複数のプロセッサのうちの第一プロセッサに含まれ、前記1つ以上の第二処理ブロックは前記複数のプロセッサのうちの第二プロセッサに含まれる、請求項1または2に記載の方法。
【請求項4】
前記1つ以上のプロセッサは、前記1つ以上の第一処理ブロック及び前記1つ以上の第二処理ブロックを有する単一のプロセッサを含む、先行請求項のいずれか1項に記載の方法。
【請求項5】
前記1つ以上の第一処理ブロック及び前記1つ以上の第二処理ブロックは並列して動作する、先行請求項のいずれか1項に記載の方法。
【請求項6】
前記第一変調操作は1つ以上の第一機能を含み、
前記1つ以上の第一処理ブロックは複数の第一処理ブロックを含み、
前記1つ以上の第一機能のうちの少なくとも2つは、前記複数の第一処理ブロックの別個の処理ブロックによって並列して実行される、先行請求項のいずれか1項に記載の方法。
【請求項7】
前記1つ以上の第一機能は、
前記入力信号の前記第一データパケットを、前記変調スキームに基づいている所定のフォーマットに変換することと、
前記変調スキームに対応するコーディングを生成することと、
前記第一データパケットの第一シンボルデータを前記ダウンリンク信号の第一サンプルデータに変換することと、
前記第一サンプルデータのキャリアの中心周波数を変更することと、
前記変調スキームに基づいて前記第一サンプルデータの位相及び周波数を変更することと、のうちの少なくとも1つを含む、請求項6に記載の方法。
【請求項8】
前記第二変調操作は1つ以上の第二機能を含み、
前記1つ以上の第二処理ブロックは複数の第二処理ブロックを含み、
前記1つ以上の第二機能のうちの少なくとも2つは、前記複数の第二処理ブロックの別個の処理ブロックによって並列して実行される、請求項6に記載の方法。
【請求項9】
前記1つ以上の第二機能は、
前記入力信号の前記第二データパケットを、前記変調スキームに基づいている所定のフォーマットに変換することと、
前記変調スキームに対応するコーディングを生成することと、
前記第二データパケットの第二シンボルデータを前記ダウンリンク信号の第二サンプルデータに変換することと、
前記第二サンプルデータのキャリアの中心周波数を変更することと、
前記変調スキームに基づいて前記第二サンプルデータの位相及び周波数を変更することと、のうちの少なくとも1つを含む、請求項8に記載の方法。
【請求項10】
前記1つ以上のプロセッサ内の1つ以上の第三処理ブロックでは、
前記第一変調操作及び前記第二変調操作からの第一出力に第三変調操作を実行することと、
前記1つ以上の第三処理ブロックと並列して、前記1つ以上のプロセッサ内の1つ以上の第四処理ブロックでは、
前記第一変調操作及び前記第二変調操作からの第二出力に第四変調操作を実行することと、をさらに含み、
前記生成された波形は、前記第三変調操作及び前記第四変調操作を実行することに基づいている、先行請求項のいずれか1項に記載の方法。
【請求項11】
前記1つ以上のプロセッサは、1つ以上の汎用中央処理装置(CPU)である、先行請求項のいずれか1項に記載の方法。
【請求項12】
前記1つ以上のプロセッサは、高スループットを達成するために単一命令複数データ(SIMD)技術を採用する、先行請求項のいずれか1項に記載の方法。
【請求項13】
通信信号を表すダウンリンク信号を変調するためのシステムであって、
命令を格納するように構成された少なくとも1つのメモリ、及び
前記少なくとも1つのメモリに通信可能に結合された1つ以上のプロセッサであって、複数の処理ブロックを有し、先行請求項のいずれか1項に記載の前記方法を実行するための前記命令を実行するように動作可能である、前記1つ以上のプロセッサ、
を含む、前記システム。
【請求項14】
通信信号を表すダウンリンク信号を変調するための装置であって、
入力信号を受信するための手段と、
前記ダウンリンク信号の受信器のための変調スキームに基づいて、前記入力信号の第一データパケットに第一変調操作を実行するための手段と、
前記変調スキームに基づいて前記入力信号の第二データパケットに第二変調操作を実行するための1つ以上の手段であって、前記第一変調操作を実行するための前記1つ以上の手段と並列して操作される、前記第二変調操作を実行するための前記1つ以上の手段と、
前記第一変調操作及び前記第二変調操作を実行することに基づいて、波形を前記ダウンリンク信号として生成するための手段と、
を含む、前記装置。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は信号処理に関する。より具体的には、本開示は、汎用プロセッサを用いて分散コンピューティングを実装し、高速処理を実現することに関する。
【背景技術】
【0002】
関連技術の説明
いくつかの例では、衛星通信信号は、ローカルでデータを送信及び/または受信し、処理するために大規模な地上局及びその他の施設を必要とし得る。これには、関連する衛星からデータを受信し、受信したデータを処理して使用するための大規模なアンテナアレイ、関連する無線周波数端末(RFT)、及び重要な電子機器(モデム、シグナルプロセッサなど)が含まれ得る。
【発明の概要】
【0003】
本開示は、改良された通信システムを提供する。以下の概要は、本発明のすべての態様を定義することを意図するものではなく、本開示の他の特徴及び利点は、図面を含む以下の詳細な説明から明らかになるであろう。本開示は、統合文書として関連付けられることを意図しており、特徴の組み合わせが本開示の同じ文またはパラグラフまたはセクション内に一緒に見出されない場合でさえ、本明細書に記載される特徴の全ての組み合わせが想定されることを理解すべきである。さらに、本開示は、追加の態様として、本明細書で具体的に言及された変形よりも何らかの点で範囲が狭い本発明のすべての実施形態を含む。
【0004】
本明細書で開示されるように、デジタル信号処理(DSP)は、汎用プロセッサまたは中央処理装置(CPU)を使用して多くの異なる方法で実行されることができる。開示された機能を実行することができる高速処理を実現するために汎用プロセッサ上で実行される技術の例には、
複数のCPUを使用して各CPUの多数のコアで並列処理することと、
単一命令複数データ(SIMD)技術を採用することと、
フィードバックループを中断するためにフィードフォワード処理することと、
重い処理をいくつかのCPUに分割するためにメタデータ(またはステート情報)を事前計算することと、
CPUパフォーマンスを向上させる、またはメモリ帯域幅の使用率を低下させる方法で、複数の機能を単一機能にまとめることと、
が含まれるが、これらに限定されない。
【0005】
汎用CPUのスループットを向上させる1つの方法は、CPU上に存在するコアをできる限り多く利用することである。CPU内のいくつかのコア間でデータが適切に共有されることを確保するように細心の注意を払う必要があるが、これにより、より多くのCPUコアを追加することで処理スループットが向上することが可能になる。また、同じシステム上でいくつかのCPUを使用し、各CPUに複数のコアを含めることも可能である。本開示内のすべての実施形態は、CPU内で複数のコアを使用する利点を利用し、いくつかの実施形態は、システムごと、及び/またはサーバ環境内のシステム群ごとでも複数のCPUを有することを利用する。
【0006】
高い処理速度を達成するもう1つの方法は、汎用CPUの単一命令複数データ(SIMD)機能を利用することである。これにより、AVX512 SIMD演算の場合と同様に、シングルCPUコアが単一命令で最大16個の浮動小数点演算を実行することが可能になる。SIMDを採用する一例は、16個の浮動小数点結果を一度に計算する有限インパルス応答(FIR)フィルタ関数を使用することである。別の例は、複素数を掛け合わせる場合である。AVX512では、1対の直交信号(IQデータ)を計算する代わりに、8つのIQ対を一度に計算することが可能である。複素乗算は、本開示で説明されるほぼすべての処理アルゴリズムに使用される。
【0007】
一部の処理システムは、位相ロックループ(PLL)または遅延ロックループ(DLL)を含むことが多い、様々な形式のフィードバックを実装する。ただし、PLL及びDLLの場合と同様に、フィードバックは一般に、フィードバックの性質そのものがボトルネックを引き起こすため、問題になる可能性がある。フィードバックループは、すべての着信データを、簡単に分割すること、またはその他の方法で分けることができない単一(例えば、線形)プロセスで処理することを強制する。フィードバックに加えて、誤差項を計算する頻度を含む、PLL及びDLLを使用して克服すべき他の障害がある。フィードバックループはフィードフォワードループに置換されることができる。フィードフォワードループでは、データブロック上で誤差状態を処理し、その後、計算された誤差項は、この誤差項を適用する別のブロックにフィードフォワードされる。適切な重複を使用する場合、誤差の計算及びその項の適用をいくつかのCPUコアに分割して、スループットをさらに向上させることができる。この一例は、タイミング及び位相の訂正が1ブロックで計算され、タイミング調整が別のブロックに適用され、位相の訂正がさらに別のブロックに適用されるダイバーシティコンバイナにある。この方法を1セットとして、いくつかのCPUコアにわたり並列にして、スループットをさらに向上させることができる。
【0008】
データを処理するためのフィードフォワードアプローチに加えて、シングルブロックでメタデータの事前計算を実行した後、いくつかのCPUコアにわたりデータの処理を分けることも有益であることがある。この方法は、既に説明したフィードフォワード方法に似ているが、この場合、ループ(フィードバックループなど)を中断するものではなく、単純に多くのCPUコアを活用して、処理できるデータ量を増加させるものである。このように、事前計算を実行するブロックは、CPU集約的処理を実行せず、forループ内の反復と、開始指数と、補間位相値間の傾斜点などの必要なステップを計算する。このそのような例の1つは、ダイバーシティコンバイナで実行されるドップラー補償である。必要な位相調整は第一ブロックで作成されるが、位相調整を実行するためのCPU集約的計算は、下流の後続のブロックにハンドオフされる。処理の第二部分がCPU集約的部分である場合、これにより、任意の数のCPUコアを利用することが可能になるため、処理速度が高まり、本来であればシングルブロック内では達成できない処理速度になる。
【0009】
高スループットを達成するために汎用CPUで採用されることができるもう1つの技術は、機能セットの使用方法及び使用するメモリタイプである。場合によっては、メモリ帯域幅はパフォーマンスの制限要因になる。この場合、目的は、ランダムアクセスメモリ(RAM)(CPUキャッシュのようにより高速なメモリではない)との間で転送される必要があるデータの量を制限することである。これを行うには、より高速なCPUキャッシュへのアクセスと比較して、より低速なRAMへのアクセスを可能な限り少なくすることを目的として、機能を個別に実行する代わりに、すべて合わせて実行するように機能を折りたたむ必要がある。メモリ帯域幅を低減させるためのもう1つの方法は、例えば可能な場合はfloatまたはdoubleではなくint8を使用して、適切に離隔されたメモリタイプを利用することである。
【0010】
一実施形態では、通信信号を表す複数のダウンリンク信号を変調するための方法が本明細書で提供される。この方法は、入力信号を受信することと、1つ以上のプロセッサ内の1つ以上の第一処理ブロックでは、ダウンリンク信号の受信器のための変調スキームに基づいて、入力信号の第一データパケットに第一変調操作を実行することと、1つ以上の第一処理ブロックと並列して、1つ以上のプロセッサ内の1つ以上の第二処理ブロックでは、変調スキームに基づいて入力信号の第二データパケットに第二変調操作を実行することと、第一及び第二変調操作を実行することに基づいて、波形をダウンリンク信号として生成することとを含む。
【0011】
別の実施形態では、通信信号を表す複数のダウンリンク信号を変調するためのシステムが提供される。このシステムは、命令を格納するように構成された少なくとも1つのメモリと、少なくとも1つのメモリに通信可能に結合された1つ以上のプロセッサであって、複数の処理ブロックを有する、1つ以上のプロセッサとを含む。1つ以上のプロセッサは、上述の方法を実行するための命令を実行するように動作可能である。
【0012】
別の実施形態では、通信信号を表す複数のダウンリンク信号を変調するための装置が提供される。この装置は、入力信号を受信するための手段と、ダウンリンク信号の受信器のための変調スキームに基づいて、入力信号の第一データパケットに第一変調操作を実行するための1つ以上の手段と、変調スキームに基づいて、入力信号の第二データパケットに第二変調操作を実行するための1つ以上の手段であって、第一変調操作を実行するための1つ以上の手段と並列して操作される、第二変調操作を実行するための1つ以上の手段と、第一及び第二変調操作を実行することに基づいて、波形をダウンリンク信号として生成するための手段とを含む。
【0013】
本発明の詳細は、それらの構造及び動作の両方に関して、添付の図面を検討することによって部分的に収集することができ、図面において、同様の参照番号は同様の部品を指す。
【図面の簡単な説明】
【0014】
【
図1】本明細書に開示される実施形態による、通信システムの一例のグラフィカル表現である。
【
図2】
図1のシステムの1つ以上のコンポーネントとして使用するための有線または無線通信デバイスの機能ブロック図である。
【
図3】本明細書に開示される実施形態による、フィードフォワードまたは事前計算信号処理の一例のグラフィカル表現である。
【
図4】本明細書に開示される実施形態による、フィードフォワードまたは事前計算信号処理の別の例のグラフィカル表現である。
【
図5】本明細書に開示される実施形態による、デジタル信号ダイバーシティコンバイナの一例の機能ブロック図である。
【
図6】本明細書に開示される実施形態による、デジタル信号ダイバーシティコンバイナの別の例の機能ブロック図である。
【
図7】本明細書に開示される実施形態による、タイミング及びキャリアのリカバリ方法の一例の機能ブロック図である。
【
図8】本明細書に開示される実施形態による、タイミング及びキャリアのリカバリ方法の別の例の機能ブロック図である。
【
図9】本明細書に開示される実施形態による、チャネルシミュレータの一例の機能ブロック図である。
【
図10】本明細書に開示される実施形態による、信号変調器の一例の機能ブロック図である。
【発明を実施するための形態】
【0015】
高速処理を達成するために汎用プロセッサを使用する改良された通信システムの実施形態が開示される。本明細書に開示される実施形態は、汎用プロセッサを利用して高速信号処理を効率的に達成することができる改良された通信システムを提供する。この説明を読んだ後、当業者にとって、様々な代替的な実施形態及び代替的な適用において発明をどのように実施することができるかが明らかになるであろう。しかしながら、本発明の様々な実施形態が本明細書で説明されるが、これらの実施形態が、例及び例示としてのみ提示されており、限定ではないことが理解される。そのようにして、様々な実施形態のこの詳細な説明は、添付の特許請求の範囲に示されるように、本発明の範囲または広さを限定するものと解釈されるべきではない。
【0016】
本明細書全体を通した「一実施形態(one embodiment)」または「一実施形態(an embodiment)」への参照は、その実施形態と関係して記載される特定の機能、構造、または特性が、少なくとも1つの実施形態に含まれることを意味する。したがって、本明細書全体を通して種々の場所において出現する「一実施形態では」または「実施形態では」という語句は、必ずしもすべて同一の実施形態を参照しない。さらに、特定の特徴、構造、または特色は、1つ以上の実施形態における任意の好適な方法で組み合わせることができる。
【0017】
説明全体を通じて通信システムが主な例として使用されるが、開示された方法の適用はそれに限定されない。例えば、デジタル信号処理、モデムなどの使用を必要とする任意のワイヤレスまたは無線通信システムは、本明細書に記載のシステム、方法、及びコンピュータ可読媒体を実装することができる。
【0018】
本開示は、標準的なサーバ環境か仮想クラウド環境かいずれかで、汎用中央処理装置(CPU)を使用してデジタル信号処理を実行するためのシステム及び方法を提供する。いくつかの例では、システムは、SSE、SSE2、SSE3、SSE4.1、SSE4.2、AVX、AVX2及びAVX512の命令セットを含む、高スループットを達成するための単一命令複数データ(SIMD)技術を採用することができる。本開示は、フィールドプログラマブルゲートアレイ(FPGA)などの専用の信号処理ハードウェア、またはグラフィックスプロセッシングユニット(GPU)などのハイパフォーマンスコンピューティング(HPC)ハードウェアを使用せずに、必要なスループットを達成するために、プロセッサ(CPUなど)の複数の処理コアにわたりデータ処理がどのように管理されるかについて説明する。この処理を、Intel及びAMDマイクロプロセッサ製のx86アーキテクチャに加えて、Cortex-A76、NEON及びAWS Graviton及びGraviton2などのARMプロセッサを含むがこれらに限定されない汎用サーバCPUで実行できるため、これらの機能は、専用ハードウェアを必要とせず、仮想化処理アーキテクチャを使用して汎用クラウド処理環境内に展開されることが可能になる。汎用CPUでの処理は、アナログ信号をサンプリングし、デジタル化されたサンプルをイーサネット接続経由でCPUに供給するデジタルIFアプライアンスによって可能になる。デジタルIFアプライアンスは、2017年2月21日に発行された「Packetized Radio Frequency Transport System」と題された米国特許第9,577,936号に記載されているものと同様に、デジタル化されたサンプルを受け入れてアナログ信号に変換することもでき、その内容は参照によりそれらの全体が援用されている。
【0019】
図1は、通信システムの一実施形態のグラフィカル表現である。通信システム(システム)100は、複数の地上局と通信するプラットフォーム110及び衛星111を有することができる。プラットフォーム110は、航空機(例えば、飛行機、ヘリコプタ、または無人航空機(UAV)、ミサイル、ボートなど)であることができる。複数の地上局120、130、140は、地上高周波(RF)アンテナ122または1つ以上の衛星アンテナ132、142と関連付けられることができる。地上局120は、デジタイザ124に結合されたアンテナ122を有することができる。デジタイザ124は、アンテナ122で受信したアナログ信号をネットワークを介して送信するためのデジタルビットストリームに変換するための1つ以上のアナログ-デジタル(A2D)変換器を有することができる。デジタイザ124は、プラットフォーム110及び衛星111へのアップリンクでの操作のために、対応するデジタル-アナログ(D2A)変換器を含むこともできる。
【0020】
同様に、地上局130はアンテナ132及びデジタイザ134を有することができ、地上局140はアンテナ142及びデジタイザ144を有することができる。
【0021】
地上局120、130、140は、受信チェーンではそれぞれ、プラットフォーム110からのダウンリンク信号160(160a、160b、160cとラベル付け)と、衛星111からのダウンリンク信号170(170a、170b、170cとラベル付け)とを受信することができる。地上局120、130、140は、送信チェーンではそれぞれアンテナ122、132、142を介してアップリンク信号を送信することもできる。デジタイザ124、134、144は、受信したダウンリンク信号160、170を、送信するためにデジタルビットストリーム154としてデジタル化することができる。次いで、デジタルビットストリーム154は、ネットワーク152を介してクラウド処理システムに送信されることができる。
【0022】
いくつかの例では、地上局120、130、140は、すべてのデータ(例えば、ダウンリンク信号に含まれる)をローカルで処理することができるが、これは、時間、リソース、及び効率の観点から非常に高価になる可能性がある。したがって、いくつかの実施形態では、ダウンリンク信号は、デジタル化され、デジタルビットストリーム152としてリモート信号処理サーバ(SPS)150に送信されることができる。いくつかの実装では、SPS150は、ワイドエリアネットワーク(WAN)を介してアクセス可能なオフサイト施設に位置するデータセンターなどの物理的位置に位置決めされることができる。このようなWANは、例えばインターネットであることができる。SPS150は、デジタルビットストリーム152からダウンリンク信号を復調し、ダウンリンク信号からデータまたは情報ビットを出力することができる。いくつかの他の実装では、SPS150は、クラウドコンピューティングまたはクラウド処理を使用して、本明細書に記載される信号処理及び他の方法を実行することができる。SPS150はクラウドサーバとも呼ばれることができる。
【0023】
ついで、SPS150は、処理されたデータをユーザに提供すること、または別のサイトに送信することができる。データ及び情報は、ミッションに依存していることができる。さらに、データに含まれる情報は、気象データ、画像データ、及び衛星通信(SATCOM)ペイロードデータを含む、衛星の主な目的であることができる。上述のように、本明細書ではSATCOMが主な例として使用されているが、DSPを使用する任意の通信または信号処理システムは、本明細書で説明される方法を実装することができる。
【0024】
ソフトウェアで高い処理速度を達成するために、位相ロックループ(PLL)または遅延ロックループ(DLL)のアプローチは、ループ内のフィードバックが原因で問題のある可能性がある。フィードバックループは、すべての着信データ(例えば、ダウンリンク信号160及び/または170)が、容易に分割すること、またはその他の方法で分けることができない単一の(例えば、線形)プロセスで処理されることを強制する。フィードバックに加えて、誤差項を計算する頻度などを含む、PLL/DLLを使用して克服すべき他の障害がある。
【0025】
図2は、
図1のシステムの1つ以上のコンポーネントとして使用するための有線または無線通信デバイスの機能ブロック図である。処理デバイス(デバイス)200は、例えば
図1のSPS150として実装され得る。デバイス200は、本明細書に開示される信号処理方法またはステップのうちの1つ以上を実行するために必要に応じて実装されることができる。
【0026】
デバイス200は、デバイス200の動作を制御するプロセッサ202を含み得る。プロセッサ202は、CPUと呼ばれることもある。プロセッサ202は、例えば、SPS150に起因する機能を指示及び/または実行することができる。プロセッサ202を含むデバイス200の特定の態様は、クラウドベースの処理など、様々なクラウドベースの素子として実装されることができる。したがって、プロセッサ202は、ネットワーク(例えば、インターネット)を介していくつかの異なるプロセッサにわたって分散されたクラウド処理を表すことができる。あるいは、特定のコンポーネントをハードウェアに実装することもできる。プロセッサ202は、汎用マイクロプロセッサ、マイクロコントローラ、デジタルシグナルプロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、プログラマブルロジックデバイス(PLD)、コントローラ、ステートマシン、ゲートロジック、ディスクリートハードウェアコンポーネント、専用ハードウェア有限ステートマシン、または情報の計算もしくはその他の操作を実行することができるその他の任意の適切なエンティティのうちの1つ以上の任意の組み合わせによって実装され得る。
【0027】
プロセッサ202は、計算を実行することができる1つ以上のコア204(コア204aからコア204nとして図示)を有することができる。クラウド処理を使用する実装では、コア204は、分散クラウド処理の複数の反復を表すことができる。いくつかの実施形態では、プロセッサ202は、ハードウェアを使用して、受信器のためのすべての計算を行う、複雑な集積回路であることができる。本明細書で使用される場合、コア204はそれぞれプロセッサ202の1つの処理素子であることができる。プロセッサ202は、本明細書に開示される方法に必要な並列処理を実行するために複数のコア204を実装することができる。いくつかの実施形態では、プロセッサ202は、クラウドコンピューティングのように複数のCPUにわたって分散され得る。
【0028】
デバイス200は、プロセッサ202に操作可能に結合されたメモリ206をさらに含むことができる。メモリ206は、クラウドベースのストレージまたはローカルハードウェアストレージであることができる。メモリ206は、読み出し専用メモリ(ROM)及びランダムアクセスメモリ(RAM)の両方を含むことができ、プロセッサ202に命令及びデータを提供することができる。メモリ206の一部には、不揮発性ランダムアクセスメモリ(NVRAM)も含まれ得る。プロセッサ202は、通常、メモリ206内に格納されたプログラム命令に基づいて論理演算及び算術演算を実行する。メモリ206内の命令は、本明細書で説明される方法を実装するために実行可能であり得る。メモリ206は、リムーバブルメディアまたは複数の分散データベースをさらに含むことができる。
【0029】
メモリ206はまた、ソフトウェアを格納するための機械可読媒体を含んでもよい。ソフトウェアは、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語などと呼ばれるかどうかにかかわらず、あらゆるタイプの命令を意味するものとして広く解釈されるものとする。命令には、コード(例えば、ソースコードフォーマット、バイナリコードフォーマット、実行可能コードフォーマット、または他の任意の適切なコードフォーマットでのもの)が含まれてもよい。命令は、プロセッサ202または1つ以上のコア204によって実行されると、デバイス200(例えば、SPS150)に、本明細書で説明される様々な機能を実行させる。
【0030】
デバイス200はまた、通信デバイス200と遠隔位置との間のデータの送受信を可能にする送信器210及び受信器212を含んでもよい。このような通信は、例えばネットワーク152を介して地上局120とSPS150との間で行われることができる。これらのような通信は無線で行われること、または有線通信を介して行われることができる。送信器210及び受信器212は、トランシーバ214に組み合わされてもよい。トランシーバ214は、ネットワーク152に通信可能に結合されることができる。いくつかの例では、トランシーバ214は、ネットワークインタフェースカード(NIC)を含むこと、またはその一部であることができる。
【0031】
デバイス200は、ユーザインタフェース222をさらに含むことができる。ユーザインタフェース222は、キーパッド、マイクロフォン、スピーカ、及び/またはディスプレイを含み得る。ユーザインタフェース222は、デバイス200のユーザに情報を伝達する、及び/またはユーザから入力を受信する任意の素子またはコンポーネントを含むことができる。
【0032】
本明細書で説明されるデバイス200の様々なコンポーネントは合わせて、バスシステム226によって結合され得る。バスシステム226は、データバスだけでなく、例えば、データバスに加えて、電源バス、制御信号バス、及びステータス信号バスを含むことができる。いくつかの実施形態では、バスシステム226は、ネットワーク152に通信可能に結合されることができる。ネットワーク152は、例えば、デバイス200(例えば、プロセッサ202)と地上局120との間に通信リンクを提供することができる。当業者であれば、デバイス200のコンポーネントが、分散処理のためのローカルエリアネットワークまたはワイドエリアネットワークなどの何らかの他のメカニズムを使用して、合わせて結合されてもよく、または相互に入力を受け入れても、もしくは提供してもよいことが理解されよう。
【0033】
図3は、フィードフォワードまたは事前計算信号処理300の一実施形態の概略的なブロック図のグラフィカル描写である。方法300は、例えばプロセッサ202による、複数の機能を組み込んだ一般化されたプロセスとして行われることができる。プロセッサ202は、1つ以上の所望のプロセスを実行するために、示されているように、複数の機能を直列または並列配置で実行することができる。各機能は、プロセッサ202によって実行可能で、かつメモリ206に格納されている命令またはソフトウェアのブロックまたはコレクションを指し得る。
【0034】
第一機能302は、プロセッサ202によって実行されることができる。いくつかの実施形態では、第二機能304は、第一機能302に続いて直列で実行されることができる。したがって、プロセッサ202は、複数のコア204にわたって処理するために異なる機能を有するデータのブロックを分割して、第一機能302及び第二機能304を実行することができる。
【0035】
プロセッサ202は、第二機能304に続いて、第三機能306(306a、306b、...306nとして図示)の分散処理を並列して実行することができる。様々な数の機能306a~306nが並列して動作し得ることを示すために、3つのパスがそれらの間の垂直方向に3つのドットと共に描かれており、4、5、6などであるが、これらに限定されない任意の数のパスを含むことができることを示している。第三機能306の並列処理は、例えば、プロセッサ202のいくつかのコア204(例えば、処理ブロック)にわたり同じ機能に関連付けられたデータのブロックを分割することを含むことができる。例えば、「データのブロック」は、処理される必要があるサンプル群を意味するものであることができる。
【0036】
「並列」という用語は、本明細書では、処理がブロック306a~306nで同時に行われることを説明するために使用される。処理されるパケットは、1ブロック306a~306nから別のブロックまでの長さが異なるものである可能性があるため、パケットの処理は、1ブロック306a~306nからその次のブロックまで同じレートまたは速度を有することができる。以下に示されるように、ブロック306a~306nのうちのいくつかは、他のブロックよりも速く進んでもよく、または遅く進んでもよい。したがって、並列という用語は、ブロック306a~306n内での同時または並行処理に限定されるべきではない。
【0037】
次いで、プロセッサ202は、第四機能308及び第五機能309を直列で実行することができる。第一機能302及び第二機能304と同様に、第四機能308及び第五機能309の直列パフォーマンスは、複数のコア204にわたって処理するための異なる機能に関連付けられたデータのブロックを分割することを含むことができる。一般に、第一機能302、第二機能304、第三機能306、第四機能308、及び第五機能309のそれぞれは、異なる処理ブロックで実行されることができる。本明細書で使用される場合、処理ブロックは、データのブロックに実行される特定のタスクを指すことができる。処理ブロックは、例えば、1つ以上のコア204に関連付けられることができる。
【0038】
したがって、方法300は、例えば、複数のコア204にわたって処理するために、同じ機能を有するデータのブロックを分割することができる。同様に、方法300は、複数のコア204にわたって処理するために、異なる機能を有するデータのブロックを分割することができる。
【0039】
方法300の他のいくつかの実装では、同じ処理ブロック(例えば、コア204)は、同じ機能または異なる機能に関係なく、単一命令複数データ(SIMD)でデータの処理を実行することができる。
【0040】
他の実装では、方法300の実施形態は、重複するデータを使用することによって、最小限のステート情報を有するデータブロックの処理をサポートすることができる。本明細書で使用される場合、ステート情報は、フィードバック(例えば、フィードバック処理)中に必要な変数、データフレーム境界などを含むことができる。例えば、フィードバックループの場合、ステート情報は、連続したデータストリームを処理する際にフィードバック中に必要とされるループ内で計算される変数を含むことができる。ステート情報には、データストリーム内のフレーム境界の位置も含まれることができる。他の例には、連続したデータフローを維持するために必要なバッファに格納された値(例えば、場合によっては多くの遅延素子)をステート情報が含む、FIRフィルタなどのモノが含まれることができる。
【0041】
ステート情報、及び隣接するデータブロックの重複部分を無視することで、プロセスはデータブロック間の可変重複レベルを使用して、並列処理を利用することができる。
【0042】
図4は、
図3のフィードフォワードまたは事前計算信号処理のための方法の一実施形態のグラフィカル描写である。方法400は、プロセス315として群化された複数の機能への直列-並列及び/または並列-直列処理のために方法300の原理を使用することができる。一例では、第一機能302(
図3)は、プロセッサ202が処理のためのデータを受信する、データ取り込み機能305であることができる。第二機能304(
図3)は、プロセッサ202が重複するデータブロック内のデータをパースすることができる、データ分割機能310であることができる。次いで、重複したデータブロックは、処理ブロック315a~315nとして複数の機能の様々な並列反復では並列して処理されることができる。例えば、第一データブロックは、処理ブロック315a内の機能群によって処理されることができ、別のデータブロックは、処理ブロック315aと並列して実行された別の処理ブロック315b~315n内の機能群によって処理されることができる。複数の処理ブロック315a~315nは並列して実行されることができ、それらのような2つの処理ブロックに限定されない。データブロックでの重複により、ステート情報にあまり依存しない(またはまったく依存しない)レベルの冗長性を提供することができる。必要なステート情報が少ないほど、連続ストリームとは対照的にデータブロックを並列で処理することが容易になる。様々な数の処理ブロック315a~315nが並列して動作することができることを示すために、3つのパスがそれらの間の垂直方向に3つのドットを伴って描かれており、4、5、6などであるが、これらに限定されない任意の数のパスを含むことができることが示される。
【0043】
「並列」という用語は、本明細書では、処理が処理ブロック315a~315nで同時に行われることを説明するために使用される。処理されるパケットは、1つの処理ブロック315a~315nから別の処理ブロックまでの長さが異なるものである可能性があるため、パケットの処理は、1つの処理ブロック315a~315nからその次の処理ブロックまで同じレートまたは速度を有することができる。以下に示されるように、ブロック315a~315nのうちのいくつかは、他のブロックよりも速く進んでもよく、または遅く進んでもよい。したがって、並列という用語は、処理ブロック315a~315n内での同時または並行処理に限定されるべきではない。
【0044】
方法400は、第四機能308(
図3)と同様であり、処理されたデータを合成するデータ合成機能320、及び第五機能309(
図3)と同様のデータ出力機能325をさらに含むことができる。
【0045】
さらなる例では、方法300の様々な機能の調整可能な直列-並列または並列-直列配置は、フィードバックループを置き換えるためにフィードフォワード処理を実装するいくつかの方法を提供する。これは、スループットを向上させ、フィードバック処理中の遅延によって引き起こされるボトルネックを回避することができるため、有利である。
【0046】
方法300及び方法400によって提供される直列-並列または並列-直列処理の追加の利点は、処理ブロック(例えば、方法300の5つの処理ブロックのうちの1つ)内に1つ以上の所望のアルゴリズムを配置することにより、プロセッサ202が、処理ブロック(例えば、コア204)内の所与のアルゴリズムの速度を懸念せずに、処理負荷を(例えば、複数のコア204にわたって)分散させることが可能になることである。したがって、各コア204は全く同じ処理負荷を共有し、個々のアルゴリズムによって引き起こされるボトルネック問題をなくす。
【0047】
方法300の実施形態のさらなる利点は、プロセッサ202内の計算負荷を軽減するために専用のアルゴリズム(例えば、処理ブロック)の順序をカスタマイズすることを含むことができる。以下で説明されるように、所与のプロセスの全体的な多段階処理は、複数のサブプロセスの順序に依存しない場合がある。したがって、いくつかの例では、第四機能308を順序付けすることは、第三機能306の前に実行される場合、特定の利点を有する可能性がある。
【0048】
方法300はさらに、メモリ帯域幅の最適化のために異なる変数タイプ、例えばint8、int16、及びfloatなどを実装することができる。これにより、特定のアルゴリズム(タイプに基づいたアルゴリズムなど)を加速することができる。さらに、これにより、可撓性が改善し、メモリ帯域幅が最大になることができる。
【0049】
図5及び
図6は、デジタル信号ダイバーシティコンバイナの実施形態の機能ブロック図である。ダイバーシティ合成方法500及び/または600は、
図3及び
図4に関連して上述のようなフィードフォワードブロック処理を含むことができる。方法500及び/または方法600は、複数のブロックを含むことができる。いくつかの例では、各ブロックは機能ブロックを表し、機能ブロック306a、306b、...306n(
図3)などと同様の方法で機能を実行することができる。別の例では、
図5及び/または
図6の複数のブロックのうちの2つ以上は、処理ブロック315a、315b、...315n(
図4)などと同様の方法で機能を実行する単一の「プロセス」315として合わせて群化されることができる。
【0050】
図9は、チャネルシミュレータの一実施形態の機能ブロック図である。チャネルシミュレーション方法900は、
図3及び
図4に関連して上述のようなフィードフォワードブロック処理を含むことができる。方法900は複数のブロックを含む。いくつかの例では、各ブロックは機能ブロックを表し、機能ブロック306a、306b、...306n(
図3)などと同様の方法で機能を実行することができる。別の例では、
図9の複数のブロックのうちの2つ以上は、処理ブロック315a、315b、...315n(
図4)などと同様の方法で機能を実行する単一の「プロセス」315として合わせて群化されることができる。
【0051】
図10は、波形生成のための信号変調器の実施形態の機能ブロック図である。信号変調方法1000は、
図3及び
図4に関連して上述のようなフィードフォワードブロック処理を含む。方法1000は複数のブロックを含む。いくつかの例では、各ブロックは機能ブロックを表し、機能ブロック306a、306b、306n(
図3)などと同様の方法で機能を実行することができる。別の例では、
図10の複数のブロックのうちの2つ以上は、処理ブロック315a、315b、...315n(
図4)などと同様の方法で機能を実行する単一の「プロセス」315として合わせて群化されることができる。
【0052】
ブロック305では、SPS150は、デジタルビットストリーム152を(例えば、ネットワーク152を介して)取り込むこと、またはその他の方法で受信することができる。ブロック305でのデータ取り込みは、ネットワーク接続(例えば、イーサネット)からデジタルビットストリームデータを受信することができる。
【0053】
ブロック310では、データは、データスプリッタによって並列データストリームに分割されることができる。いくつかの実施形態では、プロセッサ202は、ブロック310で必要とされるデータ分割機能を実行することができる。いくつかの他の実施形態では、別個のデータ分割コンポーネント(例えば、データスプリッタ)をデバイス200(
図2)に含めることができる。データを複数の並列ストリームに分割することができると、ダウンリンク信号160、170などのダウンリンク信号の並列処理が可能になる。したがって、方法300は、フィードフォワードまたは事前計算処理を利用することができることにより、着信するデジタル化信号データをより小さい部分に分割してから、複数のコア204で処理することが可能になる。デジタルビットストリーム152を分割して、同相/直交(I/Q)対で重複するパケットを形成することができる。いくつかの実施形態では、「重複パケット」は、連続するパケットが隣接するデータパケットと重複するデータパケットを含むことができる。いくつかの実施形態では、データパケットはすべて同じ長さであってもよいが、重複していてもよい。データパケットでの重複は、データパケットの先頭または終端にあることができる。さらに、データパケットは、先行するデータパケット及び後続のデータパケットの両方と重複することができる。データパケットは、異なる長さを有することもできる(例えば、データ量が変動する)。したがって、処理ブロック315aに送信される第一パケットは、処理ブロック315bに送信される第二パケットの特定のデータに重複してもよく、またはその他の方法でそのデータを繰り返してもよい。
【0054】
パケット間の重複量、または重複サイズは必要に応じてプログラム可能であり、設定されることができる。一部の例では、重複をパケットサイズの1パーセント(1%)に設定することができる。この重複サイズは、必要に応じて増加する、または減少することができる。例えば、重複サイズに影響することができる特定のパラメータの1つは、デジタルビットストリーム152でのシンボルレートの不確実性である。ほとんどの信号では、最悪の場合の不確実性は1%未満であるため、1%の重複でほとんどの場合がカバーされる。いくつかの他の実施形態では、重複は、必要に応じて、2%、3%、4%、5%、6%、7%、8%、9%、もしくは10%もの高さ、またはその間の任意の箇所であることができる。1%未満の重複も同様に有することも可能である。データレートの不確実性が0.1%未満である場合、重複は0.1%以下である可能性がある。
【0055】
プロセッサ202は、デジタルビットストリーム152上で単一命令複数データ(SIMD)処理を実装することができる。一部の例では、SIMDには、単一のCPU命令でシングルCPUコアでの16個の浮動小数点演算を可能にする、512ビットを使用するアドバンスドベクトルエクステンション(AVX-512)を含むことができる。例えば、AVX-512は、CPU(例えば、CPU202)で膨大な量のデータを処理することができる。例えば、プロセッサ202(及びデバイス200)は、500MHZ帯域幅のデータストリームを受信することができる。500MHzの帯域幅は、10ギガビットイーサネットリンクの一般に受け入れられている実用的な制限であるため、いくつかの点で重要である。I/Q対に8ビットサンプルを用いて、パリティビットを含むデータを500MHzでサンプリングすると、10Gビットのイーサネットリンクが飽和する可能性がある。500MHzの例は本開示を限定するものではない。10Gビットのイーサネットリンクよりも大きいデータパイプが可能である。さらに、処理は、任意のデータ量に対応するために、n個の並列ブロック(例えば、ブロック315)に分割されることができる。
【0056】
プロセス315は、破線で示されており、方法300の処理ステップを示している。プロセス315には、複数の並列ステップまたは処理ブロック315a、315b、...315nで実行されるものが示されている。
【0057】
本明細書で使用されるプロセス315は、例えば、プロセッサ202によって実行される処理機能のコレクションを指すことができる。デジタルビットストリーム152を複数の並列処理ブロック315a、315b、...315nに分けて送信し、処理負荷をいくつかのコア204に分散させることができる。個々の処理ブロック315a、315b、...315nは、クラウド処理の個々の反復を表すことができる。したがって、処理ブロック315a~315nのそれぞれの処理は(クラウドベースの)コア204a~204nに関連付けられることができる。必要な処理ブロック315a~315nの数は、処理されるデータ量に基づいて変動する。いくつかの実施形態では、処理ブロック315a~315nの数は、ネットワーク152を介して、またはローカルハードウェア処理の場合はプロセッサ202内で、利用可能な論理コアの数によって制限されることができる。他のいくつかの実施形態では、メモリ帯域幅の制約は、信号処理中にボトルネックを引き起こす可能性がある。メモリ帯域幅は、データがプロセッサ(例えば、プロセッサ202)によって半導体メモリ(例えば、メモリ206)から読み出されること、またはその半導体メモリに格納されることができるレートを指すことができる。
【0058】
いくつかの実施形態では、処理ブロック315a~315nの数は変動することができる。一般に、存在する処理ブロック315a~315nが少ないほど、プロセス全体に必要なコアの数を制限することがより適切になる。これにより、より安価に運用する小規模な仮想プライベートクラウド(VPC)マシンにシステムを適合させることがさらに可能になる。VPCは、例えば、いくつかのCPUを有するSPS150を含むことができる。いくつかの実施形態では、8つの処理ブロック315a~315nを10Gビットのイーサネットリンクに使用することができる。このような実施形態は、前方誤り訂正処理ブロックを含まなくてもよい。他のいくつかの実施形態では、必要な処理ブロック315a~315nの数に対する唯一の実際的な制限は、通信リンクのビットレート及び帯域幅(例えば、パイプのサイズ)である。したがって、任意の数(n)の処理ブロック315a~315nが可能である。しかしながら、いくつかの実施形態では、CPUで実行されることができるスレッドの数、またはプロセッサ202内のコア204の数に基づいて、処理ブロック315a~315nの数(n)に対する実際的な制限が存在し得る。しかしながら、単一のCPU内で制限に達する場合、SPS150(例えば、VPC)内の複数のCPU(例えば、プロセッサ202)は共に、処理を実行するために無制限の数のクラウドベースのCPUまたはコア204を有することができる。さらに、プロセッサ202は、必要に応じて新しい処理ブロック315a~315nを作成することができる。処理コア204は、スループット及び効率のために必要に応じて、複数の分散プロセッサ(例えば、プロセッサ202)にわたって分散することができる。
【0059】
処理ブロック315a~315nは、どの処理ブロック315a、315b、...315nが最も遅く(または最も速く)実行されるかに関係ないような方法で配置される。方法300は、処理ブロック315a~315nにわたって処理負荷を共有することができるため、個々の処理ブロック315a~315nにおけるボトルネック問題によって引き起こされるあらゆる処理遅延を緩和することができる。例えば、処理ブロック315a~315n(以下の
図4の説明を参照)の個々のサブプロセスは、等しいレートで、実行されなくてもよく(例えば、いくつかは他のものより速い)、または行われてもよい。したがって、例えば、方法400(
図4)のより大きいプロセスは、パフォーマンスまたは処理時間での変動を考慮することができる。処理ブロック315は、着信データを処理するために必要な回数だけ作成されることができる。
【0060】
いくつかの実施形態では、各処理ブロック315a~315nは、プロセッサ202によって実行される信号処理アルゴリズムのコレクションを表すことができる。本明細書で使用される場合、アルゴリズムは、所望の機能を実行する機能または方法ステップの最小のコレクションを指すことができる。複数の例示的なアルゴリズムが本明細書で説明される。
【0061】
方法300の例示的な利点は、必要に応じてより多くの処理ブロック315a~315nを作成する能力である。一般に、処理ブロック315a~315nはソフトウェアで実装されることができ、したがって、所与のデータレートまたは処理負荷に適しているように必要に応じて作成または除去されることができる。各処理ブロック315a~315nは、異なる受信波形(例えば、ダウンリンク信号160及び/または170)及び関連するデジタルビットストリーム154のニーズに適合するように再配置されることができる。
【0062】
ブロック320では、複数の処理ブロック315からの処理された信号データを再合成し、ダウンリンク信号160、170上でエンコードされて変調された元のデータを形成することができる。いくつかの実施形態では、プロセッサ202はデータリコンバイナの機能を実行することができる。他の実施形態では、デバイス200は、それらのような機能を実行するための追加のコンポーネントを有することができる。各データパケットまたは処理されたデータブロックはタイムスタンプを有することができる。データリコンバイナ(recombiner)(例えば、プロセッサ202)は、タイムスタンプに基づいてデータブロックを順序付けし、順序付けされたブロック間の位相を比較することができる。リコンバイナは、隣接するブロックの位相をさらに調整して、データストリームを再順序付けすることができる。いくつかの実施形態では、後続のデータブロックの位相は、先行のデータブロックの位相にマッチングするように調整されることができる。
【0063】
プロセス315に示されるすべての処理ブロックには、実行するために少なくとも4つのオプションがある:
1)処理ブロック315内の各サブ素子(例えば、各ブロック315a~315n)が独自のコア(例えば、コア204a~204n)を取得している、複数のブロックの実行、
2)処理ブロック315がブロック全体に対して1つの専用コアのみを取得している、複数のブロックの実行、
3)処理ブロック内の各サブ素子が独自のコアを取得している、単一のブロックの実行、及び
4)処理ブロックがブロック全体に対して1つの専用コアのみを取得している、単一のブロックの実行。
【0064】
実行できるコアが増えるほど、達成できるレートが高くなる。
【0065】
ブロック325では、デバイス200は、データを適切な受信器に出力することができる。いくつかの例では、そのような受信器は、1つ以上のミッション運用センターであり得る。このデータは、ミッション依存(例えば、衛星の目的)であることができ、特に、気象データ、画像データ、及びSATCOMペイロードデータを含むことができる。
【0066】
汎用CPUでは、高レートパフォーマンスを制限する可能性のある主な要因には、1)データ取り込み、2)CPU容量、及び3)メモリ帯域幅の使用率という少なくとも3つがある。データ取り込みとは、どの程度の速さでデータをCPUに供給することができるのかを指す。CPU容量は、CPUのクロック速度及びCPU内のコア数によって決まる。メモリ帯域幅は、どの程度迅速にCPUと外部DDR RAM(CPUキャッシュではない)との間でデータを転送することができるかを指す。メモリ帯域幅は、メモリレーンの数及びDDR RAMのクロック速度によって決定されてもよい。特定の場合においては、高レート処理を達成するための制限要因は、CPU容量であるが、他の場合にはメモリ帯域幅である。上記のどの場合がパフォーマンスに影響しているか、またメモリ帯域幅が制限されているかどうかを判断するために注意する必要があり、以下に説明される実施形態は、提案された特許アプローチ内でメモリ帯域幅の使用率を低下させる方法の非限定的な例である。
【0067】
所与の処理ブロック内の関数呼び出しは、CPUの計算またはメモリ帯域幅の使用率を最適化するような方法で配置されることができる。例えば、
図5に示される関数呼び出し(ブロックとして例示されている)を参照すると、所与の例では、様々な関数呼び出し(例えば、タイミングリカバリブロック、キャリアリカバリブロック、相関器ブロック、時間調整ブロック、位相回転ブロック、電力及びEs/No推定器ブロック、振幅調整ブロック、ならびに重み付きコンバイナブロック)は、メモリ帯域幅を最小にするような方法で群化されることができる。これらの関数呼び出しを独立して呼び出すことができるため、各関数を、別の関数を開始する前に、データセット上で完了することにより、各関数が単純化される。別の例では、複数またはすべての関数呼び出しを1ブロックに合成することができるため、各関数の実行後、データをRAMに転送せず、合成した関数のメモリ帯域幅をはるかに小さくしてから独立して呼び出す。関数が独立して呼び出される場合、第一関数呼び出し(例えば、タイミングリカバリ)は、第二関数呼び出し(例えば、相関器)が発生する前にデータセット全体にわたって実行される可能性がある。合成の場合、第二関数呼び出しが実行される前に、第一関数呼び出し中にデータの一部のみが処理される。このようにして、メモリ帯域幅が低減する。この方法は、
図5に示される関数だけでなく、関数の任意の群化に適用することができる。例えば、この方法は、
図6に示される方法に適用されてもよく、または本明細書で開示されるブロック(例えば、
図7~10に示される様々な関数呼び出しブロック)内で実行される関数呼び出しの他の任意の群化に適用されてもよい。
【0068】
メモリ帯域幅の使用率を向上させる別の方法は、上記のアプローチと同様に、いくつかの関数呼び出しブロックを1ブロックに折りたたむことである場合がある。例えば、
図5を参照して以下でより詳細に説明されるように、タイミング及びキャリアリカバリを実行するには複数の関数が必要な場合がある。通常、操作を容易にし、CPUを最適化するために、各関数には独自のブロックが必要であるが、メモリ帯域幅の使用率を下げるために、すべての関数を1つの処理ブロックに合成することができる。このトレードオフにより、CPUのヒットのパフォーマンスに対するメモリ帯域幅の使用率が低下する。
【0069】
複数のコアで並列処理を採用して汎用CPU上で実行してクラウド環境での高スループット動作を達成するデジタル信号検出後のダイバーシティコンバイナ:
上述のように、
図5及び
図6は、方法500及び600の例示的な実装の機能ブロック図である。様々な例では、方法500及び600のそれぞれは、ダイバーシティコンバイナ方法の一例であり得る。様々な数の信号を並列に処理することができることを示すために、2つのパスは、それらの間の垂直方向に3つのドットと共に描かれており、4つ、8つなど、任意の数のパスが使用されることができることを示している。ダイバーシティ合成を使用して、すべての信号が時間及び位相でアライメントされ、信号品質に基づいて重み付けされるように複数のアンテナフィードを合わせて合成することで、合成された情報を複数の入力信号AからNに転送することが最適化されてもよい。信号品質は、例えば限定ではないが、信号対ノイズ比、シンボルあたりのエネルギー対ノイズ電力スペクトル密度比(Es/No)、電力推定値、受信信号強度インジケータ(RSSI)などのうちの1つ以上を使用して、決定されてもよい。複数のアンテナフィードは、プラットフォーム110または衛星111など、1つ以上の遠隔位置からのものであることができる。本明細書では一例として衛星が使用されているが、ラジオアンテナ(例えば、アンテナ122)または他のタイプの伝送器などの他の無線伝送システムが実装されてもよい。したがって、衛星の使用は本開示を限定するものではない。
【0070】
図1に示されるような衛星の場合、プラットフォーム110及び衛星111が同じ地上局(例えば、地上局122)から見えるが、例えば、衛星111が(例えば、東では)地平線より下に入っており、プラットフォーム110が(例えば、西では)地平線より上に昇っている場合でも、アンテナハンドオーバイベント中にダイバーシティ合成を使用することができる。ダウンリンク信号を適切に合成するためには、いくつかの計算を実行する必要がある。開示されたシステムは、信号をデジタル化してデジタルサンプルに変換することができると、信号処理素子にトランスポートする。システムは、さらにドップラー効果を計算して補償することができる。このシステムはまた、ダウンリンク信号間の残留位相及び周波数デルタ(例えば、差)だけでなく、各信号の時間差及び推定される信号対ノイズ比を決定することもできる。これらの操作に続いて、信号は合わせて合成される。
【0071】
信号を合成するために使用されることができるアプローチは数多くある。例えば、信号は、検出前(Pre-D)ダイバーシティコンバイナ及び/または検出後(Post-D)ダイバーシティコンバイナを使用して合成され得る。Pre-Dダイバーシティコンバイナは、マッチフィルタ(例えば、検出器とも呼ばれる)を実行する前に信号を合成するように構成され得る。Pre-Dダイバーシティコンバイナの例示的な実装は、PCT/US2020/65351に記載されており、その開示は、参照によりその内容全体が本明細書に援用されている。Post-Dダイバーシティコンバイナは、マッチフィルタ関数の完了後に信号を合成するように構成されてもよい。したがって、Post-Dダイバーシティコンバイナは、信号及びデータパケットがディスクリートデジタルサンプルであるため、Pre-D方法に勝るダイバーシティ合成を実行するための単純化された方法を提示する可能性がある。したがって、関数及び複雑さは、Pre-Dダイバーシティコンバイナと比較して軽減する可能性がある。例えば、Post-Dは、マッチフィルタの後に実行され、合成がシンボル空間で行われるため、より単純になる可能性がある。つまり、時間調整はシンボルステップ全体の1つのみで行われることができ、サブサンプル調整は不要であり、これはPre-Dには該当しない。
【0072】
Post-Dダイバーシティコンバイナの実装には、Post-D End(本明細書ではPost-DEと称し、その例示的な例を
図5に示す)及びPost-D Mid(本明細書ではPost-DMと称し、その例示的な例を
図6に示す)が含まれることができる。本明細書で使用される場合、Post-DEは、マッチフィルタが実行された後、例えばキャリア及びタイミングリカバリを含む全復調を実行した後、信号が合成されるコンバイナを指し得る。つまり、Post-DE方法での合成は、タイミングリカバリ及びキャリアリカバリの両方がロックされた後に行われる。本明細書で使用される場合、「ロックされた」という用語は、適切なタイミング及び/またはキャリアアライメントがそれぞれタイミングリカバリ及び/またはキャリアリカバリを介して達成される、信号の誤りのない復調を指す。本明細書で使用される場合、Post-DMは、全復調プロセスの部分的な実行後、例えば、復調処理チェーン及びマッチフィルタのタイミングリカバリの後であるが、復調処理チェーンのキャリアリカバリの前に、入力信号が合成されるコンバイナを指し得る。したがって、Post-DM方法では、タイミングリカバリがロックされた後であるが、キャリアリカバリの前に合成することが可能になる。Post-DMの非限定的な利点の例は、キャリアリカバリが実行される前に、合成された信号がより高いEs/No及び/または信号対ノイズ比(SNR)を達成することができることである。キャリアリカバリはタイミングリカバリよりも高いEs/Noで失敗する可能性があるため、Post-DM方法によりシステム全体のEs/No感度が改善する可能性がある。ただし、Post-DM方法では、実行中の複雑さのコストが増加することが含まれる可能性がある。一方、Post-DE方法はセットアップ及び実行が簡単であり得るが、合成前にキャリアリカバリをロックする必要がある場合があり、これが通常、受信器の感度の制限要因となる。これにより、ダイバーシティコンバイナが動作することができるEs/No及び/またはSNRに関する低さが制限され、DVB-S2などの一部の波形規格で使用されているような電力前方誤り訂正(FEC)のその有用性が制限される可能性がある。
【0073】
本明細書で開示されるPost-DM及びPost-DE方法は、Post-Dダイバーシティコンバイナ方法の2つの可能な高レベルの例を示す。本明細書の実施形態がこれら2つの方法のみに限定されないことが理解されよう。他の方法も可能である。
【0074】
図5は、方法500としての例示的なPost-DEダイバーシティコンバイナを示す。
図5に示されるように、方法500は、複数のアンテナフィードから入力サンプルを受信して(例えば、ダウンリンク信号160及び/または170をアンテナで受信してサンプリングし、方法500に供給し)、入力を合わせて合成し、信号が時間及び位相でアライメントされ、信号品質に基づいて重み付けされるように合成された信号を出力することにより、複数の信号で合成された情報転送が最適化される。方法500は、例えば、
図1のSPS150として実装されるプロセッサ(例えば、
図2のプロセッサ202)によって実行され得る。
【0075】
方法500は、複数の機能ブロック、例えば、複数のタイミングリカバリブロック510a~510n(タイミングリカバリブロック(複数可)510またはブロック(複数可)510と総称される)、複数のキャリアリカバリブロック520a~520n(キャリアリカバリブロック(複数可)520またはブロック(複数可)520と総称される)、1つ以上の相関器ブロック(複数可)530、複数の時間調整ブロック540a~540n(時間調整ブロック(複数可)540またはブロック(複数可)540と総称される)、複数の位相回転ブロック550a~550n(位相回転ブロック(複数可)550またはブロック(複数可)550と総称される)、複数の振幅調整ブロック560a~560n(振幅調整ブロック(複数可)560またはブロック(複数可)560と総称される)、複数の電力及びEs/No推定器ブロック565a~540n(電力及びEs/No推定器ブロック(複数可)565またはブロック(複数可)565と総称される)及び1つ以上のコンバイナブロック(複数可)570を含む。図示の例では、複数のブロック510a~510n、ブロック520a~520n、ブロック540a~540n、ブロック550a~550n、ブロック560a~560n、及び565a~565nは、複数のアンテナフィードを介して受信した複数のダウンリンク信号のサンプルに対して機能を実行するために示されており、各ブロックは対応する信号に実行される。任意の数の信号が可能であるが、本明細書での例は、2つの信号(例えば、サンプルA及びサンプルN)を参照して説明される。
【0076】
図5の例示的な例では、所与のタイミングリカバリブロック510及び対応するキャリアリカバリブロック520は、それぞれの入力信号用のマッチフィルタを含む、全復調プロセスの一部であってもよい。例えば、ブロック510a及び520aは、信号Aの全復調プロセスの一部であってもよく、ブロック510n及び520nは、信号Nの全復調プロセスの一部であってもよい。それぞれのブロック510及びブロック520は、それぞれの入力信号を復調するように構成され得、本明細書では復調器処理チェーンと称される場合がある。したがって、
図5に示されるPost-DE方法は(例えば、復調器チェーンの実行に続いて)復調器チェーンの終端で入力信号を合成するように構成される。したがって、コンバイナロジックは全復調後であるが、前方誤り訂正の前にある。
【0077】
上述のように、方法500の複数のブロックは、それぞれ機能を表すことができ、機能306a、306b、...306n(
図3)のうちの1つ以上として実装されてもよい。例えば、
図5の例示的な実装に示されるように、相関器ブロック530は、
図3の機能306として実装されてもよく、キャリアリカバリブロック520a~520nからのそのようなデータをデータブロックに分割して、並列機能306a~306nで処理することができる。同様に、
図5に示されるように、コンバイナブロック570は、機能306として実装されてよく、複数のデータブロックを並列して処理するための複数の機能306a~306nとして実行されてよい。ブロックの特定の例は機能306として実装されるように示されているが、これらの例は限定されることを意図したものではなく、方法500の任意のブロックは機能306として実装されてもよい。
【0078】
別の例では、単独でまたは組み合わせて、
図5に示されている複数のブロックは、
図4のプロセス315と同様の方法で機能を実行する単一の「処理」515として、合わせて群化されることができる。すなわち、
図5の複数のブロックは、プロセス515として合わせて群化されてよく、処理ブロック315a、315b、...315n(
図4)として、複数の並列反復で実行されてよい。例えば、方法500の異なる部分は、処理515として合わせて群化され、
図4に関連して上述のように、直列-並列及び/または並列-直列処理で実行されることができる。
図5に示される例示的な例では、信号Nの処理パスに沿ってマッチフィルタを実行するためのタイミングリカバリブロック510n及びキャリアリカバリブロック520nは、処理515として群化される。この場合、
図4を参照すると、入力サンプルは、ブロック305で取り込まれ、ブロック310で重複するサンプルブロックに分割されることができると、重複するデータブロックのそれぞれは、処理ブロック315a~315nとしてタイミングリカバリブロック510n及びキャリアリカバリブロック520nの複数の並列反復で処理され得る。次に、処理された重複するデータブロックは、処理されたデータを合成するためにデータ合成320に出力され、その後、方法500の後続のブロックによる処理のためにブロック325によって出力される。
図4のデータ合成ブロック320は、コンバイナブロック570と混同してはならない。ブロック320は、処理ブロック315a~315nの並列を合成するが、コンバイナブロック570は、後述のように、ダイバーシティ合成を実行する。同様に、
図5に例示的に示されるように、時間調整ブロック540n、位相回転ブロック550n、及び電力とEs/No推定器ブロック565、ならびに振幅調整ブロック560nが処理ブロック315として群化されて示されている。
【0079】
ブロックの特定の例がプロセス515として合わせて群化されて示されているが、これらの例は限定されることを意図したものではなく、方法500の1つ以上のブロックの任意の群化は、処理515として合わせて群化されてもよく、
図4に関連して説明されたように並列して実行されてもよい。例えば、時間調整ブロック540n、位相回転ブロック550n、及び振幅調整ブロック560nのうちの1つ以上は処理ブロック315として実行され得る。
【0080】
さらに、信号N入力からの入力に対応するパスの部分のみが
図5では合わせて群化されているように示されているが、信号Aパスの様々なブロックもプロセス515として合わせて群化され、並列して実行されることができることが理解されよう。例えば、ブロック510a及び520bを第一プロセス515として群化し、ブロック540a~565nを第二プロセス515として合わせて群化することができる。上述のように、他の群化も可能である。
【0081】
様々な例では、
図5の複数のブロックは、本開示全体を通じて説明されるように、SIMD処理技術を使用して実装され得る。SIMD技術により、スループットが向上し、メモリ帯域幅要件が最小になることが示され得る。SIMD技術を使用して実行される各処理ブロックの機能を増やすことは、メモリ帯域幅要件の最小化が増加するのに有用である可能性がある。
【0082】
ブロック510及び520では、プロセッサ202(例えば、1つ以上のコア204)は、それぞれのアンテナフィードからダウンリンクからのそれぞれの入力サンプルにタイミング及びキャリアリカバリを実行することができる。タイミング及びキャリアリカバリ方法の一例を
図7及び
図8に例示的に示す。
【0083】
図7は、
図3及び/または
図4の信号処理方法によって実施されるタイミング及びキャリアリカバリ方法の一例のフローチャートである。
図7は、複数のブロックを含む方法700を示しており、それらのうちの1つまたは複数は、
図4の処理ブロック315a~315nのそれぞれでブロックの群化を処理するように、プロセス315として実施されてもよい。方法700の各ブロックがそれぞれ機能306として実装され得ることによって、
図3の機能306a~306nにわたって単一のブロックを実行することができる。
図3によるブロックの実行は、別個に実行されてもよく、または
図4によるプロセスの実行と組み合わせて実行されてもよい。
【0084】
方法700は、以下に説明されるオフセット波形とは対照的に、標準波形処理に使用されることができる。例えば、ビットをシンボルにマッピングし、それらのシンボルを搬送波に変調する、標準波形処理を波形に使用することができる。標準波形の例には、2値位相シフトキーイング(BPSK)、4値位相シフトキーイング(QPSK)、8PSK、16APSK、32APSK及び64APSKだけでなく、直交振幅変調(QAM)波形が含まれる。方法700は、
図5の例示的なタイミングリカバリ処理ブロック510及び例示的なキャリアリカバリブロック520であり得る。
【0085】
ブロック705では、プロセッサ202(例えば、1つ以上のコア204)は、受信したデータパケット(例えば、デジタル化されたビットストリーム154またはデジタル化されたダウンリンク信号160及び/または170のサンプル)にタイミングリカバリ誤り計算を実行することができる。タイミングリカバリ誤り計算は、マッチトフィルタを着信データストリーム(例えば、デジタル化ビットストリーム134)に適切にアライメントするために必要な位相情報を提供することができる。マッチフィルタは、時間領域内に送信した波形をマッチングさせるために使用され、受信した信号内のすべてのエネルギーを捕捉するためにタイミング誤りによってアライメントされることにより、パフォーマンスが最適化される。タイミングリカバリ誤りの計算結果には、3つのパラメータ、1)開始位相(度)、2)周波数調整(ヘルツ(Hz))、及び3)ドップラーレート調整(Hz/秒)が含まれることができる。前述のユニットは例示的なものであり、本開示を限定するものではない。他の同等の単位も可能である。
【0086】
ブロック710では、プロセッサ202(例えば、コア204の1つ)は、パケットにタイミングリカバリを実行して、内部で生成されたマッチフィルタを、変調器のそれぞれのマッチフィルタによって生成された受信サンプルにアライメントさせることができる。アライメントはブロック705の計算に基づいている。ブロック710の出力は、ブロック705で受信したデータパケット内の同期された(例えば、時間訂正された)シンボルである。
【0087】
タイミングリカバリ誤り計算ブロック705及びタイミングリカバリブロック710の例は、米国特許第10,790,920号に記載されており、その開示は、参照により完全に記載されているかのように本明細書に援用されている。例えば、当技術分野で知られているように、推定されたGardnerタイミング誤り検出器を着信データに適用して、タイミング情報を作成することができる。別の実施形態では、着信サンプルストリームを1サンプルだけ遅延させることができる。次に、非遅延データに遅延データの共役を乗算すること(共役乗算)ができる。どちらにも利点及び欠点があるため、どちらを実装するかはトレードオフの関係になる。Gardnerタイミング誤り検出器によって生成されるタイミングスパイクは、タイミング推定値またはシンボルレートの推定値と混合されることができる。混合した信号は、サンプリングレートを下げるためにデシメートされる場合がある。デシメートされたサンプルに位相アンラップ計算を実行してもよい。また、曲線適合計算を実行して、タイミング推定値を更新するために適用されることができる位相、周波数、及びドップラーレートオフセット情報を決定することができる。
【0088】
ブロック715では、プロセッサ202(例えば、コア204のうちの1つ)は、パケットにキャリアリカバリ誤り計算を実行して、位相及び周波数情報を決定することができる。
【0089】
ブロック720では、プロセッサ202(例えば、コア204のうちの1つ)は、ブロック715の計算に基づいてパケットにキャリアリカバリを実行することができる。キャリアリカバリは、宇宙機(例えば、衛星110)からのダウンリンク信号(例えば、ダウンリンク信号160及び/または170)における未知の周波数、ドップラーレート、及び位相オフセットを補償する。不確実性の最も一般的な2つの原因は、宇宙機の運動からのドップラー効果、及び宇宙機内の不完全な発振器からのドップラー効果である。プロセッサ202は、ブロック715からの位相、周波数、及びドップラーレート訂正を適用して、ブロック720の出力におけるダウンリンク信号(例えば、ダウンリンク信号160及び/または170)内の変調データに対応する同期シンボルを形成することができる。
【0090】
キャリアリカバリ誤り計算ブロック715及びキャリアリカバリブロック720の例は、米国特許第10,790,920号にも記載されており、その開示は、参照により完全に記載されているかのように本明細書に援用されている。例えば、着信信号は、変調タイプに基づいて特定の電力まで上げることができる。混合信号をデシメートしてサンプリングレートを下げることができる。デシメートされたサンプルに位相アンラップ計算を実行することができる。曲線適合計算を実行して、キャリアリカバリアルゴリズムを更新するために適用されることができる位相、周波数、及びドップラーレートオフセット情報を決定することができる。また、曲線適合を使用して、キャリア周波数推定値を更新(及び改善)することができる。
【0091】
いくつかの実装では、ブロック705及び710は、単一の処理ブロックとして、例えば、
図5に示されるようなタイミングリカバリ処理ブロック510として、合わせて群化され得る。同様に、いくつかの実装では、ブロック715及び720は、単一の処理ブロックとして、例えば、
図5に示されるようなキャリアリカバリ処理ブロック510として、合わせて群化され得る。いくつかの実装では、例えば、
図6に示されるように、1つ以上の追加の処理ブロックは、ブロック710とブロック705との間で実行され得る。
【0092】
さらに、タイミングリカバリ誤り計算705及びタイミングリカバリブロック710は、
図4のプロセス315として合わせて群化されてもよい。タイミングリカバリが複数の処理ブロック315a~315nにわたって実行される場合、信号は、群化されたブロック(例えば、プロセス315)の実行前にブロック320を介して合成されてもよく、
図4のブロック325によって、信号ごとの単一スレッド操作として出力されてもよい。ブロック305、310、320、及び325は
図7には示されていないが、プロセスに入力データを取り込み(305)、分割し(310)、処理ブロック315a~315nとして群化機能を実行することができるように、それらのようなブロックが存在し得ること、そして結果として得られる処理されたデータをダウンストリーム処理のために合成し(320)、出力し得る(325)ことが理解されよう。
図7に示されるように、ここでは出力信号はシンボル空間内にあり、結果として得られる出力シンボルにダウンストリーム機能を実行することができる。実行される処理ブロックが多いほど、達成されることができる処理レートが高くなり、スループットが向上することができる。
【0093】
ブロック710でサンプル空間からシンボル空間に変換した後、信号シンボルはブロック715及び720によって訂正され得る。ブロック715及び720は、
図4のプロセス315として合わせて群化されることができる。したがって、ブロック710から出力されたシンボルは、キャリアリカバリプロセス315に再び供給されてもよく、処理ブロック315a~315nにわたって実行されてもよく、ブロック710は、例えば上記のように、ブロック715とは別個のプロセス及び/または機能として実装される。
【0094】
別の例として、ブロック705~720のそれぞれは、例えば、
図5に関連して上述のように、単一の処理ブロック315として群化されてもよく、
図4の処理ブロック315a~315nにわたって実行されてもよい。さらに、各ブロック705~720は、機能306として実装されてもよく、機能306a~306nとしてコア204にわたって実行されてもよい。
【0095】
図8は、
図3/
図4(各ブロック315a~315nで発生するプロセス)の信号処理方法によって実装されるタイミング及びキャリアリカバリのための別の方法の一実施形態のフローチャートである。
図8は、一部の機能ブロックを組み合わせて再配置する方法700(
図7)と同様であり得る別の方法800を示している。方法700と同様に、方法800はオフセット波形処理に使用されることができる。例えば、オフセット波形処理は、オフセット4値位相シフトキーイング(OQPSK)、最小シフトキーイング(MSK)、ガウス最小シフトキーイング(GMSK)、及び整形オフセット4値位相シフト(SOQPSK)など、同相(I)チャネルと直交(Q)チャネルとの間にオフセットまたはスタガを有する波形に使用されることができる。
【0096】
ブロック805では、プロセッサ202(例えば、1つ以上のコア204)は、パケットにタイミング及びキャリアリカバリ誤り計算を実行することができる。タイミングリカバリ誤り計算及びキャリアリカバリ誤り計算は、ブロック705及び715(
図7)で実行されるものと同様である。しかしながら方法800では、キャリアリカバリは、シンボルのタイミングリカバリの前に実行される。方法800への入力はサンプルであり、出力は訂正された同期シンボルである。
【0097】
ブロック810では、プロセッサ202(例えば、1つ以上のコア204)は、ブロック805からの計算に基づいてキャリアリカバリ操作を実行することができる。タイミング及びキャリアリカバリ誤り計算ブロック810の例は、米国特許第10,790,920号にも記載されており、その開示は、参照により完全に記載されているかのように本明細書に援用されている。例えば、デジタル化ビットストリームが二乗されることができると、周波数領域にスパイクが発生することができる。各スパイクは、キャリア周波数及びシンボルレートの複合推定値から作成された混合信号によって混合されることができる。その後、両方の混合信号をデシメートして、サンプリングレートを下げてもよい。両方の混合信号に位相アンラップ計算を実行してもよく、曲線適合計算を実行してもよい。そしてその結果を受けて、キャリアリカバリ及びタイミングリカバリアルゴリズムに渡して、情報を更新する。
【0098】
図5に戻り参照すると、それぞれのブロック520a~520nから出力された入力信号ごとに訂正されたシンボルを、ブロック530に供給する。ブロック530では、プロセッサ202(例えば、1つ以上のコア204)は、入力信号(この例では2つの入力信号)間の時間及び位相の関係を計算することができる。例えば、ブロック530は、訂正されたシンボルに高速フーリエ変換(FFT)を使用して相関器機能を実行することができると、同じ演算からの入力信号間のそれぞれのオフセットまたはスタガを示す時間及び位相情報の両方が出力されることができる。FFTを使用して粗い相関を実行すると、より小さいデータセットに細かい相関を実行して、時間及び位相のアライメントが変化していないことを確保することができる。
【0099】
粗い相関とは、2つの信号間の時間の不確実性を決定するために、多くのシンボルにわたる2つの信号間にタイミング及び位相差を実行することを指す場合がある。単一の衛星及び2つのアンテナの場合、この時間は通常短く(例えば、マイクロ秒以下)、ケーブルの長さ及びアナログ機器のタイミングの差異に基づいて変動する可能性がある。1Mシンボル/秒(Msps)未満のレートの場合、粗いタイミング推定は+/-1シンボルをカバーすることしか必要としない場合がある。シンボルレートが100Mspsである場合、粗いタイミング推定は、+/-100シンボルをカバーする必要がある場合がある。例えば、2つの衛星及び2つのアンテナがあるアンテナハンドオーバーのシナリオの場合、2つの信号間のタイミング差は100ミリ秒以上になる可能性がある。1Mspsの場合、粗いタイミング推定では、少なくとも+/-100kシンボルを粗いタイミング推定がカバーする必要がある場合がある。また100Mspsの場合、粗いタイミング推定は10Mシンボルをカバーする必要がある場合がある。少なくとも1シンボルに実行するのに細かい相関が必要になる場合があるが、粗い相関によって一度求められたタイミングアライメントが失われないことを確保するために、3~15シンボルにわたり実行してもよい。取得モードごとに、タイミングが既知であると、粗い相関の場合と同様にFFT結果の位相か、細かい相関の場合に適切に時間がアライメントされた相関器の位相かいずれかを比較することにより、2つの信号間の位相差を求めることが可能である。
【0100】
ブロック540では、ブロック520からのタイミング情報をブロック540及びプロセッサ202(例えば、1つ以上のコア204)に供給し、タイミング情報に基づいて入力信号のタイミングを調整する。信号が既に適切に復調され、マッチトフィルタを通過しており、ここでは単なるシンボルであるため、タイムアライメントは、Pre-D合成の場合と同様に小数のサンプルの代わりに整数のシンボル数の遅延を適用することだけを必要とすることから簡単である。ブロック540は、入力信号間の適切なアライメントのために、ブロック530で計算された入力信号間のタイミングオフセットに基づいて遅延を適用することができる。すなわち、例えば、入力信号Aと入力信号Nとの間のタイミングオフセットに対応する遅延は、各信号のシンボルを時間領域内にアライメントするように適用される。例えば、ブロック520は、ブロック520a~520nからのシンボルストリームをアライメントするための時間関係を計算することができるため、1つの信号チェーンからの各シンボルは、シンボル順序に関して他のシンボルチェーンのシンボルにマッチングする。例えば、単一の衛星(例えば、衛星111またはプラットフォーム110)及び2つのアンテナ(例えば、アンテナ122、132、及び/または142)を含む場合、衛星送信器からの各シンボルに、送信されるすべてのシンボルに対応する番号でラベル付けすることが可能である。相関器530は、1番目のシンボルがシンボル1であり、100番目のシンボルがシンボル100であり、以下同様であると決定する。次に、時間調整ブロック540は、信号Aからのシンボル1を信号Nからのシンボル1にアライメントすることを確実にする。
【0101】
ブロック530で計算された位相オフセット情報はブロック540に供給され、ブロック540では、プロセッサ202(例えば、1つ以上のコア204)は、信号の位相をアライメントするために少なくとも1つの入力信号の位相を回転させる。ブロック550は、ブロック530からの位相オフセット情報に基づいて、信号のうち1つを回転させて、その他の信号(複数可)と適切にアライメントすることによってドップラー効果を除去することができる。この操作は、当技術分野で知られているように、複素乗算を使用して達成されることができる。場合によっては、位相変化が+/-90度または180度である場合、同相(I)チャネル及び直交(Q)チャネルのスワップ及び/または反転の合成を実行することができる。例示的な例として、第一信号Aの位相は、信号Nの位相にマッチングするように適切に調整される必要がある。例えば、QPSKの場合、シンボルごとに可能になる4つの可能な位相がある。復調器が復調後にこれら4つの位相の可能性がどのように整列するかを保証するものではないため、信号の位相の1つがその他の位相にマッチングするように調整される必要がある。ブロック530は、この調整量を計算する。例えば、シンボル1の信号Aの位相は45度であり、シンボル1の信号Nの位相は135度であるとする。ブロック530は、信号Nのシンボル1(及び他のすべてのシンボル)が信号Nのシンボル1と整列するために、信号Nを負の90度だけ調整する必要があると決定し、この情報を受けてブロック550に渡し、それに応じて信号の位相を回転させる。
【0102】
ブロック565では、プロセッサ202(例えば、1つ以上のコア204)は、入力信号ごとに信号電力及びEs/Noを推定する。ブロック565では、いくつかのアプローチのうちのいずれか1つを使用してEs/Noを測定することができる。Es/Noを測定するための1つの例示的な例は、(C/N)×(B/fs)を計算することである。式中、C/Nはキャリア対ノイズ比または信号対ノイズ比のうちの1つであり、Bはヘルツ単位のチャネル帯域幅であり、fsはシンボルレートまたは1秒あたりのシンボル数である。しかしながら、Es/Noを測定するためのあらゆるアプローチが本明細書に開示される実施形態に等しく適用可能であることが理解されよう。別の例では、ブロック565は、信号品質、例えば、信号対ノイズ比、電力推定値、受信信号強度インジケータ(RSSI)などを推定することができる。これらの推定値をブロック570に供給し、合成のために各入力信号を適切に重み付けすることができる。
【0103】
ブロック565からの電力及びEs/No推定値は、ブロック530からの信号振幅の差を示す振幅情報と共にブロック560に供給され得る。別の例として、これらのブロックが自動利得制御(AGC)ループを含み得るため、振幅情報は復調プロセス(例えば、ブロック510及び520)によって直接適用されることができる。いずれの場合にも、ブロック560では、プロセッサ202(例えば、1つ以上のコア204)は、例えば、ブロック565から提供された電力及びEs/Noの推定に基づいて入力信号の振幅を乗算することによって、それぞれの信号の振幅を調整する。後続の合成では、信号A~Nは、それぞれの間のEs/Noの差によって重み付けされる。例えば、両方の信号が同じEs/Noを有する場合、50/50の重み付けが適用され得、各信号を合成する前に0.5でスケーリングする(または50%で重み付けする)。信号間のEs/Noの差が3dBである場合、66/34の重みが適用され得、高い方のEs/No信号は0.66でスケーリングされ(または66%で重み付けされ)、低い方のEs/noは0.34でスケーリングされてから(または34%で重み付けされてから)、合成される。
【0104】
上述のように信号が時間及び位相でアライメントされており、振幅を調整されていると、ブロック570では、プロセッサ202(例えば、1つ以上のプロセッサ204)は、ブロック565で計算されたEs/No推定値及び電力推定値に基づいたスケーリングを適用することができる。例えば、別の信号と比較してより良好な信号対ノイズ比を有する信号は、他の信号よりも高い重みを割り当てられ、それに応じてスケーリングされ得る。同様に、より高いEs/No推定値及び/または電力推定値は、より大きい重みを割り当てられ、それに応じてスケーリングされ得る。SIMD技術を採用して、複数の信号(例えば、この例では2つの信号)を効率的にスケーリングし、合成することができる。ブロック570は、すべての調整が行われた後に信号を合計することができる。
【0105】
ブロック540、550、及び560は例示的に特定の順序で実行されるが、本明細書の実施形態が例示された順序のみに限定されないことが理解されよう。ブロック540、550、及び560は、所望に応じて任意の順序で実行されてもよく、及び/または並列して実行されてもよい。
【0106】
図6は、方法600としての例示的なPost-DMダイバーシティコンバイナを示す。
図6に示されるように、方法600は、
図5の方法と実質的に同様の方法で、複数のアンテナフィードから入力サンプルを受信し、それらの入力を合わせて合成し、合成信号を出力する。
【0107】
方法600は、実質的に同じ関数を実行するように構成されている方法5のブロックと同じブロックを含むが、
図6に示される順序で実行される。例えば、方法600は、タイミングリカバリブロック510、キャリアリカバリブロック520、1つ以上の相関器ブロック(複数可)530、時間調整ブロック540a、位相回転ブロック550、振幅調整ブロック560、及び1つ以上のコンバイナブロック(複数可)570を含む。方法500と同様に、方法600は、複数のブロック510a~510n、ブロック540a~540n、ブロック550a~550n、ブロック565a~565n、及びブロック560a~560nを含み、各ブロックは、複数の入力アンテナフィードを介して受信した複数の信号のサンプルに機能を実行するためのものである。任意の数の信号が可能であるが、本明細書での例は2つの信号を参照して説明されている。
【0108】
方法600が方法500と異なる点は、ブロック510でタイミングリカバリを実行した後であるが、復調器処理チェーンのブロック520でキャリアリカバリを実行する前に、入力信号を合成することである。したがって、合成は復調中に行われる。例えば、
図6に示されるように、キャリアリカバリブロック520は、コンバイナブロック570から出力される合成信号に実行される。
【0109】
図5に関連して上述のように、方法600の複数のブロックは、それぞれ機能306を表し、機能306a、306b、...306n(
図3)のうちの1つ以上として並列して実行されてもよい。すなわち、例えば、
図6の相関器ブロック530、
図6の重み付きコンバイナブロック570などは、1つ以上の機能306a~306nとして並列して実行されてもよい。同様に、
図6に示される複数のブロックは、処理ブロック315a、315b、...315n(
図4)と同様の方法で機能を実行する単一の「処理」(例えば、プロセス515及び/または315)として合わせて群化されることができる。すなわち、例えば、所与の信号処理チェーンについて、タイミングリカバリブロック510は、プロセス515(例えば、タイミングリカバリ誤り計算ブロック705及びタイミングリカバリブロック710)として群化され得、ブロック540~565は、別のプロセス515として合わせて群化され得る。同様に、
図6のブロック570及び520は、さらに別のプロセス515として合わせて群化されてもよい。他の様々な組み合わせが可能である。さらに、
図6の複数のブロックは、本開示全体を通じて説明されるように、SIMD処理技術を使用して実装され得る。
【0110】
図5及び
図6はPost-Dダイバーシティコンバイナ方法の2つの可能な高レベルの例を示すが、これら2つの方法のみに本明細書の実施形態が限定されず、他の方法も可能であることが理解されよう。すなわち、本明細書の実施形態は、ダイバーシティコンバイナの任意の機能を、機能306a~306n(
図3)として並列に実行される機能306として実行する方法、及び/またはダイバーシティコンバイナの1つ以上の機能を、処理ブロック315a~315nとして並列に実行されるプロセス315として群化する方法を提供する。
【0111】
複数のコアで並列処理を採用して汎用CPU上で実行し、クラウド環境での高スループット動作を実現するチャネルシミュレータ:
上述のように、
図9は、方法900の例示的な実装の機能ブロック図である。様々な例では、方法900はチャネルシミュレーション方法の一例であり得る。チャネルシミュレータを使用して、無線環境で移動する送信器及び/または受信器の1つ以上の異なる歪み及び/または効果をシミュレートする。例えば、
図1を参照すると、チャネルシミュレータの実施形態を使用して、その環境中で受信器(例えば、アンテナ122、132、及び142のうちの1つ以上)に対して移動している衛星111及び/またはプラットフォーム110(例えば、飛行機、ヘリコプタ、または無人航空機(UAV)など)上の送信器をシミュレートしてもよい。別の例として、チャネルシミュレータの実施形態を使用して、その環境中で送信器(例えば、アンテナ122、132、及び142のうちの1つ以上)に対して移動している衛星111及び/またはプラットフォーム110(例えば、飛行機、ヘリコプタ、または無人航空機(UAV)など)上の受信器をシミュレートしてもよい。さらに別の例では、チャネルシミュレータの実施形態を使用して、その環境中で衛星111及び/またはプラットフォーム110(例えば、飛行機、ヘリコプタ、または無人航空機(UAV)など)上の受信器に対して移動している衛星111及び/またはプラットフォーム110(例えば、飛行機、ヘリコプタ、または無人航空機(UAV)など)上の送信器をシミュレートしてもよい。
【0112】
チャネルシミュレータ方法は、不完全な送信器、環境の効果、または移動するビークルのいずれかによる、上記の環境の考えられる効果の少なくとも1つ以上、場合によってはすべてをシミュレートする。シミュレートできる考えられる送信器の障害には、位相ノイズ、非線形歪み(AM-PM)、同相/直交(I/Q)の不均衡、不完全なマッチフィルタ、タイミングジッタなどが含まれるが、これらに限定されない。考えられる環境の効果には、降雨フェード、シンチレーション、マルチパスなどが含まれるが、これらに限定されない。考えられる運動の効果には、信号の中心周波数の調整、時間遅延の調整、電力調整が含まれるが、これらに限定されない。チャネルシミュレータは、加法的ホワイトガウスノイズ(AWGN)、またはチャネルが信号に与え得る他の任意の種類のノイズを加算することもできる。
【0113】
図9には、方法900としての例示的なチャネルシミュレータが示されている。必要なすべてのチャネル効果をシミュレートするために、方法900は、信号に実行されるいくつかの操作のための1つ以上の機能ブロック910~960を含むことができる。例えば、
図9の例示的な例では、方法900は、信号歪みブロック910、位相ノイズブロック920、中心周波数調整ブロック930、タイミング調整ブロック940、利得調整ブロック950、及び加法的ノイズブロック960のうちの1つ以上を含む。方法900に含まれる機能ブロックは、シミュレートされることが望ましい歪みまたは効果に依存する可能性がある。方法900は、ブロック910~960のうちの1つ、1つ以上、またはすべてを含むことができ、いくつかの実施形態では、他の歪み及び/または効果をシミュレートするためにさらなるブロックを追加することができる。
【0114】
上述のように、方法900の複数のブロックは、それぞれ機能を表すことができ、機能306a、306b、...306n(
図3)のうちの1つ以上として実装されてもよい。別の例では、複数のブロックのうちの2つ以上を合わせて、
図4のプロセス315と同様の方法で機能を実行する単一の「プロセス」915として群化することができる。すなわち、
図9の複数のブロックは合わせて、プロセス915として群化されてもよく、処理ブロック315a、315b、...315n(
図4)などとして複数の並列反復で実行されてもよい。例えば、
図9に示されるように、すべての機能ブロック910~960は単一のプロセス915に群化され、群化された機能は複数の処理ブロック315a~315nにレプリケートされる。処理ブロック315a~315nの数は、必要な処理レート及びスループットを達成するために所望の回数だけレプリケートすることができる。ブロック305、310、320、及び325が
図9には示されていないが、それらのようなブロックが、入力データを取り込み(305)、分割し(310)、処理ブロック315a~315nとしてプロセス915を実行し得るように存在し得ることと、結果として得られる処理されたデータを合成し(320)、ダウンストリーム処理のために出力し得る(325)こととが理解されよう。
【0115】
図9は、プロセス915に群化されたすべての機能ブロックを示すが、本明細書の実施形態はそれに限定されない。機能ブロック910~960は、多くの異なる方法で群化されることができる。例えば、機能ブロック910~960のすべてよりも少ないもの(例えば、2つ以上)をプロセス(例えば、プロセス915)として群化することができる。例示的な例として、機能ブロック910及び920は合わせて第一プロセス915として群化され、1つ以上の第一処理ブロック315a~315nにわたり分散されて処理されてもよく、機能ブロック930~960は合わせて第二プロセス915として群化され、1つ以上の第二処理ブロック315a~315nにわたり分散されて処理されてもよい。さらに、ブロック305、310、320、及び325が
図9には示されていないが、それらのようなブロックが、入力データを取り込み(305)、分割し(310)、プロセス915の群化機能を(処理ブロック315a~315nとして)実行し得るように各プロセス915の前に存在し得ることと、結果として得られる処理されたデータを合成し(320)、ダウンストリーム処理のために出力し得る(325)こととが理解されよう。
【0116】
様々な例では、
図9の複数のブロックは、本開示全体を通じて説明されるように、SIMD処理技術を使用して実装され得る。SIMD技術により、スループットが向上し、メモリ帯域幅要件が最小になることが示され得る。SIMD技術を使用して実行される各処理ブロックの機能を増やすと、メモリ帯域幅要件の最小化が増加する可能性がある。
【0117】
ブロック910では、プロセッサ202(例えば、1つ以上のコア204)は、入力信号での信号歪みをシミュレートすることができる。ブロック910は、非線形歪み(AM-PM)、同相/直交(I/Q)不均衡歪み、シンチレーション歪み、マルチパス歪みのうちの1つ以上のシミュレーションを入力信号に与えることができるため、それらのような歪みを受けた信号をシミュレートすることができる。例えば、複雑な有限インパルス応答(FIR)フィルタを使用して、AM-PM歪みを除く上記の歪みをシミュレートすることができる。FIRフィルタの例は、SIMD技術を使用して実装され、スループットを向上させることができる。FIRフィルタ係数は、所望の歪みのシミュレーションを実現するように設定されることができる。AM-PM歪みの場合、非線形演算、例えば、ルックアップテーブルが複雑な非線形演算に実行される場合がある。
【0118】
ブロック920では、プロセッサ202(例えば、1つ以上のコア204)は、入力信号上の位相ノイズをシミュレートすることができる。ブロック920は、位相ノイズをシミュレートするために、入力信号に位相ノイズのシミュレーションを与えることができる。例えば、入力信号と混合されるキャリアに有色ノイズが加算される場合がある。有色ノイズを作成する1つの方法は、FIRフィルタ(ブロック910の同じFIRフィルタまたは異なるFIRフィルタであってもよい)を使用してホワイトノイズを整形し、所望のノイズ形状を達成することである。ノイズは、0.1~1Hzの帯域を作成した後、補間して、1Hz~10Hzに広がる別の段階のノイズに加えられるように、10ステップで作成されることができる。このプロセスは、必要な位相ノイズ帯域幅をカバーするために必要とされる回数だけ繰り返されることができる。各ステップでは、SIMD技術を使用して、ノイズの生成、フィルタリング、及び補間を達成することができる。次いで、この有色ノイズを使用して、キャリア信号か、(1,0)から始まる複素数ベクトルかいずれかの位相を調整する。次に、この位相が調整された信号またはベクトルは入力信号と乗算され、入力信号に位相ノイズが加算される。
【0119】
ブロック930では、プロセッサ202(例えば、1つ以上のコア204)は、経時的に入力信号の位相を調整することによってキャリア調整を実行することができる。ブロック930は、ブロック920と同様の方法で実行され得るが、ブロック930では、混合キャリアの位相は、所望のキャリア周波数及び位相調整を達成するために経時的に変化する。ブロック930は、移動するプラットフォーム(例えば、
図1のプラットフォーム110及び/または衛星111)の運動、またはより一般的にはドップラー効果と呼ばれる、送信器か受信器かいずれかの運動からのキャリア周波数の変化をシミュレートするために使用されてもよいが、これに限定されない。
【0120】
ブロック940では、プロセッサ202(例えば、1つ以上のコア204)は、移動するプラットフォーム(例えば、プラットフォーム110及び/または衛星111)の効果をシミュレートするためにタイミング調整を実行することができる。例えば、そのような運動は、時間的に入力信号の長さを伸ばしてもよく、または長くしてもよい。ブロック940は、調整可能な遅延タップを使用する多相フィルタを適用することができる。ブロック940は、
図5及び
図6の時間調整ブロック540と同様であってもよいが、入力信号を分析した結果の代わりに、ユーザ入力によってブロック940のタイミング情報を駆動し、所望の効果をシミュレートする。
【0121】
ブロック950では、プロセッサ202(例えば、1つ以上のコア204)は、利得調整を実行して、降雨フェード、または信号電力に影響し得るその他のものをシミュレートすることができる。ブロック950は、入力信号の振幅を乗算することによって実行され得る。
【0122】
ブロック960では、プロセッサ202(例えば、1つ以上のコア204)は、入力信号にノイズを加算することができる。例えば、ブロック960は、加法的ガウスホワイトノイズ(または任意のタイプのノイズ(例えば、レイリーのような有色分布または他の種類の分布))をシミュレートし、そのノイズを入力信号に与えることができる。ガウスホワイトノイズを生成するには多くの方法があり、Box-Muller法は当技術分野で知られている方法の1つである。
【0123】
ブロック910~960は特定の順序で示されているが、本明細書の実施形態が示された順序のみに限定されないことが理解されよう。ブロック910~960は、要望どおり任意の順序で実行されてもよく、及び/または入力信号に並列して実行されてもよい。
【0124】
複数のコアで並列処理を採用して汎用CPU上で実行し、クラウド環境での高スループット動作を実現する信号変調器:
上述のように、
図10は、方法1000の例示的な実装の機能ブロック図である。様々な例では、方法1000は信号変調方法の一例であり得る。変調器を使用して波形を生成し、ある箇所から別の箇所に情報を送信することができる。例えば、ダウンリンク信号(例えば、
図1のダウンリンク信号160及び/または170)は、方法1000に従って変調され得る。例えば、情報は、デジタル情報に分けられてもよく、またはAMラジオ及びFMラジオに使用されるようなアナログ信号に分けられてもよい。本明細書ではデジタル信号の発生を例として使用しているが、同じアプローチを使用してアナログ信号を発生することもできる。
【0125】
図10には、方法1000として例示的な信号モジュラが示されている。方法1000は、B/Q/SQ/8/16A/32APSK/などのような変調タイプ、直交振幅変調(QAM)、または任意の類似のデジタル変調波形をサポートする位相シフトキーイング(PSK)変調器方法である。
図10は、1つの例示的な変調方法を示しているが、信号処理の同じアプローチ(例えば、
図3及び
図4に記載されているようなもの)を他の変調方法に適用することができる。
【0126】
方法1000は、
図10に示されるように複数の機能ブロックを含む。例えば、
図10の例示的な例では、方法1000は、フレームビルダブロック1010、前方誤り訂正(FEC)ブロック1020、パルス整形器ブロック1030、中心周波数調整ブロック1040、及び掃引器ブロック1050のうちの1つ以上を含む。
【0127】
特定のブロック及び構成が
図10に示されているが、特定の変調スキームでは、異なるブロックが必要になる場合がある。したがって、
図10は、高レベルの変調方法を示しており、catch-all構成ではない。異なる変調スキームを実行するために、必要に応じて1つ以上のさらなる機能ブロックを方法1000に追加することができる。特定の変調スキームが
図10の構成に含まれない限り、当業者であれば、本開示を通して様々な実施形態に関連して開示されている概念が、
図10の変調方法だけなく、あらゆる変調スキームに等しく適用されることが理解されよう。
【0128】
上述のように、方法1000の複数のブロックは、それぞれ機能を表すことができ、機能306a、306b、...306n(
図3)のうちの1つ以上として実装されてもよい。別の例では、複数のブロックのうちの2つ以上を合わせて、
図4のプロセス315と同様の方法で機能を実行する単一の「プロセス」1015として群化することができる。すなわち、
図10の複数のブロックは合わせて、プロセス1015として群化され、処理ブロック315a、315b、...315n(
図4)などとして、複数の並列反復で実行されてよい。例えば、
図10に示されるように、機能ブロック1010及び1020を合わせて、第一プロセス1015として群化し、次いで、複数の第一処理ブロック315a~315nでレプリケートし、機能ブロック1030~1050を合わせて、第二プロセス315として群化し、次に、複数の第二処理ブロック315a~315nでレプリケートする。
図10は別個のプロセス1015に群化された特定の機能ブロックを示すが、本明細書の実施形態はそれに限定されない。機能ブロック1010~1050は、多くの異なる方法で群化されることができる。例えば、すべての機能ブロック1010~1050を合わせて群化することができる。
【0129】
また方法10は、例示的に、各プロセス1015の前にデータ取り込みブロック1005及びデータ分割ブロック1010を含む。各データ取り込みブロック1005は、データ取り込みブロック305(
図4)に実質的に類似していることができ、各データ分割ブロック1010は、データ分割ブロック310(
図4)に実質的に類似していることができる。したがって、入力データを取り込むことができ(1005)、そのデータをプロセッサ202が受信して処理し、分割することができ(1010)、そのデータをプロセッサ202が、例えば
図4に関連して説明されるように、重複するデータブロックでパースすることができる。さらに、各プロセス1015の後、方法10は例示的に、データ合成ブロック1020及びデータ出力ブロック1025も含む。各データ合成ブロック1020は、データ合成ブロック320(
図4)に実質的に類似していることができ、各データ出力ブロック1025は、データ出力ブロック325(
図4)に実質的に類似していることができる。したがって、プロセス1015は、例えば
図4に関連して説明されるように、重複するデータブロックを出力して合成し(1020)、そのデータを出力する(1025)。
【0130】
様々な例では、
図10の複数のブロックは、本開示全体を通じて説明されるように、SIMD処理技術を使用して実装され得る。SIMD技術により、スループットが向上し、メモリ帯域幅要件が最小になることが示され得る。SIMD技術を使用して実行される各処理ブロックの機能を増やすと、メモリ帯域幅要件の最小化が増加する可能性がある。
【0131】
ブロック1010では、プロセッサ202(例えば、1つ以上のコア204)は、入力信号の着信データを、所望の変調スキーム(例えば、アンテナ122、132、及び/または134などの受信器の変調スキーム)に基づいている所定のフォーマットに変換することができる。例えば、特定の変調スキームは特定のフォーマットを必要とし、ブロック1010は入力信号のデータをそのフォーマットに変換する。変調器方法1000は、DVB-S2、DVB-S2xだけでなく、リードソロモンコーディング、ターボコーディング、畳み込みコーディングなどを使用するより規格化されていないケースなどであるがこれらに限定されない、多くの異なる波形規格をサポートすることができる。簡潔にするために、波形規格は、ストリーミングデータ及びフレームデータの2つのケースに群化される。ストリーミングデータのケースは、着信データがコーディングされていない、または畳み込みコーディングのような、連続した途切れのないストリームであるケースである。フレームデータは、DVB-S2またはリードソロモンのようなフレームデータまたはデータブロックを必要とする着信データのためのものである。ブロック1010は、着信データを変調スキームに対応するフォーマットに変換することによって、フレーム(例えば、フレームデータの場合)またはデータストリーム(例えば、ストリーミングデータの場合)を構築することができる。
【0132】
ブロック1020では、プロセッサ202(例えば、1つ以上のコア204)は、DVB-S2のBCH及びLDPC、CCSDSのLDPCコーディング、リードソロモン、ターボコーディング、ポーラコーディング、ならびに畳み込みコーディングを含むがこれらに限定されない、方法1010の変調スキームに対応するコーディングを生成する。ブロック1020は、変調方法1000のより複雑なブロックの1つであり得、したがって、本開示全体を通じて開示される信号処理方法(例えば、
図3及び/または
図4)及びSIMD技術のすべてから利益を得ることができる。
【0133】
ブロック1030では、プロセッサ202(例えば、1つ以上のコア204)は、例えばパルス整形フィルタを適用することによって、シンボルデータをサンプルに変換する。ブロック1030は、任意のパルス整形、例えばルートレイズドコサイン(RRC)を作成することができる。パルス整形器は、多相フィルタと数値制御発振器(NCO)との組み合わせであってもよい。ブロック1030もまた複雑なブロックであり得、したがって、本開示全体を通じて開示される信号処理方法(例えば、
図3及び/または
図4)及びSIMD技術のすべてから利益を得ることができる。
【0134】
ブロック1040では、プロセッサ202(例えば、1つ以上のコア204)は、複素乗算を使用して、ブロック1030からのサンプルデータのキャリアの中心周波数を変更することができる。ブロック1040では、プロセッサ202(例えば、1つ以上のコア204)は、変調スキームに対応する所定のプロファイルに基づいて、位相及び周波数を経時的に変更することができる。いくつかの実装では、ブロック1050は、中心周波数がブロック1040によって調整されている間に実行される。
【0135】
その他の態様
添付の特許請求の範囲及びそれらの均等物は、本開示の範囲に収まるような形式または修正を包含するように意図されている。図に示される様々なコンポーネントは、例えば、プロセッサまたは専用ハードウェア上のソフトウェア及び/またはファームウェアとして実装され得るが、これらに限定されなくてもよい。また、上記で開示された特定の例示的な実施形態の特徴及び属性を、付加的な実施形態を形成するために種々の方法で組み合わせてもよく、これらの実施形態はすべて本開示の範囲内に含まれる。
【0136】
前述の方法の説明及びプロセスフロー図は、単に例示的な例として提供されており、様々な実施形態の動作が提示された順序で実行されなければならないことを要求または黙示することを意図したものではない。当業者には理解されるように、前述の実施形態における動作の順序は任意の順序で実行されることができる。「その後」、「次いで」、「次の」などの単語は、動作の順序を制限することを意図したものではなく、これらの単語は、単に方法の説明によって読者を案内するために使用されている。さらに、単数形で、例えば「a」、「an」または「the」という冠詞を使用した請求項の要素へのいかなる言及も、要素を単数形に限定するものとして解釈されるべきではない。
【0137】
本明細書に開示される実施形態に関連して記載される種々の例示の論理ブロック、モジュール、及びアルゴリズムの動作は、電子ハードウェア、コンピュータソフトウェア、またはその両方の組み合わせとして実施することができる。ハードウェア及びソフトウェアのこの互換性を明確に示すために、多様な例示的な構成要素、ブロック、モジュール及び動作は、概してその機能性の点において上記で説明されている。係る機能性が、ハードウェアとして実装されるのか、それともソフトウェアとして実装されるのかは、特定のアプリケーション、及び全体のシステムに対して課される設計の制約に左右される。当業者は、説明する機能性を、それぞれの特定のアプリケーションに関して様々な点で実装することができるが、係る実施態様の決定は、本発明の概念の範囲からの逸脱を生じさせるとして解釈されるべきではない。
【0138】
本明細書に開示される様々な実施形態に関連して説明された多様な例示的なロジック、論理ブロック、及びモジュールは、汎用プロセッサ、デジタルシグナルプロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、または他のプログラム可能な論理装置、離散ゲートもしくはトランジスタ論理、離散ハードウェア構成要素、または本明細書に説明する機能を実行することを目的としたその任意の組み合わせによって実装または実行できる。汎用プロセッサはマイクロプロセッサにすることができるが、代替ではプロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械にすることができる。また、プロセッサは、例えば、DSPと、マイクロプロセッサ、複数のマイクロプロセッサ、DSPコアと連動する1つ以上のマイクロプロセッサ、または任意の他の係る構成要素の組み合わせ等、受信デバイスの組み合わせとしても実装できる。あるいは、一部の操作または方法は、所与の機能に専用の回路によって実行されてもよい。
【0139】
1つ以上の例示的な実施形態では、説明される機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組み合わせに実装され得る。ソフトウェアに実装される場合、機能は、非一時的なコンピュータ可読記憶媒体または非一時的なプロセッサ可読記憶媒体上の1つ以上の命令またはコードとして格納され得る。本明細書に開示される方法またはアルゴリズムの操作は、非一時的なコンピュータ可読記憶媒体またはプロセッサ可読記憶媒体上に常駐し得るプロセッサ実行可能命令で具現化され得る。非一時的なコンピュータ可読記憶媒体またはプロセッサ可読記憶媒体は、コンピュータまたはプロセッサによってアクセスできる任意の記憶媒体であり得る。限定ではなく例として、そのような非一時的なコンピュータ可読記憶媒体またはプロセッサ可読記憶媒体には、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、電気的に消去可能でプログラム可能な読み出し専用メモリ(EEPROM)、フラッシュメモリ、CD-ROMもしくはその他の光ディスクストレージ、磁気ディスクストレージもしくはその他の磁気ストレージデバイス、または命令もしくはデータ構造の形式で所望のプログラムコードを格納するために使用でき、コンピュータによってアクセスできるその他の任意の媒体が含まれてもよい。本明細書に用いられるディスク(Disk)及びディスク(disc)は、コンパクトディスク(CD)、レーザーディスク、光ディスク、デジタルバーサタイルディスク(DVD)、フロッピーディスク、及びBlu-rayディスクを含む。これらのディスク(disk)は、通常、磁気的にデータを再生し、ディスク(disc)は、レーザによって光学的にデータを再生する。上記の組み合わせもまた、非一時的なコンピュータ可読媒体及びプロセッサ可読媒体の範囲内に含まれる。さらに、方法またはアルゴリズムの操作は、コード及び/または命令の1つまたは任意の組み合わせまたはセットとして、コンピュータプログラム製品に組み込まれてもよい非一時的なプロセッサ可読記憶媒体及び/またはコンピュータ可読記憶媒体に常駐してもよい。
【0140】
開示されたプロセス/フローチャートにおけるブロックの特定の順序または階層が例示的なアプローチの例証であることが理解される。設計プリファレンスに基づいて、プロセス/フローチャート内のブロックの特定の順序または階層を再配置することができることが理解される。また、一部のブロックを組み合わせてもよく、または省略してもよい。添付の方法の特許請求の範囲は、様々なブロックの要素をサンプル順に提示しており、提示された特定の順序または階層に限定されることを意味するものではない。
【0141】
先の説明は、当業者が、本発明中に記載された様々な態様を実施することを可能にするように提供される。これらの態様に対する様々な変形は、当業者に容易に明らかであり、本明細書に定義された一般的な原理は、他の態様に適用することができる。
【0142】
したがって、特許請求の範囲は、本明細書中に示される態様に限定されることを意図せず、特許請求の範囲の言語に一致する全範囲が与えられることが意図され、単数形の要素への言及は、明示的にそのように記述されない限り、「唯一」を意味するように意図されてはおらず、むしろ「1つ以上」を意味するように意図されている。
【0143】
「例示的な」という言葉は、本明細書では「例、実例、または例示として役立つ」という意味で使用される。本明細書で「例示的な」として説明されるいかなる態様も、必ずしも他の態様よりも好ましいまたは有利であると解釈されるべきではない。特に明記しない限り、「いくつかの」という用語は、1つまたは複数を指す。
【国際調査報告】