I want to perform the following computations with the impulse response of length L of a LTI system:
- Multiply the impulse response with a window w(n) of length M << L.
- Take the FFT of the result in 1 and save as a vector Y2.
- "Move" the window to the "right" by M/2 samples, i.e. take w(n-M/2), and multiply the impulse response with this new window.
- Take the FFT of the result in 3 and save as a vector Y2.
- Move the window to the right again by M/2 samples, i.e. take w(n-2*M/2), and multiply the impulse response with this new window.
- Take the FFT of the result in 5 and save as a vector Y3.
- Etc... (keep doing this process until the end of the impulse response, I hope you get the idea).
I think this is easy to do with a for loop in Matlab. However, I already have immediate access to the frequency response (the FFT of the impulse response). I was therefore wondering if there is a way to get my vectors Y1, Y2, Y3, etc... by computations in the frequency domain instead? I know that multiplication in the time domain corresponds to convolution in the frequency domain. So to get for instance the vector Y5 with the above notation, would it be possible to do as follows?
Take the FFT of the window w(n-5*M/2), and simply convolve it with the frequency response? And how do I know if it's faster/slower than just taking the inverse FFT of the frequency response and doing the steps described above?