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

146 views (last 30 days)
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?
  1 Comment
John BG
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?
please spcify
John BG

Sign in to comment.

Answers (1)

John Chilleri
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!
  4 Comments
Walter Roberson
Walter Roberson on 27 Jan 2017
data = dlmread('data_capture.txt', '\t', 2);
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');

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!