Hi Piotr, there's various control loop based offset correction, look for the PLL and FLL examples. There's a feedback loop base class in GNU Radio for monolithic correction. For the frequency correction estimate feedback, you could easily use a message bus, that will occasionally inform the upstream frequency correction block.
Greetings, Marcus On 14.07.2014 18:14, Perper wrote: > Hi all, > > In many applications very good synchronization of carrier and sampling > frequencies is required. > Available sources of signal not always have good clock reference. One of > the examples is cheap RTL SDR receiver based on a DVB-T dongle. > Without any additional effort to correct frequency offset it is > impossible to decode GPS or GSM transmissions with such receivers. > > The frequency offset cannot be calibrated once as it changes with time > and temperature. Good way to fight with it is to implement some > correction algorithm that continuously computes frequency offset > estimates and applies correction by: > - performing frequency shifting and re-sampling in software, > - or changing some hardware parameter that enables tuning of the > frequency of an internal oscillator (like 'ppm' option in RTL SDR source). > > My question: is it possible to build working frequency correction with > available GNU Radio blocks? Can you point some successful example? Or if > not - can you share some ideas how it can be done? I'm especially > interested in situations where frequency offset correction and > estimation are in separate blocks i.e: > > ______freq. offset_________ > | | > v | > |sig.source|-->|freq.offset|-->(processing)-->|freq. offset| > |correction | |estimation | > > > -- > Best Regards, > Piotr Krysik > > _______________________________________________ > Discuss-gnuradio mailing list > Discuss-gnuradio@gnu.org > https://lists.gnu.org/mailman/listinfo/discuss-gnuradio _______________________________________________ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org https://lists.gnu.org/mailman/listinfo/discuss-gnuradio