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

news2024/11/15 8:31:46

目录

1.算法描述

2.仿真效果预览

3.MATLAB核心程序

4.完整MATLAB


1.算法描述

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

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

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

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

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

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

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

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

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

  ·硬切换

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

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

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

  ·软切换

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

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

·更软切换

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

2.仿真效果预览

matlab2022a仿真结果如下:

 

 

 

 

 

 

 

 

3.MATLAB核心程序

clc;
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

4.完整MATLAB

V

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/78908.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

UDS入门至精通系列:Service 14

文章目录 一、Service 14功能是什么二、UDS协议对服务的定义三、用图形说明Service 14四、手动测试总结一、Service 14功能是什么? 在汽车电子诊断领域,在新车型定义诊断需求时,会给每一个ECU的故障类型定义一个DTC,ECU中运行代码判定DTC是否产生(判定机制和原理我会在关于…

Gateway之限流、熔断

目录 一、Sentinel--服务容错 ① 简化启动我们的nacos 1.高并发带来的问题 ① 修改配置文件中tomcat的并发数 ② 使用压测工具&#xff0c;对请求进行压力测试 第一步&#xff1a;修改配置&#xff0c;并启动软件 第二步&#xff1a;添加线程组 第三步&#xff1a;配置线…

MySQL 小版本升级步骤

MySQL mysql 5.7.38 升级到 5.7.40 下载软件升级包 参考下载地址&#xff1a;https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.40-linux-glibc2.12-x86_64.tar.gz 上传软件包至服务器 可以使用rz命令或scp上传本地文件 比如上传至服务器目录为 /usr/local/software…

关于如何获取上周均值的实时数据思路,吾之解合君意否?

&#x1f4da; 在前端界面图形化展示中&#xff0c;目前主流以报表形式&#xff0c;或者以曲线图形式展示其所需数据的数字动态变化效果居多。在数据量不大或者不需要模糊对比的情况下&#xff0c;我们以报表展示为主&#xff1b;而我们需要从肉眼宏观可见的监控数据变化&#…

volatile解决有序性和可见性问题

线程可见性问题分析 什么是可见性&#xff1f; 如果一个线程对一个共享变量进行了修改 而其他线程不能及时地读取修改后的值 所以在多线程情况下该共享变量就会存在可见性问题 package com.alipay.alibabademo.thread;import lombok.extern.slf4j.Slf4j;import java.util.co…

改进遗传算法在TSP问题中的应用(Matlab代码实现)

&#x1f468;‍&#x1f393;个人主页&#xff1a;研学社的博客 &#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜…

玩转Python图片处理(OpenCV)

OpenCV是一个基于BSD许可&#xff08;开源&#xff09;发行的跨平台计算机视觉库&#xff0c;可以运行在Linux、Windows、Android和Mac OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C 类构成&#xff0c;同时提供了Python、Ruby、MATLAB等语言的接口&#xff0c;…

Qt扫盲-QLabel使用总结

QLabel使用总结一、QLabel 显示内容二、注意事项1. 格式注意2. 不保留先前状态3. 格式对齐4. 伙伴焦点三、信号和槽函数使用1. 信号2. 槽函数总结&#xff1a;QLabel 其实就是一个用来只读显示的简易控件。适合数据量很小的内容显示。QLabel用于显示 文本或图像。 不提供用户交…

深度学习之目标检测通用技巧

深度学习之目标检测通用技巧深度学习之目标检测通用技巧深度学习之目标检测通用技巧 一 数据增强 1.离线增强 离线增强:对数据集进行处理&#xff0c;数据的数目会变成增强因子原数据集的数目 2.在线增强 对输入模型的batch的数据进行增强&#xff0c;如旋转、平移、翻折等…

今天给大家介绍一篇基于SSM的教材管理系統的设计与实现

项目描述 临近学期结束&#xff0c;还是毕业设计&#xff0c;你还在做java程序网络编程&#xff0c;期末作业&#xff0c;老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下&#xff0c;你想解决的问…

【Tensorflow学习三】神经网络搭建八股“六步法”编写手写数字识别训练模型

神经网络搭建八股“六步法”编写手写数字识别训练模型Sequential用法model.compile(optimizer优化器,loss损失函数,metrics["准确率"])model.fitmodel.summery六步法搭建鸢尾花分类网络class搭建具有非顺序网络结构MNIST数据集Fashion MNIST数据集用Tensorflow API:t…

java计算机毕业设计基于安卓Android的掌上酒店预订APP

项目介绍 网络的广泛应用给生活带来了十分的便利。所以把掌上酒店预订与现在网络相结合,利用java技术建设掌上酒店预订APP,实现掌上酒店预订的信息化。则对于进一步提高掌上酒店预订发展,丰富掌上酒店预订经验能起到不少的促进作用。 掌上酒店预订APP能够通过互联网得到广泛的…

基于风能转换系统的非线性优化跟踪控制(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️❤️&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清…

一、CDD在诊断开发中的作用

本专栏将由浅入深的展开诊断实际开发与测试的数据库编辑,包含大量实际开发过程中的步骤、使用技巧与少量对Autosar标准的解读。希望能对大家有所帮助,与大家共同成长,早日成为一名车载诊断、通信全栈工程师。 本文介绍CDD在诊断开发中的作用,欢迎各位朋友订阅、评论,可以提…

如何评价模型的好坏?

回归&#xff1a; MSE&#xff08;均方误差&#xff09;—— 判定方法&#xff1a;值越小越好&#xff08;真实值-预测值&#xff0c;平方之后求和平均&#xff09;RMSE&#xff08;均根方误差&#xff09;—— 判定方法&#xff1a;值越小越好&#xff08;MSE开根号&#xff…

Dijkstra最短路径算法

参考&#xff1a;(3条消息) Dijkstra算法图文详解_一叶执念的博客-CSDN博客_迪杰斯特拉算法 如图&#xff0c;假设图中共有n条路径&#xff08;如D-C-E&#xff09;&#xff0c;根据路径长度进行小到大排序。 1、起点到达某终点的距离是无穷符号&#xff0c;表示该起点还需要借…

27岁到来之际,我在阿里实现了年薪40W+的小目标

顺着大佬的思路&#xff0c;我分析了自己的实际水平和状况&#xff1a; 1、技术不精不成体系&#xff1a;技术能力浮于表面&#xff0c;对底层逻辑和架构不了解&#xff0c;也不知道如何系统化进行学习; 2、遇到职场瓶颈期&#xff1a;站在3年职场的分水岭上&#xff0c;没有…

Linux网络原理及编程(8)——第十八节 数据链路层

目录 1、MAC地址 2、MAC帧 3、MAC帧协议 4、MTU 5、ARP请求和应答 各位好&#xff0c;博主新建了个公众号《自学编程村》&#xff0c;拉到底部即可看到&#xff0c;有情趣可以关注看看哈哈&#xff0c;关注后还可以加博主wx呦~~~&#xff08;公众号拉到底部就能看到呦~~&a…

基于java+springmvc+mybatis+jsp+mysql的新冠肺炎疫苗接种管理系统

项目介绍 新冠疫苗接种管理系统&#xff0c;在网站首页可以查看首页&#xff0c;疫苗信息&#xff0c;疫苗资讯 &#xff0c;个人中心&#xff0c;后台管理&#xff0c;在线客服等内容&#xff0c;并进行详细操作。管理员登录进入系统可以查看首页&#xff0c;个人中心&#x…

vue自定义keepalive组件的问题解析

前一阵来了一个新的需求&#xff0c;要在vue项目中实现一个多开tab页面的功能&#xff0c;本来心想&#xff0c;这不简单嘛就是一个增加按钮重定向吗&#xff1f;&#xff08;当然如果这么简单我就不写这个文章了&#xff09;。很快写完&#xff0c;提交测试。测试大哥很快就提…