基于泊松洞过程建模的异构蜂窝网络信干比增益与近似覆盖率分析

      大家好,我是带我去滑雪!

      移动通信业务的高速增长使得传统同构蜂窝网络结构不能满足用户对通信质量的要求,而异
构网络架构可以有效解决这种问题。文中对泊松洞过程下异构蜂窝网络的覆盖率进行研究。首
先,利用泊松洞过程( Poisson Hole Process,PHP) 对异构蜂窝网络进行建模; 然后以信干比( Signal to Interference Radio,SIR) 分布为研究目标,利用泊松点过程的近似SIR 分析方法,推导出PHP 模型下网络SIR 增益的具体表达式; 最后,通过缩放泊松网络的信干比门限得到PHP 模型下的近覆盖率。下面开始代码实战。

目录

(1)模型参数设置

(2)生成广义硬核点过程的宏基站

(3)生成泊松点过程的微基站

(4)绘制基站分布图

(5)计算覆盖率与信干比

(6)结果展示


(1)模型参数设置

clc;
clear;
close all;

lambda_macro = 0.3; % 宏基站的密度 (km^-2)
lambda_micro = 0.8;  % 微基站的密度 (km^-2)
area_size = 10; % 区域的总边长设为10,这样可以确保生成的点在 -5 到 5 的范围内

Pt_macro = 1;  % 宏基站发射功率
Pt_micro = 0.1; 
alpha = 4; 

hard_core_radii = [0, 1.5, 2.5];

(2)生成广义硬核点过程的宏基站

    num_points = poissrnd(lambda_macro * area_size^2);
    x_macro = rand(num_points,1) * area_size - area_size/2; % 调整到 -5 到 5 的范围
    y_macro = rand(num_points,1) * area_size - area_size/2;
    macro_points = [x_macro, y_macro];

    if hard_core_radius > 0
        % 硬核删减
        dist_matrix = pdist2(macro_points, macro_points);
        dist_matrix(logical(eye(size(dist_matrix)))) = inf;
        [~, min_idx] = min(dist_matrix, [], 2);
        delete_mask = dist_matrix(sub2ind(size(dist_matrix), (1:num_points)', min_idx)) < hard_core_radius;
        macro_points(delete_mask, :) = [];
    end

(3)生成泊松点过程的微基站

 num_micro_points = poissrnd(lambda_micro * area_size^2);
    x_micro = rand(num_micro_points,1) * area_size - area_size/2; % 调整到 -5 到 5 的范围
    y_micro = rand(num_micro_points,1) * area_size - area_size/2;
    micro_points = [x_micro, y_micro];

(4)绘制基站分布图

figure; % 每次生成一个新的图
    plot(macro_points(:,1), macro_points(:,2), 'ro', 'MarkerSize', 8, 'DisplayName', '宏基站的分布');
    hold on;
    plot(micro_points(:,1), micro_points(:,2), 'b+', 'MarkerSize', 5, 'DisplayName', '微基站的分布');
    legend show;
    title(sprintf('筛选半径 = %.1f km', hard_core_radius));
    xlabel('X 坐标 (km)');
    ylabel('Y 坐标 (km)');
    axis([-5 5 -5 5]); % 设置区域范围为 [-5, 5]
end

(5)计算覆盖率与信干比

num_users = 100; 
user_x = rand(num_users, 1) * area_size - area_size/2; % 调整到 -5 到 5 的范围
user_y = rand(num_users, 1) * area_size - area_size/2;
users = [user_x, user_y];

% 计算每个用户与基站的距离
dist_macro = pdist2(users, macro_points);
dist_micro = pdist2(users, micro_points);

% 计算信号强度 (考虑路径损耗)
signal_macro = Pt_macro ./ (dist_macro.^alpha);
signal_micro = Pt_micro ./ (dist_micro.^alpha);

% 信号来自最近的基站
[signal_strength_macro, ~] = max(signal_macro, [], 2);
[signal_strength_micro, ~] = max(signal_micro, [], 2);

% 干扰为来自其他基站的信号
interference_macro = sum(signal_macro, 2) - signal_strength_macro;
interference_micro = sum(signal_micro, 2) - signal_strength_micro;

% 总的信干比 (SIR)
SIR_macro = signal_strength_macro ./ interference_macro;
SIR_micro = signal_strength_micro ./ interference_micro;

% 覆盖率 (假设 SIR 大于一定值的用户被覆盖)
SIR_threshold = 1; % 覆盖的信干比阈值
coverage_macro = mean(SIR_macro > SIR_threshold);
coverage_micro = mean(SIR_micro > SIR_threshold);

fprintf('宏基站覆盖率: %.2f\n', coverage_macro);
fprintf('微基站覆盖率: %.2f\n', coverage_micro);

%% 步骤5:生成路径损耗与平均干扰之比的图
path_loss = logspace(-1, 1, 100); % 路径损耗范围
interference_to_signal_ratio = (1 ./ path_loss) .^ alpha;

figure;
plot(path_loss, interference_to_signal_ratio, 'LineWidth', 2);
xlabel('路径损耗');
ylabel('平均干扰与信号之比');
title('路径损耗与平均干扰与信号之比的关系');
grid on;

(6)结果展示

4d1857df093243c28894bf5b6e796d06.png

a9c8c1236ccb4ca4ba607790f108036a.png

d5c3cf6a483544cd8a3e658c0aecc124.png

 

9b3c5bc4f0e04e8eacb95aa90be2dbc9.png

需要数据集的家人们可以去百度网盘(永久有效)获取:

链接:https://pan.baidu.com/s/16Pp57kAbC3xAqPylyfQziA?pwd=2138
提取码:2138 


更多优质内容持续发布中,请移步主页查看。

博主的WeChat:TCB1736732074,可与我联系。

   点赞+关注,下次不迷路!

 

 

04-01 97
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值