2

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

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

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

任何人都可以编辑 GNU Radio 的原始文件接收器输出吗?

4

2 回答 2

2

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

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

2)使用频谱分析仪,当您删除一段音频时,我能够看到 audacity 对 wav 文件做了一些非常奇怪的事情,因此为了解决这个问题,我“静音”了我想删除的音频部分。

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

第三项可能不是错误,因为我可能一开始就错误地停止了我的流程图,但是按照 Michael Ossmann 关于将 HackRF 与 Gnuradio 一起使用的教程,他说单击红色 X 以正确关闭流程图并清理所有内容向上; 情况似乎并非如此。

于 2015-04-30T19:51:35.570 回答
1

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

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

于 2015-04-26T18:05:32.783 回答