USRP IQレート設定にはご注意

LabVIEWからUSRPを制御する場合、2種類のAPIのどちらかを使用して制御します。
  1. NI-USRPドライバ
  2. USRP Instruments Design Libraly (aka IDL)

NI-USRPドライバとは

NI-USRPドライバは、USRP標準の機能を使用するためのVI関数の集まりで、送受信やIQデータ取得、IQデータ送信などを行うことができます。
信号処理部分などをソフトウェアで処理する場合に使用します。
USRPの基本的な機能は、開発元のEttus Researchにより開発されています。
基本的な機能は、
  1. USRP内部で動作するFPGAコード
  2. FPGAをPCからアクセスするためのソフトウェアライブラリ( aka UHD)
から構成されており、いずれもオープンソースとして公開されています。
LabVIEWではなくC++やpythonなどを使用してGNU RadioからUSRPを制御する場合はUHDの関数を通じてUSRPを制御します。
NI-USRPドライバは内部ではUHDの関数をコールしてUSRPを制御していますので、UHDのラッパーといえます。

IDLとは?

USRP-RIOは「ユーザがプログラム可能なFPGA」が搭載されています。
例えば、受信したIQデータに対してリアルタイム信号処理を行いたい、というような場合にはUSRP-RIOのFPGA上で信号処理プログラムを実装します。
このような場合にIDLを使用してプログラミングを行います。
なお「ユーザがプログラム可能なFPGA」が搭載されていないUSRPはIDLでのプログラミングを行うことができませんので、NI-USRPを使用する必要があります。
FPGAの実装にはLabVIEW FPGAオプションモジュールが必要です。

NI-USRPのIQレートは柔軟に設定できない

2つのライブラリのどちらかを選択してプログラミングを行っていきますが、NI-USRPでは注意が必要です。その代表的なものは「IQレート(サンプリングレート)を自在に設定することができない」ということです。
以下の表を見て下さい。
例えば、
IQレートを1Mとして設定する場合は、1Mspsでサンプリングされたデータを取得することができますが、
30Mとした場合、33.33333Mとなってしまいます。
指定したいIQレートが設定できない場合は、高めのIQレートを設定してオーバーサンプリングを行うか、リサンプリングを行い対処します。

設定IQレート
(MHz)
2922
2943R
0
195312
195312
1
1000000
1000000
2
2000000
2000000
3
3030303
2985075
4
4000000
4000000
5
5000000
5000000
6
5882353
6060606
7
7142857
6896552
8
7692308
8000000
9
9090909
9090909
10
10000000
10000000
11
11111111
11111111
12
12500000
11764706
13
12500000
13333333
14
14285714
14285714
15
14285714
15384615
16
16666667
15384615
17
16666667
16666667
18
16666667
18181818
19
20000000
18181818
20
20000000
20000000
21
20000000
20000000
22
20000000
22222222
23
25000000
22222222
24
25000000
25000000
25
25000000
25000000
26
25000000
25000000
27
25000000
28571429
28
25000000
28571429
29
25000000
28571429
30
33333333
28571429
31
33333333
33333333
32
33333333
33333333
33
33333333
33333333
34
33333333
33333333
35
33333333
33333333
36
33333333
33333333
37
33333333
40000000
38
33333333
40000000
39
33333333
40000000
40
33333333
40000000
41
33333333
40000000
42
50000000
40000000
43
50000000
40000000
44
50000000
40000000
45
50000000
40000000
46
50000000
50000000
47
50000000
50000000
48
50000000
50000000
49
50000000
50000000
50
50000000
50000000

IDLは柔軟に設定できる

IDLはこの問題は発生しません。
IDLでは、常に200Mspsでサンプリングを行い、そのデータに対して要求されたIQレートになるようにデシメーションを行います。
このため半端なサンプリングレートでも問題なく収録・送信を行うことができるのです。

コメント