Skip to content

NI RFmx SpecAn DFD Configuration Functions

Alex Starche edited this page Feb 28, 2022 · 4 revisions

DFD Configuration Functions

RFmxSpecAn_DPDCfgMeasurementInterval

int32 __stdcall RFmxSpecAn_DPDCfgMeasurementInterval (niRFmxInstrHandle instrumentHandle, char selectorString[], float64 measurementInterval);

Purpose

Specifies the duration, in seconds, of the reference waveform considered for the DPD measurement. When the reference waveform contains an idle duration, the DPD measurement neglects the idle samples in the reference waveform leading up to the start of the first active portion of the reference waveform.

Parameters

Input
Name Type Description
instrumentHandle niRFmxInstrHandle Identifies the RFmx session. You can obtain this parameter from the RFmxSpecAn_Initialize) function.
selectorString char[] Comprises the signal name. If you do not specify the signal name, the default signal instance is used.

Example:

""

"signal::sig1"

You can use the RFmxSpecAn_BuildSignalString) function to build the selector string).
measurementInterval float64 Specifies the acquisition time, in seconds, for the DPD measurement. This parameter also specifies the duration of the reference waveform considered for the DPD measurement. When the reference waveform contains an idle duration, the DPD measurement neglects the idle samples in the reference waveform leading up to the start of the first active portion of the reference waveform.

Return Value

Name Type Description
status int32 Returns the status code of this operation. The status code either indicates success or describes an error or warning condition. Examine the status code from each call to an RFmx function to determine if an error has occurred.

To obtain a text description of the status code and additional information about the error condition, call the RFmxSpecAn_GetError) function.

The general meaning of the status code is as follows:
Value Meaning
0 Success
Positive Values Warnings
Negative Values Errors

RFmxSpecAn_DPDCfgMeasurementSampleRate

int32 __stdcall RFmxSpecAn_DPDCfgMeasurementSampleRate (niRFmxInstrHandle instrumentHandle, char selectorString[], int32 sampleRateMode, float64 sampleRate);

Purpose

Configures the acquisition sample rate, in samples per second (S/s), for the DPD measurement.

Parameters

Input
Name Type Description
instrumentHandle niRFmxInstrHandle Identifies the RFmx session. You can obtain this parameter from the RFmxSpecAn_Initialize) function.
selectorString char[] Comprises the signal name. If you do not specify the signal name, the default signal instance is used.

Example:

""

"signal::sig1"

You can use the RFmxSpecAn_BuildSignalString) function to build the selector string).
sampleRateMode int32 Specifies the acquisition sample rate configuration mode.
RFMXSPECAN_VAL_DPD_MEASUREMENT_SAMPLE_RATE_MODE_USER (0) The acquisition sample rate is defined by the value of the sampleRate parameter.
RFMXSPECAN_VAL_DPD_MEASUREMENT_SAMPLE_RATE_MODE_REFERENCE_WAVEFORM (1) The acquisition sample rate is set to match the sample rate of the reference waveform.
sampleRate float64 Specifies the acquisition sample rate,in S/s, when you set the sampleRateMode parameter to RFMXSPECAN_VAL_DPD_MEASUREMENT_SAMPLE_RATE_MODE_USER.

Return Value

Name Type Description
status int32 Returns the status code of this operation. The status code either indicates success or describes an error or warning condition. Examine the status code from each call to an RFmx function to determine if an error has occurred.

To obtain a text description of the status code and additional information about the error condition, call the RFmxSpecAn_GetError) function.

The general meaning of the status code is as follows:
Value Meaning
0 Success
Positive Values Warnings
Negative Values Errors

RFmxSpecAn_DPDCfgSynchronizationMethod

int32 __stdcall RFmxSpecAn_DPDCfgSynchronizationMethod (niRFmxInstrHandle instrumentHandle, char selectorString[], int32 synchronizationMethod);

Purpose

Configures the synchronization method used to synchronize the reference waveform and acquired waveform.

Parameters

Input
Name Type Description
instrumentHandle niRFmxInstrHandle Identifies the RFmx session. You can obtain this parameter from the RFmxSpecAn_Initialize) function.
selectorString char[] Comprises the signal name. If you do not specify the signal name, the default signal instance is used.

Example:

""

"signal::sig1"

You can use the RFmxSpecAn_BuildSignalString) function to build the selector string).
synchronizationMethod int32 Specifies the method used for synchronization of acquired waveform with reference waveform.
RFMXSPECAN_VAL_DPD_SYNCHRONIZATION_METHOD_DIRECT (0) Synchronizes the acquired and reference waveforms assuming that sample rate is sufficient to prevent aliasing in intermediate operations. This method is recommended when the measurement sampling rate is high.
RFMXSPECAN_VAL_DPD_SYNCHRONIZATION_METHOD_ALIAS_PROTECTED (1) Synchronizes the acquired and reference waveforms while ascertaining that intermediate operations are not impacted by aliasing. This method is recommended for non-contiguous carriers separated by a large gap, and/or when the measurement sampling rate is low. Refer to DPD concept help for more information.

