Implementation of FIR filter in C#

c#, signal-processing

Solution

How about this:

private static double[] FIR(double[] b, double[] x)
{
    int M = b.Length;
    int n = x.Length;
    //y[n]=b0x[n]+b1x[n-1]+....bmx[n-M]
    var y = new double[n];
    for (int yi = 0; yi < n; yi++)
    {
        double t = 0.0;
        for (int bi = M-1; bi >=0; bi--)
        {
            if (yi - bi < 0) continue;

            t += b[bi] * x[yi - bi];
        }
        y[yi] = t;    
    }
    return y;
}

Problem

at the moment im trying to implement a FIR lowpass filter on a wave file. The FIR coefficients where obtained using MATLAB using a 40 order. Now i need to implement the FIR algorithm in C# and im finding it difficult to implement it. Any help? Thanks

Original source