A digital approach to clock recovery in generalized minimum shift keying