phase tracking loop for dbpsk I have a communication with a DBPSK modulation. The communication is disrupted by a Doppler shift (due to movement) and Doppler spread (due to channel). At the reception, after Doppler shift compensation with a preamble and DBPSK demodulation, I have a problem with the phase of the symbols. To correct the phase error, I use a phase tracking loop. Here is the link on what I'm doing phase tracking loop.

Here are my questions:

1) How to choose the constant loop $K_c$?

2) We suppose the Doppler shift is perfectly compensated. In my Matlab code, if for example I take $K_c=0.01$, sometimes I find exactly the symbol sent and sometimes I have symbol errors. What is the reason for these errors?

Thank you
Ok, to get this straight: you're doing DBPSK, but you're still seeing a constant phase error that has a non-zero mean?

That means you've got a frequency error. 

Your assumption 


  We suppose the Doppler shift is perfectly compensated


hence must be wrong.

So, correct frequency instead of the phase. You're already using DBPSK because you don't want to correct the absolute phase (I hope this was known to you. If you didn't know why you did differential modulation: please go and read up on differential phase shift keying, and why you don't use a phase-correcting loop with D(B)PSK).