NI RFmx SpecAn IM Configuration Functions - ni/grpc-device GitHub Wiki

IM Configuration Functions

RFmxSpecAn_IMCfgFrequencyDefinition

int32 __stdcall RFmxSpecAn_IMCfgFrequencyDefinition (niRFmxInstrHandle instrumentHandle, char selectorString[], int32 frequencyDefinition);

Purpose

Configures whether you can specify the tones and intermod frequencies as either relative to the RF center frequency or as absolute frequencies.

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).
frequencyDefinition int32 Specifies whether you can specify the tones and intermod frequencies as either relative to the RF center frequency or as absolute frequencies.
RFMXSPECAN_VAL_IM_FREQUENCY_DEFINITION_RELATIVE (0) The tone and intermod frequencies are relative to the RF center frequency.
RFMXSPECAN_VAL_IM_FREQUENCY_DEFINITION_ABSOLUTE (1) The tone and intermod frequencies are absolute frequencies. The measurement ignores the RF center frequency.

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_IMCfgFundamentalTones

int32 __stdcall RFmxSpecAn_IMCfgFundamentalTones (niRFmxInstrHandle instrumentHandle, char selectorString[], float64 lowerToneFrequency, float64 upperToneFrequency);

Purpose

Configures the frequencies of the upper and lower frequencies in a two-tone input signal.

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).
lowerToneFrequency float64 Specifies the frequency of the tone that has a lower frequency among the two tones in the input signal. This value is expressed in Hz.
upperToneFrequency float64 Specifies the frequency of the tone that has a higher frequency among the two tones in the input signal. This value is expressed in Hz.

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_IMCfgAutoIntermodsSetup

int32 __stdcall RFmxSpecAn_IMCfgAutoIntermodsSetup (niRFmxInstrHandle instrumentHandle, char selectorString[], int32 autoIntermodsSetupEnabled, int32 maximumIntermodOrder);

Purpose

Configures whether the measurement computes the intermod frequencies or uses manually specified frequencies.

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).
autoIntermodsSetupEnabled int32 Specifies whether the measurement computes the intermod frequencies or uses manually specified frequencies.
RFMXSPECAN_VAL_IM_AUTO_INTERMODS_SETUP_ENABLED_FALSE (0) The measurement uses the values that you specify for the RFMXSpecAn_ATTR_IM_LOWER_INTERMOD_FREQUENCY) and RFMXSpecAn_ATTR_IM_UPPER_INTERMOD_FREQUENCY) attributes.
RFMXSPECAN_VAL_IM_AUTO_INTERMODS_SETUP_ENABLED_TRUE (1) The measurement computes intermod frequencies. The number of intermods to measure is based on the value of the maximumIntermodOrder parameter.
maximumIntermodOrder int32 Specifies the order up to which the RFmx driver measures odd order intermodulation products when you set the autoIntermodsSetupEnabled parameter to RFMXSPECAN_VAL_IM_AUTO_INTERMODS_SETUP_ENABLED_TRUE. The lower and upper intermodulation products are measured for each order.

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_IMCfgMeasurementMethod

int32 __stdcall RFmxSpecAn_IMCfgMeasurementMethod (niRFmxInstrHandle instrumentHandle, char selectorString[], int32 measurementMethod);

Purpose

Configures the method for performing the IM 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).
measurementMethod int32 Specifies the method for performing the IM measurement.
RFMXSPECAN_VAL_IM_MEASUREMENT_METHOD_NORMAL (0) The IM measurement acquires the spectrum using the same signal analyzer settings across frequency bands. Use this method when the fundamental tone separation is not large.
**Supported devices:**PXIe-5644/5645/5646/5840/5841/5830/5831/5832, PXIe-5663/5665/5668.
RFMXSPECAN_VAL_IM_MEASUREMENT_METHOD_DYNAMIC_RANGE (1) The IM measurement acquires a segmented spectrum using the signal analyzer specific optimizations for different frequency bands. The spectrum is acquired in segments, one per tone or intermod frequency to be measured. The span of each acquired spectral segment is equal to the frequency separation between the two input tones, or 1 MHz, whichever is smaller.
Use this method to configure the IM measurement and the signal analyzer for maximum dynamic range instead of measurement speed.
**Supported devices:**PXIe-5665/5668
RFMXSPECAN_VAL_IM_MEASUREMENT_METHOD_SEGMENTED (2) Similar to the dynamicRange method, this method also acquires a segmented spectrum, except that signal analyzer is not explicitly configured to provide maximum dynamic range. Use this method when the frequency separation of the two input tones is large and the measurement accuracy can be traded off for measurement speed.
**Supported devices:**PXIe-5644/5645/5646/5840/5841/5830/5831/5832, PXIe-5663/5665/5668

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_IMCfgNumberOfIntermods

