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