def fm_detect(X, prev, shift): vals = array.array('f') for x in X: y = shift + cmath.phase(x * prev.conjugate()) / math.pi vals.append(y) prev = x return vals