There is a major problem with the way tags are propagated in blocks with non-integer relative rate. If the ratio is not a power of two, the numerical accuracy of the floating point will cause the output tags to diverge from the input tags. Consider the fractional resampler. It accumulates the timing offset in the range of 0 to 1. However tag propagation multiplies the ratio by the sample number. As the sample number grows the LSB accuracy of the ratio gets scaled by the ever larger value. For a ratio of 1.001 we saw divergence of 1000s of samples over a few minutes at 10msps. I rewrote tag propagation for the resampler but did not rework the generic logic. I think the key point is to use the delta between read and written items to take out the large integer difference and then apply the scaling to a local delta within the current window.
_______________________ Eugene Grayver, Ph.D. Aerospace Corp., Sr. Eng. Spec. Tel: 310.336.1274 ________________________
_______________________________________________ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org https://lists.gnu.org/mailman/listinfo/discuss-gnuradio