Algorithms typically have 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, and so on.
- Compute Requirements: Multiply-accumulate per cycle.
- Nature of Processing: Data flow graph styles include regular (no branching) or data-dependent selection vs. data dependent, block-based vs. sample-based, word vs. bit-oriented, and pipelined vs. feedback.
- Regularized DSP structures like filters and FFTs vs. specialized functions (Bessel function, Taylor series vs. LUT implementation).