RF収録・再生可能な最大帯域幅はどのように決まるのでしょうか?
受信可能な最大帯域幅はソフトウェア無線機の性能で決まりますが、ストレージに保存されるまでのデータ経路にボトルネックがあれば、収録可能な最大帯域幅は狭まります。
以下の各段階で一番遅い転送レートが最大帯域幅となります。
以下に、ソフトウェア無線機NI-USRP 2944Rを使用してRF収録を行う場合の例を説明します。
Factor.1 : IQレート
ソフトウェア無線機の最大IQレートで収録可能な帯域幅が決まります。
IQレートとは、ADCがサンプリングを行いDDCで処理された結果出力されるIQサンプルのレートのことで、IQレートは以下の式で表されます。
IQレート(単位 サンプル) = 最大帯域幅 * 1.25
IQレートの単位はサンプル(S)で、1サンプルは”I”と”Q”それぞれ16bitのためバイトに直すと4バイト(16bit x 2)になります。よってその帯域幅のデータを転送するための必要転送レートは、以下の式で表されます。
必要転送レート(単位 バイト) = IQレート * 4バイト
このIQデータがソフトウェア無線機内のFPGAに渡されてPXI Expressバスに渡されます。
帯域幅、サンプリングレート、転送バイト数の一覧
帯域幅 |
MHz |
10 |
20 |
40 |
50 |
80 |
100 |
160 |
200 |
320 |
400 |
800 |
IQレート |
MS/s |
12.5 |
25 |
50 |
62.5 |
100 |
125 |
200 |
250 |
400 |
500 |
1000 |
転送レート |
MB/s |
50 |
100 |
200 |
250 |
400 |
500 |
800 |
1000 |
1600 |
2000 |
4000 |
USRP 2944Rの場合の計算例
USRP 2944Rの場合、最大帯域幅は160MHzとなっておりますので、IQレートと必要転送レートは以下になります。
IQレート |
200MS/s = 160MHz * 1.25 |
必要転送レート |
800MB/s = 200MS/s * 4 |
この転送レート800MB/sのIQデータを切れ目なく収録することで、160MHz BWのデータをストレージに収録することが出来ます。
ちなみにUSRP 2944Rの場合、最大2chのデータを取得することが出来ますので、2ch取得する場合はトータルで以下のレートになります。
1600MB/s = (200MS/s * 4バイト) * 2ch
Factor.2 : FPGAの動作スピード
サンプリングされたIQデータは、ソフトウェア無線機内のFPGAからPXI Expressバスに送り出されます。
FPGA回路の動作スピードは、IQデータを遅滞なく処理できる動作クロックである必要があります。通常は、以下の図のようにADCのサンプリングクロックで動作するように構成されているので遅れることはありません。
ただし受信したIQデータに信号処理を行うなど時間のかかる処理がFPGA内でプログラミングされている場合は、処理遅延が発生する場合があります。
もし処理遅延が発生した場合、FPGAが収録したIQデータを取りこぼしたままPXI Expressバスに転送しますので、最終的にストレージに記録されたデータの一部サンプルが欠損することになります。
Factor.3 : PXI Expressバスの動作スピード
PXI Expressバスで転送できる最大レートは、「送り出し側の最大転送レート」・「バス幅」・「受け取り側の最大転送レート」で決まります。最大帯域幅のデータを送信するためには、それぞれが要求されるレートを上回っている必要があり、一番遅いデバイスがボトルネックになります。
PXI Expressコントローラ周辺のボトルネック
FPGAからPXI Expressコントローラにデータが渡され、PXI Expressバスにデータが流れます。
PXI Expressコントローラ周辺回路がボトルネックになる場合、転送可能な最大収録帯域幅が狭まることになります。
例えば、NI PXIe-5646Rは最大収録帯域幅 200MHzであり、必要転送レートは1GB/sです。
PXI Expressコントローラ周辺がボトルネックで最大収録帯域幅を受信することが出来ません。
ドルフィンシステムでは、NI PXIe-5646Rをスペックを引き出すためにチューニングを行い、
- 180M BW 2chを連続して50分(3000秒)に渡り保存
- 160M BW 2chを連続して50分(3000秒)に渡り再生
までは実現しました。
さらにチューニングをする方法はあり、今後機会があれば試してみたいと思っています。
ご興味のある方はお問い合わせ下さい。
インターフェイスのボトルネック
ノートPCでUSRP-RIOを接続する場合、Express Cardのインターフェイスボードを使用します。このExpress Cardスロットの仕様はPCI Express x1のため最大転送レートは250MB/sであり、帯域幅としては50MHzが上限です。
USRP-RIOのPXI Expressが800MB/sの転送能力があったとしても、250MB/sが上限となりバス幅がボトルネックになります。
よってUSRP-RIOをノートPCで使用する場合、理論上の最大帯域幅は50MHzになります。
送り出し側のボトルネック
デスクトップPCやPXIシャーシでUSRP-RIOを接続する場合、
- NI PXIe-8374 ( PXI Express x4)
- NI PCIe-8371 ( PCI Express x4)
を使用します。これらはPCI Express Gen.1 x4のデバイスなのでバス規格上は最大1GB/sの転送レートですが、USRP-RIOの転送レートは800MB/sが動作仕様です。
USRP 2944Rの最大帯域幅 160MHzで収録する場合の必要転送レートは800MB/sのため、160MHzの帯域幅のデータを転送可能です。
ですが最大帯域幅160MHzで2ch収録を行う場合、その必要転送レートは1600MB/sとなります。これは上記の動作仕様の上限を超えているため、転送を行うことが出来ません。
よって2ch収録を行う場合はそれぞれのチャネル最大帯域幅80MHz以内で収録を行わなければなりません。
800MB/s = (80MHz * 1.25 * 4バイト) * 2ch
バス競合によるボトルネック
PXI Expressバスは、複数のデバイスを接続することが可能です。
PXIシャーシにUSRP-RIOやVSTを接続する場合、同時に複数のデバイスがデータ転送を行うとお互いがバス帯域を占有してしまい、個々のデバイスがもつ最大転送能力を発揮できません。
この場合は、同時に使用するデバイスはスイッチで区切られた別々のセグメントに配置して、個々のデバイスが割り当てられたバスを占有できるようにする必要があります。
Factor.4 : コントローラ(CPU)のスピード
PXI Expressバスから流れてきたデータは、OSおよびデバイスドライバの内部バッファに格納されます。コントローラ上で動作するソフトウェアが、バッファからIQデータを取得しストレージに書き込みます。
この時に、内部バッファからの読み込みが間に合わないと、PXI Expressバスから流れてくる後続データに上書きされて取得が間に合わなかったデータを損失します。
通常のデータ取得ソフトウェアは、内部バッファからデータを読み込む処理とストレージに書き込む処理を別々のスレッドで並列動作させます。そのため通常はどちらか一方の処理が遅くなったとしても、もう一方に影響はありません。
しかし取得したデータをグラフ表示や、何らかの信号処理を行う場合や、他に重いアプリケーションプロセスが動作している場合は、CPU負荷が高まりデータの取得が間に合わなくなります。
データの取得の邪魔なる処理は行わないようにします。
Factor.5 : ストレージの書込速度
ストレージへの書き込み速度は慎重に調査する必要があります。
例えばシーケンシャルライト性能 400MB/sをうたっているSSDであっても、長時間連続してデータの書き込みを行った場合、そのレートを維持できない場合が多くあります。
高速なSSDと言っても常に安定したレートが出るわけではありません。
参考:ドルフィンシステムが行っている収録用ストレージの選別方法
例えば上記ページにあるように、SSDの過半を使用した段階でシーケンシャルライト性能が半分に低下するSSDも存在しています。このようなSSDは一般的なベンチマークソフトウェアでは問題が顕在化せず、厄介です。
書き込みに使用するストレージは、必ず検証されたストレージを使用します。
参考
ナショナルインスツルメンツ製品における帯域幅とIQレートの関係
http://www.dolphinsystem.jp/bandwidth_iqrate_on_niproducts/
USRP-RIO1台あたりの収録・再生可能帯域幅について
http://www.dolphinsystem.jp/available_tranferrate_per_usrprio/
まとめ
ソフトウェア無線機でRF収録などを行う場合、収録可能な最大帯域幅は構成するソフトウェア無線機や接続するバスのスピード、コントローラのスピード、ストレージのスピードなどで決まります。
データ落ちのないRF収録を行うためには、すべての経路の最大転送レートを検証し、要求する最大帯域幅を満たす速度を実現する必要があります。
ドルフィンシステムで用意しているRFキャプチャー・レコーダー&プレイバックシステムは、お客様の最大帯域幅に答えられる検証済のハードウェア構成を用意しております。
また複数の同期したUSRP-RIOを使用したRF収録や、信号処理システムなどをご要望の際は、受託開発サービスをご利用ください。