Hi Tom,

GNU Radio, the way it's currently written, does not allow you to build a loop with sample streams – that's why you can't build a proper PLL from components in GRC :)

But: there's ready-made PLLs for some use cases, namely for automatically locking onto a carrier (and mixing down with it) [1], for detecting the frequency of a carrier [2] and for detecting a carrier and generating a "clean" version of it [3].

Now, these blocks do the PLL "block-internally", so if these PLLs don't fulfill your phase locking purposes, then you'd need to implement that yourself (for example, in a Python block, or in C++).

So, maybe we should talk about what you need your PLL for? It's quite possible we already have something like that ready-made or easy to modify.

Best,
Marcus

[1] https://wiki.gnuradio.org/index.php?title=PLL_Carrier_Tracking
[2] https://wiki.gnuradio.org/index.php?title=PLL_Frequency_Detector
[3] https://wiki.gnuradio.org/index.php?title=PLL_Carrier_Regeneration

On 08.08.23 13:12, tom sutherland wrote:
Is there a tutorial, example or guide to creating feedback loop (PLL, Costas, etc...) using Companion/python?
Thanks...Tom

Reply via email to