- リンクを取得
- ×
- メール
- 他のアプリ
- リンクを取得
- ×
- メール
- 他のアプリ
LabVIEWからUSRPを制御する場合、2種類のAPIのどちらかを使用して制御します。
信号処理部分などをソフトウェアで処理する場合に使用します。
例えば、受信したIQデータに対してリアルタイム信号処理を行いたい、というような場合にはUSRP-RIOのFPGA上で信号処理プログラムを実装します。
このような場合にIDLを使用してプログラミングを行います。
なお「ユーザがプログラム可能なFPGA」が搭載されていないUSRPはIDLでのプログラミングを行うことができませんので、NI-USRPを使用する必要があります。
FPGAの実装にはLabVIEW FPGAオプションモジュールが必要です。
以下の表を見て下さい。
例えば、
IQレートを1Mとして設定する場合は、1Mspsでサンプリングされたデータを取得することができますが、
30Mとした場合、33.33333Mとなってしまいます。
指定したいIQレートが設定できない場合は、高めのIQレートを設定してオーバーサンプリングを行うか、リサンプリングを行い対処します。
IDLでは、常に200Mspsでサンプリングを行い、そのデータに対して要求されたIQレートになるようにデシメーションを行います。
このため半端なサンプリングレートでも問題なく収録・送信を行うことができるのです。
- NI-USRPドライバ
- USRP Instruments Design Libraly (aka IDL)
NI-USRPドライバとは
NI-USRPドライバは、USRP標準の機能を使用するためのVI関数の集まりで、送受信やIQデータ取得、IQデータ送信などを行うことができます。信号処理部分などをソフトウェアで処理する場合に使用します。
USRPの基本的な機能は、開発元のEttus Researchにより開発されています。
基本的な機能は、
から構成されており、いずれもオープンソースとして公開されています。
- USRP内部で動作するFPGAコード
- 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レートになるようにデシメーションを行います。
このため半端なサンプリングレートでも問題なく収録・送信を行うことができるのです。
以上、ドルフィンシステム福島でした。
コメント
コメントを投稿