Analog Integrated Circuits and Signal Processing

, Volume 73, Issue 2, pp 613–625 | Cite as

On the use of an algebraic language interface for waveform definition

Article
  • 122 Downloads

Abstract

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.

Keywords

Software defined radio Waveform definition language MATLAB Octave C++ Runtime optimization 

References

  1. 1.
    Zimmermann, H. (1980). OSI reference model—The ISO model of architecture for open systems interconnection. IEEE Transactions on Communications, 28(4), 425–432.CrossRefGoogle Scholar
  2. 2.
    Jones, D. (2012). Efficient FFT algorithm and programming tricks, Connexions Website. Accessed June 2012 http://cnx.org/content/m12021/1.6.
  3. 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. 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. 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. 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. 7.
    MathWorks MATLAB Website. Accessed June 2012 http://www.mathworks.com/products/matlab.
  8. 8.
    GNU Octave Website. Accessed June 2012 https://www.gnu.org/software/octave.
  9. 9.
    MathWorks Company Facts Sheet. Accessed June 2012 http://www.mathworks.com/company/factsheet.pdf.
  10. 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. 11.
    GNU Radio Website. Accessed June 2012 http://gnuradio.org/.
  12. 12.
    The Khronos Group, OpenCL Website. Accessed June 2012 http://www.khronos.org/opencl.
  13. 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. 14.
    Software Communications Architecture Website. Accessed June 2012 http://sca.jpeojtrs.mil.
  15. 15.
    GNU Radio Companion Website. Accessed June 2012 http://www.joshknows.com/grc.
  16. 16.
    MathWorks Simulink Website. Accessed June 2012 http://www.mathworks.com/products/simulink.
  17. 17.
    National Instruments Corporation, LabVIEW Website. Accessed June 2012 http://www.ni.com/labview.
  18. 18.
    Eker, J., Janneck, J. W., Lee, E. A., Liu, J., Liu, X., Ludvig, J., et al. (2003). Taming heterogeneity—the ptolemy approach. Proceedings of the IEEE, 91(1), 127–144.CrossRefGoogle Scholar
  19. 19.
    Agilent VEE Website. Accessed June 2012 http://www.agilent.co/find/vee.
  20. 20.
    Mitov Software OpenWire Website. Accessed June 2012 http://www.mitov.com/products/openwire.
  21. 21.
    Schniter, P. (2012). Polyphase decimation filter, Connexions Website. Accessed June 2012 http://cnx.org/content/m10433/2.12.
  22. 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. 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. 24.
    SystemC Website. Accessed June 2012 http://www.systemc.org.
  25. 25.
    Grimm, C. (Ed.). (2004). Languages for system specification. Boston: Kluwer Academic Publishers.MATHGoogle Scholar
  26. 26.
    NoFlo (Flow-based programming for Node.js) Website. Accessed June 2012 https://github.com/bergie/noflo.
  27. 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. 28.
    ParC Website. Accessed June 2012 http://parallel.cc.
  29. 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. 30.
    Stroustrup, B. (2000). The C++ Programming Language: Special Edition, Addison-Wesley, ISBN 0201700735.Google Scholar
  31. 31.
    C++03 Wikipedia Entry. Accessed June 2012 http://en.wikipedia.org/wiki/C++03.
  32. 32.
    C++ Working Group Documents Website. Accessed June 2012 http://www.open-std.org/JTC1/SC22/WG21.
  33. 33.
    C++11 Wikipedia Entry. Accessed June 2012 http://en.wikipedia.org/wiki/C++11.
  34. 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. 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. 36.
    Apple Developer Website, Taking advantage of the accelerate framework. Accessed June 2012 https://developer.apple.com/performance/accelerateframework.html.

Copyright information

© Springer Science+Business Media, LLC 2012

Authors and Affiliations

  1. 1.University of Notre DameNotre DameUSA

Personalised recommendations