A number of methods have been developed to enhance the robustness of Global Positioning System (GPS) receivers when there are a limited number of visible satellites. Vector tracking is one of them. It utilizes information from all channels to aid the processing of individual channels to generate receiver positions and velocities. This paper analyzes relationships among code phase, carrier frequency, and receiver position and velocity, and presents a vector loop-tracking algorithm using an Extended Kalman filter implemented in a Matlab-based GPS software receiver. Simulated GPS signals are generated to test the proposed vector tracking method. The results show that when some of the satellites are blocked, the vector tracking loop provides better carrier frequency tracking results for the blocked signals and produces more accurate navigation solutions compared with traditional scalar tracking loops.