Advertisement
prog

FirFilter

Jul 28th, 2011
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 0.68 KB | None | 0 0
  1.         private double[] _coefficients;
  2.         private double[] _queue;
  3.  
  4.         public unsafe double Process(double sample)
  5.         {
  6.             int n = _coefficients.Length;
  7.             double result = 0.0;
  8.             fixed (double* coefficients = _coefficients, queue = _queue)
  9.             {
  10.                 if (--_index < 0)
  11.                     _index = n - 1;
  12.                 queue[_index] = sample;
  13.                 for (int i = 0; i < n; i++)
  14.                 {
  15.                     result += queue[_index] * coefficients[i];
  16.                     if (++_index >= n)
  17.                         _index = 0;
  18.                 }
  19.             }
  20.             return result;
  21.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement