comnum.envelope_series#
- comnum.envelope_series(f, n_terms=60)#
The coefficients
c_nof the output autocorrelation of a memoryless envelope nonlinearityfdriven by a circular complex Gaussian signal of unit power (P. Banelli and S. Cacopardi, IEEE Trans. Commun. 48(3), 2000, eq. 7):c_0is the useful power|α|²(Bussgang), the termnhas the input spectrum convolved2n + 1times with itself, and the coefficients sum to the output power.- Parameters:
f (callable) – the complex output envelope
A(r) exp(jΦ(r))of an input enveloper(vectorised over a NumPy array).n_terms (int) – the number of coefficients.
- Returns:
c_0, …, c_{n_terms - 1}.- Return type:
- Raises:
ValueError – for an input that is not an array of numbers of the expected shape.
Examples
>>> import comnum, numpy as np >>> c = comnum.envelope_series(lambda r: np.minimum(r, np.sqrt(2.0)), 60) # 3 dB IBO >>> round(float(c.sum()), 4), round(float(1 - np.exp(-2.0)), 4) (0.8647, 0.8647)