工作中多次用到LTE频率和频点直接的来回转换

写了一个小工具可以自动在频率和频点直接转换,

代码如下:

################################################################################

# @name             Channel Number\Frequency convert to each other
# @
# @date                  2016-03-24
# @author                Yunpeng
# @version               v1
#################################################################################EARFCN = {            #every row stand for: band:Fdl_low[Mhz],Noffs-DL,Range of Ndl,Ful_low[Mhz],Noffs-UL,Range of Nul.(this information is get from 3GPP 36141v1114)1:[2110,0,range(600),1920,18000,range(18000,186000)],2:[1930,600,range(600,1200),1850,18600,range(18600,19200)],3:[1805,1200,range(1200,1950),1710,19200,range(19200,19950)],4:[2110,1950,range(1950,2400),1710,19950,range(19950,20400)],5:[869,2400,range(2400,2650),824,20400,range(20400,20650)],6:[875,2650,range(2650,2750),830,20650,range(20650,20750)],7:[2620,2750,range(2750,3450),2500,20750,range(20750,21450)],8:[925,3450,range(3450,3800),880,21450,range(21450,21800)],9:[1844.9,3800,range(3800,4149),1749.9,21800,range(21800,22149)],10:[2110,4150,range(4150,4750),1710,22150,range(22150,22745)],11:[1475.9,4750,range(4750,4950),1427.9,22750,range(22750,22950)],12:[729,5010,range(5010,5180),699,23010,range(23010,23180)],13:[746,5180,range(5180,5280),777,23180,range(23180,23280)],14:[758,5280,range(5280,5380),788,23280,range(23280,23379)],17:[734,5730,range(5730,5850),704,23730,range(23730,23850)],18:[860,5850,range(5850,6000),815,23850,range(23850,24000)],19:[875,6000,range(6000,6150),830,24000,range(24000,24150)],20:[791,6150,range(6150,6450),832,24150,range(24150,24450)],21:[1495.9,6450,range(6450,6600),1447.9,24450,range(24450,24600)],22:[3510,6600,range(6600,7400),3410,24600,range(24600,25399)],23:[2180,7500,range(7500,7700),2000,25500,range(25500,25699)],24:[1525,7700,range(7700,8040),1626.5,25700,range(25700,26040)],25:[1930,8040,range(8040,8690),1850,26040,range(26040,26690)],26:[859,8690,range(8690,9040),814,26690,range(26690,27040)],27:[852,9040,range(9040,9209),807,27040,range(27040,27210)],28:[758,9210,range(9210,9660),703,27210,range(27210,27660)],33:[1900,36000,range(36000,36200),1900,36000,range(36000,36200)],34:[2010,36200,range(36200,36350),2010,36200,range(36200,36350)],35:[1850,36350,range(36350,36950),1850,36350,range(36350,36950)],36:[1930,36950,range(36950,37550),1930,36950,range(36950,37550)],37:[1910,37550,range(37550,37750),1910,37550,range(37550,37750)],38:[2570,37750,range(37750,38250),2570,37750,range(37750,38250)],39:[1880,38250,range(38250,38650),1880,38250,range(38250,38650)],40:[2300,38650,range(38650,39650),2300,38650,range(38650,39650)],41:[2496,39650,range(39650,41590),2496,39650,range(39650,41590)],42:[3400,41590,range(41590,43590),3400,41590,range(41590,43590)],43:[3600,43590,range(43590,45590),3600,43590,range(43590,45590)],44:[703,45590,range(45590,46590),703,45590,range(45590,46590)]}
FDDbandPool = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,17,18,19,20,21,22,23,24,25,26,27,28]
TDDbandPool = [33,34,35,36,37,38,39,40,41,42,43,44]def N2F(n):# transfer channel number to frequencyf = 0.0N = int(n) # channel number should be a integerfor i in FDDbandPool:if N in EARFCN[i][2]:Fdl = EARFCN[i][0] + 0.1*(N - EARFCN[i][1])print '@@ hi, this is a FDD-DL channel number ~'f = Fdl return fif N in EARFCN[i][5]:Ful = EARFCN[i][3] + 0.1*(N - EARFCN[i][4])print '@@ hi, this is a FDD-UL channel number ~'f = Ful return fif (f == 0.0):for i in TDDbandPool:if N in EARFCN[i][2]:Fdl = EARFCN[i][0] + 0.1*(N - EARFCN[i][1])print '@@ hi, this is a TDD channel number ~' # DL\UL frequency and channel number are same in TDDf = Fdl return f
def F2N(F,band,DU):# tranfer frequency to channel numberif 'DL' in DU or 'dl' in DU:Ndl = 10*(F - EARFCN[band][0]) + EARFCN[band][1]return Ndlif 'UL' in DU or 'ul' in DU:Nul = 10*(F - EARFCN[band][3]) + EARFCN[band][4]return Nulprint"\
#===================================\n\
#   Which transform you want to do ?\n\
#        1.Channel Number to Frequency\n\
#        2.Frequency to Channel Number\n\
#   Please input the choice[1 or 2]:"NFchoice = raw_input('Your choice:>')
if '1' in NFchoice:cnum = int(raw_input('#   Please tell me the Channel Number ~\nChannel_Number:>'))f = N2F(cnum)print ("matching frequency is [%s][Mhz]" % str(f))
if '2' in NFchoice:freq = float(raw_input('#   Please tell me the Frequency ~\nFrequency[Mhz]:>'))bandNum = int(raw_input('#   Please tell me the Band number[integer]\nBand number:>'))DU = raw_input('#   Please tell me this is a UL or DL frequency?\ntype "UL" or "DL":>')nn = int(F2N(freq,bandNum,DU))print 'matching Channel number is [%s]' % str(nn)

