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

46 Ansichten (letzte 30 Tage)
Steven Seppala
Steven Seppala am 26 Jan. 2017
Kommentiert: Walter Roberson am 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?
  1 Kommentar
John BG
John BG am 27 Jan. 2017
Bearbeitet: John BG am 27 Jan. 2017
where is the time reference?
is the time delay between adjacent samples known?
please spcify
John BG

Melden Sie sich an, um zu kommentieren.

Antworten (1)

John Chilleri
John Chilleri am 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 Kommentare
Steven Seppala
Steven Seppala am 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
Walter Roberson am 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');

Melden Sie sich an, um zu kommentieren.

Community Treasure Hunt

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

Start Hunting!

Translated by