Hi Tom, Marcus outlined some good resources, but if you're like me and need a little bit more hand holding in order to use gnuradio-companion to build flowgraphs using blocks like the costas loop, etc., there is an excellent course at Harvey Mudd College by Jason Gallicchio[1]. The course is online and free to watch off youtube. In the course, you build a QPSK modem and GPS receiver, using gnuradio and a PlutoSDR and an RTL-SDR.
I'm not finished the course yet, but I have enjoyed the material so far. Prof. Jason also has the flowgraphs online[2]. Best regards, Chris [1] https://gallicchio.github.io/learnSDR/ [2] https://github.com/gallicchio/learnSDR/ On Tue, Aug 8, 2023 at 8:31 AM Marcus Müller <mmuel...@gnuradio.org> wrote: > > 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 >