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

标签 scapy sniffer gnuradio z-wave gnuradio-companion

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

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

  • 9.6 kbps
  • 40kbps
  • 100kbps

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

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

  • 频率(欧盟):868.4 MHz
  • 调制方式:GFSK

还有我的 GRC 图:

GRC flow graph

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

最佳答案

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

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

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

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

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

关于scapy - 在 Gnu-Radio 流程图中管理多个信号速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31850928/

相关文章:

python - 如何读取 scapy 的 DNS 响应来获取解析域的 IP 地址?

python - 在 Python 脚本末尾生成 pcap 文件

encoding - 串接时的 scapy 编码

windows - 如何在 Windows 中挂接 TCP 堆栈以嗅探和修改数据包?

python - 如何在 python 中嗅探 HTTP 数据包?

python - 在 jython 中导入 python 模块

c - 如何捕获传入的数据包?

signal-processing - GNU radio DQPSK 误码率

ubuntu - Ubuntu 16.04 上的 GNURadio 中未安装 WX block

python - 社区电台上的 GNU Radio