实现无线定位——chan算法
TDOA定位
摘要无线定位服务是一种有着广阔市场前景的移动增值业务,基本原理是利用现有蜂窝网络,通过对各种位置特征参数,包括到达时间(TOA)、到达时间差(TDOA)、到达方向(DOA)的测量和估计,来实现移动用户的定位。
本论文对无线通信网络中基于TDOA的无线定位技术进行了研究。
本文分析了国内外相关研究现状,给出了移动台定位的几种基本方法,并给出了TDOA定位的双曲线数学模型,分析了基于TDOA定位的Chan算法、遗传算法(GA)和差分演进算法(DE),并对其进行了计算机仿真。
仿真结果表明,三种算法各有优缺点:Chan算法定位精度较低但运算速度很快,GA算法和DE算法定位精度高但收敛时间较长。
在上述研究的基础上,本论文提出了三种新的定位算法:基于TDOA的Chan-GA算法、Chan-DE算法和Chan-IDE算法。
并在相同的仿真环境下进行比较,仿真结果表明,在保证种群数量的情况下,所提的算法性能稳定,能找到逼近全局最优点的解,相对于Chan算法精度更高,相对于以前的算法在保证收敛性能的前提下有更快的收敛速度。
关键词:移动台定位;到达时间差;遗传算法;差分演进算法;免疫算法ABSTRACTCellular wireless location service is a new mobile value-added service with a good market future. Its basic principle is to implement mobile user location through estimating characteristic parameters relative to position, including time-of-arrival (TOA), time-difference-of-arrival (TDOA), direction-of-arrival (DOA), etc. This thesis aims at the research of wireless location technology based on time-related measurements in Wireless Communication System.The thesis analyzes the domestic and foreign correlation research of present situation, and gives several essential methods of mobile location. After that, the mathematical model of TDOA hyperbolic equations is established, three location algorithms based on time-difference-of-arrival (TDOA), Chan, genetic algorithm and Differential Evolution are analyzed, and have been carried on the simulation to them. The simulation results show that all the algorithms have the advantages and disadvantages.The Chan algorithm has bad location accuracy and very quick operating speed. To the contrary, the genetic algorithm and Differential Evolution have a high accuracy and a fast convergence time.Based on the above investigation, three new location algorithms called Chan-GA algorithm, Chan-DE algorithm and Chan-IDE algorithm based on TDOA measurements are put forward. Carrying on the computer simulation to them under the same environment, the simulation results show that if the population size is big enough, the algorithm is robust and can find the coordinates. It has a higher accuracy than Chan algorithms and a faster convergence time than genetic algorithm.Key words: Mobile location; TDOA; Genetic algorithm; Differential Evolution; Immune algorithm目录第1章绪论 (1)1.1课题研究背景 (1)1.2课题研究的目的和意义 (2)1.3国内外的研究现状 (4)1.4本文的主要工作 (5)第2章移动台定位的基本方法 (7)2.1移动台定位的两种方案 (7)2.1.1基于网络的定位 (7)2.1.2基于移动台的定位 (7)2.2移动台定位技术 (8)2.2.1基于场强测量的定位方法 (8)2.2.2基于传播时间测量的定位方法 (8)2.2.3基于信号到达角度测量的定位方法 (10)2.2.4混合定位方法 (10)2.3影响移动台定位精度的主要原因 (11)2.4本章小结 (12)第3章基于TDOA定位算法的分析及仿真 (13)3.1TDOA定位的数学模型 (13)3.1.1定位问题的最小二乘(LS)表示 (13)3.1.2TDOA双曲线模型 (14)3.2TDOA定位算法——Chan算法 (15)3.3定位准确率的评价指标 (20)3.4本章小结 (21)第4章遗传算法在TDOA定位中的应用 (22)4.1遗传算法简介 (22)4.1.1遗传算法的基本原理 (22)4.1.2遗传算法的特点 (23)4.1.3遗传算法的基本流程图和主要步骤 (24)4.1.4遗传算法的基本操作 (25)4.2遗传算法在TDOA定位中的实现 (27)4.2.1TDOA双曲线定位模型 (27)4.2.2改进的遗传算法的实现 (29)4.2.3Chan-GA算法的实现 (32)4.3计算机仿真 (32)4.4本章小结 (35)第5章差分演进算法在TDOA定位中的应用 ·····错误!未定义书签。
基于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。
wifi定位解决方案
wifi定位解决方案WiFi定位解决方案1. 引言WiFi定位是一种基于无线网络的定位技术,它利用WiFi信号的覆盖范围和强度来确定设备的位置。
在室内定位、室内导航和位置服务等应用中,WiFi定位已经得到了广泛应用。
本文将介绍一种常见的WiFi定位解决方案,包括原理、算法和应用场景等。
2. WiFi定位原理WiFi定位的原理是通过收集周围的WiFi信号信息,包括信号强度、MAC地址等,并与事先收集的WiFi信号地理位置信息进行匹配。
根据匹配结果,确定设备的位置。
WiFi定位需要以下两个基本的元素:2.1 WiFi信号数据集WiFi信号数据集是WiFi定位的基础,包括大量的WiFi信号采集数据。
这些数据可以通过专业的WiFi定位设备或智能手机上的WiFi定位应用进行采集。
数据集应该包括WiFi信号的MAC地址、信号强度和地理位置信息。
数据集的质量和覆盖范围将影响WiFi定位的准确性。
2.2 WiFi定位算法WiFi定位算法用于根据收集的WiFi信号数据集进行设备位置的估计。
常见的WiFi定位算法包括最近邻算法、加权最近邻算法和指纹定位算法等。
- **最近邻算法**:将设备当前接收到的WiFi信号与数据集中的WiFi信号进行比较,选择最相似的WiFi信号进行定位。
该算法简单且计算效率高,但对噪声和误差较敏感。
- **加权最近邻算法**:在最近邻算法的基础上,对最相似的WiFi信号进行加权处理,以减小误差对定位结果的影响。
- **指纹定位算法**:指纹定位算法是一种基于事先收集的WiFi信号数据集的离线定位算法。
它通过建立WiFi信号与实际位置的映射关系,利用已有的指纹地图来进行定位。
3. WiFi定位解决方案应用场景WiFi定位解决方案在以下场景中得到广泛的应用:3.1 室内定位与导航在大型商业建筑物、医院、机场等室内环境中,常常无法使用GPS进行准确的定位。
WiFi定位技术可以解决室内定位和导航问题,为用户提供准确的位置信息和导航服务。
基于rfid及改进chan算法的商品车定位方法
摘摇 要:将商品车从仓库预排至停车场是整个商品车运输调度系统的首要任务,预排中取车过程需要根据当天的车辆运 送单从车库中快速、准确地找到待运车是调运预排的关键。 文中结合正反馈机制、蚁群算法的优点,并对 Chan 算法进行 了改进,在此基础上,提出了一种基于 RFID 技术的商品车无线定位方法。 首先通过覆盖模型对于实验环境进行网格划分 与 RFID 阅读器的放置,之后,通过正反馈机制与蚁群算法在空间中找出最优解作为初始解集,然后,以初始解为基础运用 改进的 Chan 算法得到初始解集相应矩阵并获得多组商品车的测量位置,再根据 WLS 计算得到商品车的准确位置。 最后, 以求解位置与商品车的实际位置距离差值作为算法优劣判断的依据,实验结果显示该方法能够求解定位精确度。 关键词:RFID 定位;正反馈机制;蚁群算法;Chan 算法;WLS 求解;准确性 中图分类号:TP183摇 摇 摇 摇 摇 摇 文献标识码:A摇 摇 摇 摇 摇 摇 文章编号:1673-629X(2019)11-0195-05 doi:10. 3969 / j. issn. 1673-629X. 2019. 11. 039
第
月
期摇
摇
摇
摇
摇
摇
摇
摇
摇
摇
计算机技术与发展
摇
COMPUTER TECHNOLOGY AND DEVELOPMENT
摇
摇
摇
摇
摇
摇
摇
摇
摇
Vol. 29摇 Nov. 摇
No. 11 2019
基于 RFID 及改进 Chan 算法的商品车定位方法
董长春,周摇 良
( 南京航空航天大学 计算机科学与技术学院,江苏 南京 210016)
详解4种“无线定位”原理及算法
详解4种“无线定位”原理及算法今天,我们简单谈谈4种无线定位技术,感兴趣的小伙伴可以了解一下。
什么是无线定位技术?目标定位一直是一项不断发展且热门的技术,为什么这么热门呢 ? 当然是大家有着这样或那样的需求都需要用到它。
比如,某某公司为了监督员工,直接对园区进行每个人的活动定位,这时时被人监控的感觉绝对不好受;再比如医院对医生进行活动定位方便患者找到医生。
当然,做目标定位大部分都是为了路径的规划与自动导航控制,所以目标定位的精准度、灵敏度等性能就决定着整个控制系统的性能。
目前对于室外定位技术大部分都是采用GPS定位,不过大家应该体会过GPS信号弱导致位置迟迟无法更新,开车导航错过下高速路口的囧境等等。
既然室外定位都这么不稳定,那么在室内由于房屋的遮掩、GPS定位的信号和精度就更是无法满足要求了,所以诞生了一些特别室内定位技术,比如蓝牙、wifi、zigebee以及高精度UWB等等。
笔者觉得,所谓的定位技术,无非就是对信号的采集和处理,最终算出目标位置坐标。
下面,我们就来谈一下4种无线定位方法的基本原理与方法。
四种无线定位技术1、基于信号强度(RSSI)RSSI(Received Signal Strength Indication),基于信号的强度来进行目标定位。
这种方法应该是大家最容易想到的,比如我们离无线路由器越远wifi的信号越弱,这样我们就可以通过信号的传播模型与距离建立关系,最终进行目标位置的定位。
以发射源为中心,其信号的强度和传播呈现出同心圆的形式。
下面,我们以三点定位法来简单的推导一下基本原理:上面部署了三个信号发射源,目标定位分别检测来自三个发射源的信号强度,通过信号的路径损耗模型用信号强度获得发射与接受之间的距离d1、d2、d3,从而我们可以获得如下三个方程:通过联立上面三个方程即可获得最终的x、y坐标,至于怎么解,那就考察大家的数学功底了!好像这一切都是如此的简单,那接下来的研究就没啥意义了,其实信号的强度受周围环境影响较大比如隔墙,并且由于电源等等不稳定导致发射功率变化,如果非要采用此方法需要进行大量的数据进行模型的辨识与估测,同时信号强度具有时变性还需要进行实时补偿等。
基于改进Chan算法和多元Taylor算法的室内定位方法
基于改进Chan算法和多元Taylor算法的室内定位方法陈大伟1,钱路雁2,陈诗军1,金玲飞2,李俊强1(1.移动网络和移动多媒体技术国家重点实验室中兴通讯股份有限公司,广东深圳518057;2.上海市智能信息处理重点实验室复旦大学计算机科学技术学院,上海200082)摘要:随着5G时代的到来,人们对更精确,拓展性更好的定位系统的需求开始变得越来越迫切。
本文提出了一种改进的融合定位算法。
本文提出了使用模拟退火最优化算法对近距离情况下的Chan算法第一次初始值估计做了优化,并融合多元Taylor算法,充分利用了定位目标之间的距离关系,使得定位精度得到提高。
关键词:Chan算法;模拟退火算法;Taylor算法;室内定位算法中图分类号:TP399文献标识码:A文章编号:1009-3044(2021)01-0011-05开放科学(资源服务)标识码(OSID):Indoor Location based on Improved Chan Algorithm and Taylor AlgorithmCHEN Da-wei1,QIAN Lu-yan2,CHEN Shi-jun1,JIN Ling-fei2,LI Jun-qiang1(1.State Key Laboratory of Mobile Network and Mobile Multimedia,Zhongxing Telecommunication Equipment Corporation,Shen⁃zhen518057,China;2.Shanghai Key Laboratory of Intelligent Information Processing,School Computer Science,Fudan University, Shanghai200082,China)Abstract:With the advent of5G,the need for more accurate and scalable positioning systems is becoming more and more urgent.In this paper,we propose an improved fusion positioning algorithm.The simulated annealing optimization algorithm was used to opti⁃mize the first initial value estimation of the Chan algorithm in the case of close range,and the multivariable Taylor series expansion algorithm is integrated to make full use of the distance relationship between the positioning targets,so as to improve the positioning accuracy.Key words:chan algorithm;simulated annealing algorithm;taylor algorithm;indoor location1引言随着5G时代的来临,以及信息技术软硬件的急速发展,获得更加精确、更加丰富的位置信息变得越来越容易。
wifiscan定位原理(一)
wifiscan定位原理(一)WiFiScan定位引言•介绍WiFiScan定位的概念和应用背景•概述文章结构WiFi定位原理•解释WiFi定位的基本原理,即依靠WiFi信号进行定位•说明为何WiFi信号适合用于定位•强调定位精度可能受到多种因素的影响WiFi扫描技术•介绍扫描WiFi信号的技术手段•解释目前常用的WiFi扫描技术:无线局域网扫描和移动信号扫描–解释无线局域网扫描的原理和实现方式–解释移动信号扫描的原理和实现方式WiFiScan定位算法•探讨WiFiScan定位使用的算法•介绍常见的算法:指纹定位算法和三边定位算法–解释指纹定位算法的原理和实现方式–解释三边定位算法的原理和实现方式WiFiScan定位应用•简要介绍WiFiScan定位的应用领域•举例说明WiFiScan定位在室内导航、位置服务等方面的应用案例WiFiScan定位的局限性和挑战•分析WiFiScan定位的局限性和挑战•强调环境因素、设备限制和数据收集难题可能对定位精度带来的影响结论•总结WiFiScan定位的原理和应用•强调WiFiScan定位的优势和局限性•展望未来WiFiScan定位技术的发展方向以上是一份关于WiFiScan定位的相关文章,按照Markdown格式进行了分段和标题划分,符合规定要求。
WiFiScan定位引言WiFiScan定位是一种通过扫描WiFi信号来实现定位的技术。
它广泛应用于室内导航、位置服务等领域。
本文将从WiFi定位原理、WiFi扫描技术、WiFiScan定位算法等方面逐步深入解释相关原理。
WiFi定位原理•WiFi定位的基本原理是利用WiFi信号的强度和位置之间的关系进行定位。
•WiFi信号具有穿透物体、传输距离远等特点,使其成为室内环境下一种可靠的定位信号。
•定位精度可能受到环境干扰、信号强度变化等因素的影响。
WiFi扫描技术•WiFi扫描技术是实现WiFiScan定位的关键。
•无线局域网扫描是通过扫描设备周围的WiFi网络来获取WiFi信号的强度和其他相关信息。
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。
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 时,线性方程组便是超定的。
由于测量噪声的存在,方程组的解不可能完全满足其中的所有方程,所以合适的解只能是匹配这些方程组的最佳解。
wifi定位技术及原理阐述
wifi定位技术及原理阐述WiFi定位技术是一种基于信号强度指纹的无线网络定位技术,可以利用WiFi信号在区域内的分布情况对设备进行定位,精度可达到米级别。
以下我们会从wifi定位技术原理、应用场景、主要功能优势三个方面来阐述介绍。
Wifi定位技术原理如下:信号采集:首先需要在被定位区域内选取多个WiFi接入点,并在感兴趣区域(IOI)的不同地方收集这些接入点的信号数据。
信号处理:将采集到的信号信息转换成信号强度,只保留与位置相关的信号强度数据,直接反映出每个区域的特征。
指纹建立:根据各个区域的信号强度样本,建立指纹库作为参考依据。
定位计算:通过移动终端采集的场景内WiFi信号强度,进行匹配和计算,最终得出该设备所在位置。
在实际应用中,通过对比当前采集到的WiFi信号强度和已有的指纹库数据,找出信号最相近的区域,从而确定设备的位置。
此外,也可以通过多普勒效应、GPS卫星定位辅助等方式提高WiFi定位的精度和可靠性。
Wifi定位技术的应用场景:1.商场、超市等大型室内空间的导航和位置服务。
2.室内无线定位导游,在博物馆、展览馆等场所中提供一种更加便捷的讲解和路线选择方式。
3.办公楼、大学校园等室内定位,方便用户查找对应房间或地点。
4.基于有WiFi覆盖的医院内部可进行病人防走失设备轨迹监控。
5.移动互联网场景下的广告精准投放,将广告根据目标用户所处位置推送到他们的手机上。
6.城市安全管理,利用WiFi定位技术建立城市警务信息化系统,实现分布式智能安防。
Wifi定位技术的主要优势:1.成本较低:无需额外安装硬件和设施,只需要在现有的无线网络基础上进行信号采集和处理。
2.精度较高:可以达到室内几米到十米级别的位置精确度,在实际应用中可以满足大部分场景的定位需求。
3.覆盖面广:由于WiFi网络的普及和广泛应用,几乎所有人都可以使用WiFi定位服务。
4.解决GPS定位局限性:GPS定位必须在最佳的视线范围下才能起作用,但是在室内场所或城市高楼林立的地方,GPS定位很难达到理想效果,而WiFi定位可以很好地弥补了这一问题。
WiFi信号定位算法研究与实现
WiFi信号定位算法研究与实现随着无线通信技术的不断发展,WiFi已经成为人们生活中不可或缺的一部分。
在现代社会中,人们对WiFi信号的覆盖和稳定性有着越来越高的要求。
然而,在现实环境中,由于建筑物、障碍物以及各种干扰因素的存在,WiFi信号的强度和传播特性会受到一定程度的影响。
因此,WiFi信号定位算法的研究和实现成为了解决这一问题的重要方法之一。
WiFi信号定位算法旨在通过对WiFi信号的测量和分析,确定接收设备所处的位置。
在研究和实现WiFi信号定位算法时,我们需要考虑以下几个关键问题:信号采集、定位模型、定位算法和实验效果评估。
首先,信号采集是WiFi信号定位算法中的基础环节。
为了完成WiFi信号定位任务,我们需要先收集一定数量和范围的WiFi信号。
常用的信号采集方法有穿越点法和传统点法。
穿越点法是通过将接收设备在建筑物内移动,记录不同位置的WiFi信号强度,以建立信号强度与位置之间的映射关系。
传统点法则是在已知位置处收集WiFi信号数据,从而得到信号强度与位置之间的对应关系。
接下来,定位模型的选择对于WiFi信号定位算法的准确性起着重要作用。
常见的WiFi定位模型包括信号强度衰减模型和指纹匹配模型。
信号强度衰减模型假设信号强度与距离成反比关系,通过测量WiFi信号的强度来推断设备位置。
而指纹匹配模型则是将WiFi信号强度作为特征,与预先采集的指纹库中的数据进行匹配,从而确定设备的位置。
在选择定位模型之后,我们可以使用各种不同的定位算法来实现WiFi信号定位。
常见的定位算法包括最近邻算法、加权最近邻算法、贝叶斯定位算法等。
最近邻算法是最简单的定位算法,它通过计算接收设备与参考点之间的距离来确定设备的位置。
加权最近邻算法在最近邻算法的基础上引入了权重因子,通过考虑不同参考点的贡献度来提高定位的准确性。
贝叶斯定位算法则是根据贝叶斯定理,将WiFi信号强度与先验概率相结合,从而得到设备位置的概率分布。
wifi定位 实现原理
wifi定位实现原理WiFi定位是一种利用WiFi网络基站的分布和信号强度来确定设备位置的技术。
它的实现原理主要涉及以下几个方面:1. 基站信号强度测量:WiFi定位的关键是测量设备与周围WiFi基站之间的信号强度。
设备使用无线网络扫描功能获取周围可用的WiFi基站列表,并获取每个基站的信号强度值。
通常,这些值以RSSI(接收信号强度指示)的形式表示。
2. 基站数据的收集和处理:在市区或人口密集的区域,WiFi 基站通常被部署得比较密集。
WiFi定位系统需要收集和处理大量的基站数据。
这些数据包括基站的位置信息(通过GPS 或其他定位技术获得)、信号强度和其他相关特征。
收集到的数据会被用来建立一个基站数据库,以便进一步的定位计算。
3. 定位算法:WiFi定位的核心是利用收集到的基站数据和设备测量到的信号强度来计算设备的位置。
定位算法可以使用多种技术,包括KNN(最近邻居算法)、贝叶斯滤波、加权最小二乘法和机器学习等。
这些算法通常会使用基站数据库中的信号强度与位置信息,通过对比设备测量到的信号强度与数据库中的数据,依据一定的计算规则来推算设备的位置。
4. 位置推理和校准:WiFi定位技术还需要考虑到信号强度的变化和环境噪声的影响。
在现实环境中,信号强度受到很多因素的影响,如障碍物、建筑物、电磁干扰等。
因此,WiFi定位也会通过其他传感器数据(例如陀螺仪、加速度计)来推断设备的运动轨迹和位置。
同时,也需要对基站数据库进行定期校准和更新,以反映基站信号强度的变化。
总之,WiFi定位技术利用基站的分布和信号强度,结合定位算法和位置推理方法,通过比对设备测量到的信号强度与基站数据库中的数据,推断出设备的位置信息。
它在室内和城区环境下具有较高的精度和可行性,并已经得到广泛应用。
室内定位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)#最终对比,从四个中选出一个正确的定位点。
基于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)是关键一步:消除了未知数的平方项,仅保留一系列的线性方程。
室内定位chan氏算法的python实现
室内定位chan氏算法的python实现室内定位是指在室内环境下,通过使用无线信号或其他传感器来确定移动设备的位置。
Chan算法是一种室内定位算法,它基于指纹定位技术。
在该算法中,通过收集一系列参考点以及它们对应的信号特征值,并将其存储在数据库中。
然后,通过与当前位置的信号特征值进行匹配,来确定设备的位置。
下面是Chan算法的Python实现示例,实现了基本的指纹定位功能:```pythonimport numpy as np#定义参考点数据库database ="ref_point1": {"signal": [1, 2, 3]},"ref_point2": {"signal": [4, 5, 6]},#添加更多的参考点#信号匹配函数def match_signal(current_signal):min_distance = float('inf')location = Nonefor ref_point, data in database.items(:signal = data["signal"]distance = np.linalg.norm(np.array(signal) -np.array(current_signal))if distance < min_distance:min_distance = distancelocation = ref_pointreturn location#模拟当前信号current_signal = [2, 4, 5]#进行信号匹配result = match_signal(current_signal)#输出结果print("当前位置:", result)```在这个示例中,我们首先创建了一个参考点数据库,其中包含了每个参考点的信号特征值。
手机是怎样通过Wi-Fi来定位的?
手机是怎样通过Wi-Fi来定位的?
标签 GPS WIFI 手机定位 MAC地址
大家都知道,现在大部分手机都可以通过内置的GPS模块来接收卫星发射出来的GPS信号,这样就可以随时找到自己所处的准确位置了。
不过你有没有注意到,在很多GPS信号并不是很好的情况下,只要能连上Wi-Fi就同样能够定位。
可是你知道通过Wi-Fi定位的原理吗?
其实Wi-Fi能够进行定位还要多亏了Android、iOS以及Windows Phone这些手机操作系统中内置的位置服务。
每一个Wi-Fi热点都有一个独一无二的MAC地址,智能手机等设备开启Wi-Fi后就会自动扫描附近热点并上传它们的地理位置信息,这样就建立了一个庞大的热点位置数据库。
反过来讲,如果你的智能手机连上了某个Wi-Fi热点,那么就可以调用数据库中附近所有热点的地理位置信息,而服务器会参考每个热点的信号强弱计算出设备的大致地理位置,最后再返回给用户。
值得一提的是,虽然这种计算而来的定位信息并没有GPS 直接定位准确,但是却解决了GPS信号覆盖范围有限的问题,这也是为什么手机会经常提示打开Wi-Fi后定位就会更准确的原因。
不过如果你比较担心你的位置隐私被泄露出去,那么还是关掉手机系统中的位置服务选项吧!(阿南微航磁电供稿)。
实现无线定位——chan算法
实现无线定位——chan算法实现无线定位中的CHAN算法function X = ChanAlgorithm(BSN, MSP, Radius, Noise)%CHANALGORITHM 本函数用于实现无线定位中的CHAN算法% - BSN 为基站个数,3 < BSN <= 7;% - MSP 为移动台的初始位置, MSx, MSy均为[0,1]之间的数;% 特别要注意服务小区与MS之间的关系,MS的位置不能越界。
% - Noise 测距误差方差。
% - R 为小区半径,单位(meter);% - X 为移动台经算法处理后的位置.%See also: ChanAlgorithm.m% 参数检查:if nargout>1,error('Too many output arguments.');endif nargin<2 | nargin>4,error('Wrong number of input arguments.');end% 算法开始:BS = Radius*NetworkT op(BSN);MS = Radius*MSP;% 噪声功率:Q = eye(BSN-1);% 第一次LS:% RiK1 = 0;for i = 1: BSN,R0(i) = sqrt((BS(1,i) - MS(1))^2 + (BS(2,i) - MS(2))^2);endfor i = 1: BSN-1,R(i) = R0(i+1) - R0(1) + Noise*randn(1);K(i) = BS(1,i+1)^2 + BS(2,i+1)^2;end% Gafor i = 1: BSN-1,Ga(i,1) = -BS(1, i+1);Ga(i,2) = -BS(2, i+1);Ga(i,3) = -R(i);end% hfor i = 1: BSN-1,h(i) = 0.5*(R(i)^2 - K(i) + K1);end% 由(14b)给出B的估计值:Za0 = inv(Ga'*inv(Q)*Ga)*Ga'*inv(Q)*h';% 利用这个粗略估计值计算B:B = eye(BSN-1);for i = 1: BSN-1,B(i,i) = sqrt((BS(1,i+1) - Za0(1))^2 + (BS(2,i+1) - Za0(2))^2); end% FI:FI = B*Q*B;% 第一次LS结果:Za1 = inv(Ga'*inv(FI)*Ga)*Ga'*inv(FI)*h';if Za1(3) < 0,Za1(3) = abs(Za1(3));% Za1(3) = 0;end%***************************************************************% 第二次LS:% 第一次LS结果的协方差:CovZa = inv(Ga'*inv(FI)*Ga);% sB:sB = eye(3);for i = 1: 3,sB(i,i) = Za1(i);end% sFI:sFI = 4*sB*CovZa*sB;% sGa:sGa = [1, 0; 0, 1; 1, 1];% shsh = [Za1(1)^2; Za1(2)^2; Za1(3)^2];% 第二次LS结果:Za2 = inv(sGa'*inv(sFI)*sGa)*sGa'*inv(sFI)*sh;% Za = sqrt(abs(Za2));Za = sqrt(Za2);% 输出:% if Za1(1) < 0,% out1 = -Za(1);% else% out1 = Za(1);% end% if Za2(1) < 0,% out2 = -Za(2);% else% out2 = Za(2);% end%% out = [out1;out2];out = abs(Za);% out = Za;if nargout == 1,X = out;elseif nargout == 0,disp(out);end ··································································。
室内定位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)#最终对比,从四个中选出一个正确的定位点Welcome To Download !!!欢迎您的下载,资料仅供参考!。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实现无线定位中的CHAN算法
function X = ChanAlgorithm(BSN, MSP, Radius, Noise)
%CHANALGORITHM 本函数用于实现无线定位中的CHAN算法
% - BSN 为基站个数,3 < BSN <= 7;
% - MSP 为移动台的初始位置, MSx, MSy均为[0,1]之间的数;
% 特别要注意服务小区与MS之间的关系,MS的位置不能越界。
% - Noise 测距误差方差。
% - R 为小区半径,单位(meter);
% - X 为移动台经算法处理后的位置.
%See also: ChanAlgorithm.m
% 参数检查:
if nargout>1,
error('Too many output arguments.');
end
if nargin<2 | nargin>4,
error('Wrong number of input arguments.');
end
% 算法开始:
BS = Radius*NetworkTop(BSN);
MS = Radius*MSP;
% 噪声功率:
Q = eye(BSN-1);
% 第一次LS:
% Ri
K1 = 0;
for i = 1: BSN,
R0(i) = sqrt((BS(1,i) - MS(1))^2 + (BS(2,i) - MS(2))^2);
end
for i = 1: BSN-1,
R(i) = R0(i+1) - R0(1) + Noise*randn(1);
K(i) = BS(1,i+1)^2 + BS(2,i+1)^2;
end
% Ga
for i = 1: BSN-1,
Ga(i,1) = -BS(1, i+1);
Ga(i,2) = -BS(2, i+1);
Ga(i,3) = -R(i);
end
% h
for i = 1: BSN-1,
h(i) = 0.5*(R(i)^2 - K(i) + K1);
end
% 由(14b)给出B的估计值:
Za0 = inv(Ga'*inv(Q)*Ga)*Ga'*inv(Q)*h';
% 利用这个粗略估计值计算B:
B = eye(BSN-1);
for i = 1: BSN-1,
B(i,i) = sqrt((BS(1,i+1) - Za0(1))^2 + (BS(2,i+1) - Za0(2))^2); end
% FI:
FI = B*Q*B;
% 第一次LS结果:
Za1 = inv(Ga'*inv(FI)*Ga)*Ga'*inv(FI)*h';
if Za1(3) < 0,
Za1(3) = abs(Za1(3));
% Za1(3) = 0;
end
%***************************************************************
% 第二次LS:
% 第一次LS结果的协方差:
CovZa = inv(Ga'*inv(FI)*Ga);
% sB:
sB = eye(3);
for i = 1: 3,
sB(i,i) = Za1(i);
end
% sFI:
sFI = 4*sB*CovZa*sB;
% sGa:
sGa = [1, 0; 0, 1; 1, 1];
% sh
sh = [Za1(1)^2; Za1(2)^2; Za1(3)^2];
% 第二次LS结果:
Za2 = inv(sGa'*inv(sFI)*sGa)*sGa'*inv(sFI)*sh;
% Za = sqrt(abs(Za2));
Za = sqrt(Za2);
% 输出:
% if Za1(1) < 0,
% out1 = -Za(1);
% else
% out1 = Za(1);
% end
% if Za2(1) < 0,
% out2 = -Za(2);
% else
% out2 = Za(2);
% end
%
% out = [out1;out2];
out = abs(Za);
% out = Za;
if nargout == 1,
X = out;
elseif nargout == 0,
disp(out);
end ··································································。