带有Matlab的带阻滤波器

时间:2016-01-21 15:00:21

标签: matlab filter filtering

我想设计一个6.7Hz(6.2到7Hz)的带阻滤波器。我正在使用函数designfilt但过滤器是一个通带。

bsFilt = designfilt('bandstopfir','FilterOrder',3, ...
         'CutoffFrequency1',6.2,'CutoffFrequency2',7, ...
         'SampleRate',256);
fvtool(bsFilt)

bandstop filter 6.2 to 7Hz, order 3

如果我将订单增加到120,我会得到一个带阻滤波器。但是,增加订单的效果是什么?

 bsFilt = designfilt('bandstopfir','FilterOrder',120, ...
             'CutoffFrequency1',6.2,'CutoffFrequency2',7, ...
             'SampleRate',256);
    fvtool(bsFilt)

bandstop filter 6.2 to 7Hz

有没有更好的方法来设计滤波器或滤除6.2到7Hz的信号?采样率为256Hz。

1 个答案:

答案 0 :(得分:1)

过滤器的顺序越高,系数算法必须越多,过滤器就越适合您的请求。 缺点是高阶滤波器难以在硬件中实现(在那里你需要更多的元素,而且它更容易受到噪声的影响)和在软件中(你需要更多的数据点,它将更容易计算错误) 。我认为可能还有其他缺点,我不是这方面的专家。 因此,使用三级滤波器,制作带阻滤波器是不可能的。使用产生足够好结果的任何订单。