使用GNU Radio进行FSK解调

时间:2016-04-27 18:56:14

标签: signal-processing gnuradio gnuradio-companion

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

我已经在GNU Radio中设置了一个流程图(见下文),它运行没有错误,但是我尝试过的所有变化,我仍然无法获取数据。所以我有几个问题:
1)流程图的输出应该是二进制(1s和0s),我可以稍后将其转换为普通文本,对吧? 2)以我的方式输入wav音频文件是否正确?
3)如何从解调信号中恢复数据 - 我在流程图中遗漏了什么?

Flow Graph

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

FFT Plot before Demod

这是解调后范围下沉的结果(可能看起来很有希望?): Scope Sink after Demod

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

如果有人建议找出多相时钟同步或时钟恢复MM模块的设置,或Quad Demod模块的增益,我将非常感激。

以下是基于Marcus答案的更新流程图的一个版本(还尝试了其他版本的多相时钟恢复): enter image description here

但是,我仍然无法恢复任何有意义的数据。结果是1和0的长字符串,但不是正确的字符串。我试过调整几乎所有块中的所有设置。我想也许时钟恢复已经关闭了,但我尝试了各种各样的价值而没有任何改进 还有什么我缺少或应该改变吗?

1 个答案:

答案 0 :(得分:12)

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

Flow graph of analysis approach

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

Parametrization of the Xlating FIR Filter

请注意,首先移位信号,使中心频率(2200和1200 Hz之间)以0Hz结束,然后通过低通滤波(增益= 1.0,阻带从1 kHz开始,Passband结束于1 kHz - 400 Hz = 600 Hz)。此时,信号中仍然存在的实际带宽远低于采样率,因此您可能只是在没有损失的情况下进行下采样(将抽取设置为更高的值,例如16),但为了分析,我们赢了“那样做。

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

<小时/> 为了好玩和咯咯笑,我点了一个快速演示demod(GRC here):

Demod demo

显示:

demod demo: Demonstration of demod demo demo output