I'm quite a novice for signal processing and I know this question may be too broad. But I would still like to hear hints from experts.
I was taught to use
butter (to design Butterworth filter aka the maximally flat magnitude filter) and
filtfilt (Zero-phase digital filtering) functions for bandpass filtering of EEG (electroencephalogram) signals in MATLAB offline (i.e. after the completion of recording). This way you can avoid inevitable "delay" caused by the digital filter (i.e. zero phase filtering).
Then, someone asked me why we cannot use
fft (Fast Fourier transform) to get the frequency-domain representation of the signal, and then set power of unwanted frequencies to zero, followed by
ifft (Inverse fast Fourier transform) to recover the filtered data in time domain for the same purpose. This manipulation in frequency domain sounded simpler and reasonable to me, and I couldn't really answer why.
What are the advantages and disadvantages of using the simple
fft/ifft method for bandpass filtering? Why people prefer to use FIR or IIR digital filters?
For example, is the
fft/ifft method more prone to spectral leakage or ripples compared to the established digital filters? Does the method also suffer from phase delay? Is there a way to visualize the impulse response for this filtering method for comparison?