一维离散信号的滤波
1、被滤波的元素的大小应该为周期的整数倍
例如,以4个点为周期的信号,包含20个元素,共5组。
2、进行离散傅里叶变换
var a = b.Select(d => new Complex(d, 0)).ToArray(); Transform.FourierForward(a);
3、去除频域分量
for (var i = 5; i < 20; i += 5) { a[i] = 0; }
4、进行傅里叶反变换
Transform.FourierInverse(a); var c = a.Select(d => d.Real).ToArray();
5、滤波前
var b = new double[] { 99, 101, 102, 100, 99, 101, 102, 100, 199, 201, 202, 200, 99, 101, 102, 100, -1, 1, 2, 0 };
6、滤波后