1. 总述
尽管Gnuradio提供了gfsk解调block,但是该block提供了许多貌似与解调无关的参数,block的属性窗口如下:
图中的Sample/Symbol参数指示了信号中每个码元的采样数;而sensitivity则用于指示解调的相位分辨率。而剩余四个参数(Gain Mu, Mu, Omega Relative Limit以及Freq Error)的用途就不那么清楚了。通过分析gfsk解调block的实现,我了解到该block在对gfsk信号解调之前,对信号进行了时钟和频率同步,上述四个参数即用于时钟同步。
2. 同步
无线通信的发射接收机之间往往是不同步的,包括时钟对齐、载波频率、采样等都具有一定的误差,这就导致接收机接收的信号产生了失真。因此接收机的主要工作之一就是消除这些误差,恢复原始信号。
采用不同调制手段生成的信号,其接收端的同步算法往往是不同的,对于gfsk调制的离散信号而言,最合适的同步算法就是Mueller and Muller (M&M)算法。M&M同步算法是离散时间错误追踪(discrete-time, error-tracking)的算法,其原理图如下:
其中y是接收信号,一般数字信号的解调过程即为采样和判决,判决设备的输出a即为码元符号。当然,同步误差会降低判决的正确率,因此需要同步算法对其进行消除,而对同步误差的估计可以从采样设备输出和判决设备输出中得到。M&M算法的核心即通过采样输出和判决输出的线性组合指示同步误差的大小,该指示值将被反馈给采样设备,调整采样时钟,从而逐渐消除采样误差。关于M&M算法的参考文献如下:
[1] Digital Communication Receivers Synchronization, Channel Estimation, and Signal Processing
[2] Timing Recovery in Digital Sync