int32 __stdcall RFmxSpecAn_IMCfgNumberOfIntermods (niRFmxInstrHandle instrumentHandle, char selectorString[], int32 numberOfIntermods);

Purpose

Configures the number of intermods to measure when you set the RFMXSpecAn_ATTR_IM_AUTO_INTERMODS_SETUP_ENABLED) attribute to RFMXSPECAN_VAL_IM_AUTO_INTERMODS_SETUP_ENABLED_FALSE.

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).
numberOfIntermods int32 Specifies the number of intermods to measure when you set the RFMXSpecAn_ATTR_IM_AUTO_INTERMODS_SETUP_ENABLED attribute to RFMXSPECAN_VAL_IM_AUTO_INTERMODS_SETUP_ENABLED_FALSE.

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_IMCfgIntermod

int32 __stdcall RFmxSpecAn_IMCfgIntermod (niRFmxInstrHandle instrumentHandle, char selectorString[], int32 intermodOrder, float64 lowerIntermodFrequency, float64 upperIntermodFrequency, int32 intermodSide, int32 intermodEnabled);

Purpose

Configures the intermod order, intermod side, lower intermod frequency, and upper intermod frequency when you set the RFMXSpecAn_ATTR_IM_AUTO_INTERMODS_SETUP_ENABLED) attribute to RFMXSPECAN_VAL_IM_AUTO_INTERMODS_SETUP_ENABLED_FALSE. Use "intermod<n>" as the selector string to configure this function.

Parameters

Input
Name Type Description
instrumentHandle niRFmxInstrHandle Identifies the RFmx session. You can obtain this parameter from the RFmxSpecAn_Initialize) function.
selectorString char[] Specifies a selector string) comprising of the signal name and intermod number. If you do not specify the signal name, the default signal instance is used.
Example:
"intermod0"
"signal::sig1/intermod0"
You can use the RFmxSpecAn_BuildIntermodString) function to build the selector string.
intermodOrder int32 Specifies the order of the intermod.
lowerIntermodFrequency float64 Specifies the frequency of the lower intermodulation product. This value is expressed in Hz.
upperIntermodFrequency float64 Specifies the frequency of the upper intermodulation product. This value is expressed in Hz.
intermodSide int32 Specifies whether to measure intermodulation products corresponding to both lower and upper intermod frequencies or either one of them.
RFMXSPECAN_VAL_IM_INTERMOD_SIDE_LOWER (0) Measures the intermodulation product corresponding to the lowerIntermodFrequency parameter.
RFMXSPECAN_VAL_IM_INTERMOD_SIDE_UPPER (1) Measures the intermodulation product corresponding to the upperIntermodFrequency parameter.
RFMXSPECAN_VAL_IM_INTERMOD_SIDE_BOTH (2) Measures the intermodulation product corresponding to both lowerIntermodFrequency and upperIntermodFrequency parameters.
intermodEnabled int32 Specifies whether to enable an intermod for the IM measurement.
RFMXSPECAN_VAL_IM_INTERMOD_ENABLED_FALSE (0) Disables an intermod for the IM measurement. The results for the disabled intermods are displayed as NaN.
RFMXSPECAN_VAL_IM_INTERMOD_ENABLED_TRUE (1) Enables an intermod for the IM measurement.

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_IMCfgRBWFilter

int32 __stdcall RFmxSpecAn_IMCfgRBWFilter (niRFmxInstrHandle instrumentHandle, char selectorString[], int32 RBWAuto, float64 RBW, int32 RBWFilterType);

Purpose

