On the use of an algebraic language interface for waveform definition
We discuss implementation aspects of a software-defined radio system that allows the user to define waveforms using an algebraic language interface, currently as an extension to C++. Current software-defined radio systems provide waveform definitions through a combination of a graphical interface, markup language, interpreted script, and compiled code. Regardless of the methods used, the actual executed code generates each waveform via a series of graph-style connections: instantiating blocks and then explicitly connecting ports between blocks. We propose a system that allows the definition of waveforms using a novel text-based algebraic language interface similar to that found in MathWorks MATLAB or GNU Octave. Our system simplifies the waveform programming abstraction by using implicit graph-style connections; it makes extensive use of C++ templates and operator overloading to allow this high-level abstraction. Our interface is solely an abstraction layer providing an alternative means for coding waveforms in comparison to current techniques, and hence has no more overhead than current techniques. Example code is provided to compare and contrast various methods of waveform definition.
KeywordsSoftware defined radio Waveform definition language MATLAB Octave C++ Runtime optimization
- 2.Jones, D. (2012). Efficient FFT algorithm and programming tricks, Connexions Website. Accessed June 2012 http://cnx.org/content/m12021/1.6.
- 3.Frigo M., & Johnson, S. G. (2005). The design and implementation of FFTW3. Proceedings of the IEEE. Invited paper, Special Issue on Program Generation, Optimization, and Platform Adaptation, 93(2): 216–231.Google Scholar
- 4.Ramakrishnan, V., Witte, E. M., Kempf, T., Kammler, D., Ascheid, G., Leupers R., Meyr, H., Adrat, M., & Antweiler, M., (2009). Efficient and Portable SDR Waveform Development: the nucleus concept. Proceedings of the 28th IEEE Conference on Military Communications, (pp. 918–924), 2009.Google Scholar
- 5.Williams, L.J (ITT: Technical Director, JTRS Business Area). (2009). Software defined radios: Are they really that hard?, Presented at the IPFW Wireless Summer School, June 17, 2009.Google Scholar
- 6.GNU Radio Discussion Email List, Thread on why isn’t gnu radio used more. Accessed June 2012 https://lists.gnu.org/archive/html/discuss-gnuradio/2011-05/msg00173.html.
- 7.MathWorks MATLAB Website. Accessed June 2012 http://www.mathworks.com/products/matlab.
- 8.GNU Octave Website. Accessed June 2012 https://www.gnu.org/software/octave.
- 9.MathWorks Company Facts Sheet. Accessed June 2012 http://www.mathworks.com/company/factsheet.pdf.
- 10.Dickens, M. L., Laneman, J. N., & Dunn, B. P. (2011). Seamless dynamic runtime reconfiguration in a software defined radio. Proceedings of SDR’11 WInnComm Europe, Brussels, June 2011.Google Scholar
- 11.GNU Radio Website. Accessed June 2012 http://gnuradio.org/.
- 12.The Khronos Group, OpenCL Website. Accessed June 2012 http://www.khronos.org/opencl.
- 13.Dickens, M. L., & Laneman, J. N. (2011). On the use of an algebraic language for waveform definition. Proceedings of SDR’11 WInnComm, Washington, DC, November–December 2011.Google Scholar
- 14.Software Communications Architecture Website. Accessed June 2012 http://sca.jpeojtrs.mil.
- 15.GNU Radio Companion Website. Accessed June 2012 http://www.joshknows.com/grc.
- 16.MathWorks Simulink Website. Accessed June 2012 http://www.mathworks.com/products/simulink.
- 17.National Instruments Corporation, LabVIEW Website. Accessed June 2012 http://www.ni.com/labview.
- 19.Agilent VEE Website. Accessed June 2012 http://www.agilent.co/find/vee.
- 20.Mitov Software OpenWire Website. Accessed June 2012 http://www.mitov.com/products/openwire.
- 21.Schniter, P. (2012). Polyphase decimation filter, Connexions Website. Accessed June 2012 http://cnx.org/content/m10433/2.12.
- 22.Morrison, J. P. (2012) Flow-based programming, 2nd ed.: A new approach to application development, self-published: EAN-13 978-1451542325, 2010. Accessed June 2012 https://www.createspace.com/3439170.
- 23.Hsu, C. J., Corretjer, I., Ko, M. Y., Plishker, W., Bhattacharyya, S. S., (2007). Dataflow interchange format. Technical Report UMIACS-TR-2007-32, Institute for Advanced Computer Studies, University of Maryland at College Park, June 2007.Google Scholar
- 24.SystemC Website. Accessed June 2012 http://www.systemc.org.
- 26.NoFlo (Flow-based programming for Node.js) Website. Accessed June 2012 https://github.com/bergie/noflo.
- 27.Berka, A. V. (2012). Interlanguages and synchronic models of computation, Published 25 May 2010 on the Isynchronise Ltd. Website. Accessed June 2012 http://arxiv.org/pdf/1005.5183.
- 28.ParC Website. Accessed June 2012 http://parallel.cc.
- 29.Thies, W., Karczmarek, M., & Amarasinghe, S. (2002). StreamIt: A language for streaming applications. Proceedings of the International Conference on Compiler Construction, Grenoble, 2002.Google Scholar
- 30.Stroustrup, B. (2000). The C++ Programming Language: Special Edition, Addison-Wesley, ISBN 0201700735.Google Scholar
- 31.C++03 Wikipedia Entry. Accessed June 2012 http://en.wikipedia.org/wiki/C++03.
- 32.C++ Working Group Documents Website. Accessed June 2012 http://www.open-std.org/JTC1/SC22/WG21.
- 33.C++11 Wikipedia Entry. Accessed June 2012 http://en.wikipedia.org/wiki/C++11.
- 34.Dinesh, T. B., Haveraaen, M., & Heering, J. (2000). An algebraic programming style for numerical software and its optimization. Scientific Programming, 9(4), 247–259.Google Scholar
- 35.McCarthy, N. (2011). The VOLK is for the people: On-Chip, hand-coded optimization in an unaccommodating world. Presented at the 1st GNU Radio Conference, Philadelphia.Google Scholar
- 36.Apple Developer Website, Taking advantage of the accelerate framework. Accessed June 2012 https://developer.apple.com/performance/accelerateframework.html.