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