Hi,

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.

Any comments are welcome!

–

Trond D.

Trond D. 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.

–

Johnathan C.

Corgan Enterprises LLC

http://corganenterprises.com

2007/4/12, Johnathan C. [email protected]:

You can use the gr.single_pole_iir_filter_xx block, but set the vlen

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 D.