A finite impulse response (FIR) filter is a filter whose impulse response is of finite duration:
Following is an example of 32 taps filter.
Each output takes 32 multiplications. If we take
cint16 as the data type and coefficient type, it takes
4 cycles to compute a sample in a kernel, since each AI Engine can perform 8 MAC
operations a cycle. If data is streaming from one stream port (32 bits), one data
can produce one output (in the middle of processing).
So, the design is compute bound. We'll see how to split the kernel into 4 cascaded kernels to process one sample per cycle.