For a block that performs the identical function of the PFB clock synch block with correct tag propagation, use the Symbol Synchronizer Block available in this pull request:
https://github.com/gnuradio/gnuradio/pull/1294 https://github.com/awalls-cx18/gnuradio/tree/symbol_sync2 or this OOT module: https://github.com/awalls-cx18/gr-nwr Use the following settings: Timing Error Detector: y[n]y'[n] Maximum Likelyhood Samples per Symbol: whatever you're using now Loop Bandwidth: whatever you're using now (may need tweaking) Damping Factor: 1.0/math.sqrt(2.0) Maximum Deviation: whatever you're using now Output Samples/Symbol: whatever you're using now Interpolating Resampler: Polyphase Filterbank, MF Filterbank Arms: whatever you're using now for Filter Size PFB MF Taps: whatever prototype filter taps you're using now Properly fixing the tag propagation in the PFB_clock_sync block is a major change, which is one reason I wrote the new Symbol Synchronizer blocks. FWIW, I also do think get_tags_in_range() could stand to perform a sanity check, but that won't fix the underlying problem. -Andy > From: > devin kelly > Subject: > [Discuss-gnuradio] PFB Clock Sync > stops producing samples > Date: > Thu, 8 Jun 2017 12:08:12 -0400 > > ______________________________________________________________________ > I'm having a problem with the Polyphase Clock Sync block. I believe > what's happening is that the block is calling get_tags_in_range > improperly and then causing an infiite loop in > gnuradio-runtime/lib/buffer.cc, at this point the PFB Clock Sync block > stops emitting samples. > > > The problem occurs in the PFB clock sync block here: > https://github.com/gnuradio/gnuradio/blob/master/gr-digital/lib/pfb_clock_sync_ccf_impl.cc#L473 > > > The PFB block calls get_tags_in_range where the start sample number is > greater than then end sample number, here's the code in buffer.cc that > may be getting stuck in an infiite loop. > > > The entire file is here: > https://github.com/gnuradio/gnuradio/blob/master/gnuradio-runtime/lib/buffer.cc#L354 [snip] > When I run into this problem, my code seems to get stuck on itr++ (see > debugger output below). Though I'm not sure if the itr++ call just > stalls or if itr just never equals itr_end. > > > When the PFB Clock Sync block stalls, I attach with GDB, find the PFB > thread and get a back trace, I then go to the PFB general_work frame > and print the two inputs to get_tags_in_range [snip] >I've also found (separately, using breakpoints) that sometimes count is >negative. Is that the way it should be? [snip] > I'm not sure if we're putting bad data into the PFB block or if > there's some bug in the PFB block. Or should there be some checking > in get_tags_in_range that checks if start > end. What's the best way > to proceed? > > > Thanks, > > Devin _______________________________________________ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org https://lists.gnu.org/mailman/listinfo/discuss-gnuradio