无线传感网路由VBF协议和DBR协议的MATLAB性能仿真

本文涉及的产品
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
大数据开发治理平台 DataWorks,不限时长
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: **摘要**本文档介绍了在MATLAB2022a中对无线传感器网络的VBF和DBR路由协议的性能仿真,关注能量消耗和节点存活。VBF协议依赖于节点的地理位置,采用源路由,通过矢量和管道路由选择转发节点。DBR协议则运用贪婪算法,基于节点深度决定转发,以接近水面为目标。两协议均考虑能量效率,但可能导致不必要的数据传输和重复分组,需优化策略以适应密集网络和避免冲突。

1.程序功能描述
无线传感网路由VBF协议和DBR协议的MATLAB性能仿真.将两个协议在能量消耗,存活节点等方面进行比较.

2.测试软件版本以及运行结果展示
MATLAB2022a版本运行
1.jpeg
2.jpeg
3.jpeg

3.核心程序
``` for c=1:n%计算最接近的cluster个节点
dd(c) = sqrt((DBRsave(i).xd-(DBRsave(n+1).xd) )^2 + (DBRsave(i).yd-(DBRsave(n+1).yd))^2 + (DBRsave(i).zd-(DBRsave(n+1).zd))^2);
end
[VV,II] = sort(dd);
II2 = II(1:cluster);%计算最接近的节点编号
for c=1:cluster
DBRsave_close(c).xd=DBRsave(II2(c)).xd;% 存储接近节点的X坐标
DBRsave_close(c).yd=DBRsave(II2(c)).yd;% 存储接近节点的Y坐标
DBRsave_close(c).zd=DBRsave(II2(c)).zd;% 存储接近节点的Z坐标
end

Drop_rate0 = zeros(1,n);
for i=1:n
   if DBRsave(i).E>0

min_dis = Inf;
min_dis_cluster = 0;
for c=1:cluster-1
temp = sqrt((DBRsave(i).xd-DBRsave_close(c).xd)^2 + (DBRsave(i).yd-DBRsave_close(c).yd)^2 + (DBRsave(i).zd-DBRsave_close(c).zd)^2);
if temp do
DBRsave(i).E=DBRsave(i).E- (ETX(PACK) + EmpPACK( min_dis min_dis min_dis min_dis)); % 根据距离和模型更新节点能量
end
if min_dis<= do
DBRsave(i).E=DBRsave(i).E- (ETX(PACK) + EfsPACK( min_dis min_dis)); % 根据距离和模型更新节点能量
end
DBRsave(i).min_dis = min_dis; % 存储最小距离
DBRsave(i).min_dis_cluster = II2(min_dis_cluster);% 存储最小距离对应的接近节点编号
Npackv=Npackv+1;
end
end
Npack(r+1) = Npackv;% 记录当前轮发送的数据包数量
end

Throughput = Npack;
Power = Etsetc/10;
death = Dead_nodes_numbers;

%性能
figure;
plot(Throughput,'b','linewidth',2);
grid on;
xlabel('round');
ylabel('y(吞吐量)');

figure;
plot(max(death)-death,'b','linewidth',2);
grid on;
xlabel('round');
ylabel('y(存活节点)');

figure;
plot(max(Power)-Power,'b','linewidth',2);
grid on;
xlabel('round');
ylabel('y(剩余能量)');

save result1.mat Throughput death Power
12_083m

```

4.本算法原理
无线传感器网络(Wireless Sensor Networks, WSNs)是由大量低成本、低功耗、多功能的传感器节点组成的网络,这些节点能够协作地感知、采集和处理网络覆盖区域中被感知对象的信息,并发送给观察者。在WSNs中,路由协议起着至关重要的作用,它们负责将数据从源节点传输到目的节点。

4.1 VBF路由协议
VBF协议是一种需要完整定位的地理算法。每个节点的位置通过 AOA技术或信号强度来估计。与发送节点、转发节点和目标节点相关的位置信息被携带在数据包中。从发送节点到目标节点的传递路径,由一个向量确定,该向量位于路由管道内,管道内的每个节点都可以充当发送数据包的候选者。

    如果接收到数据包的节点在路由管道内,则发送数据包;否则将他丢弃。为了确保路由,每个数据包中包含了发送者、目标和转发节点的坐标信息。节点的位置或坐标是通过定位技术获得的。

   路由过程中,使用了矢量路由和管道路由。矢量路由是从源节点到目的节点的直线,而路由管道是半径可调的圆柱体,具有矢量路由的中心性。数据包从源到目的地的路由由矢量路由确定。

   接收到数据包后,接收节点计算其相对于前一个转发节点的位置。只要节点可以确定它与向量路由足够接近,那么该节点就被认为是一个新的转发节点,并将其放入数据包中并转发给下一个节点。否则,将删除数据包。在该协议中,所有转发节点都在路由管道内。那些不靠近路由向量的节点不会转发和删除接收到的数据包。

  但是这些协议不需要关于所有节点位置的信息。VBF 是一种源路由协议。这意味着路由从源节点开始。每个数据包只携带简单的路由数据,包括SP、TP和FP三个字段,分别表示发送者、目标和转发节点的位置。为了支持节点移动性,每个数据包还包含一个称为 Range 的字段。当一个数据包到达 TP 字段指定的区域时,它将使用 range 字段内的值确定传输限制,然后将其广播到网络。通过估计它与路由向量和半径字段的距离,将能够确定它是否可以转发数据。

   总的来说,在 VBF 协议中,在那些节点彼此靠近的网络中,距离路由向量足够近或在路由管道内的节点将转发数据包。但这将导致能耗增加、不必要的数据包传输量增加。因此,应针对密集网络采取适当的策略。

