TDOA定位的Chan算法MATLAB源代码

合集下载

多点定位系统算法分析和优化探讨

多点定位系统算法分析和优化探讨

多点定位系统算法分析和优化探讨摘要】随着我国民航事业的快速发展,新监视系统的研发与应用已是必然趋势。

本文首先对多点定位技术MLAT与其他监视技术进行了比较,说明了多点定位技术的优势,并对其最具代表性的两种算法Taylor算法和Chan算法进行了深入研究以及仿真对比分析,提出了一种约束初值高精度迭代目标定位算法或者称为协同算法,即把 Chan 算法得到的初始解应用于 Taylor算法,从而得到精度更高的目标位置。

关键词: 多点定位;精度;算法;仿真分析0 引言多点定位技术MLAT(Multilateration)作为先进的场面监视手段,定位精度高,刷新频率快,在世界上已被很多国家作为民用甚至国防建设的重要研究方向。

多点定位系统经过多年的开发和试验已具有较高的定位精度,成为欧洲和美国民航局认可的场面监视技术,并被其迅速推广实施。

在世界范围内很多大中型机场已经将多点定位系统投入使用,如法兰克福、多伦多、孟菲斯和底特律等城市的民用航空机场。

多点定位系统已成为 ICAO(国际民航组织)提出的先进场面活动引导和控制系统 (A-SMGCS)的核心技术。

目前,多点定位系统已经被广泛应用在国内外的大中型机场中,实现了精确的场面监视、航路监视、精密进近、广域多点相关监视等。

1 多点定位关键技术在多点定位系统中,时钟同步技术与布站选址是两个至关重要的技术,也是提高多点定位系统定位精度的有效方法。

时钟同步技术主要包括集中式时钟同步、分布式时钟同步、GNSS时钟同步、参考应答机同步、原子时钟同步等。

集中式时钟同步是将各个远端接收站接收到的信号传送回中心处理站,由中心处理站统一对各个接收站的信息进行标记,这种时钟同步方式容易造成时间延时过大,信号到达远端接收站的时间估计误差较大,但设备易于安装,结构简单。

为了减小由信息传送造成的时间误差,多采用TDOA原理(到达时间差)进行目标位置求解。

对于前四种时钟同步技术,需要注意远端站和中心处理站间的时间偏差和时间补偿,减小时钟同步带来的定位误差。

基于TDOA的CHAN算法在UWB系统中的应用

基于TDOA的CHAN算法在UWB系统中的应用

出 了主要 针 对 室 内物体 的基 于到 迭 时 问差 ( DOA)的 定 位 算 T
法 。 首 先 对 常 用 的 CH N 算 法 在 L A OS情 况 下 的 性 能 展 开 研
究 .得 出此 算 法对 于服 从 正 态分 布 的误 差有 很 好 的 性 能 ,然 后
仿 真 结果 表 明 ,CHA 算 法定 位 性 能 可 以 达到 理 想 效 果 。 N 关键 词 :T DOA;CH AN 算 法
置。
间/ 到达 时 间 差 )的 测 量 值 就 构 成 一 组 关 于 目标 位 置 的 圆 周 曲
线 / 曲线 方 程 组 ,求 解 该 方 程 组 就 可 以 得到 目标 的估 计 位 置 。 双 但 是 定 位方 程 组 都 是 非 线 性 的 ,而 且 测 量 总 存 在 误差 ,其 中 的
应用 ,基 于无 线 网 络定 位技 术 的应 用 ,脉 冲超 宽 带 ( R U I — WB)

f Y ’ ( Q1 ) Q1 】 - - r≈ - h
△ = △ 2 1●●●●●●●● J Y2 r △ J △3 r
() 2

