USRPデバイスのサンプルプログラムでIQデータを使用する

更新しました Apr 22, 2021

使用製品

ハードウェア

  • USRP-2954

問題

サンプルプロジェクトを修正してUSRPデバイスを動かそうとしています。このサンプルを実行して得られているデータ、あるいは出力するデータは波形データとなっていますが、IQデータを直接扱うことはできますか?

解決策

はい。サンプルプロジェクトで生成されるサンプルでは表面上データは波形データとしてグラフに表示されますが、これらのデータの大元はIQデータとして扱わています。

以下では、サンプルプロジェクトのNI-USRP Simple Streamingを例にとります。
sample.png

こちらを選択するとサンプルプロジェクトが指定したフォルダに生成されます。このサンプルにはRx Streaming (Host).viとTx Streaming (Host).viが含まれます。

Rx Streaming (Host).viの場合:ブロックダイアグラムから、Initialte and Fetch (Single).vi >> Initiate and Fetch (Multi).vi >> Initiate and Fetch Time (Multi).vi >> Fetch Rx Data (CDB WDT).vi >> Fetch Rx Data (CDB).vi >> Fetch Rx Data (U32).vi のサブVIまで進みブロックダイアグラムを確認すると、Dataをインボークノードから取得していることがわかります。このDataの下位ビットがI、上位ビットがQにそれぞれ対応します。(ビットの分け方はFetch Rx Data (CDB).viの中のScale IQ Data.viを参考にしてください)
Rx.png

Tx Streaming (Host).viの場合:ブロックダイアグラムから、Initiate and Generate (Single).vi >> Initiate and Generate (Multi).vi >> Initiate and Generate Time (Multi).vi のサブVIまで進みブロックダイアグラムを確認すると、IQデータを書き込んでいる場所があります。任意のIQデータを書き込む際にはこの部分を編集します。
Tx.png