Detecting a frequency pattern in the frequency domain I am looking to detect a combination of frequencies in the frequency domain. For example, here is my spectrum:



And I'm trying to detect the pilot tone. I have the FFT of the pilot tone:



which zoomed in looks like this:



I tried doing a cross-correlation in matlab:

trainingfft = fft(trainingfreq);
datafft = fft(idat);
Hxcorr = dsp.Crosscorrelator;
CorrResult = step(Hxcorr,datafft,trainingfft);


But ended up with this:



I really am looking to detect the presence of the three peaks anywhere in the spectrum. I think the cross correlation isn't working because of the presence of the noise floor, so I was thinking about using some kind of threshold checker to clean up the noise but really am looking for an elegant solution. 

Is there an elegant way of doing this?
Try

xcorr(trainingfft,datafft,'option') 


to specified a normalization for the cross-correlation. See the file page for more details of the option.