我有代码来计算IIR滤波器系数,但它们似乎导致了一个非常奇怪的输出。这就是数据的样子:以1 KHz采样,顶部有7 Hz激励振荡。我想制作滤波器,使滤波器的截止频率为1 Hz。
根据我在网上看到的,以PI的分数计算截止频率,方程为2 * fc / fs,导致截止频率为0.002。首先,这是正确的吗?该值给出的系数导致的值比我预期的值小三个数量级。其次,当我在250个点的数组上绘制滤波器的输出时,我期望(大部分)平坦的线,但我得到的东西实际上看起来像指数到负数。这不可能是对的......可以吗?
我为此不太了解过滤器而道歉。如果有人得到答案,那就太好了。
谢谢 - 罗伯特
答案 0 :(得分:2)
首先,是的,归一化频率为0.002,如果fs = 1 kHz且fc = 1 Hz。
您没有说出您用来计算系数的软件,系数实际是什么,以及您用来实现滤波器的IIR形式。请注意,当fc<< fs虽然 - 首先尝试更合理的fc,例如100赫兹,看看它是否表现得可接受 - 这会告诉你你的方法是否合理和/或当fc变得太小时是否会爆炸。
答案 1 :(得分:0)
另一种可能的解决方案是使用更高阶的过滤器并将其分成双二阶,这需要一些分析工作或更多的谷歌搜索;-)。我可以在这里找到Butterworth滤波器系数计算的实现:http://baumdevblog.blogspot.com/2010/11/butterworth-lowpass-filter-coefficients.html
如果您的带宽比某些波纹更重要,我还会看一下不同的滤波器类型(如椭圆形)!