If the GPS signal is centered (carrier) at 4.309 MHz, and this is sampled at
5.714 MHz, then there would be an alias copy at 5.714-4.309 = 1.405 MHz. To
acquire this signal, you would first "down-convert" the signal to baseband, or
0 frequency by multiplying by $exp(-j\omega t)$ where $\omega$ is
$2\pi(1.405e6)$ Hz. The reason to use an exponential and complex downconverter
such as this process instead of just multiplying with a sine, is that it will
facilitate fine adjustments to carrier frequency and phase as you do your
acquisition (which you can do manually to get a feel for how a carrier tracking
system would work). After you multiply the signal as such to move it to 0
frequency, then correlate with the code for your specific SV of interest.
When correlating to a known code, the magnitude of the correlation will be
proportional to the residual frequency offset of your carrier as a Sinc
function with the first nulls located at $F= \frac1T$ where $T$ is the length
in time of your correlation. (For example, if you choose to correlate over a
full PRN which is 1 ms, the null to null width will be ± 1kHz, meaning you
should be able to see an SV even if it is still ±500 Hz off. For this reason if
I was doing a manual search with a full length PRN, I would step my frequency
in steps of 500 Hz and do a correlation in each "frequency bin" until I stepped
over the full possible Doppler range for my system. For your case to give a
specific example, I would do a first correlation after multiplying by -1.405
MHz ($e^{-j2\pi1.405e6t}$), and know that I would see and SV if it was within
500 Hz (the null extends to 1kHz offset, but beyond 500 Hz and the correlated
signal would start to compete with noise). If I didn't see anything for an SV
that I knew was present, I would then step my frequency up 1 kHz (to -1.406 MHz)
and try there, and I would continue this over all possible Doppler offsets
(typically up to ±5 kHz). If I knew my signal was strong, I could correlate over
1/2 a sequence to double the "window" in which I would see a signal in Doppler
offset. But this would reduce the processing gain by 3 dB but useful for an
initial acquisition search.
Note, if needed see my code generator available here: https://www.mathworks.com/matlabcentral/fileexchange/14670-gps-c-a-code-generator which includes the ability to resample the code to any arbitrary frequency (in your case 5.7144 MHz).
And if you really want to get fancy (at the expense of resources associated with a 2D FFT), see my implementation for "one-shot" code delay and carrier phase here: https://www.mathworks.com/matlabcentral/fileexchange/26035-joint-frequency-and-delay-correlation This shows how to determine code delay and frequency offset from one block of data in one matrix operation, using the cross-correlation theorem to relate the fft to a circular correlation;
$\text{xcorr}= \text{ifft}\left(\text{fft}\left(a\right)\text{fft}\left(b\right)^*\right)$
combined with the property that a circularly rotated FFT of a time domain signal is the same as the time domain signal in a different Doppler bin. (So once one FFT is computed for the CDMA PRN, you have the FFT's for the PRN at all other Doppler bins just by rotating that one FFT!). The code provides a similar plot as shown below which is the correlation for an SV vs code and frequency offset.
