How to Compensate for Frequency Offset in single carrier transmission Using Coarse and Fine Compensation?
To compensate for a frequency offset first it needs to be measured, let us take the example of  PSK. 

At the trasnmitter : Suppose the signal is upconverted at the transmitter to $F_c$, then the received signal is given by $$s(t)e^{j2\pi F_ct}$$ here $s(t)$ is the baseband PSK signal.

At the Receiver: Suppose the received signal has a frequency offset, either due to doppler shift or inaccuracy of the receiver clock, let this offset be $\Delta_f$, after downconversion at the receiver, the signal sent to the ADC is $$s(t)e^{j2\pi F_ct}s^{*}(t)e^{j2\pi( F_c - \Delta_f)t}$$

$$\vert s(t) \vert^2 e^{-j2\pi\Delta_ft}$$

Where for the sake of simplicity, let us normalize $$\vert s(t) \vert^2 = 1$$ 

After going through the ADC the digitized samples are given by $$ y[n] = e^{j2\pi\Delta_fnT_s}$$ where $T_s$ is the sampling interval

Let us now correlate adjacent samples of this digitized signal, we get 

$$ y[n+1]y[n]^* = e^{j2\pi\Delta_f(n+1)T_s}e^{-j2\pi\Delta_fnT_s}$$

$$ y[n+1]y[n]^* = e^{j2\pi\Delta_fT_s}$$

Everything other than $\Delta_f$ is known in the above equation, which can be found out using the following relation, let us denote the phase resulting from the correlation of samples as following:

$$ y[n+1]y[n]^* = u_k$$ then
 $$ \Delta_f = \frac{\Phi_k}{2\pi T_s} \tag{1}$$

Where $$\Phi_k = arctan\left( \frac{Img(u_k)}{Real(u_k)}  \right)$$

For a good result which is less impacted by noise, take average over a larger number of such correlations between incoming samples.

For the case when $\vert s(t) \vert^2$ is not unity or unit power, the value $E(s[n+1]s[n])$ is decided by the constellation. Usually a pilot is sent with a known constellation point to the receiver and trasnmitter to determine the frequency offset and channel.

For ex: in 4 QAM, you could send the constellation point/symbol $\sqrt{\frac{1}{2}} + j\sqrt{\frac{1}{2}}$

If however the SINR is low, the envelope of the signal $\vert s(t) \vert^2$, might not be predictable at the receiver in such cases it is better to work with the demodulated symbols and not the samples. The upside is better offset estimation, the downside is a longer convergence loop, because of need to demodulate and then  recover offset.

In such cases, the receiver will first try to demodulate the symbol with the frequency offset (hopefully it's not too big and can be demodulated correctly). The rotation in complex plane is directly linked to the offset as in equations above.

Now $T_s$ would be replaced by the symbol time in the above equation (1), because we would be correlating between adjacent symbols and not samples, rest of the analysis will remain exactly the same.

Offset correction at the receiver:

Once the frequency offset is estimated it can then be corrected at the receiver by applying the adjustment to the PLL at the receiver.

However, the decision to correct the offset also depends on the SINR and quality of measurements. If the SINR is low (that means the measured frequency offset is not fully trust worthy, then correct only a part of the measured frequency offset, ex : 75% in one  estimation cycle, and successful estimations will then converge to the actual offset over a period of time). So the amount of total correction once the estimation of the offset is done should be reflected in the confidence in the estimate decided by the SINR and other physical layer parameters.