discuss-gnuradio
[Top][All Lists]
Advanced

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

Re: [Discuss-gnuradio] How to integrate a vector signal?


From: Trond Danielsen
Subject: Re: [Discuss-gnuradio] How to integrate a vector signal?
Date: Thu, 12 Apr 2007 18:55:57 +0200

2007/4/12, Johnathan Corgan <address@hidden>:
Trond Danielsen wrote:

> I wonder if anybody has any suggestion on how to integrate a vector
> signal? I have a block that generates a vector signal, but I want to
> integrate the output over 3-10 vectors to improve the SNR. Now if
> this was a regular stream signal I would have just used a FIR filter
> with N taps to implement this ( y(n) = x(n) + x(n-1) + ... + x(n-N-1)
> ) , but I am not sure how to accomplish the same thing on a vector
> signal.

You can use the gr.single_pole_iir_filter_xx block, but set the vlen
parameter (second constructor argument, defaults to 1) to the length of
your vector.

The block will create a single pole IIR filter for each position in the
vector, then as the vectors come in, the filters will act in parallel so
the output vectors are the result of treating each vector element as its
own stream of data values.

The constructor parameter 'alpha' determines the amount of smoothing;
1.0 is no smoothing (out = in), and with 0.0 the output would never
change from zero.  Mathematically, its the same as resistor-capacitor
low pass filter.

Google "exponential average filter" for a more detailed discussion on
how to determine the alpha parameter to have the filter response you want.

There is a good example of using this in the fftsink.py code, where the
vector output of the FFT goes through an averaging filter before it gets
sent to the display window.  See line 116.

Thanks a lot! Don't know how I missed that one.

--
Trond Danielsen




reply via email to

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