All:
I'm developing a comm system involving three SDRs: transmit, channel
effects, and receiver.
The channel SDR is controlled by a flowgraph that has various options
for the channel: AWGN (h(\tau) = \delta(\tau)), LTI, and a couple time-
variant frequency-selective channel models.
I need to run the full three-SDR system over long periods of time to get
stable average values for system-performance parameters.
My problem is that the channel flowgraph reports underflows on the order
of every hundred seconds or so (sometimes much less). I've tracked down
these rare underflows in the channel to transient problems in the
receiver flowgraph.
So I put together a minimum flowgraph that shows the problem, which is
attached. When I run it, I get output like this:
[INFO] [UHD] linux; GNU C++ version 11.2.0; Boost_107400; UHD_4.1.0.5-3
[INFO] [X300] X300 initialization sequence...
[INFO] [X300] Maximum frame size: 8000 bytes.
[INFO] [X300] Radio 1x clock: 200 MHz
usrp_source :info: set_min_output_buffer on block 1 to 2097152
usrp_sink :info: set_min_output_buffer on block 2 to 2097152
mmse_resampler_cc :info: set_min_output_buffer on block 4 to 2097152
fir_filter_blk<IN_T,OUT_T,TAP_T> :info: set_min_output_buffer on
block 5 to 2097152
multiply_cc :info: set_min_output_buffer on block 9 to 2097152
sig_source :info: set_min_output_buffer on block 8 to 2097152
add_cc :info: set_min_output_buffer on block 6 to 2097152
fastnoise_source :info: set_min_output_buffer on block 7 to 2097152
*Uusrp_sink :error: In the last 579300 ms, 1 underflows occurred.
Uusrp_sink :error: In the last 256008 ms, 1 underflows occurred.
usrp_sink :error: In the last 84992 ms, 1 underflows occurred.
UUusrp_sink :error: In the last 128008 ms, 1 underflows occurred.*
The PSD of the filtered input signal appears correctly on a spectrum
analyzer.
System Information:
24-core Intel i9 system
Ubuntu 22.04.5 LTS, kernel 5.19.0-46-generic #47~22.04.1-Ubuntu
gnuradio 3.10.1.1
UHD 4.1.0.5-3
I've taken some pains to optimize the OS settings for gnuradio/UHD along
the lines suggested by the online tips at
https://kb.ettus.com/USRP_Host_Performance_Tuning_Tips_and_Tricks
I've also tinkered with the minoutbuf parameter in the various blocks.
Any advice?
Thanks,
Chad
cyclostationary.blog
cmspooner@nwra.com
--
Chad M. Spooner, PhD
NorthWest Research Associates
149 Bonifacio Place, Suite 200
Monterey, CA 93940
cmspooner@nwra.com
831 521 6743
NWRA Scientist/Engineer, VP, BoD
cyclostationary.blog