Overlapped Measurements and Named Results

RFmx GSM 19.1 Help

Edition Date: October 2019

Part Number: 375414H-01

»View Product Info
Download Help (Windows Only)

Many automated test applications require multiple independent measurements on a single instrument. Such applications include amplifier frequency/power sweeps or multi-DUT wireless device test. Often engineers implement these applications by serially sequencing measurements. However, with RFmx, you can perform multiple measurements overlapped in time with a feature called overlapped measurements. This feature can be used when measurements in a sequence are independent of previous results. The measurements must be performed on separate acquisitions because they require different hardware configurations such as a different frequency or reference level. Overlapped measurements maximize utilization of the RF hardware and enable parallel processing of the measurements, thus vastly reducing the overall test time for a sequence of multiple measurements. In the following conceptual example, two overlapped ACP measurements are performed at two different reference levels. This simple program completes the following operations:

  • Configure the reference level for the first ACP measurement
  • Initiate the first ACP acquisition.
  • Wait for the ACP acquisition to be complete and the PXI RF module to be released. RFmx spawns a thread for ACP analysis in the background without holding up the next measurement.
  • Initiate the second ACP acquisition (before the first ACP measurement analysis is complete).
  • Wait for the second ACP acquisition to complete (before the first ACP measurement analysis is complete).
  • Fetch both the measurement results when their respective analysis threads are complete.

C#

specAn.ConfigureReferenceLevel("", referenceLevel1);
specAn.Initiate("", "ACP_Results_1");
instrSession.WaitForAcquisitionComplete(timeout);

specAn.ConfigureReferenceLevel("", referenceLevel2);
specAn.Initiate("", "ACP_Results_2");
instrSession.WaitForAcquisitionComplete(timeout);

resultString1 = RFmxSpecAnMX.BuildResultString("ACP_Results_1"); // resultString1 = “result::ACP_Results_1”
specAn.Acp.Results.FetchOffsetMeasurementArray(resultString1, timeout, ref lowerRelativePowerArr1, ref upperRelativePowerArr1,
                                               ref lowerAbsolutePowerArr1, ref upperAbsolutePowerArr1);

resultString2 = RFmxSpecAnMX.BuildResultString("ACP_Results_2"); // resultString2 = “result::ACP_Results_2”
specAn.Acp.Results.FetchOffsetMeasurementArray(resultString1, timeout, ref lowerRelativePowerArr1, ref upperRelativePowerArr1,
                                               ref lowerAbsolutePowerArr1, ref upperAbsolutePowerArr1);

VB

specAn.ConfigureReferenceLevel("", referenceLevel1)
specAn.Initiate("", "ACP_Results_1")
instrSession.WaitForAcquisitionComplete(timeout)

specAn.ConfigureReferenceLevel("", referenceLevel2)
specAn.Initiate("", "ACP_Results_2")
instrSession.WaitForAcquisitionComplete(timeout)

resultString1 = RFmxSpecAnMX.BuildResultString("ACP_Results_1") ' resultString1 = “result::ACP_Results_1”
specAn.Acp.Results.FetchOffsetMeasurementArray(resultString1, timeout, lowerRelativePowerArr1, upperRelativePowerArr1,
                                               lowerAbsolutePowerArr1, upperAbsolutePowerArr1)

resultString2 = RFmxSpecAnMX.BuildResultString("ACP_Results_2") ' resultString2 = “result::ACP_Results_2”
specAn.Acp.Results.FetchOffsetMeasurementArray(resultString2, timeout, lowerRelativePowerArr2, upperRelativePowerArr2,
                                               lowerAbsolutePowerArr2, upperAbsolutePowerArr2)

