IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ クラトス インテグラル ホールディングス,エルエルシーの特許一覧

特許7668799通信信号のチャネル帯域幅を管理するためのシステムおよび方法
<>
  • 特許-通信信号のチャネル帯域幅を管理するためのシステムおよび方法 図1
  • 特許-通信信号のチャネル帯域幅を管理するためのシステムおよび方法 図2
  • 特許-通信信号のチャネル帯域幅を管理するためのシステムおよび方法 図3
  • 特許-通信信号のチャネル帯域幅を管理するためのシステムおよび方法 図4
  • 特許-通信信号のチャネル帯域幅を管理するためのシステムおよび方法 図5
  • 特許-通信信号のチャネル帯域幅を管理するためのシステムおよび方法 図6
  • 特許-通信信号のチャネル帯域幅を管理するためのシステムおよび方法 図7
  • 特許-通信信号のチャネル帯域幅を管理するためのシステムおよび方法 図8
  • 特許-通信信号のチャネル帯域幅を管理するためのシステムおよび方法 図9
  • 特許-通信信号のチャネル帯域幅を管理するためのシステムおよび方法 図10
  • 特許-通信信号のチャネル帯域幅を管理するためのシステムおよび方法 図11
  • 特許-通信信号のチャネル帯域幅を管理するためのシステムおよび方法 図12
  • 特許-通信信号のチャネル帯域幅を管理するためのシステムおよび方法 図13
  • 特許-通信信号のチャネル帯域幅を管理するためのシステムおよび方法 図14A
  • 特許-通信信号のチャネル帯域幅を管理するためのシステムおよび方法 図14B
  • 特許-通信信号のチャネル帯域幅を管理するためのシステムおよび方法 図15
  • 特許-通信信号のチャネル帯域幅を管理するためのシステムおよび方法 図16
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-04-17
(45)【発行日】2025-04-25
(54)【発明の名称】通信信号のチャネル帯域幅を管理するためのシステムおよび方法
(51)【国際特許分類】
   H04L 27/26 20060101AFI20250418BHJP
