m基于自适应门限软切换的3G和Wifi垂直切换算法的matlab仿真
创始人
2024-01-21 16:00:07

目录

1.算法概述

2.仿真效果预览

3.核心MATLAB预览

4.完整MATLAB程序


1.算法概述

         这里还是考虑位置信息和强度联合切换判决的方法,如果你的设备没法提供具体的位置信息的话,那么就把位置信息的权值设置为0。强度判决的权值设置为1即可。

        需要传输的数据格式如下:

一个字节为8个bit,

因此,一个传输帧,基本格式为:

S   |  16bit长度的节点需要   |  8bit长度的数据类型   |  64bit长度的数据内容   |  #

其中“S”对应的ASCII码为01010011

“#”对应的ASCII码为0010 0011

这里,我们将数据帧结构的产生做如下的设置,

即每次发送一帧数据,然后每过N帧,发送一帧带有位置信号作为数据的帧数据。

目前的算法流程如下:

        第1,预先设置切换处理延迟时间t和能量强度门限值T;

        第2,分别对3G网络和WIFI网络的信号能量进行计算;

        第3,根据传输得到的数据帧中提取对应的位置信号;

        第4,判决:

        如果计算能量均小于T,那么不进行切换,保持原来的状态;

        如果其中一个超过门限值,一个没有超过没限制,那么切换到对应能量大的网络上;

        如果两个能量值均大于门限值,那么再做如下的判决:

------------------------------------------------------------------------------------------------

       如果3G网络的信号强度大于WIFI网络的信号强度,系统首先接入到3G网络,然后在时间t之后,即完成3G的连接之后,断开与WIFI的连接,完成从WIFI到3G网络的切换。 

        同样道理,如果WIFI网络的信号强度大于3G网络的信号强度,系统首先接入到WIFI网络,然后在时间t之后,即完成WIFI的连接之后,断开与3G的连接,完成从3G到WIFI网络的切换。当3G网络和WIFI信号强度接近的时候,则维持在原先的网络进行数据的传输,并进行切换处理。由于信号能量强度会出现各种变化的情况,比如当3G信号强度突然大于WIFI的信号强度(假设网络的信号强度是不变,而外部的干扰发生突然改变),并持续一段时间,然后此时,设置距离3G网络更近些,因此当出现这种情况的时候,设备不应该发生突然的切换。

         根据这个问题,本算法加入了位置信号的判决:

 

2.仿真效果预览

MATLAB2022A仿真结果:

 

 

 

3.核心MATLAB预览

