RFmx Analysis-Only Mode

RFmx TD-SCDMA 19.1 Help

Edition Date: October 2019

Part Number: 375493H-01

»View Product Info

DOWNLOAD (Windows Only)


RFmx TD-SCDMA 19.1 Help
RFmx TD-SCDMA 20.0 Help

The RFmx Analysis-Only Mode further extends the functionality and flexibility of the RFmx API to handle the following use cases:

  • Perform RF measurements with hardware that RFmx does not natively support
  • Perform RF measurements on simulated waveforms
  • Perform RF measurements on waveform data that was acquired previously and saved to disk

In the RFmx Analysis-Only Mode, time domain I/Q data or spectrum data is passed to the RFmxSpecAn_AnalyzeIQ function that performs the RF measurements that you specify on the raw waveform data.

Time domain measurements such as ModAcc/EVM or CCDF only accept complex I/Q data. Spectral measurements such as ACP, SEM, or CHP accept either complex I/Q data or spectrum data which must be in units of dBm. The f0 in the spectrum data passed to the RFmxSpecAn_AnalyzeIQ function is calculated using the following formula:

f0_rfmx = f0_driver - fc

where,

f0_rfmx is start frequency of the spectrum passed to the RFmxSpecAn_AnalyzeSpectrum function

fc is the center frequency of spectral acquisition

f0_driver is the start frequency of the spectrum

In addition, if hardware is used to acquire the data, the input data provided to the RFmxSpecAn_AnalyzeIQ function must meet or exceed the minimum requirements of the RFmx recommended acquisition settings. For example, the sample I/Q rate can be higher than recommended sample rate, acquisition length can be longer than the recommended acquisition length, spectrum span can be wider than the recommended acquisition span, and so on. The recommended acquisition settings are calculated based on the user-defined measurement configuration, and can be accessed through the RFmxInstr Get/Set methods in C/.NET, or by getting the values of the equivalent attributes in LabVIEW.

When using the RFmx Analysis-Only Mode, the RFmx driver ignores RFmx hardware settings such as reference level and attenuation. The only RF hardware setting that is not ignored is the center frequency, since it is needed for spectral measurement traces as well as some of the wireless standard-specific measurements, such as ACP and SEM, which define different configurations or limits based on the center frequency and the value which you set for the BandClass attribute.

In the following example, time-domain transmit power (TxP) measurement is performed on a simulated QAM waveform. This example completes the following operations in the Analysis-Only Mode:

  • OPEN—Opens the RFmx session with an empty hardware resource name and with “AnalysisOnly=1” string wired to option string input of the RFmxInstr constructor.
  • CONFIGURE—Configures the TxP measurement as if RFmx was used with hardware.
  • ANALYZE—Passes a simulated waveform to the RFmxSpecAn_AnalyzeIQ functionwhich is called instead of the RFmxInstr_Initialize function that is used when using RFmx with the built-in hardware support.
  • FETCH—Fetches the measurement results using the same RFmx methods used to fetch results while using RFmx with the built-in hardware support.
  • CLOSE—Closes the RFmx session.
// OPEN Session without resource name but with option string set to "AnalysisOnly=1"
RFmxSpecAn_Initialize ("", "AnalysisOnly=1", &instrumentHandle, NULL);
// CONFIGURE RFmx measurement using regular RFmx functions
RFmxSpecAn_TXPCfgMeasurementInterval(instrumentHandle, "", measInterval);
RFmxSpecAn_TXPCfgRBWFilter(instrumentHandle, "", RBW, RBWFilterType, RRCAlpha);
RFmxSpecAn_SelectMeasurements(instrumentHandle, "", RFMXSPECAN_VAL_TXP, RFMXSPECAN_VAL_TRUE);
// Pass Waveform to AnalyzeIQ function
RFmxSpecAn_AnalyzeIQ (instrumentHandle, "", "", x0, dx, iq, arraySize, reset, out averagingDone);
// Fetch Results using regular RFmx functions
RFmxSpecAn_TXPFetchMeasurement(instrumentHandle, "", timeout, &averageMeanPower, &peakToAveragePower, &maximumPower, &minimumPower);
// CLOSE Session
RFmxSpecAn_Close(instrumentHandle, RFMXSPECAN_VAL_FALSE);

Another way to use the RFmx Analysis-Only Mode is in combination with another driver, such as NI-RFSA, that acquires the waveform which is then passed to RFmx for analysis. In this case, the waveform acquisition, performed by the driver, is configured based on the recommended acquisition settings calculated by RFmx. The following example demonstrates this approach.

