You are here: Symbol Reference > Dew Namespace > Dew.Signal Namespace > Dew.Signal.Units Namespace > Classes > SignalUtils Class > SignalUtils Methods > ExpAverageFilter Method > SignalUtils.ExpAverageFilter Method (double, TVec, TVec)
Dew Signal for .NET
ContentsIndexHome
PreviousUpNext
SignalUtils.ExpAverageFilter Method (double, TVec, TVec)

Design an exponential filter with Decay parameter and place the transfer function in Num (numerator) and Den (denominator).

Syntax
C#
Visual Basic
public static void ExpAverageFilter(double Decay, TVec Num, TVec Den);

Transfer function can be used to initialize an IIR filter by passing num and den to the IirInit routine.

Exponential average filter.

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; Vector c = new Vector(0); Vector num = new Vector(0); Vector den = new Vector(0); int n; int i; TIirState IirState = new TIirState(); double state; //Alternative 1: Tone with 5 periods // b := Sin(Ramp(300, mvDouble, 0,2*Pi*5/300)); //Alternative 2: Gaussian noise b = MtxExpr.RandGauss(300,false); c.Copy(b); n = 10; state = 0; int bLength = b.Length; for (i = 0; i < (bLength / n); i ++) //streaming test 1 { b.SetSubRange(i*n,n); SignalUtils.ExpAverageFilter(b,ref state, 10); //set to 10% } b.SetFullRange(); MtxVecTee.DrawIt(new TVec[2] {c,b}, new string[2] {"Unfiltered","Filtered"},"Exponential averaging",false); b.Copy(c); SignalUtils.ExpAverageFilter(10,num,den); //set to 10x, (1/10 = 0.1, => 10%) SignalUtils.IirInit(num,den,ref IirState,false); bLength = b.Length; for (i = 0; i < (bLength / n); i ++) //streaming test 2 { b.SetSubRange(i*n,n); c.SetSubRange(i*n,n); SignalUtils.IirFilter(b,c,ref IirState); } SignalUtils.IirFree(ref IirState); b.SetFullRange(); c.SetFullRange(); MtxVecTee.DrawIt(new TVec[2] { b, c }, new string[2] { "Unfiltered", "Filtered" }, "Exponential averaging with IirFilter", false); }
Copyright (c) 1999-2024 by Dew Research. All rights reserved.
What do you think about this topic? Send feedback!