SigCalcUtil.cs 3.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. using Ips.Library.Entity;
  2. namespace Ips.Library.LocLib
  3. {
  4. public static class SigCalcUtil
  5. {
  6. public static int CalcMutil(long fs, int bandWidth, bool sup4m = false, double fsb = 1.25)
  7. {
  8. int mutil;
  9. var num = Convert.ToInt32(fs / (bandWidth * fsb));
  10. if (!sup4m || num <= 16)
  11. {
  12. var num1 = (int)(Math.Log10(num) / Math.Log10(2));
  13. mutil = (int)Math.Pow(2, num1);
  14. }
  15. else
  16. {
  17. mutil = ((int)(num / 4)) * 4;
  18. }
  19. return mutil;
  20. }
  21. public static int CalcFs(long clockFreq, int bandWidth, int adcMutil = 1)
  22. {
  23. if (adcMutil == 0) return (int)clockFreq;
  24. var adfreq = clockFreq / adcMutil;
  25. var mutil = CalcMutil(adfreq, bandWidth, adcMutil < 2);
  26. var fs = (int)(adfreq / mutil);
  27. return fs;
  28. }
  29. public static int CalcFs(long clockFreq, int bandWidth, bool sup4m = false, double fsb = 1.25)
  30. {
  31. var mutil = CalcMutil(clockFreq, bandWidth, sup4m, fsb);
  32. var fs = (int)(clockFreq / mutil);
  33. return fs;
  34. }
  35. public static FreqPointInfo GetFreqPointBySigFreq(long sigFreq, SatType satType, long satTurn, long cfqTurn)
  36. {
  37. long upFreq = sigFreq, satDownFreq = sigFreq - satTurn, downFreq = Math.Abs(satDownFreq - cfqTurn);
  38. if (sigFreq > 280 * 1e6 && sigFreq < 320 * 1e6)
  39. {
  40. upFreq = sigFreq;
  41. if (satType == SatType.WarSat)
  42. {
  43. satDownFreq = WarSatFreq.GetDownFreq(upFreq);
  44. downFreq = Math.Abs(satDownFreq + cfqTurn);
  45. }
  46. else
  47. {
  48. satDownFreq = upFreq + satTurn;
  49. downFreq = Math.Abs(satDownFreq + cfqTurn);
  50. }
  51. }
  52. //else if (sigFreq > 950 * 1e6 && sigFreq <= 2150 * 1e6)
  53. //{
  54. // downFreq = sigFreq;
  55. // satDownFreq = sigFreq + cfqTurn;
  56. // upFreq = satDownFreq + satTurn;
  57. //}
  58. //else if (sigFreq > 2150 * 1e6)
  59. //{
  60. // downFreq = sigFreq - cfqTurn;
  61. // satDownFreq = sigFreq;
  62. // upFreq = sigFreq + satTurn;
  63. //}
  64. FreqPointInfo freqInfo = new FreqPointInfo()
  65. {
  66. SigFreq = sigFreq,
  67. UpFreq = upFreq,
  68. SatDownFreq = satDownFreq,
  69. DownFreq = downFreq
  70. };
  71. return freqInfo;
  72. }
  73. //public static long GetDownFreq(long upFreq, SatType satType, long satTurn, long cfqTurn)
  74. //{
  75. // long downFreq = 0;
  76. // if (upFreq < 400 * 1e6 && upFreq > 200 * 1e6)
  77. // {
  78. // if (satType == SatType.WarSat)
  79. // {
  80. // downFreq = WarSatFreq.GetDownFreq(upFreq) + cfqTurn;
  81. // }
  82. // else
  83. // {
  84. // downFreq = upFreq + satTurn + cfqTurn;
  85. // }
  86. // }
  87. // else
  88. // {
  89. // downFreq = upFreq - satTurn - cfqTurn;
  90. // }
  91. //}
  92. }
  93. }