The key feature that enables overlapped measurements in RFmx is a feature called Named Results. In the previous example, both the first and second ACP measurements are initiated and tagged with a name. The RFmxSpecAnMX.Initiate method  is called first with the ACP measurement enabled and the result name as ACP_Results_1, and then called again with the second ACP measurement enabled and the result name as ACP_Results_2. The results of these two measurements are stored independently from each other, and can be fetched in any sequence after the measurements are complete using the same result names passed to Initiate method.
The result name passed to the Fetch method  can be created using a set of Build String Utility static methods  provided by RFmx. In the above example, RFmxSpecAnMX.BuildResultString method  is used to create a result string “result::ACP_Results_1” and passed to the Fetch method.
Measurement results are referenced by the result name, measurement type, and the signal instance. If you do not specify any result name, the default result name (“”) is used.
The following characters are not allowed in signal name and result name: ()*+,-./{} !"#$%&':;<=>?@[]\^`|~ and any non-printable character.
When using overlapped measurements, you must specify the result name in Initiate and then use that name to fetch the results. If you reuse the same result name, the previous named results with that name are overwritten. This behavior applies to the default result name (“”) as well. When you initiate a measurement RFmx clears out all previous results with the same result name passed to Initiate; this keeps you from accidentally fetching a result from a previous Initiate. Note that only the results with the same name in the default or named signal configuration passed to Initiate are cleared. For example, if you call Initiate with Selector String set to “signal:MySignal” and Result Name set to “MyResult”, Initiate will clear out all results named “MyResult” that were previously initiated with the signal “MySignal”.
As mentioned, RFmx provides a set of Build String Utility static methods to create named result strings. Below code snippet shows RFmxSpecAnMX.BuildOffsetString2 method to create a result string and fetch result for offset 1.

C#

selectorString = RFmxSpecAnMX.BuildResultString("ACP_Result");
specAn.Initiate(selectorString, "");
offsetResultString = RFmxSpecAnMX.BuildOffsetString2(selectorString, 1);   
             //offsetResultString = “result::ACP_Result/offset1”
specAn.Acp.Results.FetchOffsetMeasurement(offsetResultString, timeout, out  lowerRelativePower, out upperRelativePower,
                                          out lowerAbsolutePower, out upperAbsolutePower);

VB

selectorString = RFmxSpecAnMX.BuildResultString("ACP_Result")
specAn.Initiate(selectorString, "")
offsetResultString = RFmxSpecAnMX.BuildOffsetString2(selectorString, 1) '  offsetResultString = “result::ACP_Result/offset1”
specAn.Acp.Results.FetchOffsetMeasurement(offsetResultString, timeout, out lowerRelativePower, out upperRelativePower,
                                          out lowerAbsolutePower, out upperAbsolutePower);

The benefit of the overlapped measurements technique improves with more measurements in your sequence. In fact, there is no limit on the number of measurements you can overlap. However, as the number of named results increases consider deleting the measurement results that have been fetched to conserve process memory space. The named results can be deleted using the RFmxSpecAnMX.ClearNamedResult method. Once a Named Result is cleared all the measurement results for that Named Result will be erased from the process memory of your application. If all Named Results need to be cleared from the memory RFmxSpecAnMX.ClearAllNamedResults method can be called.

Refer to the RFmxSpecAnTxpMultipleResultNames example application installed by RFmx SpecAn which conducts multiple TxP measurements at different frequencies and clears the named result for TxP measurement once it has been fetched. The example can be found at:
Users\Public\Documents\National Instruments\RFmx\SpecAn\Examples\DotNET\VS2010\Advanced\RFmxSpecAnTxpMultipleResultNames
The following figure demonstrates the sequence of events for the mentioned TxP measurement example.

The actual time it takes to acquire the samples and analyze the TxP measurements may vary based on your system performance and measurement settings, however the sequence of events (configure, acquire, etc.) will remain the same. RFmx will automatically start the analysis or processing of the measurement immediately after the samples for the measurement have been acquired. Once the processing of the measurement is complete, measurement results can be fetched.
Depending on the computational complexity of the measurement, overlapped measurements technique can have a huge impact on overall test time. Measurement parallelism is a known technique to reduce test time; RFmx makes this easier by managing threads and results so you can develop and realize the benefit of PXI faster.

 

WAS THIS ARTICLE HELPFUL?

Not Helpful