SignalUtils.MovingAverageFilter Method

procedure MovingAverageFilter(Data: TVec; MaskSize: Integer; DataIndex: Integer; Len: Integer);

Filter data with a moving average filter.

#NameTypeDescription
1DataTVecsource TVec
2MaskSizeInteger
3DataIndexInteger
4LenIntegerelement 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
uses MtxExpr, Math387, MtxVec, SignalUtils, MtxVecTee, MtxVecEdit,OptimalFir;

procedure TForm1.Button1Click(Sender: TObject);
var b,c: Vector;
begin
    Tone(b,300,5/300,0,1);
    c.Copy(b);
    MovingAverageFilter(b,20);
    DrawIt([c,b],['Unfiltered','Filtered']);
end;
See Also: SignalUtils.MovingAverageImpulse, SignalUtils.FirFilter, SignalUtils.KaiserImpulse, OptimalFir.RemezImpulse