• 大小: 2KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-06-03
  • 语言: Matlab
  • 标签: matlab  蜂窝网络  

资源简介

利用MATLAB绘制蜂窝网络的程序,总体思路:首先确定一个基准中心蜂窝小区,之后从区群最左一列开始逐列绘制整个区群。

资源截图

代码片段和文件信息

%% 初始化

clc;
clear;

%% 生成一个基准蜂窝

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%总体思路:首先确定一个基准中心蜂窝小区,之后从区群最左一列开始逐列绘制整个区群。

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

r = 1; % 半径
n = 6; % 六边形蜂窝6个角
a = 0 : 2 * pi / n : 2 * pi; % 基准蜂窝6个角定位参数
x0 = r * cos(a); % 基准蜂窝横坐标
y0 = r * sin(a); % 基准蜂窝纵坐标

%% 生成一个区群

layer = 6;
cell_num = 1 + 3 * layer * (layer - 1); % 整个网络蜂窝总数每层增加6(n-1)个蜂窝小区
x1 = zeros(n + 1 cell_num); % 存储小区横坐标
y1 = zeros(n + 1 cell_num); % 存储小区纵坐标
m = layer - 1; % 区群列数计数
layer_count = layer; % 区群列内小区个数计数
s = 1; % 区群换列调整参数
bs_x = zeros(1 cell_num); % 小区中心横坐标
bs_y = zeros(1 cell_num); % 小区中心纵坐标
c = 1; % 小区中心坐标计数

for i = -m : m
    if mod(layer_count 2) == 1 % 区群层数为奇数,最外列为奇数个小区
        p = 0; % 区群列内小区编号计数
        for j = - fix(layer_count / 2) : fix(layer_count / 2)
            bs_x(c) = i * 1.5 * r; % 小区中心横坐标,即横坐标偏移量
            bs_y(c) = j * sqrt(3) * r; % 小区中心纵坐标,即纵坐标偏移量
            c = c + 1;
            x1(: p + s) = x0 + i * 1.5 * r;

评论

共有 条评论