/// <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));
 }