Contents

comm.MemorylessNonlinearity System object

Package: comm

Apply memoryless nonlinearity to input signal

Description

The MemorylessNonlinearity object applies a memoryless nonlinearity to a complex, baseband signal. You can use the object to model radio frequency (RF) impairments to a signal at the receiver.

To apply memoryless nonlinearity to the input signal:

  1. Define and set up your memoryless nonlinearity object. See Construction.

  2. Call step to apply memoryless nonlinearity according to the properties of comm.MemorylessNonlinearity. The behavior of step is specific to each object in the toolbox.

Construction

H = comm.MemorylessNonlinearity creates a memoryless nonlinearity System object™, H. This object models receiver radio frequency (RF) impairments.

H = comm.MemorylessNonlinearity(Name,Value) creates a memoryless nonlinearity object, H, with each specified property set to the specified value. You can specify additional name-value pair arguments in any order as (Name1,Value1,...,NameN,ValueN).

Properties

Method

Method used to model nonlinearity

Specify the nonlinearity method as one of Cubic polynomial | Hyperbolic tangent | Saleh model | Ghorbani model | Rapp model. The default is Cubic polynomial. This property is non-tunable.

InputScaling

Scale factor applied to input signal

Specify the scale factor in decibels. The object applies this factor to the input signal as a real scalar value of double- or single-precision data type. The default is 0. This property applies when you set the Method property to Saleh model or Ghorbani model. This property is tunable.

LinearGain

Linear gain applied to output signal

Specify the linear gain (in decibels) that the object applies to the output signal as a real scalar value of double- or single-precision data type. The default is 0. This property applies when you set the Method property to Cubic polynomial, Hyperbolic tangent, or Rapp model. This property is tunable.

IIP3

Third-order input intercept point

Specify the third-order input intercept point (in decibels relative to a milliwatt) as a real scalar value of double- or single-precision data type. The default is 30. This property applies when you set the Method property to Cubic polynomial or Hyperbolic tangent. This property is tunable.

AMPMConversion

AM/PM conversion factor

Specify the AM/PM conversion factor (in degrees per decibel) as a real scalar value of double- or single-precision data type. The default is 10. This property applies when you set the Method property to Cubic polynomial or Hyperbolic tangent. This property is tunable.

AMAMParameters

AM/AM conversion parameters

Specify the AM/AM conversion parameters that the object uses to compute the amplitude gain for an input signal as a real vector of double- or single-precision data type. The default is [2.1587 1.1517] for the Saleh model and [8.1081 1.5413 6.5202 -0.0718] for the Ghorbani model.

This property applies when you set the Method property to Saleh model or Ghorbani model.

When you set the Method property to Saleh model, this property is a two-element vector that specifies alpha and beta values. Otherwise, this property is a four-element vector that specifies x1, x2, x3, and x4 values. This property is tunable.

AMPMParameters

AM/PM conversion parameters

Specify the AM/PM conversion parameters used to compute the phase change for an input signal as a real vector of double- or single-precision data type. The default is [4.0033 9.1040] for the Saleh model and [4.6645 2.0965 10.88 -0.003] for the Ghorbani model.

This property applies when you set the Method property to Saleh model or Ghorbani model.

When you set the Method property to Saleh model, this property is a two-element vector that specifies alpha and beta values. Otherwise, this property is a four-element vector that specifies y1, y2, y3, and y4 values. This property is tunable.

PowerLowerLimit

Lower input power limit

Specify the minimum input power (in decibels relative to a milliwatt) for which AM/PM conversion scales linearly with input power value. The default is 10. Below this value, the phase shift resulting from AM/PM conversion is zero. You must set this property to a real scalar value of double- or single-precision data type. This property applies when you set the Method property to Cubic polynomial or Hyperbolic tangent. This property is tunable.

PowerUpperLimit

Upper input power limit

Specify the maximum input power (in decibels relative to a milliwatt) for which AM/PM conversion scales linearly with input power value. The default is inf. Above this value, the phase shift resulting from AM/PM conversion is constant. You must set the PowerUpperLimit property to a real scalar value, which is greater than the PowerLowerLimit property and of double- or single-precision data type. This property applies when you set the Method property to Cubic polynomial or Hyperbolic tangent.This property is tunable.

OutputScaling

Scale factor applied to output signal

Specify the scale factor (in decibels) that the object applies to the output signal as a real scalar value of double- or single-precision data type. The default is 0. This property applies when you set the Method property to Saleh model or Ghorbani model. This property is tunable.

Smoothness

Smoothness factor

Specify the smoothness factor as a real scalar value of double- or single-precision data type. The default is 0.5. This property applies when you set the Method property to Rapp model. This property is tunable.

OutputSaturationLevel

Output saturation level

Specify the output saturation level as a real scalar value of double- or single-precision data type. This property applies when you set the Method property to Rapp model. The default is 1. This property is tunable.

Methods

cloneCreate memoryless nonlinearity object with same property values
getNumInputsNumber of expected inputs to step method
getNumOutputsNumber of outputs from step method
isLockedLocked status for input attributes and nontunable properties
releaseAllow property value and input characteristics changes
stepApply memoryless nonlinearity to input signal

Examples

Apply "Saleh model" nonlinearity to a 16-QAM signal.

    % Create 16-QAM modulator
    hMod = comm.RectangularQAMModulator('ModulationOrder',16,...
                'NormalizationMethod','Average power', 'AveragePower',1e-2);
    % Create Memoryless Nonlinearity System object
    hNonlin = comm.MemorylessNonlinearity('Method', 'Saleh model');
    % Generate modulated symbols
    modData = step(hMod, randi([0 15], 1000, 1));
    % Apply Nonlinearity model and plot the result
    y = step(hNonlin, modData);
    scatterplot(y)

Algorithms

This object implements the algorithm, inputs, and outputs described on the Memoryless Nonlinearity block reference page. The object properties correspond to the block parameters.

Was this topic helpful?