Advantage of complex filtering in multirate applications
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  &amp; 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.