% 功能:基于chan算法的TDOA三维定位

function [zp] = Chan_3(Noise,MS)

%基站数目

BSN = 7;

%基站位置,每一列为一个基站位置

BS = [0, 2*sqrt(3), -2*sqrt(3), sqrt(3), -sqrt(3), -sqrt(3), sqrt(3);

0, 0, 0, 3, 3, -3, -3;

0, 0, 0, 0, 2, 2, 0];

%无噪声情况下BS到MS的距离

for i = 1:BSN

R0(i) = sqrt((BS(1,i) - MS(1))^2 + (BS(2,i) - MS(2))^2 + (BS(3,i) - MS(3))^2);

end

%噪声方差

c = 3*10^5;

%有噪声情况下BSi到MS的距离与BS1到MS的距离差,实际由TDOA*c求得

for i = 1:BSN-1

R(i) = R0(i+1) - R0(1) +c*Noise(i,1);

end

%% 第一次WLS

%k = x^2+y^2+z^2

for i =1:BSN

k(i) = BS(1,i)^2 + BS(2,i)^2 + BS(3,i)^2;

end

% h

for i = 1:BSN-1

h(i) = 0.5*(R(i)^2 - k(i+1) + k(1));

end

% Ga

for i = 1:BSN-1

Ga(i,1) = -BS(1,i+1);

Ga(i,2) = -BS(2,i+1);

Ga(i,3) = -BS(3,i+1);

Ga(i,4) = -R(i);

end

%Q为TDOA系统的协方差矩阵

Q = cov(R);

%za,距离较远时

za1 = pinv(Ga'*pinv(Q)*Ga)*Ga'*pinv(Q)*h';

%% 第二次WLS

%h2

X1 = BS(1,1);

Y1 = BS(2,1);

Z1 = BS(3,1);

h2 = [

(za1(1,1) - X1)^2;

(za1(2,1) - Y1)^2;

(za1(3,1) - Z1)^2;

za1(4,1)^2

];

%Ga2

Ga2 = [1,0,0;0,1,0;0,0,1;1,1,1];

%B2

B2 = [

za1(1,1)-X1,0,0,0;

0,za1(2,1)-Y1,0,0;

0,0,za1(3,1)-Z1,0;

0,0,0,za1(4,1)

];

%za2

za2 = pinv( Ga2' * pinv(B2) * Ga' * pinv(Q) * Ga * pinv(B2) * Ga2) * (Ga2' * pinv(B2) * Ga' * pinv(Q) * Ga * pinv(B2)) * h2;

%zp

zp(1,1) = abs(za2(1,1))^0.5+X1;

zp(2,1) = abs(za2(2,1))^0.5+Y1;

zp(3,1) = abs(za2(3,1))^0.5+Z1;

end

% 功能:基于chan算法的TDOA三维定位的MSE曲线

clear;

clc;

account_test =1000;

Counter_Size=account_test;

Zp_mean1=zeros(2,6);

Zp_mse1=zeros(1,6);

M=7;

k=1;

c = 3*10^5; % 单位km

MS = [1,2.5,1];

for Noise_db = -16:2:-6 % 信道所受到的噪声干扰

Sigma = 10^(Noise_db./10)/c;

for m = 1:1:Counter_Size%%%%%%%%%%%%%%%%%%%%cishu

for i = 1:1:M-1

Noise(i, 1) = gngauss(Sigma);

end

[ zp ] = Chan_3(Noise,MS);

Zp(:,m) = zp;

end

Zp_all(:,1) = 0;

Zp_mse_all = 0;

for i = 1:1:Counter_Size

Zp_all = Zp_all + Zp( :, i);

Zp_mse_all = Zp_mse_all + (Zp(1,i) - MS(1,1))^2 + (Zp(2,i) - MS(1,2))^2 + (Zp(3,i) - MS(1,3))^2;

end

Zp_mean= Zp_all / Counter_Size ; % 计算chan所得的均值

Zp_mean1(1:1:3,k) =Zp_mean;

Zp_mse = Zp_mse_all / Counter_Size ; % 计算chan所得的均方误差MSE

Zp_mse1(1,k)=Zp_mse;

k=k+1;

end

Zp_mean1

Zp_mse1

plot(-16:2:-6,Zp_mse1,'bo--')

xlabel('10lg(cσ)/dB')

ylabel('均方误差MSE/km')

legend('Chan算法')

测试结果

matlab chan算法定位,MATLAB实现基于Chan氏算法的三维TDOA定位相关推荐

  1. MATLAB中果蝇味道浓度判定函数,基于果蝇优化算法对栓接结合部间距的优化方法与流程...

    本发明涉及机床基础制造领域,特别是涉及基于果蝇优化算法优化机床结合部螺栓之间间距的研究. 背景技术: 栓接结合部作为组成机床的基本部件,由于栓接结构在机床的组装和拆卸过程中的方便.简易,而被广泛用在机 ...

  2. 链路状态算法实现Java,JAVA基于蚁群算法路由选择可视化动态模拟(开题报告+任务书+毕业论文+外文翻译+源代码+可执行程序+答辩P...

    JAVA基于蚁群算法路由选择可视化动态模拟(开题报告+任务书+毕业论文+外文翻译+源代码+可执行程序+答辩PPT) 摘 要 路由选择是一种基于网络层的协议,而所有流行的网络层路由选择协议都是基于以下两 ...

  3. 粗糙集分类算法c语言实现,基于粗糙集分类算法的研究及应用

    摘要: 粗糙集理论是1982年由波兰著名的科学家Z.Pawlak提出来的.它是一种能够有效的处理不精确,不确定性数据的数学工具,并且它还具有不需要任何的先验知识,只依赖于数据集本身等优点.粗糙集理论已 ...

  4. MATLAB实战系列(六)-基于蚁群算法的三维路径规划算法思路浅析

    首先以一个问题为例引入今天所讲的三维路径规划,在21 km * 21 km的一片海域中搜索从起点到终点,并且避开所有障碍物的路径.起点坐标为(1,10,800),终点坐标为(21,8,1200),示意 ...

  5. 基于DWM1000的STM32F103C8T6的三维室内定位(一)

    自小马写了一篇 [基于DWM1000的stm32f103c8测距调试(一)] 之后,有不少的朋友联系我一起学习DWM1000的测距,一起学习进步很大.这次小马打算在尝试一下开源一下基于DWM1000的 ...

  6. 人工蜂群算法c语言程序,基于人工蜂群算法的炼钢连铸生产调度方法研究

    摘要: 钢铁工业是国民经济和国防建设的重要支柱.炼钢连铸是钢铁生产的主要工序和瓶颈工序,有效的炼钢连铸生产调度方法能提高生产效率并降低生产成本.然而,炼钢连铸调度问题是一类复杂的NP-hard问题,难 ...

  7. 基于遗传模拟退火算法的模糊C-均值聚类算法(SAGAFCM)—MATLAB实现

    本文的代码将放在最后,需要的小伙伴们可以免费获取哦!!! 文章目录 一.模糊C-均值聚类(FCM) 1.介绍 1).算法初步介绍 2)算法步骤 2.MATLAB实现 1).问题描述 2).算法实现 二 ...

  8. 【WSN】基于樽海鞘群算法实现无线传感器网络WSN节点的部署优化matlab源码

    1 算法介绍 一种基于樽海鞘群算法的无线传感器网络节点定位方法,包括初始化樽海鞘群个体节点,判断节点位置,将节点位置作为食物源对周围环境进行链式搜索,找到其余节点进行确认,并转为食物源变量进行迭代搜索 ...

  9. 极限学习机(ELM) 算法及MATLAB程序实现

    极限学习机 单隐藏层反馈神经网络具有两个比较突出的能力: (1)可以直接从训练样本中拟 合 出 复 杂 的 映 射 函 数f :x ^ t (2 )可以为大量难以用传统分类参数技术处理的自然或者人工现 ...

