快速口算转换dBm与W的小技巧

By admin at 2019-05-14 • 0人收藏 • 1125人看过

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


1 个回复 | 最后更新于 2019-05-23
2019-05-23   #1

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);

image.png


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);

db2Pow.zip


登录后方可回帖

登 录
信息栏
 私人小站

本站域名

ChengXu.XYZ

投诉联系:  popdes@126.com



快速上位机开发学习,本站主要记录了学习过程中遇到的问题和解决办法及上位机代码分享

这里主要专注于学习交流和经验分享.
纯私人站,当笔记本用的,学到哪写到哪.
如果侵权,联系 Popdes@126.com

友情链接
Aardio官方
Aardio资源网


才仁机械


网站地图SiteMap

Loading...