Signal Configurations

NI-RFmx SpecAn 2.5 Help

Edition Date: June 2018

Part Number: 374264K-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. These signal configurations can be created using extension methods on RFmxInstr. Each specific driver defines its own extension methods on RFmxInstr. For instance, GetSpecAnSignalConfiguration() in NI-RFmx SpecAn and GetDemodSignalConfiguration() in NI-RFmx Demod and so on.

Default Signal Configuration

You can create the default signal configuration using the following method:

public static RFmxSpecAnMX GetSpecAnSignalConfiguration(this RFmxInstrMX instrSession)

C#

RFmxInstrMX instrSession = new RFmxInstrMX("Rfsa", "");
RFmxSpecAnMX specAn = instrSession.GetSpecAnSignalConfiguration();

VB

Dim instrSession As RFmxInstrMX = New RFmxInstrMX("Rfsa", "")
Dim specAn As RFmxSpecAnMX = instrSession.GetSpecAnSignalConfiguration()

Named Signal Configuration

You can create named signal configurations using the following method:

public static RFmxSpecAnMX GetSpecAnSignalConfiguration(this RFmxInstrMX instrSession, string signalName)

C#

RFmxInstrMX instrSession = new RFmxInstrMX("Rfsa", "");
RFmxSpecAnMX specAn = instrSession.GetSpecAnSignalConfiguration("s1");

You can also create named signal using "signal::" prefix in the signal name

RFmxInstrMX instrSession = new RFmxInstrMX("Rfsa", "");
RFmxSpecAnMX specAn = instrSession.GetSpecAnSignalConfiguration("signal::s1");

VB

Dim instrSession As RFmxInstrMX = New RFmxInstrMX("Rfsa", "")
Dim specAn As RFmxSpecAnMX = instrSession.GetSpecAnSignalConfiguration("s1")

You can also create named signal using "signal::" prefix in the signal name

Dim instrSession As RFmxInstrMX = New RFmxInstrMX("Rfsa", "")
Dim specAn As RFmxSpecAnMX = instrSession.GetSpecAnSignalConfiguration("signal::s1")

When you invoke Initiate method on a signal configuration object, NI-RFmx performs the measurements that are enabled in that signal configuration.

The following code shows how to create 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.

C#

// Create a new RFmx Session
instrSession = new RFmxInstrMX(resourceName, "");
//Configure reference frequency and source
instrSession.ConfigureFrequencyReference("", frequencyReferenceSource, frequencyReferenceFrequency);
//Create Signal Configurations
lte5MHzSignal = instrSession.GetLteSignalConfiguration("LTE_5MHz");
lte20MHzSignal = instrSession.GetLteSignalConfiguration("LTE_20MHz");
//Configure Settings (Frequency, Bandwidth) for each Signal Configurations and Enable CHP measurement
lte5MHzSignal.ConfigureFrequency("", centerFrequency_LTE_5MHz);
lte20MHzSignal.ConfigureFrequency("", centerFrequency_LTE_20MHz);
lte5MHzSignal.ComponentCarrier.Configure("", carrierBandwidth_LTE_5MHZ, componentCarrierFrequency, cellID);
lte20MHzSignal.ComponentCarrier.Configure("", carrierBandwidth_LTE_20MHZ, componentCarrierFrequency, cellID);
lte5MHzSignal.SelectMeasurements("", RFmxLteMXMeasurementTypes.Chp, true);
lte20MHzSignal.SelectMeasurements("", RFmxLteMXMeasurementTypes.Chp, true);
//Initiate each Signal Configuration
lte5MHzSignal.Initiate("", "");
instrSession.WaitForAcquisitionComplete(timeout);
lte20MHzSignal.Initiate("", "");
//Fetch Results
lte5MHzSignal.Chp.Results.ComponentCarrier.FetchMeasurement("", timeout, out absolutePower_LTE_5MHz, out relativePower_LTE_5MHz);
lte20MHzSignal.Chp.Results.ComponentCarrier.FetchMeasurement("", timeout, out absolutePower_LTE_20MHz,
                                                             out relativePower_LTE_20MHz);

VB

' Create a new RFmx Session
instrSession = New RFmxInstrMX(resourceName, "")
'Configure reference frequency and source
instrSession.ConfigureFrequencyReference("", frequencyReferenceSource, frequencyReferenceFrequency)
'Create Signal Configurations
lte5MHzSignal = instrSession.GetLteSignalConfiguration("LTE_5MHz")
lte20MHzSignal = instrSession.GetLteSignalConfiguration("LTE_20MHz")
'Configure Settings (Frequency, Bandwidth) for each Signal Configurations and Enable CHP measurement
lte5MHzSignal.ConfigureFrequency("", centerFrequency_LTE_5MHz)
lte20MHzSignal.ConfigureFrequency("", centerFrequency_LTE_20MHz)
lte5MHzSignal.ComponentCarrier.Configure("", carrierBandwidth_LTE_5MHZ, componentCarrierFrequency, cellID)
lte20MHzSignal.ComponentCarrier.Configure("", carrierBandwidth_LTE_20MHZ, componentCarrierFrequency, cellID)
lte5MHzSignal.SelectMeasurements("", RFmxLteMXMeasurementTypes.Chp, True)
lte20MHzSignal.SelectMeasurements("", RFmxLteMXMeasurementTypes.Chp, True)
'Initiate each Signal Configuration
lte5MHzSignal.Initiate("", "")
instrSession.WaitForAcquisitionComplete(timeout)
lte20MHzSignal.Initiate("", "")
'Fetch Results
lte5MHzSignal.Chp.Results.ComponentCarrier.FetchMeasurement("", timeout, absolutePower_LTE_5MHz, relativePower_LTE_5MHz)
lte20MHzSignal.Chp.Results.ComponentCarrier.FetchMeasurement("", timeout, absolutePower_LTE_20MHz, relativePower_LTE_20MHz)
Note: 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 or result names: ()*+,-./{} !"#$%&':;<=>?@[]\^`|~ and any non-printable character.

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

C#

RFmxSpecAnMX specAn = instrSession.GetSpecAnSignalConfiguration("sig1");
specAn.DeleteSignalConfiguration();

VB

Dim specAn As RFmxSpecAnMX = instrSession.GetSpecAnSignalConfiguration("sig1") specAn.DeleteSignalConfiguration()

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

C#

RFmxSpecAnMX specAn = instrSession.GetSpecAnSignalConfiguration("WCDMA_Band14"); specAn.ConfigureFrequency("", centerFrequency);

VB

Dim specAn As RFmxSpecAnMX = instrSession.GetSpecAnSignalConfiguration("WCDMA_Band14") specAn.ConfigureFrequency("", centerFrequency)

RFmx signal configurations can be cloned using driver-specific RFmx Clone Signal Configuration method. For instance, RFmxSpecAnMX.CloneSignalConfiguration function in NI-RFmx SpecAn.

public int CloneSignalConfiguration(string newSignalName, out RFmxSpecAnMX signalConfiguration)

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.

WAS THIS ARTICLE HELPFUL?

Not Helpful