RFmxDemod_AutoLevel
- Updated2025-10-13
- 2 minute(s) read
Examines the input signal to calculate the peak power level and sets it as the value of the RFMXDEMOD_ATTR_REFERENCE_LEVEL attribute. Use this function to help calculate an approximate setting for the reference level. The RFmxDemod Auto Level function does the following tasks:
Syntax
int32 __stdcall RFmxDemod_AutoLevel(niRFmxInstrHandle instrumentHandle, char selectorString[], float64 bandwidth, float64 measurementInterval, float64 *referenceLevel)
Remarks
Resets the mixer level, mixer level offset, and IF output power level offset.
Sets the starting reference level to the maximum reference level supported by the device based on the current RF attenuation, mechanical attenuation, and preamp enabled settings.
Iterates to adjust the reference level based on the input signal peak power.
Uses immediate triggering and restores the trigger settings back to user setting after the execution.
You can also specify the starting reference level using the RFMXDEMOD_ATTR_AUTO_LEVEL_INITIAL_REFERENCE_LEVEL attribute.
When using NI 5663, 5665, or 5668R devices, NI recommends that you set an appropriate value for mechanical attenuation before calling the RFmxDemod Auto Level function. Setting an appropriate value for mechanical attenuation reduces the number of times the attenuator settings are changed by this function; thus reducing wear and tear, and maximizing the life time of the attenuator.
Parameters
| Name | Direction | Type | Description |
|---|---|---|---|
| instrumentHandle | [in] | niRFmxInstrHandle | This parameter specifies the RFmx session refnum. Instrument Handle In is obtained from the RFmxInstr_Initialize function. |
| selectorString | [in] | char[] | This parameter comprises of the signal name. If you do not specify the signal name, the default signal instance is used. The default value is "" (empty string). Example: "" "signal::sig1" You can use the RFmxDemod_BuildSignalString function to build the Selector String. |
| bandwidth | [in] | float64 | This parameter specifies the bandwidth, in Hz, of the signal to be analyzed. |
| measurementInterval | [in] | float64 | This parameter specifies the acquisition length. This value is used to compute the number of samples to acquire from the signal analyzer. This value is expressed in seconds. The default value is 10 ms. Auto Level function does not use any trigger for acquisition. It ignores the user-configured trigger attributes. NI recommends that you set a sufficiently high measurement interval to ensure that the acquired waveform is at least as long as one period of the signal. |
| referenceLevel | [out] | float64 * | This parameter returns the estimated peak power level of the input signal. This value is expressed in dBm for RF devices and Vpk-pk for baseband devices. |
Returns
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 RFmxDemod_GetError function.
The general meaning of the status code is as follows:
Value | Meaning |
|---|---|
0 | Success |
Positive Values | Warnings |
Negative Values | Errors |