Return Value

Name Type Description
status int32 Returns the status code of this operation. The status code either indicates success or describes an error or warning condition. Examine the status code from each call to an RFmx function to determine if an error has occurred.

To obtain a text description of the status code and additional information about the error condition, call the RFmxSpecAn_GetError) function.

The general meaning of the status code is as follows:
Value Meaning
0 Success
Positive Values Warnings
Negative Values Errors

RFmxSpecAn_DPDCfgDUTAverageInputPower

int32 __stdcall RFmxSpecAn_DPDCfgDUTAverageInputPower (niRFmxInstrHandle instrumentHandle, char selectorString[], float64 DUTAverageInputPower);

Purpose

Configures the average power, in dBm, of the signal at the device under test (DUT) input port.

Parameters

Input
Name Type Description
instrumentHandle niRFmxInstrHandle Identifies the RFmx session. You can obtain this parameter from the RFmxSpecAn_Initialize) function.
selectorString char[] Comprises the signal name. If you do not specify the signal name, the default signal instance is used.

Example:

""

"signal::sig1"

You can use the RFmxSpecAn_BuildSignalString) function to build the selector string).
DUTAverageInputPower float64 Specifies the average power, in dBm, of the signal at the DUT input port.

Return Value

Name Type Description
status int32 Returns the status code of this operation. The status code either indicates success or describes an error or warning condition. Examine the status code from each call to an RFmx function to determine if an error has occurred.

To obtain a text description of the status code and additional information about the error condition, call the RFmxSpecAn_GetError) function.

The general meaning of the status code is as follows:
Value Meaning
0 Success
Positive Values Warnings
Negative Values Errors

RFmxSpecAn_DPDCfgReferenceWaveform

int32 __stdcall RFmxSpecAn_DPDCfgReferenceWaveform (niRFmxInstrHandle instrumentHandle, char selectorString[], float64 x0, float64 dx, NIComplexSingle referenceWaveform[], int32 arraySize, int32 idleDurationPresent, int32 signalType);

Purpose

Configures the complex baseband equivalent of the RF signal applied at the input port of the device under test (DUT) when performing the DPD measurement.

Parameters

Input
Name Type Description
instrumentHandle niRFmxInstrHandle Identifies the RFmx session. You can obtain this parameter from the RFmxSpecAn_Initialize) function.
selectorString char[] Comprises the signal name. If you do not specify the signal name, the default signal instance is used.

Example:

""

"signal::sig1"

You can use the RFmxSpecAn_BuildSignalString) function to build the selector string).
x0 float64 Specifies the start time, in seconds.
dx float64 Specifies the sample duration, in seconds.
referenceWaveform NIComplexSingle[] Specifies the complex baseband samples, as an array of voltage values.
arraySize int32 Specifies the size of the referenceWaveform array.
idleDurationPresent int32 Specifies whether the reference waveform contains an idle duration.
RFMXSPECAN_VAL_DPD_REFERENCE_WAVEFORM_IDLE_DURATION_PRESENT_FALSE (0) The reference waveform does not contain an idle duration.
RFMXSPECAN_VAL_DPD_REFERENCE_WAVEFORM_IDLE_DURATION_PRESENT_TRUE (1) The reference waveform contains an idle duration.
signalType int32 Specifies whether the reference waveform is a modulated signal or tones.
RFMXSPECAN_VAL_DPD_SIGNAL_TYPE_MODULATED (0) The reference waveform is a cellular or connectivity standard signal.
RFMXSPECAN_VAL_DPD_SIGNAL_TYPE_TONES (1) The reference waveform is a continuous signal of one or more tones.

Return Value

Name Type Description
status int32 Returns the status code of this operation. The status code either indicates success or describes an error or warning condition. Examine the status code from each call to an RFmx function to determine if an error has occurred.

To obtain a text description of the status code and additional information about the error condition, call the RFmxSpecAn_GetError) function.

The general meaning of the status code is as follows:
Value Meaning
0 Success
Positive Values Warnings
Negative Values Errors

RFmxSpecAn_DPDCfgDPDModel

int32 __stdcall RFmxSpecAn_DPDCfgDPDModel (niRFmxInstrHandle instrumentHandle, char selectorString[], int32 DPDModel);

Purpose

Configures the DPD model used by the DPD measurement.

