1.算法概述 软切换是WCDMA系统的关键技术之一,也是无线资源管理与优化的重点。软切换算法和相关参数的设置直接影响着系统的容量和服务质量。本文对WCDMA系统中软切换技术进行了研究,首先介绍了软切换算法的基本过程,然后对传统的UTAR软切换算法进行了理论介绍与仿真分析,并利用平均激活集数(MASN)、激活集更新率(ASUR)以及呼叫中断概率(OP)三个性能指标对算法进行性能分析。最后根据目前算法的缺陷,提出了一种改进后的软切换算法,通过仿真验证可知,改进后的算法在平均激活集数(MASN)、激活集更新率(ASUR)以及呼叫中断概率(OP)均优于传统的软切换算法。
根据上面提出的算法,通过MATLAB对该算法进行仿真分析,分布对MASN(平均激活集更新数)、ASUR(激活集更新率)、OP(中断概率)三个指标进行仿真分析。
2.仿真效果预览 matlab2022a仿真
·MASN(平均激活集更新数)
·ASUR(激活集更新率)
·OP(中断概率)
3.MATLAB部分代码预览
Worst_pn = 1;%定义最弱导频强度
T_ADD = [1 2 3 4 5 6];%加入门限
T_DROP = 7;%丢失门限
T_REP = 1;%门限
Delta_T = 5;%状态持续时间
times = 1000;%仿真持续时间
Power_cell2 = zeros(times,1);%小区2的强度
tmp2 = 0;
cnt2 = 0;
Power_cell3 = zeros(times,1);%小区2的强度
tmp3 = 0;
cnt3 = 0;
cnt4 = 0;
%定义平均激活数
MASN = zeros(length(T_ADD),1);
for j = 1:length(T_ADD)
for k = 1:500
MASN_tmp = 0;
%定义小区1,小区2,小区3的状态
cell1_state = 1;%小区1处于连接状态
cell2_state = 0;%小区2处于非连接状态
cell3_state = 0;%小区3处于非连接状态
full = 0;%激活集未满
Count = 0;%定义激活集个数
Best_pn = 6;%定义最好导频强度
Worst_pn = 1;%定义最弱导频强度
T_ADD = [1 2 3 4 5 6];%加入门限
T_DROP = 7;%丢失门限
T_REP = 1;%门限
Delta_T = 5;%状态持续时间
times = 1000;%仿真持续时间
Power_cell2 = zeros(times,1);%小区2的强度
tmp2 = 0;
cnt2 = 0;
Power_cell3 = zeros(times,1);%小区2的强度
tmp3 = 0;
cnt3 = 0;
cnt4 = 0;
f = 0.19;
for i = 2:25
if cell1_state == 1
tmp2 = tmp2 + rand();
if tmp2 - (Best_pn - T_ADD(j)) > 3
T_ADD_tmp = T_ADD(j)-0.5;
elseif tmp2 - (Best_pn - T_ADD(j)) < -3
T_ADD_tmp = T_ADD(j)+0.5;
else
T_ADD_tmp = T_ADD(j);
end
if tmp2 >= Best_pn - f*T_ADD_tmp & full == 0%当小区2的导频强度达到“[最好导频-T_ADD]”并维持ΔT时间,且此时激活集未满
cnt2 = cnt2 + 1;
if cnt2 >= Delta_T%当持续时间大于T的时候,小区2加入激活集
cell2_state = 1;
Count = Count + 1;%激活集个数
else
cell2_state = 0;
end
else
cell2_state = 0;
cnt2 = 0;
end
end
if cell2_state == 0;
Power_cell2(i) = tmp2;
else
Power_cell2(i) = Power_cell2(i-1);
end
%判断激活集是否满
if Count > 19
full = 1;%激活集满
else
full = 0;
end
if cell2_state == 1
tmp3 = tmp3 + rand();
Power_cell3(i) = tmp3;
if Power_cell3(i) >= Worst_pn + T_REP
cnt3 = cnt3 + 1;
if cnt3 >= Delta_T & full == 1
cell3_state = 1;
cell1_state = 0;%将小区1移出激活集
else
cell1_state = 1;
cell3_state = 0;
cnt3 = 0;
end
end
if cell1_state == 0 & cell3_state == 1
tmp3 = tmp3 - rand();
Power_cell3(i) = tmp3;
if Power_cell3(i) <= Best_pn - T_DROP
cnt4 = cnt4 + 1;
if cnt4 >= Delta_T
cell3_state = 0;
else
cell3_state = 1;
end
end
end
end
%统计激活数
if cell2_state == 1
MASN_tmp = MASN_tmp + 1;
end
end
MM(k) = MASN_tmp;
end
MASN(j) = 0.35 + mean(MM)/max(MM);
end
figure;
plot(T_ADD,MASN,'b-o','LineWidth',2);
xlabel('T ADD(DB)');
ylabel('MASN');
hold on
load UTRA/UTRA_MASN.mat
plot(T_ADD,MASN,'r-o','LineWidth',2);
xlabel('T ADD(DB)');
ylabel('MASN');
hold on
01-41m