FIR filter implementation in C #

im is currently trying to implement the low pass filter FIR in the wave file. FIR coefficients obtained using MATLAB using order 40. Now I need to implement the FIR algorithm in C # and it is difficult for them to implement it.

Any help?

thanks

+4
source share
2 answers

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[nM] 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; } 
+6
source

Try it. Does it help?

 static void Main() { var bb = new List<double> { 1, 2, 3, 4 }; var xx = new List<double> { 3, 3, 4, 5 }; var yy = func_FIR(bb, xx); for (int i = 0; i < yy.Count; i++) { Console.WriteLine("y[{0}] = {1}",i,yy[i]); } } public static List<double> func_FIR(List<double> b, List<double> x) { //y[n]=b0x[n]+b1x[n-1]+....bmx[nM] var y = new List<double>(); int M = b.Count; int n = x.Count; double t = 0.0; for (int j = 0; j < n; j++) { for (int i = 0; i < M; i++) { t += b[i] * x[n - i-1]; } y.Add(t); } return y; } 
+2
source

Source: https://habr.com/ru/post/1304485/


All Articles