Periodic averaging

Hi everyone,

I’m new to gnuradio and I was wondering if someone could point me in the
right direction. I’m using a usrp to read signals in the frequency
domain.
I’ve been able to do this successfully using uhd_fft.py which uses
fft_sink_c() to display the signal.

What I want to do instead of displaying the signal continuously is to
display the average of the power spectrum of the signal every minute
using
all the samples collected in one minute. I can’t find a block that
simply
takes the (boxcar) average of many spectra once every minute.

If I can’t find a block to do this, I will attempt to write one myself.
If I
need to, is there a strong need to write this block in C++ or could I
write
it in python?

Thanks in advance for your help,
Prachi

On 08/08/2011 12:31 PM, Prachi Parihar wrote:

that simply takes the (boxcar) average of many spectra once every minute.
Discuss-gnuradio mailing list
[email protected]
Discuss-gnuradio Info Page
There’s a logPowerFFT hier block in GRC that allows you to set the frame
rate and “alpha” value, and it produces a FLOAT vector that’s
the length of the FFT.

You can then further IIR filter those vectors, and then do a “keep one
in N” to make them dump to a file once per minute.

Thanks for your response Marcus. I have been working with this block,
but
unfortunately, I do not want to iir filter the power spectrum. I want
each
spectrum to be weighed equally. I’d like to compute the arithmetic mean
for
all the power spectra within a minute (I believe there are 4000 per
second)
so that means I want to average 240,000 spectra and return a single
power
spectrum (which is the average) to be displayed.

As for the “keep one in N” file dump, I considered that when I came
across
moving_average_ff but that calculates the average every time it receives
a
new spectrum which is very wasteful in my case, since it’s computing the
average 240,000 times more than I need to.

On Mon, Aug 08, 2011 at 04:54:29PM -0400, Prachi Parihar wrote:

Thanks for your response Marcus. I have been working with this block, but
unfortunately, I do not want to iir filter the power spectrum. I want each
spectrum to be weighed equally. I’d like to compute the arithmetic mean for all
the power spectra within a minute (I believe there are 4000 per second) so that
means I want to average 240,000 spectra and return a single power spectrum
(which is the average) to be displayed.

You can calculate this with the spectral estimation toolbox
https://www.cgran.org/wiki/SpecEst.

Use the ‘Welch’ estimator. You can configure it to meet your needs
easily.

Have fun,
MB

On 08/08/2011 12:31 PM, Prachi Parihar wrote:
    What I want to do instead of displaying the signal continuously is to


_______________________________________________
Discuss-gnuradio mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Discuss-gnuradio mailing list
[email protected]
Discuss-gnuradio Info Page


Karlsruhe Institute of Technology (KIT)
Communications Engineering Lab (CEL)

Dipl.-Ing. Martin B.
Research Associate

Kaiserstraße 12
Building 05.01
76131 Karlsruhe

Phone: +49 721 608-43790
Fax: +49 721 608-46071
www.cel.kit.edu

KIT – University of the State of Baden-Württemberg and
National Laboratory of the Helmholtz Association