VDOP with satellites overhead
- From: tp <rudymon25@xxxxxxxxx>
- Date: Fri, 21 Nov 2008 19:31:09 -0800 (PST)
I've a question about VDOP. If there are 4 satellites clustered
overhead, compared to 4 satellites spread low around the horizon, I
would have expected that VDOP would be not so great for the low around
the horizon case, and pretty good for the clustered overhead case.
Vice versa for HDOP.
Often the DOP is drawn as a region of uncertainty formed when the
ranging rings from each satellite are intersected (in 2d case).
When DOP is calculated (using eqs from p476 parkinson and spilker
"global positioning system - theory
% and applications vol 1) for each case, the VDOP is not good for
either. (in comparison HDOP is quite good for the along the horizon
case and poor for clustered overhead, and that makes sense).
Anyone have some guidance on how to interpret these results?
Thanks much,
tp
clustered overhead
[PDOP,HDOP,VDOP]=CalcDOPfromAngles([80,0],[74,120],[81,240],[90,300])
PDOP = 60.2554, HDOP = 7.5906, VDOP = 59.7754
spread around the horizon
[PDOP,HDOP,VDOP]=CalcDOPfromAngles([10,0],[10,60],[12,120],[10,200],
[12,300])
PDOP = 27.1315, HDOP = 0.9339, VDOP = 27.1154
here's the matlab function
function [PDOP,HDOP,VDOP]=CalcDOPfromAngles(varargin)
% [PDOP,HDOP,VDOP]=CalcDOPfromAngles(varargin)
%
% usage: CalcDOPfromAngles([SV1_e SV1_a],[SV2_e SV2_a],[SV3_e SV3_a],
[SV4_e SV4_a])
% [angle in degrees]
% example: CalcDOPfromAngles([5 0],[5 120],[5 240],[90 0])
%
% where [elevation azimuth] pairs are in the local frame and provided
for at least 4 satellites. the
% varargin construct can accept more than 4, and the routine (using
varargin) will figure out
% how many pairs, and how to solve for the DOPmatrix.
%
% implementation:
% taken from p476 parkinson and spilker "global positioning system -
theory
% and applications vol 1"
nSV = length(varargin);
fprintf(1,'\n%d satellites in view\n',nSV);
if nSV < 4
error('Need at least 4 satellites for full solution')
end
for i = 1 : nSV
SVtemp = varargin{i};
SV(i,1) = deg2rad(SVtemp(1)); % elevation in col 1
SV(i,2) = deg2rad(SVtemp(2)); % azimuth in col 2
G(i,1) = cos(SV(i,1))*sin(SV(i,2));
G(i,2) = cos(SV(i,1))*cos(SV(i,2));
G(i,3) = sin(SV(i,1));
G(i,4) = 1;
end
% show intermediate results
% G
% SV
% solve for DOP matrix
DOPmatrix = inv(G'*G);
PDOP = sqrt(DOPmatrix(1,1) + DOPmatrix(2,2) + DOPmatrix(3,3));
HDOP = sqrt(DOPmatrix(1,1) + DOPmatrix(2,2));
VDOP = sqrt(DOPmatrix(3,3));
% plot SV constellation
% x is east, y north, z up
rho = 1; % unit vector length
% figure;
hold on
for i = 1 : nSV
rho_xy = rho * cos(SV(i,1)); % unit vector projection in xy plane
x = rho_xy * cos(SV(i,2));
y = rho_xy * sin(SV(i,2));
z = rho * sin(SV(i,1));
plot3([0,x],[0,y],[0,z],'-o')
end
xlabel('x-east'), ylabel('y-north'), zlabel('z-up')
grid on
.
- Prev by Date: Mapsource Metroguide Canada v5
- Next by Date: Re: Nuvi 750 nebie questions
- Previous by thread: Mapsource Metroguide Canada v5
- Next by thread: Re: VDOP with satellites overhead
- Index(es):
Relevant Pages
|