一维离散信号的滤波

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

posted on 2013-07-27 15:47  yao2yao4  阅读(968)  评论(0编辑  收藏  举报

导航