Configures the RBW filter.

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).
RBWAuto int32 Specifies whether the measurement computes the RBW. Refer to the RBW and Sweep Time section in the Spectral Measurements) topic for more details on RBW and sweep time.
RFMXSPECAN_VAL_IM_RBW_FILTER_AUTO_BANDWIDTH_FALSE (0) The measurement uses the RBW that you specify in the RBW parameter.
RFMXSPECAN_VAL_IM_RBW_FILTER_AUTO_BANDWIDTH_TRUE (1) The measurement computes the RBW.
RBW float64 Specifies the bandwidth of the RBW filter used to sweep the acquired signal, when you set the RBWAuto parameter to RFMXSPECAN_VAL_IM_RBW_FILTER_AUTO_BANDWIDTH_FALSE. This value is expressed in Hz.
RBWFilterType int32 Specifies the response of the digital RBW filter.
RFMXSPECAN_VAL_IM_RBW_FILTER_TYPE_FFT_BASED (0) No RBW filtering is performed.
RFMXSPECAN_VAL_IM_RBW_FILTER_TYPE_GAUSSIAN (1) An RBW filter with a Gaussian response is applied.
RFMXSPECAN_VAL_IM_RBW_FILTER_TYPE_FLAT (2) An RBW filter with a flat response is applied.
RFMXSPECAN_VAL_IM_RBW_FILTER_TYPE_SYNCH_TUNED_4 (3) An RBW filter with a 4-pole synchronously-tuned response is applied.
RFMXSPECAN_VAL_IM_RBW_FILTER_TYPE_SYNCH_TUNED_5 (4) An RBW filter with a 5-pole synchronously-tuned response is applied.

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_IMCfgSweepTime

int32 __stdcall RFmxSpecAn_IMCfgSweepTime (niRFmxInstrHandle instrumentHandle, char selectorString[], int32 sweepTimeAuto, float64 sweepTimeInterval);

Purpose

Configures the sweep time.

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).
sweepTimeAuto int32 Specifies whether the measurement computes the sweep time.
RFMXSPECAN_VAL_IM_SWEEP_TIME_AUTO_FALSE (0) The measurement uses the sweep time that you specify in the sweepTimeInterval parameter.
RFMXSPECAN_VAL_IM_SWEEP_TIME_AUTO_TRUE (1) The measurement computes the sweep time based on the value of the RFMXSpecAn_ATTR_IM_RBW_FILTER_BANDWIDTH) attribute.
sweepTimeInterval float64 Specifies the sweep time, in seconds, when you set the sweepTimeAuto parameter to RFMXSPECAN_VAL_IM_SWEEP_TIME_AUTO_FALSE.

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_IMCfgAveraging

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

Purpose

Configures averaging for the IM 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_IM_AVERAGING_ENABLED_FALSE (0) The measurement is performed on a single acquisition.
RFMXSPECAN_VAL_IM_AVERAGING_ENABLED_TRUE (1) The measurement uses the value of 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_IM_AVERAGING_ENABLED_TRUE.
averagingType int32 Specifies the averaging type for averaging the power over multiple acquisitions. The averaged power trace is used for the measurement. Refer to the Averaging section of the Spectrum) topic for more information about averaging types.
RFMXSPECAN_VAL_IM_AVERAGING_TYPE_RMS (0) The power trace is linearly averaged. RMS averaging reduces signal fluctuations but not the noise floor.
RFMXSPECAN_VAL_IM_AVERAGING_TYPE_LOG (1) The power trace is averaged in a logarithmic scale.
RFMXSPECAN_VAL_IM_AVERAGING_TYPE_SCALAR (2) The square root of the power trace is averaged.
RFMXSPECAN_VAL_IM_AVERAGING_TYPE_MAXIMUM (3) The peak power in the power trace at each sample instance is retained from one acquisition to the next.
RFMXSPECAN_VAL_IM_AVERAGING_TYPE_MINIMUM (4) The least power in the power trace at each sample instance is retained from one acquisition to the next.

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_IMCfgFFT

int32 __stdcall RFmxSpecAn_IMCfgFFT (niRFmxInstrHandle instrumentHandle, char selectorString[], int32 FFTWindow, float64 FFTPadding);

Purpose

