/// <summary> /// 分析波形不匹配度 /// </summary> /// <param name="waveform">测试波形</param> /// <param name="refData">参考波形</param> /// <param name="gainMismatch">增益比</param> /// <param name="phaseMismatch">相移</param> public static void AnalyzeMismatch(double[] waveform, double[] refData, out double gainMismatch, out double phaseMismatch) { MismatchAnalyzer analyzer = new MismatchAnalyzer(); analyzer.SetReferenceData(refData); // analyzer.SetDataDelayCounts(AnalyzePathDelay(waveform, refData)); uint dataLength = (uint)(waveform.Length >= refData.Length ? refData.Length : waveform.Length); uint pathDelay = AnalyzePathDelay(waveform, refData); analyzer.Analyze(waveform, dataLength); analyzer.SetDataDelayCounts(pathDelay); gainMismatch = analyzer.GetGainMismatch(); phaseMismatch = analyzer.GetPhaseMismatch(); }