Multi-Stage FIlter Design
"Consider a narrow lowpass filter. Let where M is the maximum decimator for the narrow lowpass filter (any integer greater than M used as a decimator will cause signal aliasing in the passband region).
If we choose a factor D <= M with three factors, D1, D2, and D3 such that D = D1 * D2 * D3 , we can have a 3-stage filter design, with one filter for each stage. The specifications for each stage filter depend on the original narrow lowpass filter and the stage factors D1, D2, and D3.
Let L1, L2, and L3 be the filter lengths for each stage respectively, then the total computations per D samples can be formulated as 2*(L3 + L2 * D3 + L1 * D3 * D2) and the group delay is N = (L1 - 1) + D1 * (L2 - 1) + D1 * D2 * (L3 - 1)
However, if the last stage factor is D3 = 2, and since there is no gain in computational efficiency for the model 2, then model 1 is used for this stage. In this case, the group delay is N = (L1 - 1) + D1 * (L2 - 1) + D1 * D2 * (L3 - 1)/2
For most optimal designs, the last stage factor is 2. If L3 is an odd number, N is always an integer. If there is half a sample delay (N is not an integer), problems will occur for wide lowpass and highpass filters where an integer group delay is required. This system will adjust the filter length in order to avoid the half-sample delay in these two filters.
The choice of decimator D and number of stages and factors for each stage is not a single-objective optimization problem. This system will give a set of 'best decimators' for the user to select.
In conclusion, it is possible to design very efficient FIR filters using multirate design methods. The only real disadvantage is the complexity of the implementation and design unless an automated design program is available for use. These filters inherently have long delays and are not suitable for applications where such long delays are inappropriate. However, the computational gain using this approach can be significant compared to standard FIR filter design methods."