NI USRP のサンプルを紐解く (2) ~"niUSRP EX Rx Continuous Sync.vi" Async との違いは?~

こんにちは、ドルフィンシステムの笹生です。

前回 NI USRP のサンプルの 1つである "niUSRP EX Rx Continuous Async.vi" について紹介しました。今回「送信側のサンプルを」と思ったのですが、社内の意見もあり、すごく良く似た名称の "niUSRP EX Rx Continuous Sync.vi" があるので何が違うのか紹介したいと思います。

今回も使用している LabVIEW は 2020 で、インストールする NI USRP のバージョンは 21.0.2 、OS は Windows10 です。


niUSRP EX Rx Continuous Sync.vi は Async と何が違うのか

前回紹介した "niUSRP EX Rx Continuous Async.vi" は、「NI USRP で非同期で連続して受信するサンプル」でしたので、今回の "niUSRP EX Rx Continuous Sync.vi" は、「NI USRP で同期して連続して受信するサンプル」と理解しますがいったい何と同期しているのでしょうか?

(結論を言ってしまうと「設定時間に同期して受信を開始するサンプル」です。時刻ではないです。。。)

起動してみるとフロントパネルはすごく似ていますが、1つ項目が増えています。



その他は基本一緒です。
フロントパネルとしては、左側が設定関連、中央が設定の確認用表示関連、右側が受信信号のグラフ表示になります。



名称デフォルト設定値について
Device Name192.168.10.2USRP のデバイス名を入力します。
Ethernet で接続している時はIP で設定します。
USRP-RIO のように PCIe (MXI) ケーブルで
接続しているときは NI MAX で認識しているデバイス名
を入力します。
IQ Rate[S\sec]1Mいわゆるサンプリングレートです。設定可能な
範囲は USRP のハードウェアによります
Carrier Frequency2Gいわゆるキャリア周波数(センター周波数)です。
設定可能な範囲は USRP のハードウェアによります。
Coerced IQ Rate[S/sec]100k実行したときに実際に設定された IQレートが表示されます。
Coerced Carrier Frequency100k
実行したときに実際に設定されたキャリア周波数が表示されます。



名称デフォルト設定値について
Active AntennaRX1アンテナと書いてありますが、受信するポートの名称を文字列で
指定します。USRP のハードウェアによって多少ことなりますが、
TX/RX 、RX1 などを設定します。
Enabled Channel0これも USRP のハードウェアによって 複数チャネルに
対応していることもあります。0, 1 などを設定します。
Gain1ゲインを設定します。
設定範囲はUSRP のハードウェアによります。
Number of Samples16384USRP から取得する1回あたりのサンプル数を指定します。
Timeout10sタイムアウトとして指定する秒数を指定します。
Coerced gain実行したときに実際に設定された ゲインが表示されます。
Time to Receive First Sample2.0最初のサンプルを受信する時刻を指定します。
Actual Rx Timestamp実行して受信をしたタイミングでのタイムスタンプを表示します。

今回の Sync ではこの "Time to Receive First Sample" という設定項目が増えています。

"whole seconds" と "fractional seconds" の 2つの設定がありますが、"whole seconds"は所謂秒の整数部分で、 "fractional seconds" は秒の小数部分を表しています。

この時間指定して受信を開始できる機能が Sync では追加されているようです。

時刻に同期しているイメージでしょうか。

実行しエラーがなければ右側のグラフに IQ 信号の時間波形とスペクトラム波形が表示されます。


時刻に同期しているといっても、このサンプルでは開始したときに内部の時刻を 0 にセットしてそこからの時刻で受信トリガを発行して受信する仕組みのようです。


実際に実行してみると、この "Time to Receive First Sample" の時刻を大きくすると実行開始してから設定した時間だけ遅れて受信することがわかります。
"Actual Rx Timestamp" も実行すると進んでいきますが、設定時刻から始まることがわかります。

ということで設定した時間だけ遅延して(同期して)受信を開始するサンプルでした。
この内部の時刻を 0 にセットしてというところを実際の時刻に変更して"Time to Receive First Sample" を受信開始時刻にすればもっと使い勝手良くなりそうです。

次回もサンプルを見ていきたいと思います。









0 件のコメント :

コメントを投稿