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

Reply via email to