[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Discuss-gnuradio] frequent phase slip with the new digital.costas_l
Re: [Discuss-gnuradio] frequent phase slip with the new digital.costas_loop_cc
Fri, 21 Sep 2012 13:02:40 +1000
On 21/09/2012, at 12:45 AM, Tom Rondeau wrote:
> On Thu, Sep 20, 2012 at 9:56 AM, Kyle Zhou <address@hidden> 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?
> 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.
After playing the module for a while, I figured out where the problem is.
The default setting to the loop bandwidth 2*pi/100 is too big.
I am not familiar with the control loop bandwidth stuff. But change it to
2*pi/1000 makes things working.
For a QPSK, Eb/N0=8 dB will cause the loop out of lock if set as 2*pi/100. Even
with 10 dB, the frequency offset varies a lot.
I know it is certain trade off between max captured offset and performance. But
2*pi/100 is definitely far from optimal.
I will learn more about control loop to get an idea how the bandwidth should be