滤波器的效率
在前面討論好濾波器的標準的時候,主要是從濾波器的性能方面來考慮的。實際上,好濾波器的另外一個更高的標準在于滿足性能要求的情況下效率要高。更多的時候,好的濾波器是性能與效率的折中。這是因為DSP的使命和任務主要在于實時處理,因此,必然要對運算效率有很高的要求。那么,怎么來衡量一個濾波器的效率呢?
衡量濾波器效率最常用的標準是濾波器的階數。在滿足性能要求的條件下,濾波器階數越低則效率越高。無論是FIR濾波器,還是IIR濾波器都是如此。當然,FIR濾波器的階數和IIR濾波器的階數是完全不同的概念。實現同樣的性能,IIR濾波器所需的階數要遠低于FIR濾波器。從理論上來說,只要階數足夠高,FIR濾波器幾乎能滿足任何的性能要求。但隨著階數的增加,運算效率越來越低。因為FIR濾波是基于卷積運算的,雖然卷積可用FFT來快速實現,但隨著點數的增加,時間的開銷還是相當之大,很難滿足實時性的要求。IIR濾波器的效率要遠高于FIR濾波器,但IIR濾波器由于穩定性及相位的非線性等問題,限制了它的應用。
衡量濾波器效率的第二個標準在于濾波器的實現結構,這點則通常為人們所忽略。實際上,在階數相同的情況下,不同的實現結構,運算效率可能相去甚遠。比如FIR濾波器來說,最簡單,也是最普通的實現結構是橫向結構。這種結構的運算效率比較低。如果FIR濾波器系數中含有比較多的0,則采用頻率采樣結構,多相結構對效率會有比較大的提高。另外,還可根據濾波器系數和具體DSP的結構,選用串聯結構、并聯結構,格型結構等不同的實現結構,以使運算效率最高。對IIR濾波器也一樣,有多種實現結構,要根據具體的情況選擇。
在濾波器設計過程中,實際上也包含著這么兩個過程。一是濾波器系數的設計。這是一般教科書上介紹比較多的,有一些比較成熟的思路,比如FIR濾波器的窗函數設計法,IIR的雙線性變換法等。另外一個過程是設計濾波器的實現結構。當然,在具體編程時,充分發揮所用DSP的特性,也在一定程度上影響最終的效率,這就是另外一個層面的問題了。
總結
- 上一篇: python head 函数_pytho
- 下一篇: 磁盘sda,hda,sda1,并行,串行