Forum: GNU Radio UHD Underrun with Wav File Source and USRP Sink

Posted by Tom Hendrick (Guest)
on 2012-11-11 22:22
(Received via mailing list)
Hello all,

I am using a USRP1 and an LFTX daughtercard and Ubuntu 12.04.

I am having an issue with a simple GRC script I made which has three 
blocks.
A WAV file source connects to a resampler block and then to the UHD USRP 
sink.

When I run the script I get a single underun right at the start of 
running the script and no other underrun.
When I run the script using the sudo in front of it, I get two underruns 
right at the start of running the script and no other underrun.
I monitored the signal out of the LFTX using an oscilloscope and noticed 
some blips/noise when the script is run and I believe they correspond to 
the underruns. I tried this with and without real-time scheduling 
enabled and didn't see any difference.


I tried the same exact type of script with an older version of GRC on a 
different laptop with Ubuntu 10.04. This uses the USRP sink block not 
the UHD sink block. This script plays the file perfectly without any 
underruns at all and I don't see the blips/noise at the beginning of the 
signal.

I am using the LFTX for an audio application and the blips/noise will 
cause a problem for me. Does anyone know why I am seeing this behavior 
with the newer UHD block? Is there anything I can do to eliminate it?

Many thanks, -Tom
Posted by Josh Blum (Guest)
on 2012-11-12 22:04
(Received via mailing list)
On 11/11/2012 01:21 PM, Tom Hendrick wrote:
> the sudo in front of it, I get two underruns right at the start of
> any underruns at all and I don't see the blips/noise at the beginning
> of the signal.
>
> I am using the LFTX for an audio application and the blips/noise will
> cause a problem for me.  Does anyone know why I am seeing this
> behavior with the newer UHD block?  Is there anything I can do to
> eliminate it?
>

Hi Tom,

If I am understanding correctly, you are getting some initial underflows
when the flow graph begins processing. This is causing some
discontinuous stream interruption over on the receiver side.

If thats the case, I dont know of anything specifically to cause this,
so it might just be the issue of interrupt coalescing. That is the host
isnt initially ramped up to push out USB packets at full speed. So,
driver wise, there may have been a subtle difference thats brining this
out, USB 1.0 vs .1 for example.

I'd like to replicate it over on end. But if I have a quick suggestion,
it may be helpful to zero-pad the beginning of the wavefile so those
initial discontinuities are only lost in the padding.

-josh
Posted by Tom Hendrick (Guest)
on 2012-11-12 23:11
(Received via mailing list)
Hello Josh,

Thanks for the suggestion. Yes I had zero padded the file with about 1 
second of zero signal prior to the signal I want to transmit. I had 
still
seen the blip/noise when running the script even when there was 1 second 
of zero padded signal. Is there anything else I should try?

Thanks, -Tom


________________________________
 From: Josh Blum <josh@ettus.com>
To: discuss-gnuradio@gnu.org
Sent: Monday, November 12, 2012 1:03 PM
Subject: Re: [Discuss-gnuradio] UHD Underrun with Wav File Source and 
USRP Sink



On 11/11/2012 01:21 PM, Tom Hendrick wrote:
> the sudo in front of it, I get two underruns right at the start of
> any underruns at all and I don't see the blips/noise at the beginning
> of the signal.
>
> I am using the LFTX for an audio application and the blips/noise will
> cause a problem for me. Does anyone know why I am seeing this
> behavior with the newer UHD block? Is there anything I can do to
> eliminate it?
>

Hi Tom,

If I am understanding correctly, you are getting some initial underflows
when the flow graph begins processing. This is causing some
discontinuous stream interruption over on the receiver side.

If thats the case, I dont know of anything specifically to cause this,
so it might just be the issue of interrupt coalescing. That is the host
isnt initially ramped up to push out USB packets at full speed. So,
driver wise, there may have been a subtle difference thats brining this
out, USB 1.0 vs .1 for example.

I'd like to replicate it over on end. But if I have a quick suggestion,
it may be helpful to zero-pad the beginning of the wavefile so those
initial discontinuities are only lost in the padding.

-josh
Posted by Josh Blum (Guest)
on 2012-11-14 06:51
(Received via mailing list)
On 11/12/2012 02:10 PM, Tom Hendrick wrote:
>
>
> Hello Josh,
>
> Thanks for the suggestion.  Yes I had zero padded the file with about 1 second 
of zero signal prior to the signal I want to transmit.  I had still
> seen the blip/noise when running the script even when there was 1 second of zero 
padded signal.  Is there anything else I should try?
>

Well, then perhaps it not the result of an underflow.