Parameters

Input
Name Type Description
instrumentHandle niRFmxInstrHandle Identifies the RFmx session. You can obtain this parameter from the RFmxSpecAn_Initialize) function.
selectorString char[] Comprises the signal name. If you do not specify the signal name, the default signal instance is used.

Example:

""

"signal::sig1"

You can use the RFmxSpecAn_BuildSignalString) function to build the selector string).
DPDModel int32 Specifies the DPD model used by the DPD measurement.
RFMXSPECAN_VAL_DPD_APPLY_DPD_USER_DPD_MODEL_LOOKUP_TABLE (0) This model computes the complex gain coefficients applied to linearize systems with negligible memory effects.
RFMXSPECAN_VAL_DPD_APPLY_DPD_USER_DPD_MODEL_MEMORY_POLYNOMIAL (1) This model computes the memory polynomial predistortion coefficients used to linearize systems with moderate memory effects.
RFMXSPECAN_VAL_DPD_APPLY_DPD_USER_DPD_MODEL_GENERALIZED_MEMORY_POLYNOMIAL (2) This model computes the generalized memory polynomial predistortion coefficients used to linearize systems with significant memory effects.

Return Value

Name Type Description
status int32 Returns the status code of this operation. The status code either indicates success or describes an error or warning condition. Examine the status code from each call to an RFmx function to determine if an error has occurred.

To obtain a text description of the status code and additional information about the error condition, call the RFmxSpecAn_GetError) function.

The general meaning of the status code is as follows:
Value Meaning
0 Success
Positive Values Warnings
Negative Values Errors

RFmxSpecAn_DPDCfgLookupTableStepSize

int32 __stdcall RFmxSpecAn_DPDCfgLookupTableStepSize (niRFmxInstrHandle instrumentHandle, char selectorString[], float64 stepSize);

Purpose

Configures the step size, in dB, of input power levels in the predistortion lookup table when you set the RFMXSPECAN_ATTR_DPD_MODEL) attribute to RFMXSPECAN_VAL_DPD_MODEL_LOOKUP_TABLE.

Parameters

Input
Name Type Description
instrumentHandle niRFmxInstrHandle Identifies the RFmx session. You can obtain this parameter from the RFmxSpecAn_Initialize) function.
selectorString char[] Comprises the signal name. If you do not specify the signal name, the default signal instance is used.

Example:

""

"signal::sig1"

You can use the RFmxSpecAn_BuildSignalString) function to build the selector string).
stepSize float64 Specifies the step size, in dB, of the input power levels in the predistortion lookup table when you set the RFMXSPECAN_ATTR_DPD_MODEL attribute to RFMXSPECAN_VAL_DPD_MODEL_LOOKUP_TABLE.

Return Value

Name Type Description
status int32 Returns the status code of this operation. The status code either indicates success or describes an error or warning condition. Examine the status code from each call to an RFmx function to determine if an error has occurred.

To obtain a text description of the status code and additional information about the error condition, call the RFmxSpecAn_GetError) function.

The general meaning of the status code is as follows:
Value Meaning
0 Success
Positive Values Warnings
Negative Values Errors

RFmxSpecAn_DPDCfgLookupTableAMToAMCurveFit

int32 __stdcall RFmxSpecAn_DPDCfgLookupTableAMToAMCurveFit (niRFmxInstrHandle instrumentHandle, char selectorString[], int32 AMToAMCurveFitOrder, int32 AMToAMCurveFitType);

Purpose

Configures the degree of the polynomial and the approximation method used for polynomial approximation of the AM-to-AM response of the device under test (DUT) when you set the RFMXSPECAN_ATTR_DPD_MODEL) attribute to RFMXSPECAN_VAL_DPD_MODEL_LOOKUP_TABLE.

Parameters

Input
Name Type Description
instrumentHandle niRFmxInstrHandle Identifies the RFmx session. You can obtain this parameter from the RFmxSpecAn_Initialize) function.
selectorString char[] Comprises the signal name. If you do not specify the signal name, the default signal instance is used.

Example:

""

"signal::sig1"

