(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-12-24
(54)【発明の名称】フィードフォワードキャリア及びタイミング回復を使用して可変符号化変調(VCM)ベースの通信信号を処理するためのシステム及び方法
(51)【国際特許分類】
H04L 7/033 20060101AFI20241217BHJP
H04L 27/00 20060101ALI20241217BHJP
【FI】
H04L7/033
H04L27/00 Z
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2024529921
(86)(22)【出願日】2021-12-09
(85)【翻訳文提出日】2024-05-21
(86)【国際出願番号】 US2021062689
(87)【国際公開番号】W WO2023107115
(87)【国際公開日】2023-06-15
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】519008175
【氏名又は名称】クラトス インテグラル ホールディングス,エルエルシー
(74)【代理人】
【識別番号】100114775
【氏名又は名称】高岡 亮一
(74)【代理人】
【識別番号】100121511
【氏名又は名称】小田 直
(74)【代理人】
【識別番号】100202751
【氏名又は名称】岩堀 明代
(74)【代理人】
【識別番号】100208580
【氏名又は名称】三好 玲奈
(74)【代理人】
【識別番号】100191086
【氏名又は名称】高橋 香元
(72)【発明者】
【氏名】キング,ブランドン グレゴリー
(72)【発明者】
【氏名】ジャリール,ジェフリー デビッド
(72)【発明者】
【氏名】サットン,ダニエル ジョセフ
(72)【発明者】
【氏名】ストルテンベルグ,マシュー ジェームズ
【テーマコード(参考)】
5K047
【Fターム(参考)】
5K047AA01
5K047MM47
(57)【要約】
デジタルビットストリームの処理及び方法を実装するためのシステムが提供される。方法は、デジタルビットストリームを複数のデータパケットに分けることを含む。第1の処理ブロックで、複数のデータパケットの第1の部分に対してキャリア回復誤差計算を実行することは、データパケットのデシメートされたデータに対して第1の位相ロックループ(PLL)機能を実行することと、複数のデータパケットの第1の部分に対してキャリア回復動作を実行することとを含む。複数のパケットの第1の部分の処理と並行して、第2の処理ブロックで、複数のデータパケットの第2の部分に対してキャリア回復誤差計算を実行することは、データパケットのデシメートされたデータに対して第1のPLL機能を実行することと、複数のデータパケットの第2の部分に対してキャリア回復動作を実行することとを含む。
【選択図】
図8
【特許請求の範囲】
【請求項1】
デジタルビットストリームを処理するための方法であって、前記デジタルビットストリームがデジタル化された通信信号であり、
1つ以上のプロセッサで、前記デジタルビットストリームを複数のデータパケットに分けることと、
前記1つ以上のプロセッサ内の第1の処理ブロックで、
前記複数のデータパケットの第1の部分に対してキャリア回復誤差計算を実行することであって、前記複数のデータパケットの前記第1の部分のデシメートされたデータに対して第1の位相ロックループ(PLL)機能を実行することを含む、前記実行することと、
前記複数のデータパケットの前記第1の部分に対してキャリア回復動作を実行することと、
前記複数のパケットの前記第1の部分の前記処理と並行して、前記1つ以上のプロセッサ内の第2の処理ブロックで、
前記複数のデータパケットの第2の部分に対して前記キャリア回復誤差計算を実行することであって、前記複数のデータパケットの前記第2の部分のデシメートされたデータに対して前記第1のPLL機能を実行することを含む、前記実行することと、
前記複数のデータパケットの第2の部分に対して前記キャリア回復動作を実行することと、
位相ステッチングに基づいて前記第1の部分及び前記第2の部分を結合することと
を含む、前記方法。
【請求項2】
前記1つ以上のプロセッサ内の第3の処理ブロックで、
前記複数のデータパケットの前記第1の部分に対してタイミング回復誤差計算を実行することと、
前記複数のデータパケットの前記第1の部分に対してタイミング回復動作を実行することと、
前記複数のパケットの前記第1の部分の前記処理と並行して、前記1つ以上のプロセッサ内の第4の処理ブロックで、
前記複数のデータパケットの前記第2の部分に対して前記タイミング回復誤差計算を実行することと、
前記複数のデータパケットの第2の部分に対して前記タイミング回復動作を実行することと
をさらに含む、請求項1に記載の方法。
【請求項3】
前記タイミング回復誤差計算が、前記複数のデータパケットの前記第1及び第2の部分のデシメートされたデータに対して第2のPLL機能を実行することを含む、請求項2に記載の方法。
【請求項4】
前記タイミング回復誤差の計算が、
ダウンリンク信号のサンプルとしてデータパケットを受信することであって、前記サンプルが未知のシンボルレート及び周波数を有する、前記受信することと、
前記シンボルレートの推定値に基づいて前記サンプルのタイミング誤差を決定することと、
デシメーションフィルタで前記サンプルをデシメートすることと、
前記デシメートされたシンボルに対して前記第2のPLL機能を実行して、前記シンボルの位相、周波数、及びドップラー速度を決定することと、
前記シンボルレートの前記推定値を更新することと
を含む、請求項2に記載の方法。
【請求項5】
前記PLL機能が、2次PLL、3次PLL、可逆PLL、及び可逆反復PLLの1つである、先行請求項のいずれか1項に記載の方法。
【請求項6】
前記複数のデータパケットのうちの前記データパケットのそれぞれが、隣接するパケットからのデータの重複を含み、前記PLL機能が2次PLLである、請求項1~4のいずれか1項に記載の方法。
【請求項7】
前記データパケットのそれぞれがフレーム化されたデータパケットであり、前記PLL機能が、可逆PLL、及び可逆反復PLLの1つである、請求項1~4のいずれか1項に記載の方法。
【請求項8】
前記第3の処理ブロック及び前記第4の処理ブロックの前記出力を時間補正されたシンボルのブロックに結合することと、
フレームマーカーを検出することによって各ブロックのフレーム境界の位置を突き止めることと
をさらに含み、
前記複数のデータパケットの前記第1及び第2の部分に対して前記キャリア回復誤差計算を実行することが、前記位置を突き止めたフレーム境界に基づく、
請求項2に記載の方法。
【請求項9】
前記複数の処理ブロックが、複数の中央処理装置(CPU)コアを含む、請求項1~4のいずれかに記載の方法。
【請求項10】
前記キャリア回復誤差計算が、
前記ダウンリンク信号の前記同期したサンプルに関連付けられた前記シンボルを受信することと、
前記ダウンリンク信号の周波数の推定値及びn乗された前記シンボルの積に基づいて前記シンボルのキャリア誤差を決定することであって、nが整数である、前記決定することと、
デシメーションフィルタによって前記シンボルをデシメートすることと、
前記デシメートされたシンボルに対して前記第1のPLL機能を実行して前記シンボルの位相、周波数、及びドップラー速度を決定することと、
前記周波数の前記推定値を更新することと
を含む、請求項1~4のいずれかに記載の方法。
【請求項11】
前記1つ以上のプロセッサが、高スループットを達成するために単一命令複数データ(SIMD)技術を採用する、請求項1~4のいずれかに記載の方法。
【請求項12】
デジタルビットストリームを処理するための方法であって、前記デジタルビットストリームがフレームに基づいたデジタル化された通信信号であり、
1つ以上のプロセッサで、前記デジタルビットストリームを複数のデータパケットに分けることと、
前記1つ以上のプロセッサ内の第1の処理ブロックで、
前記複数のデータパケットの前記第1の部分に対してタイミング回復誤差計算を実行することであり、前記複数のデータパケットの前記第1の部分のデシメートされたデータに対して第1の位相ロックループ(PLL)機能を実行することを含む、前記実行することと、
前記複数のデータパケットの前記第1の部分に対してタイミング回復動作を実行することと、
前記複数のパケットの前記第1の部分の前記処理と並行して、前記1つ以上のプロセッサ内の第2の処理ブロックで、
前記複数のデータパケットの前記第2の部分に対して前記タイミング回復誤差計算を実行することであって、前記複数のデータパケットの前記第2の部分のデシメートされたデータに対して前記第1のPLL機能を実行することを含む、前記実行することと、
前記複数のデータパケットの第2の部分に対して前記タイミング回復動作を実行することと、
前記第1の処理ブロック及び前記第2の処理ブロックの前記出力を、1つ以上のフレームマーカーを含む時間補正されたシンボルのブロックに結合することと、
時間補正されたシンボルの各ブロックに含まれる前記1つ以上のフレームマーカーを求めて前記時間補正されたシンボルのブロックを検索することと、
相関器プロセス及び周波数追跡プロセスを実行して、前記フレーム境界の位置を突き止め、前記キャリア周波数を追跡することと、
時間補正されたシンボルのフレームを出力することと
を含む、前記方法。
【請求項13】
相関器プロセス及び周波数追跡プロセスを実行することが、
周波数ロックループ(FLL)機能を実行して、2つの隣接するフレームマーカー間の前記位相差を比較すること
を含む、請求項12に記載の方法。
【請求項14】
FLL機能を実行して、2つの隣接するフレームマーカー間の前記位相差を比較することが、
arctan(A*conj(B))/(2*pi)*FRを計算することであって、上式で、Aは以前に折りたたんだフレームマーカーのIQ値であり、Bは現在折りたたまれているフレームマーカーのIQ値であり、FRはフレームマーカーの更新速度である、前記計算することと、
前記計算された値を使用して2次FLL機能を実行して、前記キャリアのドップラー及びドップラー速度を決定することと
を含む、請求項13に記載の方法。
【請求項15】
1つ以上のプロセッサで、前記時間補正されたシンボルのフレームを複数の時間補正されたシンボルに分けることと、
前記1つ以上のプロセッサ内の第3の処理ブロックで、
前記複数のデータパケットの第1の部分に対してキャリア回復誤差計算を実行することであって、前記複数の時間補正されたシンボルの前記第1の部分のデシメートされたデータに対して第2の位相ロックループPLL機能を実行することを含む、前記実行することと、
前記複数の時間補正されたシンボルの前記第1の部分に対してキャリア回復動作を実行することと、
前記複数の時間補正されたシンボルの前記第1の部分の前記処理と並行して、前記1つ以上のプロセッサ内の第4の処理ブロックで、
前記複数の時間補正されたシンボルの前記第2の部分に対して前記キャリア回復誤差計算を実行することであって、前記複数の時間補正されたシンボルの前記第2の部分のデシメートされたデータに対して前記第2のPLL機能を実行することを含む、前記実行することと、
前記複数の時間補正されたシンボルの第2の部分に対して前記キャリア回復動作を実行することと、
位相ステッチングに基づいて前記第1の部分及び前記第2の部分を結合することと
を含む、請求項14に記載の方法。
【請求項16】
前記2次FLL機能の後にPLL機能を実行して、追跡をさらに強化し、前記キャリア回復誤差計算で使用するための改善された位相、ドップラー、及びドップラー推定値を提供することをさらに含む、請求項13に記載の方法。
【請求項17】
デジタルビットストリームを処理するための方法であって、前記デジタルビットストリームがフレームに基づいたデジタル化された通信信号であり、
1つ以上のプロセッサで、前記デジタルビットストリームを複数のデータパケットに分けることと、
前記1つ以上のプロセッサ内の第1の処理ブロックで、
前記複数のデータパケットの前記第1の部分に対してタイミング回復誤差計算を実行することであり、前記複数のデータパケットの前記第1の部分のデシメートされたデータに対して第1の位相ロックループ(PLL)機能を実行することを含む、前記実行することと、
前記複数のデータパケットの前記第1の部分に対してタイミング回復動作を実行することと、
前記複数のパケットの前記第1の部分の前記処理と並行して、前記1つ以上のプロセッサ内の第2の処理ブロックで、
前記複数のデータパケットの前記第2の部分に対して前記タイミング回復誤差計算を実行することであって、前記複数のデータパケットの前記第2の部分のデシメートされたデータに対して前記第1のPLL機能を実行することを含む、前記実行することと、
前記複数のデータパケットの第2の部分に対して前記タイミング回復動作を実行することと
を含む、前記方法。
【請求項18】
前記第1の処理ブロック及び前記第2の処理ブロックの前記出力を、1つ以上のフレームマーカーを含む時間補正されたシンボルのブロックに結合することと、
フレームマーカーを検出することによって各ブロックのフレーム境界の位置を突き止めることと
をさらに含む、請求項17に記載の方法。
【請求項19】
フレーム境界の位置を突き止めることが、
相関器プロセス及び周波数追跡プロセスを実行して、前記フレーム境界の位置を突き止め、前記キャリア周波数を追跡することと、
時間補正されたシンボルのフレームを出力することと
をさらに含む、請求項18に記載の方法。
【請求項20】
通信信号を表すデジタルビットストリームを処理するためのシステムであって、
受信されたアナログ信号を前記デジタルビットストリームに変換するように構成されたデジタイザと、
前記デジタイザに通信可能に結合された1つ以上のプロセッサであって、前記1つ以上のプロセッサが、複数の処理ブロックを有し、先行請求項のいずれか1項に記載の方法を実行するように動作可能である前記1つ以上のプロセッサと
を備える、前記システム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は信号処理に関する。より具体的には、本開示は、汎用プロセッサ(GPP)を使用して分散コンピューティングを実装し、高速処理を実現することに関する。
【背景技術】
【0002】
関連技術の説明
いくつかの例では、衛星通信信号は、ローカルでデータを送信及び/または受信し、処理するために大規模な地上局及びその他の施設を必要とし得る。これには、関連する衛星からデータを受信し、受信したデータを処理して使用するための大規模なアンテナアレイ、関連する無線周波数端末(RFT)、及び重要な電子機器(モデム、シグナルプロセッサなど)が含まれ得る。
【発明の概要】
【0003】
以下の概要は、本発明の全ての態様を定義することを意図するものではなく、本開示の他の特徴及び利点は、図面を含む以下の詳細な説明から明らかになるであろう。本開示は、統合文書として関連付けられることを意図しており、特徴の組み合わせが本開示の同じ文、パラグラフまたはセクション内に一緒に見出されない場合でさえ、本明細書に記載される特徴の全ての組み合わせが想定されることを理解すべきである。さらに、本開示は、追加の態様として、本明細書で具体的に言及された変形よりも何らかの点で範囲が狭い本発明の全ての実施形態を含む。
【0004】
本開示は、ダウンリンクサイトダイバーシティ及びアップリンク送信電力管理を使用する衛星通信のためのシステム及び方法に対処する。複数の地上局は、サイトダイバーシティを使用して信号の複数のバージョンのコヒーレントな受信を保証するために、送信にピギーバック信号を含めことができる。
【0005】
本明細書で開示されるように、デジタル信号処理(DSP)は、汎用プロセッサまたは中央処理装置(CPU)を使用して多くの異なる方法で実行できる。開示された機能を実行することができる高速処理を実現するために汎用プロセッサ上で実行される例示的な技術には、
複数のCPU、及び各CPU上の多数のコアで並列処理を使用することと、
単一命令複数データ(SIMD)技術を採用することと、
フィードバックループを中断するためにフィードフォワード処理することと、
重い処理をいくつかのCPUに分割するためにメタデータ(またはステート情報)を事前計算することと、
CPUパフォーマンスを向上させる、またはメモリ帯域幅の使用率を低下させる方法で、複数の機能を単一機能にまとめることと、
が含まれるが、これらに限定されない。
【0006】
汎用CPUのスループットを向上させる1つの方法は、CPU上に存在するコアをできる限り多く利用することである。CPU内のいくつかのコア間でデータが適切に共有されることを確保するように細心の注意を払う必要があるが、これにより、より多くのCPUコアを追加することで処理スループットが向上することが可能になる。また、同じシステム上でいくつかのCPUを使用し、各CPUに複数のコアを含めることも可能である。本開示内の全ての実施形態は、CPU内で複数のコアを使用する利点を利用し、いくつかの実施形態は、システムごと、及び/またはサーバ環境内のシステムグループごとでも複数のCPUを有することを利用する。
【0007】
高い処理速度を達成するもう1つの方法は、汎用CPUの単一命令複数データ(SIMD)機能を利用することである。これにより、AVX512 SIMD演算の場合と同様に、シングルCPUコアが単一命令で最大16個の浮動小数点演算を実行することが可能になる。SIMDを採用する一例は、16個の浮動小数点結果を一度に計算する有限インパルス応答(FIR)フィルタ関数を使用することである。別の例は、複素数を掛け合わせる場合である。AVX512では、1対の直交信号(IQデータ)を計算する代わりに、8つのIQ対を一度に計算することが可能である。複素乗算は、本開示で説明されるほぼ全ての処理アルゴリズムに使用される。
【0008】
一部の処理システムは、位相ロックループ(PLL)または遅延ロックループ(DLL)を含むことが多い、様々な形式のフィードバックを実装する。ただし、従来のPLL及びDLLの場合と同様に、一般にデシメーション前のフィードバックは、フィードバックの性質そのものがボトルネックを引き起こすため、問題になる可能性がある。フィードバックループにより、全ての着信データは、簡単に分割すること、または別な方法で分けることができない単一の(例えば、線形の)プロセスで強制的に処理される。フィードバックに加えて、誤差項を計算する頻度を含む、PLL及びDLLを使用して克服すべき他の障害がある。フィードバックループはフィードフォワードループに置換されることができる。フィードフォワードループでは、データブロック上で誤差状態を処理し、次いで、計算された誤差項は、この誤差項を適用する別のブロックにフィードフォワードされる。いくつかの実施態様では、適切な重複を使用する場合、誤差の計算及びその項の適用をいくつかのCPUコアに分割して、スループットをさらに向上させることができる。
【0009】
データを処理するためのフィードフォワードアプローチに加えて、シングルブロックでメタデータの事前計算を実行した後、いくつかのCPUコアにわたりデータの処理を分割することも有益であることがある。この方法は、既に説明したフィードフォワード方法に似ているが、この場合、ループ(フィードバックループなど)を中断するものではなく、単純に多くのCPUコアを活用して、処理できるデータ量を増加させるものである。このように、事前計算を実行するブロックは、CPU集約的処理を実行するのではなく、forループ内の反復と、開始指数と、補間位相値間の傾斜点などの必要なステップを計算する。
【0010】
高スループットを達成するために汎用CPUで採用できるもう1つの技術は、機能セットの使用方法及び使用するメモリタイプである。場合によっては、メモリ帯域幅はパフォーマンスの制限要因になる。この場合、目的は、ランダムアクセスメモリ(RAM)(CPUキャッシュのようにより高速なメモリではない)との間で転送される必要があるデータの量を制限することである。これを行うには、より高速なCPUキャッシュへのアクセスと比較して、より低速なRAMへのアクセスを可能な限り少なくすることを目的として、機能を個別に実行する代わりに、全て合わせて実行するように機能を折りたたむ必要がある。メモリ帯域幅を低減させるためのもう1つの方法は、例えば可能な場合はfloatまたはdoubleではなくint8を使用して、適切に離隔されたメモリタイプを利用することである。
【0011】
一実施形態では、デジタルビットストリームを処理するための方法及び方法を実装するシステムが提供され、デジタルビットストリームはデジタル化された通信信号である。方法は、1つ以上のプロセッサで、デジタルビットストリームを複数のデータパケットに分けることと、1つ以上のプロセッサ内の複数の処理ブロックの第1の処理ブロックで、複数のデータパケットの第1の部分に対してキャリア回復誤差計算を実行することであり、複数のデータパケットの第1の部分のデシメートされたデータに対して第1の位相ロックループ(PLL)機能を実行することを含む実行することと、複数のデータパケットの第1の部分に対してキャリア回復動作を実行することと、複数のパケットの第1の部分の処理と並行して、1つ以上のプロセッサ内の複数の処理ブロックの第2の処理ブロックで、複数のデータパケットの第2の部分に対してキャリア回復誤差計算を実行することであって、複数のデータパケットの第2の部分のデシメートされたデータに対して第1の(PLL)機能を実行することを含む実行することと、複数のデータパケットの第2の部分に対してキャリア回復動作を実行することと、位相ステッチングに基づいて第1の部分及び第2の部分を結合することとを含む。
【0012】
さらなる態様では、方法は、1つ以上のプロセッサ内の第3の処理ブロックで、複数のデータパケットの第1の部分に対してタイミング回復誤差計算を実行することと、複数のデータパケットの第1の部分に対してタイミング回復動作を実行することと、複数のパケットの第3の部分の処理と並行して、1つ以上のプロセッサ内の第4の処理ブロックで、複数のデータパケットの第2の部分に対してタイミング回復誤差計算を実行することと、複数のデータパケットの第2の部分に対してタイミング回復動作を実行することとを含む。
【0013】
さらなる態様では、タイミング回復誤差計算は、複数のデータパケットの第1及び第2の部分のデシメートされたデータに対して第2のPLL機能を実行することを含む。
【0014】
さらなる態様では、タイミング回復誤差計算は、ダウンリンク信号のサンプルとしてデータパケットを受信することであって、サンプルが未知のシンボルレート及び周波数を有する、受信することと、シンボルレートの推定値に基づいてサンプルのタイミング誤差を決定することと、デシメーションフィルタでサンプルをデシメートすることと、デシメートされたシンボルに対して第2のPLL機能を実行して、シンボルの位相、周波数、及びドップラー速度を決定することと、シンボルレートの推定値を更新することとを含む。
【0015】
さらなる態様では、PLL機能は、2次PLL、3次PLL、可逆PLL、及び可逆反復PLLの1つである。そして、さらなる態様では、複数のデータパケットのうちのデータパケットのそれぞれは、隣接するパケットからのデータの重複を含み、PLL機能は2次PLLである。そして、さらなる態様では、データパケットのそれぞれは、フレーム化されたデータパケットであり、PLL機能は、可逆PLL、及び可逆反復PLLの1つである。
【0016】
さらなる態様では、方法は、フレームマーカーを検出することによってフレーム化された各データパケットのフレーム境界の位置を突き止めることをさらに含み、複数のデータパケットの第1及び第2の部分に対してキャリア回復誤差計算を実行することは、位置を突き止めたフレーム境界に基づく。そして、さらなる態様では、方法は、1つ以上のプロセッサ内の第3の処理ブロックで、複数のデータパケットの第1の部分に対してタイミング回復誤差計算を実行することと、複数のデータパケットの第1の部分に対してタイミング回復動作を実行することと、複数のパケットの第3の部分の処理と並行して、1つ以上のプロセッサ内の第4の処理ブロックで、複数のデータパケットの第2の部分に対してタイミング回復誤差計算を実行することと、複数のデータパケットの第2の部分に対してタイミング回復動作を実行することとを含み、フレーム境界の位置を突き止めることは、結合された第1及び第2の部分に対して実行される。
【0017】
さらなる態様では、複数の処理ブロックは、複数の中央処理装置(CPU)コアを含む。
【0018】
さらなる態様では、キャリア回復誤差計算は、ダウンリンク信号の同期したサンプルに関連付けられたシンボルを受信することと、ダウンリンク信号の周波数の推定値及びn乗されたシンボルの積に基づいてシンボルのキャリア誤差を決定することであって、nは整数である、決定することと、デシメーションフィルタによってシンボルをデシメートすることと、デシメートされたシンボルに対して第1のPLL機能を実行してシンボルの位相、周波数、及びドップラー速度を決定することと、周波数の推定値を更新することとを含む。
【0019】
さらなる態様では、1つ以上のプロセッサは、高スループットを達成するために単一命令複数データ(SIMD)技術を採用する。
【0020】
さらなる態様では、通信信号を表すデジタルビットストリームを処理するためのシステムが提供される。システムは、受信したアナログ信号をデジタルビットストリームに変換するように構成されたデジタイザと、デジタイザに通信可能に結合された1つ以上のプロセッサとを含み、1つ以上のプロセッサは、複数の処理ブロックを有し、上述の方法のいずれか1つに記載の方法を実行するように動作可能である。
【0021】
さらなる態様では、1つ以上のプロセッサによる実行時に、上述の方法のいずれか1つに記載の方法を1つ以上のプロセッサに実行させる命令を含む衛星ダウンリンク信号のデジタルビットストリームを処理するための非一時的コンピュータ可読媒体が提供される。
【0022】
本発明の詳細は、それらの構造及び動作の両方に関して、添付の図面を検討することによって部分的に収集することができ、図面において、同様の参照番号は同様の部品を指す。
【図面の簡単な説明】
【0023】
【
図1】本明細書に開示される実施形態による、通信システムの一例のグラフィカル表現である。
【
図2】
図1のシステムの1つ以上のコンポーネントとして使用するための有線または無線通信デバイスの機能ブロック図である。
【
図3】本明細書に開示される実施形態による、フィードフォワードまたは事前計算信号処理の一例のグラフィカル表現である。
【
図4】本明細書に開示される実施形態による、
図3のフィードフォワードまたは事前計算信号処理の別の例のグラフィカル表現である。
【
図5】本明細書に開示される実施形態による、受信されたダウンリンク信号の信号処理のための例示的なシステム及び方法の機能ブロック図である。
【
図6】本明細書に開示される実施形態による、受信されたダウンリンク信号の信号処理のための別の例示的なシステム及び方法の機能ブロック図である。
【
図7】本明細書に開示される実施形態による、タイミング回復誤差アルゴリズムの一例の機能ブロック図である。
【
図8】本明細書に開示される実施形態による、キャリア回復誤差アルゴリズムの一例の機能ブロック図である。
【
図9】本明細書に開示される実施形態による、タイミング及びキャリア回復誤差動作の一例の機能ブロック図である。
【
図10】本明細書に開示される実施形態による、例示的な位相ロックループ(PLL)機能の機能ブロック図である。
【
図11】本明細書に開示される実施形態による、PLL機能の別の例の機能ブロック図である。
【
図12】本明細書に開示される実施形態による、例示的なPLL機能のループ応答のグラフの例である。
【
図13】本明細書に開示される実施形態による、例示的なPLL機能のループ応答のグラフの例である。
【
図14】本明細書に開示される実施形態による、受信されたダウンリンク信号の信号処理のための別のシステム及び方法の一実施形態の機能ブロック図である。
【
図15】本明細書に開示される実施形態による、受信されたダウンリンク信号のキャリア及びフレーム取得のためのシステム及び方法の一実施形態の機能ブロック図である。
【
図16】本明細書に開示される実施形態による、キャリア周波数取得のためのシステム及び方法の一実施形態の機能ブロック図である。
【
図17】本明細書に開示される実施形態による、キャリア周波数取得のためのシステム及び方法の一実施形態の機能ブロック図である。
【発明を実施するための形態】
【0024】
高速処理を達成するために汎用プロセッサを使用する改良された通信システムの実施形態が開示される。本明細書に開示される実施形態は、汎用プロセッサを利用して高速信号処理を効率的に達成することができる改良された通信システムを提供する。この説明を読んだ後、当業者にとって、様々な代替的な実施形態及び代替的な適用において発明をどのように実施することができるかが明らかになるであろう。しかしながら、本発明の様々な実施形態が本明細書で説明されるが、これらの実施形態が、例及び例示としてのみ提示されており、限定ではないことが理解される。そのようにして、様々な実施形態のこの詳細な説明は、添付の特許請求の範囲に示されるように、本発明の範囲または広さを限定するものと解釈されるべきではない。
【0025】
本明細書全体を通した「一実施形態(one embodiment)」または「一実施形態(an embodiment)」への参照は、その実施形態と関係して記載される特定の機能、構造、または特性が、少なくとも1つの実施形態に含まれることを意味する。したがって、本明細書全体を通して種々の場所において出現する語句「一実施形態では」または「一実施形態では」は、必ずしも全て同一の実施形態を参照するわけではない。さらに、特定の特徴、構造、または特色は、1つ以上の実施形態における任意の好適な方法で組み合わせることができる。
【0026】
説明全体を通じて通信システムが主な例として使用されるが、開示された方法の適用はそれに限定されない。例えば、デジタル信号処理、モデムなどの使用を必要とする任意のワイヤレスまたは無線通信システムは、本明細書に記載のシステム、方法、及びコンピュータ可読媒体を実装することができる。
【0027】
本開示は、標準的なサーバ環境か仮想クラウド環境かいずれかで、汎用中央処理装置(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号に説明されているものと同様に、デジタル化されたサンプルを受け入れてアナログ信号に変換することもできる。
【0028】
その開示が全体として本明細書に援用されている米国特許第10,790,920号は、高速処理を達成するためにデジタル化されたダウンリンク信号を復調するための方法及びシステムを提供する。例えば、米国特許第10,790,920号は、デジタル化されたダウンリンク信号を同期させるために、隣接するデータのブロックの重複部分に対して実行されるタイミング回復プロセス及びキャリア回復プロセスを提供する。例えば、
図3及び
図4に関連して以下に説明されるように、フィードフォワード信号処理を使用してキャリア回復またはタイミング回復を実行するには、データのブロックは、適切な位相情報を取得するために処理されなければならない。タイミング回復の場合、取得される情報はタイミング位相情報であり、キャリア回復の場合、キャリア位相情報である情報。位相情報の導出にはいくつかのアプローチがある。例えば、米国特許第10,790,920号に説明されるように、信号は、位相検出器に供給され、次いで、フィルタリング及びデシメートされた後、曲線適合フィルタ計算機に流し込まれ得る。このアプローチは、安定した信号に対してはうまく機能する。ただし、実際のダウンリンク信号の実装は、位相ジャンプを引き起こす不一致を有する可能性があり、これにより、曲線適合フィルタ計算機に対して問題があることが判明する場合がある。例えば、キャリアの位相及びダウンリンク信号のタイミングは、送信機内の不完全さ、または任意のいくつかの理由によりすぐにジャンプする可能性があり、その結果、曲線適合フィルタは、追跡に使用するには不十分である場合がある。すなわち、そのような位相ジャンプを説明することができる曲線適合(例えば、線形、2次、放物線、または任意の他の代数方程式)は決定され得ない。
【0029】
したがって、本明細書に説明される実施形態は、ダウンリンク信号における位相ジャンプ、位相ノイズ、及び/または不一致を処理できる高速処理を達成するためにデジタル化されたダウンリンク信号を復調するように構成された方法及びシステムを提供する。例えば、本明細書に説明される実施形態は、デシメートされたデータに対して位相ロックループ(PLL)機能を実行する。本明細書で使用される場合、「PLL機能」は、例えば2次PLL、3次PLL、または当該技術分野で既知の任意のPLL機能など、任意のタイプのPLLを指す場合がある。他の例示的なPLLは、可逆PLL(RPLL)及び可逆反復PLL(RIPPL)を含むが、これに限定されるものではなく、両方とも
図11に関連して以下に説明される。デシメートされたデータに対してPLL機能を実行すると、共通の受信機の実装であるPLLを採用する標準的なフィードバック受信と同様に動作することなどであるが、これに限定されないいくつかの利点が提供され得、そのアプローチとの一貫性を維持するために有益であり、曲線適合フィルタが単に処理することができない迅速で予測不可能な位相ジャンプまたは位相ノイズを処理できる。
【0030】
ダウンリンク信号のキャリア及びタイミングの位相を推定するとき、処理されるダウンリンクでデータのブロックごとに3つの成分を計算する必要がある場合がある。例えば、平均開始位相、平均周波数(ドップラーとも呼ばれる)、及び周波数の平均変化率(ドップラー速度とも呼ばれる)を計算する必要がある場合がある。各成分の推定は、例えば
図15nに関連して以下に説明されるように、1つ以上のキャリア及びフレーム取得技術を介して処理前に可能である場合がある。いくつかの実施態様では、PLLが、実行時にサイクルスリップしないように、ドップラー及びドップラー速度は周知であると仮定することで十分である場合がある。
【0031】
位相を推定するためにPLLを使用することの1つの欠点は、全てのフィードバックループに共通である、PLL開始時に発生する初期ループ応答(例えば、インパルス応答、ステップ応答、ランプ応答などであるが、これらに限定されない)である。本明細書の実施形態は、初期ループ応答を説明するか、またはそれ以外の場合、プロセスからループ応答の欠点を取り除くためのシステム及び方法を提供する。
【0032】
PLLのループ応答を解決する1つのアプローチは、サンプルのブロックを連続して処理することである。ただし、PLLはステートマシンであり、現在のサンプルのブロックが処理されるまで、後続のサンプルのブロックを実行できず、したがって速度が制限されているため、これを複数のプロセッサ上で同時に実行するために拡大することはできない。好ましくは、ダウンリンクでのサンプルの各ブロックは、独立して処理されるため、所望のスループットを達成するために、隣接するデータブロックに関係なく、必要なだけ多くのプロセッサで実行することができる。
【0033】
初期ループ応答を解決する別のアプローチは、重複していないデータが処理されるときまでPLLが安定していることを確実にするために、隣接するデータのブロック間で重複部分を利用することである。このアプローチでは、処理されたデータのブロックからの重複データは、PLLのループ応答が安定している間に、その後処理される隣接するデータのブロックを同期させるために使用され得る。これは、重複データのマウントが、処理されるデータのブロックの全体サイズに比べて小さい場合に、有効な方法となり得、計算上効率的になり得る。例えば、3次PLL、RPLL、RIPLL、または当該技術分野で既知の任意の他のPLLであるが、これらに限定されない任意のPLL機能と共に誰の実装が使用され得るのかに関わりなく、本明細書に開示される様々な実施形態は、重複データのアプローチで2次PLLを利用する。しかしながら、データのブロックのサイズが減少するにつれ、非重複しないデデータ対する重複データの割合が増し、PLLのループ応答の時間は、固定ループ帯域幅のある時間では変化しない。重複データは、デシメーション前にサンプルレートまたはシンボルレートで処理しなければならないため、割合の増加は、CPUのパフォーマンスに悪影響を与える場合がある。本明細書に開示されるいくつかの実施形態によれば、例えば、以下により詳細に説明される可逆PLL(RPLL)及び/または可逆反復PLL(RIPLL)を使用することによって、重複の割合を低減させる、及び排除することさえできる。
【0034】
特定の場合、データのブロックを重複させることは実現可能ではない場合がある。例えば、特定のタイプの波形は、重複データを禁止にする。そのような波形の例は、バースト波形及びフレーム化された波形を含むが、これらに限定されない。バースト波形の場合、それぞれがデータパケットのブロックまたはバーストを含む信号が行き来し、データの重複が選択肢ではない可能性がある。バースト波形の一例は時分割多元接続(TMDA)である。TDMAでは、多くのユーザーが同じ周波数を共有し、送信するタイムスロットを割り当てられる。TDMAのようなバースト波形の場合、ユーザーが送信するたびに、取得は、最初から開始し、送信される全てのデータ、開始時のデータでさえを回復させるために望ましい。場合によっては、受信機がロックする時間を可能にするプリアンブルがあるが、これは必ずしも当てはまらない。それらの場合、ループ応答を考慮しなければならない。TMDAは一例であり、任意のバースト波形が、本明細書に開示される実施形態に従って使用され得る。DVB-S2、DVB-S2xなどであるが、これらに限定されないフレーム化された波形の場合、LDPCまたはリードソロモン順方向誤り訂正(FEC)を利用する特定のCCSDS波形、または任意の他のタイプのフレーム化された波形は、同期に重複データを利用するために問題を引き起こす可能性があるフレーム化されたデータパケットを含む。例えば、特定のフレーム化された波形は、フレーム境界でフレームごとに変調及びコーディングタイプを変更する場合があり、したがって重複部分を介して同期を抑制する。したがって、重複部分を使用することなく、独立してフレームごとにキャリア情報を回復させることが有益である場合がある。本明細書では、バースト波形及びフレーム化された波形は、集合的にフレーム化された波形と呼ばれ、それによって含まれるデータのブロックはフレーム化されたデータパケットのブロック、フレーム化されたデータパケット、またはフレーム化されたデータと呼ばれる。フレーム化されたデータの各ブロックは、データのフレームと呼ばれることがある。
【0035】
フレーム化されたデータのブロックのキャリア回復が可能になる前に、データのフレームのフレーム境界の位置を突き止めなければならない場合がある。各フレームのフレーム境界は、データのフレームの始まりに配置された既知のパターン(本明細書では、フレームマーカーと呼ばれる)を検出することによって位置を突き止めることができる。フレーム化された波形の場合、フレームマーカーは、添付同期マーカー(ASM)である場合がある。DVB-S2及びDVB-S2xの場合、フレームマーカーは、PLHEADERである場合があり、フレーム境界は、データのフレームごとにPLHEADERを検出することによって発見することができる。
【0036】
フレーム境界の位置が突き止められると、位相は、位相検出器を使用して計算できる。データの各フレームは、異なる変調タイプを有する場合があり、位相検出器は全ての考えられる変調タイプに対応できる必要がある。例えば、QPSK波形の場合、信号は4乗され、4つのIQコンスタレーションドット(constellation dot)を1ドットに分解する。次いで、位相は、信号の逆正接を取ることによって計算される。当該技術分野で既知であるように、位相を計算する多くのアプローチがある。DVB-S2の場合、変調タイプはQPSK、8PSK、16APSK、及び32APSKを含み、フレームはPLFRAMESと呼ばれ、サイズが変化する可能性がある。一般的な場合、固定サイズフレームまたは可変サイズフレームだけではなく、任意の変調タイプを使用できる。重複データを利用する実施形態では、変調タイプは、データの各ブロックに共通の固定変調タイプであると仮定される。したがって、重複を利用する実施形態は、隣接するデータのブロックの間で位相検出器を変更する必要がない。これらの場合、データの重複は、処理されたデータのブロックを同期させるための実行可能な選択肢である。しかしながら、フレーム化されたデータでは、変調タイプの変更には異なる位相検出器が必要になる。
【0037】
図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)変換器を含むこともできる。
【0038】
同様に、地上局130はアンテナ132及びデジタイザ134を有することができ、地上局140はアンテナ142及びデジタイザ144を有することができる。
【0039】
地上局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を介してクラウド処理システムに送信することができる。デジタルビットストリーム154は、処理のためにデータパケットブロック内にクラウド処理システムで収集されるパケットとしてクラウド処理システムに送信され得る。
【0040】
いくつかの例では、地上局120、130、140は、データの全て(例えば、ダウンリンク信号に含まれる)をローカルで処理することができるが、これは、時間、リソース、及び効率の観点から非常に高価になる可能性がある。したがって、いくつかの実施形態では、ダウンリンク信号は、デジタル化され、デジタルビットストリーム154としてリモート信号処理サーバ(SPS)150に送信することができる。いくつかの実施態様では、SPS150は、ワイドエリアネットワーク(WAN)を介してアクセス可能なオフサイト施設に位置するデータセンターなどの物理的位置に位置決めすることができる。そのようなWANは、例えばインターネットである場合がある。SPS150は、デジタルビットストリーム154からダウンリンク信号を復調し、ダウンリンク信号からデータまたは情報ビットを出力することができる。いくつかの他の実装では、SPS150は、クラウドコンピューティングまたはクラウド処理を使用して、本明細書に説明される信号処理及び他の方法を実行することができる。SPS150はクラウドサーバとも呼ばれることができる。
【0041】
次いで、SPS150は、処理されたデータをユーザーに提供するか、または別のサイトに送信することができる。データ及び情報は、ミッションに依存していることができる。さらに、データに含まれる情報は、気象データ、画像データ、及び衛星通信(SATCOM)ペイロードデータを含む、衛星の主な目的であることができる。上述のように、本明細書ではSATCOMが主な例として使用されているが、DSPを使用する任意の通信または信号処理システムは、本明細書で説明される方法を実装することができる。
【0042】
ソフトウェアで高い処理速度を達成するために、従来の位相ロックループ(PLL)または遅延ロックループ(DLL)のアプローチは、デシメーションの前に、ループ内のフィードバックが原因で問題がある可能性がある。フィードバックループは、全ての着信データ(例えば、ダウンリンク信号160及び/または170)を、容易に分割できない、またはその他の方法で分けることができない単一の(例えば、線形)プロセスで強制的に処理させる。フィードバックに加えて、例えば、誤差項を計算する頻度などを含む、PLL/DLLを使用して克服すべき他の障害がある。
【0043】
図2は、
図1のシステムの1つ以上のコンポーネントとして使用するための有線または無線通信デバイスの機能ブロック図である。処理デバイス(デバイス)200は、例えば
図1のSPS150として実装され得る。デバイス200は、本明細書に開示される信号処理方法またはステップのうちの1つ以上を実行するために必要に応じて実装されることができる。
【0044】
デバイス200は、デバイス200の動作を制御するプロセッサ202を含み得る。プロセッサ202は、CPUと呼ばれることもある。プロセッサ202は、例えば、SPS150に起因する機能を指示及び/または実行することができる。プロセッサ202を含むデバイス200の特定の態様は、クラウドベースの処理など、様々なクラウドベースの要素として実装されることができる。したがって、プロセッサ202は、ネットワーク(例えば、インターネット)を介していくつかの異なるプロセッサにわたって分散されたクラウド処理を表すことができる。あるいは、特定のコンポーネントをハードウェアに実装することもできる。プロセッサ202は、汎用マイクロプロセッサ、マイクロコントローラ、デジタルシグナルプロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、プログラマブルロジックデバイス(PLD)、コントローラ、ステートマシン、ゲートロジック、ディスクリートハードウェアコンポーネント、専用ハードウェア有限ステートマシン、または情報の計算もしくはその他の操作を実行することができるその他の任意の適切なエンティティのうちの1つ以上の任意の組み合わせによって実装され得る。
【0045】
プロセッサ202は、計算を実行することができる1つ以上のコア204(コア204aからコア204nとして図示)を有することができる。クラウド処理を使用する実装では、コア204は、分散クラウド処理の複数の反復を表すことができる。いくつかの実施形態では、プロセッサ202は、ハードウェアを使用して、受信機のための全ての計算を行う、複雑な集積回路であることができる。本明細書で使用される場合、コア204はそれぞれプロセッサ202の1つの処理素子であることができる。プロセッサ202は、本明細書に開示される方法に必要な並列処理を実行するために複数のコア204を実装することができる。いくつかの実施形態では、プロセッサ202は、クラウドコンピューティングのように複数のCPUにわたって分散され得る。
【0046】
デバイス200は、プロセッサ202に操作可能に結合されたメモリ206をさらに含むことができる。メモリ206は、クラウドベースのストレージまたはローカルハードウェアストレージであることができる。メモリ206は、読み出し専用メモリ(ROM)及びランダムアクセスメモリ(RAM)の両方を含むことができ、プロセッサ202に命令及びデータを提供することができる。メモリ206の一部には、不揮発性ランダムアクセスメモリ(NVRAM)も含まれ得る。プロセッサ202は、通常、メモリ206内に格納されたプログラム命令に基づいて論理演算及び算術演算を実行する。メモリ206内の命令は、本明細書で説明される方法を実装するために実行可能であり得る。メモリ206は、リムーバブルメディアまたは複数の分散データベースをさらに含むことができる。
【0047】
メモリ206はまた、ソフトウェアを格納するための機械可読媒体を含んでもよい。ソフトウェアは、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語などと呼ばれるかどうかにかかわらず、あらゆるタイプの命令を意味するものとして広く解釈されるものとする。命令には、コード(例えば、ソースコードフォーマット、バイナリコードフォーマット、実行可能コードフォーマット、または他の任意の適切なコードフォーマットでのもの)が含まれてもよい。命令は、プロセッサ202または1つ以上のコア204によって実行されると、デバイス200(例えば、SPS150)に、本明細書で説明される様々な機能を実行させる。
【0048】
デバイス200はまた、通信デバイス200と遠隔位置との間のデータの送受信を可能にする送信機210及び受信機212を含んでもよい。そのような通信は、例えばネットワーク152を介して地上局120とSPS150との間で行われる場合がある。そのような通信は、無線または有線通信である場合がある。送信機210及び受信機212は、トランシーバ214に組み合わされてもよい。トランシーバ214は、ネットワーク152に通信可能に結合されることができる。いくつかの例では、トランシーバ214は、ネットワークインタフェースカード(NIC)を含むこと、またはその一部であることができる。
【0049】
デバイス200は、ユーザーインタフェース222をさらに含み得る。ユーザーインタフェース222は、キーパッド、マイクロフォン、スピーカ、及び/またはディスプレイを含み得る。ユーザーインタフェース222は、デバイス200のユーザーに情報を伝達する、及び/またはユーザーから入力を受信する任意の素子またはコンポーネントを含み得る。
【0050】
本明細書で説明されるデバイス200の様々なコンポーネントは合わせて、バスシステム226によって結合され得る。バスシステム226は、データバスだけでなく、例えば、データバスに加えて、電源バス、制御信号バス、及びステータス信号バスを含むことができる。いくつかの実施形態では、バスシステム226は、ネットワーク152に通信可能に結合されることができる。ネットワーク152は、例えば、デバイス200(例えば、プロセッサ202)と地上局120との間に通信リンクを提供することができる。当業者であれば、デバイス200のコンポーネントが、分散処理のためのローカルエリアネットワークまたはワイドエリアネットワークなどの何らかの他のメカニズムを使用して、合わせて結合されてもよく、または相互に入力を受け入れても、もしくは提供してもよいことが理解されよう。
【0051】
図3は、フィードフォワードまたは事前計算信号処理300の一実施形態の概略的なブロック図のグラフィカル描写である。方法300は、例えばプロセッサ202による、複数の機能を組み込んだ一般化されたプロセスとして行われることができる。プロセッサ202は、1つ以上の所望のプロセスを実行するために、示されているように、複数の機能を直列または並列配置で実行することができる。各機能は、プロセッサ202によって実行可能で、かつメモリ206に格納されている命令またはソフトウェアのブロックまたはコレクションを指し得る。
【0052】
第1の機能302は、プロセッサ202によって実行されることができる。いくつかの実施形態では、第2の機能304は、第1の機能302に続いて連続的に実行することができる。したがって、プロセッサ202は、複数のコア204にわたって処理するための異なる機能でデータのブロックを分割して、第1の機能302及び第2の機能304を実行することができる。
【0053】
プロセッサ202は、第2の機能304に続いて、第3の機能306(306a、306b、...306nとして図示)の分散処理を並列で実行することができる。様々な数の機能306a~306nが並列で動作し得ることを示すために、3つのパスがそれらの間の垂直方向の3つの点で描かれており、4、5、6などであるが、これらに限定されない任意の数のパスを含むことができることを示している。第3の機能306の並列処理は、例えば、プロセッサ202のいくつかのコア204(例えば、処理ブロック)にわたり同じ機能に関連付けられたデータのブロックを分割することを含むことができる。例えば、「データのブロック」は、処理される必要があるサンプルのグループを意味するものであることができる。
【0054】
「並列」という用語は、本明細書では、処理がブロック306a~306nで同時に行われることを説明するために使用される。処理されるパケットは、1ブロック306a~306nから別のブロックまでの長さが異なるものである可能性があるため、パケットの処理は、1ブロック306a~306nからその次のブロックまで同じ速度またはスピードを有することができる。以下に示されるように、ブロック306a~306nのうちのいくつかは、他のブロックよりも速く進んでもよく、または遅く進んでもよい。したがって、並列という用語は、ブロック306a~306n内での同時または並行処理に限定されるべきではない。
【0055】
次いで、プロセッサ202は、第4の機能308及び第5の機能309を連続して実行することができる。第1の機能302及び第2の機能304と同様に、第4の機能308及び第5の機能309の連続実行は、複数のコア204にわたって処理するための異なる機能に関連付けられたデータのブロックを分割することを含むことができる。一般に、第1の機能302、第2の機能304、第3の機能306、第4の機能308、及び第5の機能309のそれぞれは、異なる処理ブロックで実行されることができる。本明細書で使用される場合、処理ブロックは、データのブロックに実行される特定のタスクを指すことができる。処理ブロックは、例えば、1つ以上のコア204に関連付けられることができる。
【0056】
したがって、方法300は、例えば、複数のコア204にわたって処理するための同じ機能でデータのブロックを分割することができる。同様に、方法300は、複数のコア204にわたって処理するための異なる機能でデータのブロックを分割することができる。
【0057】
方法300の他のいくつかの実施態様では、同じ処理ブロック(例えば、コア204)は、同じ機能であるのか、それとも異なる機能であるのかに関係なく、単一命令複数データ(SIMD)でデータの処理を実行することができる。
【0058】
いくつかの実施態様では、方法300の実施形態は、重複データを使用することによって、最小限のステート情報でデータブロックの処理をサポートすることができる。本明細書で使用される場合、ステート情報は、フィードバック(例えば、フィードバック処理)中に必要な変数、データフレーム境界などを含むことができる。例えば、フィードバックループの場合、ステート情報は、連続したデータストリームを処理する際にフィードバック中に必要とされるループ内で計算される変数を含むことができる。ステート情報には、データストリーム内のフレーム境界の位置も含まれることができる。他の例には、連続したデータフローを維持するために必要なバッファに格納された値(例えば、場合によっては多くの遅延素子)をステート情報が含む、FIRフィルタなどのモノが含まれることができる。
【0059】
ステート情報、及び隣接するデータブロックの重複部分を無視することで、プロセスはデータブロック間の可変重複レベルを使用して、並列処理を利用することができる。
【0060】
他の実装では、方法300の実施形態は、フレーム化されたデータを処理することをサポートすることができる。例えば、特定のフレーム化された波形は、フレーム境界で変調及びコーディングタイプを変更する場合があり、したがって同期を抑制する。したがって、重複部分を使用することなく、独立してフレームごとにキャリア情報を回復させることが有益である場合がある。隣接するデータのブロックの重複部分を無視することによって、プロセスは、他のデータのフレームとは関係なくデータのフレームごとにキャリア情報を回復させることで並列処理を利用できる。データのフレームを連続して無関係に処理することは、PLLのループ応答を修正するために利用され得る。
【0061】
図4は、
図3のフィードフォワードまたは事前計算信号処理のための方法の一実施形態のグラフィカル描写である。方法400は、プロセス315としてグループ化された複数の機能に対する直列-並列処理及び/または並列-直列処理のための方法300の原理を使用することができる。一例では、第1の機能302(
図3)は、プロセッサ202が処理のためのデータを受信するデータ取り込み機能305であり得る。第2の機能304(
図3)は、プロセッサ202がデータブロック内のデータを解析できる、データ分割機能310であり得る。
【0062】
いくつかの実施形態では、データ分割機能310は、データを解析して重複するデータブロックにする。次いで、重複するデータブロックは、処理ブロック315a~315nとして複数の機能の様々な並列反復で並列で処理することができる。例えば、第1のデータブロックは、処理ブロック315a内の機能グループによって処理することができ、別のデータのブロックは、処理ブロック315aと並列で実行された別の処理ブロック315b~315n内の機能グループによって処理することができる。複数の処理ブロック315a~315nは並列で実行されることができ、そのような2つの処理ブロックに限定されない。データブロックでの重複により、ステート情報にあまり依存しない(またはまったく依存しない)レベルの冗長性を提供することができる。必要なステート情報が少ないほど、連続ストリームとは対照的にデータブロックを並列で処理することが容易になる。様々な数の処理ブロック315a~315nが並列で動作し得ることを示すために、3つのパスがそれらの間の垂直方向の3つの点で描かれており、4、5、6などであるが、これらに限定されない任意の数のパスを含むことができることを示している。
【0063】
フレーム化された波形の場合、それぞれが、ブロック305によって取り込まれるデータの各フレームを示すフレームマーカーを含むデータのブロックが受信され得る。ブロック310は、データのブロック内のフレームマーカーを識別し、次いで処理ブロック315a~315nごとに1つのデータフレームを割り当てる。次いで、データのフレームは、処理ブロック315a~315nとして複数の機能の様々な並列反復で独立して及び並列で処理することができる。例えば、第1のデータのフレームは、処理ブロック315a内の機能グループによって処理することができ、別のデータのフレームは、処理ブロック315aと並列で実行された別の処理ブロック315b~315n内の機能グループによって処理することができる。複数の処理ブロック315a~315nは並列で実行され得、そのような2つの処理ブロックに限定されない。上述のように、様々な数の処理ブロック315a~315nが並列で動作し得ることを示すために、3つのパスがそれらの間の垂直方向の3つの点で描かれており、任意の数のパスを含むことができることを示している。
【0064】
「並列」という用語は、本明細書では、処理が処理ブロック315a~315nで同時に行われることを説明するために使用される。処理されるパケットは、1つの処理ブロック315a~315nから別の処理ブロックまでの長さが異なるものである可能性があるため、パケットの処理は、1つの処理ブロック315a~315nからその次の処理ブロックまで同じ速度またはスピードを有することができる。以下に示されるように、ブロック315a~315nのうちのいくつかは、他のブロックよりも速く進んでもよく、または遅く進んでもよい。したがって、並列という用語は、処理ブロック315a~315n内での同時または並行処理に限定されるべきではない。
【0065】
方法400は、第4の機能308(
図3)と同様であり、処理されたデータを結合するデータ結合機能320、及び第5の機能309(
図3)と同様のデータ出力機能325をさらに含むことができる。
【0066】
さらなる例では、方法300の様々な機能の調整可能な直列-並列または並列-直列配置は、フィードバックループを置き換えるためにフィードフォワード処理を実装するいくつかの方法を提供する。これは、スループットを向上させ、フィードバック処理中の遅延によって引き起こされるボトルネックを回避することができるため、有利である。
【0067】
方法300及び方法400によって提供される直列-並列または並列-直列処理の追加の利点は、処理ブロック(例えば、方法300の5つの処理ブロックのうちの1つ)内に1つ以上の所望のアルゴリズムを配置することにより、プロセッサ202が、処理ブロック(例えば、コア204)内の所与のアルゴリズムのスピードを懸念せずに、処理負荷を(例えば、複数のコア204にわたって)分散させることが可能になることである。したがって、各コア204は全く同じ処理負荷を共有し、個々のアルゴリズムによって引き起こされるボトルネック問題をなくす。
【0068】
方法300の実施形態のさらなる利点は、プロセッサ202内の計算負荷を軽減するために専用のアルゴリズム(例えば、処理ブロック)の順序をカスタマイズすることを含むことができる。以下で説明されるように、所与のプロセスの全体的な多段階処理は、複数のサブプロセスの順序に依存しない場合がある。したがって、いくつかの例では、第4の機能308を順序付けすることは、第3の機能306の前に実行される場合、特定の利点を有する可能性がある。
【0069】
方法300はさらに、メモリ帯域幅の最適化のために異なる変数タイプ、例えばint8、int16、及びfloatなどを実装することができる。これにより、特定のアルゴリズム(タイプに基づいたアルゴリズムなど)を加速することができる。さらに、これにより、柔軟性が改善し、メモリ帯域幅を最大にすることができる。
【0070】
図5、
図6、及び
図14は、本明細書に開示される様々な実施形態によるダウンリンク信号の信号処理の実施形態の機能ブロック図である。方法500、600、及び/または1400は、
図3及び
図4に関連して上述されたようなフィードフォワードブロック処理を含むことができる。方法500、600、及び/または1400は、複数のブロックを含み得る。いくつかの例では、各ブロックは機能ブロックを表し、機能ブロック306a、306b、...306n(
図3)などと同様に機能を実行し得る。別の例では、
図5及び/または
図6の複数のブロックの2つ以上は、処理ブロック315a、315b、...315n(
図4)などと同様に機能を実行する単一の「プロセス」315として共にグループ化することができる。
【0071】
図15は、本明細書に開示される実施形態による、受信されたダウンリンク信号のキャリア及びフレーム取得の実施形態の機能ブロック図である。方法1400は、
図3及び
図4に関連して上述されたフィードフォワードブロック処理を含むことができる。方法1400は複数のブロックを含む。いくつかの例では、各ブロックは機能ブロックを表し、機能ブロック306a、306b、...306n(
図3)などと同様に機能を実行し得る。別の例では、
図9の複数のブロックの2つ以上は、処理ブロック315a、315b、...315n(
図4)などと同様に機能を実行する単一の「プロセス」315として共にグループ化することができる。
【0072】
ブロック305では、SPS150は、デジタルビットストリーム154を(例えば、ネットワーク152を介して)取り込むこと、またはそれ以外の場合、受信することができる。ブロック305でのデータ取り込みは、ネットワーク接続(例えば、イーサネット)からデジタルビットストリームデータを受信することができる。
【0073】
ブロック310では、データは、データスプリッタによって並列データストリームに分割されることができる。いくつかの実施形態では、プロセッサ202は、ブロック310で必要とされるデータ分割機能を実行することができる。いくつかの他の実施形態では、別個のデータ分割コンポーネント(例えば、データスプリッタ)をデバイス200(
図2)に含めることができる。データを複数の並列ストリームに分割すると、ダウンリンク信号160、170などのダウンリンク信号の並列処理が可能となり得る。したがって、方法300は、フィードフォワード処理または事前計算処理を利用することができ、着信するデジタル化信号データをより小さい部分に分割してから、複数のコア204で処理することが可能になる。
【0074】
いくつかの実施態様では、デジタルビットストリーム154を分割して、同相/直交(I/Q)対で重複するパケットを形成することができる。いくつかの実施形態では、「重複パケット」は、連続するパケットが隣接するデータパケットと重複するデータパケットを含むことができる。いくつかの実施形態では、データパケットは全て同じ長さであってもよいが、重複していてもよい。データパケットでの重複は、データパケットの先頭または終端にあることができる。さらに、データパケットは、先行するデータパケット及び後続のデータパケットの両方と重複することができる。データパケットは、異なる長さを有することもできる(例えば、データ量が変動する)。したがって、処理ブロック315aに送信される第1のパケットは、処理ブロック315bに送信される第2のパケットの特定のデータに重複してもよく、またはそれ以外の場合特定のデータを繰り返してもよい。
【0075】
パケット間の重複量、または重複サイズは必要に応じてプログラム可能であり、設定されることができる。いくつかの例では、重複をパケットサイズの1パーセント(1%)に設定することができる。この重複サイズは、必要に応じて増加または減少することができる。例えば、重複サイズに影響する可能性がある1つの特定のパラメータは、デジタルビットストリーム154でのシンボルレートの不確実性である。大部分の信号では、最悪の場合の不確実性は1%未満であるため、1%の重複で大部分の場合がカバーされる。いくつかの他の実施形態では、重複は、必要に応じて、2%、3%、4%、5%、6%、7%、8%、9%、もしくは10%もの高さ、またはその間の任意の箇所であることができる。1%未満の重複も同様に有することも可能である。データレートの不確実性が0.1%未満である場合、重複は0.1%以下である可能性がある。
【0076】
別の実施態様では、デジタルビットストリーム154は、デジタルビットストリーム154内のデータのブロックと共に含まれるフレームマーカーに従って、フレーム化されたデータパケットに分割することができる。いくつかの実施形態では、デジタルビットストリーム154上のデータのブロックは、1つ以上のフレームマーカーを含み得る。いくつかの実施形態では、データのフレームは、複数のデータのブロックにわたって分散され得、例えばフレームの始まりを示すフレームマーカーは第1のデータのブロック内にあり、フレームの終わりを示すフレームマーカーは、後続のデータのブロックに含まれる。いくつかの実施形態では、「フレーム化されたデータパケット」は、連続パケットが、DVB-S2、DVB-S2xなどの可変符号化変調(VCM)を有するデータパケットを含むことができる。いくつかの実施形態では、データパケットの各フレームは、例えば、位相、変調、及び長さの変動など、互いの間で変化する場合がある。
【0077】
プロセッサ202は、デジタルビットストリーム154上に単一命令複数データ(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)に分割されることができる。
【0078】
プロセス315は、破線で示されており、方法300の処理ステップを示している。プロセス315には、複数の並列ステップまたは処理ブロック315a、315b、...315nで実行されるものが示されている。
【0079】
本明細書で使用されるプロセス315は、例えば、プロセッサ202によって実行される処理機能のコレクションを指すことができる。デジタルビットストリーム154は、処理負荷をいくつかのコア204に分散させるために複数の並列処理ブロック315a、315b、...315nに送信することができる。個々の処理ブロック315a、315b、...315nは、クラウド処理の個々の反復を表す場合がある。したがって、処理ブロック315a~315nのそれぞれの処理は(クラウドベースの)コア204a~204nに関連付けられることができる。必要な処理ブロック315a~315nの数は、処理されるデータ量に基づいて変動する。いくつかの実施形態では、処理ブロック315a~315nの数は、ネットワーク152を介して、またはローカルハードウェア処理の場合はプロセッサ202内で、利用可能な論理コアの数によって制限され得る。他のいくつかの実施形態では、メモリ帯域幅の制約は、信号処理中にボトルネックを引き起こす可能性がある。メモリ帯域幅は、データがプロセッサ(例えば、プロセッサ202)によって半導体メモリ(例えば、メモリ206)から読み出されること、またはその半導体メモリに格納されることができる速度を指すことができる。
【0080】
いくつかの実施形態では、処理ブロック315a~315nの数は変動し得る。一般に、存在する処理ブロック315a~315nが少ないほど、プロセス全体に必要なコアの数を制限することがより適切になる。これにより、より安価に運用する小規模な仮想プライベートクラウド(VPC)マシンにシステムを適合させることがさらに可能になる。VPCは、例えば、いくつかのCPUを有するSPS150を含むことができる。いくつかの実施形態では、8つの処理ブロック315a~315nを10Gビットのイーサネットリンクに使用することができる。そのような実施形態は、前方誤り訂正処理ブロックを含まなくてもよい。他のいくつかの実施形態では、必要な処理ブロック315a~315nの数に対する唯一の実際的な制限は、通信リンクのビットレート及び帯域幅(例えば、パイプのサイズ)である。ただし、任意の数(n)の処理ブロック315a~315nが可能である。しかしながら、いくつかの実施形態では、処理ブロック315a~315nの数(n)に対する実際的な制限は、CPUで実行できるスレッドの数、またはプロセッサ202内のコア204の数に基づいて存在する場合がある。しかしながら、単一のCPU内で制限に達する場合、SPS150(例えば、VPC)内の複数のCPU(例えば、プロセッサ202)は共に、処理を実行するために無制限の数のクラウドベースのCPUまたはコア204を有することができる。さらに、プロセッサ202は、必要に応じて新しい処理ブロック315a~315nを作成することができる。処理コア204は、スループット及び効率のために必要に応じて、複数の分散プロセッサ(例えば、プロセッサ202)にわたって分散することができる。
【0081】
別の例では、処理ブロック315a~315nの数は、ブロック305がデータのブロックまたはフレームを取り込む取り込み速度、及び各ブロックがデータのブロックまたはフレームを処理できる速度である各処理ブロック315a~315nの処理能力(例えば、処理速度)に基づく場合がある。例えば、処理ブロック315a~315nの数は、取り込み速度を処理速度で除算することによって決定し得る。例示的な例として、取り込み速度がマイクロ秒あたりに取り込まれるデータの20ブロックまたはフレームであり、各処理ブロック315a~315nがデータの各ブロックまたはフレームを処理するために1マイクロ秒を要する場合には、20の処理ブロック315a~315nが処理ブロックの最小数(n)となり得る。20未満の処理ブロックが使用される場合、次いで、ボトルネックが発生する場合があり、プロセスブロックがプロセスを完了する間、ブロックはバッファ内に保持され得る。いくつかの実施形態では、処理速度は、全ての処理ブロックの平均処理速度であってよい。別の例では、全ての処理ブロックが完了することを確実にするために、最低の処理速度が全体的な処理速度として使用され得る。
【0082】
処理ブロック315a~315nは、どの処理ブロック315a、315b、...315nが最も遅く(または最も速く)実行されるのかが関係しないような方法で配置される。方法300は、処理ブロック315a~315nにわたって処理負荷を共有することができるため、個々の処理ブロック315a~315nにおけるボトルネック問題によって引き起こされるあらゆる処理遅延を緩和することができる。例えば、処理ブロック315a~315n(以下の
図4の説明を参照)の個々のサブプロセスは、等しい速度で、実行されなくてもよく、または行われなくてもよい(例えば、いくつかは他のものより速い)。したがって、例えば、方法400(
図4)のより大きいプロセスが、パフォーマンスまたは処理時間での変動の主な原因となる可能性がある。処理ブロック315は、着信データを処理するために必要な回数だけ作成されることができる。
【0083】
いくつかの実施形態では、各処理ブロック315a~315nは、プロセッサ202によって実行される信号処理アルゴリズムのコレクションを表すことができる。本明細書で使用される場合、アルゴリズムは、所望の機能を実行する機能または方法ステップの最小のコレクションを指すことができる。複数の例示的なアルゴリズムが本明細書で説明される。
【0084】
方法300の例示的な利点は、必要に応じてより多くの処理ブロック315a~315nを作成する能力である。一般に、処理ブロック315a~315nはソフトウェアで実装されることができ、したがって、所与のデータレートまたは処理負荷に適するように必要に応じて作成または除去されることができる。各処理ブロック315a~315nは、異なる受信波形(例えば、ダウンリンク信号160及び/または170)及び関連するデジタルビットストリーム154のニーズに適合するように再配置されることができる。
【0085】
ブロック320では、複数の処理ブロック315からの処理された信号データを再結合し、ダウンリンク信号160、170上でエンコードされて変調された元のデータを形成することができる。いくつかの実施形態では、プロセッサ202はデータリコンバイナの機能を実行することができる。他の実施形態では、デバイス200は、そのような機能を実行するための追加のコンポーネントを有することができる。各データパケットまたは処理されたデータブロックはタイムスタンプを有することができる。データリコンバイナ(例えば、プロセッサ202)は、タイムスタンプに基づいてデータブロックを順序付けし、順序付けされたブロック間の位相を比較することができる。リコンバイナは、隣接するブロックの位相をさらに調整して、データストリームを再順序付けすることができる。いくつかの実施形態では、後続のデータブロックの位相は、先行のデータブロックの位相にマッチングするように調整されることができる。
【0086】
プロセス315に示される全ての処理ブロックには、実行するために少なくとも4つの選択肢がある。
1)処理ブロック315内の各サブ素子(例えば、各ブロック315a~315n)が独自のコア(例えば、コア204a~204n)を取得している、複数のブロックの実行、
2)処理ブロック315がブロック全体に対して1つの専用コアのみを取得している、複数のブロックの実行、
3)処理ブロック内の各サブ素子が独自のコアを取得している、単一のブロックの実行、及び
4)処理ブロックがブロック全体に対して1つの専用コアのみを取得している、単一のブロックの実行。
【0087】
実行できるコアが増えるほど、達成可能な速度は速くなる。
【0088】
ブロック325では、デバイス200は、データを適切な受信機に出力することができる。いくつかの例では、そのよう受信機は、1つ以上のミッション運用センターであり得る。このデータは、ミッション依存(例えば、衛星の目的)であることができ、特に、気象データ、画像データ、及びSATCOMペイロードデータを含むことができる。
【0089】
汎用CPUでは、高速パフォーマンスを制限する可能性のある主な要因には、1)データ取り込み、2)CPU容量、及び3)メモリ帯域幅の使用率という少なくとも3つがある。データ取り込みとは、どの程度の速さでデータをCPUに供給することができるのかを指す。CPU容量は、CPUのクロック速度及びCPU内のコア数によって決まる。メモリ帯域幅は、どの程度迅速にCPUと外部DDR RAM(CPUキャッシュではない)との間でデータを転送することができるかを指す。メモリ帯域幅は、メモリレーンの数及びDDR RAMのクロック速度によって決定されてもよい。特定の場合においては、高速処理を達成するための制限要因は、CPU容量であるが、他の場合にはメモリ帯域幅である。上記のどの場合がパフォーマンスに影響しているか判断するために注意する必要があり、メモリ帯域幅が制限されている場合、以下に説明される実施形態が、提案された特許アプローチ内でメモリ帯域幅の使用率を低下させる方法の非限定的な例である。
【0090】
所与の処理ブロック内の機能呼び出しは、CPUの計算またはメモリ帯域幅の使用率を最適化するような方法で配置されることができる。例えば、
図5に示される機能呼び出し(ブロックとして例示されている)を参照すると、所与の例の場合、様々な機能呼び出し(例えば、タイミング回復誤差計算ブロック、タイミング回復ブロック、キャリア回復誤差計算ブロック、及びキャリア回復ブロック)は、メモリ帯域幅を最小限に抑えるようにグループ化することができる。別の機能が開始する前に各機能がデータセット上で完了するように、これらの機能呼び出しは独立して呼び出すことができるため、各機能が単純化される。別の例では、複数または全ての機能呼び出しを1つのブロックに結合することができるため、データは毎回機能の実行後にRAMに転送されず、結合した機能のメモリ帯域幅は、独立して呼び出すよりもはるかに小さくなる。機能を独立して呼び出す場合には、第1の機能呼び出し(例えば、タイミング回復誤差計算)は、第2の機能呼び出し(例えば、タイミング回復)が発生するであろうよりも前にデータセット全体にわたって実行され得る。結合する場合、第2の機能呼び出しが実行される前に、データの一部分だけが第1の機能呼び出しで処理されるであろう。このようにして、メモリ帯域幅が低減する。この方法は、
図5に示される機能だけではなく、機能の任意のグループ化に適用する場合がある。例えば、方法は、
図6に示される方法、または本明細書に開示されるブロック(例えば、
図7~
図9、
図14、及び
図15に示される様々な機能呼び出しブロック)で実行される機能呼び出しのための任意の他のグループ化に適用され得る。
【0091】
メモリ帯域幅の使用率を向上させる別の方法は、上記のアプローチと同様に、いくつかの機能呼び出しブロックを1つのブロックに折りたたむことである場合がある。例えば、
図5、
図6、
図14、及び
図15を参照して以下でより詳細に説明されるように、タイミング及び/またはキャリア回復を実行するには複数の機能が必要な場合がある。通常、操作を容易にし、CPUを最適化するためには、各機能は独自のブロックを必要とする場合があるが、メモリ帯域幅の使用率を下げるためには、それぞれが複数の機能ブロックを含む1つ以上の処理ブロックに機能をグループ化することができる。このトレードオフは、CPUのヒットのパフォーマンスの代わりにメモリ帯域幅の使用率を低下する。
【0092】
図5は、本明細書に開示される実施形態による、受信されたダウンリンク信号の信号処理のための方法の一例の機能ブロック図である。例えば、
図5は、複数のブロックを含む方法500を示しており、複数のブロックの1つ以上は、ブロックのグループ化が
図4の処理ブロック315a~315nのそれぞれで処理されるように、プロセス315として実装され得る。方法500のブロックのそれぞれはまた、単一のブロックが
図3の機能306a~306nにわたって実行できるように機能306としてそれぞれ実装されてもよい。
図3によるブロックの実行は、別個に、または
図4によるプロセスの実行と組み合わせて実行され得る。
【0093】
方法500は、以下に説明されるオフセット波形とは対照的に、標準波形処理のために使用できる。例えば、ビットをシンボルにマッピングし、次いでそれらのシンボルを搬送波に変調する波形に標準波形処理を使用することができる。標準波形の例は、二相位相変調(BPSK)、直角位相変調(QPSK)、8PSK、16APSK、32APSK及び64APSKだけでなく、直交振幅変調(QAM)の波形を含む。
【0094】
ブロック505では、プロセッサ202(例えば、コア204の1つ以上)は、受信されたデータパケット(例えば、デジタル化ビットストリーム154のサンプル、または受信機212によって受信されたデジタル化されたダウンリンク信号160及び/または170)に対してタイミング回復誤差計算を実行できる。タイミング回復誤差計算は、整合フィルタを着信データストリーム(例えば、デジタル化ビットストリーム154)に適切に位置合わせするために必要な位相情報を提供することができる。整合フィルタは、時間領域内で送信した波形を適合させるために使用され、受信信号内の全てのエネルギーを取り込み、パフォーマンスを最適化するためにタイミング誤差によって位置合わせされる。ブロック505のプロセスの一例は、
図7に関連して説明される。タイミング回復誤差計算の結果は、3つのパラメータ、1)開始位相(度)、2)周波数調整(ヘルツ(Hz))、及び3)ドップラー速度調整(Hz/秒)を含む場合がある。上述の単位は例示的なものであり、本開示を限定するものではない。他の同等の単位も可能である。
【0095】
ブロック510では、プロセッサ202(例えば、コア204の1つ)は、パケットに対してタイミング回復を実行して、内部で生成されたマッチフィルタを、変調器のそれぞれのマッチフィルタによって生成された受信サンプルに位置合わせできる。位置合わせはブロック505の計算に基づいている。ブロック510の出力は、ブロック505で受信されたデータパケット内の同期した(例えば、時間補正された)シンボルである。
【0096】
ブロック520では、プロセッサ202(例えば、コア204の1つ)は、パケットに対してキャリア回復誤差計算を実行して、位相及び周波数情報を決定することができる。ブロック415で実行される機能の一例のより詳細な説明は、
図8に関連して以下に説明される。
【0097】
ブロック525では、プロセッサ202(例えば、コア204の1つ)は、ブロック520の計算に基づいてパケットに対してキャリア回復を実行することができる。キャリア回復は、衛星111及び/またはプラットフォーム110からのダウンリンク信号(例えば、ダウンリンク信号160及び/または170)における未知の周波数、ドップラー速度、及び位相オフセットを補償する。不確実性の最も一般的な2つの原因は、衛星/プラットフォームの動きによるドップラー効果、及び衛星/プラットフォーム内部の不完全な発振器によるドップラー効果である。プロセッサ202は、ブロック525で、ブロック520からの位相、周波数、及びドップラー速度の補正を適用して、ブロック525の出力時のダウンリンク信号の変調データに対応する同期シンボルを形成することができる。
【0098】
上述のように、方法500の複数のブロックは、それぞれ機能を表し得、機能306a、306b、...306n(
図3)の1つ以上として実装され得る。例えば、例示的な例では、ブロック505は、
図3の機能306として実装され得、そのような入力例は、データのブロックに分割され、並列機能306a~306nで処理され得る。同様に、ブロック510、520、及び/または525は、別個の機能306として実装され、複数のデータのブロックを並列で処理するために、それぞれ複数の機能306a~306nとして実行され得る。
【0099】
別の例では、単独でまたは組み合わせて、
図5に示される複数のブロックは、
図4のプロセス315と同様の方法で機能を実行する単一の「プロセス」515として共にグループ化することができる。すなわち、
図5の複数のブロックは、プロセス515として共にグループ化し、処理ブロック315a、315b、...315n(
図4)として複数の並列反復で実行し得る。例えば、方法500の異なる部分は、処理515(例えば、この例では、ブロック505~525)として共にグループ化し、
図4に関連して上述されたように、直列-並列及び/または並列-直列処理で実行することができる。
図4に関して、
図5に示される例示的な例では、入力サンプルはブロック305で取り込まれ、ブロック310でサンプルの重複ブロックに分割され得、重複するデータの各ブロックは、処理ブロック315a~315nとして、プロセス515の複数の並列反復で処理され得る。次いで、処理された重複データブロックは、処理されたデータを結合するためにデータ結合320に出力されてから、方法500の後続のブロックによる処理のためにブロック325によって出力される。
【0100】
ブロックの特定の例は、プロセス515として共にグループ化されて示されているが、この例は制限されることを意図しておらず、方法500の1つ以上のブロックの任意のグループ化は、プロセス515として共にグループ化し、
図4に関連して説明されたように、並列で実行し得る。例えば、
図5に示される複数のブロックは、それぞれが
図4のプロセス315と同様に機能を実行できる複数の「プロセス」として共にグループ化することができる。例示的な例として、方法500のブロック505及びブロック510は、第1のプロセス515として共にグループ化することができ、ブロック520及び525は、第2のプロセス515として共にグループ化することができ、それぞれは、上述されたように、
図4に関連して上述されたように、直列-並列及び/または並列-直列処理で実行することができる。
【0101】
様々な例では、
図5の複数のブロックは、本開示全体を通して説明されるSIMD処理技術を使用して実装され得る。SIMD技術により、スループットが向上し、メモリ帯域幅要件が最小になることが示され得る。SIMD技術を使用して実行される各処理ブロックの機能を高めることは、メモリ帯域幅要件の最小化を強化するために役立ち得る。
【0102】
図6は、本明細書に開示される実施形態による、受信されたダウンリンク信号の信号処理のための別の方法の一実施形態の機能ブロック図である。方法500は、方法400(
図4)に類似しており、ステップのいくつかを組み合わせ、再配置する場合がある。例えば、
図6は、複数のブロックを含む方法600を示しており、複数のブロックの1つ以上は、ブロックのグループ化が
図4の処理ブロック315a~315nのそれぞれで処理されるように、プロセス315として実装され得る。方法600のブロックのそれぞれはまた、単一のブロックが
図3の機能306a~306nにわたって実行できるように機能306としてそれぞれ実装されてもよい。
図3によるブロックの実行は、別個に、または
図4によるプロセスの実行と組み合わせて実行され得る。
【0103】
方法600はオフセット波形処理に使用できる。例えば、オフセット波形処理は、オフセット直角位相変調(OQPSK)、最小シフトキーイング(MSK)、ガウス最小変調(GMSK)、及び成形オフセット直角位相シフト(SOQPSK)など、同相(I)チャネルと直交(Q)チャネルとの間にオフセットまたはずれを有する波形に使用できる。
【0104】
ブロック605では、プロセッサ202は、パケットに対してタイミング回復誤差計算及びキャリア回復誤差計算を実行することができる。タイミング回復誤差計算及びキャリア回復誤差計算は、ブロック505及び520(
図5)で実行されるものに類似している。しかしながら、方法600では、キャリア回復は、シンボルのタイミング回復の前に実行される。方法500への入力はデータサンプルであり、出力は補正された同期シンボルである。ブロック605のサブステップは、
図9に関連して以下に説明される。
【0105】
ブロック625では、プロセッサ202は、ブロック605からの計算に基づいてキャリア回復動作を実行することができる。キャリア回復動作は、ブロック525(
図5)で実行されるものに類似してよい。
【0106】
ブロック610では、プロセッサ202は、ブロック505からの計算に基づいてタイミング回復動作を実行することができる。タイミング回復動作は、ブロック510(
図5)で実行されるものと同様であってよい。
【0107】
上述のように、方法600の複数のブロックは、それぞれ機能を表し得、機能306a、306b、...306n(
図3)の1つ以上として実装され得る。例えば、ブロック605、610、及び625の任意の1つ以上は、
図3の機能306として実装され得、そのような入力例は、データのブロックに分割され、並列機能306a~306nで処理され得る。
【0108】
別の例では、単独でまたは組み合わせて、
図6に示される複数のブロックは、
図4のプロセス315と同様の方法で機能を実行する単一の「プロセス」615として共にグループ化することができる。すなわち、
図6の複数のブロックは、プロセス615として共にグループ化し、処理ブロック315a、315b、...315n(
図4)として複数の並列反復で実行し得る。例えば、方法600の異なる部分は、処理615として共にグループ化し、
図4に関連して上述されたように、直列-並列及び/または並列-直列処理で実行することができる。
図4に関して、
図6に示される例示的な例では、入力シンボルはブロック305で取り込まれ、ブロック310でシンボルの重複ブロックに分割され得、重複するデータの各ブロックは、処理ブロック315a~315nとして、プロセス615の複数の並列反復で処理され得る。次いで、処理された重複データブロックは、処理されたデータを結合するためにデータ結合320に出力されてから、方法600の後続のブロックによる処理のためにブロック325によって出力される。
【0109】
ブロックの特定の例は、プロセス615として共にグループ化されて示されているが、この例は制限されることを意図しておらず、方法600の1つ以上のブロックの任意のグループ化は、プロセス615として共にグループ化し、
図4に関連して説明されたように、並列で実行し得る。例えば、方法600のブロック625及びブロック610は、プロセス615として共にグループ化することができ、上述されたように、
図4に関連して上述されたように、直列-並列及び/または並列-直列処理で実行することができる。
【0110】
様々な例では、
図6の複数のブロックは、本開示全体を通して説明されるSIMD処理技術を使用して実装され得る。SIMD技術により、スループットが向上し、メモリ帯域幅要件が最小になり得る。SIMD技術を使用して実行される各処理ブロックの機能を高めることは、メモリ帯域幅要件の最小化を強化するために役立ち得る。
【0111】
図7は、本明細書に開示される実施形態による、タイミング回復誤差アルゴリズムのための例示的な方法の機能ブロック図である。
図7は、位相ロックループ(PLL)機能を利用する
図5のブロック505のタイミング回復誤差計算のための例示的な方法である方法700を示す。
【0112】
ブロック705では、当該技術分野で既知であるように、プロセッサ202は、Gardnerタイミング誤差検出器を着信データに適用して、タイミング情報を作成することができる。別の実施形態では、着信サンプルストリームを1サンプルだけ遅延させることができる。次いで、非遅延データに遅延データの共役を乗算すること(共役乗算)ができる。共に利点と欠点を有するため、どちらを実装し得るのかは、工学上のトレードオフである。
【0113】
Gardnerタイミング誤差検出器と共役乗算の両方とも、周波数領域においてタイミングスパイクを生じさせる可能性がある。「タイミングスパイク」は、周波数領域における単一の周波数トーンとして出現する。タイミングスパイクは、サイクル、度、またはラジアン単位の開始位相、Hz単位のタイミング周波数オフセット、及びHz/秒単位のタイミングドップラー推定を含むタイミング推定情報を含む。タイミングスパイクは、推定されたシンボルレートによってDCに混合することができ、次いで、信号対雑音比を改善して、位相、周波数、及びドップラー速度推定値の精度を向上させるためにフィルタリングし、デシメートすることができる。キャリア周波数及びシンボルレートの推定値は、最初に取得機能から導出される。キャリア周波数及びシンボルレートの推定は、フィードフォワード誤差回復アルゴリズムと同様に計算される。2つの主な違いがある。つまり、1)デシメーションは、より広い周波数範囲を検出することを可能にするためにはるかに少ない、及び2)位相アンラップ及び曲線適合計算は、ピーク検索計算が後に続くFFTに置き換えられる。初期推定値が導出されると、推定値は後に(例えば、ブロック630内で)更新される。
【0114】
両方の方法とも、キャリアの不確実性に対してほとんど反応しないという利点を有するため、キャリア回復前に実行することができる。タイミング回復ステップを最初に実行する別の利点は、これにより、サンプルレートが、シンボルレートの約2倍(2x)からシンボルレートの正確に1xに低下するため、キャリア回復アルゴリズムが可能な限り低速で実行することである。別の利点は、サンプルレートが元のサンプルレートの半分になるため、キャリア回復ループが、向上した信号対雑音比で動作できることである。
【0115】
ブロック710では、プロセッサ202は、ブロック705で生成されたタイミングスパイクを、タイミング推定値またはシンボルレートの推定値と混合することができる。方法700が開始されるとき、ダウンリンク信号152についての特定の情報が既知ではない場合がある。したがって、ブロック710で、プロセッサ202は、シンボルレートの初期推定値を使用して、ブロック705からのタイミングスパイクと混合し得る。この推定値は、以下で説明されるように、後に更新される。このプロセスは、時間スパイクをDCに混合することができるため、それはデシメーションフィルタによって容易にフィルタリングできる。ブロック705及びブロック710は、データパケット/データサンプルのタイミング誤差を提供することができる。
【0116】
ブロック715では、プロセッサ202は、混合された信号をデシメートして、サンプリングレートを下げることができる。タイミングスパイク(信号)の出力は完全にフィルタを通過するが、雑音出力はデシメーション速度に比例して減少するので、デシメーションは信号対雑音比を改善できる。
【0117】
ブロック720では、プロセッサ202は、デシメートされたサンプルに対してPLL機能を実行して、(例えばタイミング回復ブロック510に)出力し、ブロック730でタイミング推定値を更新するために適用できる位相、周波数、及びドップラー速度のオフセットの情報を取得することができる。重複データの場合、PLL機能は2次PLLであってよい。ただし、例えば、3次PLL、高次PLL、RPLL、RIPLLなどであるが、これらに限定されない他のPLL機能を利用してもよい。ブロック720は、デシメートされたサンプルを受信し、データパケット間でのデータの重複を使用して、データブロックの重複しないデータが処理されるときまでに、PLLがプログラムされたループ帯域幅に基づいて安定していることを確実にする。いくつかの実施形態では、PLL機能720は、キャリア取得技術(例えば、
図14のブロック1430及び
図15のブロック1506と1520に関連して説明される技術など)を通じて取得された位相、周波数、及びドップラー速度オフセット情報の推定値を使用してプレシードされてよい。別の例として、フレーム化されたデータの場合、PLL機能は、フレームマーカー位相を計算し、この情報を使用してPLL機能をプレシードすることによってプレシードされ得、その結果、PLL機能は、位相の曖昧さが除去された状態で開始する。ブロック720で実行される機能の一例のより詳細な説明は、
図10に関連して以下に説明される。
【0118】
図7のタイミング回復誤差アルゴリズムは、PLL機能を使用して説明されているが、本開示の範囲はそのような実装のみに制限されることを意図していない。例えば、いくつかの実施態様では、ブロック720は、デシメートされたサンプルに対して実行される位相アンラップ計算、ならびに位相、周波数、及びドップラー速度オフセット情報を決定するための曲線適合計算に置き換えられ得る。その一例は、米国特許第10,790,920号に記載されている。
【0119】
方法700の出力は、最初に受信されたサンプル及び関連するメタデータ(例えば、位相、周波数、及びドップラー速度情報)である。ブロック720でPLL機能を利用すると、上述のようないくつかの利点が得られ得る。第1に、本明細書に開示されるフィードフォワード処理にPPLを利用することは、PLLを用いる標準的なフィードバック受信機と同様に動作し、それによって一貫性を維持し得る。第2に、本明細書に開示されるフィードフォワード処理にPPLを利用すると、曲線適合フィルタが説明することができない迅速で予測不可能な位相ジャンプが処理される。
【0120】
図8は、本明細書に開示される実施形態による、キャリア回復誤差アルゴリズムのための方法の一例の機能ブロック図である。
図8は、PLL機能を利用する
図5のブロック520のキャリア回復誤差計算のための例示的な方法である方法800を示す。方法800を使用して、必要とされる位相、周波数、及びドップラー速度情報を計算し、着信シンボル同期信号を適切に復調するためにミキシング信号を作成することができる。
【0121】
ブロック805では、着信信号は、変調タイプに基づいて特定のべき乗にすることができる(例えば、BPSKは2乗し、QPSKは4乗し、8PSKは8乗する)。信号をべき乗することは、信号自体をn回乗算することを含み得、nは整数である。これはまた、本明細書では、信号を累乗すると呼ばれる場合がある。そのような計算の結果が、ブロック810でキャリア推定値を用いてDCに混合できる、周波数領域におけるキャリアスパイク(例えば、連続波信号)である。推定値は、キャリアスパイクが周波数領域内のどこに着地するのかに関する中心周波数、例えば
図15に関連して以下に説明される取得機能を使用して生成することができる。
【0122】
ブロック815では、プロセッサ202は、上記のブロック715(
図7)と同様に、混合信号をデシメートしてサンプリングレートを下げることができる。タイミングスパイク(信号)の出力は完全にフィルタを通過するが、雑音出力はデシメーション速度に比例して減少するので、デシメーションは信号対雑音比を改善できる。
【0123】
ブロック820では、プロセッサ202は、上記のブロック720(
図7)と同様に、デシメートされたサンプルに対してPLL機能を実行して、キャリア回復アルゴリズムを更新するために(
図5のブロック520)適用できる位相、周波数、及びドップラー速度のオフセットの情報を取得することができる。
【0124】
ブロック830では、ブロック820からの出力は、ブロック810のキャリア周波数推定値を更新(し、改善)するために使用できる。
【0125】
図9は、本明細書に開示される実施形態による、タイミング回復誤差アルゴリズム及びキャリア回復誤差アルゴリズムのための方法のフローチャートである。
図9は、PLL機能を利用する
図6のブロック605のタイミング回復誤差計算及びキャリア回復誤差計算のための例示的な方法である方法900を示す。I区間とQ区間の間にハーフシンボルずれを有する波形の場合、タイミング回復及びキャリア回復は共に実行できる。いくつかのそのような波形は、例えばOQPSK、MSK、GMSKを含む場合がある。デジタル化ビットストリーム154は、ブロック905で二乗(2のべき乗)できる。これにより、2つのスパイクが周波数領域に作成される可能性がある。各スパイクは次いで、キャリア周波数とシンボルレートとの複合推定値から作成される混合信号によって0Hz近くで混合できる。推定値は、
図15に関連して以下に説明される取得機能を使用して生成することができる。
【0126】
ブロック910では、両方の混合信号は次いで、サンプリングレートを下げるために、ブロック915でデシメートされる。
【0127】
ブロック920では、プロセッサ202は、
図7のブロック720及び
図8のブロック820と同様に、両方の混合信号に対してPLL機能を実行できる。ブロック820で、発生するPLL機能がある。2つのPLL機能からの出力の合計は、信号のキャリア位相情報であり、差は信号のタイミング位相情報である。方法900の出力は、最初に受信されたサンプル及び関連するメタデータ(例えば、位相、周波数、及びドップラー速度情報)である。しかしながら、ブロック720及びブロック820とは異なり、システムは、キャリア推定値とタイミング推定値の両方のデータを出力することができる。
【0128】
ブロック930では、この情報は、(ブロック730及びブロック830と同様に)更新され、
図6に示される順序でキャリア回復アルゴリズム及びタイミング回復アルゴリズムに渡される。
【0129】
図10は、本明細書に開示される実施形態による、例示的なPLL機能の機能ブロック図である。本明細書の例示的な実施形態では、
図10は2次PLL1000を示す。2次PLLは、ブロック720(
図7)、ブロック820(
図8)、及び/またはブロック920(
図9)のPLL機能として実装され得る。上述のように、ブロック720、820、及び920のPLL機能は、
図10に示される2次PLLに限定されるのではなく、任意のPLLとして実装され得る。例えば、3次PLLなど。
【0130】
PLL1000は、受信された波形を基準波形と同期させ、上述の位相情報を出力するために使用し得る2次PLLの例示的な例である。PLL1000は、位相誤差に基づいて入力信号s[n]を発振器に調整するため、位相誤差はゼロに収束し、それによって安定した状態に到達する。
【0131】
図10に示されるように、PLL1000は、入力信号s[n]を受信し、基準入力波形と局所的に生成された波形の位相差を決定するように構成された位相誤差検出器を含む。位相誤差検出器は、e
D[n]誤差とラベルが付けられた位相誤差を計算する。信号e
D[n]は次いで、位相誤差検出器からの出力中の雑音及び不必要な周波数成分(例えば、e
D[n])を除去するループフィルタに提供される。ループフィルタは、信号e
F[n]を、基準信号に可能な限り近い位相を有する波形を生成する数値制御発振器(NCO)に出力する。信号e
F[n]は、所与のデシメートされたデータ時間スライスnでのNCOに対する周波数調整を表す。生成された波形は次いで、位相誤差検出器にフィードバックされる。
【0132】
いくつかの実施形態では、PLL機能1000の基準入力波形は、キャリア取得技術(例えば、
図14のブロック1435及び
図15のブロック1506と1520)を通じて取得された位相、周波数、及びドップラー速度オフセット情報の推定値を使用してプレシードされてよい。別の例として、フレーム化されたデータの場合、PLL機能は、フレームマーカー位相を計算し、この情報を使用してPLL機能をプレシードすることによってプレシードされ得、その結果、PLL機能は、位相の曖昧さが除去された状態で開始する。
【0133】
PLL機能1000から、位相情報はNCOに続いて出力され得る。位相出力は、入力信号s[n]の位相、周波数、及びドップラー速度オフセット情報を反映する位相要素のアレイまたはベクトルである。例えば、方法700の場合、ブロック720でのPLL機能は、デシメートされたサンプルを入力信号s[n]として受信し、ブロック630でタイミング推定値を更新し、
図5のブロック510でタイミング回復のためのダウンストリームを出力するために適用できる位相、周波数、及びドップラー速度トオフセット情報を取得する。同様に、方法800の場合、ブロック820でのPLL機能は、デシメートされたシンボルを入力信号s[n]として受信し、
図5のブロック525でキャリア回復に適用できる位相、周波数、及びドップラー速度オフセット情報を取得する。なおさらに、方法900の場合、ブロック920でのPLL機能は、デシメートされたサンプルを入力信号s[n]として受信し、
図6のブロック610でキャリア回復に適用できる位相、周波数、及びドップラー速度オフセット情報を取得する。
【0134】
図11は、本明細書に開示される実施形態による、別の例示的なPLL機能の機能ブロック図である。
図11は、ブロック720(
図7)、ブロック820(
図8)、及び/またはブロック920(
図9)のPLL機能として実装され得るPLL機能1100を示す。
【0135】
図11の例示的な例では、PLL機能1110はRIPLL1120を含む。RIPLL1120は、RPLL1122と、精密ドップラー及びドップラー速度推定器1124とを含む。RIPLL1120は、推定器1110から入力信号を受信する。推定器1110は、入力信号、例えば、
図7、
図8、または
図9を参照して、デシメートされたデータを受信する。方法700の場合、推定器1110は、入力信号としてデシメートされたサンプルを受信する。方法800の場合、デシメートされたシンボルは入力信号として提供される。推定器1110で、粗ドップラー及びドップラー速度推定器1110は入力信号を処理して、位相、周波数、及びドップラー速度オフセット情報の大まかな推定値を取得する。いくつかの実施形態では、推定器1105は、例えば、
図14のブロック1430及び
図15の1520に関連して説明される方法など、キャリア及びフレーム取得方法として実装され得る。
【0136】
位相、周波数、及びドップラー速度オフセット情報の大まかな推定値は、RPLL1122に入力される。RPLL1122で、PLL(例えば、
図10の2次PLL1000など)は、受信された情報に対して順方向及び逆方向の両方で実行され得る。古典的なPLLは、それが一度に1つの入力信号しか処理できないので、時間的に順方向に実行する。古典的なアナログPLLの場合、リアルタイムではなく、データのブロック全体がデータ収集後に処理されるので、本明細書に開示されるフィードフォワードプロセスを用いると、この制約は取り除かれる。したがって、RPLL1122は、入力信号全体にわたって2度実行することによって、従来のPLLの初期ループ応答の欠点を修正できる場合がある。データの時間的な順序付けに従って順方向に入力データを処理した後(例えば、時間的に最初に受信された信号の部分を、時間的に後に受信された部分の前に処理する)、従来のPLLは逆転されて、逆方向に実行される(例えば、時間的に最後に受信された信号の部分を、最初に受信された部分の前に処理する)。ループフィルタ(例えば、
図10のループフィルタ)内の積分器値及びNCO(例えば、
図10のNCO)内の位相累算器値などのPLLステート情報は、順方向パスから保存され、逆方向パス用にPLLをシードするために使用される。
【0137】
RPLL1122が実行されると、RPLL1122は、ドップラーとドップラー速度推定値の両方を改善するために分析及び改良できる位相、周波数、及びドップラー速度オフセット情報の推定を出力する。例えば、RPLL1122からの出力は、精密ドップラー及びドップラー速度推定器1123を通して実行され得る。例えば、推定器1123は、当該技術分野で既知であるように、RPLL1122から、出力された位相ベクトルに対してポリフィット関数を実行し得る。改良されたドップラー及びドップラー速度が、推定器1123で測定され、事前に補償された後、RPLL1123はデータに対して2回目に(例えば、第2の反復)実行できる。このプロセスは、本明細書では、可逆反復PLLと呼ばれ、すなわち、RPLL1122及び推定器1124はRIPLL1124としてグループ化され得る。
【0138】
上述の例は、RPLL1123を2回反復実行することに言及しているが、RPLL1123が、ループ応答を減少させ、応答を可能な限りゼロに近づけるために、所望の回数反復実行され得ることを理解されたい。さらに、
図11の例示的な例はRIPLL1120を示しているが、本明細書の実施形態はRIPLL1120に限定されない。RIPLL1120の反復的な性質は、推定器1124による処理またはRPLL1122の反復実行なしに、ドップラー及びドップラー速度情報を含む位相ベクトルを取得するためにRPLL1122の単一反復が実行されるように、除去され得る。したがって、本明細書でのRPLLへの言及は、RPLLまたはRIPLLを指すと理解される。
【0139】
RPLL1122の単独の実行またはRIPLL1120の実行により、従来のPLLのループ応答により引き起こされる誤差の実質的に全てが除去され得る。これは、両方の場合で、従来のPLLで大部分の誤差を誘発する効果が補償され、残る全てが、位相、周波数、及びドップラー速度オフセット情報を追跡するために適した従来のPLLの非線形効果であるためである。
【0140】
図12及び
図13は、本明細書に開示される実施形態による、例示的なPLL機能のループ応答のグラフの例である。例えば、
図12及び
図13は、例示的なRIPLL(例えば、RIPLL1120)の複数の反復に対するループ応答を示す。
図12及び
図13は、秒単位の時間に対して描かれた、ラジアン単位の位相出力誤差(例えば、ドップラー及びドップラー速度誤差)に関して同じループ応答を示す。
図13は、
図12に示されるループ応答の拡大された部分を示す。
図12及び
図13は、RPLLの2回の反復(例えば、
図11の2回の反復RIPLL1120)に対するループ応答を示す。線1205は、順方向の2次PLL(例えば、
図10のPLL1000などの従来のPLL)の第1の反復の位相誤差を示す。線1210は、逆方向の2次PLLの第1の反復(例えば、
図11のRPLL1122などのRPLLの実行)の位相誤差を示す。すなわち、線1210は、RPLLの単一の反復の出力からの例示的なドップラー及びドップラー速度誤差を示す。線1215は、RPLLの第2の反復の逆方向の実行後の位相誤差を示す(第2の反復の順方向が、
図12及び
図13の読みやすさを改善するために示されていないことに留意されたい)。
【0141】
図12及び
図13に示されるように、線1205のループ応答は、安定するまで約9マイクロ秒を要する(
図12及び
図13に示されるタイムスケールが例示的のみを目的としており、変わる場合があることに留意されたい)。
図7~
図9に関連して上述されるように、本明細書に開示されるいくつかの実施形態は、PLLループ応答が安定する間、隣接するデータのブロック間の重複部分を利用することによってPLL機能のループ応答を説明している。すなわち、前のデータブロックからの重複部分は、隣接するデータのブロックを処理するために使用し得、重複していないデータが処理されるときまでPLLが安定していることを確実にする。したがって、ループ応答が隣接ブロックで安定するための時間を除去し得る。これは、重複量が、処理されるデータのブロックのサイズに比べて小さい場合に、有効な方法となり得、計算上効率的になり得る。
【0142】
しかしながら、いくつかの実施態様では、隣接するデータブロックのサイズは縮小する場合があり、PLLのループ応答は固定ループ帯域幅では時間内に変化しないので、サイズが小さくなるにつれ、重複の割合は増加する。重複したデータは、デシメーション前のサンプルレートまたはシンボルレートで処理しなければならないので、この増加はCPUのパフォーマンスに悪影響を与える場合がある。ただし、RPLLまたはRIPLLを使用して、重複の割合を最小限に抑え、0に低減することもできる。
【0143】
例えば、
図12及び
図13に示されるように、線1205は、第1の反復の順方向パスでの大きな位相誤差を示す。第1の反復での逆方向の実行後(例えば、線1210)、第1の反復の順方向パスと比較して、位相誤差は大幅に改善される。さらに、第2の反復の逆方向パスの実行に続いて、位相誤差はほぼゼロ位相になる。したがって、
図12及び
図13は、RPLL(例えば、
図11のRPLL1122)を利用することによって達成できる大幅な改善、及びRIPLL(例えば
図11のRIPLL1120)によって達成されるさらなる改善を示す。
【0144】
図10に関連して上述されたように、いくつかの実施形態は、3次PLLを使用して位相、ドップラー、及びドップラー速度情報を取得し得る。3次PLLは、ドップラー速度誤差を説明できるが、初期ループ応答の欠点は依然として当てはまる場合があるため、本明細書に説明されるRPLLは従来のPLLに勝る利点を維持する。
図11の例示的なRPLL及びRIPLLは2次PLLを使用して説明されているが、本明細書の実施形態は2次RPLL及びRIPLLのみに限定されることを意図していない。3次RPLL及び/または3次RIPLLは、パフォーマンスを強化するために利用され得、
図11に上述された方法と実質的に同様な方法で実装され得る。
【0145】
図14は、本明細書に開示される実施形態による、受信されたダウンリンク信号の信号処理のための別の方法の一実施形態の機能ブロック図である。
図14は、
図3及び/または
図4の信号処理のための方法に従って実装され得る方法1400を示す。方法1400は、隣接するデータパケットのブロック間に最小の重複を有するか、重複を有さないフレーム化されたデータを処理するために利用され得る。方法1400は、上述されるオフセット波形とは対照的に、標準波形処理のために使用できる。
【0146】
方法1400は、複数のブロックを含み、複数のブロックの1つ以上は、ブロックのグループ化が
図4の処理ブロック315a~315nのそれぞれで処理されるように、プロセス315として実装され得る。方法1400のブロックのそれぞれはまた、単一のブロックが
図3の機能306a~306nにわたって実行できるように機能306としてそれぞれ実装されてもよい。
図3によるブロックの実行は、別個に、または
図4によるプロセスの実行と組み合わせて実行され得る。
【0147】
方法1400は、プロセッサ202(例えば、コア204の1つ以上)が、受信されたデータパケット(例えば、デジタル化ビットストリーム154のサンプル、または受信機212によって受信されたデジタル化されたダウンリンク信号160及び/または170)に対してタイミング回復誤差計算ブロック1405及びタイミング回復ブロック1410を実行できるプロセス1415を含む。ブロック1405及びブロック1410は、それぞれブロック505及び510(
図5)に類似しており、ブロック505及び510(
図5)と同様の機能を実行する。タイミング回復誤差計算1405の一例は、上記
図7に関連して説明される。
【0148】
上述のように、PLL機能(例えば、RPLLまたはRIPLL)は、データパケット間の重複に対する依存を低減するために(例えば、
図7のPLL機能720として)ブロック1405で適用され得る。RPLL(またはRIPLL)など、PLL機能を用いてタイミング回復を実行する1つの非限定的な利点は、より少ない遅延時間を達成し得ることである。データのブロックは、経時的に取り込まなければならず、全てのサンプルが収集するまで処理することはできない。例えば、シンボルレートが毎秒100万シンボル(sps)であり、必要とされるブロックサイズが100,000シンボルの場合、処理するために十分なシンボルを収集するための時間は100ミリ秒である。収集時間に加えて、処理時間も総遅延に関係する。したがって、タイミング回復が上述のようにRIPLLを利用することが有益である場合がある。
【0149】
別の例では、
図7を参照して、タイミング回復誤差計算ブロック1405は、PLL機能720をデシメートされたサンプルに対する位相アンラップ計算、及び曲線適合計算に置き換えて、位相、周波数、及びドップラー速度オフセット情報を決定することによって、実装され得る。その一例は、米国特許第10,790,920号に提供されている。
【0150】
上述のように、ブロック1405及び1410は、それぞれ機能を表し得、機能306a、306b、...306n(
図3)の1つ以上として実装され得る。例えば、例示的な例では、ブロック1405は、
図3の機能306として実装され得、そのような入力例は、データのブロックに分割され、並列機能306a~306nでして処理され得る。同様に、ブロック1410は、別個の機能306として実装され、複数のデータのブロックを並列で処理するために、それぞれ複数の機能306a~306nとして実行され得る。
【0151】
別の例では、単独でまたは組み合わせて、ブロック1405及び1410は、
図4のプロセス315と同様の方法で機能を実行する単一の「プロセス」1415として共にグループ化し得る。すなわち、ブロック1405及び1410は、プロセス1415として共にグループ化し、処理ブロック1415a...1415nとして複数の並列反復で実行し得る。例えば、ブロック1405及び1410は、プロセス1415として共にグループ化し、
図4に関連して上述されたように、直列-並列及び/または並列-直列処理で実行することができる。
図4に関して、
図14に示される例示的な例では、入力サンプルはブロック305で取り込まれ、ブロック310で複数のサンプルのブロックに分割され得、サンプルの各ブロックは、処理ブロック1415a~1415nとして、プロセス1415の複数の並列反復で処理され得る。次いで、処理されたサンプルのブロックは、処理されたデータを結合するためにデータ結合320に出力されてから、方法1400の後続のブロックによる処理のためにブロック325によって出力される。
【0152】
様々な実施形態では、各処理ブロック1415a~1415nは、任意の所与の時にサンプルのブロックを処理し得る。例えば、処理ブロック1415aは、第1の部分(例えば、第1のデータのブロック)のサンプルを受信し、処理ブロック1415bは、第2の部分(例えば、第2のデータのブロック)を受信するなどである。各処理ブロック1415a~1415nは、各ブロックを処理し、後続のブロックを処理する前に、各それぞれのブロックの時間補正されたシンボルを出力し、その全てはデータコンバイナ320(
図4)によって結合される。
【0153】
いくつかの実施形態では、
図4に関連して上述されたように、処理ブロック1415a~1415nの数は、取り込み測度及び処理速度に基づいていてよい。例えば、プロセス1415が毎秒20ブロックを取り込み、各ブロックを処理するために1秒を要する場合、次いで少なくとも20の処理ブロックが必要とされる場合があり、それ以外の場合、ブロックは、プロセスがプロセスを完了する間バッファに保持されるであろう。上記は、処理ブロックの再小数を表すが、所望される場合、20を超える処理ブロックが利用され得る。
【0154】
プロセス1415の出力は、プロセス1415によって受信されたブロック化されたデータパケット内の時間補正されたシンボルのブロックである。プロセス1415から(例えば、データ結合プロセス320に続いて)結合された出力は、PLHEADERフレーム同期ブロック1430に提供され、このブロックは、データのブロックの出力ストリーム(例えば、プロセス1415からのシンボルのブロック)を取り込み、データのフレーム(例えば、シンボルのフレーム)を出力する。
【0155】
例えば、プロセス1415からの時間補正されたシンボルの各ブロックは、(例えば、メタデータとして)それに付加された1つ以上のフレームマーカーを含め、ブロック1430に出力される。ブロック1430は、各データのブロック内のフレームマーカーを検出することによってフレーム境界の位置を突き止める。例えば、ブロック1430は、各ブロックに含まれるフレームマーカーを検索し、相関器及び周波数追跡プロセス(ブロック1435)を実行して、フレーム境界の位置を突き止め、キャリア周波数を追跡する。いくつかの実施形態では、ブロック1435は、
図16に関連して以下に説明される機能と同様の機能を実行して、フレームマーカーを検出し得る。例えば、
図16を参照すると、ブロック1435は、異なる周波数トライアルビンを計算し(例えば、ブロック1605)、次いでサブ機能ブロック(例えば、ブロック1610)で差分共役計算(提供される場合)によって提供される粗キャリア周波数によって混合される。混合信号から、ブロック1435は、フレームの始まり(SOF)を検出して(例えば、ブロック1615)、角周波数トライアルビン内の可能性のある候補フレームマーカーを識別する。可能性のある候補フレームマーカーが発見されると、全てのフレームマーカーの可能性は、候補フレームマーカーに対して相関付けられ、相関結果が十分に強力である場合には、フレームの始まりのフレームマーカーが相関から検出される(例えば、ブロック1620)。
【0156】
例えば、方法1430は、フレーム化された波形の場合には添付同期マーカー(Attached Sync Marker)(ASM)を検出し得るか、またはDVB-S2、DVB-S2xなどの場合はPLHEADERを検出し得る。例えば、DVB-S2の場合、ブロック1430は、各ブロックのPLHEADERを検索し、相関器及び周波数取得/追跡ブロック1435を実行して、フレーム境界の位置を突き止め、キャリア周波数を追跡する。例示的な例として、ブロック1435は、位置を突き止めたPLHEADER内のフレームの始まり(SOF)を検出して、可能性のある候補PLHEADERを識別する。可能性のある候補PLHEADERが発見されると、全てのPLHEADERの可能性は、候補PLHEADERに対して相互に関連付けられ、相関結果が十分に強力である場合には、PLFRAMEが相関から検出される。バースト波形の場合、ASMは、当該技術分野で既知であるように、FFT技術及びIFFT技術を使用して相関を実行するブロック1435によって位置を突き止められ得る。いくつかの実施形態では、ブロック1435は、
図15のブロック1520に関連して以下に説明される機能と同様に実行される機能である場合がある。
【0157】
いくつかの実施態様では、ブロック1430は、複数の処理ブロックまたは機能ブロックに分散されない場合がある。ブロック1430は、フレーム境界が、隣接するデータのフレーム間で位置を突き止められ得、データの全てのフレームは相応して同期され得るように、全てのフレームに対する時間補正されたシンボルを受信し得る。
【0158】
いくつかの例では、データのフレームは、複数の隣接するデータのブロックにわたって分散され得る。この場合、ブロック1430は、フレームの始まりとフレームの終わりを示すフレームマーカーを識別し、フレームマーカー間の各データのブロックの部分をコピーして、収集されたデータのブロックを形成する。収集されたブロックは次いで、複数の隣接するブロック間のデータのブロックのストリームに装入され、データのブロックの通常のブロックに関連して上述されたように処理される。隣接するブロックは改変されないが、収集されたブロックのブックエンドであった部分は、データのフレームを処理するときに無視される。
【0159】
フレーム境界が発見されると、周波数ロックループ(FLL)機能(またはFLL)をブロック1430内で実装することが可能である。FLLは、arctan(A*conj(B))/(2*pi)*FRを実行する(それとして位相を計算する)ことによって2つの隣接するフレームマーカー間の位相差を比較し、上式で、Aは以前に折りたたんだフレームマーカーのIQ値であり、Bは現在折りたたまれているフレームマーカーのIQ値であり、FRはフレームマーカーの更新速度である。位相は2つのフレームの周波数差を表し、信号のドップラー及びドップラー速度を見つけるために2次FLLに送り込むことができる。フレームマーカーが多くのシンボルで区切られているため、周波数推定値はきわめて正確である可能性があるが、同じ理由からこの計算の更新速度は小さいため、正確な周波数は非ゼロのナイキストゾーンにある場合がある。ナイキストゾーンの曖昧さを解決する2つの方法がある。1)波形の特性を利用する、または2)いくつかのデータのフレームを収集する。選択肢1の場合、DVB-S2のようないくつかの波形は、フレーム内のパイロットの送信を可能にして、適切なナイキストゾーンを見つけるために周波数推定を改善する。DVB-S2の場合、精密周波数推定器またはパイロット支援線形補間を用いることができる。選択肢2の場合、波形が使用可能な周波数補助が組み込まれていない場合、
図17に関連して以下に説明される方法と同様に、同じ変調タイプのいくつかのデータのフレームを収集し、キャリア折りたたみアルゴリズムを実行することが可能である。この場合、ドップラー速度はFLLによって提供することができるため、計算が簡略化される。どちらの場合にも、ナイキストゾーンが既知になると、周波数推定値はナイキストゾーンの量だけ単にオフセットすることができ、処理は続行できる。追跡をさらに強化し、改善された位相、ドップラー、及びドップラー推定値をブロック1420に提供するために、FLLの後にPLLを追加することが可能である。
【0160】
フレーム境界の位置が突き止められると、フレームはブロック1430で同期され、時間補正されたシンボルのフレームとして出力される。プロセッサ202は、受信された時間補正されたシンボルのフレームに対してキャリア回復誤差計算ブロック1420及びキャリア回復ブロック1425を実行することができる。ブロック1420及びブロック1425は、それぞれブロック520及び525(
図5)に類似しており、ブロック520及び525(
図5)と同様の機能を実行する。キャリア回復誤差計算1420の一例は、上記
図8に関連して説明される。
【0161】
上述のように、ブロック1420及び1425は、それぞれ機能を表し得、機能306a、306b、...306n(
図3)の1つ以上として実装され得る。例えば、例示的な例では、ブロック1420は、
図3の機能306として実装され得、そのような入力例は、それぞれが機能306a~306nに割り当てられたデータのフレームに分割され、並列機能306a~306nとして処理され得る。同様に、ブロック1425は、別個の機能306として実装され、複数のデータのブロックを並列で処理するために、それぞれ複数の機能306a~306nとして実行され得る。
【0162】
別の例では、単独でまたは組み合わせて、ブロック1420及び1425は、
図4のプロセス315と同様の方法で機能を実行する単一の「プロセス」1417として共にグループ化し得る。すなわち、ブロック1420及び1425は、プロセス1417として共にグループ化し、処理ブロック1417a...1417nとして複数の並列反復で実行し得る。例えば、ブロック1420及び1420は、プロセス1417として共にグループ化し、
図4に関連して上述されたように、直列-並列及び/または並列-直列処理で実行することができる。
図4に関して、
図14に示される例示的な例では、入力サンプルはブロック305で取り込まれ、ブロック310でサンプルのフレームに分割され得、それぞれのフレームは処理ブロック1417a~1417nに割り当てられ、サンプルの各フレームは、処理ブロック1417a~1417nとして、プロセス1415の複数の並列反復で処理され得る。次いで、処理されたデータのフレームは、処理されたデータを結合するためにデータ結合320に出力されてから、方法1400の後続のブロックによる処理のためにブロック325によって出力される。
【0163】
上述のように、ブロック1430でフレーム境界の位置が突き止められると、位相検出器を使用して位相を検出することができる(例えば、
図8のブロック805)。データの各フレームは、異なる変調タイプを有する場合があり、位相検出器は全ての考えられる変調タイプに対応できなければならない。さらに、変調タイプごとに異なる位相検出器の計算が使用される場合があり、これはキャリア位相情報の計算方法に影響を与える。したがって、重複データの場合とは異なり、
図8を参照して、キャリア回復誤差計算1420は、着信信号のデータのフレームごとに変化する、データのそれぞれの入力フレームの変調タイプに基づいて着信信号をべき乗する。検出されたフレームマーカーがこの情報を含む場合があるため、変調タイプは、例えば出力シンボルに含まれるメタデータとしてブロック1430によって提供され得る。キャリア回復誤差計算ブロック1420は、例えば、
図8のブロック805に説明されるように、メタデータに示された変調タイプに基づいて、着信を特定のべき乗にすることができる。次いで、方法800のブロック810~830は、上述と実質的に同じ方法で実行される。
【0164】
本明細書に開示されるいくつかの実施形態では、QPSK波形の場合、PLL機能(例えば、
図14のブロック1420で実行されるような
図8のブロック820)は、(例えば、
図8のブロック805で実行されるように)IQコンスタレーションを単一のトーンに折りたたんだ後に実行されるので、キャリア回復の曖昧さは、信号の適切な位相位置合わせに関して存在する場合がある。例えば、データの所与のフレームの変調タイプがQPSKである場合、PLL機能は4つの異なる位相可能性で開始し、1つだけが適切な位置合わせである。フレーム化された波形の場合、フレームマーカーを使用して、フレームを適切に位相位置合わせすることが可能である。これは、おそらく、PLL機能が位相の曖昧さが取り除かれた状態で開始するか、またはキャリア回復を実行する(例えば、ブロック1425)前にPLL機能から出力される位相情報を補正する(本明細書では事後補正と呼ばれる)ように、フレームマーカー位相を計算し、この情報を使用してPLL機能をプレシードすることによって達成され得る。DVB-S2及び事後補正の場合、フレームマーカーは、4つの異なる位相曖昧さ値を有する可能性があるため、PLL機能の位相出力は、4つの異なる位相値、0、π/4、π/2、またはπ*3/4によってスケーリングされる。
【0165】
ブロック1425は、受信されたダウンリンク信号に対応するビットを出力する1つ以上の動作によるダウンストリーム処理のために位相及びタイミング補正シンボルを出力する。例えば、動作は、フレームデコード、順方向誤り訂正、スクランブル解析、デインタリービング、脱乱択などを含み得るが、これらに限定されない。各動作は、プロセッサ202(例えば、コア204の1つ以上)が実行し得る動作ブロック1440a~1440nとして
図14に例示的に示される。
【0166】
上述のように、ブロック1440a~1440nは、それぞれ機能を表し得、機能306a、306b、...306n(
図3)の1つ以上として実装され得る。例えば、例示的な例では、ブロック1440aは、
図3の機能306として実装され得、そのような入力例は、データのブロックに分割され、並列機能306a~306nで処理され得る。
【0167】
別の例では、単独でまたは組み合わせて、ブロック1440a~1440nは、
図4のプロセス315と同様の方法で機能を実行する単一の「プロセス」1419として共にグループ化し得る。すなわち、ブロック1440a~1440nの1つ以上は、プロセス1419として共にグループ化し、処理ブロック1419a...1419nとして複数の並列反復で実行し得る。例えば、
図14の例示的な例に示されるように、ブロック1440a~1440nは、プロセス1419として共にグループ化し、
図4に関連して上述されたように、直列-並列及び/または並列-直列処理で実行することができる。
図4に関して、入力サンプルはブロック305で取り込まれ、ブロック310で複数のサンプルのフレームに分割され得、サンプルの各フレームは、処理ブロック1419a~1419nとして、プロセス1419の複数の並列反復で処理され得る。次いで、処理されたデータのフレームは、処理されたデータを結合するためにデータ結合320に出力されてから、ブロック325によって出力され、ビットとして出力される。
【0168】
図14は、プロセス1419にグループ化されたブロック1440a~1440nの全てを示すが、本明細書の実施形態は、そのような実施態様に限定されない。例えば、ブロック1440a~1440nのサブセットは複数のプロセスにグループ化され得る。
【0169】
様々な例では、
図14の複数のブロックは、本開示全体を通して説明されるSIMD処理技術を使用して実装され得る。SIMD技術により、スループットが向上し、メモリ帯域幅要件が最小になることが示され得る。SIMD技術を使用して実行される各処理ブロックの機能を高めることは、メモリ帯域幅要件の最小化を強化するために役立ち得る。
【0170】
いくつかの実施態様では、改善のための別の方法は、パスまたは反復ごとにPLL機能を実行するために必要とされるループ帯域幅を変化させることである。ループ帯域幅の使用を変化させると、初期のドップラー及びドップラー速度推定(例えば、
図15に関連して説明されるキャリア及びフレーム取得技術から)を改善するために、より速い引込時間が可能になり得る。
【0171】
いくつかの実施態様では、上述のように、本明細書に開示されるPLL機能は、データに対して必要に応じて何度も順方向及び逆方向で実行することができる。実行される反復が多いほど、初期ループ応答からの誤差は小さくなり、PLL機能の不適切なドップラー及びドップラー速度推定を有することによって生じる追跡の問題も小さくなる。例えば、キャリア回復の場合、PLL機能は、データに対して一度順方向と逆方向で実行され得(例えば、単一のRPLL)、次いで機能は、(例えば、
図11の精密ドップラー及びドップラー速度推定器1124で)ドップラー及びドップラー速度を計算及び補償するために実行され得る。補償されると、RPLLは再実行され得、今回は2つ以上の反復のために順方向と逆方向で移動し(例えば、RIPLL)、次いでドップラー及びドップラー速度を計算及び補償し、RPLLを再び実行し得る。このプロセスは、パフォーマンスを向上させるためにループのループ帯域幅要件を変更しながら、必要に応じて何度も実行し得る。
【0172】
キャリア及びフレーム取得のための多くの技術があり、本明細書の実施形態は、複数のCPU及び/またはSIMD命令を使用するそのような技術を実行することを提供する。
【0173】
図15は、本明細書に開示される実施形態による、受信されたダウンリンク信号のキャリア及びフレーム取得のための方法の一実施形態の機能ブロック図である。
図15は、
図3及び/または
図4の信号処理の方法に従って1つ以上のキャリア及びフレーム取得技術を実行し得る方法1500を示す。
図15は、上述のようにオフセット波形とは対照的に、標準波形処理のために使用できる方法1500を示す。様々な例では、方法15は、本開示全体を通して説明されるSIMD処理技術を使用して実装され得る。SIMD技術により、スループットが向上し、メモリ帯域幅要件が最小になることが示され得る。SIMD技術を使用して実行される各処理ブロックの機能を高めることは、メモリ帯域幅要件の最小化を強化するために役立ち得る。
【0174】
方法1500は、複数のブロックを含み、複数のブロックの1つ以上は、ブロックのグループ化が
図4の処理ブロック315a~315nのそれぞれで処理されるように、プロセス315として実装され得る。方法1500のブロックのそれぞれはまた、単一のブロックが
図3の機能306a~306nにわたって実行できるように機能306としてそれぞれ実装されてもよい。
図3によるブロックの実行は、別個に、または
図4によるプロセスの実行と組み合わせて実行され得る。
【0175】
方法1500は、プロセッサ202(例えば、コア204の1つ以上)が、受信されたデータパケット(例えば、デジタル化ビットストリーム154のサンプル、または受信機212によって受信されたデジタル化されたダウンリンク信号160及び/または170)に対してタイミング回復誤差計算ブロック1505及びタイミング回復ブロック1510を実行できるプロセス1515を含む。ブロック1505及びブロック1510は、それぞれブロック1405及び1410(
図14)に類似しており、ブロック1405及び1410(
図14)と同様の機能を実行する。
【0176】
上述のように、ブロック1505及び1510は、それぞれ機能を表し得、機能306a、306b、...306n(
図3)の1つ以上として実装され得る。同様に、単独でまたは組み合わせて、ブロック1505及び1510は、
図4のプロセス315と同様の方法で機能を実行する単一の「プロセス」1515として共にグループ化し得る。すなわち、ブロック1505及び1510は、例えば、プロセス1415に関連して上述されたように、プロセス1515として共にグループ化し、処理ブロック1515a...1515nとして複数の並列反復で実行し得る。
【0177】
ブロック1506では、プロセッサ202(例えば、コア204の1つ以上)は、プロセス1515からの出力に対してキャリア及びフレーム取得を実行することができる。上述の実施形態と同様に、ブロック1506は機能を表し得、機能306a、306b、...306n(
図3)の1つ以上として実装され得る。例えば、例示的な例では、キャリア及びフレーム取得は、機能ブロック1506として実装され得、そのような入力シンボルは、データのブロックに分割され、並列機能1506a~1506nで処理され得る。
【0178】
キャリア取得には、多くのアプローチを利用できるであろう。例えば、サンプル領域での周波数領域分析、微分位相計算(例えば、nがデータのブロックであり、mが遅延の量であるときのmean(x[n]*conj(x[nm]))など。また、
図15に示されるように、タイミング回復後にキャリア周波数情報を推定することも可能である。フレーム化されたデータの場合、上述のように、フレームマーカーを検出することに基づいてフレームを相互に関連付けることも可能である。
【0179】
図15の例示的な例では、タイミング回復がプロセス1515で実行されると、データのフレームはコピーされ、
図15に示される多くの複数の機能1506a~1506nに送信される。各機能ブロックは、狭い周波数帯域で相互に関連し、増加した数の機能ブロックを使用することによって、取得時間が短縮される。キャリア周波数推定及びフレーム境界識別は計算コストが高いので、使用できるCPUコア(例えば、それぞれが機能1506a~1506nを実行するコア204)の数が多いほど良い。例えば、受信された信号の周波数の不確実性範囲が+/-1MHzであり、各機能1506が+/-100kHzをカバーできる場合、10のCPUコアを使用して、一度に周波数範囲全体にわたって検索することが可能である。SIMD技術を使用すると、取得時間はさらに改善される。
【0180】
図15はタイミング回復ブロックと、キャリア及びフレーム取得ブロックの両方を示すが、上述の実施形態は、プロセス1506を介してキャリア推定及びフレーム推定を受信し得る(例えば、ブロック520は、機能1506a~1506nで実行する)。例えば、
図720に関連して説明されるように、キャリア及びフレーム取得(ブロック1506で実行されるものなど)は、PLL機能をプレシードするために使用され得る。これらの場合、プロセス1515のタイミング回復は、プレシードには必要とされない場合がある。別の例として、機能1506は、
図15の推定器1105の一部として、または
図8のブロック810でキャリアを推定するために実装され得る。
【0181】
図16及び
図17は、本明細書に開示される実施形態による、キャリア周波数取得のための例示的な方法の機能ブロック図である。
図16は、
図15のブロック1520でフレーム化されたデータ(または変調タイプが未知であるか、または可変であるデータ)に対して実装され得るキャリア周波数取得のための例示的な方法である方法1600を示す。
図17は、
図15のブロック1520でフレーム化されていないデータ(または変調タイプが、既知であるか、隣接するデータのブロック間で静的であるデータ)に対して実装され得るキャリア周波数取得のための別の例示的な方法であるシステム及び方法1700を示す。方法1700は、フレーム化されていないデータに対して実装され得るが、方法1700が、フレーム化されたデータにも適用され得るが、方法1600の方がそのようなデータにより適していることを理解されたい。
図16及び
図17は、ブロック1520でキャリア周波数取得のための方法の具体的な例を示すが、ブロック1520の実施形態が方法1600と1700だけに限定されないことを理解されたい。ブロック1520は、データパケットのストリーミングブロックのキャリア周波数を推定するための任意の既知の方法として実装され得る。方法1600及び1700は、例示的な例として使用される。
【0182】
上述の実施形態と同様に、方法1600は機能を表し得、機能306a、306b、...306n(
図3)の1つ以上として実装され得る。例えば、例示的な例では、キャリア及びフレーム取得方法1600は、
図15の機能ブロック1506として実装され得、そのような入力シンボルは、データのブロックに分割され、並列機能1506a~1506nで処理され得る。同様に、方法1700は機能を表し得、
図15の機能ブロック1506として実装され得る。
【0183】
最初に方法1600を参照すると、方法1600の例示的な例は、周波数トライアル計算機機能ブロック1605、粗キャリア推定値による混合機能ブロック1610、フレームの始まり(SOF)検出器機能ブロック1615、フレームマーカー検出器機能ブロック1620、及びフレームマーカー折りたたみ及び周波数検出器機能ブロック1625を含むが、これらに限定されない複数のサブ機能ブロックを含む。
【0184】
いくつかの実施形態では、フレームマーカーを発見することに加えて、方法1600はまた、粗周波数及び受信された時間補正されたシンボルの追跡を実行し得る。粗周波数取得は、いくつかの異なった周波数トライアルビン内でフレームの始まり(SOF)を検出することによって実行され得る。例えば、サブ機能ブロック1605では、上述されたように、プロセッサ202は、(例えば、
図14及び
図15に関連して説明されたものなど、タイミング回復プロセスからの出力として)時間補正されたシンボルに付加された1つ以上のフレームマーカー(例えば、メタデータとして)を含む時間補正されたシンボルを受信し、異なる周波数トライアルビンを計算する。SOF検出は、限られた周波数範囲でしか機能し得ず、キャリア周波数不確実性(CFU)が周波数範囲のものよりも大きい場合、CFUは、各トライアルがSOF周波数検出範囲だけをカバーしているようにいくつかの周波数トライアルビンに分割される。
【0185】
ブロック1610では、周波数トライアルビンは、例えば、差分共役計算によって提供される粗キャリア周波数によって混合される。混合信号から、ブロック1615は、各周波数トライアルビンに対し、SOFを検出して、フレームの始めを示す可能性のある候補フレームマーカーを識別する。可能性のある候補フレームマーカーが発見されると、全てのフレームマーカーの可能性は、候補フレームマーカーに対して相関付けられ、相関結果が十分に強力である場合には、フレームの始まりのフレームマーカーが相関から検出される(ブロック1620)。
【0186】
フレームマーカーが発見されると、ブロック1625は、フレームマーカー(例えば、長さ90シンボル)を搬送波に折りたたむことによって周波数推定をさらに改良する。例えば、ブロック1625で、プロセッサ202は、各フレームのシンボルのFFTを採取し、周波数オフセットを計算する。周波数追跡は、当該技術分野で既知であるように、2つの連続する折りたたまれたフレーム間の位相差を比較することによって実行され得る。ブロック1625は次いで、ドップラー、ドップラー速度、及びフレーム境界の情報を(例えば、シンボルの各フレームに付加されたメタデータとして)出力する。
【0187】
図17は、別の例示的なキャリア周波数取得方法1700を示す。方法1700の例示的な例は、N乗機能ブロック1705、粗キャリア推定値による混合機能ブロック1710、デシメート機能ブロック1715、FFTトライアル機能ブロック1720、及びピーク検出機能ブロック1725を含むが、これらに限定されない複数のサブ機能ブロックを含む。
【0188】
サブ機能ブロック1005では、シンボルは、ブロック1705で、キャリア周波数取得ブロック1700に入力され、コンスタレーションの外側リング内のシンボルの数(N)に基づいて適切にべき乗され(BPSKの場合2、QPSK/OQPSKの場合4、8PSKの場合8、16APSKの場合12など)、次いでサブ機能ブロック1710で(提供される場合)差分共役計算によって提供される粗キャリア周波数によって混合される。混合信号は次いで、サブ機能ブロック1715でデシメートされ、FFTはサブ機能ブロック1720で信号に対して実行されて、サブ機能ブロック1725で選ばれた変調タイプのピーク対平均比を決定する。このプロセスは次いで、検出される所望の変調タイプの全てについて繰り返される。最高のピーク対平均を有する結果は、最も可能性が高い変調タイプである。メモリ帯域幅を最小限に抑える方法として、サブ機能ブロック1705、サブ機能ブロック1710、及びサブ機能ブロック1715は結合されて1つのサブ機能ブロックを形成し得、これによってメモリ帯域幅が減少し得る。データレートをさらに増加させるために、サブ機能ブロック1720での各変調タイプトライアルを独自のスレッドで実行して、スループットをさらに増加させることが可能である。
【0189】
添付の特許請求の範囲及びそれらの均等物は、本開示の範囲に収まるような形式または修正を包含するように意図されている。図に示される様々なコンポーネントは、例えば、プロセッサまたは専用ハードウェア上のソフトウェア及び/またはファームウェアとして実装され得るが、これらに限定されなくてもよい。また、上記で開示された特定の例示的な実施形態の特徴及び属性を、付加的な実施形態を形成するために種々の方法で組み合わせてもよく、これらの実施形態は全て本開示の範囲内に含まれる。
【0190】
前述の方法の説明及びプロセスフロー図は、単に例示的な例として提供されており、様々な実施形態の動作が提示された順序で実行されなければならないことを要求または黙示することを意図したものではない。当業者には理解されるように、前述の実施形態における動作の順序は任意の順序で実行されることができる。「その後」、「次いで」、「次の」などの単語は、動作の順序を制限することを意図したものではなく、これらの単語は、単に方法の説明を読者に案内するために使用されている。さらに、単数形で、例えば「a」、「an」または「the」という冠詞を使用した請求項の要素へのいかなる言及も、要素を単数形に限定するものとして解釈されるべきではない。
【0191】
本明細書に開示される実施形態に関連して記載される種々の例示の論理ブロック、モジュール、及びアルゴリズムの動作は、電子ハードウェア、コンピュータソフトウェア、またはその両方の組み合わせとして実施することができる。ハードウェア及びソフトウェアのこの互換性を明確に示すために、多様な例示的な構成要素、ブロック、モジュール及び動作は、概してその機能性の点において上記で説明されている。そのような機能性が、ハードウェアとして実装されるのか、それともソフトウェアとして実装されるのかは、特定のアプリケーション、及び全体のシステムに対して課される設計の制約に左右される。当業者は、説明する機能性を、それぞれの特定のアプリケーションに関して様々な点で実装することができるが、そのような実施態様の決定は、本発明の概念の範囲からの逸脱を生じさせるとして解釈されるべきではない。
【0192】
本明細書に開示される様々な実施形態に関連して説明された多様な例示的なロジック、論理ブロック、及びモジュールを実装するために使用されるハードウェアは、汎用プロセッサ、デジタルシグナルプロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、または他のプログラム可能な論理装置、離散ゲートもしくはトランジスタ論理、離散ハードウェア構成要素、または本明細書に説明する機能を実行することを目的としたその任意の組み合わせによって実装または実行できる。汎用プロセッサはマイクロプロセッサにすることができるが、代替ではプロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械にすることができる。また、プロセッサは、例えば、DSPと、マイクロプロセッサ、複数のマイクロプロセッサ、DSPコアと連動する1つ以上のマイクロプロセッサ、または任意の他のそのような構成要素の組み合わせなど、受信デバイスの組み合わせとしても実装できる。あるいは、一部の操作または方法は、所与の機能に専用の回路によって実行されてもよい。
【0193】
1つ以上の例示的な実施形態では、説明される機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組み合わせに実装され得る。ソフトウェアに実装される場合、機能は、非一時的なコンピュータ可読記憶媒体または非一時的なプロセッサ可読記憶媒体上の1つ以上の命令またはコードとして格納され得る。本明細書に開示される方法またはアルゴリズムの操作は、非一時的なコンピュータ可読記憶媒体またはプロセッサ可読記憶媒体上に常駐し得るプロセッサ実行可能命令で具現化され得る。非一時的なコンピュータ可読記憶媒体またはプロセッサ可読記憶媒体は、コンピュータまたはプロセッサによってアクセスできる任意の記憶媒体であり得る。限定ではなく例として、そのような非一時的なコンピュータ可読記憶媒体またはプロセッサ可読記憶媒体には、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、電気的に消去可能でプログラム可能な読み出し専用メモリ(EEPROM)、フラッシュメモリ、CD-ROMもしくはその他の光ディスクストレージ、磁気ディスクストレージもしくはその他の磁気ストレージデバイス、または命令もしくはデータ構造の形式で所望のプログラムコードを格納するために使用でき、コンピュータによってアクセスできるその他の任意の媒体が含まれてもよい。本明細書に用いられるディスク(Disk)及びディスク(disc)は、コンパクトディスク(CD)、レーザーディスク、光ディスク、デジタルバーサタイルディスク(DVD)、フロッピーディスク、及びBlu-rayディスクを含む。これらのディスク(disk)は、通常、磁気的にデータを再生し、ディスク(disc)は、レーザによって光学的にデータを再生する。上記の組み合わせもまた、非一時的なコンピュータ可読媒体及びプロセッサ可読媒体の範囲内に含まれる。さらに、方法またはアルゴリズムの操作は、コード及び/または命令の1つまたは任意の組み合わせまたはセットとして、コンピュータプログラム製品に組み込まれてもよい非一時的なプロセッサ可読記憶媒体及び/またはコンピュータ可読記憶媒体に常駐してもよい。
【0194】
開示されたプロセス/フローチャートにおけるブロックの特定の順序または階層が例示的なアプローチの例証であることが理解される。設計プリファレンスに基づいて、プロセス/フローチャート内のブロックの特定の順序または階層を再配置することができることが理解される。また、一部のブロックを組み合わせてもよく、または省略してもよい。添付の方法の特許請求の範囲は、様々なブロックの要素をサンプル順に提示しており、提示された特定の順序または階層に限定されることを意味するものではない。
【0195】
先の説明は、当業者が、本明細書中に記載された様々な態様を実施することを可能にするように提供される。これらの態様に対する様々な変形は、当業者に容易に明らかであり、本明細書に定義された一般的な原理は、他の態様に適用することができる。
【0196】
したがって、特許請求の範囲は、本明細書中に示される態様に限定されることを意図せず、特許請求の範囲の言語に一致する全範囲が与えられることが意図され、単数形の要素への言及は、明示的にそのように記述されない限り、「唯一」を意味するように意図されてはおらず、むしろ「1つ以上」を意味するように意図されている。
【0197】
「例示的な」という言葉は、本明細書では「例、実例、または例示として役立つ」という意味で使用される。本明細書で「例示的な」として説明されるいかなる態様も、必ずしも他の態様よりも好ましいまたは有利であると解釈されるべきではない。特に明記しない限り、「いくつかの」という用語は、1つまたは複数を指す。
【手続補正書】
【提出日】2024-12-02
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
デジタルビットストリームを処理するための方法であって、前記デジタルビットストリームがデジタル化された通信信号であり、
前記方法が、
1つ以上のプロセッサで、前記デジタルビットストリームを複数のデータパケットに分けることと、
前記複数のデータパケットに対してタイミング回復誤差計算及びキャリア回復誤差計算を実行することであって、前記タイミング回復誤差計算が、前記複数のデータパケットに対して第1の位相ロックループ(PLL)機能を実行することを含むことと、
前記1つ以上のプロセッサ内の第1の処理ブロックで
、
前記複数のデータパケット
の第1の部分に対してキャリア回復動作を実行することと、
前記複数のパケット
の第1の部分
の処理と並行して、前記1つ以上のプロセッサ内の第2の処理ブロックで
、
前記複数のデータパケットの第2の部分に対して前記キャリア回復動作を実行することと、
位相ステッチングに基づいて前記第1の部分及び前記第2の部分を結合することと
、
を含む
、方法。
【請求項2】
前記1つ以上のプロセッサ内の第3の処理ブロックで、
前記複数のデータパケット
の第1の部分に対してタイミング回復誤差計算を実行することと、
前記複数のデータパケット
の第1の部分に対してタイミング回復動作を実行することと、
前記複数のパケット
の第1の部分
の処理と並行して、前記1つ以上のプロセッサ内の第4の処理ブロックで、
前記複数のデータパケット
の第2の部分に対して前記タイミング回復誤差計算を実行することと、
前記複数のデータパケットの第2の部分に対して前記タイミング回復動作を実行することと
、
をさらに含む、請求項1に記載の方法。
【請求項3】
前記タイミング回復誤差計算が、前記複数のデータパケット
の第1
の部分及び第2の部分のデシメートされたデータに対して第2のPLL機能を実行することを含む、請求項2に記載の方法。
【請求項4】
前記タイミング回復誤差の計算が、
ダウンリンク信号のサンプルとしてデータパケットを受信することであって、前記サンプルが未知のシンボルレート及び周波数を有す
ることと、
前記シンボルレートの推定値に基づいて前記サンプルのタイミング誤差を決定することと、
デシメーションフィルタで前記サンプルをデシメートすることと、
前記デシメートされたシンボルに対して前記第2のPLL機能を実行して、前記シンボルの位相、周波数、及びドップラー速度を決定することと、
前記シンボルレート
の推定値を更新することと
、
を含む、請求項2に記載の方法。
【請求項5】
前記PLL機能が、2次PLL、3次PLL、可逆PLL、及び可逆反復PLLの1つである、
請求項1~4のいずれか1項に記載の方法。
【請求項6】
前記複数のデータパケットのうち
のデータパケットのそれぞれが、隣接するパケットからのデータの重複を含み、前記PLL機能が2次PLLである、請求項1~4のいずれか1項に記載の方法。
【請求項7】
前記データパケットのそれぞれがフレーム化されたデータパケットであり、前記PLL機能が、可逆PLL、及び可逆反復PLLの1つである、請求項1~4のいずれか1項に記載の方法。
【請求項8】
前記方法が、
前記第3の処理ブロック及び前記第4の処理ブロック
の出力を時間補正されたシンボルのブロックに結合することと、
フレームマーカーを検出することによって各ブロックのフレーム境界の位置を突き止めることと
、
をさらに含み、
前記複数のデータパケット
の第1
の部分及び第2の部分に対して前記キャリア回復誤差計算を実行することが、前記位置を突き止めたフレーム境界に基づく、請求項2に記載の方法。
【請求項9】
前記複数の処理ブロックが、複数の中央処理装置(CPU)コアを含む、請求項1~4のいずれかに記載の方法。
【請求項10】
前記キャリア回復誤差計算が、
前記ダウンリンク信号
の同期
されたサンプルに関連付けられ
たシンボルを受信することと、
前記ダウンリンク信号の周波数の推定値及びn乗され
たシンボルの積に基づいて前記シンボルのキャリア誤差を決定することであって、nが整数であ
ることと、
デシメーションフィルタによって前記シンボルをデシメートすることと、
前記デシメートされたシンボルに対して前記第1のPLL機能を実行して前記シンボルの位相、周波数、及びドップラー速度を決定することと、
前記周波数
の推定値を更新することと
、
を含む、請求項1~4のいずれかに記載の方法。
【請求項11】
前記1つ以上のプロセッサが、高スループットを達成するために単一命令複数データ(SIMD)技術を採用する、請求項1~4のいずれかに記載の方法。
【請求項12】
デジタルビットストリームを処理するための方法であって、前記デジタルビットストリームがフレームに基づいたデジタル化された通信信号であり、前記方法が、
1つ以上のプロセッサで、前記デジタルビットストリームを複数のデータパケットに分けることと、
前記複数のデータパケットに対してタイミング回復誤差計算を実行することであって、前記タイミング回復誤差計算が、前記複数のデータパケットに対して第1の位相ロックループ(PLL)機能を実行することを含むことと、
前記1つ以上のプロセッサ内の第1の処理ブロックで
、
前記複数のデータパケット
の第1の部分に対してタイミング回復動作を実行することと、
前記複数のパケット
の第1の部分
の処理と並行して、前記1つ以上のプロセッサ内の第2の処理ブロックで
、
前記タイミング回復誤差計算に基づいて、前記複数のデータパケットの第2の部分に対して前記タイミング回復動作を実行することと、
前記第1の処理ブロック及び前記第2の処理ブロック
の出力を、1つ以上のフレームマーカーを含む時間補正されたシンボルのブロックに結合することと、
時間補正されたシンボルの各ブロックに含まれ
る1つ以上のフレームマーカーを求めて前記時間補正されたシンボルのブロックを検索することと、
相関器プロセス及び周波数追跡プロセスを実行して、前記フレーム境界の位置を突き止め、前記キャリア周波数を追跡することと、
時間補正されたシンボルのフレームを出力することと
、
を含む
、方法。
【請求項13】
相関器プロセス及び周波数追跡プロセスを実行することが、
周波数ロックループ(FLL)機能を実行して、2つの隣接するフレームマーカー間
の位相差を比較すること
を含む、請求項12に記載の方法。
【請求項14】
FLL機能を実行して、2つの隣接するフレームマーカー間
の位相差を比較することが、
arctan(A*conj(B))/(2*pi)*FRを計算することであって、上式で、Aは以前に折りたたんだフレームマーカーのIQ値であり、Bは現在折りたたまれているフレームマーカーのIQ値であり、FRはフレームマーカーの更新速度であ
ることと、
計算された値を使用して2次FLL機能を実行して、前記キャリアのドップラー及びドップラー速度を決定することと
、
を含む、請求項13に記載の方法。
【請求項15】
1つ以上のプロセッサで、前記時間補正されたシンボルのフレームを複数の時間補正されたシンボルに分けることと、
前記1つ以上のプロセッサ内の第3の処理ブロックで、
前記複数のデータパケットの第1の部分に対してキャリア回復誤差計算を実行することであって、前記複数の時間補正されたシンボル
の第1の部分のデシメートされたデータに対して第2の位相ロックループPLL機能を実行することを含
むことと、
前記複数の時間補正されたシンボル
の第1の部分に対してキャリア回復動作を実行することと、
前記複数の時間補正されたシンボル
の第1の部分
の処理と並行して、前記1つ以上のプロセッサ内の第4の処理ブロックで、
前記複数の時間補正されたシンボル
の第2の部分に対して前記キャリア回復誤差計算を実行することであって、前記複数の時間補正されたシンボル
の第2の部分のデシメートされたデータに対して前記第2のPLL機能を実行することを含
むことと、
前記複数の時間補正されたシンボルの第2の部分に対して前記キャリア回復動作を実行することと、
位相ステッチングに基づいて前記第1の部分及び前記第2の部分を結合することと
、
を含む、請求項14に記載の方法。
【請求項16】
前記2次FLL機能の後にPLL機能を実行して、追跡をさらに強化し、前記キャリア回復誤差計算で使用するための改善された位相、ドップラー、及びドップラー推定値を提供することをさらに含む、請求項13に記載の方法。
【請求項17】
デジタルビットストリームを処理するための方法であって、前記デジタルビットストリームがフレームに基づいたデジタル化された通信信号であり、
前記方法が、
1つ以上のプロセッサで、前記デジタルビットストリームを複数のデータパケットに分けることと、
前記複数のデータパケットに対してタイミング回復誤差計算を実行することであって、前記タイミング回復誤差計算が、前記複数のデータパケットに対して第1の位相ロックループ(PLL)機能を実行することを含むことと、
前記1つ以上のプロセッサ内の第1の処理ブロックで
、
前記複数のデータパケット
の第1の部分に対してタイミング回復動作を実行することと、
前記複数のパケット
の第1の部分
の処理と並行して、前記1つ以上のプロセッサ内の第2の処理ブロックで
、
前記複数のデータパケットの第2の部分に対して前記タイミング回復動作を実行することと
、
を含む
、方法。
【請求項18】
前記第1の処理ブロック及び前記第2の処理ブロック
の出力を、1つ以上のフレームマーカーを含む時間補正されたシンボルのブロックに結合することと、
フレームマーカーを検出することによって各ブロックのフレーム境界の位置を突き止めることと
、
をさらに含む、請求項17に記載の方法。
【請求項19】
フレーム境界の位置を突き止めることが、
相関器プロセス及び周波数追跡プロセスを実行して、前記フレーム境界の位置を突き止め、前記キャリア周波数を追跡することと、
時間補正されたシンボルのフレームを出力することと
、
をさらに含む、請求項18に記載の方法。
【請求項20】
通信信号を表すデジタルビットストリームを処理するためのシステムであって、
前記システムが、
受信されたアナログ信号を前記デジタルビットストリームに変換するように構成されたデジタイザと、
前記デジタイザに通信可能に結合された1つ以上のプロセッサであって、前記1つ以上のプロセッサが、複数の処理ブロックを有し、
請求項1~4および12~19のいずれか1項に記載の方法を実行するように動作可能である
、プロセッサと
、
を備える
、システム。
【国際調査報告】