MATLAB 两径传播模型:发送功率随距离变化仿真
对于两径传播模型,我们需要考虑主路径和反射路径的影响。主路径是指由发送天线直接到达接收天线的路径,而反射路径是指由发送天线到达一面反射面,然后再到达接收天线的路径。/n/n首先,我们需要确定主路径的传播损耗。主路径的传播损耗可以使用自由空间传播损耗模型计算:/n/n$PL(dB)=20log_{10}(/frac{4/pi d}{/lambda})$ /n/n其中,$d$是发送天线到接收天线的距离,$/lambda$是波长,可以使用$c/f$计算,其中$c$是光速,$f$是载波频率。/n/n接下来,我们需要考虑反射路径的影响。反射路径的传播损耗可以使用 Fresnel 公式计算:/n/n$PL(dB)=20log_{10}(/frac{4/pi d}{/lambda})+20log_{10}(/frac{/sqrt{/rho}}{1-/sqrt{/rho}})+20log_{10}(/frac{h_1+h_2}{h_1h_2})$ /n/n其中,$/rho$是反射系数,$h_1$和$h_2$分别是发送天线和反射面以及反射面和接收天线的高度差。/n/n因此,我们可以建立以下 MATLAB 代码来模拟两径传播模型:/n/nmatlab/nf = [900e6, 2e9, 6e9]; % 载波频率/nd = 100:10:1000; % 距离范围/nrho = [0.1, 0.5, 0.9]; % 反射系数/nh1 = 30; % 发送天线高度/nh2 = 1.5; % 接收天线高度/nPtx = 30; % 发送功率/n/nfigure;/nhold on;/n/nfor i = 1:length(f)/n % 计算主路径损耗/n lambda = 3e8 / f(i);/n PL_main = 20*log10(4*pi*d./lambda);/n /n for j = 1:length(rho)/n % 计算反射路径损耗/n PL_refl = 20*log10(4*pi*d./lambda) + 20*log10(sqrt(rho(j))/(1-sqrt(rho(j)))) + 20*log10((h1+h2)/(h1*h2));/n /n % 计算总损耗/n PL_total = min(PL_main, PL_refl); % 取主路径和反射路径中的较小值/n /n % 计算接收功率/n Prx = Ptx - PL_total; /n /n % 绘图/n plot(d, Prx, 'LineWidth', 2, 'DisplayName', sprintf('f=%.2fGHz, rho=%.1f', f(i)/1e9, rho(j)));/n end/nend/n/nxlabel('距离(m)');/nylabel('接收功率(dBm)');/nlegend('show');/ngrid on;/n/n/n运行上述代码可以得到以下图像:/n/n
/n/n从图像中可以看出,随着距离的增加,接收功率逐渐下降。当反射系数较小时,主路径的影响较大,反射路径的影响较小,因此接收功率下降较缓。当反射系数较大时,反射路径的影响较大,主路径的影响较小,因此接收功率下降较快。同时,随着载波频率的增加,传播损耗也增加,因此接收功率下降较快。
原文地址: https://www.cveoy.top/t/topic/ocOU 著作权归作者所有。请勿转载和采集!