You can use the RFmxSpecAn_BuildSignalString) function to build the selector string).
AMToAMCurveFitOrder int32 Specifies the degree of the polynomial used to approximate the AM-to-AM characteristic of the DUT when you set the RFMXSPECAN_ATTR_DPD_MODEL attribute to RFMXSPECAN_VAL_DPD_MODEL_LOOKUP_TABLE.
AMToAMCurveFitType int32 Specifies the cost-function for polynomial approximation of the AM-to-AM characteristic of the DUT when you set the RFMXSPECAN_ATTR_DPD_MODEL attribute to RFMXSPECAN_VAL_DPD_MODEL_LOOKUP_TABLE.
RFMXSPECAN_VAL_DPD_LOOKUP_TABLE_AM_TO_AM_CURVE_FIT_TYPE_LEAST_SQUARE (0) Minimizes the energy of the polynomial approximation error.
RFMXSPECAN_VAL_DPD_LOOKUP_TABLE_AM_TO_AM_CURVE_FIT_TYPE_LEAST_ABSOLUTE_RESIDUAL (1) Minimizes the magnitude of the polynomial approximation error.
RFMXSPECAN_VAL_DPD_LOOKUP_TABLE_AM_TO_AM_CURVE_FIT_TYPE_BISQUARE (2) Excludes the effect of data outliers while minimizing the energy of the polynomial approximation error.

Return Value

Name Type Description
status int32 Returns the status code of this operation. The status code either indicates success or describes an error or warning condition. Examine the status code from each call to an RFmx function to determine if an error has occurred.

To obtain a text description of the status code and additional information about the error condition, call the RFmxSpecAn_GetError) function.

The general meaning of the status code is as follows:
Value Meaning
0 Success
Positive Values Warnings
Negative Values Errors

RFmxSpecAn_DPDCfgLookupTableAMToPMCurveFit

int32 __stdcall RFmxSpecAn_DPDCfgLookupTableAMToPMCurveFit (niRFmxInstrHandle instrumentHandle, char selectorString[], int32 AMToPMCurveFitOrder, int32 AMToPMCurveFitType);

Purpose

Configures the degree of the polynomial and the approximation method used for polynomial approximation of the AM-to-PM response of the device under test (DUT) when you set the RFMXSPECAN_ATTR_DPD_MODEL) attribute to RFMXSPECAN_VAL_DPD_MODEL_LOOKUP_TABLE.

Parameters

Input
Name Type Description
instrumentHandle niRFmxInstrHandle Identifies the RFmx session. You can obtain this parameter from the RFmxSpecAn_Initialize) function.
selectorString char[] Comprises the signal name. If you do not specify the signal name, the default signal instance is used.

Example:

""

"signal::sig1"

You can use the RFmxSpecAn_BuildSignalString) function to build the selector string).
AMToPMCurveFitOrder int32 Specifies the degree of the polynomial used to approximate the AM-to-PM characteristic of the device under test when you set the RFMXSPECAN_ATTR_DPD_MODEL attribute to RFMXSPECAN_VAL_DPD_MODEL_LOOKUP_TABLE.
AMToPMCurveFitType int32 Specifies the cost-function for polynomial approximation of the AM-to-PM characteristic of the device under test when you set the RFMXSPECAN_ATTR_DPD_MODEL attribute to RFMXSPECAN_VAL_DPD_MODEL_LOOKUP_TABLE.
RFMXSPECAN_VAL_DPD_LOOKUP_TABLE_AM_TO_PM_CURVE_FIT_TYPE_LEAST_SQUARE (0) Minimizes the energy of the polynomial approximation error.
RFMXSPECAN_VAL_DPD_LOOKUP_TABLE_AM_TO_PM_CURVE_FIT_TYPE_LEAST_ABSOLUTE_RESIDUAL (1) Minimizes the magnitude of the polynomial approximation error.
RFMXSPECAN_VAL_DPD_LOOKUP_TABLE_AM_TO_PM_CURVE_FIT_TYPE_BISQUARE (2) Excludes the effect of data outliers while minimizing the energy of the polynomial approximation error.

Return Value

Name Type Description
status int32 Returns the status code of this operation. The status code either indicates success or describes an error or warning condition. Examine the status code from each call to an RFmx function to determine if an error has occurred.

To obtain a text description of the status code and additional information about the error condition, call the RFmxSpecAn_GetError) function.

The general meaning of the status code is as follows:
Value Meaning
0 Success
Positive Values Warnings
Negative Values Errors

RFmxSpecAn_DPDCfgLookupTableThreshold

int32 __stdcall RFmxSpecAn_DPDCfgLookupTableThreshold (niRFmxInstrHandle instrumentHandle, char selectorString[], int32 thresholdEnabled, float64 thresholdLevel, int32 thresholdType);

Purpose

Configures the threshold level for the samples considered for the DPD measurement when you set the RFMXSPECAN_ATTR_DPD_MODEL) attribute to RFMXSPECAN_VAL_DPD_MODEL_LOOKUP_TABLE. Set the thresholdEnabled parameter to RFMXSPECAN_VAL_DPD_LOOKUP_TABLE_THRESHOLD_ENABLED_TRUE to reject low-power signals affected by noise and distortion.

Parameters

