m蜂窝移动通信系统中越区切换的matlab仿真分析

简介: m蜂窝移动通信系统中越区切换的matlab仿真分析

1.算法描述

  用Matlab仿真一个蜂窝模型,用户在打电话时产生切换的过程。建立蜂窝越区切换,假设有16个蜂窝,实现两个小区之间的硬切换,每个小区假设能容纳30个用户,第31个用户就会产生切换,到另一个小区. 或是根据用户移动产生的切换。

  切换的目的有两种可能,一种是实现漫游,另一种是提高服务质量,即降低掉话率,降低拥塞率。移动设备与对端通信点之间的通信会因切换有一定的时延, 这可能造成数据丢失问题,或是通信连接中断,影响我们的正常通话。研究切换的目的就是减少切换过程的时延和丢包率,这样我们才能更好的通话。切换是数字蜂窝通信的一个特点,它保证用户从一个小区到移动到另一个小区通话的可靠性。在任何移动网中,切换是相当重要的,这是因为在蜂窝系统中,最大限度地使用频谱利用率。

  切换的最主要功能就是保证用户通信的连续性,当用户发生越区的时候,将用户当前的通信链路转移到其它小区。切换技术直接影响着整个蜂窝网络的性能好坏,其影响着整个网络的响应速度,通话质量等指标。此外,蜂窝系统拥有一个重要的优势,由于其拥有较宽的的带宽,所以由多径效应引起的信号衰落比较小,因此可以对信号进行解调,使其大幅度提高链路容量。考虑到上述这些影响,切换技术在现代通信系统中有着越来越重要的作用。因此,研究蜂窝系统的切换技术具有十分重要的意义。  

    无中继的蜂窝网的小区功耗主要来自于基站(BS)的功耗,这里假设单位覆盖区域都是正六边形,每个小区内有一个基站(BS)和若干个移动站(MS),且每个基站(BS)的最大覆盖区域是有限的。

   蜂窝网为传统的蜂窝网络,其主要包括一个基站。在此基础之上,通过引入一个或者多个中继基站(中继节点),是的基站发送的信号能够通过各个中继节点转发出去,从而实现避开障碍物,克服大尺度衰落,提高通信质量的功能。通过加入中继点,可以有效改善通信信号质量,提高蜂窝网络的容量,增加小区覆盖范围[15]。在移动蜂窝中继通信网络中,基站是唯一一个通过有线线路和骨干网络相连接的设备。一般情况下,无线通信的下行链路传播总是起始于基站,同时上行无线链路的结束也为基站。中继蜂窝的基本构架如下图所示:

image.png

   从图1可知,中继节点是蜂窝中继网络相对于传统蜂窝网引入的一个新的节点,其与基站及移动节点问的链路均是无线链路。中继节点是位于某一基站覆盖范围内附属于基站的设备,它的功能是接收来自于基站的下行链路数据,然后将这些数据转发给移动节点,或者接收来自于移动节点的上行链路数据再转发给基站。

   中继节点本身不产生它们自己的数据业务,但中继节点可以产生相关的控制信令以完成相关数据业务的传输。中继节点设备功能要比基站简单很多,因此复杂度就比较小,成本相对于基站也少很多。

   在实际应用中,中继节点的部署主要有两种方式,一是将中继节点部署在的覆盖范围内,这种部署方式的主要功能就是改善小区内用户数据信号质量,提高数据传输速率。因此,这种部署方式一般部署在覆盖小区的边缘或者是阴影衰落效应严重的区域。第二种部署方式为 将中继节点部署在的覆盖范围外,将来自基站的信号放大,从而扩大小区的覆盖范围。由于中继节点的成本通常比基站成本低很多,这是一种低成本的覆盖范围扩展的方式。两种部署方法的结构如下图所示:

image.png

   切换处理在蜂窝移动通信系统是一项非常重要的技术任务,切换操作的主要目的,不仅要去识别一个新的基站,而且要求将信号转移到新基站的信道上。由于蜂窝移动通信系统采用的复用方式是频率复用,而且采用的是分集接收技术,因此,其允许移动台同时和两个或者两个以上的小区基站进行通信,这大大的改善了切换的性能,实现了系统的无缝覆盖,提供高质量的服务[07~10]。

·硬切换

     硬切换,顾名思义,就是强制切换,其最大的特点是:“先断后连”;主要是指移动电台在载波频率不同的基站小区之间信道的切换。在硬切换过程中,用户移动设备仅仅保持与一个基站链接,一旦切换操作被激活,其马上会切断缘原有的连接,然后再与新的基站建立连接。从一个基站切换到另个基站的过程中,通信链路有短暂的中断。图3就是硬切换的物理结构:

image.png

硬切换的测量对移动台设备的要求比较高。如果进行不同频率的硬切换操作,需要首先在切换前测量多个小区的导频信号强度。这也是硬切换存在的另一个缺陷。硬切换的基本原理如图3.3所示:

