Consider a typical BPSK system running at a baud rate of 1 kbaud/sec - the receiver needs to deal with severe frequency offsets, let's say up to +/- 1 MHz offset and that the frequency offset can change by up to 100 khz/sec.
So we're dealing with a frequency offset that's 1000x the baud_rate. Usually if we were transmitting at a higher baud rate, this would be more like 0.1x the baud rate - and one way to easily handle this frequency offset would be to employ fred harris' band-edge frequency locked loop (fll). However, AFAIK the band-edge fll approach only works very well at 2 samps/symbol. If you try to run it at a much higher # of samples/symbol (e.g. in this example we'd need to run it around ~2000 samples/symbol to have unambiguous view of our maximum frequency offset), the band-edge filters would become extremely narrow and you'd have no hope of exciting them with enough energy and locking onto the signal.
Of course - we could just replace the band-edge filters with much wider ones in hopes of catching the signal and locking onto it - but in doing so we're now allowing in a significant amount of noise. This leads me to another approach - where an FFT loop is used to determine the frequency offset and correct for it. I think of this as a generalization of the idea of swapping out the band-edge fll filters for wider ones. For example, we can consider creating a frequency discriminator/error term by comparing the pos and neg half energy of the FFT. Again, this is plagued by similar noise issues. Additionally, we have to consider complications due to the frequency offset moving (at 100khz/sec) - if we try to use a larger FFT (or average multiple FFTs ala welch/bartlett/etc) we run into the issue of the signal smearing across multiple bins - this makes it difficult to achieve significant processing gain and correct for large frequency offsets in low-snr situations.
So my question is - is there a 'correct' way of dealing with this problem? I've convinced myself using a coarse frequency correction followed by a fine freq correction (say an FFT method followed by a band-edge method) sort-of works, but I'm not really sure this is the best way to go at it (especially given the noise issues inherent in the FFT trade-off I mentioned above).