IFFT of Non causal signal?

Started by r13yadav 9 months ago3 replieslatest reply 9 months ago199 views


I have a frequency domain data (that is non-causal). How can I calculate the IFFT in MATLAB so that I can visualize the impulse response behavior of t<0.

Thanks in advance for your response.



[ - ]
Reply by kazOctober 23, 2023

I can only guess as what you are after:

ifft is meant for frequency domain data, not time domain data.

May be you mean ifftshift(x), this will take you to t<0

for example, a fir filter from given amplitude:


amp = [1, ones(1,150), zeros(1,1000),  ones(1,150)]; %frequency domain

h = real(ifft(amp)); %time domain

h = ifftshift(h);

[ - ]
Reply by r13yadavOctober 23, 2023

Dear Kaz,

Apologies for the typo, yes, you are right. I have a complex-valued frequency domain data (from a transmission line operating at 0 to 20 GHz) and I am interested in calculating its impulse response in time-domain so to evaluate its time-delay. 



[ - ]
Reply by Mannai_MuraliOctober 24, 2023

As I understand you have frequency domain complex data which is present only for Negative frequencies.All positive frequencies are zero.

In FFT for N frequencies 0 to N/2 is for + ve frequencies.N/2+1 to N-1 is for -Ve frequencies.N/2 for maximum +ve frequnecy ,0 for DC and N/2+1 for maximum -ve frequency.(For Matlab you have to add 1 for index as data is 1 to N and not 0 to N-1).Since +ve frequencies are zero if you take IFFT using Matlab it will represnt complex data which is impulse response in time domain.(It will not be real)