在 Gnu-Radio 流图中管理多个信号速度

Manage multiple signal speed in a Gnu-Radio flow graph

我目前正在研究 Z-Wave 协议。 使用我的 HackRF One 和 scapy-radio 我尝试嗅探两个设备之间的通信。

但是设备可以以不同的速度传输:

由于我只能以 40 kbps 的速度解码通信,我想我的图表无法管理其他速度。

关于 Z-Wave 通信的一些信息:

还有我的 GRC 图:

所以我的问题是:如何修改图形以解码和嗅探 9,6 和 100 kbps 信号?

作为一种简单的解决方法,我建议从 HackRF 获取输入流并将其连接到 3 个不同的解码器,每个解码器都具有所需的参数。然后每个 Packet sink 区块将在同一个 Socket PDU 区块发布消息。

我不熟悉 Z-Wave,但如果 3 种不同的数据速率共享相同的频谱带宽,那么您就没有更多的工作要做,您就完成了。 但如果他们这样做了,我相信这对你的情况来说是正确的,你需要一些额外的步骤。

首先,您必须以 Z-Wave 所需的最大采样率对时域信号进行采样。例如,如果对于 3 种不同的数据速率,频谱带宽为 4、2 和 1 MHz,则您必须使用 4e6 samples/s 进行采样。然后为每个不同的流执行 SRC(源速率转换),也称为重新采样。因此,对于第二速率,您可能希望将 4e6 samples/s 的输入流重新采样为 2e6 samples/s。 然后在相应的解码过程中连接重新采样的流

                                              +---------------+
                                              |Rest blocks 0  |
              +--------------------------------->             |
              |                               |               |
              |                               +---------------+
              |                                                
 +------------+        +--------------+           +---------------+
 |            |        |              |           |Rest blocks 1  |
 | Source     +----------> Resampler 1+------------->             |
 |            |        |              |           |               |
 +------------+        +--------------+           +---------------+
              |                                                
              |    +--------------+           +---------------+
              |    |              |           |Rest blocks 2  |
              +-----> Resampler 2+-------------->             |
                   |              |           |               |
                   +--------------+           +---------------+

GNU Radio 已经附带了一些重采样器,您可以开始使用 Rational Resampler 块。