快速口算转换dBm与W的小技巧
dBm是一个表示功率绝对值的值(也可以认为是以1mW功率为基准的一个比值),计算公式为:10log(功率值/1mw)。 这里我们介绍一种将dBm转换为W的口算方法,这一方法总结起来就是 “1个基准”和“2个原则”:
一个基准:
30dBm=1W
2个原则:
原则一:
+3dBm,功率乘2倍;-3dBm,功率乘1/2
举例:
33dBm=30dBm+3dBm=1W×2=2W
27dBm=30dBm-3dBm=1W×1/2=0.5W
原则二:
+10dBm,功率乘10倍;-10dBm,功率乘1/10
举例:
40dBm=30dBm+10dBm=1W×10=10W
20dBm=30dBm-10dBm=1W×0.1=0.1W
以上可以简单的记作:30是基准,等于1W整,互换不算难,口算最简便。加3乘以2,加10乘以10;减3除以2,减10除以10。
几乎所有整数的dBm都可用以上的“1个基准”和“2个原则”转换为W。
例1:
44dBm=?W
44dBm=30dBm+10dBm+10dBm-3dBm-3dBm
=1W×10×10×1/2×1/2 =25W
例2:
32dBm=?W
32dBm=30dBm+3dBm+3dBm+3dBm+3dBm-10dBm
=1W×2×2×2×2×0.1=1.6W
计算技巧:
+1dBm和+2dBm的计算技巧
+1dBm=+10dBm-3dBm-3dBm-3dBm
=X×10×1/2×1/2×1/2
=X×1.25
+2dBm=-10dBm+3dBm+3dBm+3dBm+3dBm
=X×0.1×2×2×2×2=X×1.6w
在计算中,有时候也可以根据上面的规律变换为-1dBm和-2dBm,达到快速口速的目的,即:
-1dBm=-10dBm+3dBm+3dBm+3dBm
=X×0.1×2×2×2
=X×0.8
-2dBm=-3dBm+1dBm
=X×1/2×1.25
=X×0.625
例3:
51dBm=30dBm+10dBm+10dBm+1dBm
=1W×10×10×1.25
登录后方可回帖
dbm和w之间的精确换算方法:
import console; var dBm2W = function(dBm){ return (10**(dBm/10))/1000; } var W2dBm = function(W){ return 10*math.log10(1000*W); } console.log( string.format("%.20f", dBm2W(97)) ) console.log( W2dBm(0.1) ) console.pause(true);c++实现dbm转uW代码如下:
#include "stdafx.h" #include "cmath" double db2pow(double db) { return round(pow(10, db / 10) * 10000) / 10; }测试这个dll的aardio代码:
import console; var dll = ..raw.loadDll("/testDb2Pow.dll"); db2pow = dll.api("db2pow","double(double)" ) console.log( db2pow(-10.34) );//92.5 console.pause(true);