基于TDOA的经典定位算法分为两类,一类是可以求出解析解的算法,如Fang算法、Chan算法的;另一类是迭代算法,如Taylor算法。

Taylor级数展开法是一种迭代算法,在Taylor级数展开的基础上,利用初始迭代值进行WLS估计,然后求解位置估计误差的局部最小二乘解,并对标签的位置进行更新。Taylor算法的前提是需要标签位置的初始估计值,而算法的主要思想是通过不断迭代来修正待定位标签位置的估计值,最后逐渐逼近标签真实的位置坐标。

标签与基站之间的约束关系可以通过某一函数fi(x,y,xi,yi){f_i}\left( {x,y,{x_i},{y_i}} \right)fi​(x,y,xi​,yi​)来表达,该函数的测量值可以用MiM_iMi​来表示,Mi=Mi0+ei{M_i} = M_i^0 + {e_i}Mi​=Mi0​+ei​ ,其中,Mi0M_i^0Mi0​为函数的真实值,eie_iei​表示测量误差。用η\etaη来代表误差门限值,那么,应在满足条件:Δx+Δy<η{\Delta x + \Delta y} < \etaΔx+Δy<η时停止迭代计算。

假设标签坐标的初始值为(x0,y0)({x_0},{y_0})(x0​,y0​),真实值为(x,y)(x,y)(x,y),且x=x0+Δxx = {x_0} + \Delta xx=x0​+Δx,y=y0+Δyy = {y_0} + \Delta yy=y0​+Δy,那么函数fi(x,y,xi,yi){f_i}\left( {x,y,{x_i},{y_i}} \right)fi​(x,y,xi​,yi​)在(x0,y0)({x_0},{y_0})(x0​,y0​)处的Taylor级数展开结果如下:

fi(x,y,xi,yi)=fi(x0,y0,xi,yi)+(Δx∂∂x+Δy∂∂y)fi(x0,y0,xi,yi)+12!(Δx∂∂x+Δy∂∂y)2fi(x0,y0,xi,yi)+⋯+1n!(Δx∂∂x+Δy∂∂y)nfi(x0,y0,xi,yi)+⋯f_{i}\left(x, y, x_{i}, y_{i}\right)=f_{i}\left(x_{0}, y_{0}, x_{i}, y_{i}\right)+\left(\Delta x \frac{\partial}{\partial x}+\Delta y \frac{\partial}{\partial y}\right) f_{i}\left(x_{0}, y_{0}, x_{i}, y_{i}\right)\\ +\frac{1}{2 !}\left(\Delta x \frac{\partial}{\partial x}+\Delta y \frac{\partial}{\partial y}\right)^{2} f_{i}\left(x_{0}, y_{0}, x_{i}, y_{i}\right)+\cdots\\ +\frac{1}{n !}\left(\Delta x \frac{\partial}{\partial x}+\Delta y \frac{\partial}{\partial y}\right)^{n} f_{i}\left(x_{0}, y_{0}, x_{i}, y_{i}\right)+\cdotsfi​(x,y,xi​,yi​)=fi​(x0​,y0​,xi​,yi​)+(Δx∂x∂​+Δy∂y∂​)fi​(x0​,y0​,xi​,yi​)+2!1​(Δx∂x∂​+Δy∂y∂​)2fi​(x0​,y0​,xi​,yi​)+⋯+n!1​(Δx∂x∂​+Δy∂y∂​)nfi​(x0​,y0​,xi​,yi​)+⋯

由基于TDOA的定位方法,可以得到以下的方程组:
Ri=(x−xi)2+(y−yi)2Ri1=(x−xi)2+(y−yi)2−(x−x1)2+(y−y1)2\begin{aligned} &R_{i}=\sqrt{\left(x-x_{i}\right)^{2}+\left(y-y_{i}\right)^{2}}\\ &R_{i 1}=\sqrt{\left(x-x_{i}\right)^{2}+\left(y-y_{i}\right)^{2}}-\sqrt{\left(x-x_{1}\right)^{2}+\left(y-y_{1}\right)^{2}}\\ \end{aligned} ​Ri​=(x−xi​)2+(y−yi​)2​Ri1​=(x−xi​)2+(y−yi​)2​−(x−x1​)2+(y−y1​)2​​

其中,(x,y)(x,y)(x,y)表示标签的坐标,Ri1=Ri−R1{R_{i1}} = {R_i} - {R_1}Ri1​=Ri​−R1​表示标签到第iii个基站与到第1个基站的距离差值。

