|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:
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
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 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
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.
//Configure RFmx ACP measurement
// 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.
// Spectral Acquisition.
RFmxInstr_GetRecommendedSpectralFFTWindow(instrumentHandle, "", & recommendedFFTWindow);
RFmxInstr_GetRecommendedSpectralResolutionBandwidth(instrumentHandle, "", &spectralRBW);
case RFMXSPECAN_VAL_SPECTRUM_FFT_WINDOW_FLAT_TOP : FFTWindowType = NIRFSA_VAL_FLAT_TOP;
case RFMXSPECAN_VAL_SPECTRUM_FFT_WINDOW_NONE : FFTWindowType = NIRFSA_VAL_UNIFORM;
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;
reset = 0;
//READ the Power Spectrum from RFSA
niRFSA_ReadPowerSpectrumF64(rfsaSession, "", timeout, powerSpectrumData64, numberOfSpectralLines, &spectrumInfo);
spectrumInfo.initialFrequency = spectrumInfo.initialFrequency - updatedCenterFrequency;
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
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:
|Note Use the following recommended settings while analyzing the LTE waveforms in the Analysis-Only mode: