Не думаю, что при требовании к произвольности длины фильтра и
возможной несимметричности, другой написал бы много лучше. Главное,
чтобы работало предсказуемо, чтобы количество тактов для всех
вариантов было исчислимым и приемлемым. Но да, на тех же dsPIC, при
всей примитивности, возможностей ЦОС есть организация цикла и есть
MAC. Исходите из того, что если бы припёрло, и с циклом бы разобрались, и циркулярные буферы бы задействовали. Профессионализм - это не когда можешь использовать все встроенные функции процессора, а когда можешь решить задачу в срок и в бюджете.