由上式构造函数fi(x,y,xi,yi){f_i}\left( {x,y,{x_i},{y_i}} \right)fi​(x,y,xi​,yi​):

fi(x,y,xi,yi)=c(ti−tj)=Ri−Rj=(xi−x)2+(yi−y)2−(xj−x)2+(yj−y)2\begin{aligned} &f_{i}\left(x, y, x_{i}, y_{i}\right)=c\left(t_{i}-t_{j}\right)=R_{i}-R_{j}\\ &=\sqrt{\left(x_{i}-x\right)^{2}+\left(y_{i}-y\right)^{2}}-\sqrt{\left(x_{j}-x\right)^{2}+\left(y_{j}-y\right)^{2}}\\ \end{aligned} ​fi​(x,y,xi​,yi​)=c(ti​−tj​)=Ri​−Rj​=(xi​−x)2+(yi​−y)2​−(xj​−x)2+(yj​−y)2​​

将fi(x,y,xi,yi){f_i}\left( {x,y,{x_i},{y_i}} \right)fi​(x,y,xi​,yi​)在(x0,y0)({x_0},{y_0})(x0​,y0​)处进行泰勒展开,并忽略二阶以上的分量,有:

fi(x,y,xi,yi)=fi(x0,y0,xi,yi)+(Δx∂∂x+Δy∂∂y)fi(x0,y0,xi,yi){f_i}\left( {x,y,{x_i},{y_i}} \right) = {f_i}\left( {{x_0},{y_0},{x_i},{y_i}} \right) + \left( {\Delta x\frac{\partial }{{\partial x}} + \Delta y\frac{\partial }{{\partial y}}} \right){f_i}\left( {{x_0},{y_0},{x_i},{y_i}} \right)fi​(x,y,xi​,yi​)=fi​(x0​,y0​,xi​,yi​)+(Δx∂x∂​+Δy∂y∂​)fi​(x0​,y0​,xi​,yi​)

转化为矩阵的形式,有:

ψ=hi−Giδ\psi = {{\bf{h}}_i} - {{\bf{G}}_i}{\bf{\delta }}ψ=hi​−Gi​δ

其中,ψ\psiψ为误差矢量,另有

hi=[R2,1−(R2−R1)R3,1−(R3−R1)⋮RL,1−(RL−R1)]Gi=[x1−xR1−x2−xR2y1−yR1−y2−yR2x1−xR1−x3−xR3y1−yR1−y3−yR3⋮⋮x1−xR1−xL−xRLy1−yR1−yL−yRL]δ=[ΔxΔy]\begin{aligned} &\mathbf{h}_{i}=\left[\begin{array}{c}R_{2,1}-\left(R_{2}-R_{1}\right) \\ R_{3,1}-\left(R_{3}-R_{1}\right) \\ \vdots \\ R_{L, 1}-\left(R_{L}-R_{1}\right)\end{array}\right]\\ &\mathbf{G}_{i}=\left[\begin{array}{cc}\frac{x_{1}-x}{R_{1}}-\frac{x_{2}-x}{R_{2}} & \frac{y_{1}-y}{R_{1}}-\frac{y_{2}-y}{R_{2}} \\ \frac{x_{1}-x}{R_{1}}-\frac{x_{3}-x}{R_{3}} & \frac{y_{1}-y}{R_{1}}-\frac{y_{3}-y}{R_{3}} \\ \vdots & \vdots \\ \frac{x_{1}-x}{R_{1}}-\frac{x_{L}-x}{R_{L}} & \frac{y_{1}-y}{R_{1}}-\frac{y_{L}-y}{R_{L}}\end{array}\right]\\ &\delta=\left[\begin{array}{c}\Delta x \\ \Delta y\end{array}\right]\\ \end{aligned} ​hi​=⎣⎢⎢⎢⎡​R2,1​−(R2​−R1​)R3,1​−(R3​−R1​)⋮RL,1​−(RL​−R1​)​⎦⎥⎥⎥⎤​Gi​=⎣⎢⎢⎢⎡​R1​x1​−x​−R2​x2​−x​R1​x1​−x​−R3​x3​−x​⋮R1​x1​−x​−RL​xL​−x​​R1​y1​−y​−R2​y2​−y​R1​y1​−y​−R3​y3​−y​⋮R1​y1​−y​−RL​yL​−y​​⎦⎥⎥⎥⎤​δ=[ΔxΔy​]​

