def phase_string(sig):
"""Take the angle and create a string as \pi if close to some \pi values"""
if isinstance(sig, np.ndarray):
sig = sig.ravel()[0]
if isinstance(sig, np.complex):
angle = np.angle(sig)
else:
angle = sig
fractions = [Fraction(i, 12) for i in np.arange(-12, 12 + 1)]
pi_multiples = np.array([np.pi * frac_to_float(f) for f in fractions])
strings = [frac_to_str(f) for f in fractions]
if np.min(np.abs(angle - pi_multiples)) < 1e-3:
return strings[np.argmin(np.abs(angle - pi_multiples))]
else:
return '%.2f' % angle
评论列表
文章目录