When I attempt to open the flow graph on another system (v3.8.3.1-8-g4d06c91d (Python 3.6.9), Ubuntu 18.04), GNU Radio Companion crashes:
(gnuradio-companion:25756): Gdk-ERROR **: 08:42:56.288: The program 'gnuradio-companion' received an X Window System error.
This probably reflects a bug in the program.
The error was 'BadAlloc (insufficient resources for operation)'.
(Details: serial 79427 error_code 11 request_code 130 (MIT-SHM) minor_code 5)
(Note to programmers: normally, X errors are reported asynchronously;
that is, you will receive the error a while after causing it.
To debug your program, run it with the GDK_SYNCHRONIZE environment
variable to change this behavior. You can then get a meaningful
backtrace from your debugger if you break on the gdk_x_error() function.)
Trace/breakpoint trap (core dumped)
I traced it to a variable defined in the flow graph, rrc_taps, which is defined as:
firdes.root_raised_cosine(nfilts, nfilts, 1.0/float(sps), 0.35, 11*sps*nfilts)
Whenever the rrc_taps variable is updated in GRC, GRC will crash. When I run this in python3:
>>> from gnuradio.filter import firdes
>>> nfilts=32
>>> sps=4
>>> rrc_taps=firdes.root_raised_cosine(nfilts, nfilts, 1.0/float(sps), 0.35, 11*sps*nfilts)
>>> len(rrc_taps)
1409
It seems like a lot of taps. And I'm now wondering how the example relates to API Reference:
static std::vector< float > root_raised_cosine (double gain, double sampling_freq, double symbol_rate, double alpha, int ntaps)
If I replace the variable with something like:
firdes.root_raised_cosine(1.0, samp_rate, 1.0/float(sps), 0.35, nfilts)
GNU Radio Companion doesn't crash. The above returns a len(rrc_taps) of 33, and I didn't put a lot of thought into the parameters yet because I was focused on GRC not crashing.
I suppose I may have a workaround, but I would be interested if there's a known problem with the example root_raised_cosine() parameters, or if there may be something else I may be missing.
Regards,
Jeff
No comments:
Post a Comment