Inverse fast Fourier transform of measured RF data
2 次查看(过去 30 天)
显示 更早的评论
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 个评论
David Goodmanson
2018-6-14
编辑:David Goodmanson
2018-6-14
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))
回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Transforms 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!