在射频计算自由空间损耗Free-Space-Path-Loss时,笔者以往世界在计算器中进行计算,发现每次算起来太麻烦,于是想到使用matlab(Octave)来实现自定义函数来计算。
函数结构如下,输出形参表,即函数的返回值,各返回值间用逗号隔开。输入形参列表,即函数的各输入参数,用逗号隔开。
function[输出形参表: output1, ...,outptn]= 函数名(输入形参表: input1, ... , inputn)
自由吮损耗公式:Lbf=32.44+20lgF+20lgD
Lbf=自由空间损耗(dB)
D=距离(KM)
F=频率(MHz)
在计算时,需要参数 F频率、 D距离,然后得出损耗值(dB)。在Octave默认目录下创建函数文件fspl,如果不知道默认路径们可以在GNU Octave (CLI)中使用pwd查看路径,不过一般是在用户主目录下。编辑函数文件时,%就是使用help时显示的帮助信息,function后面就是函数主体部分。
% LOSS Call Method:fspl(r,fc) r= * km ,fc= * MHz
function fspl(r, fc)
LightSpeed = 3e8;
Loss_db = 20*log10(((4*pi)*(r*1000))/(LightSpeed/(fc*1000000)));
disp(['Free-Space-Path-Loss-dB=',num2str(Loss_db)]);
end
运行结果如下,只需fslp(100,150)即可算处100KM处,150MHz的自由空间衰减值。
![](https://img.haomeiwen.com/i24447700/8facd1d18c1e60d9.png)
网友评论