Input
Name Type Description
instrumentHandle niRFmxInstrHandle Identifies the RFmx session. You can obtain this parameter from the RFmxSpecAn_Initialize) function.
selectorString char[] Comprises the signal name. If you do not specify the signal name, the default signal instance is used.

Example:

""

"signal::sig1"

You can use the RFmxSpecAn_BuildSignalString) function to build the selector string).
thresholdEnabled int32 Specifies whether to enable thresholding of the acquired samples.
RFMXSPECAN_VAL_DPD_LOOKUP_TABLE_THRESHOLD_ENABLED_FALSE (0) All samples are considered for the measurement.
RFMXSPECAN_VAL_DPD_LOOKUP_TABLE_THRESHOLD_ENABLED_TRUE (1) The samples above the threshold level specified in the thresholdLevel parameter are considered for the measurement.
thresholdLevel float64 Specifies either the relative or absolute threshold power level based on the value of the thresholdType parameter.
thresholdType int32 Specifies the reference for the power level used for thresholding.
RFMXSPECAN_VAL_DPD_LOOKUP_TABLE_THRESHOLD_TYPE_RELATIVE (0) The threshold of the acquired samples is relative to the peak power, in dB.
RFMXSPECAN_VAL_DPD_LOOKUP_TABLE_THRESHOLD_TYPE_ABSOLUTE (1) The threshold is the absolute power, in dBm.

Return Value

Name Type Description
status int32 Returns the status code of this operation. The status code either indicates success or describes an error or warning condition. Examine the status code from each call to an RFmx function to determine if an error has occurred.

To obtain a text description of the status code and additional information about the error condition, call the RFmxSpecAn_GetError) function.

The general meaning of the status code is as follows:
Value Meaning
0 Success
Positive Values Warnings
Negative Values Errors

RFmxSpecAn_DPDCfgLookupTableType

int32 __stdcall RFmxSpecAn_DPDCfgLookupTableType (niRFmxInstrHandle instrumentHandle, char selectorString[], int32 lookupTableType);

Purpose

Configures the type of DPD Lookup Table.

Parameters

Input
Name Type Description
instrumentHandle niRFmxInstrHandle Identifies the RFmx session. You can obtain this parameter from the RFmxSpecAn_Initialize) function.
selectorString char[] Comprises the signal name. If you do not specify the signal name, the default signal instance is used.

Example:

""

"signal::sig1"

You can use the RFmxSpecAn_BuildSignalString) function to build the selector string).
lookupTableType int32 Specifies the type of the DPD lookup table (LUT).
RFMXSPECAN_VAL_DPD_LOOKUP_TABLE_TYPE_LOG (0) Input powers in the LUT are specified in dBm.
RFMXSPECAN_VAL_DPD_LOOKUP_TABLE_TYPE_LINEAR (1) Input powers in the LUT are specified in watts.

Return Value

Name Type Description
status int32 Returns the status code of this operation. The status code either indicates success or describes an error or warning condition. Examine the status code from each call to an RFmx function to determine if an error has occurred.

To obtain a text description of the status code and additional information about the error condition, call the RFmxSpecAn_GetError) function.

The general meaning of the status code is as follows:
Value Meaning
0 Success
Positive Values Warnings
Negative Values Errors

RFmxSpecAn_DPDCfgMemoryPolynomial

int32 __stdcall RFmxSpecAn_DPDCfgMemoryPolynomial (niRFmxInstrHandle instrumentHandle, char selectorString[], int32 memoryPolynomialOrder, int32 memoryPolynomialMemoryDepth);

Purpose

Configures the order and memory depth of the DPD polynomial when you set the RFMXSPECAN_ATTR_DPD_MODEL) attribute to RFMXSPECAN_VAL_DPD_MODEL_MEMORY_POLYNOMIAL or RFMXSPECAN_VAL_DPD_MODEL_GENERALIZED_MEMORY_POLYNOMIAL.

Parameters

Input
Name Type Description
instrumentHandle niRFmxInstrHandle Identifies the RFmx session. You can obtain this parameter from the RFmxSpecAn_Initialize) function.
selectorString char[] Comprises the signal name. If you do not specify the signal name, the default signal instance is used.

Example:

""

"signal::sig1"

You can use the RFmxSpecAn_BuildSignalString) function to build the selector string).
memoryPolynomialOrder int32 Specifies the order of the DPD polynomial when you set the RFMXSPECAN_ATTR_DPD_MODEL attribute to RFMXSPECAN_VAL_DPD_MODEL_MEMORY_POLYNOMIAL or RFMXSPECAN_VAL_DPD_MODEL_GENERALIZED_MEMORY_POLYNOMIAL. This value corresponds to Ka in the equation) for the generalized memory polynomial.
memoryPolynomialMemoryDepth int32 Specifies the memory depth of the DPD polynomial when you set the RFMXSPECAN_ATTR_DPD_MODEL attribute to RFMXSPECAN_VAL_DPD_MODEL_MEMORY_POLYNOMIAL or RFMXSPECAN_VAL_DPD_MODEL_GENERALIZED_MEMORY_POLYNOMIAL. This value corresponds to Qa in the equation for the generalized memory polynomial.

