トピックハブ

無線とSDR

RFSoCの直接RFサンプリングとデジタルフロントエンドから、OFDM、LDPCおよびポーラー復号器、5G NRブロック、FPGAオフロードを伴うGNU RadioとUSRPまで、FPGAが無線信号チェーンをどう担うかを解説します。

更新 2026年11月13日 · RFSoC、ソフトウェア無線、OFDM、LDPC、ポーラー符号、5G NR、GNU Radio、USRP

概要

ソフトウェア無線(SDR)は、信号チェーンのできるだけ多くをアナログハードウェアからデジタル処理へ移します。アンテナとソフトウェアの間には、どんなプロセッサも追いつけない数百メガサンプル毎秒の信号区間が依然として存在し、その区間こそFPGAの居場所です。このハブは、無線機、測定器、レーダー、スペクトラムセンシングを構築するエンジニアと、信号が搬送波になると何が変わるのかを理解したいDSPエンジニアのためのものです。

この分野には2つの極があります。一方の端は研究・趣味のSDRで、USRPなどのフロントエンドがGNU Radioを動かすホストにサンプルをストリームし、FPGAは間引きとフレーミングだけを行います。もう一方の端は5Gの無線ユニットで、RFSoCが帯域を直接デジタル化し、FPGAが物理層全体を実行します。商用の仕事の大半はその中間にあり、どのブロックがハードウェアに置く価値があるかを決めるのがスキルです。

重要な考え方

直接RFサンプリングとデジタルフロントエンド

AMDのZynq UltraScale+ RFSoCは、数ギガサンプル毎秒でサンプリングするADCとDACを、MPSoCおよびファブリックと同じダイに集積しています。それほど速いコンバータがあれば、2 GHzや4 GHzの信号をアナログミキサーなしで直接サンプリングでき、ベースバンドへのダウンコンバージョンはNCOで駆動されるデジタルミキサーで行われます。RFデータコンバータブロックにはそのミキサーと間引きフィルタのチェーンが含まれており、ファブリックは扱いやすいレートの複素ベースバンドストリームを受け取ります。第3世代とZynq RFSoC DFE製品は、ハード化されたデジタルフロントエンドブロック(デジタルアップ・ダウンコンバージョン、クレストファクタ低減、デジタルプリディストーション)を追加しています。これらは標準的な無線ユニット機能で、さもなければファブリックの大半を食い尽くすものです。Alteraなどは、ダイ上のコンバータではなく外部コンバータへのJESD204リンクを通して同様の統合を提供しており、AMD以外の設計の大半はその経路で動作しています。

アンテナLNA+ フィルタRFSoCADC4 GS/s、14ビットDDCNCOミックス、間引きI/Q出力ファブリック: PHY同期、CP除去FFT、チャネル推定等化、デマップLDPCまたはポーラー復号デスクランブル、CRCPS: MAC、スケジューラ、制御、ネットワークCortex-A53でLinux、Cortex-R5でリアルタイムAXI, DMA設定送信経路はこの鏡像: 符号化、IFFT、DUC、DAC
直接RFサンプリングの受信チェーン。コンバータとデジタルダウンコンバージョンはハードブロック、物理層はファブリック、プロセッサは上位層を扱います。

OFDMパイプライン

Wi-Fi、LTE、5G NRで使われるOFDMは、広いチャネルを多数の狭いサブキャリアに分割し、逆FFTでそれらをまとめて変調します。受信パイプラインは固定機能ブロックの連なりです。タイミング・周波数同期、サイクリックプレフィックス除去、FFT、既知のパイロットシンボルからのチャネル推定、等化、各サブキャリアの軟判定ビットへのデマッピング、そして復号です。各ブロックはよく理解されたDSP構造なので、OFDM受信機は/topics/dsp/で説明する部品から組み立てるストリーミングFPGA設計によく合います。可変部分(帯域幅、サブキャリア間隔、5G用語でいうニューメロロジー)があるため、パラメータ化が主要な設計課題になります。

チャネル符号化: LDPCとポーラー

5G NRはデータにLDPC符号を、制御チャネルにポーラー符号を使います。LDPC復号器はチェックノードと変数ノードの間で一定の反復回数だけメッセージを受け渡し、5G符号の準巡回構造は、並列処理ユニットの行とバレルシフト式メモリとしてFPGAにマッピングされます。スループットは並列度に比例し、ギガビット毎秒の復号器は数十万LUTかハードブロックになります。AMDがまさにこの理由で一部のRFSoC製品に軟判定FECハードブロックを提供しています。ポーラー復号器は逐次除去リスト復号を使い、より逐次的でハードウェアには扱いにくいものです。どちらの復号器もゼロから書くのは本格的なプロジェクトです。ベンダーIP、商用IP、いくつかのオープンソース実装が存在します。

SDRフレームワークとFPGAオフロード

GNU Radioは、ブロックからソフトウェアで信号チェーンを構築するための標準的なオープンソースフレームワークです。Ettus Research(NIの一部)のUSRPファミリが一般的なフロントエンドで、そのFPGAが間引き、補間、フレーミングを実行し、RFNoCがUSRPのFPGAに自作ブロックを載せてGNU Radioのフローグラフに接続するためのフレームワークを提供します。その他のハードウェアは、FPGAをまったく持たない安価な受信機から、小さなFPGAを持つADALM-PlutoやLimeSDR、本格的なRFSoCボードまでさまざまです。判断は常に同じです。高速・固定・高レートの処理はFPGAに残し、低速・柔軟・低レートの処理はホストに移します。マイクロ秒で応答しなければならないMACのような、レイテンシに敏感なループもハードウェアに置くべきです。

どこから始めるか

NCOとデジタルミキサー、OFDMシンボル同期器、最初のRFSoCループバックに関する中級レッスンは準備中です。

ツールとベンダー

プラットフォーム FPGA コンバータ ソフトウェア ハブ
Zynq UltraScale+ RFSoC、RFSoC DFE AMD MPSoCファブリック ダイ上、数GS/sで最大14ビット Vivado、Vitis、PYNQ /vendors/amd/
外部コンバータ付きAgilexおよびStratix 10 Altera 外部ADC・DACへのJESD204B/C Quartus Prime、DSP Builder /vendors/altera/
USRP X410、N3xx、B2xx AMD(各種) ボード上 UHD、RFNoC、GNU Radio /vendors/amd/
ADALM-Pluto AMD Zynq 7000 AD9363 libiio、GNU Radio /vendors/amd/
LimeSDR Altera Cyclone、Lattice(Mini 2.0) LMS7002M LimeSuite、SoapySDR、GNU Radio /vendors/altera/、/vendors/lattice/

コンバータの分解能とサンプルレートは製品によって異なります。該当するRFSoC世代のデータシートを確認してください。

よくある間違い

  • どのナイキストゾーンに入るか、アンチエイリアスフィルタが合っているかを確認せずに信号を直接サンプリングする。
  • できるだけ早く間引くのではなく、チェーン全体をコンバータレートで動かす。
  • コンバータのクロックジッタを無視する。高い入力周波数では、ADCの分解能よりもジッタの方がノイズフロアを決めます。
  • チャネル復号器を過小評価する。LDPC復号器はブロックではなくプロジェクトです。
  • 運びきれないインターフェースで生サンプルをホストにストリームし、ソフトウェアのせいにする。
  • 無線機の送信は合法でなければならないことを忘れる。ダミーロードかシールドボックスに向けてテストしてください。

さらに深く