Sorry if my question is some FIRFiltering basics, but I couldn't find a specific answer after some search.
I am trying to design a decimating low pass filter in C (actually in OpenCL with GPU) with the FIR approach by doing convolution. I have a software that generates the coefficients based on the cut-off frequency and the sampling frequency.
I realized that my filter generally works if the cut-off frequency is not too far away from sampling frequency, for example fsample = 1e7 and fcutoff = 1e4 would work. (maybe the attenuation is not enough). But if I increase the fsample to 1e8, the attenuation will be negligible.
Reading from this link: How many taps does an FIR filter need? I understand that I will need a number of tap of order 1e5 or 1e6 to have sufficient attenuation (~10 - 20 dB) for my application.
So my question is, in general, how should I design my filter to meet my requirement, if I really have to cut-off something massively oversampled? If not FIR, could you point me any other better approach, for example, can IIR work better?
Maybe I can follow the approach of multi-stage decimating FIR filter in this page? Great if you provide me with some references regarding how the stages should be determined. FIR-Decimation and Low-pass filter (taps vs number of input points vs number of decimation stages)