What is your transmit amplitude? In the old libusrp1 floats were
+/-2**15, but now they are +/-1.0 fullscale. So you must have had to
adjust the amplitude of the baseband samples; but are they scaled small
enough to avoid truncation?

-josh
Posted by Tom Hendrick (Guest)
on 2012-11-14 17:23
(Received via mailing list)
Hello Josh,

The wav file has float values in the -1 to 1 range. In the old GRC 
script I had used a constant multiplier of (2**15-1) to get the correct 
amplitude.
In the newer GRC script I took that out since it was already in the 
correct range.

When I check the output of the LFTX with an oscilloscope, they both look 
identical except that I see the blip/noise (which I think is from 
underrun) show up right at the start of the transmission. I have added 
zero padding to the signal. This is for an audio recording project and 
the blip/noise causes problems on the receive side because I am 
listening continuously for the incoming signal and the blip causes 
unwanted effects.

Any other suggestions?
Thanks so much for your responses, - Tom



________________________________
 From: Josh Blum <josh@ettus.com>
To: discuss-gnuradio@gnu.org
Sent: Tuesday, November 13, 2012 9:50 PM
Subject: Re: [Discuss-gnuradio] UHD Underrun with Wav File Source and 
USRP Sink



On 11/12/2012 02:10 PM, Tom Hendrick wrote:
>
>
> Hello Josh,
>
> Thanks for the suggestion. Yes I had zero padded the file with about 1 second of 
zero signal prior to the signal I want to transmit. I had still
> seen the blip/noise when running the script even when there was 1 second of zero 
padded signal. Is there anything else I should try?
>

Well, then perhaps it not the result of an underflow.

What is your transmit amplitude? In the old libusrp1 floats were
+/-2**15, but now they are +/-1.0 fullscale. So you must have had to
adjust the amplitude of the baseband samples; but are they scaled small
enough to avoid truncation?

-josh
Posted by Tom Hendrick (Guest)
on 2012-11-14 17:53
(Received via mailing list)
As an additional check, I reduced the signal amplitude further in the 
WAV file to make sure there is no truncation. I still see the same two 
underruns at the start of running the script.
Thanks, - Tom




________________________________
 From: Tom Hendrick <sdtom182@yahoo.com>
To: "discuss-gnuradio@gnu.org" <discuss-gnuradio@gnu.org>
Sent: Wednesday, November 14, 2012 8:22 AM
Subject: Re: [Discuss-gnuradio] UHD Underrun with Wav File Source and 
USRP Sink


Hello Josh,

The wav file has float values in the -1 to 1 range. In the old GRC 
script I had used a constant multiplier of (2**15-1) to get the correct 
amplitude.
In the newer GRC script I took that out since it was already in the 
correct range.

When I check the output of the LFTX with an oscilloscope, they both look 
identical except that I see the blip/noise (which I think is from 
underrun) show up right at the start of the transmission. I have added 
zero padding to the signal. This is for an audio recording project and 
the blip/noise causes problems on the receive side because I am 
listening continuously for the incoming signal and the blip causes 
unwanted effects.

Any other suggestions?
Thanks so much for your responses, - Tom



________________________________
 From: Josh Blum <josh@ettus.com>
To: discuss-gnuradio@gnu.org
Sent: Tuesday, November 13, 2012 9:50 PM
Subject: Re: [Discuss-gnuradio] UHD Underrun with Wav File Source and 
USRP Sink



On 11/12/2012 02:10 PM, Tom Hendrick wrote:
>
>
> Hello Josh,
>
> Thanks for the suggestion. Yes I had zero padded the file with about 1 second of 
zero signal prior to the signal I want to transmit. I had still
> seen the blip/noise when running the script even when there was 1 second of zero 
padded signal. Is there anything else I should try?
>

Well, then perhaps it not the result of an underflow.

What is your transmit amplitude? In the old libusrp1 floats were
+/-2**15, but now they are +/-1.0 fullscale. So you must have had to
adjust the amplitude of the baseband samples; but are they scaled small
enough to avoid truncation?

-josh

>
>> running the script and no other underrun. When I run the script using
>> the sudo in front of it, I get two underruns right at the start of
>> running the script and no other underrun. I monitored the
 signal out
>> of the signal.
>>
>> I am using the LFTX for an audio application and the blips/noise will
>> cause a problem for me. Does anyone know why I am seeing this
>> behavior with the newer UHD block? Is there anything I can do to
>> eliminate
 it?
> isnt initially ramped up to push out USB packets at full speed. So,
>
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
>

