Thursday, January 17, 2019

Re: [Discuss-gnuradio] Burst Shaper block partially delays burst

Johannes,

I don't know if this helps but I think I was facing the same issue quite
a while ago.

If I remember correctly, I was able to work around the issue by setting
a tx_time time tag on each burst which was pointing far enough into the
future to use the USRP as a "buffer" until all samples had left the
Burst Shaper (hope this makes sense).

Not very elegant but I think it worked quite well at the end.

You can find the block I used to calculate and set the tx_time tags in
flow graph [1].

Cheers,
Julian

[1] https://github.com/RWTH-iNets/gr-inets/blob/master/grc/inets_tx_phy.grc

On 17.01.19 12:39, Johannes Demel wrote:
> Hi community,
>
> I do have an issue with the 'Burst Shaper' block and I'm uncertain how
> to tackle this problem. In this particular case I'm stuck with 3.7 for
> now, but as fas as I can tell, the actual implementation did not change
> with respect to 3.8.
>
> So, here is the problem:
> I have a flowgraph like this
>
> Source -> MyModulator -> Burst Shaper -> UHD Sink
> -> Qt Time Sink
>
> Source emits a packet at certain intervals, say every 1ms.
> MyModulator transforms those bits into a burst with complex samples.
> 'Burst Shaper' is supposed to prepad some zeros and postpad some zeros.
> UHD Sink expects a tagged burst with a packet length to transmit.
>
> What happens? I get lots of underruns ('U') because Burst Shaper waits
> somewhere in the order of milliseconds to write the last portion of the
> burst to its output buffer. The actual burst consists of ~1k samples
> @12.5MSps. Less than 100us duration.
>
> Burst Shaper is required to pre and post pad zeros.
> Prepad to 'reinitialize' a USRP. Otherwise the preamble is distorted
> which ultimately screws my receiver algorithms.
> Postpad is required to flush USRP FIFOs. Otherwise you'd see the end of
> a previous burst at the beginning of the next burst.
>
> In my Qt Time Sink, I can see that all bursts are tagged correctly. The
> packet length tags are at the correct position.
>
> The problem is really, that 'Burst Shaper' does not write the last part
> of the burst until some later time. This makes the USRP sink miss some
> samples in every burst and print one 'U' per burst. Also, this results
> in this last part of the burst to be transmitted just before the next
> burst. This does corrupt my bursts and does cause more artifacts like
> cut off bursts which pollute the spectrum.
>
> How would you proceed? Convert 'Burst Shaper' to a tagged stream block?
> I tried to use 'Packet Pad2' from 'gr-foo'. Though, this would still
> occasionally result in 'U's printed. Also, I can still see that my
> bursts are occasionally transmitted late.
>
> I'd really like to fix 'Burst Shaper'. Though, I don't know how I should
> proceed yet.
>
> Cheers
> Johannes
> _______________________________________________
> 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

No comments:

Post a Comment