專利名稱:有限沖擊響應數字濾波器及其實現方法
技術領域:
本發明涉及數字信號處理技術領域,尤其涉及一種有限沖擊響應數字濾波器及其實現方法。
背景技術:
有限沖擊響應(Finite Impulse Response,FIR)數字濾波器是數字信號處理系統中最基本的元件,它可以在保證任意幅頻特性的同時具有嚴格的線性相頻特性,其單脈沖響應是有限的,沒有輸入到輸出的反饋,是穩定的系統。因此,FIR濾波器在通信、圖像處理、模式識別等領域都有著廣泛的應用。 FIR數字濾波器可以通過傳統的乘累加結構來實現。傳統的乘累加器結構,就是進行乘累加運算。輸入信號x(n)經過FIR濾波器的過程是一個輸入信號與單位脈沖響應進行線性卷積的過程,即
L-Iy(n) = 'Yj h(i)x(n - i)
i=0其中,y(n)為濾波器的輸出,h(i)為濾波器的單脈沖響應,L-I為濾波器的階數。從表達式可以看出,每次輸出y(n)需要進行L次乘法和L-I次加法操作實現乘累加之和。傳統的乘累加器結構需要使用L個乘法器和L-I個加法器資源,而且隨著濾波器的階數越大,需要的乘法器和加法器越多,占用的硬件資源也就越大。對于一些特殊的應用場合,例如超高頻無源射頻識別閱讀器的前向波形成形濾波,其輸入波形為矩形波或者階梯波,為了達到較好的濾波效果需要使用高階的FIR濾波器,如果采用傳統的乘累加結構,會占用大量的硬件資源,增加設備的成本。
發明內容
本發明提供了一種有限沖擊響應數字濾波器及其實現方法,以解決當輸入信號為矩形波或階梯波時,現有的FIR濾波器需要大量乘法器和加法器,占用大量的硬件資源,增加設備的成本的問題。本發明提供了一種有限沖擊響應(FIR)數字濾波器,包括提取模塊、脈沖響應模塊和處理模塊,其中所述提取模塊,用于根據所述FIR數字濾波器的輸入信號提取出脈沖信號;所述脈沖響應模塊,用于根據所述提取模塊提取出的脈沖信號的幅度和預存的所述FIR數字濾波器的系數獲得脈沖響應信號并輸出;所述處理模塊,用于對所述脈沖響應模塊輸出的所述脈沖響應信號進行處理,并將處理結果作為該FIR濾波器的輸出信號。優選地,所述脈沖響應模塊為一個或多個。優選地,所述FIR數字濾波器還包括分配器,其中所述分配器,用于將所述脈沖信號分配給N個脈沖響應模塊,N的取值不小于所述輸入信號在單位脈沖響應時間長度內發生變化的最大次數;所述處理模塊包括加法器和積分器,其中所述加法器,用于對所述N個脈沖響應模塊輸出的脈沖響應信號進行求和,得到所述脈沖響應信號的疊加信號;所述積分器,用于對所述疊加信號進行積分,并將積分結果作為該FIR濾波器的輸出信號。優選地,若所述脈沖響應模塊為一個,則所述處理模塊包括積分器,所述積分器,用于對該脈沖響應模塊輸出的脈沖響應信號進行積分,并將積分結果作為該FIR濾波器的輸出信號。
優選地,所述脈沖響應模塊包括檢測單元、指針計數器、FIR系數表和乘法器,其中所述FIR系數表,用于保存所述FIR濾波器的系數;所述檢測單元,用于對脈沖信號進行檢測,當檢測到脈沖信號時,啟動所述指針計數器;所述指針計數器,用于查詢所述FIR系數表,從所述FIR系數表中依次取出所述FIR濾波器的系數;所述乘法器,用于對所述脈沖信號的幅度和所述系數相乘,并輸出相乘結果。本發明還提供了一種上述有限沖擊響應(FIR)數字濾波器的實現方法,該方法包括所述提取模塊根據所述FIR數字濾波器的輸入信號提取出脈沖信號;所述脈沖響應模塊根據所述提取模塊提取出的脈沖信號的幅度和預存的所述FIR數字濾波器的系數獲得脈沖響應信號并輸出;以及所述處理模塊對所述脈沖響應模塊輸出的所述脈沖響應信號進行處理,并將處理結果作為該FIR濾波器的輸出信號。優選地,所述脈沖響應模塊為一個或多個。優選地,所述方法還包括將所述脈沖信號分配給N個脈沖響應模塊,N的取值不小于所述輸入信號在單位脈沖響應時間長度內發生變化的最大次數;所述處理模塊對所述脈沖響應模塊輸出的所述脈沖響應信號進行處理,并將處理結果作為該FIR濾波器的輸出信號包括所述加法器對所述N個脈沖響應模塊輸出的脈沖響應信號進行求和,得到所述脈沖響應信號的疊加信號;以及所述積分器對所述疊加信號進行積分,并將積分結果作為該FIR濾波器的輸出信號。優選地,若所述脈沖響應模塊為一個,則所述處理模塊對所述脈沖響應模塊輸出的所述脈沖響應信號進行處理,并將處理結果作為該FIR濾波器的輸出信號包括所述積分器對該脈沖響應模塊輸出的脈沖響應信號進行積分,并將積分結果作為該FIR濾波器的輸出信號。優選地,在所述脈沖響應模塊根據所述提取模塊提取出的脈沖信號的幅度和預存的所述FIR數字濾波器的系數獲得脈沖響應信號之前,所述方法還包括將所述FIR濾波器的系數保存在所述FIR系數表中;所述脈沖響應模塊根據所述提取模塊提取出的脈沖信號的幅度和預存的所述FIR數字濾波器的系數獲得脈沖響應信號并輸出包括所述檢測單元對脈沖信號進行檢測,當檢測到脈沖信號時,啟動所述指針計數器;所述指針計數器查詢所述FIR系數表,從所述FIR系數表中依次取出所述FIR濾波器的系數;以及所述乘法器對所述脈沖信號的幅度和所述系數相乘,并輸出相乘結果。上述FIR數字濾波器及其實現方法,較好地解決了當輸入信號為矩形波或階梯波時,現有的FIR濾波器需要大量乘法器和加法器的問題,從而達到了降低資源使用、提高系·統運行速度的效果。
圖I是本發明的FIR數字濾波器的結構示意圖;圖2是本發明的脈沖響應模塊的結構示意圖;圖3是本發明658階FIR低通濾波器實施例的沖擊響應曲線示意圖;圖4是本發明658階FIR低通濾波器實施例的一個輸入信號波形示意圖;圖5是對圖4中的輸入信號進行微分提取后的脈沖信號;圖6是本發明實施例中第0個脈沖響應模塊的輸入信號波形示意圖;圖7是本發明實施例中第I個脈沖響應模塊的輸入信號波形示意圖;圖8是本發明實施例中第0個脈沖響應模塊的輸出信號波形示意圖;圖9是本發明實施例中第I個脈沖響應模塊的輸出信號波形示意圖;圖10是本發明實施例中加法器的輸出信號波形示意圖;圖11是本發明658階FIR低通濾波器的輸出信號波形示意圖。
具體實施例方式為使本發明的目的、技術方案和優點更加清楚明白,下文中將結合附圖對本發明的實施例進行詳細說明。需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互任意組合。當輸入波形是矩形波或者階梯波時,其時域波形變化緩慢,大部分時間保持恒定電平,因此可以將變化的部分提取出來,形成一系列幅度不同的脈沖組成的脈沖信號,對脈沖信號進行FIR濾波,再對濾波結果進行積分,其積分輸出等價于原信號經過FIR濾波器的濾波結果。本發明提供了一種FIR數字濾波器,該FIR數字濾波器包括提取模塊、脈沖響應模塊和處理模塊,其中所述提取模塊,用于根據所述FIR數字濾波器的輸入信號提取出脈沖信號;所述脈沖響應模塊,用于根據所述提取模塊提取出的脈沖信號的幅度和預存的所述FIR數字濾波器的系數獲得脈沖響應信號并輸出;
所述處理模塊,用于對所述脈沖響應模塊輸出的所述脈沖響應信號進行處理,并將處理結果作為該FIR濾波器的輸出信號。其中,所述脈沖響應模塊可以為一個或多個。若所述脈沖響應模塊為一個,則所述處理模塊包括積分器,所述積分器,用于對該個脈沖響應模塊輸出的脈沖響應信號進行積分,并將積分結果作為該FIR濾波器的輸出信號。另外,所述FIR數字濾波器還可以包括分配器,該分配器,用于將所述脈沖信號分配給N個脈沖響應模塊,N的取值不小于所述輸入信號在單位脈沖響應時間長度內發生變化的最大次數。此時,所述處理模塊包括加法器和積分器,其中所述加法器,用于對所述N個脈沖響應模塊輸出的脈沖響應信號進行求和,得到所述述脈沖響應信號的疊加信號;所述積分器,用于對所述疊加信號進行積分,并將積分結果作為該FIR濾波器的輸出信號;該種類型的FIR數字濾波器的結構可參見圖I。具體地,所述脈沖響應模塊可以包括檢測單元、指針控制器、FIR系數表和乘法器, 其結構如圖2所示,其中所述FIR系數表,用于保存所述FIR濾波器的系數;所述檢測單元,用于對脈沖信號進行檢測,當檢測到脈沖信號時,啟動所述指針控制器;所述指針控制器,用于查詢所述FIR系數表,從所述FIR系數表中依次取出所述FIR濾波器的系數;所述乘法器,用于對所述脈沖信號的幅度和所述系數相乘,并輸出相乘結果。本發明還提供了一種上述FIR數字濾波器的實現方法,該方法包括提取模塊根據所述FIR數字濾波器的輸入信號提取出脈沖信號;脈沖響應模塊根據所述提取模塊提取出的脈沖信號的幅度和預存的所述FIR數字濾波器的系數獲得脈沖響應信號并輸出;以及處理模塊對所述脈沖響應模塊輸出的所述脈沖響應信號進行處理,并將處理結果作為該FIR濾波器的輸出信號。如圖I所示的FIR數字濾波器的實現方法包括步驟I、將FIR濾波器的單位脈沖響應存儲在一張表中作為FIR濾波器的系數;步驟2、輸入信號經過提取模塊101進行微分,提取出脈沖信號;步驟3、脈沖信號經過分配器102按順序依次分配給脈沖響應池103中的N個脈沖響應模塊,N的取值不小于輸入信號在單位脈沖響應時間長度內發生變化的最大次數;脈沖響應池103由第0個脈沖響應模塊104、第I個脈沖響應模塊105、第2個脈沖響應模塊106....和第N-I個脈沖響應模塊107共N個脈沖響應模塊組成,N個脈沖響應模塊輸出的結果分別是S0、S1' S2......Sn^1 ;各個如圖2所示的脈沖響應模塊的處理過程為輸入脈沖信號送入檢測單元201進行檢測,當檢測到脈沖信號時,啟動指針控制器202進行查表,由于FIR系數為有限個,且預先按順序存儲在FIR系數表中,因此可以通過指針依次按順序取出FIR系數表203中的FIR系數,FIR系數和輸入脈沖信號的幅度輸入到乘法器204中,其相乘結果作為該脈沖響應模塊的輸出;步驟4、脈沖響應池103輸出的N個脈沖響應信號S。、S1^S2......Sn^1輸入給加法
器109進行相加求和,輸出信號為S ;步驟5、求和后的信號S再輸入到積分器110中進行積分,積分后的結果作為該濾波器的輸出。
如果輸入信號變化的間隔時間小于FIR濾波器的單位脈沖響應時間長度,則需要采用分配器給多個脈沖響應模塊分配脈沖信號,然后由多個脈沖響應模塊輸出各自的脈沖響應,再對所有的多個脈沖響應模塊輸出的脈沖響應進行求和、積分運算。如果輸入信號變化的間隔時間大于FIR濾波器的單位脈沖響應時間長度,則只需要一個脈沖響應模塊,該脈沖響應模塊根據輸入的脈沖信號的幅度計算并輸出脈沖響應,然后進行積分。本發明以一個658階的低通FIR濾波器為例來說明FIR數字濾波器的實現過程,如圖3所示,是本發明658階FIR低通濾波器的沖擊響應曲線示意圖,如圖4所示,是本發明658階FIR低通濾波器的一個輸入信號的波形示意圖,其波形為臺階波,該658階FIR低通濾波器的實現方法包括步驟SlOjf 658階FIR濾波器的單位脈沖響應作為FIR濾波器的系數存儲在FIR系數表中;根據圖3所示的單位脈沖響應獲得FIR濾波器的系數; 步驟S20、將圖4中的階梯輸入數據進行微分提取,提取后的脈沖信號如圖5所示;由于在該濾波器的單位脈沖響應長度內發生變化的最大次數為2(如圖5中的2號和3號脈沖信號),取N為2,因此脈沖響應池中設計有兩個脈沖響應模塊;當然,也可以設計三個或更多個脈沖響應模塊,但是為了充分利用資源,該實施例中只采用兩個脈沖響應豐吳塊;步驟S30、在分配器中對脈沖信號進行計數,如圖5中的1,2,3,4,5,6,7,8分別表示對各個脈沖的計數結果,根據計數結果依次分配給脈沖響應池中的兩個脈沖響應模塊,將奇數脈沖(1,3,5,7)分配至第0個脈沖響應模塊,偶數脈沖(2,4,6,8)分配至第I個脈沖響應模塊;圖6和圖7分別是第0個脈沖響應模塊和第I個脈沖響應模塊的輸入信號波形示意圖;由于在該實施例中,在該FIR濾波器的單位脈沖響應時間長度內發生變化的最大次數為兩次,而這兩次對應于圖5中的2號和3號脈沖信號,因此,只要將2號和3號脈沖信號分別分配至第0個和第I個脈沖響應模塊即可;其他脈沖信號可以均分配至第0個脈沖響應模塊或第I個脈沖響應模塊;也可以隨機分配幾個至第0個脈沖響應模塊,剩余幾個分配至第I個脈沖響應模塊;優選地,是將奇數脈沖(1,3,5,7)分配至第0個脈沖響應模塊,偶數脈沖(2,4,6,8)分配至第I個脈沖響應模塊;或者,將奇數脈沖(1,3,5,7)分配至第I個脈沖響應模塊,偶數脈沖(2,4,6,8)分配至第0個脈沖響應模塊,該種分配方案可以更好地提高處理效率;步驟S40、各個脈沖響應模塊將輸入的脈沖信號分別送入檢測單元進行檢測,當檢測到脈沖信號時,啟動指針計數器進行查表,通過指針取出表中的FIR系數,將該FIR系數和脈沖信號的幅度相乘,得到脈沖響應信號。圖8是第0個脈沖響應模塊輸出的脈沖響應信號SO ;圖9是第I個脈沖響應模塊輸出的脈沖響應信號SI ;步驟S50、脈沖響應池輸出的脈沖響應信號SO和SI輸入至加法器進行相加,得到如圖10所示的波形S ;步驟S60、對S信號進行積分,將積分后的結果作為該濾波器的輸出;圖11是本發明658階低通FIR濾波器的輸出波形。上述實施例只需要兩個乘法器和兩個加法器實現(確切地,此處應該是一個加法器和一個積分器,由于積分器本質上是累加器,是加法結果和新輸入數據的相加,因而寫成兩個加法器),如果采用傳統的乘累加結構實現,則需要使用659個乘法器和658加法器。若FIR數字濾波器采用對稱結構,則乘法器的個數可以減半為329個,即便如此,需要的乘法器也較多,因此從實例和仿真結果可以看出,在輸入波形為階梯波或者矩形波時,采用本發明的方法能夠解決現有技術中FIR濾波器需要大量乘法器和加法器的問題,達到了降低資源使用、提高系統運行速度的效果。本領域普通技術人員可以理解上述方法中的全部或部分步驟可通過程序來指令相關硬件完成,上述程序可以存儲于計算機可讀存儲介質中,如只讀存儲器、磁盤或光盤等??蛇x地,上述實施例的全部或部分步驟也可以使用一個或多個集成電路來實現。相應地,上述實施例中的各模塊/單元可以采用硬件的形式實現,也可以采用軟件功能模塊的形式實現。本發明不限制于任何特定形式的硬件和軟件的結合。 以上實施例僅用以說明本發明的技術方案而非限制,僅僅參照較佳實施例對本發明進行了詳細說明。本領域的普通技術人員應當理解,可以對本發明的技術方案進行修改或者等同替換,而不脫離本發明技術方案的精神和范圍,均應涵蓋在本發明的權利要求范圍當中。
權利要求
1.一種有限沖擊響應(FIR)數字濾波器,包括提取模塊、脈沖響應模塊和處理模塊,其中 所述提取模塊,用于根據所述FIR數字濾波器的輸入信號提取出脈沖信號; 所述脈沖響應模塊,用于根據所述提取模塊提取出的脈沖信號的幅度和預存的所述FIR數字濾波器的系數獲得脈沖響應信號并輸出; 所述處理模塊,用于對所述脈沖響應模塊輸出的所述脈沖響應信號進行處理,并將處理結果作為該FIR濾波器的輸出信號。
2.根據權利要求I所述的FIR數字濾波器,其特征在于 所述脈沖響應模塊為一個或多個。
3.根據權利要求2所述的FIR數字濾波器,其特征在于,所述FIR數字濾波器還包括分配器,其中 所述分配器,用于將所述脈沖信號分配給N個脈沖響應模塊,N的取值不小于所述輸入信號在單位脈沖響應時間長度內發生變化的最大次數; 所述處理模塊包括加法器和積分器,其中 所述加法器,用于對所述N個脈沖響應模塊輸出的脈沖響應信號進行求和,得到所述脈沖響應信號的疊加信號; 所述積分器,用于對所述疊加信號進行積分,并將積分結果作為該FIR濾波器的輸出信號。
4.根據權利要求2所述的FIR數字濾波器,其特征在于 若所述脈沖響應模塊為一個,則所述處理模塊包括積分器,所述積分器,用于對該脈沖響應模塊輸出的脈沖響應信號進行積分,并將積分結果作為該FIR濾波器的輸出信號。
5.根據權利要求1-4任一權利要求所述的FIR數字濾波器,其特征在于 所述脈沖響應模塊包括檢測單元、指針計數器、FIR系數表和乘法器,其中 所述FIR系數表,用于保存所述FIR濾波器的系數; 所述檢測單元,用于對脈沖信號進行檢測,當檢測到脈沖信號時,啟動所述指針計數器; 所述指針計數器,用于查詢所述FIR系數表,從所述FIR系數表中依次取出所述FIR濾波器的系數; 所述乘法器,用于對所述脈沖信號的幅度和所述系數相乘,并輸出相乘結果。
6.一種如權利要求I所述的有限沖擊響應(FIR)數字濾波器的實現方法,該方法包括 所述提取模塊根據所述FIR數字濾波器的輸入信號提取出脈沖信號; 所述脈沖響應模塊根據所述提取模塊提取出的脈沖信號的幅度和預存的所述FIR數字濾波器的系數獲得脈沖響應信號并輸出;以及 所述處理模塊對所述脈沖響應模塊輸出的所述脈沖響應信號進行處理,并將處理結果作為該FIR濾波器的輸出信號。
7.根據權利要求6所述的方法,其特征在于 所述脈沖響應模塊為一個或多個。
8.根據權利要求7所述的方法,其特征在于,所述方法還包括將所述脈沖信號分配給N個脈沖響應模塊,N的取值不小于所述輸入信號在單位脈沖響應時間長度內發生變化的最大次數; 所述處理模塊對所述脈沖響應模塊輸出的所述脈沖響應信號進行處理,并將處理結果作為該FIR濾波器的輸出信號包括 所述加法器對所述N個脈沖響應模塊輸出的脈沖響應信號進行求和,得到所述脈沖響應信號的疊加信號;以及 所述積分器對所述疊加信號進行積分,并將積分結果作為該FIR濾波器的輸出信號。
9.根據權利要求7所述的方法,其特征在于 若所述脈沖響應模塊為一個,則所述處理模塊對所述脈沖響應模塊輸出的所述脈沖響應信號進行處理,并將處理結果作為該FIR濾波器的輸出信號包括 所述積分器對該脈沖響應模塊輸出的脈沖響應信號進行積分,并將積分結果作為該FIR濾波器的輸出信號。
10.根據權利要求6所述的方法,其特征在于 在所述脈沖響應模塊根據所述提取模塊提取出的脈沖信號的幅度和預存的所述FIR數字濾波器的系數獲得脈沖響應信號之前,所述方法還包括 將所述FIR濾波器的系數保存在所述FIR系數表中; 所述脈沖響應模塊根據所述提取模塊提取出的脈沖信號的幅度和預存的所述FIR數字濾波器的系數獲得脈沖響應信號并輸出包括 所述檢測單元對脈沖信號進行檢測,當檢測到脈沖信號時,啟動所述指針計數器; 所述指針計數器查詢所述FIR系數表,從所述FIR系數表中依次取出所述FIR濾波器的系數;以及 所述乘法器對所述脈沖信號的幅度和所述系數相乘,并輸出相乘結果。
全文摘要
本發明提供了一種有限沖擊響應數字濾波器及其實現方法,該濾波器包括提取模塊、脈沖響應模塊和處理模塊,其中所述提取模塊,用于根據所述FIR數字濾波器的輸入信號提取出脈沖信號;所述脈沖響應模塊,用于根據所述提取模塊提取出的脈沖信號的幅度和預存的所述FIR數字濾波器的系數獲得脈沖響應信號并輸出;所述處理模塊,用于對所述脈沖響應模塊輸出的所述脈沖響應信號進行處理,并將處理結果作為該FIR濾波器的輸出信號。上述FIR數字濾波器及其實現方法,較好地解決了當輸入信號為矩形波或階梯波時,現有的FIR濾波器需要大量乘法器和加法器的問題,從而達到了降低資源使用、提高系統運行速度的效果。
文檔編號H03H17/02GK102811035SQ20111014312
公開日2012年12月5日 申請日期2011年5月30日 優先權日2011年5月30日
發明者周恒箴, 曾祥希 申請人:中興通訊股份有限公司