[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Discuss-gnuradio] intermittent pulse detection

From: Dirk Gorissen
Subject: [Discuss-gnuradio] intermittent pulse detection
Date: Sat, 4 Feb 2017 22:39:56 +0000

Fist of all, while Im a newbie to (gnu)radio, congrats to the dev team
for a great piece of software.

My question is about the need to detect a weak, noisy, short (10ms)
pulse that occurs every 1.5 seconds. It is transmitted at a particular
frequency (e.g., 150.22 MHz) but in practise I have found this can
vary by as much as +/- 500Hz. There is no modulation, it is simply an
on/off keyed pulse.

Say I have an SDR generating data at 2.5 MSPS. I have so far been
experimenting with standard scipy/numpy routines to collect a batch of
samples, perform a FFT (freq domain) and do a cross correlation (time
domain). However, Im by no means a dsp guy and would like to leverage
gnuradio as much as I can. I have been poking a bit but have some
basic questions.

1) 2.5 Msps gives me way more bandwidth than I neeed. Assuming, for
now, I only care about a single pulse frequency I really only need
~1khz bandwidth. In the frequency domain I can directly decimate down
(with a big factor) to the 1-2 khz range using the low pass filter
block, do an fft, and look for peaks. Is that the right approach?

2) Im somewhat confused about the FFT block if I just pipe the SDR
straight into it. The FFT size is set to 1024 and the window is set to
"window.blackmanharris(1024)". So Im assuming the FFT just applies one
window (?) and outputs 1024 bins. However, how many samples are
accumulated before the FFT is run? I would have assumed I can control
that too. And if so, should I best be doing this every 50ms, 500ms,
2000ms, ..?

3) I can use the rational resampling block to bring the sample rate
down to 48khz so I can use the audio sink. From that I can still hear
the pulse even if it is not visible in the spectrum (gui sink). Im
assuming this is just because the plotting cannot keep up?

4) In the time domain I guess I can generate a synthetic pulse of the
same length / frequency and then cross correlate. Not obvious to me
how to generate the required pulse in gnuradio though (would a
continuous signal work?). I also notice there are no built in
(auto)correlation blocks? I found the "correlation estimator" but not
clear how to use it. As for dealing with the frequency uncertainty
problem. Does one just try correlating with different freuencies and
pick the best one? Or what is the good thing to do here given I may
also have to deal with quite a bit of noise.

Any guidance appreciated.

Many thanks,


reply via email to

[Prev in Thread] Current Thread [Next in Thread]