Ri(i=1,2,3,⋯,L){R_i}(i = 1,2,3, \cdots ,L)Ri​(i=1,2,3,⋯,L)表示在一次迭代计算中标签和第i个基站之间的距离。

上式的加权最小二乘解为:

δ=[ΔxΔy]=(GiTQ−1Gi)−1GiTQ−1hi\delta=\left[\begin{array}{c}\Delta x \\ \Delta y\end{array}\right]=\left(\mathbf{G}_{i}^{T} \mathbf{Q}^{-1} \mathbf{G}_{i}\right)^{-1} \mathbf{G}_{i}^{T} \mathbf{Q}^{-1} \mathbf{h}_{i}δ=[ΔxΔy​]=(GiT​Q−1Gi​)−1GiT​Q−1hi​

其中,Q{\bf{Q}}Q表示TDOA测量值的协方差矩阵。在下一次递归计算中,令x′=x0+Δxx' = {x_0} + \Delta xx′=x0​+Δx,y′=y0+Δyy' = {y_0} + \Delta yy′=y0​+Δy,更新标签的坐标值进行迭代计算。重复以上过程,直到误差满足设定的门限值时停止迭代计算,即:∣Δx∣+∣Δy∣<η\left| {\Delta x} \right| + \left| {\Delta y} \right| < \eta∣Δx∣+∣Δy∣<η。

References
[1] 宋洋. 超宽带室内定位技术研究[D].西安科技大学,2019.

代码实现(matlab)