4.2 DBR路由协议
DBR是一种试图将数据包从源节点(source node)传递到sink节点的贪婪算法。在该过程中,当数据包接近sink节点时,转发节点的深度在减小。如果我们在每个步骤中减少转发节点的深度,则可以将数据包发送到水面(假设不存在“空”区)。在DBR中,传感器节点(sensor node)根据自己的深度和前一个发送方的深度,分布式地做出数据包转发的决策。上述内容是DBR的关键思想。

   在DBR中,当接收到数据包时,节点首先检索数据包的前一跳的深度dp,该跳dp嵌入到数据包中。然后,接收节点将其自身的深度dc与dp进行比较。如果当前节点更靠近水面,即dc<dp,当前节点将认为自己是转发分组的合格候选。否则,当前节点只会直接丢弃数据包,丢弃的原因是收到的数据包来自更靠近水面的(更好的)节点。接收节点不希望转发该分组。

   转发节点的多个相邻节点很可能是在下一跳转发数据包的合格候选节点。如果所有这些合格的节点都尝试广播数据包,将导致高冲突和高能耗。因此,为了减少冲突和能量消耗,需要控制转发节点的数量。此外,由于DBR的继承多路径特性(inherited multiple-path feature)(其中,每个传感器节点以广播的方式使用当前节点所有方向的声学信道(using an omnidirectional acoustic channel)来转发分组),节点可能多次接收相同一个分组。因此,同一个分组可能多次被转发。为了提高能量效率,理想情况下,节点只需发送一次相同的数据包。我们将在下一节讨论抑制冗余数据包的技术。
相关文章
|
2天前
|
机器学习/深度学习 算法 固态存储
m基于深度学习的卫星遥感图像轮船检测系统matlab仿真,带GUI操作界面
在MATLAB 2022a中,使用GoogLeNet对卫星遥感图像进行轮船检测,展示了高效的目标识别。GoogLeNet的Inception架构结合全局平均池化增强模型泛化性。核心代码将图像切块并分类,预测为轮船的部分被突出显示,体现了深度学习在复杂场景检测中的应用。
21 8
|
1天前
|
算法 计算机视觉
基于Chan-Vese算法的图像边缘提取matlab仿真
**算法预览展示了4幅图像,从边缘检测到最终分割,体现了在matlab2022a中应用的Chan-Vese水平集迭代过程。核心代码段用于更新水平集并显示迭代效果,最后生成分割结果及误差曲线。Chan-Vese模型(2001)是图像分割的经典方法,通过最小化能量函数自动检测平滑区域和清晰边界的图像分割,适用于复杂环境,广泛应用于医学影像和机器视觉。**
|
1天前
|
算法
基于极大似然法和最小二乘法系统参数辨识matlab仿真,包含GUI界面
该程序对比了基于极大似然法和最小二乘法的系统参数辨识,输出辨识收敛曲线和误差。在MATLAB2022a中运行,显示了测试结果。核心代码涉及矩阵运算和循环,用于更新和计算系统参数。算法原理部分解释了辨识的目的是建立数学模型,并介绍了极大似然法(基于概率统计)和最小二乘法(基于误差平方和最小化)两种方法。
|
20小时前
|
机器学习/深度学习 自然语言处理 算法
m基于深度学习的OFDM+QPSK链路信道估计和均衡算法误码率matlab仿真,对比LS,MMSE及LMMSE传统算法
**摘要:** 升级版MATLAB仿真对比了深度学习与LS、MMSE、LMMSE的OFDM信道估计算法,新增自动样本生成、复杂度分析及抗频偏性能评估。深度学习在无线通信中,尤其在OFDM的信道估计问题上展现潜力,解决了传统方法的局限。程序涉及信道估计器设计,深度学习模型通过学习导频信息估计信道响应,适应频域变化。核心代码展示了信号处理流程,包括编码、调制、信道模拟、降噪、信道估计和解调。
22 8
|
5天前
|
传感器 算法
ANC主动降噪理论及Matlab代码实现
ANC主动降噪理论及Matlab代码实现
|
1月前
|
数据安全/隐私保护
耐震时程曲线,matlab代码,自定义反应谱与地震波,优化源代码,地震波耐震时程曲线
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度
基于混合整数规划的微网储能电池容量规划(matlab代码)
基于混合整数规划的微网储能电池容量规划(matlab代码)
|
1月前
|
算法 调度
含多微网租赁共享储能的配电网博弈优化调度(含matlab代码)
含多微网租赁共享储能的配电网博弈优化调度(含matlab代码)
|
1月前
|
Serverless
基于Logistic函数的负荷需求响应(matlab代码)
基于Logistic函数的负荷需求响应(matlab代码)
|
1月前
|
供应链 算法
基于分布式优化的多产消者非合作博弈能量共享(Matlab代码)
基于分布式优化的多产消者非合作博弈能量共享(Matlab代码)