# Forum: GNU Radio How to integrate a vector signal?

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
on 2007-04-12 11:20
```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.

--
Trond Danielsen```
on 2007-04-12 18:49
```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

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 Corgan
Corgan Enterprises LLC
http://corganenterprises.com```
on 2007-04-12 18:56
```2007/4/12, Johnathan Corgan <jcorgan@corganenterprises.com>:
> 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 Danielsen```
This topic is locked and can not be replied to.