💥💥💞💞欢迎来到本博客❤️❤️💥💥
🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。
⛳️座右铭:行百里者,半于九十。
📋📋📋本文目录如下:🎁🎁🎁
目录
⛳️赠与读者
👨💻做科研,涉及到一个深在的思想系统,需要科研者逻辑缜密,踏实认真,但是不能只是努力,很多时候借力比努力更重要,然后还要有仰望星空的创新点和启发点。建议读者按目录次序逐一浏览,免得骤然跌入幽暗的迷宫找不到来时的路,它不足为你揭示全部问题的答案,但若能解答你胸中升起的一朵朵疑云,也未尝不会酿成晚霞斑斓的别一番景致,万一它给你带来了一场精神世界的苦雨,那就借机洗刷一下原来存放在那儿的“躺平”上的尘埃吧。
或许,雨过云收,神驰的天地更清朗.......🔎🔎🔎
💥1 概述
超宽带(UWB)定位技术及其应用
超宽带(UWB)定位技术概述
超宽带(Ultra Wide Band,UWB)技术是一种利用纳秒级的非正弦波窄脉冲进行数据传输的无线通讯技术。这种技术因其占用的频谱范围很宽(>1GHz)而得名超宽带。UWB技术具有系统复杂度低、发射信号功率谱密度低、对信道衰落不敏感、截获能力低、定位精度高等优点,特别适用于室内等密集多径场所的高速无线接入。
UWB定位用于移动目标的卡尔曼滤波(KF)
卡尔曼滤波(Kalman Filter,KF)是一种用于实时估计系统状态的数学工具,常用于信号处理和控制系统中。在UWB定位中,卡尔曼滤波可以用来优化移动目标的位置估计。通过结合UWB提供的高精度定位数据和卡尔曼滤波的预测能力,可以有效地减少位置估计的误差,尤其是在动态环境中。
用于固定点的UWB定位
对于固定点的UWB定位,虽然不需要像移动目标那样频繁地更新位置信息,但UWB技术仍然能够提供高精度的定位服务。这在资产跟踪、室内导航等领域非常有用。通过UWB标签和基站的相互作用,可以精确地确定固定点的位置。
获取轨迹的研究
用MVUfir获取轨迹
MVUfir可能指的是某种特定的滤波器或者信号处理算法,但具体的细节在给定的搜索结果中并未提及。通常,这类算法用于信号的平滑和去噪,以获取更准确的轨迹信息。在UWB定位中,通过MVUfir处理接收到的UWB信号,可以得到更平滑和准确的目标运动轨迹。
用卡尔曼滤波(KF)获取轨迹
卡尔曼滤波在获取轨迹方面有着广泛的应用。它可以结合UWB定位数据,通过递归算法不断更新目标的位置和速度估计。这种方法特别适用于动态环境中的移动目标跟踪,因为它能够有效地融合来自UWB的不同时刻的测量数据,从而得到连续和平滑的轨迹。
用卡尔曼滤波(KF)为倾斜目标获取轨迹
对于倾斜目标,即那些不仅在平面上移动而且有角度变化的目标,卡尔曼滤波同样适用。通过扩展卡尔曼滤波(EKF)或无迹卡尔曼滤波(UKF)等高级形式,可以处理目标的姿态信息,从而获取包括角度变化在内的完整轨迹。这些方法能够在三维空间中提供更准确的定位和姿态估计。
结论
超宽带(UWB)定位技术因其高精度和低复杂度在移动目标和固定点定位中都有广泛应用。结合卡尔曼滤波等信号处理技术,可以进一步优化轨迹获取的准确性和平滑性。尽管搜索结果中未直接提到MVUfir,但类似的信号处理技术在UWB定位中同样重要。
📚2 运行结果
2.1 用MVUfir获取轨迹
2.2 用KF获取轨迹
2.3 用卡尔曼滤波(kf)为倾斜目标获取轨迹
部分代码:
global x_act
global y_act
global Vx % 实际速度
global Vy
% 提取txt的距离信息,并放入C_txt{4}中
fid = fopen('2018-8-31-18-12-56.txt');
temp = fscanf(fid,'%f'); % 提取实际x轴与y轴的坐标放入temp
x_act = temp(1); y_act = temp(2); % 实际位置x0,y0
Vx = temp(3); Vy = temp(4); % 实际位置x0,y0
eq_tr = temp(5); % 基站(等边三角形)的边长
C_txt = textscan(fid, '%s %s %s %s %s %f %d');
start = ismember(C_txt{4},'F1'); % 'F1'即为每次数据的开始标志,标为1,其他标为0
start_num = find(start==1); % 记录'F1'的位置(所在行的次序)
fclose(fid);
% ------------------解出坐标位置---------------------
% LX = B ==> X = inv(L'L) * A'B,构造A和B
% 由基站坐标得到矩阵A
x_beacon = [0 6 0 6]; % 分别对应三个基站的横坐标x1,x2,x3
y_beacon = [0 0 3.4 3.4];
L(:,1) = 2*[x_beacon(1)-x_beacon(3) x_beacon(2)-x_beacon(3) x_beacon(4)-x_beacon(3)]';
L(:,2) = 2*[y_beacon(1)-y_beacon(3) y_beacon(2)-y_beacon(3) y_beacon(4)-y_beacon(3)]';
b1 = x_beacon(1)^2 - x_beacon(3)^2 + y_beacon(1)^2 - y_beacon(3)^2;
b2 = x_beacon(2)^2 - x_beacon(3)^2 + y_beacon(2)^2 - y_beacon(3)^2;
b3 = x_beacon(4)^2 - x_beacon(3)^2 + y_beacon(4)^2 - y_beacon(3)^2;
% 由距离得到矩阵B
coordinate = [];
% (length(start_num)-1)为uwb数据的组数,一组数据(三个距离)可以计算得到一个位置点
% i将记录下总的数据组的组数
void = 0; % 记录无效的数据组的个数
% for i = 1 : 50
for i = 1 : (length(start_num)-1)
d = C_txt{6}((start_num(i)+1):(start_num(i+1)-1));
if (length(d) == 4) % 确定该组距离的数据个数为3
B(1) = b1 + d(3)^2 - d(1)^2;
B(2) = b2 + d(3)^2 - d(2)^2;
B(3) = b3 + d(3)^2 - d(4)^2;
coordinate(:,i-void) = inv(L'*L) * (L'*B'); % 最小二乘法计算得到标签的位置
% coordinate(:,i-void) = A\B'; % 计算得到标签的位置
timetable(i-void) = str2double( C_txt{1}{start_num(i)+2}(2:10) ); % 记录每个数据组对应的时间
else
void = void + 1; % 记录距离的数据小于3的数据组的组数
end
end
% ------------------滤波-------------------
g_t = 0.7; % 设置时间间隔
% Vx = 0; % 设置速度
% Vy = 0.15; % 0.14
Y(1,1) = coordinate(1,1); % Y为观察值,x和y两个坐标值
🎉3 参考文献
文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。(文章内容仅供参考,具体效果以运行结果为准)
[1]苏东良,王学军,杨民兵,等.超宽带(UWB)定位技术在执法记录仪中的应用研究[C]//2019年全国公共安全通信学术研讨会.0[2025-01-19].
[2]陈学卿,高凡,马伟朕.基于超宽带(UWB)技术的无线定位系统的研究[J].桂林航天工业高等专科学校学报, 2008, 13(004):15-16.
[3]李凡.基于超宽带(UWB)技术的测距方法研究[D].华中师范大学[2025-01-19].
🌈4 Matlab代码、数据下载
资料获取,更多粉丝福利,MATLAB|Simulink|Python资源获取