[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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

From: Julian Arnold
Subject: Re: [Discuss-gnuradio] Burst Shaper block partially delays burst
Date: Thu, 17 Jan 2019 22:35:05 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.2.1


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].


[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.

Discuss-gnuradio mailing list

reply via email to

[Prev in Thread] Current Thread [Next in Thread]