I have never found relevant enough information about a specific topic related with oversampling, so I'd would to ask you a question.
Let's imagine that we have some oversampling library, allowing to oversample from 2 times up to 32 times using a multi-stage approach. That means that the whole process is divided in multiple sub processes oversampling 2 times only with low pass half-band filters.
Now, I would like to choose the best options for every filter being used there. I can choose between two polyphase approaches, FIR (linear phase so a lot of latency) vs IIR (minimum/nonlinear phase). And whatever the approach, I can choose for every single stage the attenuation and the bandwidth of the half-band filters (both up and down filters).
So my question is the following. What are the best practices in your opinion, or related with your current uses, for the choice of attenuation + bandwidth in oversampling filters ?
My current thoughts :
- The main goal of multi-stage oversampling is to reduce CPU load thanks to half-band filters properties and associated polyphase implementation. Such an approach allows also to choose different filter constraints for each stage, so intuitively it makes sense to have "strong" filters in the first stage, and weaker filters after.
- Upsampling filter and downsampling filter don't have the same purpose : upsampling filter is there to remove the zero stuffing artefacts before the actual oversampled process, and downsampling filter purpose is to remove the useless information after Fs/4 to prevent aliasing.