The presence of code Doppler and navigation bit sign transitions means that the acquisition of global positioning system (GPS) signals is difficult in weak signal environments where the output signal-to-noise ratio (SNR) is significantly reduced. Post-correlation techniques are typically utilised to solve these problems. Despite the advantages of these techniques, the post-correlation techniques suffer from problems caused by the code Doppler and the navigation bit sign transitions. We present an improved semi-bit differential acquisition method which can improve the code Doppler and the bit sign transition issues in the post-correlation techniques. In order to overcome the phenomenon of navigation bit sign transitions, the proposed method utilises the properties of the navigation bit. Since each navigation bit takes as long as 20 ms, there would be 10 ms correlations duration integration time between the received signal and the local coarse/acquisition (C/A) code in which the navigation bit sign transitions will not occur. Consequently, this problem can be cancelled by performing 10 ms correlations in even and odd units separately. Compensation of the code Doppler is also accomplished by shifting the code phase of the correlation results. To validate the performance of our suggested method, simulations are performed based on three data sets. The results show that the quantity of required input SNR to detect at least four satellites in the proposed method is − 48·3 dB, compared with − 20 dB and − 9 dB, respectively, in traditional differential and non-coherent methods.