void MovingAverageFilter(TVec Data, Int32 MaskSize, Int32 DataIndex, Int32 Len)
Filter data with a moving average filter.
| # | Name | Type | Description |
|---|---|---|---|
| 1 | Data | TVec | source TVec |
| 2 | MaskSize | Int32 | |
| 3 | DataIndex | Int32 | |
| 4 | Len | Int32 | element 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);
}