electro-smith / DaisySP

A Powerful DSP Library in C++
https://www.electro-smith.com/daisy
Other
839 stars 132 forks source link

Added FIR filter module #147

Closed AXP closed 3 years ago

AXP commented 3 years ago

This is a simple FIR filter module.

Two implementations are provided, one is generic and portable, another is based on ARM CMSIS DSP implementation. Both are wrapped in equivalent API's and care is taken for the wrapping to be maximally efficient. ARM-specific version is exposed only on compatible platforms and can be optionally disabled. The best implementation is aliased as FIR class to simplify instantiation.

Supports both static internal and user-provided memory allocation.

The module is accompanied by usage example (DaisyExamples/seed/fir) and unit test/benchmark (DaisySP/tests/fir) The latter may be executed on DaisyPod (default), DaisySeed (simple variable change) via Makefile, with or without ARM CMSIS DSP support (configured inside the Makefile) but also via VisualStudio project, both with VisualGDB on same DaisyPod/DaisySeed targets or directly on a PC (x64 target). In the PC case, ARM-optimized version is of course disabled and the result verification is only carried out between static and user memory allocation models.