使用 GNU Radio 进行 FSK 解调

Posted

技术标签:

【中文标题】使用 GNU Radio 进行 FSK 解调【英文标题】:FSK demodulation with GNU Radio 【发布时间】:2016-08-22 06:25:35 【问题描述】:

我正在尝试使用 GNU Radio Companion 解调信号。信号为 FSK(频移键控),标记和空间频率分别为 1200 和 2200 Hz。 信号文本数据中的数据由名为GeoStamp Audio 的设备生成。该设备生成实时输入的 GPS 数据音频,并且还可以解码该音频。我有音频的解码文本版本供参考。

我在 GNU Radio 中设置了一个流程图(见下文),它运行时没有错误,但我尝试了所有变体,我仍然无法获取数据。

    流程图的输出应该是二进制(1 和 0),我以后可以将其转换为普通文本,对吗? 以我的方式输入 wav 音频文件是否正确? 如何从解调信号中恢复数据 - 我的流程图中是否遗漏了某些内容?

这是 wav 音频文件解调之前的 FFT 图:

这是解调后示波器接收器的结果(可能看起来很有希望?):

更新(2016 年 8 月 2 日):我仍在处理这个问题(偶尔),但遗憾的是仍然无法检索数据。结果是一串看起来很有希望的 1 和 0,但没有什么可理解的。

如果有人对确定多相时钟同步或时钟恢复 MM 模块的设置或 Quad Demod 模块的增益有任何建议,我将不胜感激。

这是基于 Marcus 的回答的更新流程图的一个版本(也尝试使用多相时钟恢复的其他版本):

但是,我仍然无法恢复有意义的数据。结果是一长串 1 和 0,但不是正确的。我已经尝试调整几乎所有块中的所有设置。我以为时钟恢复可能已关闭,但我尝试了多种值,但没有任何改善。

【问题讨论】:

您不应该将 fft sink 连接到正交解调器的输出,而是连接到输入;这只会将符号率显示为周期性。然而,正交解调输出的范围图会更有趣。 哦,是的,我只是在试验一下,看看解调的结果是什么样子的。解调后的示波器图看起来很有趣,我会编辑我的帖子来添加它。 有趣!是的,我会说,这很有希望。在开发时,我会将解调器后示波器接收器的输出与音频输入的瀑布接收器进行比较。 顺便说一下,把float的虚部输入留给complex unconnected。不过,对于您的分析案例来说,应该不会有太大的不同。 【参考方案1】:

所以,乍一看,我的方法看起来是这样的:

这里发生的是我们获取输入,在频域中移动它,使标记和空间处于 +-500 Hz,然后使用正交解调。 “逻辑上”,我们就可以做出一个“签名决定”。我将在这里分享 Xlating FIR 的配置:

请注意,信号首先被偏移,使中心频率(2200 和 1200 Hz 之间的中间)最终达到 0Hz,然后通过低通滤波(增益 = 1.0,阻带从 1 kHz 开始,通带在 1 kHz - 400 赫兹 = 600 赫兹)。此时,信号中仍然存在的实际带宽远低于采样率,因此您也可以不损失地进行下采样(将抽取设置为更高的值,例如 16),但为了分析起见,我们不会不要那样做。

时间汇现在应该显示更好的值。看看边缘;它们可能不是非常陡峭。对于时钟同步,我建议只尝试多相时钟恢复而不是 Müller & Mueller;选择任何“有点圆”的脉冲形状都可以。


为了好玩和傻笑,我点击了一个快速演示演示 (GRC here):

其中显示:

【讨论】:

哇!非常感谢您提供的所有详细信息,这解决了我遇到的一些令人困惑的问题。出于某种原因,当我使用多相时钟同步时,GRC 每次都说“Python 意外退出”,所以我正在尝试 MM 恢复时钟。时间汇现在看起来非常有希望。试图弄清楚如何根据this site读取文件接收器。 由于某种原因,我仍然无法恢复实际数据。我的结果似乎是在正确的道路上,但二进制值是无稽之谈。我不知道这是我的处理还是信号。 问题可能只是你不知道你的字节边界在哪里,对吧?或者也许他们正在使用一些曼彻斯特编码或类似的东西?频道代码? 一定有类似的问题。在任何设备的文档中都没有提到编码。我猜除了不断调整设置直到输出包含它应该包含的字符之外,现在不太确定该怎么做。感谢您的帮助。 通常,原始数据不用于 PSK 或 FSK 调制,因为原始数据通常具有较长的零或一序列,这是不受欢迎的。通常有某种编码,例如曼彻斯特编码、差分、带有白化伪随机序列的 XORing、比特填充等。

以上是关于使用 GNU Radio 进行 FSK 解调的主要内容,如果未能解决你的问题,请参考以下文章

实验三 数字调制解调实验2ASK--2FSK思路(GZHU)

自适应FSK数字FSK调制信号的自适应解调的MATLAB仿真

数字信号调制基于matlab GUI FSK调制+解调含Matlab源码 645期

毕业设计/Matlab项目调幅AM/调频FM/DPSK/FSK的调制解调matlab界面

数字信号调制基于matlab GUI 2ASK+2FSK+2PSK调制解调仿真含Matlab源码 1504期

数字信号调制基于多进制数字频率调制(4FSK)matlab源码