Касательно CIC фильтров. Прореживание (decimation) это как раз обычно типовая область применения CIC-фильтров, которые в каких-то условиях имеют меньшую вычислительную сложность, чем другие подходы (вроде снижения частоты дискретизации более чем на порядок).
Спасибо за примечание. При случае погружусь ещё разок. Вдруг чего важного упускаю.
Касательно 32-бит.
Что касается 32-бит и ANSI C -- моё мнение таково, что если нет *существенных* причин, то связываться сегодня с не 32-битными и тем более с МК *не* *поддержанными* *gcc* (и g++). По-моему 8-битники (кроме совсем маленьких) -- уже вымерли и на них такие задачи не решаются, 16-битники кроме pic24, dspic и renesas разве что (но renesas -- не для dsp-related задач, для задач управления). Из 32-битников все армы или мипсы и там есть C++ и gcc.
Действительно, желание ТС использовать 8-бит для такой задачи необычно. Оправданием могут быть большие серии и оптимизация стоимости.
Лично я лишь относительно недавно "слез" с 8-ми битных всем советовал переходить на 16 бит. Вы просто достигли большей степени просветления. Фактором, который задерживает переход на 32-х битные контроллеры, я в первую очередь видел большее энергопотребление. Там, где для питания 8-ми или, позже, 16-битного контроллера было достаточно "фантомного" питания или прямого питания от батареи, 32-х битный уже требовал отдельного источника питания или стабилизатора, да и попросту "жрал больше". Сейчас же, с появлением контроллеров вроде EFM32™ Gecko и подобных, вопрос питания стал не таким острым. Поэтому причин задерживаться на 16-битах всё меньше.