IIR無限衝激響應和FIR有限衝激響應數字濾波器有什麼區別?
來自專欄與信號處理有關的那些東東4 人贊了文章
從名字上看,「無限衝激響應」和「有限衝激響應」的區別一定在「衝激響應」上。在之前的文章里我們講到了衝激響應的概念,文章里用被打了一巴掌(單位脈衝)後鼓起來的「包」來描述的衝激響應。
有些人的「包」幾分鐘可以消腫直至消失,就是有限衝激相應;有些人的「包」雖然會慢慢變小,但是永遠不會消失,就是無限衝激響應。
那麼問題來了,IIR和FIR數字濾波器有什麼區別?
區別1:結構形式
兩種濾波器最直觀的區別就體現在結構形式上。
這裡直接放公式了,公式並不難理解:
IIR的方程中,當前輸出y(n)是由當前輸入x(n)、過去輸入x(n-1)、x(n-2)...、過去輸出y(n-1)、y(n-2)...這三類值共同決定的。
而在FIR方程中,則沒有過去輸出這一項。
由於IIR的當前輸出受到以前輸出值的影響,所以它是有反饋的,或者說其輸出值是遞歸的;相對應的,FIR就是無反饋、非遞歸的。
需要注意的是,上述差分方程中的係數a和b不是單純的常數。
區別2:相位特性
濾波會引起相位延遲,為什麼呢。首先看下圖:
其中三張圖分別是原始信號頻譜圖、濾波器頻譜圖和濾波後信號的頻譜圖。圖2可以是理想情況下的低通濾波器。圖1*圖2=圖3就是濾波在頻域上的表示過程(相乘),也很好理解。不過看到這裡大家會想起什麼?之前的文章里提到過:頻域上相乘即時域上卷積。
暫且把這個卷積寫成y(k)=∑h(k)x(n-k)。(對於IIR,k取從0到n;對於FIR,k取從0到N-1)
也就是說對於輸出y(k),其值是由其之前N或n個輸入點共同決定的,這就是引起相位延遲的原因。
IIR為非線性相位延遲,FIR為線性相位延遲。即IIR的相位延遲會隨著輸入波形的變化而變化,而FIR的相位延遲為一確定值。FIR的相位補償只需要對輸出結果平移即可,IIR的相位補償複雜一些,不過在matlab上實現同樣很容易。
區別3:穩定性、運算速度、運算誤差設計難度
FIR的極點全部在原點(z變換),是穩定的。IIR不一定穩定。
FIR運算速度快,IIR運算速度慢
FIR運算誤差小,IIR由於有反饋,可能會產生極限環。
FIR設計難度高,需要藉助計算機程序完成,IIR設計難度低。
文章如要轉載請私信與我聯繫,並註明來源知乎專欄與信號處理有關的那些東東作者Mr.括弧。
【圖文】數字濾波器_百度文庫
詳解FIR濾波器和IIR濾波器的區別_百度文庫
https://www.douban.com/note/59297172/
第六章 IIR數字濾波器的理論與設計
第七章 FIR數字濾波器的原理與設計
濾波器穩定性與極點_百度文庫
推薦閱讀:
※聲音合成的秘密『4』(濾波器和相位關係)… - 縮混&錄音&拾音
※Sinc濾波器
※一些關於濾波頻率等級CFC的信息
※有源濾波器與無源濾波器的區別