作者alrightwill (欧莱威尔)
看板Electronics
标题[问题] 有关FIR滤波器阶数越高会产生的问题
时间Sat Sep 20 20:29:27 2014
最近在自学FIR数位滤波器
对於"滤波器阶数越高"产生的一些现象感到好奇
虽然阶数越高的滤波器通带与阻带的界限划分越明显 也越接近理想滤波
但是不是也会对原讯号产生越大的改变呢(失真?)
以下是我用程式语言实际数位滤波的情形:(使用不同阶数的 低通滤波器
原讯号:60 Hz 混合 400 Hz
http://i.imgur.com/M2BByvq.png
5阶数位滤波器 可看到有滤波效果但很差
http://i.imgur.com/anq3cPG.png
7阶数位滤波器 400 Hz已经被滤掉绝大部分
http://i.imgur.com/hvZJDcZ.png
*15阶
http://i.imgur.com/eawQGJH.png *31阶
http://i.imgur.com/DO4mJJ0.png
*想发问的重点 在60Hz周围的讯号强度 为何开始高突起来?? 不像5阶7阶周围是平坦的
是因为原讯号受滤波器影响导致的吗?
如果是, 那该如何在 滤波器阶数与滤波效果 之间做取舍?
61阶 频谱开始变形了
http://i.imgur.com/IksfHqh.png
请各位前辈不吝解答
或是给个方向 谢谢!
>>> 补上impulse response
7阶
http://i.imgur.com/9cjraRp.png 15阶
http://i.imgur.com/Sj0gWxI.png
31阶
http://i.imgur.com/X4klbMh.png 61阶
http://i.imgur.com/VySbFtk.png
>>> 忘了提到一点
我的滤波器初始条件都是给0
也就是说假设 y[n] = x[n] + x[n-1] + x[n-2] + x[n-3]
x[n-1]~x[n-3] 都是先给0
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.112.27.12
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/Electronics/M.1411216171.A.F18.html
1F:推 ultimachen: 看impulse response转频域会比较清楚 09/20 21:26
2F:推 bxxl: 你是不是只取一小段时间来作FFT? 愈高阶的filter尾巴拖愈长 09/20 21:52
3F:→ bxxl: 可能response超过你取的window之外,被你砍掉了吧 09/20 21:52
4F:→ bxxl: 可能要把code的细节写出来才能找问题 09/20 21:53
※ 编辑: alrightwill (140.112.27.12), 09/20/2014 21:58:58
5F:推 bxxl: 频谱是用来看steady state的,你前面的暂态部份影响太大导致 09/20 22:03
6F:→ bxxl: 你可以改成灌256点进去,取後面128点来做fft,这样就避开暂态 09/20 22:04
7F:→ bxxl: 这样应该到128阶不会有问题 09/20 22:05
8F:→ alrightwill: 一直没想到避暂态这问题~ 调整後正常多了,万分感谢! 09/21 17:41