// normalize for far-field if requested
if (ff):
X -= self.center
Xn = np.sqrt(np.sum(X**2, axis=0))
X *= constants.get("ffdist")/Xn
X += self.center
D = distance(self.R, X)
omega = 2 * np.pi * frequency
if attn:
// TO DO 1: This will mean slightly different absolute value for
// every entry, even within the same steering vector. Perhaps a
// better paradigm is far-field with phase carrier.
return 1. / (4 * np.pi) / D * np.exp(-1j * omega * D / constants.get("c"))
else:
return np.exp(-1j * omega * D / constants.get("c"))
def response(self, phi_list, frequency):