> From: > devin kelly > Subject: > Re: [Discuss-gnuradio] PFB Clock > Sync stops producing samples > Date: > Thu, 8 Jun 2017 15:41:38 -0400 > > ______________________________________________________________________ > OK, I'll give that block a try. Are you saying there's a bug in the > PFB Clock Sync block?
Yes. I'm also saying that since there are two fundamental bugs (incorrect tag propagation, and conflation of symbol clock phase with resampling interpolator sample phase) which both take a lot of work to fix and should be fixed together, that it's not worth anyone's time to fix the PFB clock sync blocks (complex IO and float IO). The M&M clock sync blocks (complex IO and float IO) and the MSK timing recovery block (complex IO) also have those same two bugs. Properly fixing those bugs for just the PFB clock sync blocks, results in the PFB clock sync blocks evolving into a partial implementation of the Symbol Synchronizer blocks, and still leaves the other 3 blocks broken. Properly fixing those bugs for all 5 of the in-tree synchronizer blocks, in one place, results in most of the implementation of the Symbol Synchronizer blocks. There is no point in fixing the existing blocks. > That was my suspicion but I'm not sure I understand what the block is > doing well enough to know with certainty. For a quick overview of symbol recovery, see this MatLab documentation: https://www.mathworks.com/help/comm/ref/comm.symbolsynchronizer-class.html#bumtxky-18 For the PFB clock sync block algorithms specifically, see figure 10 of: Fredric J. Harris, Michael Rice, "Multirate Digital Filters for Symbol Timing Synchronization in Software Defined Radios", _IEEE_Journal_on_Selected_Areas_in_Communications_, Vol. 19, No. 12, December 2001, pp. 2346 - 2357 https://pdfs.semanticscholar.org/3077/d85fc72d89c72c4c6d11f1014c5175e319c3.pdf (The gist is to combine the receive pulse matched filter with the resampling interpolator filter to save filtering operations. The resampling interpolator filter is implemented with a PFB and a derivative PFB, since the (approximate) maximum likelyhood timing error detector needs the derivative of the signal too.) Also see this for an additional explanation written by Tom Rondeau: https://wiki.gnuradio.org/index.php/Guided_Tutorial_PSK_Demodulation#7.6.1._Details_of_the_PFB_Clock_Recovery_Block For the Symbol Synchronizer blocks, see this napkin diagram: https://github.com/gnuradio/gnuradio/files/950045/Symbol_Synchronizer_block_diagram.pdf and this comment: https://github.com/gnuradio/gnuradio/pull/1294#issuecomment-296628308 For the symbol clock phase tracking loop transfer function and gain computation, see this document: https://github.com/awalls-cx18/gr-nwr/blob/master/docs/clock_loop.pdf And now you can be certain that if I don't want to fix the existing PFB clock sync blocks, neither do you. :) -Andy _______________________________________________ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org https://lists.gnu.org/mailman/listinfo/discuss-gnuradio