最近在做ADC的信号链路,经常遇到这几个关键词dB,dBm,dBFs这些。就想着简单做一下记录。包括为什么提出这种表示方式,这些表示方式的计算公式,和大家一起学习吧。
首先是为什么采用比值的计算方式,从对数的乘法运算显然就可以知道这样使用的好处。
我们现在将a换成第一级的vout1/vin1,b换成第二级的vout2/vout1,为了得到整个系统的电压放大比例就需要计算vout2/vin1,即a*b。对于简单的运算例如2*3,10*28,这些都较为简单,但是当数字得巨大无比时,例如1888374*2487847这时就不好计算了。但是当我们对其取对数,首先数据变小较为简便,其次运用对数乘法的优点可以将得到的值相加使得计算变得简便。所以在信号链中一般使用比值dB做单位。
接着是具体公式的计算:
对于dB有一个较为好记log前系数的方法,对于电压而言是20,对于功率而言是10,这里可以从功率的表达式入手,p=v^2/R,可以认为公式里面的2对应到了前面的系数里面,导致dB转换的时候出现了系数不同的情况。
有相对大小比例,就有绝对大小,而绝对大小就是与基准相比得到,dBm就是这样来的
同理dBW也是一样的,只不过基准是1W而不是1mW
而在ADC量化完成的数字域则有dBFs的概率,它是数字输出占满量程的比值,所以其最大为满量程0dB,正常都比其小。
当我们的ADC是12位时,对应的Full Scale就是2^12(4096)。而N代表的则是我们得到的码字,由此可以表征输入信号对应满量程输入范围的大小。
例如我现在知道对于一个12bitADC,当输入信号低于-40dBFs时,ADC校正系统停止工作。那么输入信号的码字约等于41,计算模拟量就是41/4096*2*Vref(差分输入)
最后是dB对应的查找表:(虽然但是应该记住来着)
dB | 倍数(功率比值) |
0dB | 1 |
3dB | 2 |
4.8dB | 3 |
6dB | 4 |
7dB | 5 |
7.8dB | 6 |
8.5dB | 7 |
9dB | 8 |
9.5dB | 9 |
10dB | 10 |
13dB | 20 |
14.8dB | 30 |
17dB | 50 |
20dB | 100 |
30dB | 1000 |
有了上表,简单计算一个两级140倍*10000000倍就是:
20*7*10000000=13dB+8.5dB+70dB=91.5dB