This directory contains the Finite Impulse Response (FIR) EQ component.
FIR equalizers implement linear-phase (or minimal-phase) audio frequency shaping over a specified set of taps.
graph LR
In[Input Frame] --> FIR[FIR Filter Engine]
Coeffs[(Filter Coefficients)] --> FIR
FIR --> Out[Output Frame]
- Kconfig: Enables the FIR component (
COMP_FIR), which automatically importsMATH_FIRandCOMP_BLOB. Relies on compiler capabilities to leverage DSP MAC instructions for optimal performance. - CMakeLists.txt: Integrates generic and architecture-specific (
eq_fir_hifi2ep.c,eq_fir_hifi3.c) files into the build, picking the correct IPC wrapper (ipc3oripc4), and supportsllext. - eq_fir.toml: Topology parameters for the EQFIR module, defining UUIDs, memory parameters (like 4096 bytes limits) and pin layouts.
- Topology (.conf): Constrained by
tools/topology/topology2/include/components/eqfir.conf, assigning it widget typeeffectand UUIDe7:0c:a9:43:a5:f3:df:41:ac:06:ba:98:65:1a:e6:a3. - MATLAB Tuning (
tune/):sof_example_fir_eq.mutilizes the Parks-McClellan (or related) algorithms to model loudness or mid-boost curves, iterating length variables to determine optimal FIR phase behaviors. It outputs quantized binary arrays containing the calculated taps necessary for topology population.