/// <summary>Configures common settings for the ModAcc measurement and selects the measurement.</summary> /// <param name="lte">Specifies the LTE signal to configure.</param> /// <param name="modAccConfig">Specifies the ModAcc settings to apply.</param> /// <param name="selectorString">Pass an empty string. The signal name that is passed when creating the signal configuration is used. See the RFmx help for more documention of this parameter.</param> public static void ConfigureModAcc(RFmxLteMX lte, ModAccConfiguration modAccConfig, string selectorString = "") { lte.SelectMeasurements(selectorString, RFmxLteMXMeasurementTypes.ModAcc, false); lte.ModAcc.Configuration.ConfigureAveraging(selectorString, modAccConfig.AveragingEnabled, modAccConfig.AveragingCount); lte.ModAcc.Configuration.ConfigureSynchronizationModeAndInterval(selectorString, modAccConfig.SynchronizationMode, modAccConfig.MeasurementOffset, modAccConfig.MeasurementLength); lte.ModAcc.Configuration.ConfigureEvmUnit(selectorString, modAccConfig.EvmUnit); }
/// <summary>Configures common settings for the ModAcc measurement and selects the measurement.</summary> /// <param name="nr">Specifies the NR signal to configure.</param> /// <param name="modAccConfig">Specifies the ModAcc settings to apply.</param> /// <param name="selectorString">Pass an empty string. The signal name that is passed when creating the signal configuration is used. See the RFmx help for more documention of this parameter.</param> public static void ConfigureModacc(RFmxNRMX nr, ModAccConfiguration modAccConfig, string selectorString = "") { nr.SelectMeasurements(selectorString, RFmxNRMXMeasurementTypes.ModAcc, false); nr.ModAcc.Configuration.SetMeasurementLengthUnit(selectorString, modAccConfig.MeasurementLengthUnit); nr.ModAcc.Configuration.SetMeasurementOffset(selectorString, modAccConfig.MeasurementOffset); nr.ModAcc.Configuration.SetMeasurementLength(selectorString, modAccConfig.MeasurementLength); nr.ModAcc.Configuration.SetEvmUnit(selectorString, modAccConfig.EvmUnit); nr.ModAcc.Configuration.SetAveragingEnabled(selectorString, modAccConfig.AveragingEnabled); nr.ModAcc.Configuration.SetAveragingCount(selectorString, modAccConfig.AveragingCount); }
public static void ConfigureModacc(RFmxNRMX nrSignal, ModAccConfiguration modaccConfig, string selectorString = "") { nrSignal.ModAcc.Configuration.SetMeasurementEnabled(selectorString, true); nrSignal.ModAcc.Configuration.SetAllTracesEnabled(selectorString, true); nrSignal.ModAcc.Configuration.SetSynchronizationMode(selectorString, modaccConfig.synchronizationMode); nrSignal.ModAcc.Configuration.SetAveragingEnabled(selectorString, modaccConfig.averagingEnabled); nrSignal.ModAcc.Configuration.SetAveragingCount(selectorString, modaccConfig.averagingCount); nrSignal.ModAcc.Configuration.SetMeasurementLengthUnit(selectorString, modaccConfig.measurementLengthUnit); nrSignal.ModAcc.Configuration.SetMeasurementOffset(selectorString, modaccConfig.measurementOffset); nrSignal.ModAcc.Configuration.SetMeasurementLength(selectorString, modaccConfig.measurementLength); }
public void TestOfflineAnalysisSingleCarrierTdd() { RFmxInstrMX instr = new RFmxInstrMX("", "AnalysisOnly=1"); RFmxLteMX lte = instr.GetLteSignalConfiguration(); ConfigureCommon(lte, CommonConfiguration.GetDefault()); StandardConfiguration signalConfig = StandardConfiguration.GetDefault(); signalConfig.DuplexScheme = RFmxLteMXDuplexScheme.Tdd; ConfigureStandard(lte, signalConfig); ModAccConfiguration modAccConfig = ModAccConfiguration.GetDefault(); modAccConfig.MeasurementOffset = 4; ConfigureModAcc(lte, modAccConfig); lte.Commit(""); instr.GetRecommendedIQPreTriggerTime("", out double pretriggerTime); PrecisionTimeSpan timeOffset = new PrecisionTimeSpan(-pretriggerTime); Waveform wfm = LoadWaveformFromTDMS(@"Support Files\LTE_TDD_2.0.tdms"); Buffer <ComplexSingle> readBuffer = wfm.Data.GetBuffer(true); WritableBuffer <ComplexSingle> writeBuffer = wfm.Data.GetWritableBuffer(); int sampleOffset = (int)Math.Round(pretriggerTime * wfm.SampleRate); for (int i = 0; i < readBuffer.Size; i++) { writeBuffer[i] = readBuffer[(i - sampleOffset + readBuffer.Size) % readBuffer.Size]; } wfm.Data.PrecisionTiming = PrecisionWaveformTiming.CreateWithRegularInterval( wfm.Data.PrecisionTiming.SampleInterval, timeOffset); lte.AnalyzeIQ("", "", wfm.Data, true, out _); ModAccResults modAccResults = FetchModAcc(lte); instr.Close(); Assert.IsTrue(modAccResults.ComponentCarrierResults[0].MeanRmsCompositeEvm < 0.001); }