/// <summary> /// 特征值所在线 /// </summary> /// <param name="ftName"></param> /// <returns></returns> public int FeatureLine(FeatureInfo.FtName ftName) { var speedCoef = MatchFt(ftName).SpeedCoefficient; var lineLeft = (int)Math.Round(speedCoef * Speed / FrequenceInterval, MidpointRounding.AwayFromZero); var lineRight = lineLeft + 1; var gdtLeft = Data[lineLeft]; var gdtRight = Data[lineRight]; var higherLine = gdtRight > gdtLeft ? lineRight : lineLeft; return(higherLine); }
public double GetFeatureValue(FeatureInfo.FtName ftName) { double result; var higherGdtPoint = FeatureLine(ftName); var dotStart = higherGdtPoint - 1; var dotEnd = higherGdtPoint + 1; var gdtStart = Data[dotStart]; var gdtMiddle = Data[higherGdtPoint]; var gdtEnd = Data[dotEnd]; //中间值必须为波峰 if (gdtMiddle > gdtStart && gdtMiddle > gdtEnd) { //result = gdtStart + gdtMiddle + gdtEnd; result = gdtMiddle; } else { result = -1; } return(result); }
public bool High(FeatureInfo.FtName ftName) { return(GetFeatureValue(ftName) > MatchFt(ftName).Limit); }
public FeatureInfo MatchFt(FeatureInfo.FtName ftName) { return(Features.Find(f => f.Name == ftName)); }