如何编辑GNU Radio文件接收器生成的文件?

时间:2016-03-17 08:54:56

标签: file binary gnuradio

我发现文件接收器块生成的文件是二进制格式, 哪个不能用linux下的gedit编辑或其他东西, 那我怎么编辑文件呢?

我发送的dat文件包含" hello world"我想收到一个包含" hello world"

的文件

1 个答案:

答案 0 :(得分:3)

这是经常被问到的。所以这里是link to the FAQ和摘录:

  

所有文件都是纯二进制格式。只是位。而已。浮点数据流在文件中一个接一个地保存为32位。复数信号对于实部具有32位,对于虚部具有32位。读回一个复数意味着读取32位,将其保存到复杂数据结构的实部,然后读取接下来的32位作为数据结构的虚部。并继续阅读数据。

     

使用Octave和Python的Scipy模块查看gr-utils中的Octave和Python文件以读取数据。

     

格式的例外是使用元数据文件格式时。这些文件由File Meta Sink:http://gnuradio.org/doc/doxygen/classgr_1_1blocks_1_1file__meta__sink.html块生成,并由File Meta Source块读取。有关如何处理这些文件的详细信息,请参阅元数据文件格式的手册页。

     

将整个文件读入numpy数组的单行Python命令是:

f = scipy.fromfile(open("filename"), dtype=scipy.uint8)
     

用scipy.int16,scipy.int32,scipy.float32,scipy.complex64或您使用的任何类型替换dtype。

所以你的问题"我如何编辑这个?"归结为理解这是原始数据。你当然可以在字节级别修改它(例如使用hexeditor),但通常,你有(或写)一些程序将数据加载到程序中的表示(例如复数数组) )看看那个。

您提出此问题的方式表明您并未真正意识到您正在查看的内容(因为您甚至没有提及 您传输的内容 那个字符串)。也许您的数据由于噪声引起的符号错​​误而导致误码?很可能,没有完成同步,所以你收到的比特并没有像你发送的那样以字节顺序结束等等。

我认为这可能是指向GNU Radio Guided Tutorials

的好地方