I have an RTL-SDR dongle which is tuned to a carrier frequency in my area which corresponds to a P25 radio channel (506.7375MHz).
Using MATLAB's SDRRTLReceiver function, I sample the signal at 240KHz and collect 1 second worth of signal.
But when I zoom in to the channel (which occupies a 12.5KHz bandwidth), I cannot see the peaks which correspond to the 4 frequencies used in the modulation (-1800, -600, +600, +1800):
Am I expected to see the peaks at this point?
I have tried using a larger FFT size for the spectrum analyzer, but it does not reveal the peaks. I have also tried averaging multiple spectra together to no avail.
Anyway, I continue with the time-domain signal and try to demodulate it.
I lowpass the signal to only keep my channel (lowpass 5KHz), and then run it through a polar discriminator which I understand (maybe incorrectly?) is supposed to give me the frequency states.
The signal is a stream of complex numbers, which I delay by one sample, take the conjugate of that, and then multiply with the non-delayed data. The arg (angle) of this resulting vector stream should correspond to the frequency state of the modulation.
When I plot that, I get the following:
But I think this is already incorrect.
What am I doing wrong? I know there are other ways to demodulate the FSK data, can someone suggest something please?