N210に搭載したBasicRxで2ch収録する。

BasicRXとLFRXについて

USRPには色々なドーターボードが用意されているので用途に応じて乗せかえることが出来ます。例えばBasicRxやLFRXというドーターボードはダウンコンバーターなどは搭載されていない純粋なADCなのでサンプリングしたデータをそのまま取得できます。USRPでAM信号などDC~の信号を収録する場合はLFRXを、1M~250MはBasicRXを使用できます。

下図はBasicRXですが、一枚のドーターボードに2ch分の信号をサンプリングできます。

通常はRF 1入力のUSRP N210やNI USRP-2922でも BasicRx, LFRXを搭載すれば2入力が可能です。X310に搭載すると4ch受信が出来るので、AM 4アンテナ分が受信可能です。

以前に以下の記事で取り上げました。

USRPをADCとして使いたい!DC~50MHzのドーターボード LFRXを試す
http://mikioblog.dolphinsystem.jp/2018/02/usrpadcdc50mhz-lfrx.html

USRP-RIOをADCとして使いたい、AMも受信したい!DC~50MHzのドーターボード LFRXをUSRP-RIOで試す
http://mikioblog.dolphinsystem.jp/2018/05/usrp-rioadcamdc50mhz-lfrxusrp-rio.html


LabVIEWで使用する

BasicRxとLFRXをLabVIEWで使用する場合注意が必要です。

NI-USRPドライバのReadmeにはサポートされているがテストはされていない、と書かれています。

NI-USRP 2022 Q4 Readme
https://www.ni.com/pdf/manuals/ni-usrp-2022-q4.html


しかし実際にLabVIEWで動かしてみると、正しく動作します。

例えば、下図はNI-USRPのサンプルを動作したものですが、BasicRXのRX-A, RX-B両方の端子に入力したCW(10KHz, 1Vpp)を受信している様子です。RX-B側は分かり易いようにATT 6dBを挿入しています。

サンプル : "niUSRP EX Ex Continous Async.vi"


GNU Radioで使用する

次にWindows上のGNU Radioで動かしてみます。
GNU RadionのインストールはRadio Condaで簡単にインストールできますので、ありがたく使わせて頂きます。Radio Condaについては別途記事をアップする予定です。

こんな感じのフローグラフにします。

ダウンロードはこちらから→usrp_basicrx_recv.zip


USRP Source設定は、IPアドレスを入力しSyncをNo Syncにします。

あとSubdev設定で、BasicRxやLFRXのRX-AとRX-B両方から収録する設定をします。これを記述しないとRX-Aのみ受信になります。


Mb0: Subdev Spec → A:AB


Subdevの詳しい設定はこちら。

Configuring Devices and Streamers→Specifying the Subdevice
https://files.ettus.com/manual/page_configuration.html


実行すると波形グラフが表示され、2つの波形が表示されます。
以下は、CW (1vpp, 10KHz)を1Mspsでサンプリングした図です。


I16で収録する

USRPで収録再生する場合の標準的なファイルフォーマットはI16 IQです。

このフォーマットで保存する場合は、Output Type等を変更します。QT GUI Time SinkはI16に対応していないので削除します。


こんな感じで2chが保存されました。

保存される順番は、RX-A,RX-B,RX-A,RX-B,RX-A,RX-B,RX-A,RX-B……ですね。


まとめ

  • NI-USRPでBasicRXやLFRXを使用できる。
  • BasicRXやLFRXなら1枚のドーターボードで2ch分の信号をサンプリングできる。
  • GNU Radioで使用する場合はSubdevで使用するチャネルを指定する。


以上、ドルフィンシステム福島でした。



コメント