> I am using Flex-2400 boards and the received signal is ideally at baseband
> which in fact is not possible because, of various factors. Now, we have a
> signal that has a center frequency 'fc' which is not 0Hz. Assuming the
> costas to lock at this carrier I can achieve my goal. Isn't it right?
The Costas loop can lock to fc, and will output the original signal
mixed with fc (i.e. your signal at baseband), so yes is the answer.
It is worthwhile to look close at the secondary output of the Costas
loop. This output is the frequency the loop is locked to, in radians
per sample. If you take the real part of this output (the imaginary
is just 0), and multiply it by sampling_frequency/(2*pi) and send it
to the oscilloscope or other graphical sink, you can see what
frequency, in Hertz, the loop is locked to. Nominally, you can try
alpha=0.01 and beta=alpha^2/4 for the phase and frequency gains,
respectively. Try things out in simulation first.
> Can you also tell me how fmax and fmin are calculated? For example, dbpsk.py
> has fmax=0.1 and fmin=-0.1. How do we get these?
Frequency (in radians per sample) = 2*pi*(frequency) / (sample rate),_______________________________________________
so if your carrier were 2MHz at a sampling rate of 6MHz, it would be
fmax=0.1 and fmin=-0.1 means the loop is set to lock to 0Hz (DC), with
a tolerance of +/- 0.1Radians/Sample.
Pick some margin above and below based on expected drift (say, for
example, 1.95MHz and 2.05MHz), and calculate similarly to get your
fmin and fmax. Given that dbpsk.py has fmax=0.1 and fmin=-0.1, I'm
lead to believe that the costas loop can work at DC, in which case the
frequency would be roughly 0 and the phase would adjust to compensate
I don't consider myself an authoritative source for this stuff, as I
just started playing with it myself, but this should get you going at
Discuss-gnuradio mailing list