# I have I and Q data in time but I need to plot them in frequency

38 views (last 30 days)
Steven Seppala on 26 Jan 2017
Commented: Walter Roberson on 27 Jan 2017
I have I & Q data in the time domain (all numbers are between +/- 1) And I can plot the time domain representation with.
figure ; plot(1:length(in_i),in_i) ; hold on ; plot(1:length(in_q), in_q); hold off;
which gives me the following :
However I need to look at the frequency domain of these values to see if it is displaying the correct frequencies that I belvie it should be. Is there a way to do this?
John BG on 27 Jan 2017
Edited: John BG on 27 Jan 2017
where is the time reference?
is the time delay between adjacent samples known?
John BG

John Chilleri on 26 Jan 2017
Hello,
Your solution lies within your tags. The Fourier transform is a way to change a signal from its original domain to a representation in the frequency domain [ WIKI ].
MATLAB has an implementation of the fast Fourier transform named fft.
To change your data to the frequency domain, you can:
Q2 = fft(Q);
I2 = fft(I);
Hope this helps!
Steven Seppala on 26 Jan 2017
This is the file I am working with. It's a standard CSV with the in_q and in_i in the C & D col respectively.
Thank you !
Walter Roberson on 27 Jan 2017
in_q = data(:,3);
in_i = data(:,4);
fin_q = fft(in_q);
fin_i = fft(in_i);
nnz(isnan(fin_q)) %gives 0 -- none of the values are nan
nnz(isnan(fin_i)) %gives 0 -- none of the values are nan
subplot(1,2,1); plot(abs(fin_q)); title('abs fft of in_q');
subplot(1,2,2); plot(abs(fin_i)); title('abs fft of in_i');