Hi all -
I’m getting limited by the slow ARM processor in the E100 and I want to
modify parts of gr-digital and gnuradio-core to support complex
short/INT16 types in the modulation schemes. I suspect that it won’t be
as trivial as defining “typedef std::complex gr_complexs;” in
gnuradio-core/src/lib/runtime/gr_complex.h and doing a find-and-replace
in the relevant source files. There are probably issues with dynamic
range that I’ll have to deal with in addition to having to implement
filters using fixed-point math.
Questions:
-
Do you think I'd save anything by doing all the modulation &
filtering in complex float32 and then converting at the very end? This
will reduce the bandwidth requirement to the FPGA by two, but I’m afraid
the float math is the true limitation.
-
Why is there a gr_complex_to_interleaved_short block but not a
gr_complex_to_complex_short block? Would it be better if I rolled my own
or just hooked up a gr_complex_to_interleaved_short block and then a
deinterleave block? Or alternatively, split the complex float vector
into two streams and feed them to a USRP sink block using COMPLEX.INT16?
-
What specific parts of the modulation examples or gnuradio-core
do you think I need to change to support complex short ints?
Thanks so much for your help.
Sean