4

我与野生动物无线电发射器一起工作,我想建造一些东西来收听这些信号并跟踪它所听到的内容。该信号通常是每分钟传输 60 次的音调,如果运动传感器指示动物已经死亡,则为 120 次。

我的计划是使用 GNU Radio 收听信号并将其转换为某种类型的矩阵,然后保存到文件中,然后在第二个程序中进行分析。有没有办法以 500 Hz 间隔获得几兆赫兹的信号强度向量,并将它们组合成一个矩阵?

二级程序将解释此输出并找到野生动物发射器并记录它们的脉搏率。想法是每 10 秒左右从 GNU Radio 获取一个新文件,并在收到第二个程序时对其进行处理。

我一直在尝试在 GNU Radio 中使用文件接收器块,并意识到它是二进制的。也不确定它到底包含什么。

任何关于我应该如何做到这一点的建议方法将不胜感激!

4

2 回答 2

6

我的计划是使用 GNU Radio 来收听和转换信号

好吧,您将需要硬件来做到这一点;你有什么样的 SDR 设备?

在下文中,我将假设您确实在使用经典的 SDR 方法来获取能够为您提供原始 I & Q 样本的设备。

如果有一种方法可以在 500 Hz 间隔内获得几兆赫兹的信号强度向量,并将它们组合成一个矩阵。

放慢矩阵,让我们专注于从等距频率中获取能量:

这几乎是一个功率谱密度 (PSD) 估计器。最简单、可能是最快和经典的方法就是取输入信号的 FFT 的幅度平方。

GNU Radio Companion 具有log-power FFT块,对于输入时间采样流,它会FFT size以一定的速率为您提供向量(显然应该是 = 采样率 / 500 Hz)Frame rate;例如:

来自 GNU Radio Companion 的流程图

将这些向量保存到文件中就足够了,因为:

我一直在尝试在 GNU 中使用文件接收器块,并意识到它是二进制的。也不确定它到底包含什么。

这是数字,原始的,连续的,就像它们在记忆中一样。对此总是有一些误解,因此有一个常见问题解答条目;引用:

所有文件都是纯二进制格式。只是位。就是这样。浮点数据流以 32 位的形式保存在文件中,一个接一个。复数信号的实部为 32 位,虚部为 32 位。读回复数意味着读入 32 位,将其保存到复数数据结构的实部,然后读入接下来的 32 位作为数据结构的虚部。继续阅读数据。

因此,一种使用方法是使用 Python/ numpy,使用numpy.fromfile(file, dtype=numpy.float32),然后numpy.reshape((rows,cols))将生成的一维浮点数组转换为您想要的矩阵形状。

关于您的文件命名愿望:这是一个非常算法问题(以及为什么我认为这个问题在这里非常热门)。您可能不会自己编写一些代码;这真的不难做到。n始终采用向量并将它们写入名称与当前时间匹配的文件的 Python 块完全适用于您的应用程序。

编写积木是您在 GNU Radio 中可以做的最有趣的事情之一。我认为向您介绍 GNU Radio Guided Tutorials非常值得。它们读起来很有趣,你可以在没有硬件的情况下学习这些示例!建议按顺序进行。


几点评论:

  1. FFT 是一种良好、易于使用、快速、高效的估计器。
    但是,根据跟踪器的特性,使用滤波器组在准确性/错误概率方面可能会优于它。一旦您对 GNU Radio 和 DSP 感到满意,请查看 GNU Radio 附带的多相滤波器组。它们允许您使用一个“好的”低通滤波器来选择单个通道,并以均匀的间隔复制它们。
  2. 我非常习惯不在GNU Radio 之外进行分析。
    我发现编写另一个 python 块要容易得多,它只获取来自估计器的样本(在你的情况下,例如 log power FFT)并用它们做有用的事情,并将其输出连接到 Qt GUI频率接收器,而不是让我们说测量样本并通过 Matlab 或 R 推送它们。
    大多数时候,我正在生成一个运行我的测量流程图的 Python 文件,它将其结果保存在矢量接收器中。从那个 Python 文件中,流程图完成运行后,我立即使用 numpy 进行自己的离线分析。
    具有即时可重复的优势!

最后的评论:你说你已经有一个 SDR 设备(一个 RTL 加密狗)。那太棒了!

将其连接到您的 PC;使用 librtl/gr-osmosdrosmocom -s 1e6 -W获得 1 MHz 的带宽“显示”;调谐到发射机的频率并观察频谱。你会学到很多东西!

如果您还没有所有这些软件:只需下载并启动GNU Radio 实时 SDR 环境。即插即用!

在 GNU Radio Companion 中,只需将UHD: USRP Source替换为 osmocom 源(可以与 RTL 加密狗通信)。

于 2016-03-13T12:32:34.243 回答
1

我会对发射器进行一些研究。查找网页并(尤其是)从发射器中找到 FCC ID,然后在FCC网站上查找。然后我们可以提供更多帮助。

我们在哪里可以找到跟踪器?获取在家中使用的信号记录会很方便。

于 2016-03-13T14:03:14.403 回答