What is the best detector to do that? Somebody would say: any single side band detector will work, for example QSD (Quadrature Sampling Detector). Not exactly: it receives everything in its passband, because it doesn't know what to receive. If it is tuned to, say 91 MHz, it receives some noise, whatever is there. Optimal detector should produce nothing in that case, until it is tuned to 90 MHz and the signal with frequency hopping over predefined set above is discovered. Any guidance in right direction will be appreciated.
That sound like frequency shift keying to me - so google "FSK detector" or "FM demodulation" or "superhet" for hints.
Yes, it reminds me kFSK, where k is the number of frequencies, 16 in my example F0 + [500:300:5000] . There is a lot of theory about 16FSK, but no information on how to implement such a detector in hardware.
You can always do direct conversion of the RF signal (sample RF signal at very high rate and do demodulation in digital domain) if you have the power and the money.
A simple and cheap way would be to mix down the rf signal to 10.7MHz in analog hardware (check 'superhet'), use standard IC solutions for filtering and FM demodulation (car radio tuner ICs are available like the sand at the sea) - those usually take an RF signal with a carrier frequency of 10.7MHz and perform FM demodulation - in other words, they output your 16 Frequencies as 16 amplitude steps - this you can sample with a standard microcontroller ADC operating at more than 2*20kHz sampling rate.
Still - you would have to either peform symbol synchronisation (if you have control over the sampling clock) or oversample the signal strongly and chose sample point that will give you good SNR. For symbol synchronisation google "Gardner" and "Early-Late-Gate"
I have to confess that I am a little confused by the question.
You mention random hopping over a range of F0 + [500:300:5000]
The you mention another type of hopping over F0 = N*20kHz
Can you please clarify and tell us the range of N, and the range of F0?
Also, what sampling rate do you have available?
Random hopping is happening with the constant rate, which is 20 kHz in my example.
I don't have sampling rate for now, I consider the analog RF signal, as generated by DDS chip AD9959 under control of STM32F745 microcontroller.
Probably tone filters with envelope detectors, on the intermediate frequency, would work in this case.
One way to do this is with a channelizer. Sample, (or re-sample) your signal so that the tone's spacing will naturally fall into the center of the bins of an FFT. Note that the FFT does not have to be a power of 2.
Design the channel filter to give good adjacent channel separation.
Check out this paper:
fred harris, Elettra Venosa and Xiofei Chen, “A novel M-FSK modem architecture based on perfect reconstruction NMDFBs” 2015 49th Asilomar Conference on Signals, Systems and Computers, Pages: 1174 - 1179, 2015.
Note that the output from the channelizer is "serial". That is you get a set of "bins" every time the FFT is run. So a single thread (or bit of RTL) can be used to process the output to determine which bin is hot. Implementation left as an exercise for the user...