我如何编辑 GNU Radio 的文件接收器输出?

How do I edit GNU Radio's file sink output?

我使用 file sink 块用 GNU Radio 记录了一个信号,该块输出一个原始二进制文件,可以分析或用作 GNU Radio 的输入源。

我想编辑这个原始文件,这样当我将它用作 GNU Radio 中的源文件时,它会传输我更改后的文件而不是原始文件。例如:信号很长并且重复一个模式,我想编辑文件以减少重复信号的数量并将其保存回原始格式以便稍后使用gnuradio传输。

我尝试将文件作为原始文件导入 Audacity(选择 32 位浮点数和 1 个通道以及 48k 作为采样率)。这对我来说可以将信号视为音频数据,我什至可以对其进行编辑,但我不确定在将其导出为原始数据时是否正确保存了它。此外,audacity 中的时间指数似乎还有很长的路要走;信号应该只有几微秒,但 Audacity 将其显示为总共几秒!

有人有幸编辑 GNU Radio 的原始文件接收器输出吗?

GNU Radio 源代码的 gr-utils/octave 文件夹中有几个 OctaveMatlab 的函数。其中一些允许检索和存储相应数据类型的原始二进制文件。

例如,如果您的信号由 float 个样本构成,您可以使用 read_float_binary 函数将文件接收器块存储的样本导入 Octave/Matlab。然后对信号进行修改并使用 write_float_binary 函数将其再次存储回来。存储的文件可以使用文件源块导入到您的流程图中。

我能够始终如一地完成这项工作。似乎有 3 件事阻止了它正常工作。

1)我做错了!我需要将实数和虚数输出到 2 通道 wav 文件.

2) 使用频谱分析仪,我发现当您删除一段音频时,audacity 对 wav 文件做了一些非常奇怪的事情,因此为了解决这个问题,我 "silenced" 删除了一段音频我想删除。

3) GnuradioOsmocom Sink 似乎存在错误(是的,我从源代码获得了两者的最新版本)。如果您 运行 您的流程图,开始传输然后通过单击 Gnuradio 中的红色 X 停止流程图(终止流程图)它会保持我的设备 (HackRF) 传输!如果您再次尝试传输新文件或同一文件,它不会传输该信号,因为它已经在尝试传输某些内容。为了停止设备传输,只需关闭 运行 流程图时出现的块弹出窗口 window。

第 3 项可能不是错误,因为我可能一开始就错误地停止了我的流程图,但是按照 Michael Ossmann 关于将 HackRF 与 Gnuradio 结合使用的教程,他说单击红色 X 以正确关闭流程图并清理一切;这似乎不是这种情况。