/// <summary> /// 根据精度测量噪低 /// </summary> /// <param name="accuracy"></param> /// <returns></returns> public double MeasureNoiseFloor(double accuracy) { accuracy = Math.Max(accuracy, 0.01); accuracy = Math.Min(accuracy, 10); double num = Math.Pow(10, 0.1 * accuracy); double num1 = 1 / (num - 1); double num2 = num1 * num1; int num3 = Math.Max(65, (int)(num2 / 10)); double num4 = 100; double num5 = 1 / (6.28318530717959 * num4); double sweepTime = this.SweepTime; double num6 = 3 * num5 * (double)num3; this.RBW = 1000; this.VBW = num4; this.SweepPoints = num3; this.SweepTime = num6; this.Marker1Function = SpectrumAnalyzer.MarkerFunctionType.BandIntervalPower; if (SpectrumAnalyzer.IsPSA(this.Model) || SpectrumAnalyzer.IsESA(this.Model)) { this.Marker1Mode = SpectrumAnalyzer.MarkerModeType.Span; } else { this.Sweep(); } this.MarkerPositionPoints = (double)((num3 - 1) / 2); this.MarkerSpanPoints = (double)(num3 - 4); this.Sweep(); this.SweepTime = sweepTime; return(this.Marker1Value - 30); }
public static SpectrumAnalyzer CreateDetectedSpectrumAnalyzer(string address) { SpectrumAnalyzer scpiSpectrumAnalyzer; try { string str = ScpiInstrument.DetermineModel(address); if (SpectrumAnalyzer.IsMXA(str) || SpectrumAnalyzer.IsEXA(str) || SpectrumAnalyzer.IsPXA(str)) { scpiSpectrumAnalyzer = new ScpiSpectrumAnalyzer(address); } else if (SpectrumAnalyzer.IsFSW(str)) { scpiSpectrumAnalyzer = new ScpiSpectrumAnalyzerFSW(address); } else if (SpectrumAnalyzer.IsESA(str) || SpectrumAnalyzer.IsPSA(str) || SpectrumAnalyzer.IsE4446A(str)) { scpiSpectrumAnalyzer = new ScpiSpectrumAnalyzerE4446A(address); } else if (SpectrumAnalyzer.IsAV4003(str)) { scpiSpectrumAnalyzer = new ScpiSpectrumAnalyzerAV4033(address); } else { throw new Exception(string.Concat(str, " 不支持对应型号的频谱仪")); } } catch (Exception exception) { throw new Exception(string.Concat("连接频谱仪错误: ", exception.Message)); } return(scpiSpectrumAnalyzer); }
public static SpectrumAnalyzer Connect(string currentAddress, SpectrumAnalyzer.ValidateSupportDelegate supportDelegate, bool interactive) { SpectrumAnalyzer spectrumAnalyzer = null; string str = (currentAddress != null ? currentAddress : "GPIB0::18::INSTR"); SpectrumAnalyzer.m_validateSupportDelegate = supportDelegate; if (interactive) { throw new Exception("不支持交互模式"); } try { if (SpectrumAnalyzer.DetermineSupport(str) == null) { spectrumAnalyzer = SpectrumAnalyzer.CreateDetectedSpectrumAnalyzer(str); } } catch { // MessageBox.Show("设备连接异常!"); } SpectrumAnalyzer.m_validateSupportDelegate = null; if (spectrumAnalyzer != null) { spectrumAnalyzer.Connected = true; } return(spectrumAnalyzer); }
protected override void DetermineOptions() { if (!SpectrumAnalyzer.IsESA(this.Model)) { base.DetermineOptions(); return; } this.m_options = ""; }
private static string DetermineSupport(string address) { if (SpectrumAnalyzer.m_validateSupportDelegate == null) { return(null); } SpectrumAnalyzer spectrumAnalyzer = null; try { spectrumAnalyzer = SpectrumAnalyzer.CreateDetectedSpectrumAnalyzer(address); } catch { throw; } if (spectrumAnalyzer == null) { return("无法识别对应的频谱仪"); } return(SpectrumAnalyzer.m_validateSupportDelegate(spectrumAnalyzer)); }
public virtual bool IsPXA() { return(SpectrumAnalyzer.IsPXA(this.Model)); }