torchsig.transforms.functional.nonlinear_amplifier_table

torchsig.transforms.functional.nonlinear_amplifier_table(data: ndarray, Pin: ndarray = array([1.00000000e-10, 1.00000000e-02, 1.00000000e-01, 1.00000000e+00, 3.16227766e+00, 1.00000000e+01]), Pout: ndarray = array([1.00000000e-09, 1.00000000e-01, 1.00000000e+00, 7.94328235e+00, 9.77237221e+00, 1.00000000e+01]), Phi: ndarray = array([0., -0.03490659, -0.06981317, 0.12217305, 0.20943951, 0.40142573]), auto_scale: bool = False) ndarray[source]

A nonlinear amplifier (AM/AM, AM/PM) memoryless model that distorts an input complex signal to simulate an amplifier response, based on interpolating a table of provided power input, power output, and phase change data points.

Default very small model parameters depict a 10 dB gain amplifier with P1dB = 9.0 dBW.

Pin = 10**((np.array([-100., -20., -10., 0., 5., 10. ]) / 10)) Pout = 10**((np.array([ -90., -10., 0., 9., 9.9, 10. ]) / 10)) Phi = np.deg2rad(np.array([0., -2., -4., 7., 12., 23.]))

Parameters:
  • data (np.ndarray) – Complex valued IQ data samples.

  • Pin (np.ndarray) – Model signal power input points. Assumes sorted ascending linear values (Watts).

  • Pout (np.ndarray) – Model power out corresponding to Pin points (Watts).

  • Phi (np.ndarray) – Model output phase shift values (radians) corresponding to Pin points.

  • auto_scale (bool) – Automatically rescale output power to match full-scale peak input power prior to transform, based on peak estimates. Default False.

Raises:

ValueError – If model array arguments are not the same size.

Returns:

Nonlinearly distorted IQ data.

Return type:

np.ndarray