I have a signal which is a linear combination of two frequencies and I am trying to use MATLAB to determine what frequencies the (main) signal consists of. As an input I have the sample rate, rate
and a row vector with the signal data, segment
.
Now I have the following code:
N=length(segment);
freq = rate*(0:N/2)/N;
X = fft(segment);
X=X(1:N/2+1);
plot(freq*2, abs(X))
And this indeed returns a graph with two peaks, one at each of the frequencies the signal consists of. Now I want to extract these frequencies. So I want to return a variable, signal
, which is a vector of the two frequencies.
Hence, if my signal is created by the linear combination of a signal of 30 Hz
and one of 60 Hz
, then I want signal = [30,60]
. I can create a graph and then identify this, but I want to cut out that middle man and just return the found frequencies, without using any toolboxes.
How can I find my desired frequencies?
More answer...