繼續講解!上堂課講到FIR濾波器的線性相位特點,分析了線性相位帶來的延時特性。本堂課繼續講解FIR濾波器的幅度特性,再理論聯系實際的看看FIR濾波器到底長什么樣?有什么用?聽我慢慢道來。
在MATLAB自帶的函數中,有fir1和fir2函數。前者是是用窗函數法設計線性相位FIR的工具箱函數,以實現線性相位FIR的標準窗函數法設計。后者是基于頻率基本法的FIR濾波器設計,用于任意頻率響應的加窗數字FIR濾波器的設計。
信號通常是一維數組,可以用fir1和fir2函數處理。二維數組處理方式會有些差異。圖像處理中會涉及二維數組的處理,這里只是提一下,能讓同學們有個了解。二維數據主要是圖像數據,圖像濾波主要用imfilter函數。可以用fspecial函數預定義各種二維濾波器。這些知識會在《數字圖像處理》課程中詳細講解,這里不再贅述。
講完這些理論,來一些涉及程序仿真的內容,看看理論能不能聯系實際!
公眾號的這部分內容會讓你理論聯系仿真!
信號中經常混有各種復雜成分,有需要的成分,也有不需要的成分。很多信號分析都是基于濾波器而進行, 因此數字濾波器占有極其重要的地位 。數字濾波器是具有一定傳輸選擇特性的數字信號處理裝置,其輸入與輸出均為數字信號實質上是一個由有限精度算法實現的線性時不變離散系統。它的基本工作原理是利用離散系統特性對系統輸入信號進行加工和變換,改變輸入序列的頻譜或信號波形,讓有用頻率的信號分量通過,抑制無用的信號分量輸出。數字濾波器和模擬濾波器有著相同的濾波概念,根據其頻率響應特性可分為低通、高通、帶通、帶阻等類型。與模擬濾波器相比,數字濾波器除了具有數字信號處理固有優點外,還有精度高、穩定性好、靈活性強等優點。FIR濾波器具有線性相位,但它的傳遞函數的極點固定在原點,只能通過改變零點位置來改變性能,為了達到高的選擇性必須用較高的階數。對于同樣的濾波器設計指標,FIR濾波器要求的階數可能比IIR濾波器高10倍以上。
由于FIR數字濾波器具有嚴格的相位特性,對于信號處理和數據傳輸是很重要的。目前 FIR濾波器的設計方法主要有三種:窗函數法、頻率抽樣法和優化設計(切比雪夫逼近)方法。我們重點學習窗函數法。上堂課也簡單提及了一下!
看看結果吧!
學以致用!而且必須致用!
不然何為工科生?
作業來了,因為偏向應用,所以編程的內容較多,等待大家的程序運行結果。
在第一版文章中,對fir2函數的描述有錯誤。這個函數不是用來處理二維數組的!它可以用于設計有任意頻率響應的加窗FIR濾波器。對標準的低通、帶通、高通和帶阻濾波器的設計可使用fir1函數。
語法:b = fir2(n,f,m)
設計出一個n階的FIR濾波器。其濾波器的頻率特性由參數f和m決定。參數f為頻率點矢量,且f∈[0,1],f=1對應于0.5fs。矢量f按升序排列,且第一個元素必須是0,最后一個必須為1,并可以包含重復的頻率點。矢量m中包含了與f相對應的期望得到的濾波器的幅度。f為歸一化頻率向量。舉例如下:設計一個100階的低通濾波器。運行一下下圖中的代碼,看看能出什么結果?
如果要求設計一個奇怪形狀的濾波器呢?
比如設計一個80階的FIR濾波器,要求濾波器0到π/4的幅度響應為0 ,π/4到π/2的幅度響應為1/4,π/2到3π/4的幅度響應為0,3π/4到1的幅度響應為1。采用切比雪夫窗。該怎么寫程序呢?
有程序有圖就有真正的理解!
再回到二維數組的話題!之前學過的卷積和濾波函數都是針對一維數組使用,那么能針對二維數組嗎?在MATLAB中,filter2 函數實現二維數字濾波器。conv2 函數實現二維卷積。之前本人搞混淆了,記成了fir2是用來實現二維數字濾波器的函數,在此更正一下!
現在Python非常流行,很多人也會使用Python來完成信號處理的仿真。提示一下。在 Python中,MATLAB filter2的等效函數是 scipy.signal.correlate2d。MATLAB conv2的等效函數是 scipy.signal.convolve2d。要先安裝scipy庫文件,才能調用這兩個函數。數字信號處理理論的發展過程很緩慢,因為之前的科學家已經研究的很透徹了,但軟件的發展一直在加速。應用什么樣的軟件來進行數字信號處理的仿真可以根據自己的喜好來選擇。我個人推薦MATLAB,相關仿真的文章在本公眾號里面可以找到!但是針對數據分析呢?我推薦Python。在語言類分析的場合,它更是功效無窮!本章完結!
20170531記錄:
原文標題:數字信號處理v2 第七章 FIR數字濾波器的設計方法(2)
-
通信網絡
+關注
關注
21文章
2047瀏覽量
52223
發布評論請先 登錄
相關推薦
ADS1293內部的數字濾波器是怎么樣的作用?
AMC1304后接的數字濾波器接口應該是什么樣的?
模擬濾波器到數字濾波器的轉換步驟
ADS1256的數字濾波器時可以自己設置嗎?
ADC3663數字濾波器如何使用呢?
基于FPGA實現FIR數字濾波器
![基于FPGA實現<b class='flag-5'>FIR</b><b class='flag-5'>數字濾波器</b>](https://file1.elecfans.com/web2/M00/0B/C9/wKgaomcp1z2ANDBJAAAG52-NZzg463.jpg)
數字濾波器的原理和應用
![<b class='flag-5'>數字濾波器</b>的原理和應用](https://file1.elecfans.com/web2/M00/01/8A/wKgaomawitSAGK5dAADbeS9jzGM672.jpg)
數字濾波器是如何工作的
![<b class='flag-5'>數字濾波器</b>是如何工作的](https://file1.elecfans.com/web2/M00/ED/39/wKgZomZqVSqAFZz2AAAOoRP4BMU604.png)
評論