【SCI】利用信念传播在超密集无线网络中进行分布式信道分配(Matlab代码实现)

 💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

 ⛳️赠与读者

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码、数据、文章


 ⛳️赠与读者

👨‍💻做科研,涉及到一个深在的思想系统,需要科研者逻辑缜密,踏实认真,但是不能只是努力,很多时候借力比努力更重要,然后还要有仰望星空的创新点和启发点。当哲学课上老师问你什么是科学,什么是电的时候,不要觉得这些问题搞笑。哲学是科学之母,哲学就是追究终极问题,寻找那些不言自明只有小孩子会问的但是你却回答不出来的问题。建议读者按目录次序逐一浏览,免得骤然跌入幽暗的迷宫找不到来时的路,它不足为你揭示全部问题的答案,但若能让人胸中升起一朵朵疑云,也未尝不会酿成晚霞斑斓的别一番景致,万一它居然给你带来了一场精神世界的苦雨,那就借机洗刷一下原来存放在那儿的“躺平”上的尘埃吧。

     或许,雨过云收,神驰的天地更清朗.......🔎🔎🔎

💥1 概述

文献来源:

摘要:
在超密集无线网络中,高效的信道分配在减轻共信道干扰方面起着重要作用。一个简单的解决方案是将相互干扰的网络节点分配到正交信道中,以减少它们之间的干扰。然而,确定最佳信道分配被认为是一个非线性问题,可能也涉及到实际实现问题,如高计算复杂度和控制信令问题。为了解决这些具有挑战性的问题,我们提出了一种利用信念传播概念有效地找到最佳信道配置的分布式信道分配算法。基于消息传递框架,所提出的分布式信道分配算法最大化了超密集网络的总速率,并且对每个网络节点的计算负载较低。此外,我们设计了一个网络协议和帧格式,以在实际无线网络中实现所提出的消息传递框架。所提出方法的主要优势在于,网络节点可以自主确定最佳信道分配并快速适应网络动态变化。仿真结果证实,所提出的分布式信道分配算法在各种网络性能方面,如总速率、可扩展性、延迟和用户移动性方面,均优于传统算法。

在过去几十年里,无线技术已经严格扩展其应用领域,包括人员通信、机器控制方案、医疗保健服务和监控服务等。最近,物联网(IoT)迅速增长,预计到2023年将增长2.4倍,达到14.7亿设备。不断增加的无线设备将在有限数量的可用无线频道中导致大量的无线通信流量。因此,由于共信道干扰而导致的性能下降成为一个具有挑战性的问题。国际电信联盟(ITU)将无线网络的超高密度定位为陆地国际移动通信系统(IMT)未来技术趋势之一。超高密度网络是一个典型的室内低移动性实现的无线场景。超高密度环境的示例包括体育馆、办公室、公共场所和人口稠密的住宅区。关于实施方面,超高密度网络可以通过三个指标进行表征,即极高密度的接入点(APs)、各种各样的APs以提供各种接入选项以及异构的接入类型。这些指标显示了共信道干扰的高概率,导致超高密度网络的吞吐量降低和信令过载。减少共信道干扰是改善超高密度网络中大多数网络性能因素(如整体吞吐量、延迟和控制开销)的一个重要障碍。

作为应对最新无线宽带系统的实用方法,引入了频道分配策略以有效应对超高密度流量。近期的无线系统利用更宽的频谱和多个正交频道。通过为彼此严重干扰的网络节点分配正交频道,可以减少共信道干扰。最近的IEEE802.11ac WLAN标准设计为多通道宽带系统。一个5GHz ISM频段被划分为多个带宽为20MHz的正交频道。尽管包括IEEE802.11ac系统在内的最新宽带系统提供了几十个正交频道,但超高密度无线网络中的大量无线节点数量远远超过了相应的系统。对于简单的策略,可以应用启发式或随机频道分配,但在总速率、延迟和其他因素方面,性能下降可能会相当明显。因此,频道分配策略的效率变得非常重要。然而,确定每个无线节点的最佳频道是一项复杂的任务。数学公式属于非线性问题范畴,需要高度计算负荷的组合优化来找到最优解。