Return Value

Name Type Description
status int32 Returns the status code of this operation. The status code either indicates success or describes an error or warning condition. Examine the status code from each call to an RFmx function to determine if an error has occurred.

To obtain a text description of the status code and additional information about the error condition, call the RFmxSpecAn_GetError) function.

The general meaning of the status code is as follows:
Value Meaning
0 Success
Positive Values Warnings
Negative Values Errors

RFmxSpecAn_DPDCfgGeneralizedMemoryPolynomialCrossTerms

int32 __stdcall RFmxSpecAn_DPDCfgGeneralizedMemoryPolynomialCrossTerms (niRFmxInstrHandle instrumentHandle, char selectorString[], int32 memoryPolynomialLeadOrder, int32 memoryPolynomialLagOrder, int32 memoryPolynomialLeadMemoryDepth, int32 memoryPolynomialLagMemoryDepth, int32 memoryPolynomialMaximumLead, int32 memoryPolynomialMaximumLag);

Purpose

Configures the cross terms of the generalized memory polynomial when you set the RFMXSPECAN_ATTR_DPD_MODEL) attribute to RFMXSPECAN_VAL_DPD_MODEL_GENERALIZED_MEMORY_POLYNOMIAL. Use the RFmxSpecAn_DPDCfgMemoryPolynomial) function to configure the normal terms in the DPD polynomial and the cross terms when you set the RFMXSPECAN_ATTR_DPD_MODEL attribute to RFMXSPECAN_VAL_DPD_MODEL_GENERALIZED_MEMORY_POLYNOMIAL.

Parameters

Input
Name Type Description
instrumentHandle niRFmxInstrHandle Identifies the RFmx session. You can obtain this parameter from the RFmxSpecAn_Initialize) function.
selectorString char[] Comprises the signal name. If you do not specify the signal name, the default signal instance is used.

Example:

""

"signal::sig1"

You can use the RFmxSpecAn_BuildSignalString) function to build the selector string).
memoryPolynomialLeadOrder int32 Specifies the lead order cross term of the DPD polynomial when you set the RFMXSPECAN_ATTR_DPD_MODEL attribute to RFMXSPECAN_VAL_DPD_MODEL_GENERALIZED_MEMORY_POLYNOMIAL. This value corresponds to Kc in the equation) for the generalized memory polynomial.
memoryPolynomialLagOrder int32 Specifies the lag order cross term of the DPD polynomial when you set the RFMXSPECAN_ATTR_DPD_MODEL attribute to RFMXSPECAN_VAL_DPD_MODEL_GENERALIZED_MEMORY_POLYNOMIAL. This value corresponds to Kb in the equation for the generalized memory polynomial.
memoryPolynomialLeadMemoryDepth int32 Specifies the lead memory depth cross term of the DPD polynomial when you set the RFMXSPECAN_ATTR_DPD_MODEL attribute to RFMXSPECAN_VAL_DPD_MODEL_GENERALIZED_MEMORY_POLYNOMIAL. This value corresponds to Qc in the equation for the generalized memory polynomial. The value of this parameter must be greater than or equal to the value of the memoryPolynomialMaximumLead parameter.
memoryPolynomialLagMemoryDepth int32 Specifies the lag memory depth cross term of the DPD polynomial when you set the RFMXSPECAN_ATTR_DPD_MODEL attribute to RFMXSPECAN_VAL_DPD_MODEL_GENERALIZED_MEMORY_POLYNOMIAL. This value corresponds to Qb in the equation for the generalized memory polynomial.
memoryPolynomialMaximumLead int32 Specifies the maximum lead stagger cross term of the DPD polynomial when you set the RFMXSPECAN_ATTR_DPD_MODEL attribute to RFMXSPECAN_VAL_DPD_MODEL_GENERALIZED_MEMORY_POLYNOMIAL. This value corresponds to Mc in the equation for the generalized memory polynomial.
memoryPolynomialMaximumLag int32 Specifies the maximum lag stagger cross term of the DPD polynomial when you set the RFMXSPECAN_ATTR_DPD_MODEL attribute to RFMXSPECAN_VAL_DPD_MODEL_GENERALIZED_MEMORY_POLYNOMIAL. This value corresponds to Mb in the equation for the generalized memory polynomial.

