Pin*_*gJW 1 binary file gnuradio
我发现file sink block生成的文件是二进制格式的,linux下gedit什么的都不能编辑,那我怎么编辑这个文件呢?
我发送了一个包含“hello world”的 dat 文件,我想收到一个包含“hello world”的文件
所有文件都是纯二进制格式。只是点点滴滴。就是这样。一个浮点数据流以 32 位一个接一个地保存在文件中。一个复数信号有 32 位的实部和 32 位的虚部。读回复数意味着读入 32 位,将其保存到复数数据结构的实部,然后读入接下来的 32 位作为数据结构的虚部。并继续阅读数据。
查看 Octave 和 Python 文件以
gr-utils使用 Octave 和 Python 的 Scipy 模块读取数据。该格式的例外是使用元数据文件格式时。这些文件由 File Meta Sink 生成:http : //gnuradio.org/doc/doxygen/classgr_1_1blocks_1_1file__meta__sink.html块并由 File Meta Source 块读取。有关如何处理这些文件的更多信息,请参阅元数据文件格式的手册页。
将整个文件读入 numpy 数组的单行 Python 命令是:
Run Code Online (Sandbox Code Playgroud)f = scipy.fromfile(open("filename"), dtype=scipy.uint8)将 dtype 替换为 scipy.int16、scipy.int32、scipy.float32、scipy.complex64 或您使用的任何类型。
所以你的问题“我如何编辑这个?” 归结为理解这是原始数据。您当然可以在字节级别(例如使用十六进制编辑器)修改它,但通常,您会(或编写)一些程序将数据加载到程序内表示(例如复数数组)和看那个。
你问这个问题的方式表明你并没有真正意识到你在看什么(因为你甚至没有提到你如何传输该字符串)。也许您的数据由于噪声引起的符号错误而存在位错误?很可能,没有完成同步,因此您收到的位的字节顺序与您打算发送的字节顺序不同。
我认为这可能是向您指出GNU Radio Guided Tutorials 的好地方。