12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- using Ips.Library.Entity;
- namespace Ips.Library.SigLoc
- {
- public static class SigCalcUtil
- {
- public static int CalcMutil(long fs, int bandWidth, bool sup4m = true)
- {
- int mutil;
- var num = Convert.ToInt32(fs / (bandWidth * 1.25));
- 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 <= 1);
- var fs = (int)(adfreq / mutil);
- return fs;
- }
- public static FreqPointInfo GetFreqPointBySigFreq(long sigFreq, SatType satType, long satTurn, long cfqTurn)
- {
- long upFreq, satDownFreq, downFreq;
- if (sigFreq < 400 * 1e6 && sigFreq > 200 * 1e6)
- {
- upFreq = sigFreq;
- if (satType == SatType.WarSat)
- {
- satDownFreq = WarSatFreq.GetDownFreq(upFreq);
- downFreq = satDownFreq + cfqTurn;
- }
- else
- {
- satDownFreq = upFreq + satTurn;
- downFreq = satDownFreq + cfqTurn;
- }
- }
- else if (sigFreq > 1000 * 1e6 && sigFreq < 2000 * 1e6)
- {
- downFreq = sigFreq;
- satDownFreq = sigFreq + cfqTurn;
- upFreq = satDownFreq + satTurn;
- }
- else if (sigFreq > 4000 * 1e6 && sigFreq < 6000 * 1e6)
- {
- downFreq = sigFreq - cfqTurn;
- satDownFreq = sigFreq;
- upFreq = sigFreq + satTurn;
- }
- else
- {
- satDownFreq = sigFreq - satTurn;
- downFreq = satDownFreq - cfqTurn;
- upFreq = sigFreq;
- }
- 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;
- // }
- //}
- }
- }
|