Re: simple LP filter: FFT/AmplitudeScale/IFFT.... vs tradit
>>>Can I simply take the FFT, multiply the complex magnitudes by a scalar scaling factor (for example [1 1 1 1 0.9 0.5 0.1 0 0 0 ] are the scaling factors going from lowest frequency to highest frequency), and then inverse FFT?
It depends on your signal. In common case, you can do this. If you perform FFT on the whole signal ot once. But
1. If signal is too long, you can loose accuracy of your FFT.
2. If your signal length is not multiple of 2, you need develop fast algorihm for that particular length.
3. Check equivalent impulse response in time domain for your spectral shape. It can be rather long (non-causal as well). May be for you it can became non-desirable, it depends on your goal.
If you want to process signal b-by-block:
1. Short transform length can not guarantie to you that inbetween of spectral bins is close to your desired one.
by developing filter in time domain, you can
1. assure causality,
2. guarantie good behaviour in all frequency range (inbetween spectral bins as well)
There is reasons reasons from theoretical viewpoint.
From computational viewpoint, in many cases considerably short filters are enough to perform required filtering. Especially, for IIR case.
FFT only used as fast approach to perform FIR filtering when FIR has considerably long length. Long FIR filters are used only in the case, when you need save phase relations in your original signal. (Linear phase filter) But even in this case you can design IIR with very good phase response in passband.