✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,
代码获取、论文复现及科研仿真合作可私信。
🍎个人主页:Matlab科研工作室
🍊个人信条:格物致知。
更多Matlab完整代码及仿真定制内容点击👇
🔥 内容介绍
基于CRBs和MLEs估计器对TOA和RSSI算法
摘要
本文研究了基于CRBs和MLEs估计器对TOA和RSSI算法的性能。CRBs和MLEs估计器是两种常用的定位算法,它们都具有各自的优缺点。本文通过仿真比较了这两种算法的性能,并分析了它们在不同条件下的优缺点。结果表明,在高信噪比条件下,MLEs估计器具有更好的性能,而在低信噪比条件下,CRBs估计器具有更好的性能。
1. 引言
定位技术是无线通信领域的一个重要研究方向,它在移动通信、导航、物联网等领域都有着广泛的应用。定位算法有很多种,其中TOA和RSSI算法是最常用的两种。TOA算法通过测量信号到达时间来估计目标的位置,而RSSI算法通过测量信号强度来估计目标的位置。
CRBs和MLEs估计器是两种常用的定位算法。CRBs估计器是一种基于克拉美-拉奥下界(CRB)的定位算法,它通过最小化CRB来估计目标的位置。MLEs估计器是一种基于最大似然估计(MLE)的定位算法,它通过最大化似然函数来估计目标的位置。
2. CRBs和MLEs估计器
2.1 CRBs估计器
CRBs估计器是一种基于克拉美-拉奥下界(CRB)的定位算法。CRB是定位算法性能的一个下界,它表示定位算法在无噪声条件下的最佳性能。CRBs估计器通过最小化CRB来估计目标的位置。
CRBs估计器的公式如下:
^=argmin
2.2 MLEs估计器
MLEs估计器是一种基于最大似然估计(MLE)的定位算法。MLE是定位算法性能的一个度量,它表示定位算法在有噪声条件下的最佳性能。MLEs估计器通过最大化似然函数来估计目标的位置。
MLEs估计器的公式如下:
📣 部分代码
%|
%| REFERENCE: Numerical recipes in C "mnbrak"
%|
function [ax, bx, cx, fa, fb, fc] = minBracket(ax, bx, func)
%| 1. definitions
GOLD = 1.618034;
GLIMIT = 100.0;
TINY = 1.0e-20;
%|
fa = feval(func, ax);
fb = feval(func, bx);
%| 2. Switch roles for b and a so that we can go in a
%| downhill direction from b to a.
if fb > fa,
temp = ax; ax = bx; bx = temp;
temp = fb; fb = fa; fa = temp;
end
cx = bx + GOLD*(bx-ax); % First guess for cx
fc = feval(func, cx);
%| 3. Keep returning here until we bracket
while fb > fc,
r = (bx-ax) * (fb-fc);
q = (bx-cx) * (fb-fa);
u = bx - ((bx-cx)*q - (bx-ax)*r) / (2*nzSIGN(max(abs(q-r),TINY), q-r));
%| 4. We won't go farther than ulim. Test various possibilities.
ulim = bx + GLIMIT*(cx-bx);
if (bx-u)*(u-cx) > 0,
%| 4.1 parabolic u is between b and c: try it.
fu = feval(func, u);
if fu < fc, % found a minimum between b and c
ax = bx; fa = fb;
bx = u; fb = fu;
return;
elseif fu > fb, % found a minimum between a and u
cx = u; fc = fu;
return;
end
%| 4.2. parabolic fit was no use. Use default magnification.
u = cx + GOLD*(cx-bx);
fu = feval(func, u);
elseif (cx-u)*(u-ulim) > 0,
%| 4.3. Parabolic fit is between c and its allowed limit.
fu = feval(func, u);
if fu < fc,
bx = cx;
cx = u;
u = cx + GOLD*(cx-bx);
fb = fc;
fc = fu;
fu = feval(func, fu);
end
elseif (u-ulim)*(ulim-cx) >= 0,
%| 4.4. Limit parabolic u to its maximum allowed value.
u = ulim;
fu = feval(func, u);
else
%| 4.5 Reject parabolic u, use default magnification.
u = cx + GOLD*(cx-bx);
fu = feval(func, u);
end
%| 5. Eliminate oldest value and continue
ax = bx; bx = cx; cx = u;
fa = fb; fb = fc; fc = fu;
end
⛳️ 运行结果
🔗 参考文献
[1] 李蕾.煤矿井下无线传感器网络的RSSI定位算法研究与实现[D].内蒙古科技大学[2024-01-22].DOI:CNKI:CDMD:2.1014.080373.
[2] 卢翔.基于无线传感器网络定位系统的分析和实现[D].复旦大学[2024-01-22].DOI:10.7666/d.y1969528.
[3] 郝丽娜,乔莹.基于RSSI的无线传感器网络定位算法仿真分析与研究[J]. 2010.