Inverse fast Fourier transform of measured RF data
1 visualizzazione (ultimi 30 giorni)
Mostra commenti meno recenti
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
4 Commenti
David Goodmanson
il 14 Giu 2018
Modificato: David Goodmanson
il 14 Giu 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))
Risposte (0)
Vedere anche
Categorie
Scopri di più su Multirate Signal Processing in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!