SignalUtils.MovingAverageFilter Method

void MovingAverageFilter(TVec Data, Int32 MaskSize, Int32 DataIndex, Int32 Len)

Filter data with a moving average filter.

#NameTypeDescription
1DataTVecsource TVec
2MaskSizeInt32
3DataIndexInt32
4LenInt32element count

Result: stored in self (calling object)

Remarks:

Applies moving average filter to Data from DataIndex to DataIndex+Len. Set Len to -1 to use the full Data length. MaskSize defines the length of the filter in samples. This MovingAverageFilter routine can be used to filter a block of data (not for streaming).

Examples
using Dew.Math;
using Dew.Math.Editors;
using Dew.Math.Units;
using Dew.Signal;
using Dew.Signal.Units;
using Dew.Math.Tee;
using Dew.Signal.Tee;

private void button1_Click(object sender, EventArgs e)
{
    Vector b = new Vector(0);
    Vector c = new Vector(0);

    b.Size(300);

    SignalUtils.Tone(b, 300, 5.0 / 300, 0, 1, false);
    c.Copy(b);
    SignalUtils.MovingAverageFilter(b, 20, 0, Math387.MtxVecEOA); //from Index 0 to EndOfArray
    MtxVecTee.DrawIt(new TVec[2] { c, b }, new string[2] { "Unfiltered", "Filtered" }, "Moving average filter", false);
}
See Also: SignalUtils.MovingAverageImpulse, SignalUtils.FirFilter, SignalUtils.KaiserImpulse, OptimalFir.RemezImpulse