I've seen it mentioned in passing in various papers on signal processing and filter design that complex FOR filters can be more efficient when it comes to multirate applications. However I cannot think of a scenario where this is applies. Of the systems I've seen, the baseband is complex which means generally the baseband for interpolation (for example) filters makes most sense with real coefficients so +ve and -ve frequencies are both passed.

Can anyone give examples where a complex bandpass filter makes sense, and specifically to areas like decimation and interpolation.


For one practical example, I'll point to GNURadio's frequency translating FIR filter block: https://github.com/gnuradio/gnuradio/blob/master/gr-filter/lib/freq_xlating_fir_filter_XXX_impl.cc.t

It's a channelizer & decimator block that gains an efficiency by spinning a user provided FIR LPF up to be a complex BPF where the channel is and filtering first vs. spinning the channel down first. The efficiency comes from performing the frequency rotation at the lower sample rate after filtering and decimation vs. before.

| improve this answer | |
  • $\begingroup$ Thanks Andy, that's very interesting. So the complex BPF only outputs the +ve frequencies? When it comes to decimation afterwards I guess the band can fold down to the decimated rate, if it's above the decimated sampling rate. Does this put restrictions on where the BPF passband can be? $\endgroup$ – John McGrath Sep 19 '17 at 20:38
  • $\begingroup$ Yes, either only the positive or negative frequencies, depending to which frequency offset you rotate the LPF. So technically after the decimation you might be dealing with an alias, but it rotates down correctly. (I honestly have not checked all the math rigorously, but it always works correctly empirically for me.) It doesn't make much sense to rotate the filter edges past +/-Fs/2, but it just wraps around if you do (filter response is on the unit circle in the z plane, so frequently shifts are cyclic). I suppose the only restriction is that the filter shouldn't be too wide for the decim $\endgroup$ – Andy Walls Sep 19 '17 at 21:11

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.