On 21/09/2012, at 12:45 AM, Tom Rondeau wrote: > On Thu, Sep 20, 2012 at 9:56 AM, Kyle Zhou <kyle...@gmail.com> wrote: >> I adapted my codes from gnuradio-3.3 to the new 3.6 version. >> One of the changes is the new digital.costas_loop_cc is now implemented >> based on control_loop. >> The costas loop is used for phase recovery of a QPSK signal. >> But I noticed that with the new version, the output experiences a lot of >> phase slips. >> To be exact, the phase at the output rotate 90 degree from time to time. >> I changed it back to the old gr.costas_loop_cc and this did not happen. >> The setting for the old loop is alpha=0.01, beta=alpha*alpha/4, >> max_freq=2*pi*0.1, min_freq=-max_freq. >> The setting for the new loop is loop bandwidth = 2*pi/100 >> >> The new version is only good when SNR is very high, say 13dB+ >> >> Any has encountered the same problem? or am I doing something wrong? >> KZ > > Hi Kyle, > > I was using this just last week in a demonstration and hadn't noticed > any problems. If you can pin-point what's going wrong, though, I'll be > sure to fix it. > > Tom
Hi Tom, I spent some time on reading the code in gri_control_loop. However, the calculation from loop bandwidth to alpha and beta is quite complicated and from digital_costas_loop_cc I do not see how loop bandwidth is related to the loop behavior etc. Is the implementation based on some paper or text? I am really interested to read the theory. BTW, the phase detector is a decision-directed method. In a costas loop the phase error should be detected in a non-data aided way. so the block is not a costas loop strictly speaking. KZ _______________________________________________ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org https://lists.gnu.org/mailman/listinfo/discuss-gnuradio