Return Value

Name Type Description
status int32 Returns the status code of this operation. The status code either indicates success or describes an error or warning condition. Examine the status code from each call to an RFmx function to determine if an error has occurred.

To obtain a text description of the status code and additional information about the error condition, call the RFmxSpecAn_GetError) function.

The general meaning of the status code is as follows:
Value Meaning
0 Success
Positive Values Warnings
Negative Values Errors

RFmxSpecAn_DPDCfgIterativeDPDEnabled

int32 __stdcall RFmxSpecAn_DPDCfgIterativeDPDEnabled (niRFmxInstrHandle instrumentHandle, char selectorString[], int32 iterativeDPDEnabled);

Purpose

Configures the iterative computation of the DPD polynomial in accordance with the indirect-learning architecture) when you set the RFMXSPECAN_ATTR_DPD_MODEL) attribute to RFMXSPECAN_VAL_DPD_MODEL_MEMORY_POLYNOMIAL or RFMXSPECAN_VAL_DPD_MODEL_GENERALIZED_MEMORY_POLYNOMIAL.

Parameters

Input
Name Type Description
instrumentHandle niRFmxInstrHandle Identifies the RFmx session. You can obtain this parameter from the RFmxSpecAn_Initialize) function.
selectorString char[] Comprises the signal name. If you do not specify the signal name, the default signal instance is used.

Example:

""

"signal::sig1"

You can use the RFmxSpecAn_BuildSignalString) function to build the selector string).
iterativeDPDEnabled int32 Specifies whether to enable iterative computation of the DPD results DPD polynomial using the indirect-learning architecture.
RFMXSPECAN_VAL_DPD_ITERATIVE_DPD_ENABLED_FALSE (0) The DPD results DPD polynomial is computed without considering the value of the DPD previous DPD polynomial.
RFMXSPECAN_VAL_DPD_ITERATIVE_DPD_ENABLED_TRUE (1) The DPD Results DPD polynomial is computed based on the value of the DPD previous DPD polynomial.

Return Value

Name Type Description
status int32 Returns the status code of this operation. The status code either indicates success or describes an error or warning condition. Examine the status code from each call to an RFmx function to determine if an error has occurred.

To obtain a text description of the status code and additional information about the error condition, call the RFmxSpecAn_GetError) function.

The general meaning of the status code is as follows:
Value Meaning
0 Success
Positive Values Warnings
Negative Values Errors

RFmxSpecAn_DPDCfgPreviousDPDPolynomial

int32 __stdcall RFmxSpecAn_DPDCfgPreviousDPDPolynomial (niRFmxInstrHandle instrumentHandle, char selectorString[], NIComplexSingle previousDPDPolynomial[], int32 arraySize);

Purpose

Configures the previous DPD polynomial when you set the RFMXSPECAN_ATTR_DPD_MODEL) attribute to RFMXSPECAN_VAL_DPD_MODEL_MEMORY_POLYNOMIAL or RFMXSPECAN_VAL_DPD_MODEL_GENERALIZED_MEMORY_POLYNOMIAL. Set the RFMXSPECAN_ATTR_DPD_ITERATIVE_DPD_ENABLED) attribute to RFMXSPECAN_VAL_DPD_ITERATIVE_DPD_ENABLED_TRUE to apply the previous DPD polynomial on the reference waveform. This reference waveform is used to compute the value of the DPD polynomial for the current iteration.

Parameters

Input
Name Type Description
instrumentHandle niRFmxInstrHandle Identifies the RFmx session. You can obtain this parameter from the RFmxSpecAn_Initialize) function.
selectorString char[] Comprises the signal name. If you do not specify the signal name, the default signal instance is used.

Example:

""

"signal::sig1"

You can use the RFmxSpecAn_BuildSignalString) function to build the selector string).
previousDPDPolynomial NIComplexSingle[] Specifies an array of values for the previous DPD polynomial.
arraySize int32 Specifies the size of the previousDPDPolynomial array.

Return Value

Name Type Description
status int32 Returns the status code of this operation. The status code either indicates success or describes an error or warning condition. Examine the status code from each call to an RFmx function to determine if an error has occurred.

To obtain a text description of the status code and additional information about the error condition, call the RFmxSpecAn_GetError) function.

The general meaning of the status code is as follows:
Value Meaning
0 Success
Positive Values Warnings
Negative Values Errors

RFmxSpecAn_DPDCfgAveraging

int32 __stdcall RFmxSpecAn_DPDCfgAveraging (niRFmxInstrHandle instrumentHandle, char selectorString[], int32 averagingEnabled, int32 averagingCount);

Purpose

Configures averaging for the DPD measurement.

