Octave是GNURadio平台上最流行的分析工具,以致GNURadio软件包也包含了一组octave的脚本来读取和从语法上分析数据。
Matlab是闭源且很贵的软件工具,但是如果你已经安装了它,那么比起Octave也许你会更喜欢Matlab.
Octave的安装可以从源码进行,或者在Ubuntu下使用如下命令:
sudo apt-get install octave
为了可以使用GNURadio的Octave脚本,你必须将它的路径添加了Octave的路径变量中。这可以通过配置~/.octaverc文件很容易地完成。查看清楚你的GNURadio路径后(/home/username/gnuradio/),你可以将下面的命令添加到~/.octaverc中:
addpath(“/home/username/gnuradio/gr-utils/octave”)
从语法上分析GNURadio的数据输出,最简单的方法就是使用GNURadio提供的脚本。确保你已经按照安装指导中的说明,将GNURadio脚本的路径添加到了octave路径中。这便可以帮助你读取那些利用gr.file_sink(size, filename)函数存储到磁盘的数据。
下面的函数都是基于gr.file_sink函数中的参数size的。每种方法都将文件名作为第一参数,第二个参数是可选的,用来指定将要从文件中读取数据的长度:
例如,当用如下所示的Python脚本命令后,可以得到在GNURadio中用gr.file_sink(gr.sizeof_gr_complex, “capture.dat”)获取到的64位复数型数据:
c=read_complex_binary(‘capture.dat’);
但直接从USRP得到的数据是以32位的复数,而不是64位的复数形式(gr.sizeof_gr_complex)。为了读取这样的数据,首先使用read_short_binary()函数,然后再将它分割成二维矢量,如下:
d=read_short_binary(data);
c=split_vect(d,2);
为了在Octave中能够画图,最简单的方法就是用gnuplot。你可以通过源来安装GNU plot或者从Ubuntu中安装:
sudo apt-get install gnuplot
如果想同时画出I,Q两路数据随时间变化的情况,那么就应分别绘图
plot([real(c), imag(c)])
如果想得到I/Q图(X轴是I路,Y轴是Q路),则可以使用如下命令
plot(c)
很有可能你已经安装了一些Python的科学分析包,例如SciPy和NumPy (特别是Matplotlib)。利用这些工具,你可以使用Python来绘制或者分析数据。