Configures the window and FFT to obtain a spectrum for the IM 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).
FFTWindow int32 Specifies the FFT window type to use to reduce spectral leakage. Refer to the Window and FFT section of the Spectral Measurements) topic for more information about FFT window types.
RFMXSPECAN_VAL_IM_FFT_WINDOW_NONE (0) Analyzes transients for which duration is shorter than the window length. You can also use this window type to separate two tones with frequencies close to each other but with almost equal amplitudes.
RFMXSPECAN_VAL_IM_FFT_WINDOW_FLAT_TOP (1) Measures single-tone amplitudes accurately.
RFMXSPECAN_VAL_IM_FFT_WINDOW_HANNING (2) Analyzes transients for which duration is longer than the window length. You can also use this window type to provide better frequency resolution for noise measurements.
RFMXSPECAN_VAL_IM_FFT_WINDOW_HAMMING (3) Analyzes closely-spaced sine waves.
RFMXSPECAN_VAL_IM_FFT_WINDOW_GAUSSIAN (4) Provides a balance of spectral leakage, frequency resolution, and amplitude attenuation. This windowing is useful for time-frequency analysis.
RFMXSPECAN_VAL_IM_FFT_WINDOW_BLACKMAN (5) Analyzes single tone because it has a low maximum side lobe level and a high side lobe roll-off rate.
RFMXSPECAN_VAL_IM_FFT_WINDOW_BLACKMAN_HARRIS (6) Useful as a general purpose window, having side lobe rejection greater than 90 dB and having a moderately wide main lobe.
RFMXSPECAN_VAL_IM_FFT_WINDOW_KAISER_BESSEL (7) Separates two tones with frequencies close to each other but with widely-differing amplitudes.
FFTPadding float64 Specifies the factor by which the time-domain waveform is zero-padded before FFT. The FFT size is given by the following formula: waveform size * padding. This parameter is used only when the acquisition span is less than the device instantaneous bandwidth of the device.

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

IM Array Apis

RFmxSpecAn_IMCfgIntermodArray

int32 __stdcall RFmxSpecAn_IMCfgIntermodArray (niRFmxInstrHandle instrumentHandle, char selectorString[], int32 intermodOrder[], float64 lowerIntermodFrequency[], float64 upperIntermodFrequency[], int32 intermodSide[], int32 intermodEnabled[], int32 numberOfElements);

Purpose

Configures the intermod order, intermod side, lower intermod frequency, and upper intermod frequency when you set the RFMXSPECAN_ATTR_IM_AUTO_INTERMODS_SETUP_ENABLED) attribute to RFMXSPECAN_VAL_IM_AUTO_INTERMODS_SETUP_ENABLED_FALSE.

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).
intermodOrder int32[] Specifies array of orders of the intermod.
lowerIntermodFrequency float64[] Specifies an array of the frequencies of the lower intermodulation products. This value is expressed in Hz.
upperIntermodFrequency float64[] Specifies an array of frequencies of the upper intermodulation products. This value is expressed in Hz.
intermodSide int32[] Specifies whether to measure intermodulation products corresponding to both lower and upper intermod frequencies or either one of them.
RFMXSPECAN_VAL_IM_INTERMOD_SIDE_LOWER (0) Measures the intermodulation product corresponding to the lowerIntermodFrequency parameter.
RFMXSPECAN_VAL_IM_INTERMOD_SIDE_UPPER (1) Measures the intermodulation product corresponding to the upperIntermodFrequency parameter.
RFMXSPECAN_VAL_IM_INTERMOD_SIDE_BOTH (2) Measures the intermodulation product corresponding to the lowerIntermodFrequency and upperIntermodFrequency parameters.
intermodEnabled int32[] Specifies whether to enable an intermod for the IM measurement.
RFMXSPECAN_VAL_IM_INTERMOD_ENABLED_FALSE (0) Disables the intermod for the IM measurement. The results for the disabled intermods are displayed as NaN.
RFMXSPECAN_VAL_IM_INTERMOD_ENABLED_TRUE (1) Enables the intermod for the IM measurement.
numberOfElements int32 Specifies the number of elements in each 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
⚠️ **GitHub.com Fallback** ⚠️