I am digitally filtering a signal that is streaming live. The goal is to reduce the filter delay as much as possible while maintaining the quality of some measurements based on the filtered signal. For legacy reasons, the system was built with a low-pass and high-pass FIR filter in series - each filter has the same number of taps (kernel size), $n$.

I realized though, we are no longer constrained to these and could implement a single FIR band-pass filter. If I can reduce number of filter taps involved from $2n$ that will reduce the delay. My question is: is it possible to design this band-pass filter with fewer taps (a smaller kernel) than the combined taps (kernels) of the LPF/HPFs while achieving the same performance?

My initial thought is FIR filtering is a convolution operation, and thus linear + associative. That means you can construct the band pass kernel by convolving the LPF + HPF kernels. I'm unsure how to interpret this in terms of taps/kernel size because the convolution in some sense assumes an infinite kernel.


  • $\begingroup$ Do you need linear phase (i.e., no phase distortions, just delay)? Otherwise you could use an IIR filter with much less average delay than an equivalent FIR filter. But, unlike an FIR filter, an IIR filter can't have exactly linear phase. $\endgroup$ – Matt L. Jan 16 '19 at 21:10
  • $\begingroup$ Great point @Matt L., I do need linear phase or I would switch to IIR $\endgroup$ – RedPanda Jan 16 '19 at 21:48

Assuming that your legacy FIR linear phase filters were designed using windowing method, then yes, you can combine those two FIR linear phase filters into a single FIR linear phase filter and it will be shorter than the the serial cascade.

However, you won't be convolving the individual impulse responses to get it. Rather, you should use a multi-band windowed FIR filter design technique. An example of how to do it can be found on Alan Oppenheim's DTSP book on chapter 7 filter design section.

Specifically he makes use of Kaiser window design approach acording to which the filter (window) length is empricially dependent on the transition band width and peak approximation error.

So, given the same transition band width and error ripples of a HPF -> LPF cacade, whose lengths are M samples each, you would be using a single multiband filter of length M with the same transition band and error ripple.

Note that as MattL also indicates, you may also chose different filter types to achieve similar respones, but that depends on what you want to achieve finally.

  • $\begingroup$ This is a great lead. At first glance, it seems like you can specify 2 of 3 variables: transition width, ripple, and M, but the third is dependent on the others. Am I misunderstanding? $\endgroup$ – RedPanda Jan 16 '19 at 23:31
  • $\begingroup$ You are right. Depending on the application, you would typically set the first two as your targets and find out the resulting length M. Or sometimes, you could set M beforehand and then examine (and accept) the resulting TW and ER. $\endgroup$ – Fat32 Jan 16 '19 at 23:45
  • $\begingroup$ Based on that, it's not obvious that there will be a shorter filter with the same TW and ER, for instance if the starting LPF/HPF are each at their optimal values for M samples, I would expect it's impossible to hit the same values with M samples in a single stage. $\endgroup$ – RedPanda Jan 17 '19 at 2:58

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.