V1.2 2018-07-10:

1,增加UMTS GSM CDMA TDS部分计算功能。

2,暂时CDMA 只支持BC0,WCDMA不支持additional 频点

3,下方代码在新的代码中已经完全修改,留着只是参考。

链接: https://pan.baidu.com/s/1Qlboo38--EEGGU4-hQu9tg 密码: 3xyg

V1.1 2018-6-12:

1,增加了NR部分频点频率计算。

2,增加输入band计算频点频率上下限功能。

2018-5-13:代码稍微做了些修改,已经release出来分享在百度网盘,欢迎使用。

using System;
using System.Collections;
using System.Collections.Generic;namespace Helloworld
{class Earfcn{#region 频点频率对应关系/// <summary>/// 下行频率频点对应关系,36141-e10/// </summary>private static double[,] lstFdlNdl ={{0,0,0},                    //Band0{2110,0,599},{1930,600,1199},{1805,1200,1949},{2110,1950,2399},{869,2400,2649},            //Band5{875,2650,2749},{2620,2750,3449},{925,3450,3799},{1844.9,3800,4149},{2110,4150,4749},           //Band10{1475.9,4750,4949},{729,5010,5179},{746,5180,5279},{758,5280,5379},{0,0,0},{0,0,0},{734,5730,5849},            //Band17{860,5850,5999},{875,6000,6149},{791,6150,6449},            //Band20{1495.9,6450,6599},{3510,6600,7399},{2180,7500,7699},{1525,7700,8039},{1930,8040,8689},           //Band25{859,8690,9039},{852,9040,9209},{758,9210,9659},{717,9660,9769},{2350,9770,9869},           //Band30{462.5,9870,9919},{1452,9920,10359},{1900,36000,36199},{2010,36200,36349},{1850,36350,36949},         //Band35{1930,36950,37549},{1910,37550,37749},{2570,37750,38249},{1880,38250,38649},{2300,38650,39649},         //Band40{2496,39650,41589},{3400,41590,43589},{3600,43590,45589},{703,45590,46589},{1447,46590,46789},         //Band45{5150,46790,54539},{5855,54540,55239},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{2110,65536,66435},         //Band65{2110,66436,67335},{738,67336,67535},{753,67536,67835},{2570,67836,68335},{1995,68336,68485}          //Band70
        };/// <summary>/// 上行频率频点对应关系,36141-e10/// </summary>static double[,] lstFulNul ={{0,0,0},                    //Band0{1920,18000,18599},{1850,18600,19199},{1710,19200,19949},{1710,19950,20399},{824,20400,20649},          //Band5{830,20650,20749},{2500,20750,21449},{880,21450,21799},{1749.9,21800,22149},{1710,22150,22749},         //Band10{1427.9,22750,22949},{699,23010,23179},{777,23180,23279},{788,23280,23379},{0,0,0},{0,0,0},{704,23730,23849},          //Band17{815,23850,23999},{830,24000,24149},{832,24150,24449},          //Band20{1447.9,24450,24599},{3410,24600,25399},{2000,25500,25699},{1626.5,25700,26039},{1850,26040,26689},         //Band25{814,26690,27039},{807,27040,27209},{703,27210,27659},{0,0,0},{2305,27660,27759},         //Band30{452.5,27760,27809},{0,0,0},{1900,36000,36199},{2010,36200,36349},{1850,36350,36949},         //Band35{1930,36950,37549},{1910,37550,37749},{2570,37750,38249},{1880,38250,38649},{2300,38650,39649},         //Band40{2496,39650,41589},{3400,41590,43589},{3600,43590,45589},{703,45590,46589},{1447,46590,46789},         //Band45{5150,46790,54539},{5855,54540,55239},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{1920,131072,131971},       //Band65{1710,131972,132671},{0,0,0},{698,132672,132971},{0,0,0},{1695,132972,133221},       //Band70
        };#endregion 频点频率对应关系#region 通过频率获取其他信息/// <summary>/// 一次返回下行band 频率初始值 频点初始值,使用时需要注意返回值为ArrayList/// </summary>/// <param name="strearfcn">下行频率</param>/// <returns></returns>private static ArrayList dlfrequencyToBandFlowNlow(double _frequency){ArrayList list = new ArrayList();for (int i = 0; i < lstFdlNdl.GetLongLength(0); i++){if (_frequency > lstFdlNdl[i, 0] && _frequency < (lstFdlNdl[i, 0] + (lstFdlNdl[i, 2] - lstFdlNdl[i, 1]) / 10)){list.Add(i);list.Add(lstFdlNdl[i, 0]);list.Add(lstFdlNdl[i, 1]);}}return list;}/// <summary>/// 一次性返回上行band 频率初始值 频点初始值,使用时需要注意返回值为ArrayList/// </summary>/// <param name="strearfcn">上行频点</param>/// <returns></returns>private static ArrayList ulfrequencyToBandFlowNlow(double _frequency){ArrayList list = new ArrayList();for (int i = 0; i < lstFulNul.GetLongLength(0); i++){if (_frequency > lstFulNul[i, 0] && _frequency < (lstFulNul[i, 0] + (lstFulNul[i, 2] - lstFulNul[i, 1]) / 10)){list.Add(i);list.Add(lstFulNul[i, 0]);list.Add(lstFulNul[i, 1]);}}return list;}/// <summary>/// 根据下行频率计算下行频点/// </summary>/// <param name="_frequency">下行频率</param>/// <returns></returns>public static int[] GetearfcnDl(double _frequency){ArrayList list = dlfrequencyToBandFlowNlow(_frequency);List<Int32> earfcns = new List<int>();for (int i = 1; i < list.Count; i += 3){earfcns.Add(Convert.ToInt32(list[i + 1]) + (int)((_frequency - (double)list[i]) * 10));}return earfcns.ToArray();}/// <summary>/// 根据上行频率计算上行频点/// </summary>/// <param name="_frequency">上行频率</param>/// <returns></returns>public static int[] GetearfcnUl(double _frequency){ArrayList list = ulfrequencyToBandFlowNlow(_frequency);List<Int32> earfcns = new List<int>();for (int i = 1; i < list.Count; i += 3){earfcns.Add(Convert.ToInt32(list[i + 1]) + (int)((_frequency - (double)list[i]) * 10));}return earfcns.ToArray();}/// <summary>/// 根据下行频率计算Band/// </summary>/// <param name="_frequency"></param>/// <returns></returns>public static int[] GetBandByDlFre(double _frequency){ArrayList list = dlfrequencyToBandFlowNlow(_frequency);ArrayList Bands = new ArrayList();for (int i = 0; i < list.Count; i += 3){Bands.Add((int)list[i]);}return (int[])Bands.ToArray(typeof(Int32));}/// <summary>/// 根据上行频率计算Band/// </summary>/// <param name="_frequency"></param>/// <returns></returns>public static int[] GetBandByUlFre(double _frequency){ArrayList list = ulfrequencyToBandFlowNlow(_frequency);ArrayList Bands = new ArrayList();for (int i = 0; i < list.Count; i += 3){Bands.Add((int)list[i]);}return (int[])Bands.ToArray(typeof(Int32));}#endregion 通过频率获取其他信息#region 通过频点获取其他信息/// <summary>/// 一次返回下行band 频率初始值 频点初始值,使用时需要注意返回值为数组[band,起始频率,起始频点]/// </summary>/// <param name="strearfcn">下行频点</param>/// <returns></returns>private static double[] dlearfcnToBandFlowNlow(int _earfcn){double[] list = new double[3];for (int i = 0; i < lstFulNul.GetLongLength(0); i++){if (_earfcn > lstFdlNdl[i, 1] && _earfcn < lstFdlNdl[i, 2]){list[0] = (double)i;list[1] = lstFdlNdl[i, 0];list[2] = lstFdlNdl[i, 1];}}return list;}/// <summary>/// 一次性返回上行band 频率初始值 频点初始值,使用时需要注意返回值为数组[band,起始频率,起始频点]/// </summary>/// <param name="strearfcn">上行频点</param>/// <returns></returns>private static double[] ulearfcnToBandFlowNlow(int _earfcn){double[] list = new double[3];for (int i = 0; i < lstFulNul.GetLongLength(0); i++){if (_earfcn > lstFulNul[i, 1] && _earfcn < lstFulNul[i, 2]){list[0] = i;list[1] = lstFulNul[i, 0];list[2] = lstFulNul[i, 1];}}return list;}/// <summary>/// 根据下行频点获取物理频率/// </summary>/// <param name="_earfcn">LTE下行频点</param>/// <returns></returns>public static double GetFreDl(int _earfcn){double[] list = dlearfcnToBandFlowNlow(_earfcn);double frequency = list[1] + (_earfcn - list[2]) / 10;return frequency;}/// <summary>/// 根据上行频点获取物理频率/// </summary>/// <param name="_earfcn">LTE上行频点</param>/// <returns></returns>public static double GetFreUl(int _earfcn){double[] list = ulearfcnToBandFlowNlow(_earfcn);double frequency = list[1] + (_earfcn - list[2]) / 10;return frequency;}/// <summary>/// 根据下行频点获取Band/// </summary>/// <param name="_earfcn">LTE下行频点</param>/// <returns></returns>public static int GetBandByDlearfcn(int _earfcn){double[] list = dlearfcnToBandFlowNlow(_earfcn);return (int)list[0];}/// <summary>/// 根据上行频点获取Band/// </summary>/// <param name="_earfcn">LTE上行频点</param>/// <returns></returns>public static int GetBandByUlearfcn(int _earfcn){double[] list = ulearfcnToBandFlowNlow(_earfcn);return (int)list[0];}#endregion 通过频点获取其他信息#region 中移动相关/// <summary>/// 根据下行频点获取中移动规范子频段/// </summary>/// <param name="_earfcn">LTE下行中心频点</param>/// <returns></returns>public static string GetCmccBandByErcfcn(int _earfcn){double frequency = GetFreDl(_earfcn);return GetCmccBandByFreDl(frequency);}/// <summary>/// 根据中移动频段划分,获取具体子频段/// 这里需要注意连续子频段之间有重叠,实际重叠部分不应该规划为中心频点/// </summary>/// <param name="_frequency">物理频率</param>/// <returns>子频段</returns>public static string GetCmccBandByFreDl(double _frequency){string result = "other";if (_frequency > 2575 && _frequency < 2595)result = "D1";else if (_frequency > 2594.8 && _frequency < 2614.8)result = "D2";else if (_frequency > 2614.6 && _frequency < 2634.6)result = "D3";else if (_frequency > 2320 && _frequency < 2340)result = "E1";else if (_frequency > 2339.8 && _frequency < 2359.8)result = "E2";else if (_frequency > 2359.2 && _frequency < 2369.2)result = "E3";else if (_frequency > 1885 && _frequency < 1905)result = "F1";else if (_frequency > 1904.4 && _frequency < 1914.4)result = "F2";return result;}#endregion 中移动相关}
}

