discuss-gnuradio
[Top][All Lists]
Advanced

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

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


From: Johannes Demel
Subject: Re: [Discuss-gnuradio] Burst Shaper block partially delays burst
Date: Mon, 21 Jan 2019 09:13:35 +0000

Hi Julian,

thanks for your suggestion. I agree this is how I could work around my 
issue. Though, another goal of my project is to minimize latency. A 
'tx_time' tag that points to some 'distant' time in the future 
contradicts that goal. Apparently, I forgot to add that to the list of 
things I'm trying to achieve in my original mail.

Cheers
Johannes

Am 17.01.19 um 22:35 schrieb Julian Arnold:
> 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
>> address@hidden
>> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>>

reply via email to

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