Parameters

Input
Name Type Description
instrumentHandle niRFmxInstrHandle Identifies the RFmx session. You can obtain this parameter from the RFmxSpecAn_Initialize) function.
selectorString char[] Comprises the signal name. If you do not specify the signal name, the default signal instance is used.

Example:

""

"signal::sig1"

You can use the RFmxSpecAn_BuildSignalString) function to build the selector string).
averagingEnabled int32 Specifies whether to enable averaging for the measurement.
RFMXSPECAN_VAL_DPD_AVERAGING_ENABLED_FALSE (0) The measurement is performed on a single acquisition.
RFMXSPECAN_VAL_DPD_AVERAGING_ENABLED_TRUE (1) The measurement uses the averagingCount parameter to calculate the number of acquisitions over which the measurement is averaged.
averagingCount int32 Specifies the number of acquisitions used for averaging when you set the averagingEnabled parameter to RFMXSPECAN_VAL_DPD_AVERAGING_ENABLED_TRUE.

Return Value

Name Type Description
status int32 Returns the status code of this operation. The status code either indicates success or describes an error or warning condition. Examine the status code from each call to an RFmx function to determine if an error has occurred.

To obtain a text description of the status code and additional information about the error condition, call the RFmxSpecAn_GetError) function.

The general meaning of the status code is as follows:
Value Meaning
0 Success
Positive Values Warnings
Negative Values Errors

RFmxSpecAn_DPDApplyPreDPDSignalConditioning

int32 __stdcall RFmxSpecAn_DPDApplyPreDPDSignalConditioning (niRFmxInstrHandle instrumentHandle, char selectorString[], float64 x0In, float64 dxIn, NIComplexSingle waveformIn[], int32 arraySizeIn, int32 idleDurationPresent, float64* x0Out, float64* dxOut, NIComplexSingle waveformOut[], int32 arraySizeOut, int32* actualArraySize, float64* PAPR);

Purpose

Applies crest factor reduction on the input waveform.

Parameters

Input
Name Type Description
instrumentHandle niRFmxInstrHandle Identifies the RFmx session. You can obtain this parameter from the RFmxSpecAn_Initialize) function.
selectorString char[] Comprises the signal name. If you do not specify the signal name, the default signal instance is used.

Example:

""

"signal::sig1"

You can use the RFmxSpecAn_BuildSignalString) function to build the selector string).
x0In float64 Specifies the start time, in seconds.
dxIn float64 Specifies the sample duration, in seconds.
waveformIn NIComplexSingle[] Specifies the complex baseband samples, in volts.
arraySizeIn int32 Specifies the size of the array. Set the arraySize parameter to 0 to get the size of all the arrays in the actualArraySize parameter.
idleDurationPresent int32 Specifies whether the waveform contains an idle duration.
RFMXSPECAN_VAL_DPD_APPLY_DPD_IDLE_DURATION_PRESENT_FALSE (0) The waveform does not contain an idle duration.
RFMXSPECAN_VAL_DPD_APPLY_DPD_IDLE_DURATION_PRESENT_TRUE (1) The waveform contains an idle duration.
waveformOut NIComplexSingle[] Returns the complex baseband samples, in volts.
arraySizeOut int32 Specifies the size of the array. Set the arraySize parameter to 0 to get the size of all the arrays in the actualArraySize parameter.
Output
Name Type Description
x0Out float64* Returns the start time, in seconds.
dxOut float64* Returns the sample duration, in seconds.
actualArraySize int32* Returns the actual size of the array, if you pass NULL to all output array parameters, and set the arraySize parameter to 0.
PAPR float64* Returns the peak-to-average power ratio of the waveform obtained after applying pre-DPD signal conditioning on the input waveform. This value is expressed in dB.

Return Value

Name Type Description

Table of Contents

Internal Development

Creating and Setting Up a gRPC Server

Server Security Support

Creating a gRPC Client

gRPC Client Examples

Session Utilities API Reference

Driver Documentation

gRPC API Differences From C API

Sharing Driver Sessions Between Clients

C API Docs
NI-DAQmx
NI-DCPOWER
NI-DIGITAL PATTERN DRIVER
NI-DMM
NI-FGEN
NI-FPGA
NI-RFmx Bluetooth
NI-RFmx NR
NI-RFmx WCDMA
NI-RFmx GSM
NI-RFmx CDMA2k
NI-RFmx Instr
NI-RFmx LTE
NI-RFmx SpecAn
NI-RFmx TD-SCDMA
NI-RFmx WLAN
NI-RFSA
NI-RFSG
NI-SCOPE
NI-SWITCH
NI-TCLK
NI-XNET
Clone this wiki locally