作者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://www.ptt.cc/bbs/Electronics/M.1411216171.A.F18.html
推 ultimachen: 看impulse response轉頻域會比較清楚 09/20 21:26
推 bxxl: 你是不是只取一小段時間來作FFT? 愈高階的filter尾巴拖愈長 09/20 21:52
→ bxxl: 可能response超過你取的window之外,被你砍掉了吧 09/20 21:52
→ bxxl: 可能要把code的細節寫出來才能找問題 09/20 21:53
※ 編輯: alrightwill (140.112.27.12), 09/20/2014 21:58:58
推 bxxl: 頻譜是用來看steady state的,你前面的暫態部份影響太大導致 09/20 22:03
→ bxxl: 你可以改成灌256點進去,取後面128點來做fft,這樣就避開暫態 09/20 22:04
→ bxxl: 這樣應該到128階不會有問題 09/20 22:05
→ alrightwill: 一直沒想到避暫態這問題~ 調整後正常多了,萬分感謝! 09/21 17:41