【FI】
H04L27/26 300
【請求項の数】 49
(21)【出願番号】P 2022535769
(86)(22)【出願日】2020-12-16
(65)【公表番号】
(43)【公表日】2023-02-17
(86)【国際出願番号】 US2020065358
(87)【国際公開番号】W WO2021127010
(87)【国際公開日】2021-06-24
【審査請求日】2023-12-08
(31)【優先権主張番号】62/948,599
(32)【優先日】2019-12-16
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】519008175
【氏名又は名称】クラトス インテグラル ホールディングス,エルエルシー
(74)【代理人】
【識別番号】100114775
【弁理士】
【氏名又は名称】高岡 亮一
(74)【代理人】
【識別番号】100121511
【弁理士】
【氏名又は名称】小田 直
(74)【代理人】
【識別番号】100202751
【弁理士】
【氏名又は名称】岩堀 明代
(74)【代理人】
【識別番号】100208580
【弁理士】
【氏名又は名称】三好 玲奈
(74)【代理人】
【識別番号】100191086
【弁理士】
【氏名又は名称】高橋 香元
(72)【発明者】
【氏名】キング,ブランドン,グレゴリー
(72)【発明者】
【氏名】ジャリエル,ジェフリー デイビッド
(72)【発明者】
【氏名】ストルテンバーグ,マシュー ジェームス
(72)【発明者】
【氏名】サットン,ダニエル ジョセフ
【審査官】北村 智彦
(56)【参考文献】
【文献】米国特許第09148327(US,B1)
【文献】米国特許出願公開第2018/0248676(US,A1)
【文献】米国特許第06781968(US,B1)
【文献】米国特許第08958510(US,B1)
【文献】特表2002-525956(JP,A)
【文献】特開2000-252937(JP,A)
【文献】Simon Faulkner et al.,A reconfigurable wideband streaming channeliser for RF sensing applications: A multiple GPU-based implementation[online],2017 11th International Conference on Signal Processing and Communication Systems (ICSPCS),2018年01月29日,[検索日2024.07.26],インターネット<URL:https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=8270487>
【文献】Simon Faulkner et al.,GPU Synthesis of RF Channeliser Outputs for a Variable Bandwidth Microwave Digital Receiver[online],2018 12th International Conference on Signal Processing and Communication Systems (ICSPCS),2019年02月03日,[検索日2024.07.26],インターネット<URL:https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=8631751>
(58)【調査した分野】(Int.Cl.,DB名)
H04L 27/26
IEEE Xplore
3GPP TSG RAN WG1-4
SA WG1-4
CT WG1,4
(57)【特許請求の範囲】
【請求項1】
1つ以上のダウンリンク信号のチャネル帯域幅を管理するための方法であって、前記方法が、
1つ以上のアンテナフィードから前記1つ以上のダウンリンク信号を受信することであって、前記1つ以上のダウンリンク信号が第1の帯域幅を有することと、
1つ以上のプロセッサ内の第1の1つ以上の処理ブロックにおいて、前記1つ以上のダウンリンク信号の第1の部分に対して第1のチャネライザ動作を実行することであって、前記第1のチャネライザ動作が第1の複数のチャネルを作成し、前記第1の複数のチャネルの各々が、前記第1の帯域幅よりも小さい帯域幅を有することと、
前記第1の1つ以上の処理ブロックと並列の前記1つ以上のプロセッサ内の第2の1つ以上の処理ブロックにおいて、前記1つ以上のダウンリンク信号の第2の部分に対して第2のチャネライザ動作を実行することであって、前記第2のチャネライザ動作が第2の複数のチャネルを作成し、前記第2の複数のチャネルの各々が、前記第1の帯域幅よりも小さい帯域幅を有することと、
前記1つ以上のプロセッサ内の第3の1つ以上の処理ブロックにおいて、前記第1の複数のチャネルのサブセットと前記第2の複数のチャネルのサブセットとを結合チャネルに結合するコンバイナ動作を実行することであって、前記結合チャネルが、前記第1の帯域幅よりも小さい第2の帯域幅を有することと、
前記結合チャネルをネットワークに出力することと、
を含み、
前記第3の1つ以上の処理ブロックのうちの第1の1つ以上のものが、ドップラー補償に必要とされる位相調整を作成するように構成され、前記第3の1つ以上の処理ブロックのうちの第2の1つ以上のものが、前記第1の複数のチャネルおよび前記第2の複数のチャネルに前記位相調整を実行するための中央処理装置(CPU)集約的な計算を実行するように構成される、方法。
【請求項2】
前記第1の1つ以上の処理ブロックが、第1の1つ以上の中央処理装置(CPU)コアを含み、前記第2の1つ以上の処理ブロックが、第2の1つ以上のCPUコアを含む、請求項1に記載の方法。
【請求項3】
前記1つ以上のプロセッサが、複数のプロセッサを含み、前記第1の1つ以上の処理ブロック、前記複数のプロセッサのうちの第1のプロセッサに含まれ、前記第2の1つ以上の処理ブロックが、前記複数のプロセッサのうちの第2のプロセッサに含まれる、請求項1または2に記載の方法。
【請求項4】
前記1つ以上のプロセッサが、前記第1の1つ以上の処理ブロックおよび前記第2の1つ以上の処理ブロックを含む単一のプロセッサを含む、請求項1または2に記載の方法。
【請求項5】
前記第3の1つ以上の処理ブロックのうちの少なくとも1つが、(i)前記1つ以上の第1の処理ブロック、および(ii)前記1つ以上の第2の処理ブロックのうちの1つ以上の一部として含まれる、請求項1~4のいずれか一項に記載の方法。
【請求項6】
前記第3の1つ以上の処理ブロックは、前記第1の1つ以上の処理ブロック、および前記第2の1つ以上の処理ブロックとは別個である、請求項1~4のいずれか一項に記載の方法。
【請求項7】
前記第1のチャネライザ動作が、
入力チャネルからサンプルを取り込むことであって、前記サンプルが、前記1つ以上のダウンリンク信号の第1の部分に含まれる第1のデータパケットとして受信されることと、
前記サンプルにマルチパスフィルタを適用することと、
ィルタリングされたサンプルに対してマルチポイント循環バッファを実行することと、
前記サンプルにマルチポイント逆高速フーリエ変換を適用することに基づいて、前記サンプルを複数のチャネルに分離することと、
を含む第1の複数の機能を含む、請求項1~6のいずれか一項に記載の方法。
【請求項8】
前記第1の1つ以上の処理ブロックが、第1の複数の処理ブロックを含み、前記第1のチャネライザ動作を実行することが、前記第1の複数の機能を前記第1の複数の処理ブロックの間で分散させ、分散された第1の複数の機能を並列に実行することを含む、請求項7に記載の方法。
【請求項9】
前記第2のチャネライザ動作が
入力チャネルからサンプルを取り込むことであって、前記サンプルが、前記1つ以上のダウンリンク信号の第2の部分に含まれる第2のデータパケットとして受信される、取り込むことと、
前記サンプルにマルチパスフィルタを適用することと、
ィルタリングされたサンプルに対してマルチポイント循環バッファを実行することと、
前記サンプルにマルチポイント逆高速フーリエ変換を適用することに基づいて、前記サンプルを複数のチャネルに分離することと、
を含む第2の複数の機能を含む、請求項に記載の方法。
【請求項10】
前記第2の1つ以上の処理ブロックが、第2の複数の処理ブロックを含み、前記第2のチャネライザ動作を実行することが、前記第2の複数の機能を前記第2の複数の処理ブロックの間で分散させ、分散された第2の複数の機能を並列に実行することを含む、請求項9に記載の方法。
【請求項11】
前記第2の複数の機能のうちの1つ以上は、前記第1の1つ以上の処理ブロックにおいて実行される前記第1の複数の機能のうちの1つ以上と並列に、前記第2の1つ以上の処理ブロックにおいて実行される、請求項10に記載の方法。
【請求項12】
前記コンバイナ動作が、スペクトル帯域幅を複数の入力チャネルから前記結合チャネルに集約することを含み、前記複数の入力チャネルが、前記第1の複数のチャネルのサブセットと、前記第2の複数のチャネルのサブセットとを含む、請求項1~9のいずれか一項に記載の方法。
【請求項13】
前記コンバイナ動作が
前記第1の複数のチャネルのサブセットおよび前記第2の複数のチャネルのサブセットからのサンプルを複数の入力チャネルとして取り込むことであって、前記サンプルが、前記第1の複数のチャネルのサブセットおよび前記第2の複数のチャネルのサブセットに含まれるデータパケットとして受信されることと、
前記複数のチャネルの各々のサンプルにマルチポイント逆高速フーリエ変換を適用することと、
前記サンプルに対するマルチポイント逆高速フーリエ変換の適用に基づいて、前記複数のチャネルの各々に対してマルチポイント循環バッファを実行することと、
マルチパスフィルタおよび加算器を適用することに基づいて、前記サンプルを前記結合チャネルに結合することと、
を含む第3の複数の機能を含む、請求項1~10のいずれか一項に記載の方法。
【請求項14】
前記第3の1つ以上の処理ブロックが、第3の複数の処理ブロックを含み、前記コンバイナ動作を実行することが、前記第3の複数の機能を前記第3の複数の処理ブロックの間で分散させ、分散された第3の複数の機能を並列に実行することを含む、請求項13に記載の方法。
【請求項15】
前記第3の1つ以上の処理ブロックが、第3の複数の処理ブロックを含み、前記第3の複数の機能のうちの少なくとも2つが、前記第3の複数の処理ブロックのうちの個々の処理ブロックによって並列に実行される、請求項14に記載の方法。
【請求項16】
前記第3の1つ以上の処理ブロックと並列の前記1つ以上のプロセッサ内の第4の1つ以上の処理ブロックにおいて、前記第1の複数のチャネルの別のサブセットおよび前記第2の複数のチャネルの別のサブセットに対して第2のコンバイナ動作を実行することをさらに含む、請求項13に記載の方法。
【請求項17】
1つ以上のプロセッサにおいて、デジタルビットストリームを複数のデータパケットに分割することであって、前記複数のデータパケットのうちのデータパケットの各々が、隣接するパケットからのデータの重複を含むこ
をさらに含む、請求項1に記載の方法。
【請求項18】
前記隣接するパケットは、前記パケットの長さの1%だけ時間が重複する、請求項17に記載の方法。
【請求項19】
前記複数のデータパケットは、様々な長さを有する、請求項17または18に記載の方法。
【請求項20】
前記1つ以上のプロセッサが、1つ以上の汎用中央処理装置(CPU)である、請求項1~19のいずれか一項に記載の方法。
【請求項21】
前記1つ以上のプロセッサが、高スループットを達成するために、単一命令複数データ(SIMD)技法を使用する、請求項1~20のいずれか一項に記載の方法。
【請求項22】
1つ以上のダウンリンク信号のチャネル帯域幅を管理するための方法であって、前記方法が、
1つ以上のアンテナフィードから前記1つ以上のダウンリンク信号を受信することであって、前記1つ以上のダウンリンク信号が第1の帯域幅を有することと、
1つ以上のプロセッサ内の第1の1つ以上の処理ブロックにおいて、
記1つ以上のダウンリンク信号の第1の部分に対して第1のチャネライザ動作を実行することであって、前記第1のチャネライザ動作が第1の複数のチャネルを作成し、前記第1の複数のチャネルの各々が、前記第1の帯域幅よりも小さい帯域幅を有することと、
前記第1の1つ以上の処理ブロックと並列の前記1つ以上のプロセッサ内の第2の1つ以上の処理ブロックにおいて、
記1つ以上のダウンリンク信号の第2の部分に対して第2のチャネライザ動作を実行することであって、前記第2のチャネライザ動作が第2の複数のチャネルを作成し、前記第2の複数のチャネルの各々が、前記第1の帯域幅よりも小さい帯域幅を有することと、
前記第1の複数のチャネルおよび前記第2の複数のチャネルをネットワークに出力することと、
を含み、
前記第1の1つ以上の処理ブロックが、ドップラー補償に必要とされる位相調整を作成するように構成され、前記第2の1つ以上の処理ブロックが、前記第1の複数のチャネルおよび前記第2の複数のチャネルに前記位相調整を実行するための中央処理装置(CPU)集約的な計算を実行するように構成される、方法。
【請求項23】
前記第1の1つ以上の処理ブロックが、第1の1つ以上の中央処理装置(CPU)コアを含み、前記第2の1つ以上の処理ブロックが、第2の1つ以上のCPUコアを含む、請求項22に記載の方法。
【請求項24】
前記1つ以上のプロセッサが、複数のプロセッサを含み、前記第1の1つ以上の処理ブロック、前記複数のプロセッサのうちの第1のプロセッサに含まれ、前記第2の1つ以上の処理ブロックが、前記複数のプロセッサのうちの第2のプロセッサに含まれる、請求項22または23に記載の方法。
【請求項25】
前記1つ以上のプロセッサが、前記第1の1つ以上の処理ブロックおよび前記第2の1つ以上の処理ブロックを含む単一のプロセッサを含む、請求項22または23に記載の方法。
【請求項26】
前記第1のチャネライザ動作が
入力チャネルからサンプルを取り込むことであって、前記サンプルが、前記1つ以上のダウンリンク信号の第1の部分に含まれる第1のデータパケットとして受信されることと、
前記サンプルにマルチパスフィルタを適用することと、
ィルタリングされたサンプルに対してマルチポイント循環バッファを実行することと、
前記サンプルにマルチポイント逆高速フーリエ変換を適用することに基づいて、前記サンプルを複数のチャネルに分離することと、
を含む第1の複数の機能を含む、請求項22~25のいずれか一項に記載の方法。
【請求項27】
前記第1の1つ以上の処理ブロックが、第1の複数の処理ブロックを含み、前記第1のチャネライザ動作を実行することが、前記第1の複数の機能を前記第1の複数の処理ブロックの間で分散させ、分散された第1の複数の機能を並列に実行することを含む、請求項26に記載の方法。
【請求項28】
前記第2のチャネライザ動作が
入力チャネルからサンプルを取り込むことであって、前記サンプルが、前記1つ以上のダウンリンク信号の第2の部分に含まれる第2のデータパケットとして受信されることと、
前記サンプルにマルチパスフィルタを適用することと、
ィルタリングされたサンプルに対してマルチポイント循環バッファを実行することと、
前記サンプルにマルチポイント逆高速フーリエ変換を適用することに基づいて、前記サンプルを複数のチャネルに分離することと、
を含む第2の複数の機能を含む、請求項26に記載の方法。
【請求項29】
前記第2の1つ以上の処理ブロックが、第2の複数の処理ブロックを含み、前記第2のチャネライザ動作を実行することが、前記第2の複数の機能を前記第2の複数の処理ブロックの間で分散させ、分散された第2の複数の機能を並列に実行することを含む、請求項28に記載の方法。
【請求項30】
前記第2の複数の機能のうちの1つ以上は、前記第1の1つ以上の処理ブロックにおいて実行される前記第1の複数の機能のうちの1つ以上と並列に、前記第2の1つ以上の処理ブロックにおいて実行される、請求項29に記載の方法。
【請求項31】
1つ以上のプロセッサにおいて、デジタルビットストリームを複数のデータパケットに分割することであって、前記複数のデータパケットのうちのデータパケットの各々が、隣接するパケットからのデータの重複を含むこ
をさらに含む、請求項22~30に記載の方法。
【請求項32】
前記隣接するパケットは、前記パケットの長さの1%だけ時間が重複する、請求項31に記載の方法。
【請求項33】
前記複数のデータパケットは、様々な長さを有する、請求項31または32に記載の方法。
【請求項34】
前記1つ以上のプロセッサが、1つ以上の汎用中央処理装置(CPU)である、請求項22~32のいずれか一項に記載の方法。
【請求項35】
前記1つ以上のプロセッサが、高スループットを達成するために、単一命令複数データ(SIMD)技法を使用する、請求項22~33のいずれか一項に記載の方法。
【請求項36】
1つ以上のダウンリンク信号のチャネル帯域幅を管理するための方法であって、前記方法が、
複数の入力チャネル上で前記1つ以上のダウンリンク信号の入力信号を受信することであって、各入力チャネルがスペクトル帯域幅を有することと、
1つ以上のプロセッサ内の複数の処理ブロックにおいて、前記複数の入力チャネルに対するコンバイナ動作を実行することであって、前記コンバイナ動作が、前記複数の入力チャネルのうちの選択されたサブセットのスペクトル帯域幅を結合チャネルに集約し、前記複数の処理ブロックが並列に動作することと、
前記結合チャネルをネットワークに出力することと、
を含み、
前記複数の処理ブロックのうちの第1の1つ以上のものが、ドップラー補償に必要とされる位相調整を作成するように構成され、前記複数の処理ブロックのうちの第2の1つ以上のものが、前記複数の入力チャネルに前記位相調整を実行するための中央処理装置(CPU)集約的な計算を実行するように構成される、方法。
【請求項37】
前記複数の処理ブロックが、複数の中央処理装置(CPU)コアを含む、請求項36に記載の方法。
【請求項38】
前記1つ以上のプロセッサが、複数のプロセッサを含み、前記複数の処理ブロックのうちの少なくとも第1の処理ブロック、前記複数のプロセッサのうちの第1のプロセッサに含まれ、前記複数の処理ブロックのうちの第2の処理ブロックが、前記複数のプロセッサのうちの第2のプロセッサに含まれる、請求項36または37に記載の方法。
【請求項39】
前記1つ以上のプロセッサが、単一のプロセッサを含む、請求項36または37に記載の方法。
【請求項40】
前記コンバイナ動作が
前記複数の入力チャネルの選択されたサブセットからサンプルを取り込むことであって、前記サンプルが、前記複数の入力チャネルのサブセットに含まれるデータパケットとして受信されることと、
前記複数の入力チャネルの各々のサンプルにマルチポイント逆高速フーリエ変換を適用することと、
前記サンプルに対するマルチポイント逆高速フーリエ変換の適用に基づいて、前記複数の入力チャネルの各々に対してマルチポイント循環バッファを実行することと、
マルチパスフィルタおよび加算器を適用することに基づいて、前記サンプルを前記結合チャネルに結合することと、
を含む複数の機能を含む、請求項36~39のいずれか一項に記載の方法。
【請求項41】
前記コンバイナ動作を実行することが、前記複数の機能を前記複数の処理ブロックの間で分散させ、分散された複数の機能を並列に実行することを含む、請求項40に記載の方法。
【請求項42】
前記複数の機能のうちの少なくとも2つが、前記複数の処理ブロックのうちの個々の処理ブロックによって並列に実行される、請求項41に記載の方法。
【請求項43】
前記複数の処理ブロックが、第1の1つ以上の処理ブロックおよび第2の1つ以上の処理ブロックを含み、
前記方法が、
前記第1の1つ以上の処理ブロックにおいて、前記複数の入力チャネルの第1のサブセットに対応する入力信号の第1のサブセットに対して実行する第1のコンバイナ動作を実行することと、
前記第1の1つ以上の処理ブロックと並列の前記第2の1つ以上の処理ブロックにおいて、前記複数の入力チャネルの第2のサブセットに対応する入力信号の第2のサブセットに対して第2のコンバイナ動作を実行することと、
をさらに含み、
前記第1のコンバイナ動作および前記第2のコンバイナ動作は、前記複数の入力チャネルの第のサブセットおよび第2のサブセットのスペクトル帯域幅を前記結合チャネルに集約する、請求項36~42のいずれか一項に記載の方法。
【請求項44】
1つ以上のプロセッサにおいて、デジタルビットストリームを複数のデータパケットに分割することであって、前記複数のデータパケットのうちのデータパケットの各々が、隣接するパケットからのデータの重複を含むこ
をさらに含む、請求項36~43のいずれか一項に記載の方法。
【請求項45】
前記隣接するパケットは、前記パケットの長さの1%だけ時間が重複する、請求項44に記載の方法。
【請求項46】
前記複数のデータパケットは、様々な長さを有する、請求項44または45に記載の方法。
【請求項47】
前記1つ以上のプロセッサが、1つ以上の汎用中央処理装置(CPU)である、請求項36~46のいずれか一項に記載の方法。
【請求項48】
前記1つ以上のプロセッサが、高スループットを達成するために、単一命令複数データ(SIMD)技法を使用する、請求項36~47のいずれか一項に記載の方法。
【請求項49】
1つ以上のダウンリンク信号チャネル帯域幅を管理するシステムであって、前記システムが、
前記1つ以上のダウンリンク信号を受信するように構成されている1つ以上のアンテナと、
前記1つ以上のアンテナに通信可能に結合された1つ以上のプロセッサであって、複数の処理ブロックを有し、請求項1~48のいずれか一項に記載の方法を実行するように動作可能である、1つ以上のプロセッサと
を含むシステム。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、あたかも完全に記載されているかのように、参照により本明細書に組み込まれる、2019年12月16日出願の米国仮特許出願第62/948,599号の優先権を主張する。
【0002】
本開示は、信号処理に関する。より具体的には、本開示は、高速処理を達成するために汎用プロセッサを使用して分散コンピューティングを実施することに関する。
【背景技術】
【0003】
いくつかの例では、衛星通信信号は、データをローカルに送信および/または受信および処理するために、大規模な地上局および他の設備を必要とする可能性がある。これは、広範なアンテナアレイ、関連する無線周波数端末(RFT)、および関連する衛星から受信されたデータを受信し、処理し、使用するための重要な電子機器(モデム、信号プロセッサなど)を含むことができる。
【発明の概要】
【0004】
本開示は、改善された通信システムを提供する。以下の概要は、本発明のすべての態様を定義することを意図するものではなく、本開示の他の特徴および利点は、図面を含む以下の詳細な説明から明らかになるであろう。本開示は、統一された文書として関連付けられることが意図されており、特徴の組合せが本開示の同じ文章、段落、またはセクションに一緒に見出されない場合であっても、本明細書に記載される特徴のすべての組合せが企図されることを理解されたい。さらに、本開示は、追加の態様として、本明細書において具体的に言及された変形形態よりもいかなる形でも範囲が狭い本発明のすべての実施形態を含む。
【0005】
本明細書で開示するように、デジタル信号処理(DSP)は、汎用プロセッサまたは中央処理装置(CPU)を使用して、多くの異なる方法で実行することができる。開示された機能を実行することができる高速処理を達成するために汎用プロセッサ上で実行される例示的な技法には、限定はしないが、
複数のCPUの使用、および各CPUの多くのコア上での並列処理、
単一命令複数データ(SIMD)技法の使用、
フィードバックループを分解するためのフィードフォワード処理、
重い処理をいくつかのCPUに分割するためのメタデータ(または状態情報)の事前計算、および
CPUの性能を向上させたり、メモリ帯域幅の使用率を低下させたりするように、複数の機能の単一の機能への収集がある。
【0006】
汎用CPUのスループットを向上させる1つの方法は、CPU上に存在するコアをできるだけ多く利用することである。CPU内のいくつかのコア間でデータが適切に共有されることを確実にするために、十分な注意が払われなければならないが、これは、より多くのCPUコアの追加に伴って処理スループットが増加することを可能にする。また、同じシステム上で複数のCPUを使用することも可能であり、各CPUは複数のコアを含む。本開示内のすべての実施形態は、CPU内の複数のコアを使用することを利用し、いくつかの実施形態は、サーバ環境におけるシステムおよび/またはシステムのグループごとに複数のCPUを有することを利用する。
【0007】
高い処理速度を達成する別の方法は、汎用CPUの単一命令複数データ(SIMD)能力を利用することである。これにより、AVX512 SIMD演算の場合のように、単一のCPUコアが単一の命令に対して16までの浮動小数点演算を実行することが可能になる。SIMDを使用する1つの例は、16個の浮動小数点結果が一度に計算される有限インパルス応答(FIR)フィルタ関数を使用することである。別の例は、複素数を互いに乗算する場合である。1対の直交信号(IQデータ)を計算する代わりに、AVX512を用いて、一度に8つのIQ対を計算することが可能である。複素乗算は、本開示で説明するほぼすべての処理アルゴリズムで使用される。SIMDを使用する他の例は、ダイバーシティコンバイナでの相関器、信号アナライザでのデシメーション、および再度チャネライザ/コンバイナでの調整を含む。
【0008】
いくつかの処理システムは、位相ロックループ(PLL)または遅延ロックループ(DLL)を含むことが多い、様々な形態のフィードバックを実装する。しかし、一般に、PLLおよびDLLの場合のように、フィードバックは、フィードバックの性質そのものがボトルネックを引き起こすので、問題となり得る。フィードバックループは、すべての着信データを、簡単にはこぼれない、または分割できない単一の(例えば、線形の)プロセスで処理させる。フィードバックに加えて、誤差項を計算する頻度を含む、PLLおよびDLLを使用して克服すべき他の障害がある。フィードバックループをフィードフォワードループで置き換えることができ、フィードフォワードループでは、誤差状態をデータのブロック上で処理することができ、次いで、計算された誤差項が、誤差項を適用する別のブロックにフィードフォワードされる。適切な重複が使用される場合、スループットをさらに増加させるために、その項の誤差計算および適用を、いくつかのCPUコアにわたって分割することができる。この一例は、ダイバーシティコンバイナであり、タイミングおよび位相補正が1つのブロックで計算され、タイミング調整が別のブロックで適用され、位相補正がさらに別のブロックで適用される。次いで、セットとしてのこの方法は、スループットをさらに増加させるために、いくつかのCPUコアにわたって並列化することができる。
【0009】
データを処理するためのフィードフォワードアプローチに加えて、単一のブロック内でメタデータの事前計算を実行し、次いで、いくつかのCPUコアにわたってデータの処理を分割することが有益であり得る。この方法は、すでに説明したフィードフォワード方法と同様であるが、この場合、ループ(フィードバックループなど)を分割するのではなく、単に多くのCPUコアを活用して、処理可能なデータ量を増やすだけである。このようにして、事前計算を実行するブロックは、CPU集約的な処理を実行しないが、forループ内の反復および開始インデックス、ならびに補間位相値間の傾斜点などの必要なステップを計算する。このような例の1つは、ダイバーシティコンバイナにおいて実行されるドップラー補償である。必要とされる位相調整は、第1のブロックにおいて作成されるが、位相調整を実行するためのCPU集約的な計算は、後続のブロックの下流にハンドオフされる。処理の第2の部分がCPU集約部分である場合、これにより、任意の数のCPUコアを利用することが可能になり、したがって、そうでなければ単一のブロック内では達成できなかった処理速度を高めることができる。
【0010】
高スループットを達成するために汎用CPU上で使用することができる別の技法は、機能のセットを使用する方法および使用するメモリタイプである。いくつかの場合には、メモリ帯域幅が性能の制限要因となる。そうである場合、目標は、ランダムアクセスメモリ(RAM)(CPUキャッシュのような高速メモリではない)との間で転送する必要があるデータ量を制限することである。これを行うために、機能は、より高速のCPUキャッシュにアクセスすることと比較して、より低速のRAMにできるだけアクセスしないことを目的に、個々に実行するのではなく、すべてが一緒に実行されるように、折り畳まれる必要がある。メモリ帯域幅を低減するための別の方法は、例えば、浮動または二重に対して、可能な場合にint8を使用して、適切な空間メモリタイプを利用する。
【0011】
一実施形態では、1つ以上のダウンリンク信号のチャネル帯域幅を管理するための方法が本明細書で提供される。方法は、1つ以上のアンテナフィードから1つ以上のダウンリンク信号を受信することであって、1つ以上のダウンリンク信号が第1の帯域幅を有する、受信することを含む。方法は、1つ以上のプロセッサ内の第1の1つ以上の処理ブロックにおいて、第1の複数のチャネルを作成する1つ以上のダウンリンク信号の第1の部分に対して第1のチャネライザ動作を実行することであって、第1の複数のチャネルの各々が、第1の帯域幅よりも小さい帯域幅を有する、実行することも含む。方法は、第1の1つ以上の処理ブロックと並列の1つ以上のプロセッサ内の第2の1つ以上の処理ブロックにおいて、第2の複数のチャネルを作成する1つ以上のダウンリンク信号の第2の部分に対して第2のチャネライザ動作を実行することであって、第2の複数のチャネルの各々が、第1の帯域幅よりも小さい帯域幅を有する、実行することも含む。方法は、1つ以上のプロセッサ内の第3の1つ以上の処理ブロックにおいて、第1の複数のチャネルのサブセットと第2の複数のチャネルのサブセットとを結合チャネルに結合するコンバイナ動作を実行することであって、結合チャネルが、第1の帯域幅よりも小さい第2の帯域幅を有する、実行することと、次いで、結合チャネルをネットワークに出力することと、をさらに含む。
【0012】
別の実施形態では、1つ以上のダウンリンク信号のチャネル帯域幅を管理するための別の方法が本明細書で提供される。方法は、1つ以上のアンテナフィードから1つ以上のダウンリンク信号を受信することであって、1つ以上のダウンリンク信号が第1の帯域幅を有する、受信することを含む。方法は、1つ以上のプロセッサ内の第1の1つ以上の処理ブロックにおいて、第1の複数のチャネルを作成する1つ以上のダウンリンク信号の第1の部分に対して第1のチャネライザ動作を実行することであって、第1の複数のチャネルの各々が、第1の帯域幅よりも小さい帯域幅を有する、実行することも含む。加えて、方法は、第1の1つ以上の処理ブロックと並列の1つ以上のプロセッサ内の第2の1つ以上の処理ブロックにおいて、第2の複数のチャネルを作成する1つ以上のダウンリンク信号の第2の部分に対して第2のチャネライザ動作を実行することであって、第2の複数のチャネルの各々が、第1の帯域幅よりも小さい帯域幅を有する、実行することを含む。方法は、次いで、第1および第2の複数のチャネルをネットワークに出力する。
【0013】
別の実施形態では、1つ以上のダウンリンク信号のチャネル帯域幅を管理するための別の方法が提供される。方法は、複数の入力チャネル上で1つ以上のダウンリンク信号の入力信号を受信することであって、各入力チャネルがスペクトル帯域幅を有する、受信することと、1つ以上のプロセッサ内の複数の処理ブロックにおいて、複数の入力チャネルのうちの選択されたサブセットのスペクトル帯域幅を結合チャネルに結合する入力チャネルに対するコンバイナ動作を実行することであって、複数の処理ブロックが並列に動作する、実行することとを含む。方法は、次いで、結合チャネルをネットワークに出力する。
【0014】
別の実施形態では、または、チャネル帯域幅、1つ以上のダウンリンク信号を管理するためのシステムが提供される。システムは、複数のダウンリンク信号を受信するように構成されている1つ以上のアンテナと、受信されたアナログ信号をデジタルビットストリームに変換するように動作可能なデジタイザと、複数のアンテナに通信可能に結合された1つ以上のプロセッサとを含む。1つ以上のプロセッサは、複数の処理ブロックを有し、上述の方法のうちの1つ以上を実行するように動作可能である。
【図面の簡単な説明】
【0015】
本発明の詳細は、その構造と動作の両方に関して、添付の図面を検討することによって部分的に収集することができ、添付の図面では、同様の参照番号は同様の部分を指す。
【0016】
図1】本明細書で開示する実施形態による、通信システムの一実施形態の図式表現である。
図2図1のシステムの1つ以上の構成要素として使用するためのワイヤードまたはワイヤレスの通信デバイスの機能ブロック図である。
図3】本明細書で開示する実施形態による、フィードフォワードまたは事前計算信号処理の一実施形態の図式表現である。
図4】本明細書で開示する実施形態による、図3のフィードフォワードまたは事前計算信号処理の別の実施形態の図式表現である。
図5】本明細書で開示する実施形態による、デジタル信号ダイバーシティコンバイナの一実施形態の機能ブロック図である。
図6】本明細書で開示する実施形態による、図5のダイバーシティコンバイナに含まれる例示的な処理ブロックの機能ブロック図である。
図7】本明細書で開示する実施形態による、図5のダイバーシティコンバイナに含まれる例示的な処理ブロックの機能ブロック図である。
図8】本明細書で開示する実施形態による、図5のダイバーシティコンバイナに含まれる例示的な処理ブロックの機能ブロック図である。
図9】本明細書で開示する実施形態による、図6の処理ブロックの例示的な機能ブロックの機能ブロック図である。
図10】本明細書で開示する実施形態による、図6の処理ブロックの例示的な機能ブロックの機能ブロック図である。
図11】本明細書で開示する実施形態による、図8の処理ブロックの例示的な機能ブロックの機能ブロック図である。
図12】本明細書で開示する実施形態による、デジタル信号チャネライザの一実施形態の機能ブロック図である。
図13】本明細書で開示する実施形態による、デジタル信号コンバイナの一実施形態の機能ブロック図である。
図14A】本明細書で開示する実施形態による、デジタル信号チャネライザおよびコンバイナの実施形態の機能ブロック図である。
図14B】本明細書で開示する実施形態による、デジタル信号チャネライザおよびコンバイナの実施形態の機能ブロック図である。
図15】本明細書で開示する実施形態による、図12のデジタル信号チャネライザのための例示的な処理ブロックの機能ブロック図である。
図16】本明細書で開示する実施形態による、図13のデジタル信号コンバイナのための例示的な処理ブロックの機能ブロック図である。
【発明を実施するための形態】
【0017】
汎用プロセッサを使用して高速処理を達成するための改善された通信システムの実施形態が開示される。本明細書で開示される実施形態は、汎用プロセッサを利用して高速の信号処理を効率的に達成することができる改善された通信システムを提供する。本明細書を読めば、様々な代替実施形態および代替用途において本発明をどのように実施するかが当業者には明らかになるであろう。しかし、本発明の様々な実施形態が本明細書で説明されるが、これらの実施形態は、限定ではなく、例および例示としてのみ提示されることが理解される。したがって、様々な実施形態のこの詳細な説明は、添付の特許請求の範囲に記載される本発明の範囲または幅を限定するものと解釈されるべきではない。
【0018】
本明細書全体にわたって、「1つの実施形態」または「一実施形態」への言及は、実施形態に関連して説明された特定の特徴、構造、または特性が、少なくとも1つの実施形態に含まれることを意味する。したがって、本明細書全体にわたる様々な箇所における「1つの実施形態において」または「一実施形態において」という句の出現は、必ずしもすべてが同じ実施形態を指すわけではない。さらに、特定の特徴、構造、または特性は、1つ以上の実施形態において任意の適切な方法で組み合わせることができる。
【0019】
通信システムは、説明全体にわたって主要な例として使用されているが、開示されている方法の適用は、そのように限定されない。例えば、デジタル信号処理、モデムなどの使用を必要とする任意のワイヤレスまたは無線通信システムは、本明細書に記載されたシステム、方法、およびコンピュータ可読媒体を実装することができる。
【0020】
本開示は、標準的なサーバ環境または仮想化されたクラウド環境のいずれかにおいて、汎用中央処理装置(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号に記載されているものと同様であり、その内容は、その全体が参照により組み込まれる。
【0021】
図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)を含むこともできる。
【0022】
同様に、地上局130は、アンテナ132およびデジタイザ134を有することができ、地上局140は、アンテナ142およびデジタイザ144を有することができる。
【0023】
地上局120、130、140は各々、プラットフォーム110からダウンリンク信号160(160a、160b、160cとラベル付けされている)、および衛星111からダウンリンク信号170(170a、170b、170cとラベル付けされている)を受信チェーンで受信することができる。地上局120、130、140はまた、送信チェーン内のそれぞれのアンテナ122、132、142を介してアップリンク信号を送信することができる。デジタイザ124、134、144は、デジタルビットストリーム152として送信するために、受信されたダウンリンク信号160、170をデジタル化することができる。次いで、デジタルビットストリーム134は、ネットワーク154を介してクラウド処理システムに送信され得る。
【0024】
いくつかの例では、地上局120、130、140は、(例えば、ダウンリンク信号に含まれる)すべてのデータをローカルに処理することができるが、これは、時間、リソース、および効率の観点から、非常に高価になる可能性がある。したがって、いくつかの実施形態では、ダウンリンク信号をデジタル化し、デジタルビットストリーム152として遠隔信号処理サーバ(SPS)150に送信することができる。いくつかの実装形態では、SPS150は、ワイドエリアネットワーク(WAN)を介してアクセス可能なオフサイト設備に配置されたデータセンターなどの物理的位置に配置することができる。そのようなWANは、例えば、インターネットとすることができる。SPS150は、デジタルビットストリーム152からダウンリンク信号を復調し、ダウンリンク信号からデータまたは情報ビットを出力することができる。いくつかの他の実装形態では、SPS150は、クラウドコンピューティングまたはクラウド処理を使用して、本明細書で説明する信号処理および他の方法を実行することができる。SPS150は、クラウドサーバとも呼ばれ得る。
【0025】
次いで、SPS150は、処理されたデータをユーザに提供するか、または別のサイトに送信することができる。データおよび情報は、ミッションに依存し得る。加えて、データに含まれる情報は、気象データ、画像データ、および衛星通信(SATCOM)ペイロードデータを含む、衛星の主な目的になり得る。上述したように、SATCOMは、本明細書の主要な例として使用されるが、DSPを使用する任意の通信または信号処理システムは、本明細書で説明される方法を実装することができる。
【0026】
ソフトウェアを用いて高い処理速度を達成するために、位相ロックループ(PLL)または遅延ロックループ(DLL)アプローチは、ループ内のフィードバックのために問題となる可能性がある。フィードバックループは、着信データ(例えば、ダウンリンク信号132)のすべてを、簡単にはこぼれない、または分割できない単一の(例えば、線形の)プロセスで処理させる。フィードバックに加えて、例えば、誤差項を計算する頻度を含む、PLL/DLLを使用して克服すべき他の障害がある。
【0027】
図2は、図1のシステムの1つ以上の構成要素として使用するためのワイヤードまたはワイヤレスの通信デバイスの機能ブロック図である。処理デバイス(デバイス)200は、例えば、図1のSPS150として実装されてもよい。デバイス200は、本明細書で開示される信号処理方法またはステップのうちの1つ以上を実行するために、必要に応じて実装され得る。
【0028】
デバイス200は、デバイス200の動作を制御するプロセッサ202を含み得る。プロセッサ202は、CPUとも呼ばれ得る。プロセッサ202は、例えばSPS150に起因する機能を指示および/または実行することができる。プロセッサ202を含むデバイス200のいくつかの態様は、クラウドベースの処理など、様々なクラウドベースの要素として実装することができる。したがって、プロセッサ202は、ネットワーク(例えば、インターネット)を介していくつかの異なるプロセッサにわたって分散されたクラウド処理を表すことができる。代替的に、いくつかの構成要素をハードウェアで実装することができる。プロセッサ202は、汎用マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、プログラマブル論理デバイス(PLD)、コントローラ、ステートマシン、ゲート論理、ディスクリートハードウェアコンポーネント、専用ハードウェア有限ステートマシン、または情報の計算または他の操作を実行することができる任意の他の適切なエンティティのうちの1つ以上の任意の組合せで実装され得る。
【0029】
プロセッサ202は、計算を実行することができる1つ以上のコア204(コア204a~コア204nとして示される)を有することができる。クラウド処理を使用する実装形態では、コア204は、分散クラウド処理の複数の反復を表すことができる。いくつかの実施形態では、ハードウェアを使用して、プロセッサ202は、受信機のためのすべての計算が行われている複雑な集積回路とすることができる。本明細書で使用されるように、コア204は各々、プロセッサ202の1つの処理要素とすることができる。プロセッサ202は、本明細書で開示される方法に必要な並列処理を実行するために、複数のコア204を実装することができる。いくつかの実施形態では、プロセッサ202は、クラウドコンピューティングのように、複数のCPUにわたって分散されてもよい。
【0030】
デバイス200は、プロセッサ202に動作可能に結合されたメモリ206をさらに含むことができる。メモリ206は、クラウドベースのストレージまたはローカルハードウェアストレージとすることができる。メモリ206は、プロセッサ202に命令およびデータを提供する読取り専用メモリ(ROM)とランダムアクセスメモリ(RAM)の両方を含むことができる。メモリ206の一部は、不揮発性ランダムアクセスメモリ(NVRAM)も含み得る。プロセッサ202は、典型的に、メモリ206内に記憶されたプログラム命令に基づいて論理演算および算術演算を実行する。メモリ206内の命令は、本明細書で説明される方法を実装するために実行可能であってもよい。メモリ206は、リムーバブルメディアまたは複数の分散データベースをさらに含むことができる。
【0031】
メモリ206は、ソフトウェアを記憶するための機械可読媒体も含み得る。ソフトウェアは、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語などと呼ばれるかどうかにかかわらず、任意のタイプの命令を意味するように広く解釈されるものとする。命令は、コード(例えば、ソースコードフォーマット、バイナリコードフォーマット、実行可能コードフォーマット、または任意の他の適切なコードフォーマット)を含み得る。命令は、プロセッサ202または1つ以上のコア204によって実行されると、デバイス200(例えば、SPS150)に、本明細書で説明する様々な機能を実行させる。
【0032】
デバイス200は、通信デバイス200と遠隔地との間のデータの送信および受信を可能にするために、送信機210および受信機212も含み得る。そのような通信は、例えば、ネットワーク124を介して地上局120とSPS150との間で行われ得る。そのような通信は、無線であってもよく、または有線通信を介して行われてもよい。送信機210および受信機212は、トランシーバ214に組み合わせてもよい。トランシーバ214は、ネットワーク124に通信可能に結合することができる。いくつかの例では、トランシーバ214は、ネットワークインターフェースカード(NIC)を含むことができ、またはその一部とすることができる。
【0033】
デバイス200は、ユーザインターフェース222をさらに含み得る。ユーザインターフェース222は、キーパッド、マイクロフォン、スピーカ、および/またはディスプレイを含み得る。ユーザインターフェース222は、デバイス200のユーザに情報を伝達し、かつ/またはユーザから入力を受信する任意の要素または構成要素を含んでもよい。
【0034】
明細書で説明するデバイス200の様々な構成要素は、バスシステム226によって互いに結合され得る。バスシステム226は、例えば、データバス、ならびに、データバスに加えて、電力バス、制御信号バス、およびステータス信号バスを含み得る。いくつかの実施形態では、バスシステム226は、ネットワーク124に通信可能に結合することができる。ネットワーク124は、例えば、デバイス200(例えば、プロセッサ202)と地上局120との間の通信リンクを提供することができる。当業者は、デバイス200の構成要素が一緒に結合され得るか、または、分散処理のためのローカルエリアネットワークまたはワイドエリアネットワークなど、何らかの他のメカニズムを使用して、互いに入力を受け入れるか、もしくは提供し得ることを理解されよう。
【0035】
図3は、フィードフォワードまたは事前計算信号処理300の概略ブロック図の図式表現である。方法300は、例えば、プロセッサ202による複数の機能を組み込む一般化されたプロセスとして行うことができる。プロセッサ202は、1つ以上の所望のプロセスを実行するために、示されるように、直列または並列の配置で複数の機能を実行することができる。各機能は、プロセッサ202によって実行可能であり、メモリ206に記憶された命令またはソフトウェアのブロックまたは集合を指し得る。
【0036】
第1の機能302は、プロセッサ202によって実行することができる。いくつかの実施形態では、第1の機能302に続いて、第2の機能304を直列に実行することができる。したがって、プロセッサ202は、第1の機能302および第2の機能304を実行するために、複数のコア204上で処理するための異なる機能に関するデータのブロックを分割することができる。
【0037】
プロセッサ202は、第2の機能304に続いて、第3の機能306(306a、306b…306nとして示される)の分散処理を並列に実行することができる。第3の機能306の並列処理は、例えば、プロセッサ202のいくつかのコア204(例えば、処理ブロック)にわたって、同じ機能に関連付けられたデータのブロックを分割することを含むことができる。例えば、「データのブロック」は、処理される必要があるサンプルのグループを意味することができる。
【0038】
次いで、プロセッサ202は、第4の機能308および第5の機能309を直列に実行することができる。第1の機能302および第2の機能304と同様に、第4の機能308および第5の機能309のシリアル性能は、複数のコア204にわたる処理のために、異なる機能に関連付けられたデータのブロックを分割することを含むことができる。一般に、第1の機能302、第2の機能304、第3の機能306、第4の機能308、および第5の機能309の各々は、各々、異なる処理ブロックで実行することができる。本明細書で使用されるように、処理ブロックは、データのブロック上で実行される特定のタスクを指すことができる。処理ブロックは、例えば、コア204のうちの1つ以上に関連付けることができる。
【0039】
したがって、方法300は、例えば、複数のコア204にわたって処理するために、同じ機能に関するデータのブロックを分割することができる。同様に、方法300は、複数のコア204にわたって処理するために、異なる機能に関するデータのブロックを分割することができる。
【0040】
方法300のいくつかの他の実装形態では、同じ処理ブロック(例えば、コア204)は、同じ機能であるか異なる機能であるかにかかわらず、単一命令複数データ(SIMD)を用いてデータの処理を実行することができる。
【0041】
他の実装形態では、方法300の実施形態は、重複するデータを使用することによって、最小限の状態情報を有するデータの処理ブロックをサポートすることができる。本明細書で使用されるように、状態情報は、フィードバック(例えば、フィードバック処理)中に必要とされる変数、データフレーム境界などを含むことができる。例えば、フィードバックループの場合、状態情報は、連続的なデータストリームを処理する際のフィードバック中に必要とされる、ループ内で計算された変数を含むことができる。状態情報はまた、データストリーム内のフレーム境界の位置を含むことができる。他の例は、FIRフィルタなどのものを含むことができ、状態情報は、連続的なデータフローを維持するために必要とされるバッファ(例えば、おそらく多くの遅延要素)に記憶された値を含む。
【0042】
状態情報およびデータの隣接ブロックの重複部分を無視することによって、プロセスは、データのブロック間の可変レベルの重複を使用して、並列処理を利用することができる。
【0043】
図4は、図3のフィードフォワードまたは事前計算信号処理のための方法の一実施形態の図式表現である。方法400は、複数の機能のための直列-並列および/または並列-直列処理のために方法300の原理を使用することができる。一例では、第1の機能302(図3)は、プロセッサ202が処理のためにデータを受信するデータ取り込み機能305とすることができる。第2の機能304(図3)は、データ分割機能310とすることができ、プロセッサ202は、重複するデータのブロック内のデータを解析することができる。次いで、重複するデータのブロックは、処理ブロック315a~315nとして、第3の機能306a~306nの様々な並列反復において並列に処理することができる。データのブロックにおける重複は、状態情報にあまり依存しない(またはまったく依存しない)レベルの冗長性を提供することができる。必要とされる状態情報が少なければ少ないほど、連続ストリームとは対照的に、データのブロックを並列に処理することが容易になる。
【0044】
方法400は、処理されたデータを結合する、第4の機能308(図3)と同様のデータ結合機能320と、第5の機能309(図3)と同様のデータ出力機能325とをさらに含むことができる。
【0045】
さらなる例では、方法300の様々な機能の調整可能な直列-並列または並列-直列配置は、フィードバックループを置き換えるためにフィードフォワード処理を実施するいくつかの方法を提供する。これは、スループットを増大させ、フィードバック処理の遅延によって引き起こされるボトルネックを回避することができるので有利である。
【0046】
方法300および方法400によって提供される直列-並列または並列-直列処理のさらなる利点は、処理ブロック(例えば、方法300の5つの処理ブロックのうちの1つ)内に所望のアルゴリズムのうちの1つ以上を配置することによって、プロセッサ202が、処理ブロック(例えば、コア204)内の所与のアルゴリズムの速度を心配することなく、処理負荷を(例えば、複数のコア204にわたって)分散させることが可能になることである。したがって、各コア204は、まったく同じ処理負荷を共有し、個々のアルゴリズムによって引き起こされるボトルネック問題を排除する。
【0047】
方法300の実施形態のさらなる利点は、プロセッサ202内の計算負荷を低減するために、アルゴリズム(例えば、処理ブロック)の特定の順序をカスタマイズすることを含むことができる。以下に説明するように、所与のプロセスの全体的なマルチステージ処理は、複数のサブプロセスの順序にはとらわれない場合がある。したがって、いくつかの例では、第4の機能308を順序付けることは、第3の機能306の前に実行される場合、ある利点を有し得る。
【0048】
方法300は、さらに、例えば、int8、int16、およびfloatなど、メモリ帯域幅最適化のための異なる可変タイプを実装することができる。これは、(例えば、タイプに基づいて)いくつかのアルゴリズムを加速することができる。加えて、これは、メモリ帯域幅を最大化するための柔軟性の増大を提供することができる。
【0049】
図5は、デジタル信号ダイバーシティコンバイナの一実施形態の機能ブロック図である。ダイバーシティ結合のための方法500は、上述したようなフィードフォワードブロック処理を含むことができる。方法500は、複数のブロックを含む。いくつかの例では、各ブロックは、処理ブロックを表し、処理ブロック315a、315b…315n(図4)などと同様の方法で機能を実行し得る。別の例では、複数のブロックを、処理ブロック315a、315b…315n(図4)などと同様の方法で機能を実行する単一の「処理ブロック」として一緒にグループ化することができる。
【0050】
図12図16は、チャネライザおよびコンバイナの様々な実施形態の機能ブロック図である。図12図14Bに示す方法は、事前計算信号処理を含む例示的なプロセスを示す。方法500と同様に、方法1200、1300、1400a、1400b、1500、および/または1600のうちの1つ以上は、複数の処理ブロックを含むことができる。いくつかの例では、各ブロックは、処理ブロックを表し、処理ブロック315a、315b…315n(図4)などと同様の方法で機能を実行し得る。別の例では、複数のブロックを、処理ブロック315a、315b…315n(例えば、図4)などと同様の方法で機能を実行する単一の「処理ブロック」として一緒にグループ化することができる。例えば、図15は、チャネライザ処理ブロック1500として実装される例示的な処理ブロックを図式的に示し、図16は、コンバイナ処理ブロック1600として実装される例示的な事前計算処理ブロックを図式的に示す。ブロック1500のサブ要素またはブロックは、図15に示されるように個別に実行されてもよく、または単一のブロックに結合されてもよい。同様に、ブロック1600のサブ要素またはブロックは、図16に示されるように個別に実行されてもよく、または単一のブロックに結合されてもよい。
【0051】
ブロック305において、SPS150は、(例えば、ネットワーク124を介して)デジタルビットストリーム134を取り込むか、そうでなければ受信することができる。ブロック305におけるデータ取り込みは、ネットワーク接続(例えば、Ethernet)からデジタルビットストリーム134データを受信することができる。
【0052】
ブロック310において、データは、データスプリッタによって並列のデータストリームに分離され得る。いくつかの実施形態では、プロセッサ202は、ブロック310で必要とされるデータ分離機能を実行することができる。いくつかの他の実施形態では、別個のデータ分離構成要素(例えば、データスプリッタ)をデバイス200(図2)に含めることができる。データを複数の並列ストリームに分離することにより、ダウンリンク信号132の並列処理を可能にすることができる。したがって、方法300は、フィードフォワードまたは事前計算処理を利用して、着信デジタル化信号データをより小さい断片に分け、次いで複数のコア204上で処理することを可能にすることができる。同相/直交(I/Q)対で重複するパケットを形成するように、デジタルビットストリーム134を分離することができる。いくつかの実施形態では、「重複するパケット」は、連続するパケットが隣接するデータパケットと重複するデータパケットを含むことができる。いくつかの実施形態では、データパケットは、すべて同じ長さであってもよいが、重複していてもよい。データパケットの重複は、データパケットの先頭または末尾とすることができる。加えて、データパケットは、先行するデータパケットと後続するデータパケットの両方と重複し得る。また、データパケットは、異なる長さ(例えば、異なる量のデータ)を有することができる。したがって、処理ブロック315aに送信された第1のパケットは、処理ブロック315bに送信された第2のパケットのいくつかのデータと重複するか、そうでなければ繰り返し得る。
【0053】
パケット間の重複の量、または重複サイズは、プログラム可能であり、必要に応じて設定することができる。いくつかの例では、重複は、パケットサイズの1パーセント(1%)に設定することができる。この重複サイズは、必要に応じて増減することができる。例えば、重複サイズに影響を与え得る1つの特定のパラメータは、データストリーム134におけるシンボルレートの不確実性である。ほとんどの信号では、最悪の場合の不確実性は1%未満であり、したがって、1%ではほとんどの場合をカバーする。いくつかの他の実施形態では、重複は、必要に応じて、2%、3%、4%、5%、6%、7%、8%、9%、または10%程度の高さ、またはその間の任意の場所とすることができる。同様に、1%未満の重複を有することも可能である。データレートの不確実性が0.1%未満である場合、重複は0.1%以下であり得る。
【0054】
プロセッサ202は、デジタルビットストリーム134上で単一命令複数データ(SIMD)処理を実施することができる。いくつかの例では、SIMDは、単一のCPU命令上の単一のCPUコア上で16の浮動小数点演算を可能にする、512ビット(AVX-512)を使用する高度ベクトル拡張を含むことができる。例えば、AVX-512は、CPU(例えば、CPU202)で膨大な量のデータを処理することができる。例えば、プロセッサ202(およびデバイス200)は、500MHz帯域幅データストリームを受信することができる。500MHzの帯域幅は、10ギガビットのEthernetリンクの一般に受け入れられている実際的な制限であるため、いくつかの点で重要である。I/Q対のための8ビットサンプルで、パリティビットを含めて、500MHzでデータをサンプリングすることは、10ギガビットEthernetリンクを飽和させる可能性がある。500MHzの例は、本開示を限定するものではない。10ギガビットのEthernetリンクよりも大きいデータパイプが可能である。加えて、任意の量のデータに対応するために、処理をn個の並列ブロック(例えば、ブロック315)に分離することができる。
【0055】
ブロック315は、破線で示され、方法300の処理ステップを示す。ブロック315は、複数の並列ステップ、すなわち、ブロック315a、315b~315nで示されている。「並列」という用語は、本明細書では、処理ブロック315a~315nで同時に、または同じときに処理が行われることを説明するために使用される。処理されるパケットは、1つの処理ブロック315から別の処理ブロックまで異なる長さのものであってもよく、したがって、パケットの処理は、1つの処理ブロック315から次の処理ブロックまで同じレートまたは速度を有してもよい。以下に述べるように、処理ブロック315のいくつかは、他のものよりも速くまたは遅く進む可能性がある。したがって、並列という用語は、処理ブロック315内の同時または並行処理に限定されないものとする。
【0056】
本明細書で使用される処理ブロック315は、例えば、プロセッサ202によって実行される処理機能の集合を指し得る。デジタルビットストリーム134は、複数の並列処理ブロック315a、315b…315nに送信されて、処理負荷をいくつかのコア204に分散させることができる。個々の処理ブロック315a、315b…315nは、クラウド処理の個々の反復を表すことができる。したがって、処理ブロック315a~315nの各々の処理は、(クラウドベースの)コア204a~204nに関連付けることができる。必要とされる処理ブロック315の数は、処理されるデータの量に基づいて変わる。いくつかの実施形態では、処理ブロック315の数は、ネットワーク154を介して、または、ローカルハードウェア処理のために、プロセッサ202内で利用可能な論理コアの数によって制限することができる。いくつかの他の実施形態では、メモリ帯域幅の制約は、信号処理にボトルネックを引き起こす可能性がある。メモリ帯域幅は、プロセッサ(例えば、プロセッサ202)によってデータが半導体メモリ(例えば、メモリ206)から読み出されるか、または半導体メモリ(例えば、メモリ206)に記憶することができるレートを指すことができる。
【0057】
いくつかの実施形態では、処理ブロック315の数は変わり得る。一般に、存在する処理ブロック315が少なければ少ないほど、プロセス全体に必要なコアの数を制限する方がよい。これにより、さらに、システムを、より安価に動作する、より小さい仮想プライベートクラウド(VPC)マシンに適合させることができる。VPCは、例えば、いくつかのCPUを有するSPS150を含むことができる。いくつかの実施形態では、8つの処理ブロック315が、10ギガビットEthernetリンクのために使用され得る。そのような実施形態は、順方向誤り訂正処理ブロックを含まなくてもよい。いくつかの他の実施形態では、必要とされる処理ブロック315の数に対する唯一の実際的な制限は、通信リンクのビットレートおよび帯域幅(例えば、パイプのサイズ)である。したがって、任意の数(n)の処理ブロック315が可能である。しかし、いくつかの実施形態では、CPU上で実行することができるスレッドの数またはプロセッサ202内のコア204の数に基づいて、処理ブロック315の数(n)に対する実際的な制限が存在し得る。しかし、単一のCPU内で制限に達した場合、SPS150(例えば、VPC)内で一緒に複数のCPU(例えば、プロセッサ202)が処理を実行するための無制限の数のクラウドベースのCPUまたはコア204を有する。加えて、プロセッサ202は、必要に応じて新しい処理ブロック315を作成することができる。処理コア204は、スループットおよび効率のために必要に応じて、複数の分散プロセッサ(例えば、プロセッサ202)に分散させることができる。
【0058】
処理ブロック315は、どの処理ブロック315a、315b…315nが最も遅く(または最も速く)実行されるかは問題にならないように構成される。方法300は、処理ブロック315にわたって処理負荷を共有することができ、したがって、個々の処理ブロック315におけるボトルネック問題によって引き起こされる任意の処理遅延を軽減することができる。例えば、処理ブロック315の個々のサブプロセス(以下の図4の説明を参照)は、実行されないか、または等しいレートで行われ得る(例えば、いくつかは、他のものよりも速い)。したがって、例えば、方法400(図4)のより大きいプロセスは、性能または処理時間の変動を考慮することができる。次いで、処理ブロック315は、着信データを処理するのに必要な回数だけ作成され得る。
【0059】
いくつかの実施形態では、各処理ブロック315は、プロセッサ202によって実行される信号処理アルゴリズムの集合を表すことができる。本明細書で使用されるように、アルゴリズムは、所望の機能を実行する機能または方法ステップの最小の集合を指すことができる。本明細書では、複数の例示的なアルゴリズムが説明される。
【0060】
方法300の例示的な利点は、必要に応じて、より多くの処理ブロック315を作成する能力である。一般に、処理ブロック315は、ソフトウェアで実装することができ、したがって、所与のデータレートまたは処理負荷に適するように、必要に応じて作成または削除することができる。各処理ブロック315は、異なる受信波形(例えば、ダウンリンク信号132)および関連するデジタルビットストリーム134の必要性に適合するように再構成することができる。
【0061】
ブロック320において、複数の処理ブロック315からの処理済み信号データを再度組み合わせて、ダウンリンク信号134上で符号化および変調された元のデータを形成することができる。いくつかの実施形態では、プロセッサ202は、データリコンバイナの機能を実行することができる。他の実施形態では、デバイス200は、そのような機能を実行するための追加の構成要素を有することができる。各データパケットまたは処理されたデータブロックは、タイムスタンプを有することができる。データリコンバイナ(例えば、プロセッサ202)は、タイムスタンプに基づいてデータブロックを順序付けし、順序付けられたブロック間の位相を比較することができる。リコンバイナは、データストリームを再順序付けする隣接ブロックの位相をさらに調整することができる。いくつかの実施形態では、後続のデータブロックの位相は、前のデータブロックの位相と一致するように調整することができる。
【0062】
315に示されるすべての処理ブロックについて、実行するための少なくとも4つのオプションがある。
【0063】
1)複数のブロックが実行され、処理ブロック315内の各サブ要素(例えば、各ブロック315a~315n)はそれ自体のコア(例えば、コア204a~204n)を得る。
【0064】
2)複数のブロックが実行され、処理ブロック315はブロック全体に対してただ1つの専用コアを得る。
【0065】
3)単一のブロックが実行され、処理ブロック内の各サブ要素はそれ自体のコアを得る。
【0066】
4)単一のブロックが実行され、処理ブロックはブロック全体に対してただ1つの専用コアを得る。
【0067】
実行可能なコアが多ければ多いほど、達成可能なレートは高くなる。
【0068】
ブロック325において、デバイス200は、データを適切な受信機に出力することができる。いくつかの例では、そのような受信機は、1つ以上のミッションオペレーションセンターとすることができる。このデータは、ミッション依存(例えば、衛星の目的)とすることができ、とりわけ、気象データ、画像データ、およびSATCOMペイロードデータを含むことができる。
【0069】
汎用CPUでは、高速性能を制限する可能性のある少なくとも3つの主要な要因がある。1)データ取り込み、2)CPU容量、および3)メモリ帯域幅利用率。データ取り込みとは、データをCPUにどれだけ速く供給することができるかを指す。CPU容量が駆動される、CPUクロック速度およびCPU内のコア数。メモリ帯域幅とは、CPUと外部DDR RAM(CPUキャッシュではない)との間でデータをどれだけ迅速に転送できるかを指す。メモリ帯域幅は、メモリレーンの数およびDDR RAMクロック速度によって決定され得る。いくつかの場合には、高速処理を達成するための制限要因はCPU容量であるが、他の場合にはメモリ帯域幅である。上記の場合のうちのどれが性能に影響を及ぼしているかを決定するために注意を払わなければならず、メモリ帯域幅が制限されている場合、以下で説明する実施形態は、提案された特許アプローチ内でメモリ帯域幅利用率を低下させる方法の非限定的な例である。
【0070】
所与の処理ブロック内の関数呼び出しは、CPU計算またはメモリ帯域幅利用率を最適化するように構成することができる。例えば、図10に示される関数呼び出し(ブロックとして例示的に示される)を参照すると、所与の例について、様々な関数呼び出し(例えば、Raise to N Powerブロック、ミキシングブロック、およびデシメーションブロック)は、メモリ帯域幅を最小化するようにグループ化することができる。これらの関数呼び出しは、別の関数が開始する前に各関数が1組のデータ上で完了するように、独立して呼び出すことができ、それによって各関数を単純化することができる。別の例では、複数またはすべての関数呼び出しを1つのブロックに結合することができ、その結果、各実行された関数の後にデータがRAMに転送されず、結合された関数のメモリ帯域幅は、独立して呼び出されるよりもはるかに小さくなる。独立して呼び出される関数の場合、第2の関数呼び出し(例えば、ミキシングブロック)が発生する前に、第1の関数呼び出し(例えば、Raise to N Power)をデータセット全体にわたって実行することができる。結合の場合、第2の関数が実行される前に、データの一部のみが第1の関数呼び出しで処理されることになる。このようにして、メモリ帯域幅は低下する。この方法は、図10に示されたものだけでなく、関数の任意のグループに適用することができる。例えば、この方法は、図11に示されるタイミングおよび位相誤差計算、または本明細書で開示されるような処理ブロック(例えば、図7図16に示される様々な関数呼び出しブロック)で実行される関数呼び出しのための任意の他のグループ化に適用され得る。
【0071】
メモリ帯域幅利用率を改善する別の方法は、上述のアプローチと同様に、いくつかの関数呼び出しブロックを1つのブロックに折り畳むことであってもよい。例えば、チャネライザの場合、1つのチャネルをN個のチャネルに分離するために、3つの主要な機能、1)有限インパルス応答(FIR)フィルタ、2)循環バッファ、および3)逆高速フーリエ変換(IFFT)が必要であり得る。コンバイナの場合、M個のチャネルを1つのcに結合するために、3つの主要な機能、1)IFFT、2)循環バッファ、および3)有限インパルス応答(FIR)フィルタが必要となり得る。通常、動作およびCPUの最適化を容易にするために、各機能は、図15および図16に示すように、それ自体のブロックを必要とするが、メモリ帯域幅利用率を低下させるために、すべての機能を1つのブロックに結合することができる。このトレードオフは、CPU性能のヒットのためにメモリ帯域幅利用率を低下させる。
クラウド環境において高スループット動作を達成するために複数のコア上で並列処理を使用する汎用CPU上で実行されるブラインド検出およびドップラー補償を伴うダイバーシティコンバイナの例示的な実施形態
【0072】
上述したように、図5は、方法500の一実施形態の機能ブロック図である。一例では、方法500は、ブラインド検出およびドップラー補償を伴うダイバーシティコンバイナ方法500と呼ばれることがある。ダイバーシティ結合は、信号が時間および位相において整列され、各々が信号品質に基づいて重み付けされて、複数のチャネルの情報転送を最適化するように、複数のアンテナフィードを一緒に結合するために使用され得る。信号品質は、例えば、限定はしないが、信号対雑音比、シンボル対雑音電力スペクトル密度(Es/No)当たりのエネルギー、電力推定値、受信信号強度インジケータ(RSSI)などのうちの1つ以上を使用して決定され得る。複数のアンテナフィードは、プラットフォーム110または衛星111など1つ以上の遠隔位置からのものとすることができる。本明細書では、衛星を例として使用するが、無線アンテナ(例えば、アンテナ122)または他のタイプの送信機など、他のワイヤレス送信システムを実装することができる。したがって、衛星の使用は、本開示を限定するものではない。
【0073】
図1に示されるような衛星の場合、プラットフォーム110および衛星111が同じ地上局(例えば、地上局122)から見えるが、例えば、衛星111が地平線より下に(例えば、東に)降下し、プラットフォーム110が地平線より上に(例えば、西に)上昇しているときに、アンテナハンドオーバイベント中にダイバーシティ結合を使用することもできる。ダウンリンク信号を適切に結合するために、いくつかの計算が実行されなければならない。開示されたシステムは、信号をデジタル化し、デジタルサンプルに変換することができ、デジタルサンプルは、次いで、信号処理要素に搬送される。システムは、さらに、ドップラー効果を計算し、補償することができる。システムはまた、ダウンリンク信号間の残留位相および周波数デルタ(例えば、差)、ならびに各チャネルの時間差および推定信号対雑音比を決定することができる。これらの動作に続いて、信号は次いで一緒に結合される。
【0074】
上述のように、図は、各々が処理ブロックを表し、要素306a、306b、...306c(図4)のうちの1つ以上として、および/または処理ブロック315a、315b...315n(図4)のうちの1つ以上として実装され得る複数のブロックを示す。別の例では、図5に示す複数のブロックを、処理ブロック315a、315b…315n(図4)および/または要素306a、306b...306c(図3)と同様の方法で機能を実行する単一の「処理ブロック」としてグループ化することができる。
【0075】
方法500は、最高レベルで図5に例示的に示されている。方法500は、複数の処理ブロック、例えば、1つ以上の信号アナライザ処理ブロック510a~510n(まとめて信号アナライザ処理ブロック510または処理ブロック510と呼ぶ)、1つ以上のドップラー補償器処理ブロック520a~520n(まとめてドップラー補償器処理ブロック520または処理ブロック520と呼ぶ)、およびダイバーシティコンバイナ処理ブロック530を含む。図示の例では、複数の信号に対して機能を実行するための複数の信号アナライザ処理ブロック510a~510nおよびドップラー補償器処理ブロック520a~520nが示されており、各ブロックは対応する信号に対して実行される。任意の数の信号が可能であるが、本明細書の例は、2つの信号を参照して説明される。
【0076】
信号アナライザ処理ブロック510の一例が図6に図式的に示され、ドップラー補償器処理ブロック520の一例が図7に図式的に示され、ダイバーシティコンバイナ処理ブロック530の一例が図8に図式的に示されている。方法300および/または方法400は、処理ブロック510~530の各々についてダウンリンク信号160、170(例えば、図1)を処理するために使用され得る。処理ブロック510、520、および/または530のうちの1つ以上は、図3に関連して説明した方法300の306の要素306a~cのうちの1つ以上、または図4に関連して説明した方法315の要素315a~nのうちの1つ以上として実施することができる。
【0077】
各処理ブロック510、520、および530を別々に実行することも可能である。1つの例は、前述のアンテナハンドオーバの場合とは対照的に、右手および左手偏波出力などの2つの独立したダウンリンク信号を有する1つの送信衛星がある場合に、ダイバーシティコンバイナ処理ブロック530のみを使用することである。この場合、タイミングおよびドップラー効果は無視することができ、したがって、信号アナライザ処理ブロック510およびドップラー補償器処理ブロック520は不要になる場合がある。
【0078】
例示的な信号アナライザ処理ブロック510が図6に示されており、これは、シンボルレート、変調タイプ(本明細書では「modタイプ」と呼ばれる)、および/または中心周波数が、各々、ユーザからのいかなる入力もなしに推定され得るブラインド検出のために使用され得る。処理ブロック510は、例えば、粗シンボルレート推定器機能ブロック605、タイミング回復誤差計算器機能ブロック610、Modタイプおよび搬送波推定器機能ブロック620、ならびに(Es/No推定器機能ブロック625など複数のサブ要素を含み得る。処理ブロック510は、タイミング回復機能ブロック615も含み得る。
【0079】
例示的な粗シンボルレート推定器機能ブロック610が図9に図式的に示されている。機能ブロック610の図示の例は、複数のサブ要素またはサブ機能ブロック905~920を含む。第1のサブ機能ブロック905は、例示的な方法として、ガードナー計算を使用して、および/または差分共役計算を実行して、シンボルレートを推定する。ガードナー計算の例は、米国特許第10,790,920号により詳細に記載されており、その開示は、あたかも完全に記載されているかのように、参照により本明細書に組み込まれる。差分共役の一例は、ベクトル計算であり、y[n]=a[n]*conj(a[n+1])であり、ここで、nは、0から入力-1の長さまでの範囲である。いずれの計算においても、サブ機能ブロック905は、推定されたシンボルレートをサブ機能ブロック910に出力し、サブ機能ブロック905の出力のFFTが取得され、サブ機能ブロック920において最大ピーク周波数が検出される。検出された最大ピーク周波数は、シンボルレートに対応し、シンボルレートは、検出された最大周波数に基づいて推定することができる。様々な実施形態では、位相計算機能ブロック915で、差分共役計算y[n]の位相から信号の粗い搬送波推定値を測定することも可能である。
【0080】
再び図6を参照すると、タイミング回復誤差計算610およびタイミング回復615の例が、米国特許第10,790,920号に記載されており、その開示は、あたかも完全に記載されているかのように、参照により本明細書に組み込まれる。例えば、機能ブロック605で推定されたガードナータイミングエラー検出器は、当技術分野で知られているように、タイミング情報を作成するために入力データに適用することができる。別の実施形態では、着信サンプルストリームを1サンプルだけ遅延させることができる。次いで、遅延していないデータに、遅延したデータの共役を乗算(共役乗算)することができる。両方とも、利点および欠点を有するので、それは、実施され得るエンジニアリングトレードオフである。
【0081】
例示的なModタイプ検出および搬送波推定機能ブロック620が、図10に図式的に示されている。機能ブロック620の例示的な例は、限定はしないが、Raise to N Power機能ブロック1005、Mix by Coarse搬送波推定機能ブロック1010、デシメート機能ブロック1015、FFTトライアル機能ブロック1020、およびピーク検出機能ブロック1025を含む複数のサブ機能ブロックを含む。
【0082】
図6のタイミング回復615の後、ブロック615から出力される信号は次にシンボル同期され、modタイプ検出はサンプル空間よりもシンボル空間においてより正確になる。サブ機能ブロック1005において、Modタイプ検出および搬送波推定機能ブロック620に入力された信号は、コンステレーションの外側リングのシンボル数(N)(BPSKの場合は2、QPSK/OQPSKの場合は4、8PSKの場合は8、16APSKの場合は12など)に基づいて適切な電力に上げられ、次いで、サブ機能ブロック1010において差分共役計算(提供される場合)によって提供される粗い搬送波周波数によって混合される。次いで、混合された信号は、サブ機能ブロック1015においてデシメートされ、次いで、サブ機能ブロック1020において、FFTが信号に対して実行され、サブ機能ブロック1025において、選択された変調タイプのピーク対平均比が決定される。次いで、このプロセスは、検出されるべき所望の変調タイプのすべてについて繰り返される。最高のピーク対平均値を有する結果は、最も可能性の高い変調タイプである。メモリ帯域幅を最小限に抑える方法として、サブ機能ブロック1005、サブ機能ブロック1010、およびサブ機能ブロック1015を結合して、1つのサブ機能ブロックを形成することができ、これにより、メモリ帯域幅を減少させることができる。データレートをさらに増加させるために、サブ機能ブロック1020において、それ自体のスレッド上で各変調タイプ試行を実行して、スループットをさらに増加させることが可能である。
【0083】
方法500における次の処理ブロックは、ドップラー補償処理ブロック520であり、その一例が図7に図式的に示されている。処理ブロック520は、限定はしないが、位相事前計算器機能ブロック705、および連続位相調整機能ブロック710など、複数の機能ブロックを含み得る。位相補正は、信号アナライザ処理ブロック510からの搬送波推定に基づいて、機能ブロック705で事前計算される。ドップラー補償器処理ブロック520は、様々な実施形態において、PLLベースの受信機が補償された信号を追跡できるように補償を平滑化する。機能ブロック705からのこの事前計算された位相情報は、次いで、測定されたドップラーの大部分を除去する連続位相調整機能ブロック710に供給される。
【0084】
再び図6を参照すると、Es/No推定器機能ブロック625は、Es/Noを測定する。変調タイプに応じて使用されるEs/Noを測定するいくつかのアプローチがある。Es/Noを測定するための1つの例示的な例は、(C/N)×(B/fs)を計算することであり、ここで、C/Nは、搬送波対雑音比または信号対雑音比のうちの1つであり、Bは、ヘルツ単位のチャネル帯域幅であり、fsは、1秒当たりのシンボルレートまたはシンボルである。しかし、Es/Noを測定するための任意のアプローチが、本明細書で開示される実施形態に等しく適用可能であることが理解されるであろう。
【0085】
図8は、ダイバーシティコンバイナ処理ブロック530の一例を図式的に示す。処理ブロック530は、複数の信号(例えば、この例では2つ)間のタイミングおよびドップラー差が小さく、変調タイプが前もって知られている場合のスタンドアロンアプリケーションとして使用することができる。様々な実施形態では、処理ブロック530は、方法300および/または400で使用することもできる。処理ブロックは、複数の機能ブロック、例えば、限定はしないが、粗タイミング推定器機能ブロック805、タイミングおよび位相誤差計算機能ブロック810、1つ以上のタイミング調整機能ブロック815a~815n(まとめてタイミング調整815と呼ぶ)、1つ以上の位相調整機能ブロック820a~820n(まとめて位相調整820と呼ぶ)、および重み付けコンバイナ機能ブロック825を含む。図示の例では、複数の信号上で機能を実行するための複数のタイミング調整機能ブロック815a~815nおよび位相調整機能ブロック820a~nが示されている。任意の数の信号が可能であるが、本明細書で説明される例は、2つの信号を参照して説明される。
【0086】
粗タイミング推定器機能ブロック805は、2つの到着信号の時間デルタが無視できないときに使用され得る。これは、アンテナハンドオーバの場合に必要とされることがある。推定器機能ブロック805は、時間差を決定するために、複数の信号(例えば、この例では2つ)の間の相関スパイクを探す。推定器機能ブロック805は、FFTおよび/またはIFFTを利用して、相関を迅速に実行することができるが、任意の相関技法を利用することができる。多くの相関が必要とされる場合、スループットを増加させるために、方法300および400を適用することができる。
【0087】
タイミングおよび位相誤差計算機能ブロック810の一例を図11に図式的に示す。タイミングおよび位相誤差計算機能ブロック810の例示的な例は、複数のサブ要素またはサブ機能ブロック、例えば、限定はしないが、相互計算器サブ機能ブロック1105、デシメートサブ機能ブロック1110、タイミング推定更新サブ機能ブロック1115、位相デルタ生成サブ機能ブロック1120、および位相アンラップサブ機能ブロック1125を含む。相互相関器サブ機能ブロック1105は、遅延ロックループ(DLL)で使用される複数の入力信号(例えば、この例では2つ)の間の早期、即時、および後期(EPL)項を計算し得る。しかし、SIMD技法を使用して、EPL項を効率的に計算することができる。EPL項が計算されると、サブ機能ブロック1110で信号がデシメートされる。早期項と後期項との間のデルタは、相互相関器サブ機能ブロック1105上のタイミング更新サブ機能ブロック1115、ならびに後のタイミング調整のためのフィードフォワード誤差項のために使用され得る。
【0088】
次いで、即時項の位相は、位相デルタ生成サブ機能ブロック1120で計算され、位相アンラップサブ機能ブロック1125に供給される。一例では、位相アンラップサブ機能ブロック1125は、様々な実施形態で位相ロックループ(PLL)を使用することができる。位相アンラップ機能ブロック1125は、位相アンラップ機能ブロック1125の前に実行されるデシメートされた信号の位相計算を含む。位相アンラップ計算は、データサンプルに関する連続位相情報を提供することができる。位相アンラップ計算は、位相がπ(円周率)から-πラジアンまたは-πからπラジアンのいずれかにラップするとき、位相を一緒にステッチする。この角度のアンラッピングは、カーブフィッティング関数が、いかなる不連続性もなく位相信号上で実行されることを可能にする。これにより、プロセッサ202は、処理された信号のタイミングおよび位相に基づいて、復調された信号を再アセンブルすることができる。位相アンラップ計算をカルマンフィルタで置き換えて、位相、周波数およびドップラーレート情報を取得するか、またはPLLを使用することが可能であり得る。
【0089】
再び図8を参照すると、機能ブロック810からのこの位相情報は、次いで、1つ以上のタイミング調整ブロック機能ブロック815および位相調整ブロック機能ブロック820に供給され、信号の位相を調整して、後で結合するために信号を適切に整列させる。タイミング調整および位相調整サブ要素の例は、米国特許第10,790,920号に記載されており、その開示は、あたかも完全に記載されているかのように、参照により本明細書に組み込まれる。例えば、各タイミング調整サブ要素機能ブロック815は、タイミングおよび位相誤差計算機能ブロック810によって計算されたタイミング位相情報を適用することができる。次いで、機能ブロック815は、例えば、限定はしないが、当技術分野で知られているように、提供された位相情報に基づいてフィルタの適切なバンクが選択される多相FIRフィルタなどのフィルタを使用し得る。次いで、タイミング調整がCPU使用量および帯域幅使用量の両方において効率的であるように、タイミングを機能ブロック815によって調整することができる。機能ブロック815で使用されるフィルタは、スループットをさらに増加させるためにSIMD技法を使用し得る。線形、立方体、放物線、または他の補間形式を使用することも可能である。各機能ブロック815は、複数の信号のうちの対応する信号(例えば、図示の例では2つ)に対して上述の調整を実行する。
【0090】
位相調整機能ブロック820の各々は、タイミングおよび位相誤差計算機能ブロック810によって計算された搬送波位相情報を適用することができる。機能ブロック820は、位相情報を適用し、SIMD技法を使用して、複数の信号が結合のために適切に整列されるように、データブロック全体の位相を調整し得る。各機能ブロック820は、複数の信号のうちの対応する信号(例えば、図示の例では2つ)に対して上述の調整を実行する。
【0091】
信号が時間および位相整列されると、重み付けコンバイナ機能ブロック825は、信号アナライザ処理ブロック510で計算されたEs/No推定値および電力推定値に基づいてスケーリングを適用し得る。例えば、別の信号と比較してより良好な信号対雑音比を有する信号は、他の信号よりも高い重みを割り当てられ、それに応じてスケーリングされ得る。同様に、より高いEs/No推定値および/または電力推定値は、より大きい重みを割り当てられ、それに応じてスケーリングされ得る。SIMD技法を使用して、複数の信号(例えば、この例では2つの信号)を効率的にスケーリングし、結合することができる。
クラウド環境において高スループット動作を達成するために複数のコア上で並列処理を使用する汎用CPU上のデジタル信号チャネライザおよびコンバイナの例示的な実施形態
【0092】
図12図16は、本明細書で開示される実施形態によるデジタル信号チャネライゼーションおよび組合せのための方法の様々な実施形態を図式的に示す。様々な実施形態では、図12図16に示されているチャネライゼーションおよび組合せは、1つ以上のダウンリンク信号のスペクトル帯域幅を管理するために実装され得る。いくつかの実装形態では、デジタル信号チャネライゼーションおよび/または組合せのための図12図14Aに示されている方法は、図3の方法300および/または図4の方法400を使用して実行されてもよい。チャネライザは、図12に示すように、スペクトル帯域幅を1つのチャネルから多数のチャネル(1-to-N)に分離することができるDSPアルゴリズムを実行するように構成され得る。別の例では、コンバイナは、図13に示されるように、スペクトル帯域幅が多くのチャネルから1つのチャネル(M-to-1)に結合されるDSPアルゴリズムを実行するように構成されてもよい。いくつかの実装形態では、処理は、アナログ信号をデジタル化するネットワーク機器(例えば、図1に関連して説明したような1つ以上のデジタイザ)で開始し、次いで、サンプルは、チャネライザ(図12に示す1-to-Nアプローチ)に搬送されるか、またはコンバイナからのサンプルは、ネットワーク機器に供給され、ネットワーク機器は、それらをアナログ信号に変換する(図13に示すM-to-1アプローチ)。
【0093】
図1に示されるような衛星の場合、本明細書の実施形態によるデジタル信号チャネライザおよびコンバイナは、帯域幅圧縮のために使用することができ、デジタイザ(例えば、図1のデジタイザ124、134、および/または144のうちの1つ)は、広い帯域幅を有するダウンリンク信号(例えば、ダウンリンク信号160および/または170のうちの1つ)をデジタル化するが、帯域幅のすべてが処理に役立つわけではない。一例では、500MHzの帯域幅を有するダウンリンク信号をデジタル化することができるが、帯域幅のスライスのサブセット(例えば、2スライス)のみが実際に有用なデータを含む。この場合、チャネライザは、512で、500MHzの帯域幅スペクトルからチャネルを作成し、次いで、コンバイナは、2つのチャネルを一緒に結合し、ここで、一方のチャネルは、例えば、50MHzであり得、他方のチャネルは、100MHzであり得る。これらの2つのより小さいチャネル(50MHzおよび100MHz)は、どんな場合でも、適切に処理されるように処理サーバ150に送信される。この例では、より小さいチャネル(150MHz)のサブセットの合計のみが、500MHz全体の代わりにデータセンターに送信される必要がある。これは、アンテナからデータセンターにデータを送信する搬送コストを節約することができる。この場合、デジタル化された帯域幅は圧縮され、LANまたはWANを介して送信されるネットワーク帯域幅も削減される。本明細書では、衛星を例として使用するが、無線アンテナ(例えば、アンテナ122)または他のタイプの送信機など、他のワイヤレス送信システムを実装することができる。したがって、衛星の使用は、本開示を限定するものではない。
【0094】
別の例では、本明細書の実施形態によるデジタル信号チャネライザおよびコンバイナは、多くのデジタル化された帯域幅全体が多くの独立した搬送波を含むチャネル分割に使用することができる。次いで、本明細書の実施形態によるコンバイナに関連するチャネライザは、特許第10.790,920号に記載されている受信機などの受信機によって処理される適切なチャネルを作成し、その開示は、あたかも完全に記載されているかのように、参照によって本明細書に組み込まれる。
【0095】
別の例では、本明細書の実施形態によるデジタル信号チャネライザおよびコンバイナを、チャネル結合に使用することができる。この場合、他のアンテナまたは変調器のいずれかである、様々なタイプのソースから受信されたいくつかのダウンリンク信号を結合して、衛星にブロードキャストするためにアンテナにデジタル送信することができる、より大きい複合帯域幅を作成することができる。
【0096】
図12は、1つのチャネルをN個のチャネルに分離するための例示的なチャネライザ処理ブロック1200を示す。図示の例示的なチャネライザ処理ブロック1200は、複数の機能ブロック、例えば、限定はしないが、Nパスフィルタ機能ブロック1210、Nポイント循環バッファ機能ブロック1220、およびNポイントIFFT機能ブロック1230を含む。チャネライザブロック処理ブロック1200は、例えば、限定はしないが、TCP/IPまたはUDPなどの所与のネットワークプロトコルを介して、ネットワーク機器(例えば、図1に関連して説明したようなデジタイザ)から第1の帯域幅を有するデジタル化されたサンプルを取り込むように構成され得る。次いで、サンプルストリームは、多相フィルタバンクを使用するNパスフィルタ機能ブロック1210、次いで、Nポイント循環バッファ機能ブロック1220、および次いで、NポイントIFFT機能ブロック1230において信号をN個のチャネルに分割するように処理され、各Nチャネルは、取り込まれたデジタル化サンプルの第1の帯域幅よりも小さい対応する帯域幅を有する。
【0097】
図12に示される入力のための例示的なソースは、限定はしないが、変調器、デジタイザ(例えば、図1のデジタイザ124、134、および/または144のうちの1つ)、ダイバーシティコンバイナの出力(例えば、図5図11に関連して上述されたものなど)、ドップラー補償器の出力(例えば、図5図11に関連して上述されたものなど)、およびデジタルサンプルファイルプレーヤを含む。
【0098】
図12図14A、および図14Bに示すように、1210への入力供給は、当技術分野で知られているように、(入力信号の2つの矢印への分割によって示されるように)2つによって補間される入力信号を表すことができる。これにより、N個の出力すべてが処理の開始から2つによって補間されるので、チャネライザ1200は、出力におけるエイリアシングを回避することができる。
【0099】
図13は、M個のチャネルを1つのチャネルに結合するための例示的なコンバイナ処理ブロック1300を示す。図示された例示的なコンバイナ処理ブロック1300は、複数の機能ブロック、例えば、限定はしないが、Mパスフィルタおよび加算器機能ブロック1310、Mポイント循環バッファ機能ブロック1320、およびMポイントIFFT機能ブロック1330を含む。M-to-1処理ブロック1300では、プロセスは、図12のチャネライザ処理ブロック1200と比較して逆になる。例えば、M個のチャネルは、MポイントIFFT機能ブロック1330、次いで、Mポイント循環バッファ機能ブロック1320、および次いで、多相フィルタバンクを使用してMポイントフィルタ機能ブロック1310に供給される。次いで、フィルタリングされたチャネルは、機能ブロック1310の加算器を使用して結合される。
【0100】
図13に示される入力のための例示的なソースは、限定はしないが、変調器、デジタイザ(例えば、図1のデジタイザ124、134、および/または144のうちの1つ)、ダイバーシティコンバイナの出力(例えば、図5図11に関連して上述されたものなど)、ドップラー補償器の出力(例えば、図5図11に関連して上述されたものなど)、チャネライザ(例えば、図12に関連して説明されたものなど)、およびデジタルサンプルファイルプレーヤを含む。図12に関連して上述したように、また図14Aおよび図14Bに図示したように、それぞれ1200a~1200nに供給する各入力は、当技術分野で知られているように、(入力信号の2つの矢印への分割によって示されるように)2つによって補間される入力信号を表すことができる。これにより、N個の出力すべてが処理の開始から2つによって補間されるので、各チャネライザ1200a~1200nは、出力におけるエイリアシングを回避することができる。
【0101】
いくつかの実施形態では、1つ以上のチャネライザおよび1つ以上のコンバイナを組み合わせて使用して、図14Aおよび図14Bに示されるような1つ以上のチャネライザから任意の所望の帯域幅を達成することが可能である。例えば、図14Aに示されるように、デジタル化されたダウンリンク信号は、1つ以上のチャネライザ、例えば、チャネライザ処理ブロック1200a~1200nを使用して、N個のチャネル(例えば、この例では512個のチャネル)に分割され得る。N個のチャネルの各々は、デジタル化されたダウンリンク信号よりも小さい帯域幅を有し得る。いくつかの実施形態では、各チャネライザ処理ブロック1200a~1200nは、各入力a~入力nが必ずしも同じダウンリンク信号の一部ではないように、離散ダウンリンク信号を受信し得る。したがって、各入力は、他の入力から独立していてもよい。
【0102】
入力信号が各々N個のチャネルに分割されると、それらのチャネルのM個(例えば、この例では20個)を再結合して、コンバイナ、例えば、コンバイナ処理ブロック1300(例えば、図14Aに示すように単一のコンバイナ1300のみ)を使用して、より大きいチャネルを形成することができる。
【0103】
いくつかの実施形態では、図14Bに示すように、複数のコンバイナ処理ブロック1300a~1300nが利用され得る。図14Bに示されるように、デジタル化されたダウンリンク信号は、チャネライザ、例えば、チャネライザ処理ブロック1200を使用して、N個のチャネル(例えば、この例では512個のチャネル)に分割され得る。入力信号がそれぞれのN個のチャネルに分割されると、それらのチャネルのM個(例えば、この例では20個)を再結合して、コンバイナ、例えば、複数のコンバイナ処理ブロック1300a~1300nを使用して、より大きいチャネルを形成することができる。各コンバイナ処理ブロック1300a~nは、N個のチャネルを取り込み、M個のチャネルを結合して、出力a~出力nとして各処理ブロック1300から出力されるより大きい結合チャネルを形成することができる。
【0104】
再結合のために選択されたチャネルは、有用なデータが送信されるチャネルを含み得る。どのデータが有用であるかは、ダウンリンクを処理するシステムに依存し得る。この方法は、デジタル化された信号を、より小さい帯域幅のN個のチャネルに分割し、次いで、N個のチャネルのいずれかを、任意のサイズMのより広いチャネルに集めるために使用することができる。それによって、帯域幅を圧縮し、ダウンリンク信号を処理し、送信するために必要なネットワークリソースを低減する。したがって、例示的な例は、512個の要素が上記の例において所与のチャネライザ1200によってチャネライズされ得、20個の要素が所与のコンバイナ1300によって結合されることを説明するが、必要に応じて、任意の数の要素が1つ以上のチャネライザによってチャネライズされ得、必要に応じて、任意の数の要素がコンバイナを使用して結合され得ることが理解されよう。これは、チャネライザチャネル帯域幅が完全にプログラム可能であり、任意の数のチャネルを有することを可能にする。
【0105】
図14Aでは、2つの入力チャネルが示されているが、必要に応じて、任意の数の入力チャネル、例えば、1つ、2つ、またはそれ以上の入力チャネル、50以上の入力チャネル、100以上の入力チャネルを実行することが可能である。1つの入力チャネルが使用される場合、図14は、単一のチャネライザ処理ブロックを利用し得る。同様に、図14Bは、2つの出力チャネルを示すが、必要に応じて、任意の数のコンバイナ処理ブロック、例えば、1つ、2つ、またはそれ以上の出力チャネルを実行することが可能である。1つの出力チャネルが使用される場合、図14Aは、単一のコンバイナ処理ブロックを利用し得る。したがって、いくつかの実施形態では、複数のコンバイナ(例えば、コンバイナ処理ブロック1300a~n)は、M/Nのスケーリングされた帯域幅の多くのチャネルを出力するために、1つ以上のチャネライザ処理ブロックの後に配置され得る。加えて、各チャネルの手動利得制御または自動利得制御のいずれかを達成するために、チャネライザおよびコンバイナの後に利得段(図示せず)を追加することができる。
【0106】
図14Aおよび図14Bに示される各入力のための例示的なソースは、限定はしないが、変調器、デジタイザ(例えば、図1のデジタイザ124、134、および/または144のうちの1つ)、ダイバーシティコンバイナの出力(例えば、図5図11に関連して上述されたものなど)、ドップラー補償器の出力(例えば、図5図11に関連して上述されたものなど)、およびデジタルサンプルファイルプレーヤを含む。いくつかの例では、チャネライザおよびコンバイナは、一緒にカスケード接続され得る。例えば、第1のチャネライザ/コンバイナは、別のチャネライザ/コンバイナに供給することができる。この場合、第1のチャネライザ/コンバイナは、任意の数の入力を低サンプルレートで処理し、結合された信号を、より高いレートで出力し得る別のチャネライザ/コンバイナに出力するように構成されてもよい。例えば、各々10kSPSで動作する100個の変調器を、1MSPSで動作する1つのチャネルに結合することができる。次いで、この1MSPSチャネルは、最終出力サンプルレートが512MSPSである別のチャネライザ/コンバイナに供給されてもよい。いくつかの実施形態では、各チャネライザ/コンバイナは、図4のブロック315a、315b、...315nのうちの1つ以上、および/または図3のブロック306a、306b、...306nのうちの1つ以上など、別個の処理ブロックによって実行され得る。すなわち、例えば、第1のチャネライザ/コンバイナは、第1の1つ以上の処理ブロックで実行され、第2のチャネライザ/コンバイナは、第2の1つ以上の処理ブロックで実行され得る。
【0107】
いくつかの実施形態では、方法1400aおよび1400bは、1つ以上のチャネライザ処理ブロック1200から受信された入力を時間整列するように構成された(図14Aに示されているが、図14Bには示されていない)オプションのコンバイナ入力制御1410を含み得る。例えば、図14に示されるチャネライザ/コンバイナの1つの可能な例示的な実装形態は、既存のアナログ無線周波数(RF)スイッチマトリクスを置き換えることであるので、RFスイッチマトリクスの現在の能力を維持し、整合させることが望ましい場合がある。そのような能力の1つは、時間整列である。RFスイッチ行列は、信号のほぼゼロの遅延の組合せまたは分割であるので、時間整列は、アナログ領域では些細なことである。しかし、いったん信号がデジタル化され、LANまたはWANを介して搬送されるクラウド環境などのネットワークに送信されると、時間整列はもはや些細ではない可能性がある。タイムスタンプは、各入力チャネルに適用され、1つ以上のチャネライザ処理ブロック1200内のすべての処理を通して維持され得る。次いで、コンバイナ入力制御1410で、入力が持続時間内に到着することを可能にするために、データは、短いプログラム可能な(例えば、プリセットされた)持続時間の間、収集され、バッファリングされ得る。すべての入力が時間内に到着する場合、それらは、コンバイナ入力制御1410によって、各チャネルの対応する入力レートおよびタイムスタンプに基づいて、注意深く時間整列され得る。しかし、チャネルが時間通りに到着しない場合、コンバイナ入力制御1410は、そのチャネルをすべてゼロのデータソースと置き換えることができ、したがって、タイムリーなチャネルは、さらにブロックされず、または遅延されない。このようにして、図14Aのチャネライザ/コンバイナは、RFスイッチ行列に存在するほぼゼロの遅延の組合せを複製することができる。同様に、コンバイナ入力制御1410は、チャネライザ1200と複数のコンバイナ1300a~1300nとの間の方法1400bに含まれてもよく、本明細書で説明されるものと同様に構成されてもよい。
【0108】
いくつかの実施形態では、方法1400aおよび1400bはまた、データスプリッタによって、所与のダウンリンク信号のデータを並列データストリームに分割するデータ分割機能を含み得る。図12のチャネライザ、図13のコンバイナ、および/または図14Aおよび図14Bの結合チャネライザ/コンバイナの各々は、図4のブロック310のようなデータ分割機能が先行してもよい。例えば、図14Aおよび図14Bに示される各チャネライザ1200および/または各コンバイナ1300は、図4の1つ以上の処理ブロック315の一例とすることができ、ブロック310は、図4に関連して説明したように、データを並列データストリームに分割することができる。ブロック310は、いくつかの実施形態では、マネージャ(またはディーラ)処理ブロックと呼ばれることがある。データを複数の並列ストリームに分割することにより、複数のチャネライザ部分1200a~nが、ダウンリンク信号をチャネライズするために並列スレッドで機能すること、複数のコンバイナ部分1300a~nが、ダウンリンク信号を結合するために並列スレッドで機能すること、および/または1つ以上のチャネライザ1200の両方が、1つ以上のコンバイナ1300と並列に機能することを可能にすることができる。例えば、図14Aのチャネライザ処理ブロック1200の場合、各チャネライザ処理ブロック1200は、図4の1つ以上のブロック315a~nとして実施され得る。図14Bのコンバイナ処理ブロック1300の場合、各コンバイナ1300は、図4のブロック315a~nのうちの1つ以上として実装され得る。両方の場合において、ブロック310は、(例えば、図4に関連して上述したように)ダウンリンク信号からのデータを、各々が隣接するデータストリームと重複する並列データストリームに分割することができる。次いで、各並列データストリームは、処理のために処理ブロック315a~nのうちの1つに送信することができる。各処理ブロック315a~nがデータのその部分の処理を完了すると、データの処理された部分は、例えば、処理されたデータを出力する図4のブロック320に送信される。次いで、ブロック320は、次の処理ブロック(例えば、第2のブロック315b)がその処理などを完了するのを待ち、処理されたデータの各部分を出力する。このプロセスは、ラウンドロビン処理スキームと呼ばれることがある。
【0109】
所与のアプリケーションに望まれるスループットが高いほど、より多くの処理ブロック315が必要とされる。例えば、図14Bを参照すると、512のMSPSが所与のコンバイナ処理ブロック1300の出力として必要とされる場合、出力a~nを送信するために、コンバイナ処理ブロック1300(例えば、コンバイナ処理ブロック1300a~nのうちの1つ)として各々実装される「n」個までの処理ブロック315を作成することが可能であり得る。この場合、入力データの第1の部分は、処理される第1の処理ブロック315a(例えば、実装された第1のコンバイナ処理ブロック1300a)に、ブロック310から送信されるか、またはブロック310によって処理される。ブロック315aからの処理されたデータのデータの小さい部分は、データストリームの次の部分上の重複データとして、ブロック310によって保存され、プリペンドされ得る。次いで、重複データを含むデータストリームのこの次の部分は、第2の処理ブロック315b(例えば、第2のコンバイナ処理ブロック1300aとして実装される)に送信される。このパターンは、必要とされる高スループットを達成するために必要とされる数の処理ブロックで繰り返される。各処理ブロック(例えば、ブロック315a~n)がデータのその部分の処理を終えると、データの処理された部分は、例えば、ブロック320に送信され、結合された処理されたデータとして出力される。次いで、ブロック320は、次の処理ブロック(例えば、第2のブロック315b)がその処理などを完了するのを待ち、データのブロックを出力する。いくつかの実施形態では、ブロック310は、チャネライザ1200から出力を受信し、複数のコンバイナ1300a~1300nに供給するために、上述のように出力を分割することができる。別の実施形態では、ブロック310は、ダウンリンク信号を分割するためにチャネライザ1200に先行してもよい。315a~315nの処理ブロックは、マネージャまたはディーラとしてのブロック310がすべての処理ブロックを循環するこのラウンドロビン処理スキームで使用される。
【0110】
上記の例は、1つ以上のコンバイナ1300に関連して説明されているが、データの部分を各処理ブロックに分割し、処理するための上記のラウンドロビン処理方式は、本明細書で説明される実施形態のいずれでも利用され得ることが理解されよう。例えば、ラウンドロビンディーラ方式は、図14aのチャネライザ処理ブロック1200a~nにも使用されて、高スループットを達成することができる。すなわち、各チャネライザ処理ブロック1200は、処理ブロック315a~nとして実装することができ、データスプリッタブロック310は、データを並列ストリームに分割し、各並列部分をチャネライザとして所与の処理ブロック315a~nに処理することができる。各チャネライザ1200a~nは、その部分を処理し、完了時に各チャネライザ1200a~nからブロック320に各複数のN個のチャネルを出力することができる。ブロック320は、上述のようにデータの処理された部分を出力し、次の処理ブロック315がその処理を完了するのを待つ。同様に、このラウンドロビン処理方式は、図5図11のブラインド検出およびドップラー補償方法を伴うダイバーシティコンバイナに関連して利用されてもよい。すなわち、処理ブロック510~530のうちの任意の1つは、1つ以上の処理ブロック315a~nとして実装されてもよく、ブロック310におけるデータスプリッタ機能は、入力ダウンリンク信号を並列データストリームに分割して、上述の方法で各処理ブロック315a~nに供給してもよい。次いで、各処理ブロック315について、結果として得られる処理済みデータを、上述のように出力するためにブロック320に送信することができる。
【0111】
いくつかの実装形態では、(例えば、汎用CPUを使用し、例えば、限定はしないが、SSE、SSE2、SSE3、SSE4.1、SSE4.2、AVX、AVX2、およびAVX512命令セットを含む、SIMD技法を使用して)SPS150によって可能にされるデジタルチャネライザおよび/またはコンバイナ処理ブロック(例えば、上述の1200、1300、および/または1400など)は、スループットを向上させるために、CPUのいくつかのコアにわたって分散されたデータを処理することができる。データ処理は、FPGAなどの専用信号処理ハードウェア、またはグラフィックス処理ユニット(GPU)などの高性能計算(HPC)ハードウェアを使用することなく、必要なスループットを達成するために、プロセッサの複数のコア(例えば、ブロック315)を介して管理することができる。チャネライザとして実施される代表的なブロック315の一例を図15に示す。汎用サーバCPUでこの処理を実行する能力は、限定はしないが、x86アーキテクチャ、Cortex-A76、NEONおよびAWS Graviton、Graviton2などの専用ハードウェアを必要とせずに、仮想化された処理アーキテクチャを使用して、汎用クラウド処理環境内で機能を展開することを可能にする。
【0112】
図15および図16は、それぞれ、チャネライザ処理ブロック1500またはコンバイナ処理ブロック1600として実装される例示的な処理ブロックを図式的に示す。チャネライザ処理ブロック1500は、図12に関連して説明したチャネライザ処理ブロック1200と実質的に同様とされ得る。例えば、チャネライザ処理ブロック1500は、例えば、Nパスフィルタ機能ブロック1510、Nポイント循環バッファ機能ブロック1520、およびNポイントIFFT機能ブロック1530を使用して、1つのチャネルをN個のチャネルに分離することができる。チャネライザ処理ブロック1500は、処理ブロック315a~315n(例えば、図4)のうちの1つおよび/または機能306a~306n(例えば、図3)のうちの1つとして実装されるチャネライザの例示的な例である。複数のチャネライザ処理ブロック1500は、処理ブロック315a~315n(例えば、図4)のうちの1つおよび/または機能306a~306n(例えば、図3)のうちの1つとして各々提供され得る。別の実施形態では、単一のチャネライザ処理ブロック1500を実行するための機能は、複数の処理ブロック315a~315n(例えば、図4)および/または機能306a~306n(例えば、図3)のうちの1つの間で分散され得る。いくつかの実施形態では、図12図14Bに関連して上述した、ラウンドロビン処理方式は、複数の処理ブロック1500を使用して実施され得る。例えば、複数の処理ブロック1500は、処理ブロック315a~nとして実装されてもよい。したがって、複数の処理ブロック1500は、上述したようなラウンドロビン処理方式を使用して並列に動作可能であってもよい。
【0113】
同様に、コンバイナ処理ブロック1600は、図13に関連して説明したコンバイナ処理ブロック1300と実質的に同様とされ得る。例えば、コンバイナ処理ブロック1600は、例えば、Mパスフィルタおよび加算器機能ブロック1610、Mポイント循環バッファ機能ブロック1620、およびMポイントIFFT機能ブロック1630を使用して、M個のチャネルを1つのチャネルに結合することができる。コンバイナ処理ブロック1600は、処理ブロック315a~315n(例えば、図4)のうちの1つおよび/または機能306a~306n(例えば、図3)のうちの1つとして実装されるコンバイナの例示的な例である。複数のコンバイナ処理ブロック1600は、処理ブロック315a~315n(例えば、図4)のうちの1つおよび/または機能306a~306n(例えば、図3)のうちの1つとして各々提供され得る。別の実施形態では、単一のコンバイナ処理ブロック1600を実行するための機能は、複数の処理ブロック315a~315n(例えば、図4)および/または機能306a~306n(例えば、図3)のうちの1つの間で分散され得る。いくつかの実施形態では、図12図14Bに関連して上述した、ラウンドロビン処理方式は、複数の処理ブロック1600を使用して実施され得る。例えば、複数の処理ブロック1600は、処理ブロック315a~nとして実装されてもよい。したがって、複数の処理ブロック1600は、上述したようなラウンドロビン処理方式を使用して並列に動作可能であってもよい。
【0114】
本明細書で説明されるチャネライザおよび/またはコンバイナは、上述のメモリ帯域幅最適化の例である。チャネライザの機能は、図15および図16に示すように、別々のブロックに分離することができ、またはデータの小さい部分が処理される1つの機能サブ要素またはブロックに結合される。この例示的な例では、小さい部分が1つのIFFTに相当するデータを指すことがある。機能がチャネライザのために分離される場合、多くのフィルタ計算が実行され、次いで、多くの循環バッファ、および次いで、多くのIFFTが実行され得る。同様に、機能がコンバイナのために分離される場合、多くのIFFTが実行され、次いで、多くの循環バッファ、および次いで、多くのフィルタ計算が実行され得る。
【0115】
汎用CPUを使用することの例示的な非限定的な利点は、リソース割り当ての動的な性質である。例えば、図14Aおよび図14Bに関連して説明したようなチャネライザ/コンバイナの場合、入力チャネルがいつでも出入りできるリアルタイムでシステムを再構成することが望ましい場合がある。図14Aに示すように、チャネライザ1200a~nの処理ブロックによって、これらのチャネライザ1200a~nを各々作成し、破壊して、この目標を達成することができる。入力帯域幅に対応するために、任意の値のNを使用し、ならびに、適切な量の入力チャネルを処理するために、任意の数のチャネライザ1200nをインスタンス化することが可能である。このようにして、例示的な例として、ある瞬間に、各々15MHzの10個のチャネルを結合することができ、次いで、1秒後に、45MHzの5つのチャネルを結合することができる。マルチコア、SIMD技法、およびメモリ帯域幅最適化アプローチなど、本開示で説明するすべての技法のために、高スループットでのデータの処理の分散が可能である。本明細書で提供される例は、図14Aに示されるようなチャネライザ/コンバイナに関連して説明されるが、この有益な結果は、例えば、図5図11および図14Bに関連して説明されるように、ダイバーシティコンバイナおよびドップラー補償に関して本明細書で説明される技法を使用することによって等しく達成可能である。例えば、図5の処理ブロック510、処理ブロック520、および/または処理ブロック530の任意の数の値を使用して、所望のスループットを達成することができる。図5の各処理ブロック510~530の数は、所望のスループットを達成するために、上述したのと同様の方法で達成するために、動的に作成され、破棄されてもよい。
他の態様
【0116】
添付の特許請求の範囲およびそれらの均等物は、本開示の範囲内になるような形または変更をカバーするためのものである。図に示される様々な構成要素は、これらに限定されないが、例えば、プロセッサ上のソフトウェアおよび/またはファームウェア、または専用ハードウェアとして実装されてもよい。また、上記で開示された特定の例示的な実施形態の特徴および属性は、追加の実施形態を形成するために異なる方法で組み合わせることができ、そのすべてが本開示の範囲内に入る。
【0117】
前述の方法の説明およびプロセスフロー図は、単に例示的な例として提供されており、様々な実施形態の動作が提示された順序で実行されなければならないことを要求または暗示することを意図していない。当業者には理解されるように、上記の実施形態における動作の順序は、任意の順序で実行することができる。「その後」、「次いで」、「次に」などの単語は、動作の順序を限定することを意図するものではなく、これらの単語は、単に、方法の説明を通して読者を導くために使用される。さらに、例えば、冠詞「a」、「an」、または「the」を使用する、単数形での請求項要素へのいかなる言及も、要素を単数形に限定するものとして解釈されないものとする。
【0118】
本明細書で開示される実施形態に関連して説明される様々な例示的な論理ブロック、モジュール、およびアルゴリズム動作は、電子ハードウェア、コンピュータソフトウェア、または両方の組合せとして実装され得る。ハードウェアとソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、および動作を、上記では概してそれらの機能に関して説明した。そのような機能がハードウェアとして実装されるか、ソフトウェアとして実装されるかは、特定のアプリケーションおよびシステム全体に課される設計制約に依存する。当業者は、説明された機能を、特定のアプリケーションごとに様々な方法で実装することができるが、そのような実装決定は、本発明の概念の範囲からの逸脱を引き起こすものと解釈されないものとする。
【0119】
本明細書で開示される様々な実施形態に関連して説明される様々な例示的な論理、論理ブロック、およびモジュールを実装するために使用されるハードウェアは、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)または他のプログラマブル論理デバイス、ディスクリートゲートまたはトランジスタ論理、ディスクリートハードウェアコンポーネント、または本明細書で説明された機能を実行するように設計されたそれらの任意の組合せを用いて実装または実行され得る。汎用プロセッサは、マイクロプロセッサであってもよいが、代替として、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、またはステートマシンであってもよい。プロセッサはまた、受信機デバイスの組合せ、例えば、DSPとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、DSPコアと連携する1つ以上のマイクロプロセッサ、または任意の他のそのような構成として実装されてもよい。あるいは、いくつかの動作または方法は、所与の機能に特有の回路によって実行されてもよい。
【0120】
1つ以上の例示的な実施形態では、説明された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、1つ以上の命令またはコードとして、非一時的コンピュータ可読記憶媒体または非一時的プロセッサ可読記憶媒体上に記憶され得る。本明細書で開示される方法またはアルゴリズムの動作は、非一時的コンピュータ可読またはプロセッサ可読記憶媒体上に常駐し得るプロセッサ実行可能命令で実施することができる。非一時的コンピュータ可読またはプロセッサ可読記憶媒体は、コンピュータまたはプロセッサによってアクセスされ得る任意の記憶媒体であり得る。限定ではなく例として、そのような非一時的コンピュータ可読またはプロセッサ可読記憶媒体は、ランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、電気的消去可能プログラマブル読取り専用メモリ(EEPROM)、フラッシュメモリ、CD-ROMまたは他の光ディスクストレージ、磁気ディスクストレージまたは他の磁気ストレージデバイス、あるいは命令またはデータ構造の形態で所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る任意の他の媒体を含み得る。本明細書で使用されるディスク(disks)およびディスク(discs)は、コンパクトディスク(CD)、レーザーディスク、光ディスク、デジタル多用途ディスク(DVD)、フロッピーディスク、およびブルーレイディスクを含み、通常、ディスク(disks)は、磁気的にデータを再生し、ディスク(discs)はレーザで光学的にデータを再生する。上記の組合せも、非一時的コンピュータ可読媒体およびプロセッサ可読媒体の範囲内に含まれる。さらに、方法またはアルゴリズムの動作は、コンピュータプログラム製品に組み込むことができる非一時的プロセッサ可読記憶媒体および/またはコンピュータ可読記憶媒体上のコードおよび/または命令の1つまたは任意の組合せまたはセットとして常駐し得る。
【0121】
開示されたプロセス/フローチャートにおけるブロックの特定の順序または階層は、例示的なアプローチの例示であることが理解される。設計選好に基づいて、プロセス/フローチャート内のブロックの特定の順序または階層を再構成できることを理解されたい。また、一部のブロックを組み合わせてもよいし、省略してもよい。添付の方法クレームは、様々なブロックの要素をサンプル順序で提示し、提示された特定の順序または階層に限定されることを意味しない。
【0122】
前述の説明は、当業者が本明細書で説明された様々な態様を実施することを可能にするために提供される。これらの態様に対する様々な修正は、当業者には容易に明らかであり、本明細書で定義される一般的な原理は、他の態様に適用され得る。
【0123】
したがって、特許請求の範囲は、本明細書に示される態様に限定されることを意図するものではなく、言語の特許請求の範囲と一致する完全な範囲を与えられるものとし、単数形の要素への言及は、そのように明記されていない限り「唯一」を意味するものではなく、むしろ「1つ以上」を意味するものとする。
【0124】
「例示的」という用語は、本明細書では「例、事例、または例示としての役割を果たす」ことを意味するために使用される。本明細書で「例示的」として説明される任意の態様は、必ずしも、他の態様よりも好ましい、または有利であると解釈されないものとする。特に明記しない限り、「いくつか」という用語は、1つ以上を指す。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14A
図14B
図15
図16