我使用file sink
块在GNU Radio中录制了一个信号,该块输出一个原始二进制文件,可以将其分析或用作GNU Radio的输入源。
我想编辑这个原始文件,以便当我在GNU Radio中使用它作为源时,它会传输我更改的文件而不是原始文件。例如:信号很长并重复一个模式,我想编辑文件以减少重复信号的数量,并将其保存回原始格式以便稍后使用gnuradio进行传输。
我尝试将文件作为原始文件导入Audacity
(选择32位浮点数,1个频道,48k作为采样率)。这对我来说可以将信号看作音频数据,我甚至可以对其进行编辑,但是当我将其作为原始数据导出时,我不确定它是否正确保存。此外,大胆的时间指数似乎已经过时了;信号应该只是微秒,但是大胆显示总共几秒钟!
任何人都有幸编辑GNU Radio的原始文件接收器输出?
答案 0 :(得分:2)
我能够始终如一地完成这项工作。似乎有3件事阻止了这种情况的正常运作。
1)我做错了!我需要将Real和Imaginary数字输出到 2通道wav文件。
2)使用频谱分析仪时,我能够看到当你删除一段音频时,大胆使用wav文件做了一些非常奇怪的事情,所以为了解决这个问题我“沉默”了我要删除的音频部分
3)Gnuradio
和Osmocom Sink
似乎存在错误(是的,我从源代码获得了两者的最新版本)。如果你运行你的流程图,开始传输然后通过点击Gnuradio中的红色X(杀死流程图)来停止流程图,它保持我的设备(HackRF)传输!如果您尝试再次传输新文件或同一文件,它将不会传输该信号,因为它已经尝试传输某些信息。要停止设备发送,只需关闭运行流程图时出现的块弹出窗口。
第3项可能不是一个错误,因为我可能一直在错误地停止我的流程图,但是根据Michael Ossmann关于将HackRF与Gnuradio一起使用的教程,他说要点击红色X以正确关闭流程图并清理一切;事实并非如此。
答案 1 :(得分:1)
在gr-utils/octave
源代码的GNU Radio
文件夹中,Octave
和Matlab
有多个功能。其中一些允许检索和存储相应数据类型的原始二进制文件。
例如,如果您的信号是从float
个样本构建的,则可以使用read_float_binary
函数将文件接收器块存储的样本导入Octave/Matlab
。然后对信号进行修改,并使用write_float_binary
功能将其重新存储起来。可以使用文件源块将存储的文件导入到流程图中。