一维离散信号的滤波

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、滤波后

一维离散信号的滤波

你可能感兴趣的:(一维离散信号的滤波)