dbFS计算

#include 
#include 
#include 

int main(int argc, char ** argv)
{
	long double val = 0;//功率相对值
	long double pwr = 0;//化为dbFS值

	int i;
	for (i = 1; i < argc; i++)//系统默认第一个参数为程序名CalcPwr.exe
	{
		val = atof(argv[i]);//字符串转换为浮点数函数
		val = val / pow(2, 30);
		long double pwr = 10 * (log(val) / log(10));
		printf("Argument%1d: %3s ---> %6.8lf dbFS\n", i, argv[i], pwr);
	}


    return 0;
}

概念:

原文地址:【转】db, dbm, dbfs作者:willow

dBFS的全称是"decibels full scale",翻译成中文就是“满量程分贝”。它是在有最大可用电平的数字系统中使用的dB幅度电平的简写。0dBFS指最大可用电平。需要注意一下的是这个系统中最大电平指的是峰值还是rms值,这是会造成差别的。

一个数字系统的动态范围是指满幅信号电平和底噪rms的比值。理论上的动态范围由下式给出:

DR = SNR = 20log10(2^n) = 6.02n

 

上式基于量化噪声是均匀分布的情况。当该条件满足时,一个16bit的量化将产生96.33 dBFS的动态范围。

dBFSJames Colotti在二十世纪八十年代首先提出。James Colotti是一名模拟电子工程师,他是评估高速ADCDAC的先驱。1987年,在他的文章“Digital Dynamic Analysis of A/D Conversion Systems through Evaluation Software based on FFT/DFT Analysis”中,术语dBFS第一次正式出现。

参考资料:http://en.wikipedia.org

电学中分贝与放大倍数的转换关系为:  

  AV (dB) = 20 lg ( Vo / Vi ) 
  AI (dB) = 20 lg ( Io / Ii )
  Ap (dB) = 10 lg ( Po / Pi )
分贝数值中,-3dB和0dB两个点是必须了解的。
  -3dB也叫半功率点截止频率点,这时功率是正常时的一半电压或电流是正常时的1/2在电声系统中,±3dB的差别被认为不会影响总特性,所以各种设备指标,如频率范围,输出电平等,不加说明的话都可能有±3dB的出入。
  0dB表示输出与输入或两个比较信号一样大
  分贝是一个相对大小的量,没有绝对的量值可您在电平表或马路上的噪声计上也能看到多少dB的测出值,这是因为人们给0dB先定了一个基准
  常用的0dB基准有下面几种:
  1) dBFS,以满刻度的量值为0dB,常用于各种特性曲线上;
  2) dBm,在600Ω负载上产生1mW功率(或0.775V电压)为0dB,常用于交流电平测量仪表上;
  3) dBV,以1伏为0dB;

  4) dBW,以1瓦为0dB。

4. dBc

常用在射频器件的性能上。dBc也是一个表征相对功率的单位,其计算方法与dB的计算方法完全一样。一般来说,dBc是相对于载波功率而言的,在许多情况下用来度量与载波功率的相对值,如度量干扰(同频干扰、互调干扰、交调干扰和带外干扰)、耦合、杂散等相对量值,在采用dBc的地方,原则上可以使用dB替代。

5. dBi、dBd

dBi和dBd均用于表达功率增益,两者都是一个相对值,只是其参考的基准不一样。dBi的参考基准为全方向性天线(点源天线),dBd的参考基准为偶极子(半波偶极子天线),因此两者的值略有不同,同一增益用dBi表示要比用dBd表示大2.15。

[例:对于增益为16dBd的天线,其增益按单位dBi进行折算后为18.15dBi(忽略小数点后为18dBi)。


你可能感兴趣的:(C)