在 GnuRadio 中生成 FSK 调制信号

问题描述

我正在尝试重新创建来自遥控汽车玩具的信号并使用 HackRf 和 GNU-Radio 对其进行控制。

我已确定以下内容

  • 控制器在 2.463 GHz 上运行
  • 带宽为1MHz
    • 逻辑“1”2.4635 GHz
    • 逻辑“0”2.4625 GHz
    • 波特率 1e6 采样
  • 我用 Quadrature Demod block 解调了信号,并提取了 1 和 0 的序列
  • 我创建了二进制文件,其中存储了我想要传输的 0 和 1 模式。

现在我想根据上面的参数重新创建这个信号。通过一些研究,我想出了以下传输设置:

enter image description here

但是我有几个问题不知道如何解决

  1. 基于 this paper,我发现调制指数、采样率和频率之间的差异之间存在关系(那里的屏幕截图):

enter image description here


基于此,我将采样率设置为 2M,BT 设置为 0.5,但我不确定这是否正确。

  1. 我也不太明白如何调整其他参数及其含义。

如果有人能就如何调整这些东西给出直观的解释,我将不胜感激。

编辑:

我还实现了基于 Tutorial from GNURadio about FSK 的新原理图:

Not working solution for FSK

用其他 HackRf 嗅探我找不到任何传输的信号,你能告诉我这个设置有什么问题吗或者重新创建所需信号的最佳方法是什么?

解决方法

首先,您项目的目标是什么?如果只是为了模仿您的 RC 控制器在做什么,您可以将接收到的位存储到压缩字节中并写入一个文件。但是,我首先要彻底分析您的遥控玩具的信号: a) 音频频率是多少,或者至少高音和低音有什么区别?有两个以上的音调吗?你怎么知道是FSK? b) 位时间是多少,即您可以在转换之间找到的最短周期?这决定了波特率。 在没有文档的情况下,在尝试传输任何有意义的内容之前,您需要在接收端进行大量实验。也许您可以在 RC 文献中找到有关它的内容。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...