USRP-RIO レベル設定とゲイン設定で表示される受信電力が異なるのはなぜ?


clip_image001

こんにちは

ドルフィンシステムの笹生です。

 

今週開催のマイクロウェーブ展 MWE 2018 NI 様ブースに出展させていただきます。

期間 2018/11/28() 11/30()

会場 パシフィコ横浜

NI様ブース番号 H-03

https://apmc-mwe.org/mwe2018/kigyo/data/A07100.html

弊社は「お客様の「作りたい」をソフトウェア無線機で実現する開発サービス」をテーマとして出展致します。

MWE 2018 にお越しの際は是非のぞいてみてください。

 

さて本日のメールニュースは、USRP-RIO の設定方法についてです。

USRP-RIO の受信のゲインを設定する方法としては以下の 2種類あります。

Reference Level (dBm) での設定

Gain (dB) での設定

じつはこの2種類の設定で表示される入力信号の電力値換算が異なる現象がありました。

今回はなぜ異なってしまうのか、そのあたりを見ていきたいと思います。

 

電力表示の仕組み

 

弊社で USRP-RIO のソフトウェアを開発する際にベースとして良く使用しているサンプルでは受信の RF 設定は Reference Level (dBm) を指定する方式です。

※これはこれでどういう設定値なのかというのは別途こちらに調査した記事がありますので参考にしてください。

http://dolphinsasoh.blogspot.com/2018/04/rf-iq-4.html

 

この Reference Level (dBm) での設定は、結局関数内部で USRP-RIO のアナログゲイン設定に変換されて設定されています。このReference Level (dBm) での設定方法以外に、直接 Gain (dB) で設定する方法(関数)もあります。

 

さて、USRP-RIO のサンプルは非常に良くできていて、USRP-RIO 本体から吸い上げた受信信号は本来 IQ 16bit の整数データにも関わらず、表示上ではきちんと受信電力 (dBm) に変換されて表示されます。

 

整数から電圧値への変換係数を USRP-RIO のライブラリが出力してくれているのでそれを使って変換すれば正しい電圧値に変換できるわけです。

ところが、 RF 設定で  Reference Level (dBm) を指定した場合はほぼ正しく表示される電力ですが、Gain (dB) を指定する場合ではかなりずれた電力値が表示されてしまいます。

 

実際に計測

 

例として -20dBm の正弦波を USRP-RIO に入力した場合のサンプルソフトウェアでの表示を見てみます。

まず、Reference Level (dBm) 0dBm 設定にした時

image

正弦波は約-21dBm の表示で基本的に正しい値が表示されました。

Reference Level(dBm) -10dBm, -20dBm の設定に変化させても、正弦波のレベルはほぼ同一の -21dBm程度でした。

 

今度は Gain 指定の関数を使用した場合です。

Gain 設定を 0dB にした時

image

正弦波は約 -14dBm を表示しており、実際の正弦波と比べても 6dB以上の誤差がありました。

それだけではなく、Gain 10dB, 20dB とすると、正弦波の表示も -4dBm, +6dBm と大きくなっていきました。

 

なぜ違ってしまうのか?

 

先ほどお伝えした整数データから電圧値に変換するための係数にありました。

Reference Level(dBm) 指定の場合では、USRP-RIO のライブラリ側で変換係数をきちんと計算した上でそれを使っています。

例えば、0dBm 設定での変換係数が 0.652253 で、-10dBm の設定では 0.206261 -20dBm では 0.065225 にという具合に変化します。

当然ゲインの設定も +10dB, +20dB になっていて、取得する整数データもそれに応じて大きくなります。

なので、係数で調整されて表示される電力値は実際の入力値に一致するようになっています。

 

ところが、Gain 指定の場合では、変換係数が固定値の 2 になっており、Gain 10dB, 20dB と変えても変換係数は 2 のままです。

これが原因で、表示の電力値も実際の入力レベルではなく、設定とは無関係の変換係数 2 での値であるため表示電力も誤った値を表示しているのでした。

 

まとめ

 

個人的には、Reference Level(dBm) 指定でも実際には設定する Gain に変換して設定しているはずなので、Gain 設定でも変換係数は正しく出してほしいなと思うところです。

Gain 設定を使用される場合は変換後の値は実際の値ではないので注意が必要です。

0 件のコメント :

コメントを投稿