## Inverse fast Fourier transform of measured RF data

### Thomas Schäfer (view profile)

on 11 Jun 2018
Latest activity Commented on by Thomas Schäfer

### Thomas Schäfer (view profile)

on 19 Jun 2018
Hi I would like to perform an inverse fast Fourier transform on a measured set of data recorded with a network analyzer. The data I have is in the frequency domain and I am interested into transforming it to time domain. I have the frequency vector F and the corresponding complex magnitude vector V. I believe that the Matlab function IFFT is the function that I am looking for, but I cannot figure out how to set up the function call correctly. I would appreciate if someone would help me with this. Please let me know if I you need more info of my problem. I do not have access to the signal processing toolbox. Best regards Thomas

Show 1 older comment
Thomas Schäfer

### Thomas Schäfer (view profile)

on 12 Jun 2018
Hi David Thank you for responding. As I mentioned the data is from measurement and is equally spaced in frequency. I have not made any interpolation or extrapolation. I have attached the data in a text file, first column is frequency (Hz), second is real part and third is imaginary. I expect a small contribution about 5ps (pico second) and larger around 130ps and 230ps. Best regards Thomas
David Goodmanson

### David Goodmanson (view profile)

on 14 Jun 2018
Hi Thomas,
I can't really comment on the picosecond times you are looking for, but the data does show a larger time delay tau on the order of 3 nsec, appearing as a multiplicative phase factor exp(2*pi*i*f*tau). The following code finds the delay and attempts to remove its effect.
I think it makes sense to rescale and use frequency in GHz so the times are in nanosec. The result is tau = 2.96 nsec which suggests about 0.8 m difference in cable length between the signal and reference channels (if all of the delay were due to that effect).
f = data(:,1)/1e9; % f in GHz
z = data(:,2) + i*data(:,3);
ua = unwrap(angle(z));
% linear fit, ua = (2*pi*f*tau + const) = c(1)*(f-80) + c(2);
c = polyfit((f-80),ua,1)
tau = c(1)/(2*pi) % tau in nanosec
figure(1)
plot(f,ua,f,polyval(c,(f-80))) % fit check
z1 = z.*(exp(-2*pi*i*f*tau)); % response without tau delay
figure(2)
plot(f,abs(z1),f,angle(z1))
Thomas Schäfer

### Thomas Schäfer (view profile)

on 19 Jun 2018
Thank you for your replay. Yes, it is obvious after you point it out, that there is a longer transition line.