转载于:https://www.cnblogs.com/yanweitao/p/7423179.html

NR LTE UMTS GSM CDMA TDS频点频率换算工具相关推荐

  1. 中国3大移动公司(电信,联通,移动)频率分配大全(GSM,CDMA,CDMA2000,WCDMA,TD-SCDMA,LTE TD,FDD)

    中国3大移动公司(电信,联通,移动)频率分配大全(GSM,CDMA,CDMA2000,WCDMA,TD-SCDMA,LTE TD,FDD) TD-LTE频率分配(2013.12.5): 中国移动:18 ...

  2. 频点换算计算器android,LTE频率频点计算器

    LTE频率频点计算器是一个简单实用的频率频点计算工具,输入下行频.输入频段.输入频率和频段,频点计算频率.频率计算频点频段查询等.. 相关软件软件大小版本说明下载地址 LTE频率频点计算器是一个简单实 ...

  3. WellYa VoIP NGN IMS 3G GSM CDMA 通信资料下载集合 (希望置顶)

    WellYa VoIP NGN IMS 3G GSM CDMA 通信资料下载集合 (希望置顶) GSM, SIP, H.323, ISUP and IMS Call Flows http://www. ...

  4. 结合GSM协议文档与Tems工具捕捉到的GSM手机数据,分析L3消息。以0418-8r0为例.

    结合GSM协议文档与Tems工具捕捉到的GSM手机数据,分析L3消息.以0418-8r0为例. Tems显示的一个L3的Paging request type 2 message detail: 在消 ...

  5. 频点换算计算器android,LTE频率频点计算器免费版

    想要学习好电频计算?LTE频率频点计算器免费版肯定能够帮您解决相当多的问题!最为专业的电频频率计算方法就在这里等着您的了解!LTE频率频点计算器免费版直接在软件功能上面输入频段输入下行频的好功能让您在 ...

  6. GSM CDMA GPRS WAP等简单梳理

    GSM GSM是Global System for Mobile Communications的缩写,意为全球移动通信系统,是世界上主要的蜂窝系统之一.GSM是基于窄带TDMA制式,允许在一个射频同时 ...

  7. android 获取手机GSM/CDMA信号信息,并获得基站信息

    本文转自:http://software.intel.com/zh-cn/blogs/2011/12/16/android-gsmcdma/ 在Android中我们常用的轻松获取WIFI信号列表,那如 ...

  8. [转]android 获取手机GSM/CDMA信号信息

    本文转自:http://software.intel.com/zh-cn/blogs/2011/12/16/android-gsmcdma/ 在Android中我们常用的轻松获取WIFI信号列表,那如 ...

  9. GSM/CDMA/固定电话,呼叫等待,呼叫转移

    2009-04-15 15:13 一.GSM 1.呼叫等待 *43#(激活) / #43#(取消) / *#43# (查询) 2.呼叫转移 **002*转移到的号码#(激活) / ##002#(取消) ...

  10. Phone 多方通话流程(GSM CDMA)

    写在前面的话 本文主要分析Voice Call多方通话的流程,分析GSM和CDMA在多方通话不同的地方,研究的代码是Android 6.0的,目前只关注framework层. 1. 多方通话的概念 下 ...

