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