I implemented an energy detector on the GNU Radio by using a GPU at my old job.
We used an FFT based method which is not uncommon. What you do is FFT the data and then compute the PSD. Do this in overlapping blocks (e.g. 12.5%, 50%, etc). You could optionally use a window too. Then, with the PSDs, you create a long term average (LTA) and a short term average (STA). The STA might be 4 PSDs and the LTA might be 10 PSDs. Given the LTA, you set a threshold so many dB about it (e.g. 3dB). Call this threshold the noise riding threshold (NRT). Finally, to detect energy, given the NRT, you find places where the STA is greater than the NRT.....that's where you have an energy. You can get a coarse center frequency and bandwidth by examining which PSD bins cross the NRT. Depending on your environment, you may find that you have lots of isolated, single-bin crossing due to noise. You can just filter these by saying an "energy" must have a minimum of 5 consecutive bins. Or, you can write an algorithm to combine bins. Say you have this, where C is a crossing: ____C_C_CC______ You can filter this to get: ____CCCCCC______ -Isaac abbasi9999 wrote: > > HI ALL > > I'm trying to implement ENERGY DETECTOR using gnu radio. > Is there any library or modules to help. Especially when implementing > energy detection we need to estimate the awgn. > I've searched in > http://gnuradio.org/doc/doxygen/ > but i cannot find any relative information. > > regards, > > -- View this message in context: http://old.nabble.com/ENERGY-DETECTOR-tp26709651p26709969.html Sent from the GnuRadio mailing list archive at Nabble.com. _______________________________________________ Discuss-gnuradio mailing list [email protected] http://lists.gnu.org/mailman/listinfo/discuss-gnuradio