....................................................%产生信号
%S   |  16bit长度的节点需要   |  8bit长度的数据类型   |  64bit长度的数据内容   |  #
%其中“S”对应的ASCII码为: 01010011
%“#”对应的ASCII码为    : 0010 0011
X     = 0;
Y     = 0;
FRAME = [];
%切换处理延迟时间t
t     = 20;
%能量强度门限值T
T     = 8;
PER   = 10;%每10帧加入I个位置信息for i = 1:Nfigure(1);plot(X3g,Y3g,'--rs','LineWidth',2,'MarkerEdgeColor','k','MarkerFaceColor','r','MarkerSize',10);text(X3g+2,Y3g+2,'3G Device');hold onplot(Xwf,Ywf,'--rs','LineWidth',2,'MarkerEdgeColor','k','MarkerFaceColor','g','MarkerSize',10);text(Xwf+2,Ywf+2,'WIFI Device');%S | 16bit长度的节点需要 | 8bit长度的数据类型 | 64bit长度的数据内容 | #%SS     = [0,1,0,1,0,0,1,1];%16bit长度的节点需要Index = func_dec2bin(i,16);%8bit长度的数据类型Type  = [0,0,1,1,0,0,1,1];%字节数Nums  = [0,0,0,0,1,1,1,1];%64bit长度的数据内容if mod(i,10) == 2i%模拟简单的运动 X    = X + (7 +   rand(1,1))/10;Y    = Y + (4 + 6*rand(1,1))/10;Xbin = func_dec2bin(X,32);Ybin = func_dec2bin(Y,32);Data = [Xbin,Ybin];elseData = (rand(1,64)>=0.5); end%#J     = [0,0,1,0,0,0,1,1];%产生最后发送的帧格式数据tmps = [S,Index,Type,Nums,Data,J];FRAME= [FRAME,tmps];plot(X,Y,'--rs','LineWidth',2,'MarkerEdgeColor','k','MarkerFaceColor','y','MarkerSize',10);text(X+2,Y+2,'User Device');axis([0,120,0,120]);drawnow;hold off
endX0 =[];
Y0 =[];
X  =[];
Y  =[];
%%
%开始切换算法
f1       = zeros(1,N);
f2       = zeros(1,N);
f        = zeros(1,N);
f0       = zeros(1,N);
CUT      = zeros(1,N);
lemda1   = 0.6;
lemda2   = 1 - lemda1;
%初始状态假设为3G网络
STATE    = zeros(1,N);%1:3G;2:WIFI
STATE(1) = 2;  
count    = 0;
for i = 1:Ni%模拟环境影响损耗,用随机的方式产生EnvLoss3g = 15 + randn;EnvLosswf = 12 + 4*randn;%将接收到的数据保存到寄存器中Reg = FRAME(length(tmps)*(i-1)+1:length(tmps)*i);%检测S,来识别是否是帧的起始位for j = 1:length(Reg)if Reg(1) == S(1) && Reg(2) == S(2) && Reg(3) == S(3) && Reg(4) == S(4) &&...Reg(5) == S(5) && Reg(6) == S(6) && Reg(7) == S(7) && Reg(8) == S(8)     flag = 1;%说明检测到帧了elseflag = 0;%说明没有检测到帧endend%如果检测帧头了,则开始位置信息的计算if i > 1if flag == 1%获得序列序号 INDEXbin = Reg(9:9+15);INDEXdec = func_bin2dec2(INDEXbin);if  mod(INDEXdec,10) == 2%转换为十进制X0 = Reg(33+8:33+31+8);Y0 = Reg(65+8:65+31+8);X  = func_bin2dec(X0);Y  = func_bin2dec(Y0);else%转换为十进制X0 = X0;Y0 = Y0;X  = func_bin2dec(X0);Y  = func_bin2dec(Y0);end%*****************************************************************************%计算3G距离L3g= sqrt((X - X3g)^2 + (Y - Y3g)^2);%计算WIFI距离Lwf= sqrt((X - Xwf)^2 + (Y - Ywf)^2);%距离切换if Lwf >= L3g & STATE(i-1) == 1f2(i) = 0;%3G -> WIFI endif Lwf >= L3g & STATE(i-1) == 2f2(i) = 1;%WIFI -> WIFI end       if Lwf < L3g  & STATE(i-1) == 1f2(i) = 1;%3G -> 3G endif Lwf < L3g  & STATE(i-1) == 2f2(i) = 0;%WIFI -> 3G end      %计算3G能量%计算当前位置3G信号能量的衰减,慢衰减%快衰减,这里暂时不考虑快衰减Loss3g = func_Power_Attenuation_3G(Fre_wf,Lwf,EnvLoss3g);%计算信号能量POWER_3G = Power_3g - Loss3g;%计算WIFI能量%计算当前位置WIFI信号能量的衰减,慢衰减%快衰减,这里暂时不考虑快衰减Losswf = func_Power_Attenuation_WIFI(Fre_3g,L3g,EnvLosswf);%计算信号能量POWER_WIFI = Power_wf - Losswf;%*****************************************************************************%切换判决%如果计算能量均小于T,那么不进行切换,保持原来的状态;if (POWER_3G < T & POWER_WIFI < T)f1(i) = 1;%3G->WIFIend   %如果其中一个超过门限值,一个没有超过没限制,那么切换到对应能量大的网络上;    if (POWER_3G < T & POWER_WIFI >= T) & STATE(i-1) == 2 f1(i) = 0;%WIFI->WIFIend %如果其中一个超过门限值,一个没有超过没限制,那么切换到对应能量大的网络上;    if (POWER_3G < T & POWER_WIFI >= T) & STATE(i-1) == 1 f1(i) = 1;%3G->WIFIend                 %如果其中一个超过门限值,一个没有超过没限制,那么切换到对应能量大的网络上;    if (POWER_3G >= T & POWER_WIFI < T) & STATE(i-1) == 2 f1(i) = 1;%WIFI->3Gend %如果其中一个超过门限值,一个没有超过没限制,那么切换到对应能量大的网络上;    if (POWER_3G >= T & POWER_WIFI < T) & STATE(i-1) == 1 f1(i) = 0;%3G->3Gend            %如果其中一个超过门限值,一个没有超过没限制,那么切换到对应能量大的网络上;    if (POWER_3G >= T & POWER_WIFI >= T) & (POWER_3G > POWER_WIFI) & STATE(i-1) == 1 f1(i) = 0;%3G->3Gend                 %如果其中一个超过门限值,一个没有超过没限制,那么切换到对应能量大的网络上;    if (POWER_3G >= T & POWER_WIFI >= T) & (POWER_3G > POWER_WIFI) & STATE(i-1) == 2 f1(i) = 1;%WIFI->3Gend               %如果其中一个超过门限值,一个没有超过没限制,那么切换到对应能量大的网络上;    if (POWER_3G >= T & POWER_WIFI >= T) & (POWER_3G <= POWER_WIFI) & STATE(i-1) == 1 f1(i) = 1;%3G->WIFIend                 %如果其中一个超过门限值,一个没有超过没限制,那么切换到对应能量大的网络上;    if (POWER_3G >= T & POWER_WIFI >= T) & (POWER_3G <= POWER_WIFI) & STATE(i-1) == 2 f1(i) = 0;%WIFI->WIFIend              %计算最后的切换值f(i) = lemda1*f1(i) + lemda2*f2(i);%引入软切换判决if i > tCheck(i) = mean(f(i-t+1:i)); Check2   = mean(Check(i-t+1:i)); f0(i)    =(sign(Check2-0.3)+1)/2;elseCheck(i) = mean(f(1:i));  Check2   = mean(Check(1:i));f0(i)    =(sign(Check2-0.3)+1)/2;endelse%如果没有检测当前的帧头信息,则保持原切换状态 f(i)  = f(i-1);  f0(i) = f(i);  end%计算累计切换次数if f0(i) ~= f0(i-1)count = count + 1;endTtmps(i) = 0.5*max(POWER_3G,POWER_WIFI);if i > tT = mean(Ttmps(i-t+1:i)); elseT = mean(Ttmps(1:i));  endend%统计累积切换次数CUT(i) = count;
end
01_087_m

4.完整MATLAB程序

matlab源码说明_我爱C编程的博客-CSDN博客

V

相关内容

热门资讯

埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
1和0什么意思网络用语 0和1... 最近,有网友给大家出了份考卷,卷面是几位“00后”的QQ对 话:dbq、xswl、nss、nbcs、...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
七大洲八大洋 七大洲简易图三角... 一、北美洲(中北美和加勒比海)北美洲面积约2471万平方公里,居世界第三。人口约5.79亿(2016...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...