X_estimate = 50;
Y_estimate = 50;
Xb = [200 200];
X = [200 0; -100 173; -100 -173];
Noise = 0.1*randn(3,1);
Real_ms = [20 20];BSN = size(X,1);
x = X_estimate;
y = Y_estimate;MS = [x,y];
iEP = MS;%%
Rb = sqrt((Real_ms(1) - Xb(1))^2+(Real_ms(2) - Xb(2))^2);
RD = zeros(BSN,1);
for i = 1:BSN                RD(i) = -Rb+sqrt((Real_ms(1)- X(i,1))^2+(Real_ms(2) - X(i,2))^2)+Noise(i);
end
%%
% TDOA协方差矩阵Q
Q = 0.01*eye(BSN);
delta = [1 1];
kk = 0;
% Taylor级数展开法
while ((abs(delta(1)) + abs(delta(2))) > 0.01)   R1 = sqrt((iEP(1) - Xb(1))^2 + (iEP(2) - Xb(2))^2);   R = zeros(1,BSN);kk = kk+1;for i = 1: BSN R(i) = sqrt((iEP(1) - X(i,1))^2 + (iEP(2) - X(i,2))^2);end% hihi = zeros(BSN,1);for i = 1: BSNhi(i) = RD(i) - (R(i) - R1);end% GiGi = zeros(BSN,2);for i = 1: BSNGi(i, 1) = (Xb(1)-iEP(1))/R1 - (X(i,1) - iEP(1))/R(i);Gi(i, 2) = (Xb(2)-iEP(2))/R1 - (X(i,2) - iEP(2))/R(i);end% deltadelta = inv(Gi'*inv(Q)*Gi)*Gi'*inv(Q)*hi;   if (abs(delta(1))+abs(delta(2))) > 0.01   EP = iEP + delta';   iEP = EP;   % 更新迭代值end
end% 输出
z_out = iEP;   % 标签坐标估计值
mse = sqrt((z_out(1)-Real_ms(1))^2+(z_out(2)-Real_ms(2))^2);   % 均方误差

配套pdf下载
https://download.csdn.net/download/gongshouxiayin/13658167

TDOA定位Taylor算法相关推荐

  1. TDOA定位 chan算法和Taylor算法比较仿真 matlab

    最近在学习TDOA定位算法,需要比较chan(查恩算法)和Taylor(泰勒级数算法)的定位效果. 分别实现的效果图: 运动目标从零点开始沿x=y做匀速运动. 观测站坐标如下: 在不同的雷达测距误差下 ...

  2. 【定位问题】基于matlab TDOA+taylor算法移动基站无源定位【含Matlab源码 2098期】

    ⛄一.chan+taylor算法移动基站无源定位简介 1 引言 随着无人机的普及,低空空域的安全问题受到人们的极大关注.针对该问题,本研究对"非合作型"无人机采用一种基于时差法的无 ...

  3. TDOA定位的Chan算法MATLAB源代码

    TDOA定位的Chan算法MATLAB源代码 . function [POS_ref,POS1,POS2,POS3,POS4] = TDOA_chan(R,Pbs,Q) %************** ...

  4. 在matlab下实现TDOA定位算法性能仿真

    一.题目 TDOA定位算法性能仿真 二.仿真要求 要求一:编写两个函数TDOA_CHAN和TDOA_Taylor得到位置的估计. 要求二:用RMSE实现两种算法的性能比较, 得到两种算法的RMSE曲线 ...

  5. 基于TDOA的chan算法(定位算法)

    Chan算法原理 TDOA(TDOA,the time differences of arrival,到达时间差),Chan算法是TDOA定位方法的一个很好用的方法. Chan算法是非递归双曲线方程组 ...

  6. 用C/C++实现输入IQ数据,计算时差(IQ数据互相关),完成TDOA定位(Chan算法)

    文末贴源码链接 需求:已知接收机IQ数据,根据IQ数据做互相关,求信号时差,最终通过TDOA(Chan算法)定位发射机坐标.输入输出坐标均为经纬度坐标,而在TDOA计算中,需要笛卡尔坐标系坐标,涉及坐 ...

  7. 【老生谈算法】matlab实现TDOA定位的Chan算法源码——TDOA定位

    TDOA定位的Chan算法MATLAB源代码 1.原文下载: 本算法原文如下,有需要的朋友可以点击进行下载 序号 原文(点击下载) 本项目原文 [老生谈算法]TDOA定位的Chan算法MATLAB源代 ...

  8. TDOA定位方法的Fang算法的程序实现(二维)

    TDOA定位方法的Fang算法的程序实现(二维) 摘要: 蜂窝无线定位服务(LCS)是一种具有广阔市场前景的移动增值业务,其基本原理是利用现有蜂窝网络,通过对各种位置特征参数,包括到达时间(TOA), ...

  9. 【综合算法】不考虑误差的TDOA定位

    不考虑误差的TDOA定位 TDOA是一种无线定位技术,是一种利用时间差进行定位的方法. 不同于TOA,TDOA(到达时间差)是通过检测信号到达两个基站的时间差,而不是到达的绝对时间来确定移动台的位置, ...

最新文章

  1. Verilog初级教程(14)Verilog中的赋值语句
  2. Spring Boot 获取 Bean 的 3 种方式!还有谁不会?
  3. [Ubuntu] 如何在Ubuntu11.04将PHP5.3降级到PHP5.2
  4. makefile中的include *******
  5. easyui中tab页中js脚本无法加载的问题及解决方法
  6. 怎么在同一页中分页_分库分表业界难题,跨库分页的几种常见方案
  7. 【Elasticsearch】Lucene 中的 Stored Fields 存储优化 自定义 存储类型 序列化 方式
  8. Linux 市场估值将超 70 亿美元,主要原因是安全与开源需求
  9. easypoi/easyExcel导出excel(xls,xlsx)后,文件打开错误或乱码的解决方法
  10. 东南大学本 硕 博论文中期答辩 毕业答辩ppt模板2021版
  11. tensorflow目标检测--识别赵丽颖
  12. 分子动力学模拟Gromacs一般使用步骤(空蛋白)
  13. 图书管理系统(附带源码 )
  14. 磁盘配额和raid配置
  15. oracle vitu,Podnikové servery | Oracle Česká Republika
  16. 安装anaconda时需要卸载python么_怎么卸载python 安装 anaconda
  17. 群晖 android软件,Synology Moments下载-Synology Moments app下载v1.3.2安卓版-西西软件下载...
  18. 车路协同 智能路侧决策系统边缘计算系统功能技术要求
  19. 从另一种角度理解量子力学
  20. 关于Caused by: java.lang.IllegalStateException:问题解决办法!

热门文章

  1. 网站备案注销(删除),域名备案注销(删除),备案怎么注销删除
  2. #第六章 曲率二维表达的拟合应用 ​一、四维时空曲率的二维几何表达
  3. 字节跳动测试岗面试跪在二面,我复盘总结了失败原因,决定再战一次
  4. 神舟 mini pc Android,轻巧小机身 神舟mini PC/PCS明日爆款
  5. STM32cubeMX将STM32F767+LAN8720+LwIP+FreeRTOS的以太网实现
  6. CYPRESS代理64Kbit非易失性铁电存储器FM25640B
  7. camunda modeler 汉化方法
  8. 一篇不错的Android Audio架构代码梳理总结
  9. Antd RangePicker 时间日期选择器 禁用当前时间往后的日期及现在时间往后的时分秒禁选
  10. 您的环境不支持excel引出功能_office插件Excel工具箱15.54下载安装教程