123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace Uestc.Auto6.Dso.ComModel
- {
- public static class Tables
- {
- private static readonly Dictionary<Int32, (Int64 Span,Int32 Key,Int32 Ext, Double SampleRate,Double DDCGain)> _AnalogRFSpanScaleTable = new Dictionary<Int32, (Int64 Span, Int32 Key, Int32 Ext, Double SampleRate, Double DDCGain)>{
- {0 ,( 0, 0, 1, 1,1)},
- {1 ,( 8_000,127,2000000, 10_000,0.6776)},//0418,RBW修改为10Hz,抽取比修改为2000000
- //{1 ,( 6_250,127,2560000, 7_812.5,0.6776)},
- {2 ,( 25_000,123,640000 , 31_250,0.6776)},
- {3 ,( 62_500,119,256000 , 78_125,0.4441)},
- {4 ,( 250_000,115,64000 , 312_500,0.4441)},
- {5 ,( 625_000,111,25600 , 781_250,0.5821)},
- {6 ,( 2_500_000,107,6400 , 3_125_000,0.5821)},
- {7 ,( 6_250_000,103,2560 , 7_812_500,0.7629)},
- {8 ,( 25_000_000,99,640 , 31_250_000,1)},
- {9 ,( 50_000_000,98,320 , 62_500_000,1)},
- {10,( 100_000_000,97,160 , 125_000_000,1)},
- {11,( 200_000_000,96,80 , 250_000_000,1)},
- {12,( 800_000_000,64,20 , 1000_000_000,1)},
- {13,(2_000_000_000,32,8 , 2_500_000_000,1)},
- {14,(8_000_000_000, 0,1 ,20_000_000_000,1)},
- };
- public static readonly Dictionary<RFWindowType,Double> WindowGainTable = new Dictionary<RFWindowType, Double>{
- {RFWindowType.Rectangle ,0.89},
- {RFWindowType.Hann ,1.44},
- {RFWindowType.Hamming ,1.3},
- {RFWindowType.Blackman ,1.9},
- {RFWindowType.Flattop ,3.77},
- {RFWindowType.Kaiser ,2.23},
- {RFWindowType.Gaussian ,1.4468},
- };
- public static (Int64 Span, Int32 Key, Int32 Ext, Double SampleRate, Double DDCGain) GetRFHDScale(Int64 value, ChannelId id)
- {
- if (id == ChannelId.RF)
- {
- return Get10GRFHDScale(value);
- }
- return GetRFHDScale(value);
- }
- public static Double GetRFTranslateSampleRate(Int64 value, ChannelId id)
- {
- if (id == ChannelId.RF)
- {
- return Get10GRFTranslateSampleRate(value);
- }
- return GetRFTranslateSampleRate(value);
- }
- public static (Int64 Span, Int32 Key, Int32 Ext, Double SampleRate, Double DDCGain) GetRFHDScale(Int64 value)
- {
- for (int i = 0; i < _AnalogRFSpanScaleTable.Count - 1; i++)
- {
- if (value> _AnalogRFSpanScaleTable[i].Span && value <= _AnalogRFSpanScaleTable[i+1].Span)
- {
- return _AnalogRFSpanScaleTable[i + 1];
- }
- }
- return _AnalogRFSpanScaleTable[_AnalogRFSpanScaleTable.Count - 1];
- }
- public static Double GetRFTranslateSampleRate(Int64 value)
- {
- for (int i = 0; i < _AnalogRFSpanScaleTable.Count - 1; i++)
- {
- if (value > _AnalogRFSpanScaleTable[i].Span && value <= _AnalogRFSpanScaleTable[i + 1].Span)
- {
- return _AnalogRFSpanScaleTable[i + 1].SampleRate;
- }
- }
- return _AnalogRFSpanScaleTable[_AnalogRFSpanScaleTable.Count - 1].SampleRate;
- }
- private static readonly Dictionary<Int32, (Int64 Span, Int32 Key, Int32 Ext, Double SampleRate, Double DDCGain)> _10GRFSpanScaleTable = new Dictionary<Int32, (Int64 Span, Int32 Key, Int32 Ext, Double SampleRate, Double DDCGain)>{
- {0 ,( 0 / 2, 0, 1, 1,1)},
- {1 ,( 8_000 / 2,127,2000000, 10_000 / 2,0.6776)},//0418,RBW修改为10Hz,抽取比修改为2000000
- {2 ,( 25_000 / 2,123,640000 , 31_250 / 2,0.6776)},
- {3 ,( 62_500 / 2,119,256000 , 78_125 / 2,0.4441)},
- {4 ,( 250_000 / 2,115,64000 , 312_500 / 2,0.4441)},
- {5 ,( 625_000 / 2,111,25600 , 781_250 / 2,0.5821)},
- {6 ,( 2_500_000 / 2,107,6400 , 3_125_000 / 2,0.5821)},
- {7 ,( 6_250_000 / 2,103,2560 , 7_812_500 / 2,0.7629)},
- {8 ,( 25_000_000 / 2,99,640 , 31_250_000 / 2,1)},
- {9 ,( 50_000_000 / 2,98,320 , 62_500_000 / 2,1)},
- {10,( 100_000_000 / 2,97,160 , 125_000_000 / 2,1)},
- {11,( 200_000_000 / 2,96,80 , 250_000_000 / 2,1)},
- {12,( 800_000_000 / 2,64,20 , 1_000_000_000 / 2,1)},
- {13,(2_000_000_000 / 2,32,8 , 2_500_000_000 / 2,1)},
- {14,(8_000_000_000 / 2, 0,1 ,20_000_000_000 / 2,1)},
- };
- public static (Int64 Span, Int32 Key, Int32 Ext, Double SampleRate, Double DDCGain) Get10GRFHDScale(Int64 value)
- {
- for (int i = 0; i < _10GRFSpanScaleTable.Count - 1; i++)
- {
- if (value > _10GRFSpanScaleTable[i].Span && value <= _10GRFSpanScaleTable[i + 1].Span)
- {
- return _10GRFSpanScaleTable[i + 1];
- }
- }
- return _10GRFSpanScaleTable[_10GRFSpanScaleTable.Count - 1];
- }
- public static Double Get10GRFTranslateSampleRate(Int64 value)
- {
- for (int i = 0; i < _10GRFSpanScaleTable.Count - 1; i++)
- {
- if (value > _10GRFSpanScaleTable[i].Span && value <= _10GRFSpanScaleTable[i + 1].Span)
- {
- return _10GRFSpanScaleTable[i + 1].SampleRate;
- }
- }
- return _10GRFSpanScaleTable[_10GRFSpanScaleTable.Count - 1].SampleRate;
- }
- }
- }
|