最新文章

  1. Spring IOC 之 加载 Bean
  2. java xml特殊字符处理_dom4j特殊字符处理
  3. GRE核心词汇助记与精练-List10感觉,感情
  4. 图像传感器之CMOS(2)
  5. 深度学习 - MPII Human Pose Database数据集下载
  6. [Java] 内部类总结
  7. Hystrix熔断机制原理剖析
  8. 囧从流氓同事的河蟹喜酒归来......
  9. Unity 粒子特效相对位置和大小的调整
  10. SaaS已死。下一个。
  11. [影评]《太阳照样升起》
  12. IE提示:无法打开匿名级安全令牌
  13. 产品思维训练 | 常见的用户增长手段有哪些?
  14. [当人工智能遇上安全] 3.安全领域中的机器学习及机器学习恶意请求识别案例分享
  15. 跨浏览器的事件处理程序
  16. C++开发短信验证码通知短信
  17. 数据库二级复习笔记(1)选择题
  18. 2020考研计算机专业课,2020计算机考研大纲原文
  19. rails 代码结构详解
  20. Python读取MIT-BIH数据中心电信号

热门文章

  1. 华为笔试题 字符串解压缩(C语言解法)
  2. flash mx拖拽实例_Flash MX 2004 Professional的照片闪光器效果面板
  3. 免费下载百度文库的几款在线工具推荐
  4. 记录下Gradle化Android Gallery3D应用的过程
  5. Powerbuilder连接互联网数据库:DataWindowHTTP(dwhttp)
  6. 若依集成yuicompressor实现(CSS/JS压缩)
  7. Qt安卓开发环境搭建
  8. C语言 表白代码(I love you!)
  9. 测试tf卡读写速度软件,【图】测试工具,看看你的导航使用的TF卡速度有多快?...
  10. Node.js中运行JavaScript代码