无线定位技 术尤其具有广 阔的发展前 景。U WB信 号 实 现 定 位
E A 算 法 H N
在 超 宽 带室 内定 位 系 统 中 ,一 旦 获 得 T A F O ( 达 时 O FD A 到 间/ 到达 时 间差 )的测 量 值 ,就 可 以得 到 目标 到 定 位 站 的 距 离
或 目标 到两 个 定 位站 之 间 的距 离 差 ,多 个 T I DOA ( 达 时 OA T 到
与 跟 踪具 有 以下 优 势 : ( )具 有极 高 的距 离 分 辨 能力 。 1

浅析无线电考试作弊信号快速定位方案高超

浅析无线电考试作弊信号快速定位方案高超

浅析无线电考试作弊信号快速定位方案高超发布时间:2021-08-31T02:56:30.862Z 来源:《中国科技人才》2021年第15期作者:高超[导读] 本文首先梳理了无线电考试作弊信号的种类及原理,其对考试公平、公正带来的挑战,最后结合最近无线电定位技术如何解决排查工作中遇到的问题提出了一种基于TDOA技术快速锁定信号源的解决方案。

德州市无线电监测中心山东省德州市 253000摘要:本文首先梳理了无线电考试作弊信号的种类及原理,其对考试公平、公正带来的挑战,最后结合最近无线电定位技术如何解决排查工作中遇到的问题提出了一种基于TDOA技术快速锁定信号源的解决方案。

关键词:无线电考试作弊 TDOA定位智能识别分析1.前言近年来,随着通信技术的发展,使得人们可以利用通信设备和网络实现5W(Whoever、Whenever、Wherever、Whomever、Whatever),即任何人可在任何时候、任何地方与任何人进行任何形式的通信,这使得考场内的考生可以方便地通过无线电设备与考场外人员进行信息交换,为考生从场外获取与考试相关的信息的作弊行为提供了方便的工具。

如今无线电技术正与考试作弊加速融合,利用无线技术的作弊助考行为,已经形成了整套地下产业链和商业模式,并趋于成熟;非法盗用和侵占合法的无线电频率,影响了正常的无线电通信和电磁环境。

在快速甄别作弊信号后,如何能够快速、准确的确定作弊设备位置,对打击高科技、隐蔽性强、组织严密的利用无线电技术进行违法作弊的犯罪分子有极大的意义。

2.无线电考试作弊技术特点及发展趋势利用无线电设备进行考试作弊发送答案有两种途径:一种是发射模拟语音信号,接收端通常是微型耳机;另一种是发射数字调制的文本,接收端为带显示屏的伪装文具。

由于防控和定位手段的介入,作弊团伙的警惕性越来越高,作案方式由手动发射信号,逐步升级为通过互联网遥控作弊发射设备进行发射,以免暴露自身。

2.1 语音信号语音信号主要集中在130M-170M、220M、400-470M、1150M、1250M等,通常为窄带的调频信号,发射功率一般不超过5W。

tdoa定位算法matlab代码

tdoa定位算法matlab代码

TDOA定位算法是一种基于时间差测量的定位方法,通过测量信号在不同接收节点的到达时间差来确定信号源的位置。

在实际应用中,TDOA定位算法可以用于无线定位、声纳定位等领域,具有广泛的应用前景。

为了实现TDOA定位算法,我们可以使用MATLAB编程语言进行算法实现。

下面将介绍如何利用MATLAB编写TDOA定位算法的代码,并给出具体的实现步骤。

一、获取信号到达时间差数据1.1 收集接收节点之间的信号到达时间差数据,包括信号源到各个接收节点的时间差信息。

1.2 对采集到的时间差数据进行预处理,包括去除异常值、滤波处理等,以确保数据的准确性和可靠性。

二、计算信号源位置2.1 构建TDOA定位算法的数学模型,根据信号到达时间差数据和接收节点的位置信息,建立定位问题的数学表达式。

2.2 利用MATLAB编程语言实现TDOA定位算法的数学模型,包括距离函数的定义、误差函数的构建等。

2.3 运用数值计算方法,如最小二乘法、非线性优化等,对定位问题进行求解,得到信号源的位置信息。

三、算法性能评估3.1 设计实验方案,生成合成数据或利用实际数据进行仿真实验。

3.2 对TDOA定位算法的性能进行评估,包括定位精度、计算速度、鲁棒性等方面的指标。

3.3 对算法的评估结果进行分析和讨论,找出算法的优点和不足之处,并提出改进方向。

通过以上步骤,我们可以实现TDOA定位算法的MATLAB代码,并对算法的性能进行评估和改进,从而更好地应用于实际系统中。

需要注意的是,在实际应用中,TDOA定位算法还需要考虑到信号传播模型、多径效应、多普勒效应等因素,进一步提高定位算法的准确性和鲁棒性。

也可以结合其他定位方法,如AOA定位、TOA定位等,进行多模式融合,提高定位系统的整体性能。

TDOA定位算法是一种基于时间差测量的定位方法,具有广泛的应用前景。

通过MATLAB编程实现TDOA定位算法的代码,并对算法的性能进行评估和改进,可以更好地应用于无线定位、声纳定位等实际系统中。

基于Chan的TDOA三维定位算法

基于Chan的TDOA三维定位算法
可根据z ≈ ( G Q ~ G ) ~ G : Q h求得。
[ = 一 [ 蔓 篆 襄 ] { [ 蓉 ] R + [ 霉 茎 三 茎 ] } c 4
当基站数 目 Ⅳ ≥5时, T D O A测量值的数 目大于 未知参数的数 目,可以采用加权最d ' , - - 乘法( WL S ) 来充分利用冗余的数据 , C h a n 算法能获得更加好 的 移动终端位置估计值 。此时先将初始非线性 T D O A 方程组转换为线性方程组 , 然后采用 WL S 得到初始
2 T D O A定位原 理与 C h a n算法
基于 T DO A 的定 位 系 统 中 , 一旦获得 T D O A 的
测量值 ,就可以得到移动终端到定位基站之间的距 解 ,再利用第一次得到的估计坐标及附加变量等 已 离差 ,多个测量值构成一组关于移动终端位置的双 知约束条件进行第二次 WL S 估计 , 从而得到改进 的 曲线方程组 , 求解该方程组就可以得 到 目 标 的估计 位置。 由于定位方程组是非线性的 , 而且 T D O A的测 量总存在误差 ,所 以定位问题就由求解非线性方程


a Z { ( hG ) T ’ l r 一 ( h — G n z a ) ) ( 6 )

与前面的分析和推倒类似 ,可 以得到含有移动 终端位置的未知量 Z 。 的解为:


, 、 ( G 一 G ) G h



z = ( G 、 l , 。 _ G ) G _ h
其中 , 为 误 差 矢 量 V 的 协 方 差 矩 阵

( 1 0 )
[ ’ I , ’ I , = B Q B [ 6 1 , Q为T D O A测量值的协方差矩

TDOA,AOA定位的扩展卡尔曼滤波定位算法Matlab源码

TDOA,AOA定位的扩展卡尔曼滤波定位算法Matlab源码

TDOA,AOA定位的扩展卡尔曼滤波定位算法Matlab源码TDOA/AOA定位的扩展卡尔曼滤波定位算法Matlab源码(2007-08-24 01:48:23) 标签:知识/探索function[MX,MY,SS]=ExtendedKalmanFilter(D1,D2,D3,A1,A2,A3,Flag1,FLAG2,S0,P0, SigmaR,SigmaAOA)%% TDOA/AOA定位的扩展卡尔曼滤波定位算法%% 输入参数列表% D1 基站1和移动台之间的距离% D2 基站2和移动台之间的距离% D3 基站3和移动台之间的距离% A1 基站1测得的角度值% A2 基站2测得的角度值% A3 基站3测得的角度值1×1矩阵,取值1,2,3,表明是以哪一个基站作为基准站计算TDOA数据的 % Falg1% FLAG2 N×3矩阵,取值0和1,每一行表示该时刻各基站的AOA是否可选择, % 1表示选择AOA数据,FLAG2并非人为给定,而是由LOS/NLOS检测模块确定% S0 初始状态向量,4×1矩阵% P0 预测误差矩阵的初始值,4×4的矩阵% SigmaR 无偏/有偏卡尔曼输出距离值的方差,由事先统计得到 % SigmaAOA 选择AOA数据的方差,生成AOA数据的规律已知,因此可以确定 %% 输出参数列表% MXM% Y%% 第一步:计算TDOA数据if Flag1==1TDOA1=D2-D1;TDOA2=D3-D1;elseif Flag1==2TDOA1=D1-D2;TDOA2=D3-D2;elseif Flag1==3TDOA1=D1-D3;TDOA2=D2-D3;elseerror('Flag1输入有误,它只能取1,2,3');end%% 第二步:构造两个固定的矩阵%构造状态转移矩阵ΦPhi=[1, 0,0.025, 0;0, 1, 0,0.025;0, 0, 1, 0;0, 0, 0, 1]; %构造W的协方差矩阵QSigmaU=0.00001;%噪声方差取很小的值Q=[0, 0, 0, 0;0, 0, 0, 0;0, 0,SigmaU, 0;0, 0, 0,SigmaU]; %% 第三步:输出数据初始化N=length(D1);MX=zeros(1,N);MY=zeros(1,N);MX(1)=S0(1);MY(1)=S0(2);SS=zeros(4,N);SS(:,1)=S0;%% 第四步:以下是迭代过程for i=2:NFlag2=FLAG2(i,:);%当前各信道环境的LOS/NLOS判据R=FunR(SigmaR,SigmaAOA,Flag2);%调用产生R矩阵的子函数S1=Phi*S0;%由状态方程得到的预测值H=FunH(S1,Flag1,Flag2);%调用产生H矩阵的子函数P1=Phi*P0*(Phi')+Q;%计算上述预测值的协方差矩阵K=P1*(H')*inv(H*P1*(H')+R);%计算滤波增益(加权系数)Z=FunZ(TDOA1,TDOA2,A1,A2,A3,SigmaR,SigmaAOA,Flag2,i);%调用构造观察向量的子函数hS1=FunhS1(S1,Flag1,Flag2);%调用构造观测值的估计值向量的子函数S2=S1+K*(Z-hS1);%加权得到滤波输出值%更新S0和P0P2=P1-K*H*P1;S0=S2;P0=P2;%记录滤波输出值MX(i)=S2(1);MY(i)=S2(2);SS(:,i)=S2;endfunction Z=FunZ(TDOA1,TDOA2,A1,A2,A3,SigmaR,SigmaAOA,Flag2,i) %调用构造观察向量的子函数m=sum(Flag2);Z=zeros(2+m,1);Z(1)=TDOA1(i);Z(2)=TDOA2(i);if Flag2(1)==0&&Flag2(2)==0&&Flag2(3)==0%空语句elseif Flag2(1)==1&&Flag2(2)==0&&Flag2(3)==0Z(3)=A1(i);elseif Flag2(1)==0&&Flag2(2)==1&&Flag2(3)==0Z(3)=A2(i);elseif Flag2(1)==0&&Flag2(2)==0&&Flag2(3)==1Z(3)=A3(i);elseif Flag2(1)==1&&Flag2(2)==1&&Flag2(3)==0Z(3)=A1(i);Z(4)=A2(i);elseif Flag2(1)==1&&Flag2(2)==0&&Flag2(3)==1Z(3)=A1(i);Z(4)=A3(i);elseif Flag2(1)==0&&Flag2(2)==1&&Flag2(3)==1Z(3)=A2(i);Z(4)=A3(i);elseif Flag2(1)==1&&Flag2(2)==1&&Flag2(3)==1Z(3)=A1(i);Z(4)=A2(i);Z(5)=A3(i);elseerror('Flag2格式不正确,它的元素只能取0或者1'); endfunction R=FunR(SigmaR,SigmaAOA,Flag2)%% 产生R矩阵的子函数m=sum(Flag2);B=[-1,1,0;-1,0,1];R11=B*[SigmaR,0,0;0,SigmaR,0;0,0,SigmaR]*(B');R12=zeros(2,m);R21=zeros(m,2);if m==0R22=[];elseif m==1R22=SigmaAOA;elseif m==2R22=[SigmaAOA, 0;0,SigmaAOA]; elseif m==3R22=[SigmaAOA, 0, 0;0,SigmaAOA, 0;0, 0,SigmaAOA];elseerror('Flag2格式不正确,它的元素只能取0或者1'); end R=[R11,R12;R21,R22];function hS1=FunhS1(S1,Flag1,Flag2)%% 构造观测值的估计值向量的子函数%提取估计的移动台坐标x=S1(1);y=S1(2);%三个基站的横纵坐标x1=0;y1=0;x2=5;y2=8.66;x3=10;y3=0;%计算移动台到三个基站的距离(估计值)d1=((x-x1)^2+(y-y1)^2)^0.5;d2=((x-x2)^2+(y-y2)^2)^0.5;d3=((x-x3)^2+(y-y3)^2)^0.5;M=2+sum(Flag2);hS1=zeros(M,1);if Flag1==1%以第一个基站为基准计算TDOA数据hS1(1)=d2-d1;hS1(2)=d3-d1;elseif Flag1==2%以第二个基站为基准计算TDOA数据hS1(1)=d1-d2;hS1(2)=d3-d2;elseif Flag1==3%以第三个基站为基准计算TDOA数据hS1(1)=d1-d3;hS1(2)=d2-d3;elseerror('Flag1格式不正确,它只能取1,2,3');endh1=atan2(y-y1,x-x1);h2=atan2(y-y2,x-x2);h3=atan2(y-y3,x-x3);if Flag2(1)==0&&Flag2(2)==0&&Flag2(3)==0%空语句elseif Flag2(1)==1&&Flag2(2)==0&&Flag2(3)==0hS1(3)=h1;elseif Flag2(1)==0&&Flag2(2)==1&&Flag2(3)==0hS1(3)=h2;elseif Flag2(1)==0&&Flag2(2)==0&&Flag2(3)==1hS1(3)=h3;elseif Flag2(1)==1&&Flag2(2)==1&&Flag2(3)==0hS1(3:4)=[h1;h2];elseif Flag2(1)==1&&Flag2(2)==0&&Flag2(3)==1hS1(3:4)=[h1;h3];elseif Flag2(1)==0&&Flag2(2)==1&&Flag2(3)==1hS1(3:4)=[h2;h3];elseif Flag2(1)==1&&Flag2(2)==1&&Flag2(3)==1hS1(3:5)=[h1;h2;h3];elseerror('Flag2格式不正确,它的元素只能取0或者1'); end。

TDOA定位的Chan算法MATLAB源代码

TDOA定位的Chan算法MATLAB源代码

TDOA定位的Chan算法MATLAB源代码func on [POS_ref,POS1,POS2,POS3,POS4] = TDOA_chan(R,Pbs,Q)%% TDOA定位定位Chan算法%*********************************************************% CHAN算法,假设移动台与各基站位置较近,需进行三四WLS计算% 输入参数:% R(N-1×1): TDOA测量值% Pbs(N×2): 基站的坐标,第一列为X,第二列为Y;参考基站坐标位于第一行% 输出参数:% POS_ref(2X1):第一次WLS的估计结果,作为参考作最终定位结果的判决% POS1(2X1) :定位结果1% POS2(2X1) :定位结果2% POS3(2X1) :定位结果3% POS4(2X1) :定位结果4%这段程序用于自己产生算法输入参数,用于算法测试% delta = 10; %TDOA测量误差的标准差,用于产生Q矩阵% M=4; %参考基站外的基站数量% Xb = 20;Yb = 100; %参考的基站坐标% X = zeros(M,2);% a = 2*pi/M;% for i=1:M %生成其他基站的坐标% X(i,1) = 400*cos(a*(i-1));% X(i,2) = 400*sin(a*(i-1));% end% Xreal = -150;Yreal = 200;%移动台真实坐标% %产生TDOA测量结果% Rb = sqrt((Xreal - Xb)^2+(Yreal - Yb)^2);%移动台到基站的真实距离% N = normrnd(0,delta,1,M);%产生TDOA测量误差% Kb = Xb^2+Yb^2;% R = zeros(M,1);% for i=1:M %产生TDOA测量值% R(i) = -Rb+sqrt((Xreal - X(i,1))^2+(Yreal - X(i,2))^2)+N(i);% end% Q = (0.5*eye(M)+0.5*ones(M))*(delta^2);% Pbs = [Xb Yb;X];% N = 5;% [POS_ref POS1 POS2 POS3 POS4] = TDOA_chan(R,Pbs,Q)N = size(Pbs,1);K = zeros(1,N);K = Pbs(:,1).^2 + Pbs(:,2).^2;ha = 0.5*(R.^2-K(2:N)+K(1))Ga = -[Pbs(2:N,1)-Pbs(1,1) Pbs(2:N,2)-Pbs(1,2) R]%计算第一次WLS估计结果(远距算法)Za = inv(Ga.'*inv(Q)*Ga)*Ga.'*inv(Q)*ha;Ba = diag(Va);Fa = Ba*Q*Ba;Zacov = inv(Ga.'*inv(Fa)*Ga);%第一次WLS计算(近距算法)Va2 = sqrt((Za2(1)-Pbs(2:N,1)).^2+(Za2(2)-Pbs(2:N,2)).^2);Ba2 = diag(Va2);Fa2 = Ba2*Q*Ba2;Zacov2 = inv(Ga.'*inv(Fa2)*Ga);%第二次WLS计算(近距算法)Gb = [1 0;0 1;1 1];Bb2 = [Za2(1)-Pbs(1,1) 0 0;0 Za2(2)-Pbs(1,2) 0;0 0 sqrt((Za2(1)-Pbs(1,1))^2+ (Za2(2)-Pbs(1,2))^2)];Fb2 = 4*Bb2*Zacov2*Bb2;POS_ref = Za2(1:2,1); %第一次WLS的估计结果,作为参考作最终定位结果的判决POS1 = sqrt(Zb2)+Pbs(1,:).'; %定位结果1POS2 = -sqrt(Zb2)+Pbs(1,:).';%定位结果2POS3 = [-sqrt(Zb2(1));sqrt(Zb2(2))]+Pbs(1,:).';%定位结果3POS4 = [sqrt(Zb2(1));-sqrt(Zb2(2))]+Pbs(1,:).';%定位结果4源代码运行结果展示037附图1.emf。

tdoa泰勒算法代码matlab

tdoa泰勒算法代码matlab

tdoa泰勒算法代码matlabTDOA泰勒算法是一种用于定位无线电源的算法,它基于时间差测量(TDOA)技术,可以在无需知道信号源的位置的情况下,通过多个接收器接收到的信号到达时间差来确定信号源的位置。

在实际应用中,TDOA泰勒算法被广泛应用于无线定位、雷达定位、声波定位等领域。

在MATLAB中实现TDOA泰勒算法,需要先定义信号源的位置和接收器的位置,然后通过接收器接收到的信号到达时间差来计算信号源的位置。

具体实现过程如下:1. 定义信号源和接收器的位置在MATLAB中,可以使用矩阵来表示信号源和接收器的位置。

例如,定义一个3x2的矩阵S表示3个信号源的位置,定义一个2x4的矩阵R表示4个接收器的位置,代码如下:S = [1 2; 3 4; 5 6];R = [7 8 9 10; 11 12 13 14];2. 计算信号到达时间差在TDOA泰勒算法中,信号到达时间差可以通过接收器接收到的信号到达时间来计算。

假设接收器1和接收器2分别接收到信号源1和信号源2的信号,信号到达时间差为t,则有:t = (r1 - s1) - (r2 - s2)其中,r1和r2分别表示接收器1和接收器2接收到信号的时间,s1和s2分别表示信号源1和信号源2的位置。

在MATLAB中,可以使用矩阵运算来计算信号到达时间差。

例如,定义一个4x3的矩阵T表示4个接收器接收到3个信号源的信号到达时间差,代码如下:T = [(R(:,1)-S(1,:))-(R(:,2)-S(2,:)) (R(:,1)-S(1,:))-(R(:,3)-S(3,:)) (R(:,2)-S(2,:))-(R(:,3)-S(3,:))];3. 使用泰勒算法计算信号源位置在TDOA泰勒算法中,可以使用泰勒展开公式来计算信号源的位置。

假设信号源的位置为x和y,则有:f(x,y) = (t1 - t2)^2 - ((x - R1x)^2 + (y - R1y)^2) + ((x - R2x)^2 + (y - R2y)^2)其中,t1和t2分别表示接收器1和接收器2接收到信号的时间,R1x 和R1y分别表示接收器1的位置,R2x和R2y分别表示接收器2的位置。

一种基于TOA定位的CHAN改进算法

一种基于TOA定位的CHAN改进算法

一种基于TOA定位的CHAN改进算法
杨天池;金梁;程娟
【期刊名称】《电子学报》
【年(卷),期】2009(037)004
【摘要】本文提出了一种基于TOA参数的CHAN改进定位算法.首先利用坐标平移的方法,消除定位方程中的未知参数,得到移动台位置的一次估计;其次通过对一次定位结果误差的分析表明基站的几何位置结构和到达距离对定位误差具有不同的"贡献"度,依据"贡献"度大小的不同,对大"贡献"度采用小权值而对小"贡献"度采用大权值的原则,提出了虚拟基站的方法来减小系统的总体误差,从而提高定位精度.仿真结果验证了本文算法的有效性.
【总页数】4页(P819-822)
【作者】杨天池;金梁;程娟
【作者单位】国家数字交换系统工程技术研究中心,河南,郑州,450002;国家数字交换系统工程技术研究中心,河南,郑州,450002;解放军信息工程大学信息工程学院,河南,郑州,450002
【正文语种】中文
【中图分类】TN929.533
【相关文献】
1.基于TDOA定位模型的Chan井下定位算法的改进 [J], 靳伟超;马翠红;杨友良
2.基于改进Chan算法和多元Taylor算法的室内定位方法 [J], 陈大伟;钱路雁;陈
诗军;金玲飞;李俊强
3.基于改进Chan算法和多元Taylor算法的室内定位方法 [J], 陈大伟;钱路雁;陈诗军;金玲飞;李俊强
4.基于Chan的UWB室内定位算法改进 [J], 柏雨晨
5.一种基于单次散射体定位的TOA/AOA混合定位算法 [J], 谢雪;王浩祥;邓平因版权原因,仅展示原文概要,查看原文内容请购买。

chan算法-代码(数学建模)

chan算法-代码(数学建模)

function [POS_ref,POS1,POS2,POS3,POS4] = TDOA_chan(R,Pbs,Q)%% TDOA定位定位Chan算法%*********************************************************% CHAN算法,假设移动台与各基站位置较近,需进行三四WLS计算% 输入参数:% R(N-1×1): TDOA测量值% Pbs(N×2): 基站的坐标,第一列为X,第二列为Y;参考基站坐标位于第一行% 输出参数:% POS_ref(2X1):第一次WLS的估计结果,作为参考作最终定位结果的判决% POS1(2X1) :定位结果1% POS2(2X1) :定位结果2% POS3(2X1) :定位结果3% POS4(2X1) :定位结果4 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%这段程序用于自己产生算法输入参数,用于算法测试% delta = 10; %TDOA测量误差的标准差,用于产生Q矩阵% M=4; %参考基站外的基站数量% Xb = 20;Yb = 100; %参考的基站坐标% X = zeros(M,2);% a = 2*pi/M;% for i=1:M %生成其他基站的坐标% X(i,1) = 400*cos(a*(i-1));% X(i,2) = 400*sin(a*(i-1));% end% Xreal = -150;Yreal = 200;%移动台真实坐标% %产生TDOA测量结果% Rb = sqrt((Xreal - Xb)^2+(Yreal - Yb)^2);%移动台到基站的真实距离% N = normrnd(0,delta,1,M);%产生TDOA测量误差% Kb = Xb^2+Yb^2;% R = zeros(M,1);% for i=1:M %产生TDOA测量值% R(i) = -Rb+sqrt((Xreal - X(i,1))^2+(Yreal - X(i,2))^2)+N(i);% end% Q = (0.5*eye(M)+0.5*ones(M))*(delta^2);% Pbs = [XbYb;X];% N = 5;% [POS_ref POS1 POS2 POS3 POS4] = TDOA_chan(R,Pbs,Q) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%N = size(Pbs,1);K = zeros(1,N);K = Pbs(:,1).^2 + Pbs(:,2).^2;ha = 0.5*(R.^2-K(2:N)+K(1))Ga = -[Pbs(2:N,1)-Pbs(1,1) Pbs(2:N,2)-Pbs(1,2) R]%计算第一次WLS估计结果(远距算法)Za = inv(Ga.'*inv(Q)*Ga)*Ga.'*inv(Q)*ha;Ba = diag(Va);Fa = Ba*Q*Ba;Zacov = inv(Ga.'*inv(Fa)*Ga);%第一次WLS计算(近距算法)Va2 = sqrt((Za2(1)-Pbs(2:N,1)).^2+(Za2(2)-Pbs(2:N,2)).^2);Ba2 = diag(Va2);Fa2 = Ba2*Q*Ba2;Zacov2 = inv(Ga.'*inv(Fa2)*Ga);%第二次WLS计算(近距算法)Gb = [1 0;0 1;1 1];Bb2 = [Za2(1)-Pbs(1,1) 0 0;0 Za2(2)-Pbs(1,2) 0;0 0 sqrt((Za2(1)-Pbs(1,1))^2+(Za2(2)-Pbs(1,2))^2)]; Fb2 = 4*Bb2*Zacov2*Bb2;POS_ref = Za2(1:2,1); %第一次WLS的估计结果,作为参考作最终定位结果的判决POS1 = sqrt(Zb2)+Pbs(1,:).'; %定位结果1POS2 = -sqrt(Zb2)+Pbs(1,:).';%定位结果2POS3 = [-sqrt(Zb2(1));sqrt(Zb2(2))]+Pbs(1,:).';%定位结果3POS4 = [sqrt(Zb2(1));-sqrt(Zb2(2))]+Pbs(1,:).';%定位结果4。

基于TDOA的Chan算法和Taylor算法的分析与比较

基于TDOA的Chan算法和Taylor算法的分析与比较
下来 再求 解该 方程 组 ,得 到合理 的解 便为 移 动 台的估 计位 置 。 设MS 坐标 , 力, ) 为第i 个BS 的坐标 , 为 MS 和BS 间 的距 离 。则 有 :
l K 玉一 ) , 置卜 【 ( 一 ) , 】 [ ( 一 y  ̄ ) l R l 】 一 [ ( 一 ) , 】l
为时间
= +
其 中:
则距 离 差羽 求 得为 :
d =c at
其 中 ,c 为 电波传 播速 度 。 当采 用T DO A定位 的方 法 对移 动 台 的位 置进 行估 计 时 ,第 一 必 须 要 测得 某 个 T D OA 值 ,即MS 分 别 到任 意 两 个B S 的时 间差 值 , 多 个T D OA  ̄ 量值 就 能 组成 一 组关 于移 动 台位 置 的双 曲线方 程组 :接
同时 ,又提 出了两种 算 法的 混合 算法 ,提 高 了定位精 度 。
【 关键词 】T DOA;C h a n 算法;T a y l o r 算法;混合算法
由式 ( 1 )和式 ( 2 )得 :
0 引言
在 日新月 异 ,科 技突 飞猛 进 的今 天 ,人们 对信 息 定位 的 需求 曰 益 增 加 ,无 线定 位 技术 得 到 了普遍 关 注和 高 度重 视 。T DO A 技 术 因 其 可 操 作 性 强 ,对 设备 要 求不 高 ,实 现起 来 相对 简 单 , 同时 对MS S U B S 的时 间 同步 要求 不 是 十 分严 格 ,所 以成 为 人 们研 究和 关 注 的 热 点 ,从而 得 到 了广 泛 的应 用 l 】 ] 。本 文 主要 对 基 于T DO A的C h a n ;  ̄ D T a y l o r 两 种算 法 进行 比较和 分 析 ,最 后 又将 两种 算 法进 行 混 合 ,优 化算 法 ,使 定位 精度 更高 ,更 实用 。

Chan算法在TDOA三维定位系统应用性能研究

Chan算法在TDOA三维定位系统应用性能研究

Chan算法在TDOA三维定位系统应用性能研究作者:明华刘璟李志咏周新宇来源:《科学与信息化》2019年第06期摘要针对发电厂内三维定位的需求,对Chan算法应用TDOA三维定位系统的性能进行了分析,选取均方根误差(RMSE)为评价指标,进行了基站最优个数的仿真研究。

在对Chan 算法定位性能与基站数目关系仿真分析基础上,构建了一套UWB-TDOA定位系统进行验证,仿真和实验结果表明:论文提出的5基站定位系统能够满足实际定位需求。

关键词超宽带;Chan算法;TDOA;三维定位引言UWB(Ultra Wide Band)技术是一种新型无线通信技术。

该技术通过对具有很陡上升和下降时间的冲激脉冲进行直接调制,使信号具有GHz量级的带宽[1],非常适用于室内定位。

按照测量参数的不同,UWB定位方法主要有基于信号到达时间的定位方法(TOA)和基于信号到达时间差的定位方法(TDOA)[2]。

TDOA与TOA定位精度相当,但其定位过程中无须待测标签与基站间的同步,只需各基站间的时钟同步,这大大降低了同步难度[6]。

综合定位精度、功耗以及容量等方面的考虑[7],本文采用TDOA三维定位方法来实现室内定位。

当信噪比比较高时,TDOA的测量误差服从高斯分布[8],为了解决这个问题,Y.T.Chan 提出了一个使用两步最大似然估计来计算目标位置的算法,即Chan算法[9]。

本文结合电厂三维定位实际需求,对Chan算法应用TDOA三维算法中的定位精度与基站数目进行分析和仿真,并基于UWB系统与基站进行实验验证。

1 基于Chan的三维定位算法研究1.1 Chan算法Chan算法[10]是一种具有解析表达式的非递归双曲线方程组的TDOA位置估计算法。

该算法具体过程如下:假设三维空间中待测标签的位置坐标为,随机分布有N个定位基站且基站坐标已知,选定基站1作为主基站,主基站坐标作为原点,其他各基站作为从基站,各基站坐标为。

从基站相对主基站接收标签信号的时间差记为,标签到达第个基站的距离为,则有:其中,当基站数目时,得到的TDOA测量信息大于标签未知参数的个数,可以充分利用冗余的测量信息来提高定位的精度。

室内定位chan氏算法的python实现

室内定位chan氏算法的python实现

#!/usr/bin/env python# -*- coding: utf-8 -*-'程序实现目标:已知四个基站的位置(给定坐标),以及tag到四个anchors的距离,以及anchors 和anchors之间的距离,用基于chan定位算法实现tag位置的求解, 基于平面空间'from math import *import numpy as npfrom numpy.linalg import *def chan_location(Ri_1,AN,Q):AN_num = len(AN)k = (AN**2).sum(1)#将数组各元素平方后按列求和h = 0.5*(Ri_1**2 - k[1:AN_num] + k[0])Ga = []for i in range(1,AN_num):Ga.append([AN[i][0]-AN[0][0],AN[i][1]-AN[0][1],Ri_1[i-1]])Ga = np.array(Ga)Ga = -Ga#tag和AN相距为远距离Za = inv((Ga.T).dot(inv(Q)).dot(Ga)).dot((Ga.T).dot(inv(Q)).dot(h))#求B,FA值以便代入real_dis = np.sqrt(((AN[1:AN_num]-Za[0:2])**2).sum(1))Ba = np.diag(real_dis)Fa = Ba.dot(Q).dot(Ba)Zacov = inv((Ga.T).dot(inv(Fa)).dot(Ga))#tag和AN相距为近距离Za1 = inv((Ga.T).dot(inv(Fa)).dot(Ga)).dot((Ga.T)).dot(inv(Fa)).dot(h)real_dis1 = np.sqrt(((AN[1:AN_num]-Za1[0:2])**2).sum(1))Ba1 = np.diag(real_dis1)Fa1 = Ba1.dot(Q).dot(Ba)Zacov1 = inv((Ga.T).dot(inv(Fa1)).dot(Ga))#得到Za1后再根据最新位置更新fa和误差协方差的值#构建求解近距离的第二次加权最小二乘Ga1 = np.array([[1,0],[0,1],[1,1]])h1 = np.array([(Za1[0]-AN[0][0])**2,(Za1[1]-AN[0][1])**2,Za1[2]**2])Bb = np.diag([Za1[0]-AN[0][0],Za1[1]-AN[0][1],Za1[2]])Fa2 = 4*(Bb).dot(Zacov1).dot(Bb)Za2 = inv((Ga1.T).dot(inv(Fa2)).dot(Ga1)).dot((Ga1.T)).dot(inv(Fa2)).dot(h1)pos1 = np.sqrt(Za2) + AN[0]pos2 = -np.sqrt(Za2) + AN[0]pos3 = [np.sqrt(Za2[0]),-np.sqrt(Za2[1])] + AN[0]pos4 = [-np.sqrt(Za2[0]),np.sqrt(Za2[1])] + AN[0]pos = [pos1,pos2,pos3,pos4]return posif __name__ == "__main__":delta = 10AN = []AN1 = (20,100)AN.append(AN1)tag = (100,100)AN_num = 4a = 2*pi/AN_numtag_AN1_dis = sqrt((AN1[0]-tag[0])**2 + (AN1[1]-tag[1])**2)#AN1与tag的距离print(tag_AN1_dis)for i in range(1,AN_num):AN.append((400*cos(a*(i-1)),400*sin(a*(i-1))))AN = map(list, AN)#整体映射功能,能将列表或者元组转化为每个元素都为列表样式的列表AN = np.array(AN)Q = (0.5*np.eye(AN_num-1) + 0.5*np.ones((AN_num-1,AN_num-1)))*(delta**2)#AN = np.matrix(AN)tdoa_dis = []Nerror = np.random.normal(0,delta,AN_num-1)#产生随机误差for i in range(1,AN_num):tdoa_dis.append(sqrt((AN[i][0]-tag[0])**2 + (AN[i][1]-tag[1])**2)-tag_AN1_dis + Nerror[i-1])Ri_1 = np.array(tdoa_dis)pos = chan_location(Ri_1,AN,Q)print(pos)#最终对比,从四个中选出一个正确的定位点。

Matlab车牌定位程序源代码

Matlab车牌定位程序源代码

Matlab 车牌定位程序源代码clear;clc; close all;chos=0; possibility=9;while chos~=possibility,chos=menu('车牌定位系统','载入图片’,'二值化','边缘化','腐蚀','连通','滤波',...'定位','倾斜校正','退出');if chos==1, clc;[namefile,pathname]=uigetfile('*.jpg','Select image');if namefile~=0I=imread(strcat(pathname,namefile));imshow(I);endif chos==2,I1=rgb2gray(I);imshow(I1);endif chos==3,I2=edge(I1,'robert',0.15,'both'); imshow(I2);endif chos==4,se=[1;1;1];I3=imerode(I2,se);imshow(I3);endif chos==5, se=strel('rectangle',[25,25]); I4=imclose(I3,se);imshow(I4);endif chos==6,I5=bwareaopen(I4,2000); imshow(I5);[y,x,z]=size(I5);myI=I5;endif chos==7, %%%%%%%%%%% 统计分析%%%%%%%%%%%%%%%%%%%%%%% Y 方向%%%%%%%%%% whitr_y=zeros(y,1);for i=1:yfor j=1:xif(myI(i,j,1)==1) % 白色RGB 的灰度范围whitr_y(i,1)= whitr_y(i,1)+1; % 白色象素点统计endend%%%%%%%%%%叵板X%%%%%%%%=■ ■cxr A d =A d )llA -pu①H +(N A d H (N A d((A V (N A d )0303(9H A (L7Ad)A —」壬M))①Z M>xel/\IH(NAdpu ①TLAdHLAd((L ALA d )0303(9H A ( L ・LAd)A —」壬 M))①Z MAxelAIHLAd((X V L x d )0303o v (LXd・L)x —」壬 M))HHLXdpu①pu①pu ①H+(rL)xl 」±M""r L x l b z M(LH H(L:=P )_AE M(NAdtAd上」3J G LPX1=PX1+1;endPX2=x;while ((whitr_x(1,PX2)<3)&&(PX2>PX1))PX2=PX2-1;endPlate=I(PY1-13:PY2+13,PX1-5:PX2+5,:);% 预留多些利于倾斜校正% t=toc % 读取计时imshow(Plate);end if chos==8,I=Plate;level = graythresh(I); I = im2bw(I,level);%倾斜矫正myI=edge(I,'sobel');theta=0:179;[r1,x1]=radon(myI,theta); R1=sort(r1,'descend');[x,y]=size(R1);R=R1(1:10,:);R=sum(R);a=0.4;E(1)=R(1);for i=2:length(R)E(i)=a*R(i)+(1-a)*E(i-1);enda=tan((91-(find(E==max(E))))*pi/180);I=imrotate(I,a);imshow(I);%水平方向倾斜矫正Rfilter=0; Lfilter=0;for j=alpha+10:length(E)-1if (E(j)<=200)&&(E(j)<E(j-1))&&(E(j)<=E(j+1))Rfilter=j;endendfor j=2:alpha-10if(E(j)<=200)&&(E(j)<E(j-1))&&(E(j)<=E(j+1))Lfilter=j;endend E(Lfilter:Rfilter)=min(E(Lfilter),E(Rfilter));for i=2:179 if(E(i)>=200)&&(E(i)>E(i-1))&&(E(i)>=E(i+1))beta=i;elsebeta=0;endendif alpha>91;a=-tan(beta);else a=tan(beta); end tform=maketform('affine',[1 0 0;a1 0;0 0 1]); goal=imtransform(I,tform,'bicubic');%垂直方向矫正if mean(goal)>0.5 goal=~goal;end imshow(goal(15:end-14,11:end-10));end。

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

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

基于TDOA的chan算法(定位算法)Chan算法原理TDOA(TDOA,the time differences of arrival,到达时间差),Chan算法是TDOA定位方法的一个很好用的方法。

Chan算法是非递归双曲线方程组解法,具有解析表达式解,主要特点是:在测量误差服从理想高斯分布时,它的定位精度高、计算量小,并且可以通过增加已确定点的数量来提高算法精度。

该算法的推导前提是基于测量误差为零均值高斯随机变量,对于实际环境中误差较大的测量值,比如在有非视距误差的环境下,该算法的性能会有显著下降。

二维情况下,可分为只有三个点参与定位和三个点以上参与定位。

已知坐标 ( x 1 , y1 ) , ( x2 , y 2 ) , ( x3 , y 3 ) (x_1, y_1), (x_2, y_2), (x_3, y_3) (x1,y1),(x2,y2),(x3,y3),假设第未知点的坐标是 ( x , y ) (x, y) (x,y)根据几何关系定义一下关系表达式:r i = ( x i − x ) 2 + ( y i − y ) 2 r_i =\sqrt{(x_i-x)^2+(y_i-y)^2} ri=(xi−x)2+(yi−y)2... ... ... ( 1 ) \dots\dots\dots(1) (1)r i , 1 = r i − r 1 = ( x i − x ) 2 + ( y i − y ) 2 − ( x 1 − x ) 2 + ( y 1 − y ) 2 r_{i,1}=r_i-r_1=\sqrt{(x_i-x)^2+(y_i-y)^2}-\sqrt{(x_1-x)^2+(y_1-y)^2} ri,1=ri−r1=(xi−x)2+(yi−y)2−(x1−x)2+(y1−y)2... ... ... ( 2 ) \dots\dots\dots(2) (2)根据(1)另有如下关系:先令 K i = x i 2 + y i 2K_i=x_i^2+y_i^2 Ki=xi2+yi2r i 2 = x i 2 + y i 2 = K i − 2 x i x − 2 y i y + x 2 + y 2 r_i^2=x_i^2+y_i^2=K_i-2x_ix-2y_iy+x^2+y^2 ri2 =xi2+yi2=Ki−2xix−2yiy+x2+y2 … … … ( 3 )\dots\dots\dots(3) (3)根据(2)另外有如下关系:r i 2 = ( r i , 1 + r i ) 2 r_i^2=(r_{i,1}+r_i)^2 ri2 =(ri,1+ri)2 ... ... ... ( 4 ) \dots\dots\dots(4) (4)将(3)代入(4)可推出如下关系(关键):r i , 1 2 + 2 r i , 1 r 1 = x i 2 + y i 2 − 2 x i x − 2 y i y + 2 x 1 x + 2 y 1 y − ( x 1 2 + y 1 2 ) = r i 2 − r 1 2 r_{i,1}^2+2r_{i,1}r_1=x_i^2+y_i^2-2x_ix-2y_iy+2x_1x+2y_1y-(x_1^2+y_1^2)=r_i^2-r_1^2ri,12+2ri,1r1=xi2+yi2−2xix−2yiy+2x1x+2y1y−(x12+y12 )=ri2−r12 ... ... ... ( 5 ) \dots\dots\dots(5) (5)进一步,令 x i , 1 = x i − x 1 x_{i,1}=x_i-x_1 xi,1=xi−x1,有r i , 1 2 + 2 r i , 1 r 1 = ( K i − K 1 ) − 2 x i , 1 x − 2 y i , 1 y r_{i,1}^2+2r_{i,1}r_1=(K_i-K_1)-2x_{i,1}x-2y_{i,1}y ri,12+2ri,1r1=(Ki−K1)−2xi,1x−2yi,1y这里(5)是关键一步:消除了未知数的平方项,仅保留一系列的线性方程。

基于TDOA的高精度无线定位算法分析与实现

基于TDOA的高精度无线定位算法分析与实现

基于TDOA的高精度无线定位算法分析与实现孔维炯;丁志中;方福柱【摘要】文章根据移动应用需求,推导三维空间最小二乘(least square,LS)算法、Taylor级数展开法和查恩(Chan)算法3种经典到达时间差(time difference of arrival,TDOA)算法求解过程,通过仿真模拟分析3种算法的不同特点,确定移动定位场景下的最佳算法.为了进一步提高定位精度,采用Kalman滤波中递推估计思想,减小噪声干扰产生的误差,提升到达时间(time of arrival,TOA)测距精度,进而获得三维空间中性能优良的TDOA算法.测试试验表明,改进后的Chan算法有效且性能优良,定位误差最大为10~30 cm.【期刊名称】《合肥工业大学学报(自然科学版)》【年(卷),期】2019(042)006【总页数】7页(P756-762)【关键词】定位;到达时间差(TDOA);最小二乘;泰勒级数扩展;Chan算法;Kalman 滤波【作者】孔维炯;丁志中;方福柱【作者单位】合肥工业大学计算机与信息学院 ,安徽合肥 230601;合肥工业大学计算机与信息学院 ,安徽合肥 230601;合肥工业大学计算机与信息学院 ,安徽合肥 230601【正文语种】中文【中图分类】TN929.53目前,广泛使用的定位技术和方法主要有卫星定位、手机蜂窝网定位及Wi-Fi定位。

它们的共同特点是利用已存在的无线网实现定位,各系统中的卫星、手机基站、Wi-Fi无线路由器在定位中充当着锚节点(anchor)的角色,提供位置计算的已知点坐标,待测节点(又称“tag节点”)处于多个anchor所确定的二维平面或三维空间中,从而定位待测节点坐标,且定位精度在米级以上。

然而,在某些应用场景使用上述定位技术是不可行的。

例如,高速公路过山隧道中行驶的车辆定位场景,会发生无法接收或者难以接收卫星定位信号、手机蜂窝信号或Wi-Fi信号的情况;机器人操作的仓储系统中的定位,要求定位精度达到厘米级。

基于移动网络和地图匹配的TDOA定位算法

基于移动网络和地图匹配的TDOA定位算法

基于移动网络和地图匹配的TDOA定位算法刘艳林;彭大芹;黄德玲【摘要】为了满足越来越多的对位置信息的需求,提出了一种基于移动网络和地图匹配的TDOA定位.一方面,采用移动网络信息,引入基于Chan算法的TDOA定位对用户定位,不仅极大地减少了运算量和复杂度,而且有效避免了GPS数据遇到"城市峡谷"而造成的数据缺失,同时减少了终端安装GPS设备产生的费用.另一方面,利用地图匹配对移动网络的定位进行修正,增加了定位精确度.仿真结果验证了算法的可行性和有效性,表明了该算法具有较高的定位精度.【期刊名称】《邮电设计技术》【年(卷),期】2017(000)005【总页数】5页(P43-47)【关键词】移动网络;地图匹配;GPS;TDOA定位;Chan算法【作者】刘艳林;彭大芹;黄德玲【作者单位】重庆邮电大学,重庆 400065;重庆邮电大学,重庆 400065;重庆邮电大学,重庆 400065【正文语种】中文【中图分类】TN929.5传统的定位技术主要是基于全球定位系统(GPS)[1-2]。

然而随着科技的发展,尤其是移动网络的飞速发展,传统定位技术的弊端就逐渐显露出来了。

例如,传统的数据获取必须通过装有GPS的设备,这样带来了诸如设备投资大、成本高等问题;再者,在高楼如林的城市中,收集的GPS数据往往会因为遇到“城市峡谷”、遮挡物等而获取失败[3-5]。

因此,继续使用GPS数据进行定位已经不是最佳的选择了。

移动网络的发展、普及,为定位技术的发展提供了一定的契机。

基于移动网络的定位只是在现有网络设施的基础上提供一种增值业务,其具有成本较低、投资小、发展潜力大等优点,使得其应用价值备受青睐[6-7]。

但由于移动网络的定位精度一般在50~1 000 m,若要满足用户精确、可靠地定位,还是有一定的差距[8-9]。

因此,本文提出了一种结合移动网络和地图匹配的定位技术。

通过移动网络和地图匹配组合的定位技术满足了人们对位置定位的需求[10]。

基于时间测量的声源定位装置研究与实现

基于时间测量的声源定位装置研究与实现

基于时间测量的声源定位装置研究与实现作者:白玲来源:《电脑知识与技术》2017年第20期摘要:随着定位技术在军事和民事中的应用越来越广泛,声源定位也成为热门的研究内容之一。

根据到达时间差的定位方法,研究并自主设计了一套声音定位装置。

整个装置划分为三个模块,第一个是接收单元,采用超声波传感器,并对收到的信号进行放大滤波等处理;第二个是逻辑、计时及显示单元,确定基站并启动计数器计数,该单元主要由抢时电路和计时电路组成;第三个是上位机主控单元,与单片机进行通信以及实现基于TDOA定位算法。

定位算法采用基于TDOA的Chan算法,Chan算法采用最小二乘法进行计算,在TDOA测量误差比较小时具有计算量小,精确性高的优点。

实验结果表明,整套定位装置的结构简单,定位精度满足应用需求。

关键词:声源定位:计时电路;到达时间差:Chan算法:最小二乘法1概述声源定位技术采用声音传感装置接收声波,对收到的信号进行转化、选频、放大及滤波等一系列处理操作,以实现对声源进行定位的一种技术。

声源定位技术很早就被应用在了军事中,例如在第二次世界大战和朝鲜战争中,75%的战场火炮侦察任务是依靠声测手段完成的,国外一些国家也自主设计并生产出了相关产品,例如瑞典Swetron公司的Helisearch直升机声测系统、以色列研制的AEWS声测预警系统等。

在民用领域,视频会议中根据发言人的方向转换摄像头,还有助听器、智能机器人等。

声源定位技术有3类基本方法:(1)波束形成法;(2)高分辨定向法;(3)时延估计法。

波束形成法虽然计算量相对较小,但是精度较低;高分辨定向法虽然定位精度高,但是计算量很大,效率低;时延估计法是一种被动定位技术,也被称为基于到达时间差(TDOA)技术,这种算法计算量适中、精度较高、实时性也较高,所以本文采用TDOA方法进行定位计算。

TDOA方法是一种双曲线定位法,利用声音信号到达各/卜接收站的距离来确定信号的位置。

Chan 定位算法

Chan 定位算法

根据几何关系我们定义以下要用的关系表达式:根据另外有如下关系:根据另外有如下关系:将代入,则有:在这里是关键一步:消除了未知数的平方项,仅保留一次项,得到了一系列的线性方程组。

比如当时,有如下表达式:分析,首先要明确,,已知,未知项有,,。

首先假设是已知的。

则可以视作线性方程组求解。

因为是二元一次方程组,因此可以直接利用消元法来求解。

首先可以通过移项化简为:再简记为:在这里可以视为,即。

可以利用矩阵的逆即,也可以利用如下的行列式除法。

最后求得:其中,。

将,代入可得:对于进一步处理得:其中,我们令:利用我们就可以将表示为如下非常简洁的形式:其中,只有是未知的。

因此要想求出 MS 的坐标,由式可知,首先要求出。

接下来我们将式代入到式,可以化为如下形式:式是以的一元二次方程。

求解式可得的两个根,根据先验信息可以舍去一个无效的根,将有效的代回到式 (13) 可求可求出 MS 的估计坐标。

% 求解一元二次方程syms r;r0 = solve(a*r^2+b*r+c); % 默认 eqx=0% select the ture 'r0', then solve the x & y.二、多个基站Chan 算法是基于双曲线交点的定位方法,闭合解/解析解,小范围和大范围的定位系统都适用。

当 TDOA 估计误差较小时,可以认为是 ML(最大似然法)的一种近似方法。

当基站的数量大于 3 时,TDOA 值得到的非线性方程组个数要多于未知变量的个数。

采用加权最小二乘法(WLS)来充分利用冗余的数据,Chan 算法能获得更加好的 MS 位置估计值。

此时先将初始非线性 TDOA 方程组转换为线性方程组,然后采用 WLS 得到初始解,再利用第一次得到的估计坐标及附加变量等已知约束条件进行第二次 WLS 估计,从而得到改进的估计坐标。

2.1 问题建模当有更多的 anchor 时,线性方程组便是超定的。

由于测量噪声的存在,方程组的解不可能完全满足其中的所有方程,所以合适的解只能是匹配这些方程组的最佳解。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

TDOA定位的Chan算法MATLAB源代码。

function [POS_ref,POS1,POS2,POS3,POS4] = TDOA_chan(R,Pbs,Q)
%*********************************************************
% CHAN算法,假设移动台与各基站位置较近,需进行三四WLS计算
% 输入参数:
% R(N-1×1): TDOA测量值
% Pbs(N×2): 基站的坐标,第一列为X,第二列为Y;参考基站坐标位于第一行% 输出参数:
% POS_ref(2X1):第一次WLS的估计结果,作为参考作最终定位结果的判决
% POS1(2X1) :定位结果1
% POS2(2X1) :定位结果2
% POS3(2X1) :定位结果3
% POS4(2X1) :定位结果4
%这段程序用于自己产生算法输入参数,用于算法测试
% delta = 10; %TDOA测量误差的标准差,用于产生Q矩阵
% M=4; %参考基站外的基站数量
% Xb = 20;Yb = 100; %参考的基站坐标
% X = zeros(M,2);%M行2列0
% a = 2*pi/M;
% for i=1:M %生成其他基站的坐标
% X(i,1) = 400*cos(a*(i-1));
% X(i,2) = 400*sin(a*(i-1));
% end
% Xreal = -150;Yreal = 200;%移动台真实坐标
% %产生TDOA测量结果
% Rb = sqrt((Xreal - Xb)^2+(Yreal - Yb)^2);%移动台到基站的真实距离
% N = normrnd(0,delta,1,M);%产生TDOA测量误差正态分布均值0 标准差delta 返回一个N数组,下标为1 到M
% Kb = Xb^2+Yb^2;
% R = zeros(M,1);
% for i=1:M %产生TDOA测量值
% R(i) = -Rb+sqrt((Xreal - X(i,1))^2+(Yreal - X(i,2))^2)+N(i);
% end
% Q = (0.5*eye(M)+0.5*ones(M))*(delta^2);
% Pbs = [Xb Yb;X];%矩阵
% N = 5;
% [POS_ref POS1 POS2 POS3 POS4] = TDOA_chan(R,Pbs,Q)
N = size(Pbs,1);%维度
K = zeros(1,N);
K = Pbs(:,1).^2 + Pbs(:,2).^2;
ha = 0.5*(R.^2-K(2:N)+K(1))
Ga = -[Pbs(2:N,1)-Pbs(1,1) Pbs(2:N,2)-Pbs(1,2) R]
%计算第一次WLS估计结果(远距算法)
Za = inv(Ga.'*inv(Q)*Ga)*Ga.'*inv(Q)*ha;
Ba = diag(Va);
Fa = Ba*Q*Ba;
Zacov = inv(Ga.'*inv(Fa)*Ga);
%第一次WLS计算(近距算法)
Va2 = sqrt((Za2(1)-Pbs(2:N,1)).^2+(Za2(2)-Pbs(2:N,2)).^2);
Ba2 = diag(Va2);
Fa2 = Ba2*Q*Ba2;
Zacov2 = inv(Ga.'*inv(Fa2)*Ga);
%第二次WLS计算(近距算法)
Gb = [1 0;0 1;1 1];
Bb2 = [Za2(1)-Pbs(1,1) 0 0;0 Za2(2)-Pbs(1,2) 0;0 0 sqrt((Za2(1)-Pbs(1,1))^2+(Za2(2)-Pbs(1,2))^2)];
Fb2 = 4*Bb2*Zacov2*Bb2;
POS_ref = Za2(1:2,1); %第一次WLS的估计结果,作为参考作最终定位结果的判决POS1 = sqrt(Zb2)+Pbs(1,:).'; %定位结果1
POS2 = -sqrt(Zb2)+Pbs(1,:).';%定位结果2
POS3 = [-sqrt(Zb2(1));sqrt(Zb2(2))]+Pbs(1,:).';%定位结果3
POS4 = [sqrt(Zb2(1));-sqrt(Zb2(2))]+Pbs(1,:).';%定位结果4
源代码运行结果展示。

相关文档
最新文档