最新文章

  1. 分布式概念-如何访问到分布式系统中的服务
  2. 利用dom4j取出XML文件中的数据
  3. 80%的人都混淆的BI和报表之不同
  4. 第六章:系统困境之 你的努力与时代进程相逆
  5. 中档微型计算机配置图,实训1-微机应用现状调研实训报告.docx
  6. mysql 1418 存储过程_MySQL自定义函数 1418报错
  7. 通用计算机的时代,MIT论文:通用计算机时代即将终结
  8. spring整合hibernate事务编程中错误分析
  9. 项目的webinf文件在哪_PMP章节练习(第四章:项目整合管理)
  10. 数据安全治理白皮书_天融信联合发布《自动驾驶数据安全白皮书》
  11. 国际科学数据服务平台nbsp;-nbsp;csdb
  12. 电子设计大赛-AD与DA电路设计
  13. 台式计算机显卡最高温度多少,台式机的正常温度是多少
  14. 破解iOS微信骰子和猜拳
  15. 苹果开发者账号可以创建多少测试证书_配置2020苹果开发者账号证书的简要说明...
  16. 使用Enterprise Architect设计数据库-赋操作截图
  17. Google软件测试之道(读书笔记)
  18. CCF论文列表(2022拟定)大更新!NAACL升B!ICLR继续陪跑...MICCAI空降B!PRCV空降C!
  19. 【Java编程学习】案例3-4:学生投票系统
  20. 高性能风控数据平台设计

热门文章

  1. 阿里云安全肖力:云的六大安全基因助力企业构建智能化安全体系
  2. SQL老司机,居然是这样智能挖掘异常日志
  3. 被自己的行为蠢哭了,意识到原因后真香!
  4. 低代码发展系列专访之五:低代码的最大价值点是“技术平民化”吗?
  5. 写速度提升20%,Elasticsearch 创始人给腾讯云发来感谢信
  6. 45K!拿下 AI 技术岗,这些知识点全考了!
  7. 再提“鸿蒙”,任正非说这是为物联网而生;硅谷公司年薪报告出炉,谷歌年薪居榜首;苹果CEO库克接班人浮出水面,苹果高层或大换血?...
  8. IoT与大数据 如何激发数字营销最大潜能?
  9. 自己虚拟服务器都用json可以吗,vue+webpack项目中使用dev-server搭建虚拟服务器,请求json文件数据,实现前后台分离开发...
  10. vue解构赋值_前端开发es6知识 模块化、解构赋值、字符串模板