设计次优但高效的频道分配方法已经付出了很多努力。以前的工作可以分为静态频道分配方法和动态频道分配方法。在静态频道分配中,假设网络在频道分配过程中是静止的。这一类别的示例包括贪婪分配、遗传算法和粒子群优化。在一项研究中,贪婪分配试图通过减少每个频道的传输帧来减轻共信道干扰。该方法利用概率贪婪算法,在传输帧最小化步骤中包括随机化和扰动,以消除局部最优解。另一种遗传算法侧重于通过优化配对节点性能结果的多跳流传输来进行频道分配。这种算法采用了一个非支配排序遗传算法,采用染色体规则和帕累托等级概念来确定每个频道的最佳配置。另一项研究中的粒子群优化被探索为一种频道分配方法,其特点是消除共信道干扰的鸟类群体的性质。通过建立鸟类的典型位置和距离以找到食物作为参考,使用类似的方式确定频道分配决策,即是否合并频道。然而,上述方法在计算复杂性方面并未经过优化,因此无法有效适应动态变化的网络。详细文章见第4部分。

📚2 运行结果

部分代码:

%%---------------------initialization---------------------%%%
PndB = (-50:5:20);              % in dB 
a = 3.7;                        % Path loss Exponent 
dr = 1;                         % Refrence of Distance in meter 
Z= -100;                        % Noise power in dBm
BW = 15*10^3;                   % Hz
C = 900;                        % Sub Carrier Spacing    

%%---------------------Convert unit---------------------%%%
Pn = 10.^(PndB./10);            % Convert Power transmission from dB to mW
Zn = (10^(Z/10));               % Noise power from dB to mW
orthoChan = [1:1:3];            % Number of Channel (You can change the max channel)

%%---------------------Generate N AP-STA Pairs---------------------%%%
Npair = 50;                      % Create N AP-STA Pairs
Npairref = Npair;
neighbor =5;
[num,txt,raw] = xlsread('dataiot','data');
coorT = num(:,1:2);
coorR = num(:,3:4);

for Chan = 1:length(orthoChan);
for j = 1 : length(PndB)
%% Input CoorT and CoorR
    lengthCoorT = length(coorT);
    [dist, min2maxdist, idxDist] = distance(coorT, coorR);

    %%---------------------Calculate Gain Channel---------------------%%%
    [G, min2maxG] = channelgainnew(dist, lengthCoorT); % Calculate Indoor Fading Channel

        NumInit = 1;      
            for i = 1:orthoChan(Chan)
                        NumIdx = round(((i/orthoChan(Chan))*Npair));
                        ChannelChosen{i} = transpose(NumInit:NumIdx);
                        NumInit= NumIdx + 1;
            end
end 


 %% Update Channel Gain for Conflicting Node in same Channel
          memberCh = zeros(length(ChannelChosen),Npairref);
            for iter = 1:length(ChannelChosen)
                memberCh(iter,ChannelChosen{iter}) = 1;
            end
        
                for g = 1:orthoChan(Chan)
                    indexchan = ChannelChosen{g};
                    for n = 1:length(indexchan)
                         for nc = 1:length(indexchan)
                                G1{g}(n,nc) = G(indexchan(n),indexchan(nc));
                         end  
                    end   
                end   
        
              Gnol = G1;
          for r = 1:length(ChannelChosen)
              for kl = 1:length(ChannelChosen{r})
                Gnol{r}(kl,kl) = 0;
              end
          end

   
    
  %% Assign Power to Calculate Throughput
    
    for z=1: length(Pn)
         % Calculate Sum Rate in each Channel When Power transmission is Pn
        for i=1:length(ChannelChosen)
            indexPairingCh = zeros(1,length(ChannelChosen{i}));

🎉3 参考文献

文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。

🌈4 Matlab代码、数据、文章

                                      资料获取,更多粉丝福利,获取入口

                                                           在这里插入图片描述

  • 10
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值