请问有无线传感器网I加权质心算法matlab代码吗?

请问有无线传感器网I加权质心算法matlab代码吗?,第1张

[capture-of-moving.rar] - 本文详细介绍了在视频图像的基础上用!"#$ &’(( )*+ 实现运动目标形心捕获的具体程序"从而可以实现运动 目标的位置检测 程序运用改进的形心算法计算目标图形 的中心坐标"并使用了计时器函数实时显示坐标变化值

[codebook.rar] - 实现了基于码书的运动检测,并有与其他的检测算法做对比,例如MOG,Bayes,三帧差分等。

[zhixin.rar] - 无线传感器网络加权质心自定位算法中加权质心算法仿真

[qq1_2.rar] - 3种定位算法(多边:3 边及4边 最小二乘 质心)的主程序

[802.11opnet.rar] - 802.11opnet,802.11在OPNET中的仿真代码

[rssic.rar] - 无线传感器网络的加权质心算法,用matlab编程的,需要的可以参考

[Simulation1.rar] - 本程序先使用RSSI中对数常态模型来测距离,然后用三边测量法来计算未知节点的坐标。

[RSSIzhixin.rar] - 基于RSSI测距的无线传感器网络改进质裂销心定位算法

[zhixinsuanfa2.rar] - 无线传感器网销源运络中质心算法,并有锚节点比例和亏梁误差分析

[myDVHOP.rar] - 一种基于RSSI的DV-HOP加权算法,该算法基于节点接收信标节点位置元组时的信号强度(RSSI)对邻居节点间跳数进行加权处理,将节点间的跳数与距离相关联,仿真试验结果证明该加权算法可大大提高定位精度。

你没有定义信标节点(BeaconAmount)的个数。不定义肯定报错啊。一下是我最近随便编的一段类似于质心算法的东西的核心部分,你的同学应该能看懂,有点帮助。

if num_of_neb_anchor(i)>咐大1&&num_of_neb_anchor(i)<6

%如果未知节点i的邻居锚节点个数在2和5之间

fenmu(i)=0

fenzi_x(i)=0

fenzi_y(i)=0

fenzi_z(i)=0

for k=1:num_of_neb_anchor(i)

distant_rssi(i,k)=sqrt((node_x(i)-neighbor_anchor_x(i,k))^2+(node_y(i)-neighbor_anchor_y(i,k))^2+(node_z(i)-neighbor_anchor_z(i,k))^2)

fenmu(i)=fenmu(i)+1/distant_rssi(i,k)

fenzi_x(i)=fenzi_x(i)+neighbor_anchor_x(i,k)/distant_rssi(i,k)

 衡雹竖 fenzi_y(i)=fenzi_y(i)+neighbor_anchor_y(i,k)/distant_rssi(i,k)

fenzi_z(i)=fenzi_z(i)+neighbor_anchor_z(i,k)/肆悉distant_rssi(i,k)

end

esti_node_x(i)=fenzi_x(i)/fenmu(i)

esti_node_y(i)=fenzi_y(i)/fenmu(i)

esti_node_z(i)=fenzi_z(i)/fenmu(i)%未知节点的估计坐标

end

基于RSSI的定位

RSSI测量,一般利用信号传播的经验模型与理论模型。

对于经验模型,在实际定位前,先选取若干测试点,记录在这些点各基站收到的信号强度,建立各个点上的位置和信号强度关系的离线数据库(x,y,ss1,ss2,ss3)。在实际定位时,根据测得的信号强度(ss1′,ss2′,ss3′)和数据库中记录的信号强度进行比较,信号强度均方差最小的那个点的坐标作为节点的坐标。

对于理论模型,常采用无线电传播路径损耗模型进行分析。常用的传播路径损耗模型有:自由空间传播模型、对数距离路兄谈仔径损耗模型、哈它模型、对数一常态分布模型等。自由空间无线电传播路径损耗模型为:

式中,d为距信源的距离,单位为km;f为频率,单位为MHz;k为路径衰减因子。其他的模型模拟现实环境,但与现实环境还是有一定的差距。比如对数一常态分布模型,其路径损耗的计算公式为:

式中,Xσ是平均值为O的高斯分布随机变数,其标准差范围为4~10;k的范围在2~5之间。取d=1,代入式(1)可得,LOSS,即PL(d0)的值。此时各未知节点接收锚节点信号时的信号强度为:

RSSI=发射功率+天线增益一路径损耗(PL(d))

2.2 基于RSSI的三角形质心定位算法的数学模型

不论哪种模型,计算出的接收信号强度总与实际情况下有误差,因为实际环境的复杂性,换算出的锚节点到未知节点的距离d总是大于实际两节点间的距离。如图1所示,锚节点A,B,C,未知节点D,根据RSSI模型计算出的节点A和D的距离为rA;节点B和D的距离为rB;节点C和D的距离为rC。分别以A,B,C为圆心;rA,rB,rC为半径画圆,可得交叠区域。这里的三角形质心定位算法的基本思想是:计算三圆交叠区域的3个特征点的坐标,以这三个点为三角形的顶点,未知点即为三角形质心,如图2所示,特征点为E,F,G,特征点E点的计算方法为:

同理,可计算出F,G,此时未知点的坐标为由仿真得,在图2中,实际点为D;三角形质心算法出的估计点为M;三边测量法算出的估计点为N。可知,三角形质心算法的准确度更高。

3 基于RSSI的三角形质心算法过侍纯程

3.1 步骤

(1)锚节点周期性向周围广播信息,信息中包括自身节点ID及坐标。普通节点收到该信息后,对同一锚节点的RSSI取均值。

(2)当普通节点收集到一定数量的锚节点信息时,不再接收新信息。普通节点根据RSSI从强到弱对锚节点排序,并建立RSSI值与节点到锚节点距离的映射。建立3个集合。

锚节点集合:

(3)选取RSSI值大的前几个锚节点进行自身定位计算。

在B_set:中优先选择RSSI值大的信标节点组合成下面的锚节点集合,这是提高定位精度的关键。

对锚节点集合,依次根据(3)式算出3个交点的坐标,最后由质心算法,得出未知节点坐标。

(4)对求出的未知节点坐标集合取平均,得未知节点坐标。

3.2 误差定义

定义定位误差为ER,假设得到的未知节点的坐标为(xm,ym),其真实位置为(x,y),则定位误差ER为:

4 仿 真

利用Matlab仿真工具模拟三角形质心算法,考察该算法的性能。假设在100 m×100 m的正方形区域内,36个锚节点均匀分布,未知节点70个,分别用三边测量法和羡汪三角形质心定位算法进行仿真,仿真结果如图3所示。由图3可知,三角形质心算法比三边测量法,定位精度更高,当测距误差变大时,用三角形质心算法得出的平均定位误差比用三边测量法得出的小得多。

5 结 语

在此提出了将RSSI方法和三角形质心定位算法相结合的方法,通过仿真实验,将该算法和三边测量算法相比较,证明了该算法的优越性。下一步将研究在锚节点数量不同时的平均定位误差。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12496768.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存