Digital Signal Processing Templates in C++

* Digital Filter Demo page with downloads

Why use C++ Templates?

Since most DSP algorithms are not based on specific data types it makes sense to represent them using code that is not type specific for several reasons. Both C++ and untyped languages allow this to some degree. Algorithms can be written in python without specifying data types. However, since typically simulations and/or analysis must be done, simulation speed becomes an issue. C++ does not have the performance issues of interpreted languages. Also since the resulting DSP code is often used in the design of ASICs, FPGAs or DSP processors, it is typical to have a C/C++ representation of the algorithm. The beauty of C++ templates is that the same code can be used during the whole design process. For algorithmic tradeoffs, double/floating point numbers can be used, while for targetting hardware or software implementations, fixed-point or integer types can be used for bit-width reduction and/or analysis.

Python and C++ Templates?

Using up-to-date tools written in both C++ and python, such as the Boost python library, pyste and py++, as well as gccxml, it's possible to generated python bindings for most if not all of the C++ template library. Using the power of python and packages such as pythoncard, matplotlib, scipy, etc, one can quickly and easily do many of the same functions as is typically done in matlab or octave. However, by first writing the code in C++ there is no need to have multiple respresentations of the design as there is no need for anything other than test and support functions to be written in python which is inherently better suited for this purpose over C++.

This Library provides both C++ template code and the pyspuc python package and includes

Email: <info AT SPAMFREE dsptemplates DOT com>


CategoryHomepage

MyStartingPage (last edited 2007-03-01 05:19:49 by tony_kirke)