2016-01-21 74 views
0

我想设计一个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

120给了我一个很好的频带衰减,如果我降低它从1Hz衰减到10Hz的顺序,然后我消除了信号中的大量信息。但是,120Hz可以接受吗?我不是试图在硬件中实现它,我只想在Matlab中过滤我的信号。 – nabrugir

+0

120它不是120Hz。这意味着过滤器是一个有120个根的方程。所以如果它适合你,你可以使用它。 – kipar