Hi, I have another question regarding this. I sunk the output from the Costas onto FFTsink and got this. http://img172.imageshack.us/img172/9956/costasfft.jpg Are the peaks that appear on this the lower and upper sidebands of the data signal? I am transmitting using benchmark_tx.py (dbpsk).
Thanks, > On Thu, May 28, 2009 at 5:38 AM, Mir M. Ali <mirmurt...@gmail.com> wrote: > >> Thanks a lot Tom for your help. I now understand how Costas loop operates. >> After all the tests that I did following your suggestions I was able to find >> the answer for a lot of my unanswered questions. >> >> Thanks again, >> Ali >> >> >> On Wed, May 27, 2009 at 10:42 AM, Tom Lutz <tommyl...@gmail.com> wrote: >> >>> > 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 >>> 2*pi*2000000/6000000~=2.09 >>> >>> 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 >>> for error. >>> >>> 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 >>> least. >>> >>> Tom >>> >>> >>> _______________________________________________ >>> Discuss-gnuradio mailing list >>> Discuss-gnuradio@gnu.org >>> http://lists.gnu.org/mailman/listinfo/discuss-gnuradio >>> >> >> >
_______________________________________________ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org http://lists.gnu.org/mailman/listinfo/discuss-gnuradio