image.png

   如上图所示,当一个移动用户从小区1向小区2移动时,由于移动台和小区1的基站之间距离逐渐增大,移动用户接收到的信号将逐渐减弱,当这个信号减弱到一定程度的时候,便会启动硬切换。切断移动用户与基站1的连接,启动与基站2的无线连接,完成硬切换操作过程。

·软切换

   软切换,指的是用户的移动设备在载波频率相同的小区之间进行信道的切换。在软切换的过程中,用户完全有可能同时和两个或更多的基站进行通信,在切换过程中,软切换不需要改变设备的频率,也不会出现信号中断的情况,通常情况下,软切换进一步能分为软切换和更软切换两种类型。软切换:在这种切换过程中,当移动台开始与一个新的基站联系时,并不立即中断与原来基站之间的通信,即“先连后断”。

image.png

   软切换过程和硬切换相似,就是在区域边界出会频繁的出现反复切换的现象,这也是所谓的乒乓效应。但由于软切换过程是先连后断进行,所以一般不会出现硬切换中频繁掉话的现象。而更软切换则是软切换的一种特殊情况。这种切换形式发生在同一基站的具有相同频率的不同扇区之间。

·更软切换

  更软切换是软切换的一种特殊情况。这种切换方式发生在同一基站具有相同频率的不同扇区之间。更软切换是CDMA的特色,在基站扇区间同频工作时可以方便地进行。软切换和更软切换的区别在于:更软切换发生在同一个Node-B范围内,分集信号在Node-B中做最大的增益组合,而软切换发生在两个Node-B之间,分集信号在RNC中进行合并处理。图3.5为两种切换方法的比较。

image.png

2.仿真效果预览
matlab2022a仿真结果如下:

7.png
8.png
9.png
10.png
11.png
12.png
13.png
14.png
15.png

3.MATLAB核心程序

clear;
close all;
warning off;
rng('default')
 
%切换条件
CutOff= 30;
%仿真时间
TIMES = 100
%定义小区半径为2km
r     = 2; 
dx    = 3;         %定义在x轴上的平移间隔
dy    = 2*sqrt(3); %定义在y轴上的平移间隔
%在整个空间区域产生随机的用户
N     = 500;
Xuser =-13*rand(1,N)+4;
Yuser =-15*rand(1,N)+3;
axis([-12,6,-13,5]);  
 
%根据某个用户的切换情况
Uidx  = 471;%注意这个变量需要凑一下,使得用户刚好在16个区域之一中
 
%用户硬切换情况
TRAN1      = zeros(1,TIMES);
TRAN2      = zeros(1,TIMES);
User_Cell2 = zeros(1,TIMES);%保存指定用户标号变化
 
 
for jj = 1:TIMES
    jj
    figure(1);
    ind = 0;
    Xc = [];
    Yc = [];
    for yk=[-15:dy:15];    
        f = inline(['sqrt(3)*x/3+',num2str(yk)]);
        for xk=[-13:dx:8];   
            x = xk;
            y = f(x);
            if -13<x<13&-13<y&13
                ind = ind + 1;
                a   = pi/3*[1:7];
                %绘制正六边形的六条边
                if ind == 39 | ind == 31 | ind == 23 | ind == 15 |...
                   ind == 32 | ind == 24 | ind == 16 | ind ==  8 |...
                   ind == 33 | ind == 25 | ind == 17 | ind ==  9 |...
                   ind == 26 | ind == 18 | ind == 10 | ind ==  4
                plot([x+i*y]+r*exp(i*a),'r','linewidth',1);hold on
                %中心点用“*”代表基站
                plot(x,y,'rs','markersize',6);hold on
                Xc = [Xc,x];
                Yc = [Yc,y];
                else
                plot([x+i*y]+r*exp(i*a),'b','linewidth',1);hold on    
                %中心点用“*”代表基站
                plot(x,y,'bs','markersize',6);hold on
                end
 
            end
        end
    end
    title('16X16蜂窝小区模型(单位:km)');
    axis square;
    hold on
    
 
    %用户随机运动
    Tmps = randperm(N);
    for j = 1:N
        if Tmps(j) <= 0.7*N
           Xuser(j) =  Xuser(j) + randn/5;
           Yuser(j) =  Yuser(j) + randn/5;
        else
           Xuser(j) =  Xuser(j) + rand/5;
           Yuser(j) =  Yuser(j) + rand/5;  
        end
        if j == Uidx
           Xuser(j) =  Xuser(j) + rand/8;
           Yuser(j) =  Yuser(j) + randn/20;
        end
    end
    for j = 1:N
        if j == Uidx
           plot(Xuser(j),Yuser(j),'bo','markersize',6); hold on   
           plot(Xuser(j),Yuser(j),'r*','markersize',6);    
        else
           plot(Xuser(j),Yuser(j),'k.');
        end
        hold on
    end
    axis([-12,6,-13,5]);      
    hold off
    
    %统计每个小区内的用户的数目
    User_Cell      = func_cellNum(Xuser,Yuser,Xc,Yc,N,r);
    
    
    User_Cell2(jj) = User_Cell(Uidx);
    %分析切换情况
    %第一种情况,用户跨区域了,需要切换,对比前后时刻的区域标号是否相同
    if jj == 1
       TRAN1(jj) = 0;%表示不切换   
    else
       if User_Cell2(jj) == User_Cell2(jj-1)  
          TRAN1(jj) = 0;
       else
          TRAN1(jj) = 1;%1表示跨小区切换 
       end
    end
    %第二种情况,区域用户超过30,则进行临近切换
    NUM = length(find(User_Cell == User_Cell(Uidx)));
    NUM
    if NUM <= CutOff
       if jj == 1
          TRAN2(jj) = 0;%0表示不切换   
       else
          TRAN2(jj) = 0;%0表示不切换   
       end
    else
       if jj == 1
          TRAN2(jj) = 0;%0表示不切换   
       else
          TRAN2(jj) = 1;%2表示用户过多的切换   
       end 
    end
    figure(2);
    plot(TRAN1,'b','linewidth',2);
    hold on
    plot(TRAN2+2,'r','linewidth',2);
    hold on  
    
    legend('跨小区切换','用户大于30切换');
    axis([0,TIMES,-2,6]);
