Inverse fast Fourier transform of measured RF data
2 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
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 commentaires
David Goodmanson
le 14 Juin 2018
Modifié(e) : David Goodmanson
le 14 Juin 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))
Réponses (0)
Voir également
Catégories
En savoir plus sur Transforms dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!