
是为简化问题研究而提出的一种科学抽象自由空间无线.doc
16页自由空间是指相对介电常数和相对导磁率都为1的均匀介质所存在的空间,它是一个理想 的无限大的空间,是为简化问题研究而提出的一种科学抽象自由空间无线电波传播,仅考 虑由能量扩散引起的损耗,即接收机和发射机之间是无任何阻挡的视距路径时,传播损耗! 假定在自由空间中,设在原点有一辐射源,均匀地的各方1何辐射,辐射功率为Pt,则距 辐射源d处的能流密度为:S=Pt/(4nd*d)若接收天线有效面积为A二心*D/4tt式中入为工作波长,D为天线的方向性系数,对于各向 同性的天线D=1,则接收机输入功率Pr=S*A=Pt*A*A*D/(4nd)A2通常定义发射功率与接收功率的比值为传播损耗所以,自由空间传播损耗可.写作: Lo=(4TTd)A2/AA2取其对数得(其中A=c/f代入后取对数10Lg(Lo))Lo=20Lg(4n/c) 20Lgf 20Lgd=20Lg(4n/3x10A8) 20Lg(f(MHz)x10A6)20Lg(d(km)x10A3)=20Lg(4TT/3)-160 20Lgf 120 20Lgd 60=32.45 20Lgf 20Lgd=32.45 20Lgf 20Lgd, d单位为km, f单位为MHz自由空间的基木传输损耗是指位于Izl由空间的发射系统的等效全向辐射功率(EIRP)与接收 系统各向同性接收天线所接收到的可用功率之比,通常用Lbf表示。
当收发天线之间的距离 dA(A为工作波长)时,Lbf可表示为:字串6Lbf=32.5 20lgf (MHz) 20lgd (km)EIRPEIRP(Effective Isotropic Radiated Power)有效全向辐射功率EIRP也称为等效全向辐射功率,它的定义是地球站或卫星的天线发送出的功率(P)和该天线增益(G)的乘积,即:EIRP二P*G如果用dB计算,则为EIRP(dBW) = P(dBW) + G(dBW)EIRP表示了发送功率和天线增益的联合效果抛物面为主反射面G/T (Gain/Temperature)地面接收系统的品质因数卫星电视接收系统的 天线增益与接收系统噪声之比,用分贝表示,若这一值增加,则意味着图像质量提高利用 减小低噪声放大器的噪声温度和增加接收天线的尺寸均可以提高G仃值1、dBmdBm是一个考征功率绝对值的值,计算公式为:101gP (功率值/Imw)[例1]如果发射功率P为Imw,折算为dBm后为OdBm[例2]对于40W的功率,按dBm单位进行折算后的值应为:101g (40W/lmw)=101g (40000) = 101g4+101g 10+101g 1000=46dBm o2、dBi 和 dBd dBi和dBd是考征增益的值(功率增益),两者都是一个相对值,但参考基准不一样。
dBi的参考基准为全方向性天线,dBd的参考基准为偶极了, 所以两者略有不同一般认为,表示同一个增益,用dBi表示出来比用dBd表示出 来要大2. 15o[例3]对于一面增益为16dBd的天线,其增益折算成单位为dBi时,则为18.15dBi (一般忽略小数位,为18dBi)[例 4] 0dBd=2.15dBio[例5] GSM900天线增益可以为13dBd (15dBi), GSM 1800天线增益可以为15dBd (17dBi)o3、 dBdB是一个表征相对值的值,当考虑甲的功率相比于乙功率大或小多少个dB时,按下面计算公式:101g (甲功率/乙功率)[例6]甲功率比乙功率大一倍,那么101g (甲功率/乙功率)=101g2=3dBo也就是说,甲的功率比乙的功率大3 dB[例7] 7/8英寸GSM900馈线的100米传输损耗约为3.9dB[例8]如果甲的功率为46dBm,乙的功率为40dBm,则可以说,甲比乙大6dB[例9]如果甲天线为12dBd,乙天线为14dBd,可以说甲比乙小2dB4、 dBc有时也会看到dBc,它也是一个表示功率相对值的单位,与dB的计算方法完全一样一般来说,dBc是相对于载波(Carrier)功率而言,在许多情况下,用来度量与 载波功率的相对值,如用来度量干扰(同频干扰、互调干扰、交调干扰、带外干扰等) 以及耦合、杂散等的相对量值。
在采用dBc的地方•,原则上也可以使用dB替代dB只是表示一个比值,并不是功率增益的单位!!!5、 dBw与dBm -样,dBw是一个表示功率绝对值的单位(也可以认为是以1W功率为基准的一个 比值),计算公式为:lOlog (功率值/lw)dBw与dBm之间的换算关系为:0dBw= lOlogl W = lOlogl000 mw = 30 dBm我按如下步骤在vc中使用matlab引擎:(1) 启动 vc60,建立一个 mfc (exe)类型工程 matlabengineo(2) 在项目建立后,设置环境Tool->options->Diretories 页也「卜 Show directories for先选择 Include Files,输入路径:D:\PROGRAMS\MATLAB6P5P1\EXTERN\INCLUDE在选择Library Files,输入路径:D:\PROGRAMS\MATLAB6P5P1\EXTERN\LIB\WIN32\MICROSOFT\MSVC60(我的matlab根目录是D:\PROGRAMS\MATLAB6P5P1\ ;这里的设置对不同工程只需要一 次)(3) 打开 Project->Settings->Link 页面,在 Object/Library modules中加入libmatlb.lib libeng.lib libmx.lib。
这里对每个工程都要设置,并且根据需要选不同的 库)(4) 在工程目录的view的头文件中加入#include "engine」】"float CCompute::computerfreewaste(float frequency, int distance)(freewaste=32.4+20*log 1 Of(frequency )+20* log 1 Of(distance);return freewaste;}float CCompute::computeerror(double error 1)(mxArray *T = NULL, *d = NULL;Engine *ep; 〃定义Matlab引擎指针if (!(ep=engOpen(NULL))) //\试是否启动 Matlab 引擎成功{AfxMessageBox(MCan not open the matlab engine!");exit(-l);}error[0]=errorl;T = mxCreateDoubleMatrix(l, 1, mxREAL);memcpy((char *) mxGetPr(T), (char *)error, 1 *sizeof(double));engPutVariable(ep, "x", T);engEvalString(ep,ny=Q(x);");d = engGetVariable(ep, "y");EbEo=mxGetPr(d);mxDestroyArray(d);mxDestroyArray(T);engClose(ep); //关闭 Matlab 引擎。
return *EbEo;}VC++与Matlab混合编程之引擎操作详解Visual C++是当前主流的应用程序开发环境之一,开发环境强大,开发的程序执行 速度快但在科学计算方面函数库显得不够丰富、读取、显示数据图形不方便Matlab是一款将数值分析、矩阵计算、信号处理和图形显示结合在一起,包含大量 高度集成的函数可供调用,适合科学研究、T•程设计等众多学科领域使用的•种简 洁、高效的编程工具不过由于Matlab使用的是解释性语言,大大限制了它的执行 速度和应用场合基于VC和Matlab混合编程是很多熟悉VC++编程而乂需要进行 科学计算、数据仿真的科研人员常用的一种方式,其中最简单也最直接的方法就是 调用Matlab引擎本文以下部分将详细介绍通过VC++6.0调用Matlab6.5引擎来达 到VC++与Matlab数据共享编程的方法1.什么是Matlab引擎所谓Matlab引擎(engine),是指一组Matlab提供的接口函数,支持C/C++、 Fortran等语吉,通过这些接口函数,用户可以在其它编程环境中实现对Matlab的控 制可以主要功能有:★打开/关闭一个Matlab对话;★向Matlab环境发送命令字符串;★向Matlab环境中写入数据。
与其它各种接曰相比,引擎所提供的Matlab功能支持是最企俑的通过引擎方 式,应用程序会打开一个新的Matlab进程,可以控制它完成任何计算和绘图操作 对所有的数据结构提供100%的支持同时,引擎方式打开的Matlab进程会在任务栏 显示白己的图标,打开该窗I I,可以观察主程序通过engine方式控制Matlab运行的 流程,并可在其中输入任何Matlab命令实际上,通过引擎方式建立的对话,是将Matlab以ActiveX控件方式启动的 在Matlab初次安装时,会自动执行一次:matlab /regserver将自己在系统的控件库中注册如果因为特殊原因,无法打开Matlab引擎,可 以在Dos命令提示符后执行上述命令,重新注册2.配置编译器要在VC中成功编译Matlab引擎程序,必须包含引擎头文件cnginc.h并引入 Matlab对应的库文件libmx.lib、libmat.lib、libcng.libo具体的说,打开一个工程后, 做如下设置(以VC6为例):1)通过菜单工程/选项,打开设置属性页,进入Directories页面,在目录下拉列 表框中选择 Include files,添加路径:"C:\mallab\extcrn\include”(假定 matlab 安装在 C:\matlab 日录)。
2)选择 Library files,添加路径:C:\matlab\extern\lib\win32\microsoft\msvc60o3)通过菜单工程/设置,打开工程设置属性页,进入Link页面,在bject/library modules 编辑框中,添加文件名 libmx.lib libmat.lib libeng.libc以上步骤1)、2)只需设置一次,而步骤3)对每个工程都要单独设定,对于其它 C++编译器如Borland C++ builder,设置大体相同,不再赘述3.引擎API详解在调用Matlab引擎之前,首先应在相关文件中加入—行:include "enging.h", 该文件包含了引擎API函数的说明和所需数据结构的定义可以在VC中调用的引 擎函数分别如下:3.1引擎的打开和关闭engOpcn—打开 Matlab engine函数声明:Engine *engOpen(const char *startcmd);参数startcmd是用来启动Matlab引擎的字符串参数,在Windows操作系统中只 能为NULLo函数返PI值是一个Engine类型的指针,它是在engine.h中定义的engine数据结 构。
EngClose —关闭 Matlab 引擎函数声明:int engClose(Engine *ep);参数ep代表要被关闭的引擎指针。