end
 
 01-125m
相关文章
|
11天前
|
机器学习/深度学习 算法 数据可视化
基于MVO多元宇宙优化的DBSCAN聚类算法matlab仿真
本程序基于MATLAB实现MVO优化的DBSCAN聚类算法,通过多元宇宙优化自动搜索最优参数Eps与MinPts,提升聚类精度。对比传统DBSCAN,MVO-DBSCAN有效克服参数依赖问题,适应复杂数据分布,增强鲁棒性,适用于非均匀密度数据集的高效聚类分析。
|
11天前
|
开发框架 算法 .NET
基于ADMM无穷范数检测算法的MIMO通信系统信号检测MATLAB仿真,对比ML,MMSE,ZF以及LAMA
简介:本文介绍基于ADMM的MIMO信号检测算法,结合无穷范数优化与交替方向乘子法,降低计算复杂度并提升检测性能。涵盖MATLAB 2024b实现效果图、核心代码及详细注释,并对比ML、MMSE、ZF、OCD_MMSE与LAMA等算法。重点分析LAMA基于消息传递的低复杂度优势,适用于大规模MIMO系统,为通信系统检测提供理论支持与实践方案。(238字)
|
17天前
|
机器学习/深度学习 传感器 算法
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
|
21天前
|
监控
基于MATLAB/Simulink的单机带负荷仿真系统搭建
使用MATLAB/Simulink平台搭建一个单机带负荷的电力系统仿真模型。该系统包括同步发电机、励磁系统、调速系统、变压器、输电线路以及不同类型的负荷模型。
349 5
|
17天前
|
机器学习/深度学习 边缘计算 算法
【无人机】无人机群在三维环境中的碰撞和静态避障仿真(Matlab代码实现)
【无人机】无人机群在三维环境中的碰撞和静态避障仿真(Matlab代码实现)
107 0
|
17天前
|
存储 边缘计算 算法
【太阳能学报EI复现】基于粒子群优化算法的风-水电联合优化运行分析(Matlab代码实现)
【太阳能学报EI复现】基于粒子群优化算法的风-水电联合优化运行分析(Matlab代码实现)
|
22天前
|
存储 编解码 算法
【多光谱滤波器阵列设计的最优球体填充】使用MSFA设计方法进行各种重建算法时,图像质量可以提高至多2 dB,并在光谱相似性方面实现了显著提升(Matlab代码实现)
【多光谱滤波器阵列设计的最优球体填充】使用MSFA设计方法进行各种重建算法时,图像质量可以提高至多2 dB,并在光谱相似性方面实现了显著提升(Matlab代码实现)
|
22天前
|
机器学习/深度学习 传感器 算法
【高创新】基于优化的自适应差分导纳算法的改进最大功率点跟踪研究(Matlab代码实现)
【高创新】基于优化的自适应差分导纳算法的改进最大功率点跟踪研究(Matlab代码实现)
139 14
|
17天前
|
机器学习/深度学习 算法 安全
【图像处理】使用四树分割和直方图移动的可逆图像数据隐藏(Matlab代码实现)
【图像处理】使用四树分割和直方图移动的可逆图像数据隐藏(Matlab代码实现)
|
17天前
|
canal 算法 vr&ar
【图像处理】基于电磁学优化算法的多阈值分割算法研究(Matlab代码实现)
【图像处理】基于电磁学优化算法的多阈值分割算法研究(Matlab代码实现)

热门文章

最新文章

下一篇
oss教程