| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 | using Ips.Library.Entity;namespace Ips.Library.LocLib{    public static class SigCalcUtil    {        public static int CalcMutil(long fs, int bandWidth, bool sup4m = false, double fsb = 1.25)        {            int mutil;            var num = Convert.ToInt32(fs / (bandWidth * fsb));            if (!sup4m || num <= 16)            {                var num1 = (int)(Math.Log10(num) / Math.Log10(2));                mutil = (int)Math.Pow(2, num1);            }            else            {                mutil = ((int)(num / 4)) * 4;            }            return mutil;        }        public static int CalcFs(long clockFreq, int bandWidth, int adcMutil = 1)        {            if (adcMutil == 0) return (int)clockFreq;            var adfreq = clockFreq / adcMutil;            var mutil = CalcMutil(adfreq, bandWidth, adcMutil < 2);            var fs = (int)(adfreq / mutil);            return fs;        }        public static int CalcFs(long clockFreq, int bandWidth, bool sup4m = false, double fsb = 1.25)        {            var mutil = CalcMutil(clockFreq, bandWidth, sup4m, fsb);            var fs = (int)(clockFreq / mutil);            return fs;        }        public static FreqPointInfo GetFreqPointBySigFreq(long sigFreq, SatType satType, long satTurn, long cfqTurn)        {            long upFreq = sigFreq, satDownFreq = sigFreq - satTurn, downFreq = Math.Abs(satDownFreq - cfqTurn);            if (sigFreq > 280 * 1e6 && sigFreq < 320 * 1e6)            {                upFreq = sigFreq;                if (satType == SatType.WarSat)                {                    satDownFreq = WarSatFreq.GetDownFreq(upFreq);                    downFreq = Math.Abs(satDownFreq + cfqTurn);                }                else                {                    satDownFreq = upFreq + satTurn;                    downFreq = Math.Abs(satDownFreq + cfqTurn);                }            }            //else if (sigFreq > 950 * 1e6 && sigFreq <= 2150 * 1e6)            //{            //    downFreq = sigFreq;            //    satDownFreq = sigFreq + cfqTurn;            //    upFreq = satDownFreq + satTurn;            //}            //else if (sigFreq > 2150 * 1e6)            //{            //    downFreq = sigFreq - cfqTurn;            //    satDownFreq = sigFreq;            //    upFreq = sigFreq + satTurn;            //}            FreqPointInfo freqInfo = new FreqPointInfo()            {                SigFreq = sigFreq,                UpFreq = upFreq,                SatDownFreq = satDownFreq,                DownFreq = downFreq            };            return freqInfo;        }        //public static long GetDownFreq(long upFreq, SatType satType, long satTurn, long cfqTurn)        //{        //    long downFreq = 0;        //    if (upFreq < 400 * 1e6 && upFreq > 200 * 1e6)        //    {        //        if (satType == SatType.WarSat)        //        {        //            downFreq = WarSatFreq.GetDownFreq(upFreq) + cfqTurn;        //        }        //        else        //        {        //            downFreq = upFreq + satTurn + cfqTurn;        //        }        //    }        //    else        //    {        //        downFreq = upFreq - satTurn - cfqTurn;        //    }        //}    }}
 |