Algorithms can typically be characterized in several different dimensions such as:
- Sampling Rates: A primary driver of design complexity and cost, both in terms of resource requirements for compute, storage, and bandwidth.
- Data Types: A primary driver of design complexity and cost.
- Storage Requirements: Buffering of data, storage of intermediate results, look-up tables, etc.
- Compute Requirements: Multiply-accumulate per cycle.
- Nature of Processing: Style of data flow graph, regular with no branching or data dependent selection vs. data dependent, block vs. sample based, word vs. bit oriented, pipelined vs. feedback.
- Regularized DSP structures like filters and FFTs vs. specialized functions (Bessel function, Taylor series vs. LUT implementation).