Signal Configurations

NI-RFmx TDSCDMA 2.5 Help

Edition Date: June 2018

Part Number: 375760F-01

»View Product Info
Download Help (Windows Only)

NI-RFmx allows you to create measurement configurations called signal configurations, within the same personality.  Each signal configuration instance holds a unique instance of signal and measurement property values. By using multiple signal configurations, you can switch between different measurement configurations without the overhead of configuring the measurements each time. Signal configurations also allow you to execute multiple configurations of the same measurement at the same time.

NI-RFmx creates one default signal configuration for each personality. This default configuration is unnamed.  You can create additional named signal configurations. 

Select the signal configuration to use by passing the signal configuration name in the RFmxSpecAn_Initiate function selectorString parameter or the initiate function of any other RFmx driver. NI-RFmx performs the measurements that are enabled in that signal configuration. If you pass multiple signal configuration names, such as, signal::sig1, signal::sig2, and so on, to the RFmx Initiate function, NI-RFmx performs the measurements that are enabled in each of the signal configurations. The following signal properties must be configured for each signal configuration, otherwise their default values are used:

  • Center frequency
  • Reference level
  • External attenuation
  • Trigger settings

The following code shows the creation of two signals, named LTE-5MHZ and LTE_20MHz, in NI-RFmx LTE. The two signal configurations use different center frequencies and bandwidths. The LTE_5MHz signal configuration is initiated before the LTE_20MHz signal configuration.

// Create a new RFmx Session
RFmxLTE_Initialize(resourceName, "", &instrumentHandle, &isNewSession);
//Configure reference frequency and source
RFmxLTE_CfgFrequencyReference(instrumentHandle, "", frequencySource, frequency);
//Create Signal Configurations
RFmxLTE_CreateSignalConfiguration(instrumentHandle, “LTE_5MHz”);
RFmxLTE_BuildSignalString("LTE_5MHz", "", SELECTOR_STRING_LEN, LTE_5MHzSignalString);
//LTE_5MHzSignalString = "signal::LTE_5MHz"
RFmxLTE_CreateSignalConfiguration(instrumentHandle, “LTE_20MHz”);
RFmxLTE_BuildSignalString("LTE_20MHz", "", SELECTOR_STRING_LEN, LTE_20MHzSignalString);
//LTE_20MHzSignalString = "signal::LTE_20MHz"
//Configure Settings (Frequency, Bandwidth) for each Signal Configurations and Enable CHP measurement
RFmxLTE_CfgFrequency(instrumentHandle, LTE_5MHzSignalString, centerFrequency_LTE_5MHz);
RFmxLTE_CfgFrequency(instrumentHandle, LTE_20MHzSignalString, centerFrequency_LTE_20MHz);
RFmxLTE_CfgComponentCarrier(instrumentHandle, LTE_5MHzSignalString, carrierBandwidth_LTE_5MHZ, componentCarrierFrequency, cellID);
RFmxLTE_CfgComponentCarrier(instrumentHandle, LTE_5MHzSignalString, carrierBandwidth_LTE_20MHZ, componentCarrierFrequency, cellID);
RFmxLTE_SelectMeasurements(instrumentHandle, “signal::LTE_5MHz,signal::LTE_20MHz”, RFMXLTE_VAL_CHP, RFMXLTE_VAL_TRUE);
//Initiate each Signal Configuration
RFmxLTE_Initiate(instrumentHandle, LTE_5MHzSignalString, "");
RFmxLTE_WaitForAcquisitionComplete(instrumentHandle, timeout);
RFmxLTE_Initiate(instrumentHandle, LTE_20MHzSignalString, "");
//Fetch Results
RFmxLTE_CHPFetchComponentCarrierMeasurement(instrumentHandle, LTE_5MHzSignalString, timeout, & absolutePower_LTE_5MHz,
RFmxLTE_CHPFetchComponentCarrierMeasurement(instrumentHandle, LTE_20MHzSignalString, timeout, &absolutePower_LTE_20MHz,

Note Notes  NI does not recommend using named signal configurations when only a few attributes are different between the configurations. For example, when performing the same measurement across different frequencies, NI recommends you use a single-signal configuration and change the center frequency before each measurement.

The following characters are not allowed in signal name and result name: ()*+,-./{} !"#$%&':;<=>?@[]\^`|~ and any non-printable character.

The following code shows an example of creating and deleting a signal name, “sig1”.

/*Creating a signal*/
RFmxSpecAn_CreateSignalConfiguration(instrumentHandle, "sig1");

/*Deleting the signal*/
RFmxSpecAn_DeleteSignalConfiguration(instrumentHandle, "sig1");

When you use signal configurations, you must provide a signal name that is correctly formatted to the RFmx Configure, Initiate, and Fetch functions. Use the following syntax for signal names.

Example: signal::WCDMA

RFmx also provides a Build String Utility function, RFmxSpecAn_BuildSignalString, to create the formatted signal string. Refer to Build String functions for more information about all Build String Utility functions. Signal names are required for configure, initiate, and fetch functions.

The following code shows an example of creating a signal named “WCDMA_Band14” and calling a configure function with that signal name.

/* Configure ACP parameters for WCDMA signal analysis */
RFmxSpecAn_BuildSignalString("WCDMA_Band14", "", SIGNAL_STRING_LEN, WCDMASignalString);
// WCDMASignalString = “signal:: WCDMA_Band14”
RFmxSpecAn_CreateSignalConfiguration(instrumentHandle, WCDMASignalString);
RFmxSpecAn_CfgRF (instrumentHandle, WCDMASignalString, wcdmaCenterFrequency, referenceLevel,

RFmx signal configurations can be cloned using the driver-specific RFmx Clone Signal Configuration API, such as the RFmxSpecAn_CloneSignalConfiguration function in NI-RFmx SpecAn.

When a configuration is cloned, a new signal configuration is created that inherits all the configuration settings of the signal configuration being cloned. In the new signal configuration, the original configuration settings can be overwritten by calling the appropriate signal configurations VIs with the new signal configuration name.

The following code shows an example of setting a property node using the signal name.

/* Configure ACP parameters for WCDMA signal analysis */
RFmxSpecAn_BuildSignalString("WCDMA_Band14", "", SIGNAL_STRING_LEN, WCDMASignalString);
RFmxSpecAn_CreateSignalConfiguration(instrumentHandle, WCDMASignalString);
RFmxSpecAn_SetCenterFrequency (instrumentHandle, WCDMASignalString, wcdmaCenterFrequency);


Not Helpful