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

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

signal-processing - 使用GNU Radio进行FSK解调-LMLPHP

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

signal-processing - 使用GNU Radio进行FSK解调-LMLPHP

这是解调后示波器接收器的结果(也许看起来很有希望吗?):
signal-processing - 使用GNU Radio进行FSK解调-LMLPHP

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

如果有人对弄清“多相时钟同步”或“时钟恢复” MM模块的设置或“四通道解调”模块的增益有任何建议,我将不胜感激。

这是基于Marcus的答案的更新流程图的一个版本(也尝试使用多相时钟恢复的其他版本):
signal-processing - 使用GNU Radio进行FSK解调-LMLPHP

但是,我仍然无法恢复任何有意义的数据。结果是1和0的长字符串,但不是正确的字符串。我尝试调整所有块中的几乎所有设置。我以为时钟恢复可能已关闭,但我尝试了很多数值,但没有改善。
我还有什么想念的还是应该改变的?

最佳答案

因此,乍一看,我的方法如下所示:

signal-processing - 使用GNU Radio进行FSK解调-LMLPHP

这里发生的是,我们将输入信号移到频域,以使标记和空格处于+ -500 Hz,然后使用正交解调。
然后,我们可以“逻辑上”做出“签署决定”。我将在这里共享Xlating FIR的配置:

signal-processing - 使用GNU Radio进行FSK解调-LMLPHP

请注意,首先对信号进行移位,以使中心频率(介于2200和1200 Hz之间)以0Hz结束,然后通过低通滤波(增益= 1.0,阻带始于1 kHz,通带终止于1 kHz-400 Hz = 600 Hz)。此时,信号中仍然存在的实际带宽远低于采样率,因此您也可以只进行降采样而不会造成损失(将抽取设置为更高的值,例如16),但是为了分析起见,我们将“做到这一点。

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


出于乐趣和笑声,我一起单击了一个快速演示演示(GRC here):

signal-processing - 使用GNU Radio进行FSK解调-LMLPHP

这表明:

signal-processing - 使用GNU Radio进行FSK解调-LMLPHP

关于signal-processing - 使用GNU Radio进行FSK解调,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36898574/

10-12 23:53