function xERot = FlightTimeCorrection(xE, dTflightSeconds) %xERot = FlightTimeCorrection(xE, dtflight); % Compute rotated satellite ECEF coordinates caused by Earth % rotation during signal flight time % % Inputs: % xE - satellite ECEF position at time of transmission % dtflight - signal flight time (seconds) % % Outputs: % XeRot - rotated satelite position vector (ECEF at trx) % % Reference: % IS GPS 200, 20.3.3.4.3.3.2 Earth-Centered, Inertial (ECI) Coordinate System %Author: Frank van Diggelen %Open Source code for processing Android GNSS Measurements %See also "A software receiver for GPS and Galileo", K. Borre at al. %Rotation angle (radians): theta = GpsConstants.WE * dTflightSeconds; %Apply rotation from IS GPS 200-E, 20.3.3.4.3.3.2 %Note: IS GPS 200-E shows the rotation from ecef to eci % so our rotation R3, is in the opposite direction: R3 = [ cos(theta) sin(theta) 0; -sin(theta) cos(theta) 0; 0 0 1]; xERot = (R3*xE(:))'; end %end of function FlightTimeCorrection %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Copyright 2016 Google Inc. % % Licensed under the Apache License, Version 2.0 (the "License"); % you may not use this file except in compliance with the License. % You may obtain a copy of the License at % %     http://www.apache.org/licenses/LICENSE-2.0 % % Unless required by applicable law or agreed to in writing, software % distributed under the License is distributed on an "AS IS" BASIS, % WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. % See the License for the specific language governing permissions and % limitations under the License.