Ogni quanto ti serve un nuovo campione?
Perche' se la banda utile e' fino a 15Hz stai campionando a 5kHz (un filtro analogico Anti Aliasing prima dell'ADC
ti serve in ogni caso. A questo punto converrebbe tagliare a 50Hz e campionare a 150Hz circa, e' inutile spremere l'ADC e salvare tanti campioni velocissimi se poi il segnale utile e' lento).
Per il resto in digitale la "difficolta'" di un filtro FIR dipende dal rapporto delle frequenze di taglio e la frequenza di campionamento. Quindi se devi per esempio tagliare 15Hz campionando a 30Hz e' un conto (tagli 0.5 banda), ma se devi tagliare a 15Hz campionando a 5kHz e' molto piu' difficile (fomdanemtalmente piu' taps e piu' latenza).
Per farti una idea prova a giocare con questo calcolatore:
https://fiiir.com/ e prendi un passabasso. Con frequenza di taglio 15Hz e banda di transizione 5Hz se campioni a 100Hz escono 96 taps, se campioni a 5kHz escono 461 campioni.
461 moltiplicazioni, shift, salvataggio dati ecc, arduino deve farlo ogni 200us. Ce la fa? Serve davvero?
Se campioni a 100Hz arduino dovra' fare solo un centinaio di moltipliche in 10ms e ci dovrebbe stare comodissimo.
Se non ti serve una caratteristica di fase lineare e se puoi usare aritmetica floating point converrebbe un filtro IIR invece che FIR. Pero' devi essere sicuro che il tuo processore abbia la FLU (floating point unit) altrimenti provare a fargli fare tante moltiplicazioni con la virgola diventa un bagno di sangue.
Un saluto e buona sperimentazione!