MATLAB绘制带阴影的Rappaport覆盖面积-距离图问题求助
Rappaport阴影覆盖面积图MATLAB代码问题排查
我尝试使用MATLAB绘制带阴影的覆盖面积与距离关系的Rappaport图,目标是生成标准形态的图形(随σ/n增大,U(γ)从1逐渐下降,不同γ阈值对应不同下降速率的曲线),但当前输出的曲线形态和数值均不符合预期。
依据的课堂公式
$U(\gamma)=\frac{1}{2}[1-\text{erf}(a)+e{\frac{1-2ab}{b2}}[1-\text{erf}(\frac{1-ab}{b})]]$
$a=\frac{\gamma-P_t+\overline{PL}(d_0)-10n\log(\frac{R}{d_0})}{\sigma\sqrt{2}}$
$b=\frac{10n\log(e)}{\sigma\sqrt{2}}$
我的MATLAB代码
% Parameters Pt = 30; % Transmitted power in dBm PL_d0 = 60; % Path loss at reference distance (in dB) sigma = 8; % Standard deviation of shadowing (in dB) n = 3.5; % Path loss exponent d0 = 1; % Reference distance (in meters) R = 10; % Cell radius (in meters) gamma_values = linspace(1, 0, 10); % Reverse gamma threshold values % Define distance and sigma/n values sigma_n_ratio = linspace(0, 8, 100); % Varying sigma/n (shadowing effect) U = zeros(length(gamma_values), length(sigma_n_ratio)); % Compute U(gamma) for different values of gamma and sigma/n for j = 1:length(gamma_values) gamma = gamma_values(j); for i = 1:length(sigma_n_ratio) sigma_n = sigma_n_ratio(i); a = (gamma - Pt + PL_d0 - 10*n*log10(R/d0)) / (sigma_n * sqrt(2)); b = (10*n*log10(exp(1))) / (sigma_n * sqrt(2)); % U(gamma) equation U(j, i) = 0.5 * (1 - erf(a) + exp((1 - 2*a*b) / b^2) * (1 - erf((1 - a*b) / b))); end end % Plotting figure; hold on; for j = 1:length(gamma_values) plot(sigma_n_ratio, U(j, :), 'DisplayName', sprintf('Pr[r > %0.2f]', gamma_values(j))); end xlabel('\sigma/n'); ylabel('Fraction of total area with signal above threshold, U(\gamma)'); legend('show'); title('Plot of Area vs. Distance Coverage with Shadowing'); grid on;
请求协助排查代码问题,或提供改进方案以匹配预期图形效果。
内容的提问来源于stack exchange,提问作者nai hamdan
相关产品推荐
相关产品推荐

