I was having a very difficult time trying to get a Costas Loop to work
yesterday for order=2. I discovered, by the end of the day, several
things:
- Min and Max frequency are in Radians per Sample (the documentation
says ‘normalized’, but I wasn’t sure whether it meant cycles/sample or
radians/sample) - The loop likes a signal that lies on the unit circle (i.e.
magnitude=1). I was using unscaled data that ranged from -150 to
150…not so good! I used Automatic Gain Control to fix this.
I used a nominal value of 0.01 for alpha and alpha^2/4 for beta, but I
suppose you should tweak these by testing the response of the loop for
various stimuli.
I think I’ll update the documentation to make things more explicit.
Cheers,
Tom