PLL and VCO questions

Hi all,

I have made up a simple PLL block in GRC using a multiplier phase
detector, low pass filter (FIR) and VCO to lock to a 1KHz reference.
When I run the simulation, it gives me a run time error “flow graph has
loops!”. Does it mean that I cannot make any kind of feedback system in
the gnuradio or is there something else to ponder? Also, I am adding “1”
to the output of the low pass filter so that when the phase error
(output of low pass filter) becomes zero in the locked state, the VCO
then runs at its quiescent frequency of 1KHz (I have set the sensitivity
of VCO as 2pi1K rad/s/V). Is it the right way to use VCO?

Below is the error message:



Generating: “/home/mahboob/Desktop/top_block.py”

Executing: “/home/mahboob/Desktop/top_block.py”

gr_fir_fff: using SSE
Traceback (most recent call last):
File “/home/mahboob/Desktop/top_block.py”, line 71, in
tb.Run(True)
File
“/usr/lib/python2.6/dist-packages/grc_gnuradio/wxgui/top_block_gui.py”,
line 73, in Run
if start: self.start()
File “/usr/lib/python2.6/dist-packages/gnuradio/gr/top_block.py”, line
97, in start
self._tb.start()
File
“/usr/lib/python2.6/dist-packages/gnuradio/gr/gnuradio_swig_py_runtime.py”,
line 1455, in start
return _gnuradio_swig_py_runtime.gr_top_block_sptr_start(self)
RuntimeError: flow graph has loops!

Hey,

You can’t make a feedback system in the Python flowgraph. You can,
however
use feedback in an individual signal processing block. If you need to
use a
PLL look at the Costas loop block which locks to RF signals with complex
baseband components eg. QPSK, SSB etc.

John

On Mon, Aug 2, 2010 at 2:52 AM, Rahman, Muhammad Mahboob Ur <

Hi John,

I have to implement a modified version of costas loop which is to be
used to compensate for frequency offset present between LO’s of two
USRP’s (RFX900). So, I think I should make a new such signal processing
block now.

Thanks,
Mahboob


From: John W. [[email protected]]
Sent: 02 August 2010 02:33
To: Rahman, Muhammad Mahboob Ur
Cc: discuss-gnuradio
Subject: Re: [Discuss-gnuradio] PLL and VCO questions

Hey,

You can’t make a feedback system in the Python flowgraph. You can,
however use feedback in an individual signal processing block. If you
need to use a PLL look at the Costas loop block which locks to RF
signals with complex baseband components eg. QPSK, SSB etc.

John

On Mon, Aug 2, 2010 at 2:52 AM, Rahman, Muhammad Mahboob Ur
<[email protected]mailto:[email protected]> wrote:
Hi all,

I have made up a simple PLL block in GRC using a multiplier phase
detector, low pass filter (FIR) and VCO to lock to a 1KHz reference.
When I run the simulation, it gives me a run time error “flow graph has
loops!”. Does it mean that I cannot make any kind of feedback system in
the gnuradio or is there something else to ponder? Also, I am adding “1”
to the output of the low pass filter so that when the phase error
(output of low pass filter) becomes zero in the locked state, the VCO
then runs at its quiescent frequency of 1KHz (I have set the sensitivity
of VCO as 2pi1K rad/s/V). Is it the right way to use VCO?

Below is the error message:



Generating: “/home/mahboob/Desktop/top_block.py”

Executing: “/home/mahboob/Desktop/top_block.py”

gr_fir_fff: using SSE
Traceback (most recent call last):
File “/home/mahboob/Desktop/top_block.py”, line 71, in
tb.Run(True)
File
“/usr/lib/python2.6/dist-packages/grc_gnuradio/wxgui/top_block_gui.py”,
line 73, in Run
if start: self.start()
File “/usr/lib/python2.6/dist-packages/gnuradio/gr/top_block.py”, line
97, in start
self._tb.start()
File
“/usr/lib/python2.6/dist-packages/gnuradio/gr/gnuradio_swig_py_runtime.py”,
line 1455, in start
return _gnuradio_swig_py_runtime.gr_top_block_sptr_start(self)
RuntimeError: flow graph has loops!

Hey Mahboob,

Maybe take a look at the gr_mpsk_receiver block source for reference,
that
implements a Costas Loop with provision for constant frequency offset
(theta). Anyway processing block it is, good luck!

John

On Mon, Aug 2, 2010 at 3:47 PM, Rahman, Muhammad Mahboob Ur <