I need to detect a short (10ms) VHF pulse that occurs every 1.5s at a specific frequency (e.g., 150.20 MHz).
I have an SDR that support IQ sample rates up to 10MSPS but due to computing constraints 2.5MSPS is probably the max I can handle (currently working with 1 MSPS with 150 MHz as the central frequency).
I am new to DSP and started simple: Collect 500ms of samples, do a standard DFT using python's
mlab.magnitude_spectrum(), throw away everything under an empirically defined threshold, followed by a simple peak finding routine. Then repeat with the next 500ms.
That works quite well but as the pulse strength drops (move away from the pulse source) this fails to find anything.
I have searched around a bit on how to tackle this and come across suggestions around measuring kurtosis, averaging spectra, autocorrelation, etc. If anything averaging seemed to make things worse but given I'm new to the area some guidance would be appreciated as to how to best tackle this as well as a good way to set the threshold. Is there something in the time domain I can do? Python (pseudo) code would be a plus.