//Open
//Configure RFmx ACP measurement
//RFmx COMMIT
RFmxSpecAn_Commit(instrumentHandle,"");
// Configure Acquisition
niRFSA_GetAttributeViReal64(rfsaSession, "", NIRFSA_ATTR_MAX_DEVICE_INSTANTANEOUS_BANDWIDTH , &maxDeviceInstantaneousBandwidth);
RFmxInstr_GetRecommendedNumberOfRecords(instrumentHandle, "", &numberOfRecords);
RFmxInstr_GetRecommendedSpectralAcquisitionSpan(instrumentHandle, "", &spectralAcquisitionSpan);
if (maxDeviceInstantaneousBandwidth ≥ spectralAcquisitionSpan)
{
   // IQ Acquisition.
}
Else
{
   // Spectral Acquisition.
   RFmxInstr_GetRecommendedSpectralFFTWindow(instrumentHandle, "", & recommendedFFTWindow);
   RFmxInstr_GetRecommendedSpectralResolutionBandwidth(instrumentHandle, "", &spectralRBW);
   niRFSA_ConfigureAcquisitionType(rfsaSession, NIRFSA_VAL_SPECTRUM);
   switch (recommendedFFTWindow)
   {
      case RFMXSPECAN_VAL_SPECTRUM_FFT_WINDOW_FLAT_TOP : FFTWindowType = NIRFSA_VAL_FLAT_TOP;
      break;
      //other cases
      case RFMXSPECAN_VAL_SPECTRUM_FFT_WINDOW_NONE : FFTWindowType = NIRFSA_VAL_UNIFORM;
      break;
   }
   niRFSA_GetAttributeViReal64(rfsaSession, "", NIRFSA_ATTR_CENTER_FREQUENCY, &updatedCenterFrequency);
   niRFSA_SetAttributeViReal64(rfsaSession, "", NIRFSA_ATTR_RESOLUTION_BANDWIDTH, spectralRBW);
   niRFSA_SetAttributeViInt32(rfsaSession, "", NIRFSA_ATTR_FFT_WINDOW_TYPE, FFTWindowType);
   niRFSA_SetAttributeViInt32(rfsaSession, "", NIRFSA_ATTR_RESOLUTION_BANDWIDTH_TYPE, NIRFSA_VAL_RBW_BIN_WIDTH);
   niRFSA_SetAttributeViInt32(rfsaSession, "", NIRFSA_ATTR_POWER_SPECTRUM_UNITS, NIRFSA_VAL_DBM);
   niRFSA_SetAttributeViReal64(rfsaSession, "", NIRFSA_ATTR_SPECTRUM_SPAN, spectralAcquisitionSpan);
   for(i= 0; i < numberOfRecords; i++)
   {
      if(i == 0)
         reset = 1;
      else
         reset = 0;
      //READ the Power Spectrum from RFSA
      niRFSA_ReadPowerSpectrumF64(rfsaSession, "", timeout, powerSpectrumData64, numberOfSpectralLines, &spectrumInfo);
      spectrumInfo.initialFrequency = spectrumInfo.initialFrequency - updatedCenterFrequency;
      for(j=0;j<numberOfSpectralLines;j++)
      {
         powerSpectrumData32[j] = (ViReal32)powerSpectrumData64[j];
      }
      // Pass Waveform to AnalyzeIQ function
      RFmxSpecAn_AnalyzeSpectrum(instrumentHandle, "", "", spectrumInfo.initialFrequency, spectrumInfo.frequencyIncrement, powerSpectrumData32, spectrumInfo.numberOfSpectralLines, reset, NULL)
   }
}
//Fetch ACP Measurement Results
// Close

The programming flow for using the RFmx Analysis-Only Mode in combination with NI-RFSA closely resembles the flow used when analyzing a simulated waveform using RFmx. However, in addition to opening and configuring RFmx session, you can also open and configure an NI-RFSA session.NI-RFSA performs the actual acquisition of the waveform based on the recommended acquisition settings that are passed on from RFmx session to RFSA session using get/sets in C/ .NET or setting the property nodes (LabVIEW). You must call the RFmx AnalyzeIQ function to calculate the recommended acquisition settings based on the user-defined RFmx measurement configuration before recommended acquisition settings are passed on to the RFSA.  After NI-RFSA acquires the waveform, RFmxSpecAn_AnalyzeIQ function is called to perform user-defined measurements on the raw waveform data. Once the analysis of the waveform is complete, you can fetch measurement results and close both RFmx and RFSA sessions. Refer to the following examples for more information about using the RFmx Analysis-Only Mode to perform RF measurements:

  • <LabVIEW directory>\examples\RFmx\SpecAn\RFmxSpecAn ACP (Analysis Only).vi
  • <Users>\Public\Documents\National Instruments\RFmx\SpecAn\Examples\C\RFmxSpecAnAcpAnalysisOnly
  • <Users>\Public\Documents\National Instruments\RFmx\SpecAn\Examples\DotNET\VS2010\RFmxSpecAnAcpAnalysisOnly
Note Note  
  • Measurements such as harmonics and spurious emissions that require multiple acquisitions with different configurations are not supported in the Analysis-Only Mode. The Dynamic Range ACP measurement function is also not currently supported.
  • For the Analysis-Only mode, you need to adjust the t0 value of the I/Q waveforms according to pre-trigger samples present in the waveform before passing the waveform to the RFmx Analyze (IQ) function.
Note Note  Use the following recommended settings while analyzing the LTE waveforms in the Analysis-Only mode:
  • If the waveform data has been acquired with local oscillator (LO) at the center of RF signal bandwidth, set the the value of RFMXLTE_ATTR_ACQUISITION_BANDWIDTH_OPTIMIZATION_ENABLED function to RFMXLTE_VAL_ACQUISITION_BANDWIDTH_OPTIMIZATION_ENABLED_TRUE; otherwise, set the value of this function to RFMXLTE_VAL_ACQUISITION_BANDWIDTH_OPTIMIZATION_ENABLED_FALSE.
  • If you set the RFMXLTE_ATTR_MODACC_COMMON_CLOCK_SOURCE_ENABLED function to RFMXLTE_VAL_MODACC_COMMON_CLOCK_SOURCE_ENABLED_TRUE, the value of the RFMXLTE_ATTR_CENTER_FREQUENCY function configured in RFmxLTE session should be same as the center frequency used to acquire the waveform from the hardware.

WAS THIS ARTICLE HELPFUL?

Not Helpful