0

I am dealing with a data set collected from a bistatic radar system which has electric field amplitude vs frequency points. I am trying to take the inverse fourier transform of the data set, converting from the frequency domain into the time domain. I have read in the data in the code below, created two different arrays, one for freq and one for amplitude. I correctly plot the data, but when I take the IFFT of the data I do not get what i expect.

Can someone tell me how to properly take the 2 dimensional fast fourier transform of the data set in matlab, and what exactly the IFFT in this case scenario is showing?

    waves = csvread('10cm.txt');

A = waves(:,1);
B = abs(waves(:,2));

Matrix = [A B];
waves_transform = abs(ifft2(Matrix));

figure, plot(A,B), title('Frequency Domain'), xlabel('Frequency'),ylabel('amplitude');
figure, plot(waves_transform),title('Time Domain'), xlabel('Frequency'),ylabel('amplitude');
%axis([0 5 0 17*10^9]);

10cm.txt DATA FILE HERE: http://pastebin.com/0t0TwVvC code output

Cris Luengo
  • 55,762
  • 10
  • 62
  • 120
  • 1
    OK, so this is a 2 column matrix already in frequency domain. What does each column represent? Real and imaginary components? Magnitude and phase? This is **very important** because not knowing this before hand means that certain functions you use won't make sense. In addition, you probably shouldn't use `ifft2`, because that is the **2D** inverse Fourier Transform. I highly suspect that this is 1-D data. – rayryeng Oct 20 '15 at 00:04
  • 1
    Are your frequency points uniformly distributed? Usually, when one uses FFT, the frequencies are uniformly distributed, and the unknows are, for a given frequency, the amplitude (modulus of the coefficient), and the phase (complex shift of the coefficient). Here, i believe, you don't get the result you expect because you don't have information about the phase of your components – BillBokeey Oct 20 '15 at 00:08
  • @BillBokeey - Very true. I agree 100%. – rayryeng Oct 20 '15 at 00:22
  • The first column is a frequency sweep from 2 to 4 GHz. The second column is the corresponding electric field amplitude of the returned RF signal, which in the simulation data has been reflected from an object one meter deep. I am under the impression that taking the inverse fourier transform of the collected electric field amplitudes will give us the corresponding peaks in amplitude in the time domain. – cecchollett Oct 20 '15 at 01:32
  • Are you saying that I must find phase data to be able to take the 1-D electric field amplitude? Also is there a reason why the IFFT of the data I have taken is continuous and not discrete? – cecchollett Oct 20 '15 at 01:32
  • It is possible for your signal to have zero phase, only if your signal is both real and even in time domain. If this isn't the case, then accurate reconstruction of your data in time domain is not possible. – rayryeng Oct 20 '15 at 04:39
  • Is your frequency sweep uniformly distributed? (E.g. 2ghz,2.1ghz,2.2ghz..... And so on? If so, try doing just `ifft(waves(:,2))` . If not, you'll have to use zero padding to artificially make your frequencies uniformly distributed – BillBokeey Oct 20 '15 at 08:49

0 Answers0