Suppose I want to separate a broadband input signal into multiple narrow subbands using an FFT-based analysis filter bank. The filter bank uses a prototype lowpass filter and is implemented using a polyphase structure.

See Matlab's Channelizer class DFT Matrix

Does it require fewer FLOPS (floating point operations) to do the filtering in the frequency domain as a multiplication and sum or as a convolution in the time domain? Matlab implements the filtering in the time domain.


1 Answer 1


For sufficiently long filters, it's usually more efficient to implement the individual filters as FFT-based fast convolution, indeed!

Now, whether something is faster than something else really doesn't depend on the FLOPs alone, but also on the kind of operation, the memory / bandwidth requirements and so on.

In fact, this question was raised in the context of GNU Radio's PFB channelizer; luckily, Tom Rondeau wrote a short article on his findings whether direct FIRs or FFT filters in the individual branches are beneficial in the environment of general purpose computers running his PFB implementation.

From that article:


Now, for GPU-based channelizers, this might be a bit different. Not an expert here, but I'd like to point you to Mr. Jan Krämer's pretty nice presentation from FOSDEM17's SDR Devroom on GPU-Enabled Polyphase Filterbanks("Everyday I'm shuffling") (slides here):

Screenshot from Video

The talk highlights that the same number of ops, depending on your hardware, and memory layout, mean a very different throughput.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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