huanhuanhua 发表于 2015-8-24 18:00

请教:IIR滤波器的边界效应问题

大家好,

不知道有没有做过IIR滤波器的坛友?IIR滤波器因为递归结构,在滤波过程中,需要一定的时间,信号才能稳定的输出,那么在开始和结束的位置滤波效果就不好,甚至产生变形,我暂时称他为边界效应吧。

我的问题是,有没有什么方法可以去除或者削弱这种边界效应,滤波器的稳定时间呢?

我原本的想法是通过尽量缩小单位冲激响应的有效宽度,但发现效果不明显,不知道是不是方法没弄对。
也有查到是在输入信号两端镜像加点,但是两端还是觉得不够平整。

诚求高手指点一二。

huanhuanhua 发表于 2015-8-24 18:01

自己先顶个,多谢了

hcharlie 发表于 2015-8-24 18:15

数字滤波需要一个不太小的窗,因此你说的边界效应是不可避免的。要降低此效应,只有减小窗的长度,又将影响滤波的效果。权衡起来,还是采集长度稍长一点,丢掉开始部分数据,比较合算。

huanhuanhua 发表于 2015-8-24 18:45

hcharlie 发表于 2015-8-24 18:15
数字滤波需要一个不太小的窗,因此你说的边界效应是不可避免的。要降低此效应,只有减小窗的长度,又将影响 ...

非常感谢您的回复,丢掉也是一种比较好的办法。我还有些问题想跟您请教下:
1、一般你们的滤波器稳定需要多长时间,我用的是2阶IIR,500Hz采样频率,稳定差不多需要400个点。这正常吗?
2、我尝试向两边扩展数据,两端只能略微改善些,但效果还是不如中心段的数据,扩展数据是不是不能达到完全消除的效果呢?
3、这个稳定的时间是不是跟h(n)的有效长度有关系呢?h(n)有效长度越长,需要的稳定时间也就越长?还是有别的一些关系。
因为我这边的应用需要实时处理,对延时也有一定的要求,所以(ˇˍˇ) 想~看看有没有什么好点的办法来缩短他的稳定时间

dsp2008 发表于 2015-8-25 07:41

又不是自适应滤波器,只要IIR滤波器的极、零点位置落在单位圆内部且离单位圆足够远,就没有稳定、不稳定一说。

huanhuanhua 发表于 2015-8-25 08:43

dsp2008 发表于 2015-8-25 07:41
又不是自适应滤波器,只要IIR滤波器的极、零点位置落在单位圆内部且离单位圆足够远,就没有稳定、不稳定一 ...

但IIR使用了递归的结构,需要依赖之前的输出,滤波效果刚开始应该没后面的好吧?

impulse 发表于 2015-8-26 07:59

huanhuanhua 发表于 2015-8-24 18:45
非常感谢您的回复,丢掉也是一种比较好的办法。我还有些问题想跟您请教下:
1、一般你们的滤波器稳定需 ...

如果是连续滤波,可以考虑带初始条件,消除后续滤波时前面的端点效应。

huanhuanhua 发表于 2015-8-26 08:52

impulse 发表于 2015-8-26 07:59
如果是连续滤波,可以考虑带初始条件,消除后续滤波时前面的端点效应。

带初始条件怎么实现呢,设置成0?我现在的处理有两种,一是两端加点延拓,二是在实现正反向滤波器时,均有先将几个需要用到的未知的输出设置为0。效果是如果输入时sin函数,那两端的效果也还挺好;如果是cos,两端总有跳变?
两端加点延拓,cos、sin下我都是这样子做的,会不会有问题?

%对数据进行延拓
le_xt = length(xt);
L = 600;
for i = 1:L%前后延拓的数据
    xa(i) = 2*xt(1)-xt(L+2-i);
    xz(i) = 2*xt(le_xt)-xt(le_xt-i);
end
xt = ;

huanhuanhua 发表于 2015-8-26 09:01

貌似我明白了,为啥cos两端会跳变,而sin不会了,谢谢大家的支持{:{03}:}

huanhuanhua 发表于 2015-8-26 09:29

感谢三位的回复,问题已经解决了{:{03}:}

dferer 发表于 2016-1-13 14:37

请问楼主是怎么解决的这个问题,共享一下吧{:{39}:}
页: [1]
查看完整版本: 请教:IIR滤波器的边界效应问题