Octave 是 GNU Radio 的最流行的分析工具,鉴于此 GNU Radio 软件包也包含它自身的一组脚本( scripts )用于读取和语法分析输出。
安装- Installing
可以从源码( source)来安装 Octave,或者在 Ubuntu 内使用如下命令:
以便 GNU Radio 的 Octave 脚本能够被直接使用,必须在 Octave 的路径变量中添加 GNU Radio 的路径。 这通过操作 Octave 的配置文件 ~/.octaverc 很容易被做到。查看清楚 GNU Radio 的路径 /home/username/gnuradio/。然后把如下内容添加到 ~/.octaverc:
数据的语法分析 - Parsing Data
从语法上分析 GNU Radio 的数据输出,最便捷的方法便是使用 GNU Radio 提供的脚本。如上安装指导所示,确保把 GNU Radio 的脚本的路径已经添加到 Octave 的路径中。这便可帮助读取那些被使用
gr.file_sink (大小、文件名) 顷倒到磁盘的数据。
下面的方法函数是基于参数 size 的用在 gr.file_sink() 内的,它把文件名作为第一个参数、第二个参数是可选项,它表示了从文件中要读取的数量。
- read_complex_binary(): gr.sizeof_gr_complex
- read_float_binary(): gr.sizeof_float
- read_int_binary(): gr.sizeof_int
- read_short_binary(): gr.sizeof_short
- read_char_binary(): gr.sizeof_char
比如:在 Python 脚本中,使用
gr.file_sink(gr.sizeof_gr_complex, "capture.dat")
获取了 64 位的复合数据如下:
从 USRP 直接能获取的数据是以 32 位复合数据形式存储的,而不是 64 位复合型 (gr.sizeof_gr_complex)。为了能读取此数据,首先,使用 read_short_binary() 然后将其分离进入 - a two dimensional vector 如下:
c=split_vect(d,2);
图形绘制 - Plotting
使用 Octave 来绘制数据,最简便的方法是使用
gnuplot。可以从源码(source)来安装或者在
Ubuntu 上键入如下命令:
在时间轴上的 I 和 Q,可如下分别地绘制各个元素:
如下可生成一个 I/Q 曲线(x 表示 I ,y 表示 Q):