写个工具实现频率和频点的转换相关推荐

  1. CowNew开源团队新书《自己动手写开发工具》隆重上市

    <自己动手写开发工具--基于Eclipse的工具开发> 本书系统地介绍了SWT.Draw2D.GEF.JET等与Eclipse插件开发相关的基础知识,并且以实际的开发案例来演示这些知识的实 ...

  2. 《自己动手写开发工具》试读版电子书及光盘

    <自己动手写开发工具>系统地介绍了SWT.Draw2D.GEF.JET等与Eclipse插件开发相关的基础知识,并且以实际的开发案例来演示这些知识的实战性应用,通过对这些实际开发案例的学习 ...

  3. python gif压缩_实用性视频转gif,压缩等常用文件工具处理及转换(含自写python工具)...

    本文包含一些实用性的工具的推荐使用,和利用python去写一些实用性工具,我会把类似于像视频转换,pdf压缩啊,统统的在这里做一个收集,感兴趣的可以收藏和关注我, 背景: 大概我写<androi ...

  4. 写一个工具生成数据库实体类

    写一个java工具从数据库生成实体类 开始写之前的说明 ​ 这只是一个简单的解析数据库建表语句之后,根据解析结果生成java文件的一个简单工具.写的原因有两个. ​ 1:项目中没有人写实体类的注释,字 ...

  5. Linux内核源代码分析——可执行文件header处理(二进制文件读写范例,写DUL工具入门指引)...

    在把Linux内核源代码生成Image之前,需要把执行文件头结构信息剔除出来.这个过程对理解Linux内核具有很大的帮助.同时,由于是对可执行文件进行直接读写操作,想写DUL工具的童鞋可以在这里学习到 ...

  6. c# MODBUS协议源码 上/下位机源码烧写Flash工具

    c# MODBUS协议源码 上/下位机源码烧写Flash工具 包含: 1.C#上位机源码 2.上位机源码包含MODBUS协议源码 3.下位机源码 下位机源码采用STM32F10x芯片 的uC/OS-I ...

  7. 移动通信的频段、频率与频点

    移动通信的频段.频率与频点 转载-http://hi.baidu.com/whynotdo/blog/item/edf7992ed9015b311f3089f9.html 关于频段: 频段就是一定的频 ...

  8. 一刀工具箱- 在线AI智能写诗工具

    一刀工具箱是一款集合多个实用工具的智能APP,包含100多种不同的功能,基本满足您在工作生活使用需求,只需要一个应用就可以解决日常小问题,不再需要下多个应用 1.打开APP,进行APP首页,点击&qu ...

  9. excel写公式工具

    Excel写公式工具,可以根据汉字描述自动生成公式.支持合并单元格,支持合并单元格运算公式.查找满足条件行对应的数值,提取单元格文字公式.排名公式函数.求值相同的行列的和公式.求值相同的平均值等等.是 ...

最新文章

  1. 数据分析从头学_数据新闻学入门指南:让我们从头开始构建故事
  2. MVC项目开发中那些用到的知识点(登录权限认证)
  3. 教程干货——零基础创建简单的在线审批流程
  4. CSS中position详解与常见应用实现
  5. 使用PowerDbg自动化Windbg调试过程
  6. react安装_超全面详细一条龙教程!从零搭建React项目全家桶(上篇)
  7. JAVA中运用数组的四种排序方法
  8. mysql数据库表子查询语句_MySQL使用子查询教程
  9. java读取文件buffered_关于Java中使用BufferedReader读取文件的疑惑
  10. 数学建模预测模型实例(二)---表白墙影响力量化模型
  11. 欧姆龙plc学习笔记(八)(上传nb程序)
  12. 双网卡实现内外网同时上网
  13. 浅谈谷歌退出中国市场带来的问题
  14. c4d怎么导入fbx_c4d怎么导入模型?品索教你Maya模型文件如何导入到C4d
  15. 惠普服务器lio装系统,惠普Pavilion一体机一键u盘装系统win10教程
  16. 健身类小程序前后端源码
  17. 【C语言】贪吃蛇游戏的实现(一)
  18. 乐优商城(三十)——授权中心
  19. 怎么把两段音频合成一段-快速合并音频文件
  20. 在BCB中使用DirectX

热门文章

  1. WPF+VLC 写一个视频播放器(一、搭建环境)
  2. spring-boot sigar的使用
  3. 音视频开发--Hi3516a+IMX290--过程(1)
  4. vector at()和下标访问哪个好?
  5. [UE4]如何下载并编译UE4源码
  6. 基于虚拟机对第三代蜜网技术Honeywall的设置
  7. 封装 发送socket api遇到的坑(涉及数据格式转换)
  8. 使用博客园做MarkDown图床
  9. php向文件中写一行 换行,如何实现php向文件中写入换行
  10. 【正点原子FPGA连载】第十四章 串口通信实验 -摘自【正点原子】新起点之FPGA开发指南_V2.1