メインコンテンツ

ソフトウェア無線を使用した信号受信

R2025a 以降

この例では、SDR Receiver アプリを使用し、ソフトウェア無線 (SDR) を調整して信号を受信する方法を示します。この例では、次のことを行います。

  1. 継続的な信号受信用に SDR を構成します。

  2. IQ サンプル、パワー スペクトル、およびコンスタレーションを可視化します。

  3. RF 劣化要因を補正します。

  4. アプリ構成を MATLAB™ スクリプトにエクスポートします。

必要なハードウェアとソフトウェア

この例を実行するには、次に示す無線機のいずれか、およびそれらに対応するソフトウェア サポート パッケージが必要です。

  • USRP™ N2xx シリーズまたは B2xx シリーズの無線機と Communications Toolbox Support Package for USRP Radio。詳細については、USRP 無線機およびサポートされているハードウェアと必要なソフトウェアを参照してください。

  • USRP™ N3xx シリーズ、X シリーズ、または E320 無線機と Wireless Testbench Support Package for NI USRP Radios。詳細については、Supported Radio Devices (Wireless Testbench) (Wireless Testbench) を参照してください。

  • ADALM-PLUTO 無線機と Communications Toolbox Support Package for Analog Devices® ADALM-PLUTO Radio。詳細については、ADALM-Pluto 無線機を参照してください。

  • RTL-SDR 無線機と Communications Toolbox™ Support Package for RTL-SDR Radio。詳細については、RTL-SDR 無線機を参照してください。

はじめに

SDR は、デジタル関数を実行するための FPGA またはプログラム可能なチップ上のシステム (SoC) を備えた構成可能な RF フロント エンドで構成されるワイヤレス デバイスです。市販の SDR は、FM、LTE、WLAN、および 5G などの無線規格を実装するため、さまざまな周波数で信号を送受信します。

An SDR block which consists of an antenna, RF processing block, and digital processing block. The SDR block is connected to the host computer with MATLAB using an Ethernet cable or USB.

SDR を使用する際、次の問題が生じます。

  • 正しいゲイン値を取得する。

  • 正しい位相および周波数オフセットの値を識別する。

SDR Receiver アプリを使用すると、選択した SDR のゲインを対話的に調整し、位相とともに、coarse 周波数オフセットと fine 周波数オフセットの両方を取得できます。次のイメージは、SDR Receiver アプリで使用されるワークフローの概略を示しています。

SDR Receiver アプリを開く

このコマンドを実行して、SDR Receiver アプリを開きます。

app = SDRReceiver();

Screenshot of the SDR Receiver app window.

SDR の構成

SDR の選択

SDR Type: SDR のタイプを選択します。USRP、RTL-SDR、または PLUTO を選択できます。[SDR Type] を変更するたびに、利用可能な SDR のリストが更新されます。

SDR Name: SDR プラットフォームをドロップダウン リストから選択します。

SDR Address: 必要な無線機の SDR アドレスをドロップダウン リストから選択します。

Refresh SDR List: リストに無線機が表示されない場合は、[Refresh SDR List] をクリックします。

信号パラメーターの設定

Center Frequency (Hz):[Center Frequency] を非負のスカラーとして指定します。[Center Frequency] の値の有効な範囲は SDR ごとに異なります。次の点を考慮します。

  • USRP 無線機の場合、[Center Frequency] の有効範囲は RF ドーター カードによって異なります。

  • PLUTO 無線機の場合、[Center Frequency] の有効な調整範囲は 325 MHz ~ 3.8 GHz になります。Communications Toolbox Support Package for Analog Devices ADALM-Pluto Radio では、AD9364 ファームウェアを使用して動作するように無線を構成することで、適格な調整範囲を超えて PLUTO 無線機を使用できます。[Center Frequency] の範囲を拡張するには、MATLAB コマンド プロンプトで configurePlutoRadio('AD9364') と入力します。

  • RTL-SDR の場合、チューナー チップのリストとその [Center Frequency] の範囲については、[1] を参照してください。

Rx Gain (dB): SDR Receiver のゲインを dB 単位で指定します。[Rx Gain] の値の有効な範囲は、SDR ごとに異なります。次の点を考慮します。

  • USRP 無線機の場合、[Rx Gain] の有効範囲は RF ドーター カードによって異なります。有効なゲイン値を取得するには comm.SDRuReceiverinfo() メソッドを使用します。

  • PLUTO 無線機の場合、[Rx Gain] の範囲は -4 ~ 71 dB です。

  • RTL-SDR の場合、[Rx Gain] の値の有効範囲はチューナー チップによって異なります。有効なゲイン値を取得するには comm.SDRRTLReceiverinfo() メソッドを使用します。