_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
Posted by Tom Hendrick (Guest)
on 2012-11-17 01:16
(Received via mailing list)
Does anyone have some ideas on what else I can try right now? I'm out of 
ideas on what is causing the underruns at the start of running the 
script that reads the WAV file and outputs to the USRP LFTX.

Thank you, -Tom



________________________________
 From: Tom Hendrick <sdtom182@yahoo.com>
To: Tom Hendrick <sdtom182@yahoo.com>; "discuss-gnuradio@gnu.org" 
<discuss-gnuradio@gnu.org>
Sent: Wednesday, November 14, 2012 8:52 AM
Subject: Re: [Discuss-gnuradio] UHD Underrun with Wav File Source and 
USRP Sink


As an additional check, I reduced the signal amplitude further in the 
WAV file to make sure there is no truncation. I still see the same two 
underruns at the start of running the script.
Thanks, - Tom




________________________________
 From: Tom Hendrick <sdtom182@yahoo.com>
To: "discuss-gnuradio@gnu.org" <discuss-gnuradio@gnu.org>
Sent: Wednesday, November 14, 2012 8:22 AM
Subject: Re: [Discuss-gnuradio] UHD Underrun with Wav File Source and 
USRP Sink


Hello Josh,

The wav file has float values in the -1 to 1 range. In the old GRC 
script I had used a constant multiplier of (2**15-1) to get the correct 
amplitude.
In the newer GRC script I took that out since it was already in the 
correct range.

When I check the output of the LFTX with an oscilloscope, they both look 
identical except that I see the blip/noise (which I think is from 
underrun) show up right at the start of the transmission. I have added 
zero padding to the signal. This is for an audio recording project and 
the blip/noise causes problems on the receive side because I am 
listening continuously for the incoming signal and the blip causes 
unwanted effects.

Any other suggestions?
Thanks so much for your responses, - Tom



________________________________
 From: Josh Blum <josh@ettus.com>
To: discuss-gnuradio@gnu.org
Sent: Tuesday, November 13, 2012 9:50 PM
Subject: Re: [Discuss-gnuradio] UHD Underrun with Wav File Source and 
USRP Sink



On 11/12/2012 02:10 PM, Tom Hendrick wrote:
>
>
> Hello Josh,
>
> Thanks for the suggestion. Yes I had zero padded the file with about 1 second of 
zero signal prior to the signal I want to transmit. I had still
> seen the blip/noise when running the script even when there was 1 second of zero 
padded signal. Is there anything else I should try?
>

Well, then perhaps it not the result of an underflow.

What is your transmit amplitude? In the old libusrp1 floats were
+/-2**15, but now they are +/-1.0 fullscale. So you must have had to
adjust the amplitude of the baseband samples; but are they scaled small
enough to avoid truncation?

-josh

>
>> running the script and no other underrun. When I run the script using
>> the sudo in front of it, I get two
 underruns right at the start of
>> running the script and no other underrun. I monitored the
 signal out
>> of the signal.
>>
>> I am using the LFTX for an audio application and the blips/noise will
>> cause a problem for me. Does anyone know why I am seeing this
>> behavior with the newer UHD block? Is there anything I can do to
>> eliminate
 it?
> isnt initially ramped up to push out USB packets at full speed. So,
>
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
>

_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
Posted by Marcus D. Leech (Guest)
on 2012-11-17 01:27
(Received via mailing list)
On 16/11/12 07:15 PM, Tom Hendrick wrote:
> Does anyone have some ideas on what else I can try right now?  I'm out
> of ideas on what is causing the underruns at the start of running the
> script that reads the WAV file and outputs to the USRP LFTX.
>
> Thank you, -Tom
>
Most systems like this have startup glitches.  The analog hardware is
one source, and in your case, it's the
  kernels buffer management getting "ramped up".  Back in the 1980s, we
had to deal with this a lot on
  low-speed packet-radio systems layered on top of ordinary analog FM
radios.  There was no way to make
  the radios not glitch on startup, so we simply devised mechanisms to
deal with it.


My suggestion is to setup up a *continuous* transmitter graph, and
gate-in "real" samples when you need them.

Also, I'd gently suggest that a receiver chain that can't handle the odd
glitch isn't much of a receiver chain, in
 the signal-processing sense.  Radio is analog. It's subject to
distortions, glitches, pops, wheezes, snorts and
 shudders that are utterly outside of your control.  Your receiver has
to be able to deal with them, regardless
 of whether the source is "natural", or a quirk of the buffer-startup
behaviour.
Please log in before posting. Registration is free and takes only a minute.
Existing account (Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
No account? Register here.