#include <iostream.h>
#include <math.h>
#include <iomanip.h>
#include <string.h>
#include "stdio.h"
#include <stdlib.h>
#include "matrix.h"
#include "mymatrix.h"
#define BSN 4
float Q[BSN-1][BSN-1]={{1,0,0},{0,1,0},{0,0,1}};
float BS[BSN-2][BSN]={{0,100,0,100},{0,0,100,100}};
float iep[2][1]={{35},{50}};
float myiep[2][1]={{27},{53}};
/* Taylorforline 展开公式*/
void Taylorforline(int n)
{
int i =0,j=0,k=0;
double R1=0.0,R[BSN-1]={0.0};
double **A1,**A2,**A3,**A4,**A5;
double **ht,**h,**G,**Gt;
double **delt;
double **IQ,**Q,**QI;
double meadist[1][BSN]={{0.0,0.0,0.0,0.0}},h0[1][BSN]={{0.0,0.0,0.0,0.0}};
h=zeros(1,BSN-1);
G=zeros(BSN-1,2);
Q=zeros(3,3);
for(i=0;i<BSN;i++)
{
meadist[0][i]=sqrt(pow(iep[0][0]-BS[0][i],2)+pow(iep[1][0]-BS[1][i],2));
}
for(i=0;i<BSN-1;i++)
{
h0[0][i]=meadist[0][i+1]-meadist[0][0]+i*0.5+0.5;
}
for (k=0;k<n;k++)
{
R1=sqrt(pow(iep[0][0],2)+pow(iep[1][0],2));//当前坐标到基站1(0,0)的距离
for (j=0;j<BSN-1;j++)
{
R[j]=sqrt(pow(iep[0][0]-BS[0][j+1],2) + pow(iep[1][0] - BS[1][j+1],2));
}
h=zeros(1,BSN-1);
for(i=0;i<BSN-1;i++)
{
h[0][i]=h0[0][i]-(R[i]-R1);
}
ht=MatrixInver(h,1,3);//h的转置矩阵ht
G=zeros(BSN-1,2);
for(i=0;i<BSN-1;i++)
{
G[i][0]=-iep[0][0]/R1-(BS[0][i+1]-iep[0][0])/R[i];
G[i][1]=-iep[1][0]/R1-(BS[1][i+1]-iep[1][0])/R[i];
}
//求解增量
Q[0][0]=1;Q[0][1]=0;Q[0][2]=0;
Q[1][0]=0;Q[1][1]=1;Q[1][2]=0;
Q[2][0]=0;Q[2][1]=0;Q[2][2]=1;
Gt= MatrixInver(G,3,2);//G的转置矩阵Gt
QI=MatrixOpp(Q,3);
A1=MatrixMulti(Gt,QI,2,3,3);
A2=MatrixMulti(A1,G,2,3,2);
A3=MatrixOpp(A2,2);
A4=MatrixMulti(A3,Gt,2,2,2);
A5=MatrixMulti(A4,QI,2,2,3);
delt=zeros(2,1);
delt=MatrixMulti(A5,ht,2,3,1);
cout<<"Taylor偏差为:"<<'('<<delt[0][0]<<','<<delt[1][0]<<')'<<endl;
}
iep[0][0]=iep[0][0]+delt[0][0];
iep[1][0]=iep[1][0]+delt[1][0];
}
/* myTaylorforline 展开公式*/
void myTaylorforline(int n)
{
int i =0,j=0,k=0;
float R1=0.0,R[BSN-1]={0.0};
float A1[10][10],A2[10][10],A3[10][10],A4[10][10],A5[10][10];
float ht[10][10],h[10][10],G[10][10],Gt[10][10];
float delt[10][10];
float IQ[10][10],Q[10][10],QI[10][10];
float meadist[1][BSN]={{0.0,0.0,0.0,0.0}},h0[1][BSN]={{0.0,0.0,0.0,0.0}};
myzeros(1,BSN-1,h);
myzeros(BSN-1,2,G);
myzeros(3,3,Q);
myzeros(10,10,A1);
myzeros(10,10,A2);
myzeros(10,10,A3);
myzeros(10,10,A4);
myzeros(10,10,A5);
myzeros(10,10,ht);
myzeros(10,10,h);
myzeros(10,10,G);
myzeros(10,10,Gt);
myzeros(10,10,delt);
myzeros(10,10,QI);
myzeros(10,10,IQ);
for(i=0;i<BSN;i++)
{
meadist[0][i]=sqrt(pow(iep[0][0]-BS[0][i],2)+pow(iep[1][0]-BS[1][i],2));
}
for(i=0;i<BSN-1;i++)
{
h0[0][i]=meadist[0][i+1]-meadist[0][0]+i*0.5+0.5;
}
for (k=0;k<n;k++)
{
myzeros(10,10,A1);
myzeros(10,10,A2);
myzeros(10,10,A3);
myzeros(10,10,A4);
myzeros(10,10,A5);
R1=sqrt(pow(iep[0][0],2)+pow(iep[1][0],2));//当前坐标到基站1(0,0)的距离
for (j=0;j<BSN-1;j++)
{
R[j]=sqrt(pow(iep[0][0]-BS[0][j+1],2) + pow(iep[1][0] - BS[1][j+1],2));
}
myzeros(1,BSN-1,h);
for(i=0;i<BSN-1;i++)
{
h[0][i]=h0[0][i]-(R[i]-R1);
}
//ht=MatrixInver(h,1,3);//h的转置矩阵ht
//myMatrixInver(int m,int n,float a[5][5],float b[5][5])
myMatrixInver(1,3,h,ht);
myzeros(BSN-1,2,G);
for(i=0;i<BSN-1;i++)
{
G[i][0]=-iep[0][0]/R1-(BS[0][i+1]-iep[0][0])/R[i];
G[i][1]=-iep[1][0]/R1-(BS[1][i+1]-iep[1][0])/R[i];
}
//求解增量
Q[0][0]=1;Q[0][1]=0;Q[0][2]=0;
Q[1][0]=0;Q[1][1]=1;Q[1][2]=0;
Q[2][0]=0;Q[2][1]=0;Q[2][2]=1;
//Gt= MatrixInver(G,3,2);//G的转置矩阵Gt
//QI=MatrixOpp(Q,3);
//A1=MatrixMulti(Gt,QI,2,3,3);
//A2=MatrixMulti(A1,G,2,3,2);
//A3=MatrixOpp(A2,2);
//A4=MatrixMulti(A3,Gt,2,2,2);
//A5=MatrixMulti(A4,QI,2,2,3);
//delt=MatrixMulti(A5,ht,2,3,1);
myMatrixInver(3,2,G,Gt);
myMatrixOpp(3,Q,QI);
myMatrixMulti(Gt,QI,A1,2,3,3);
myMatrixMulti(A1,G,A2,2,3,2);
myMatrixOpp(2,A2,A3);
myMatrixMulti(A3,Gt,A4,2,2,2);
myMatrixMulti(A4,QI,A5,2,2,3);
myzeros(2,1,delt);
myMatrixMulti(A5,ht,delt,2,3,1);
cout<<"myTaylor偏差为:"<<'('<<delt[0][0]<<','<<delt[1][0]<<')'<<endl;
}
myiep[0][0]=myiep[0][0]+delt[0][0];
myiep[1][0]=myiep[1][0]+delt[1][0];
}
void main()
{
float IQ[5][5],Q[5][5],QI[5][5];
int i,j;
float g[5][5]={{0,0,0,0,0},{0,0,0,0,0},{0,0,0,0,0},{0,0,0,0,0},{0,0,0,0,0}},f[5][5],m[5][5];
myTaylorforline(5);
for(i=0;i<1;i++)
{
cout<<"myTaylor估算坐标为:"<<'('<<myiep[0][0]<<','<<myiep[1][0]<<')'<<endl;
printf("\n");
}
Taylorforline(5);
for(i=0;i<1;i++)
{
cout<<"Taylorfor估算坐标为:"<<'('<<iep[0][0]<<','<<iep[1][0]<<')'<<endl;
}
system("pause");
}
没有合适的资源?快使用搜索试试~ 我知道了~
泰勒展开最小二乘法求解TDOA
共33个文件
pdb:4个
h:4个
dsw:2个
5星 · 超过95%的资源 需积分: 46 34 下载量 103 浏览量
2019-05-06
09:49:24
上传
评论 9
收藏 383KB ZIP 举报
温馨提示
导航与定位问题,泰勒展开法与最小二乘法求解TDOA
资源推荐
资源详情
资源评论
收起资源包目录
泰勒展开最小二乘法求解TDOA.zip (33个子文件)
泰勒展开最小二乘法求解TDOA
泰勒展开最小二乘法求解TDOA.opt 48KB
泰勒展开最小二乘法求解TDOA.dsp 5KB
._matrix.h 4KB
._泰勒展开最小二乘法求解TDOA.ncb 4KB
._泰勒展开最小二乘法求解TDOA.dsw 4KB
.DS_Store 6KB
._泰勒展开最小二乘法求解TDOA.opt 4KB
Debug
vc60.pdb 60KB
._泰勒展开最小二乘法求解TDOA.pch 4KB
._泰勒展开最小二乘法求解TDOA.ilk 4KB
._vc60.idb 4KB
泰勒展开最小二乘法求解TDOA.ilk 286KB
泰勒展开最小二乘法求解TDOA.pch 320KB
._泰勒展开最小二乘法求解TDOA.pdb 4KB
vc60.idb 49KB
泰勒展开最小二乘法求解TDOA.pdb 585KB
._vc60.pdb 4KB
泰勒展开最小二乘法求解TDOA.exe 252KB
._泰勒展开最小二乘法求解TDOA.obj 4KB
._泰勒展开最小二乘法求解TDOA.exe 4KB
泰勒展开最小二乘法求解TDOA.obj 26KB
泰勒展开最小二乘法求解TDOA.ncb 49KB
._泰勒展开最小二乘法求解TDOA.CPP 4KB
._.DS_Store 4KB
泰勒展开最小二乘法求解TDOA.dsw 560B
._泰勒展开最小二乘法求解TDOA.plg 4KB
matrix.h 3KB
泰勒展开最小二乘法求解TDOA.CPP 5KB
._Debug 4KB
._泰勒展开最小二乘法求解TDOA.dsp 4KB
泰勒展开最小二乘法求解TDOA.plg 3KB
._mymatrix.h 4KB
mymatrix.h 2KB
共 33 条
- 1
资源评论
- 尹子先生2023-07-26这是一个实用性很强的文件,详细介绍了如何使用泰勒展开最小二乘法求解TDOA问题。
- 张博士-体态康复2023-07-26文件中的实例和计算方法都很实用,可以直接应用到实际项目中。
- 养生的控制人2023-07-26作者的描述很准确,没有过多的炫技,让人很容易理解。
- AIAlchemist2023-07-26这个文件清晰地解释了TDOA的相关概念和原理,对于初学者来说很友好。
- wxb0cf756a5ebe75e92023-07-26这个文件不仅提供了求解TDOA问题的方法,还附有具体实例,让读者在实践中更好地理解和应用。
qq_35930900
- 粉丝: 1
- 资源: 8
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Screenshot_20240427_031602.jpg
- 网页PDF_2024年04月26日 23-46-14_QQ浏览器网页保存_QQ浏览器转格式(6).docx
- 直接插入排序,冒泡排序,直接选择排序.zip
- 在排序2的基础上,再次对快排进行优化,其次增加快排非递归,归并排序,归并排序非递归版.zip
- 实现了7种排序算法.三种复杂度排序.三种nlogn复杂度排序(堆排序,归并排序,快速排序)一种线性复杂度的排序.zip
- 冒泡排序 直接选择排序 直接插入排序 随机快速排序 归并排序 堆排序.zip
- 课设-内部排序算法比较 包括冒泡排序、直接插入排序、简单选择排序、快速排序、希尔排序、归并排序和堆排序.zip
- Python排序算法.zip
- C语言实现直接插入排序、希尔排序、选择排序、冒泡排序、堆排序、快速排序、归并排序、计数排序,并带图详解.zip
- 常用工具集参考用于图像等数据处理
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功