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