Sample Rate (Hz): 無線機フロントエンドのベースバンド サンプル レートを正の数値スカラーとして Hz 単位で指定します。次の点を考慮します。

  • USRP 無線機の場合、[Sample Rate] はマスター クロック レート (MCR) と間引き係数によって異なります。詳細については、comm.SDRuReceiver を参照してください。

  • PLUTO 無線機の場合、[Sample Rate]comm.SDRRxPlutoBasebandSampleRate プロパティと同じ値になります。範囲は 1 秒あたり 65105 ~ 61.44e6 サンプルです。

  • RTL-SDR の場合、[Sample Rate] の有効範囲は [225, 300] kHz および [900, 3200] kHz です。[Sample Rate] を 2560 kHz より大きく設定すると、サンプルが破棄される可能性があります。信頼性が最大となるサンプル レートの詳細については [1] を参照してください。

Frame Size: 出力信号のフレームあたりのサンプル数を正の整数として指定します。次の点を考慮します。

  • USRP 無線機の場合、[Frame Size]comm.SDRuReceiverSamplesPerFrame プロパティと同じ値になります。詳細については、comm.SDRuReceiver を参照してください。

  • PLUTO 無線機の場合、[Frame Size]comm.SDRRxPlutoSamplesPerFrame プロパティと同じ値になります。[Frame Size] を 2 ~ 16,777,216 の偶数の正の整数で指定します。

  • RTL-SDR の場合、[Frame Size]comm.SDRRTLReceiverSamplesPerFrame プロパティと同じ値になります。詳細については、comm.SDRRTLReceiver を参照してください。

パラメーターの範囲の詳細については、それぞれの受信機 System object の info() メソッドを使用してください。

信号の受信

Start/Pause: 信号を受信するには、[START] をクリックします。信号受信を一時停止するには、[PAUSE] をクリックします。受信開始後は、次のようになります。

  • アプリによって [Select SDR] が無効化される。

  • アプリには、受信ステータスが Receiving [Total Overruns = <オーバーランのカウント>] として表示される。オーバーラン カウントは受信開始前に 0 にリセットされる。

RF 補正の適用

無線周波数 (RF) 通信システムでは、正確な信号送受信を確保するために、位相オフセットや周波数オフセットなどの RF 補正が不可欠です。位相オフセットは、受信信号と基準信号間の位相の不一致を指し、送信データの整合性に影響を与える可能性があります。周波数オフセットは、予想される搬送波周波数と実際の受信周波数の差を示し、不整合や信号品質の低下につながる可能性があります。これらのオフセットを修正することは、無線通信システムで最適なパフォーマンスと信頼性を維持するために非常に重要です。

SDR Receiver アプリを使用すると、シミュレーション中に [Phase Offset (deg)][Coarse Frequency (Hz)]、および [Fine Frequency (Hz)] を使用して位相と周波数のオフセットを対話形式で推定できます。これらのパラメーターを変更して、[Constellation] プロットにどのような影響があるかを確認します。

受信信号の可視化

次の 3 つのプロットを使用して受信信号を可視化できます。

IQ Plot: 受信信号の実数部と虚数部をプロットします。ここで、[X-axis][Samples][Y-axis][Amplitude] です。

Power Spectrum Plot: 受信信号のパワー スペクトルをプロットします。アプリは SpectrumAnalyzer アプリを使用してこれらのプロットを生成します。プロットでは、[X-axis][Frequency] (Hz 単位)、[Y-axis][dBFS] (フル スケールに対するデシベル) です。詳細については、spectrumAnalyzer を参照してください。

コンスタレーション プロット: 受信信号のコンスタレーションをプロットし、位相と周波数のオフセットを推定します。

受信の停止

Stop: シミュレーションを停止するには [STOP] をクリックします。受信が停止すると、アプリによって [Select SDR] コントロールが有効化され、無線機を変更できるようになります。

When reception is complete, the app enables the SDR type, SDR name, SDR address drop-down options and Refresh SDR list button as shown on the left side. The right side of the image shows the deactivated Select SDR controls when the reception is in progress.

MATLAB スクリプトへのエクスポート

Export To MATLAB Script: [Export To MATLAB Script] ボタンをクリックすると、現在の SDR Receiver アプリ構成用の MATLAB スクリプトが生成されます。

アプリを閉じる

開いている SDR Receiver アプリを閉じるには、ウィンドウを閉じるか、次を使用します。

app.delete();

まとめとその他の調査

この例では、SDR を調整し、要件に基づいて位相と周波数のオフセットを推定します。SDR の詳細については、次の例を参照してください。

  • ソフトウェア無線を使用した QPSK 送信機。

  • ソフトウェア無線を使用した QPSK 受信機。

  • 信号のスペクトル解析。

  • FM ブロードキャスト受信機。

参考文献

[1] SDR (Software Defined Radio)

補助関数

  • SDRReceiver.m

  • helperUISDRRxWidgets.m

  • helperUISDRRxController.m