專利名稱:一種fir濾波器的處理方法、裝置和系統(tǒng)的制作方法
技術領域:
本發(fā)明涉及通信領域,尤其涉及ー種FIR濾波器的處理方法、裝置和系統(tǒng)。
背景技術:
有限沖擊響應(FIR, Finite Impulse Response)濾波器,是數字信號處理系統(tǒng)中最基本的元件,目前,在數字通信系統(tǒng)中,越來越多的采用FIR濾波器實現數字信號濾波,FIR濾波器具有穩(wěn)定及具有嚴格的線性相頻特性等明顯的優(yōu)勢,其傳遞函數可表示為
NH (z)= V h,= 1 ;其中,I3i為濾波器系數,N為濾波器的階數,為輸入的信號數據。目前,FIR濾波器一般由多個寄存器、多個乘法器和多個加法器構成,主要根據FIR濾波器幅頻(FIR濾波器通帶類型、截止頻率、通帶增益和阻帶增益)或相頻響應要求等通過計算得到濾波器系數h和濾波器的階數N。如圖I所示,圖I是現有技術中的FIR濾波器的實現結構,其中,寄存器用于緩存輸入數據,乘法器用于將輸入數據與濾波器系數相乘,加法器用于將乘法器的輸出結果進行累加。濾波時,對于ー個N階濾波器,需要N+1乘法器和N+1個加法器并行地進行加法運算和乘法運算。其中,對于ー個N階,輸入數據為M比持,濾波器系數h的量化精度為X比特的FIR濾波器,需要NXM比特的存儲單元,N+1個2輸入乘法單元,N個2輸入加法単元。在對現有技術的研究和實踐過程中,本發(fā)明的發(fā)明人發(fā)現,現有技術中的FIR濾波器需要對輸入數據進行緩存,并且乘法器和加法器是并行地對輸入信號進行濾波,當輸入信號位寬較大,階數較多時,處理效率低,并且需要占用大量邏輯,成本和功耗都很高。
發(fā)明內容
本發(fā)明實施例提供了ー種FIR濾波器的處理方法、裝置和系統(tǒng),可以高效、實時地濾波,節(jié)約資源,降低功耗。ー種FIR濾波器的處理方法,包括獲取輸入信號; 將輸入信號儲存在FIR濾波器的存儲器SRAM中,使得每ー個輸入信號得到N+1個信號數據,N為FIR濾波器的最大階數;從SRAM中依次讀出ー個輸入信號所對應的N+1個信號數據,并在每讀出ー個信號數據時更新一次讀標識;根據讀標識獲取當前信號數據所對應的濾波器系數;將當前信號數據和獲取到的濾波器系數進行乘法運算,得到當前信號數據的乘法運算結果;將ー個輸入信號所對應的N+1個信號數據所得到的乘法運算結果進行累加,得到加法運算結果;、
輸出加法運算結果。一種濾波裝置,包括第一獲取單兀,用于獲取輸入信號;儲存單元,用于將第一獲取單元獲取到的輸入信號儲存在FIR濾波器的存儲器SRAM中,使得每ー個輸入信號得到N+1個信號數據,N為FIR濾波器的最大階數;讀取單元,用于從SRAM中依次讀出ー個輸入信號所對應的N+1個信號數據,并在每讀出ー個信號數據時更新一次讀標識;第二獲取單元,用于根據讀取單元更新的讀標識獲取當前信號數據所對應的濾波器系數;
乘法運算單元,用于將讀取單元讀取到的當前信號數據和第二獲取單元獲取到的濾波器系數進行乘法運算,得到當前信號數據的乘法運算結果;加法運算單元,用于將ー個輸入信號所對應的N+1個信號數據通過乘法運算單元得到的乘法運算結果進行累加,得到加法運算結果;輸出單元,用于輸出加法運算單元得到的加法運算結果。ー種濾波系統(tǒng),包括上述任一種濾波裝置。ー種FIR濾波器,包括SRAM,用于獲取輸入信號,并將輸入信號儲存,使得每ー個輸入信號得到N+1個信號數據,N為FIR濾波器的最大階數,并依次讀出ー個輸入信號所對應的N+1個信號數據,在每讀出ー個信號數據時更新一次讀標識;MUX,用于根據SRAM更新的讀標識輸出與SRAM讀出的當前信號數據所對應的濾波器系數;乘法器,用于將SRAM讀出的當前信號數據和MUX輸出的濾波器系數進行乘法運算,得到當前信號數據的乘法運算結果;加法器,用于將ー個輸入信號所對應的N+1個信號數據通過乘法器得到的乘法運算結果進行累加,得到加法運算結果,并輸出加法運算結果。從以上技術方案可以看出,本發(fā)明實施例具有以下優(yōu)點本發(fā)明實施例采用先獲取輸入信號,將獲取到的輸入信號儲存在FIR濾波器的SRAM中,使得每ー個輸入信號得到N+1個信號數據,N為FIR濾波器的最大階數,然后從SRAM中依次讀出ー個輸入信號所對應的N+1個信號數據,并在每讀出ー個信號數據時更新一次讀標識,然后根據該讀標識獲取當前信號數據所對應的濾波器系數,將當前信號數據和獲取到的濾波器系數進行乘法運算,得到當前信號數據的乘法運算結果,再將ー個輸入信號所對應的N+1個信號數據所得到的乘法運算結果進行累加,得到加法運算結果并輸出。本實施例由于將獲取的輸入信號儲存在密度很高的SRAM中,并可以從SRAM中依次讀出一個輸入信號所對應的N+1個信號數據,并在每讀出ー個信號數據時更新一次讀標識來獲取當前信號數據所對應的濾波器系數,可以避免緩存導致的濾波效率低,可以高效、實時地濾波;本實施例中將當前信號數據和獲取到的濾波器系數進行乘法運算,再將一個輸入信號所對應的N+1個信號數據所得到的乘法運算結果進行累加,是通過分時復用ー個加法器和一個乘法器進行濾波處理,可以節(jié)約資源,降低功耗。
為了更清楚地說明本發(fā)明實施例的技術方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。圖I是現有技術中FIR濾波器的實現結構示意圖;圖2是本發(fā)明實施例中FIR濾波器的處理方法的流程圖;圖3是本發(fā)明實施例中濾波裝置的ー個示意圖;圖4是本發(fā)明實施例中濾波裝置的另ー個示意圖;圖5是本發(fā)明實施例中FIR濾波器的ー個示意圖; 圖6是本發(fā)明實施例中FIR濾波器的另ー個示意圖;圖7是本發(fā)明實施例中FIR濾波器的實現結構示意圖。
具體實施例方式下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。本發(fā)明實施例提供了ー種FIR濾波器的處理方法,用于高效、實時地濾波,還可以節(jié)約資源,降低功耗。本發(fā)明實施例還提供相應的濾波裝置,以及濾波系統(tǒng)。以下分別詳細說明。實施例一本實施例將從濾波裝置的角度進行描述,其中,該濾波裝置可以是ー個N階,輸入信號為M比特,濾波器系數h的量化精度為X比特的FIR濾波器(以下簡稱FIR濾波器)。需說明的是,本實施例中的FIR濾波器的傳遞函數可表示為H (z)= Yj b, = ^ ;
^ = O其中,I3i為濾波器系數,N為FIR濾波器的階數,f為輸入的信號數據。ー種FIR濾波器的處理方法,包括先獲取輸入信號,將獲取到的輸入信號儲存在FIR濾波器的儲存器(SRAM,StaticRandom Access Memory)中,使得每ー個輸入信號得到N+1個信號數據,N為FIR濾波器的最大階數,然后從SRAM中依次讀出ー個輸入信號所對應的N+1個信號數據,并在每讀出ー個信號數據時更新一次讀標識,然后根據該讀標識獲取當前信號數據所對應的濾波器系數,將當前信號數據和獲取到的濾波器系數進行乘法運算,得到當前信號數據的乘法運算結果,再將一個輸入信號所對應的N+1個信號數據所得到的乘法運算結果進行累加,得到加法運算結果并輸出。如圖2所示,具體流程可以如下101、獲取輸入信號;其中,本實施例中的濾波裝置一般有兩個端ロ,ー個端ロ用于獲取輸入信號,ー個端ロ用于輸出信號。
其中,對于ー個N階FIR濾波器,ー個輸入信號包括N+1個信號數據。例如,對于ー個3階FIR濾波器,ー個輸入信號包括4個信號數據。102、將步驟101中獲取到的輸入信號儲存在FIR濾波器的存儲器SRAM中,使得每ー個輸入信號得到N+1個信號數據;例如,具體可以如下可選的,將輸入信號儲存在FIR濾波器的存儲器SRAM中,具體可以通過以下步驟實現當步驟101中獲取到的輸入信號有效時,獲取該輸入信號的寫地址,然后根據該輸入信號的寫地址將輸入信號寫入SRAM中。由此,每ー個輸入信號可以得到N+1個信號數據,其中,N為FIR濾波器的最大階
數。例如,ー個3階FIR濾波器,每ー輸入信號包括有4個信號數據。需說明的是,下ー個有效輸入信號的寫地址為前ー個輸入信號的寫地址加1,以此類推,從而將所有輸入信號依次寫入SRAM中。同理,每ー個輸入信號都可以得到N+1個信號數據。其中,SRAM是靜態(tài)隨機存儲器,該SRAM是ー種具有靜止存取功能的內存,不需要刷新電路即能保存它內部存儲的數據,密度高,速度快,性能好。相比現有技術,本實施例中的信號數據儲存在SRAM中,避免了使用寄存器進行緩存導致的濾波效率低等問題。應當理解的是,對于ー個N階,輸入信號為M比持,濾波器系數h的量化精度為X比特的FIR濾波器,FIR濾波器的SRAM的尺寸為(N+1) XM0103、從SRAM中依次讀出ー個輸入信號所對應的N+1個信號數據,并在每讀出ー個信號數據時更新一次讀標識;例如,具體可以如下首先,確定當前需要讀取的輸入信號,并獲得當前需要讀取的輸入信號的讀地址。其中,假設獲取到10個輸入信號時,需要將這10個輸入信號依次進行濾波并輸出。例如,當前需要讀取的輸入信號為第二個,首先確定當前需要讀取的輸入信號,首先確定當前需要讀取的輸入信號,并獲得當前需要讀取的輸入信號的讀地址。優(yōu)選的,獲得當前需要讀取的輸入信號的讀地址,具體可以根據輸入信號的寫地址給當前需要讀取的輸入信號賦值,得到當前需要讀取的輸入信號的讀地址。其中,由步驟102可知,每當ー個輸入信號有效時,可以得到N+1個信號數據,這N+1個信號數據儲存在SRAM的某個地址中,其中,該輸入信號的儲存地址即是該信號數據的寫地址。然后,可以根據輸入信號的讀地址從SRAM中依次讀出當前需要讀取的輸入信號所對應的N+1個信號數據,并啟動用于指示讀標識的計數器。其中,獲得當前需要讀取的輸入信號的讀地址后,便可以根據其讀地址將當前需要讀取的輸入信號對應的N+1個信號數據依次讀出來,并以此將所有需要讀取的輸入信號對應的每ー個信號數據讀出。與此同時,可以啟動一個用于指示讀標識的計數器,該計數器用于對讀出的信號數據進行計數,每讀出ー個信號數據時,該計數器加1,直到N+1個信號數據讀出。優(yōu)選的,可以啟動ー個O至N的計數器對讀出的信號數據進行計數。當N+1個信號數據讀出后,可以將計數器復位為O。其中,讀標識可以反映當前信號數據所對應的FIR濾波器的階數,因此,根據讀標識可以確定當前信號數據所對應的FIR濾波器的階數。應當理解的是,不同的FIR濾波器的階數對應不同的信號數據,FIR濾波器的階數與信號數據的對應關系可通過讀標識反映。
例如,對于ー個3階FIR濾波器,該FIR濾波器的ー個輸入信號有效時包括4個信號數據,分別可以為Z_°、Z-1、Z-2和z_3。其中,讀出的第一個信號數據是ζΛ需說明的是,該Ζ_°為當前輸入信號數據,此時計數器為O ;當輸入信號經過FIR濾波器的第I階時,讀出第ニ個信號數據是Ζ—1,此時更新讀標識為I ;當輸入信號經過FIR濾波器的第2階時,讀出第三個信號數據是Ζ—2,此時計數器為I,并更新讀標識為2 ;當輸入信號經過FIR濾波器的第3階時,讀出第四個信號數據是Ζ—3,此時計數器為2,并更新讀標識為3。對于其他階數的FIR濾波器,以此類推,此處不再贅述。104、根據讀標識獲取當前信號數據所對應的濾波器系數;可選的,首先可以將濾波器系數儲存在多路復用器(MUX,multiplexer)中。應當理解的是,MUX可以根據需要將輸入其中的數據依次輸出,方便傳輸。應當理解的是,FIR濾波器的階數對應濾波器系數,對于ー個N階FIR濾波器,其濾波器系數有N+1個。例如,對于ー個3階FIR濾波器,濾波器系數有4個,分別可以為bQ、·
b2 和 b3。其中,讀標識可以反映當前信號數據所對應的FIR濾波器的階數。因此,根據讀標識可以確定當前信號數據所對應的FIR濾波器的階數,然后可以根據確定的FIR濾波器的階數獲取當前信號數據所對應的濾波器系數。而計數器可以指示讀標識。例如,讀出第一個信號數據是Z_°時,計數器為0,對應的讀標識可以是0,對應FIR濾波器的O階,此時濾波器系數為K,需說明的是,該Z_°為當前輸入信號數據;讀出第二個信號數據是Z—1時,計數器為I時,對應的讀標識可以是I,對應FIR濾波器的I階,此時濾波器系數為b1;以此類推,此處不再贅述。應當理解的是,讀標識與FIR濾波器的階數還可以是其他方式的對應,此處不一一舉例??蛇x的,也可以通過對應關系表根據讀標識從MUX中獲取相應的濾波器系數。其中,該對應關系表通過讀標識將信號數據、FIR濾波器的階數和濾波器系數一一對應起來,則每讀出ー個信號數據,可根據對應關系表,獲得相應的濾波器系數。105、將步驟103中讀出的當前信號數據和步驟104中獲取到的濾波器系數進行乘法運算,得到當前信號數據的乘法運算結果;其中,由前可知,當ー個輸入信號有效時,可以讀出N+1個信號數據,可選的,每讀出ー個信號數據,可以先將該讀出的信號數據輸入FIR濾波器的乘法器中。并且由于每讀出ー個信號數據會更新一次讀標識,可通過更新讀標識獲取當前讀出的信號數據所對應的濾波器系數,然后將獲取到的與當前讀取的信號數據對應的濾波器系數輸入FIR濾波器的乘法器中,與已經輸入到乘法器中的信號數據進行乘法運算。例如,當讀出信號數據で吋,首先將Z—1輸入乘法器中,并啟動一個計數器,此時該計數器為1,并更新讀標識為1,可通過讀標識I獲得相應的濾波器系數為b1;并將Id1輸入到乘法器中進行乘法運算,得到乘法運算結果為Z-1Xb1,最后將該乘法運算結果Z-1Xb1輸入加法器中;當讀出信號數據Z—2時,首先將Z—2輸入到乘法器中,此時計數器為2,并更新讀標識為2,可通過讀標識21獲得相應的濾波器系數為b2,并將b2輸入到乘法器中進行乘法運算,得到乘法運算結果為Z_2Xb2,最后將該乘法運算結果Z-2Xb2輸入加法器中,以此類推,直到N+1個信號數據輸入到乘法器中并完成乘法運算。需說明的是,本實施例中的ー個輸入信號包括N+1個信號數據,對應有N+1個濾波器系數,需要執(zhí)行N+1次乘法運算。其中,由于濾波器系數h為小數,并且有
N丫 h, = I ;可選的,一般將濾波器系數乘以增益2μ,以將濾波器系數化為整數,以方便邏輯運算,然后在最終的輸出結果中除以增益2Μ,以保證FIR濾波器的中心頻點增益為OdB。106、對步驟105中一個輸入信號所對應的N+1個信號數據所得到的乘法運算結果進行累加,得到加法運算結果; 本實施例通過串行的進行乘法運算和加法運算來進行濾波。其中,ー個輸入信號對應N+1個信號數據,可根據步驟105依次得到乘法運算結果,并將乘法運算結果依次輸入 FIR濾波器的加法器中進行累加。這種先通過ー個乘法器進行乘法運算,再通過ー個加法器將乘法運算的結果進行累加的方法稱為分時復用加法器和乘法器的濾波方法,通過分時復用ー個加法器和一個乘法器來實現濾波,可以降低功耗,提高濾波效率。例如,先將得到的第一個信號數據的乘法運算結果輸入加法器中,當得到下ー個信號數據的乘法運算結果時,再將下ー個信號數據的乘法運算結果輸入加法器中與前一次的乘法運算結果進行累加,直到將ー個輸入信號的N+1個信號數據輸出。例如,可根據步驟105得到ー個輸入信號對應的N+1個信號數據的乘法運算結果,得到的乘法運算結果依次是AciXZ^Z-1XbpZ-2Xb2……Z_NXbN,并將該乘法運算結果依次輸入加法器中進行累加,得到累加結果為^tlXZAZ-1XbdZ-2Xb2+……+Z_NXbN。需說明的是,本實施例中的ー個輸入信號包括N+1個信號數據,對應有N+1個濾波器系數,需要執(zhí)行N+1次乘法運算,并需要執(zhí)行N+1次加法運算。107、輸出步驟106中的加法運算結果。其中,本實施例中的濾波裝置的輸出信號為步驟106中的加法運算結果,即為b0 X T°+Tl X VZ-2 X b2+......+Z_N X bN。可選的,如果在步驟104、根據讀標識獲取當前信號數據所對應的濾波器系數的步驟之后將濾波器系數乘以增益2M,使得濾波器系數化為整數,則步驟107具體為將步驟106中的加法運算結果輸入FIR濾波器的除法器中除以增益2M,使FIR濾波器中心頻點增益為OdB,然后輸出除法運算的商。其中,如果該除法運算不是整除,則將該除法運算的余數輸入加法器中,使該余數與下一次輸入加法器中的乘法運算結果進行累加。由上可知,本發(fā)明米用先獲取輸入信號,將輸入信號儲存在FIR濾波器的SRAM中,使得每ー個輸入信號得到N+1個信號數據,N為FIR濾波器的最大階數,然后從SRAM中依次讀出ー個輸入信號所對應的N+1個信號數據,并在每讀出ー個信號數據時更新一次讀標識,然后根據該讀標識獲取當前信號數據所對應的濾波器系數,將當前信號數據和獲取到的濾波器系數進行乘法運算,得到當前信號數據的乘法運算結果,再將一個輸入信號所對應的N+1個信號數據所得到的乘法運算結果進行累加,得到加法運算結果并輸出。本實施例由于將輸入信號儲存在密度很高的SRAM中并可以依次讀出每個輸入信號所對應的信號數據,可以避免緩存導致的濾波效率低,可以高效、實時地濾波,并且本實施例可以根據讀標識獲取當前信號數據所對應的濾波器系數,由此可以通過分時復用ー個加法器和ー個乘法器進行濾波處理,可以節(jié)約資源,降低功耗。實施例ニ為了更好的實施以上方法,本發(fā)明實施例還提供了相應的濾波裝置,作為本發(fā)明實施例中實現該方法的裝置,該濾波裝置具體可以包括第一獲取單元201、儲存單元202、讀取單元203、第二獲取單元204、乘法運算單元205、加法運算單元206和輸出單元207。請參閱圖3 第一獲取單元201,用于獲取輸入信號。其中,本實施例中的濾波裝置一般有兩個端ロ,ー個端ロ用于獲取輸入信號,一個端ロ用于輸出信號,因此,可由該濾波裝置的ー個端ロ來獲取輸入信號。儲存單元202,用于將第一獲取單元201獲取到的輸入信號儲存在FIR濾波器的存儲器SRAM中,使得每ー個輸入信號得到N+1個信號數據,N為FIR濾波器的最大階數。 其中,儲存單元202,具體用于當輸入信號有效時,獲取單元獲取到的輸入信號的寫地址,井根據輸入信號的寫地址將輸入信號寫入SRAM中。讀取單元203,用于從SRAM中依次讀出ー個輸入信號所對應的N+1個信號數據,并在每讀出ー個信號數據時更新一次讀標識;其中,讀取單元203,具體用于確定當前需要讀取的輸入信號,并獲得當前需要讀取的輸入信號的讀地址,井根據輸入信號的讀地址從SRAM中依次讀出當前需要讀取的輸入信號所對應的N+1個信號數據。第二獲取單元204,用于根據讀取單元203更新的讀標識獲取當前信號數據所對應的濾波器系數。其中,第二獲取單元204,具體用于根據讀標識確定當前信號數據所對應的FIR濾波器的階數,根據確定的FIR濾波器的階數獲取當前信號數據所對應的濾波器系數。乘法運算單元205,用于將讀取単元203讀取到的當前信號數據和第二獲取單元204獲取到的濾波器系數進行乘法運算,得到當前信號數據的乘法運算結果。加法運算單元206,用于將ー個輸入信號所對應的N+1個信號數據通過乘法運算単元得到的所有乘法運算結果進行累加,得到加法運算結果。輸出單元207,用于輸出加法運算單元206得到的加法運算結果。其中,可由該濾波裝置的ー個端ロ來輸出加法運算結果。本實施例中先通過乘法運算單元205進行乘法運算,再通過加法運算單元206將乘法運算的結果進行累加的來獲得輸出結果,即通過分時復用乘法運算單元205和加法運算單元206,可以降低功耗,提高濾波效率。優(yōu)選的,為了更好的實現本實施例中濾波裝置的功能,本實施例中的濾波裝置,還包括計數單元208和復位單元209。具體可參閱圖4 其中,計數單元208,用于指示讀標識,當讀取單元203每讀取ー個信號數據時,計數単元208加I。復位單元209,用于當輸出単元207輸出加法運算結果之后將計數単元208復位為O0除此之外,乘法運算單元205,還用于將濾波器系數乘以增益2M,使得濾波器系數化為整數;則濾波裝置,還包括除法運算單元210。除法運算單元210,用于將加法運算結果除以増益2M,得到除法運算的商和余數,并將除法運算的余數輸入FIR濾波器的加法器中與下ー個輸入信號的乘法運算結果進行累加。需說明的是,具體實施可參閱實施例一,此處不再贅述。由上可知,本發(fā)明采用第一獲取單元201先獲取輸入信號,并由儲存單元202將第一獲取單元201獲取到的輸入信號儲存在FIR濾波器的存儲器SRAM中,使得每ー個輸入信號得到N+1個信號數據,然后由讀取單元203從SRAM中依次讀出ー個輸入信號所對應的N+1個信號數據,并在每讀出ー個信號數據時更新一次讀標識,再由第二獲取單元204根據讀取単元203更新的讀標識獲取當前信號數據所對應的濾波器系數,然后將讀取單元203讀取到的當前信號數據和第二獲取單元204獲取到的濾波器系數分別輸入乘法運算單元205中進行乘法運算,并將乘法運算的結果輸入加法運算單元206中進行累加,最后由輸出単元207輸入累加結果。本實施例中由于儲存単元202可以將輸入信號儲存在密度很高的SRAM中并可以由讀取單元203依次讀出每個輸入信號所對應的信號數據,可以避免緩存導致的濾波效率低,可以高效、實時地濾波,并且本實施例可以根據讀標識由第二獲取單元 204獲取當前信號數據所對應的濾波器系數,由此可以通過分時復用ー個加法運算單元和一個乘法運算單元進行濾波處理,可以節(jié)約資源,降低功耗。實施例三相應的,本發(fā)明實施例還提供了 ー種濾波系統(tǒng),其中,該濾波系統(tǒng)包括濾波裝置。其中,該濾波裝置用于獲取輸入信號,將輸入信號儲存在FIR濾波器的SRAM中,使得每ー個輸入信號得到N+1個信號數據,N為FIR濾波器的最大階數,從SRAM中依次讀出一個輸入信號所對應的N+1個信號數據,并在每讀出ー個信號數據時更新一次讀標識,根據該讀標識獲取當前信號數據所對應的濾波器系數,將當前信號數據和獲取到的濾波器系數進行乘法運算,得到當前信號數據的乘法運算結果,將ー個輸入信號所對應的N+1個信號數據所得到的乘法運算結果進行累加,得到加法運算結果并輸出。需說明的是,本實施例的濾波裝置可以是實施例ニ中的任一種濾波裝置,具體實施可參見前述實施例ニ,本實施例不再贅述。實施例四本實施例還提供了ー種FIR濾波器,該FIR濾波器具體可以包括SRAM401、MUX402、乘法器403和加法器404。具體可請參閱圖5 SRAM401,用于獲取輸入信號,并將輸入信號儲存,使得每ー個輸入信號得到N+1個信號數據,N為FIR濾波器的最大階數,并依次讀出ー個輸入信號所對應的N+1個信號數據,在每讀出ー個信號數據時更新一次讀標識。其中,SRAM401,具體用于當輸入信號有效時,獲取輸入信號的寫地址,井根據輸入信號的寫地址寫入輸入信號,確定當前需要讀取的輸入信號,并獲得當前需要讀取的輸入信號的讀地址,根據輸入信號的讀地址依次讀出當前需要讀取的輸入信號所對應的N+1個信號數據。MUX402,用于根據SRAM更新的讀標識輸出與SRAM讀出的當前信號數據所對應的濾波器系數。其中,MUX402,具體用于根據SRAM更新的讀標識確定當前信號數據所對應的FIR濾波器的階數,根據確定的FIR濾波器的階數輸出當前信號數據所對應的濾波器系數。
乘法器403,用于將SRAM讀出的當前信號數據和MUX輸出的濾波器系數進行乘法運算,得到當前信號數據的乘法運算結果。其中,該乘法器403即為濾波裝置中的乘法運算單元。加法器404,用于將ー個輸入信號所對應的N+1個信號數據通過乘法器得到的乘法運算結果進行累加,得到加法運算結果,并輸出加法運算結果。其中,該加法器404即為濾波裝置中的加法運算單元。其中,本實施例中先通過乘法器403進行乘法運算,再通過加法器404將乘法運算的結果進行累加的來獲得輸出結果,即通過分時復用乘法器403和加法器404,可以降低功耗,提高濾波效率。為了更好的實現本實施例中FIR濾波器的功能,本實施例中的FIR濾波器,還包括計數器405和復位器406,具體可請參閱圖6 計數器405,用于指示讀標識,當SRAM每讀出ー個信號數據時,計數器加I ;其中,計數器405可以從O至N計數,其中,N為FIR濾波器的階數。其中,該計數器405即為濾··波裝置中的計數單元。復位器406,用于當加法器輸出加法運算結果之后將計數器復位為O。其中,該復位器406即為濾波裝置中的復位單元。除此之外,乘法器403,還用于將濾波器系數乘以增益2M,使得濾波器系數化為整數。與此同時,本實施例中的FIR濾波器還包括除法器407。除法器407,用于將加法運算結果除以增益2M,得到除法運算的商和余數,將除法運算的余數輸入加法器中與下ー個輸入信號的乘法運算結果進行累加,并輸出除法運算的商。其中,該除法器407即為濾波裝置中的除法運算單元。由上可知,本發(fā)明由于SRAM401可以獲取輸入信號,并將獲取到的輸入信號儲存,并可以依次讀出每個輸入信號所對應的N+1個信號數據,可以避免緩存導致的濾波效率低,可以高效、實時地濾波,降低功耗,并且本實施例中的MUX402可以根據SRAM401更新的讀標識輸出與SRAM讀出的當前信號數據所對應的濾波器系數,由此可以通過分時復用ー個加法器403和一個乘法器404進行濾波處理,可以節(jié)約資源。實施例五下面以ー個具體應用例對本發(fā)明實施例進行詳細描述,請參閱圖7,圖7是本發(fā)明實施例中FIR濾波器的實現結構示意圖其中,本發(fā)明實施例的FIR濾波器可以是ー個N階,輸入信號為M比持,濾波器系數h的量化精度為X比特的FIR濾波器(以下簡稱FIR濾波器)。其中,本實施例完成一次乘法運算或加法運算需要Min(M,X)個系統(tǒng)時鐘周期,由當輸入信號有效一次,可以讀出N+1個信號數據可知,FIR濾波器輸入數據間隔需要大于(N+l)Min(M, X)個系統(tǒng)時鐘周期。其中,請參閱圖7,data_in為輸入信號,din_vld為有效的輸入信號,wr_cnt為寫操作計數器,rd_cnt為讀操作計數器,wr_addr為寫地址,rd_addr為讀地址,divider為除法器,data_out為輸出信號,gain為FIR濾波器的增益。下面以輸入信號data_in中的其中ー個有效輸入信號din_vld為例進行說明首先,由SRAM獲取輸入信號,其中,din_vld是當din_in有效時的ー個輸入信號,SRAM獲取到din_vld,并將din_vld儲存;具體的,SRAM可以先獲得din_vld的寫地址wr_addr,然后根據wr_addr將din_vld寫入SRAM中。由此可以獲得din_vld的N+1個信號數據,以及這N+1個信號數據的wr_addr,然后可以通過將din_vId的wr_addr賦值給rd_addr以獲得din_vld的rd_addr,然后根據din_vld的rd_addr依次讀出這N+1個信號數據。其中,這N+1個信號數據分別為HH3……ΖΛ其次,根據din_vld的rd_addr依次讀出din_vld的N+1個信號數據。其中,在讀出信號數據時,可以啟動ー個O至N的用于指示讀標識的計數器rd_cnt,對讀出的信號數據進行計數,每讀出ー個信號數據,更新一次讀標識,并將rd_cnt加1,直到N+1個信號數據讀出。然后,可根據讀標識獲得din_vld的N+1個信號數據所對應的濾波器系數。其中,讀標識可以反映當前信號數據所對應的FIR濾波器的階數,因此可以根據確定的FIR濾波器的階數獲取當前信號數據所對應的濾波器系數,而用于對讀出的信號數據進行計數的rd_cnt可以指示讀標識。因此,依次讀出的信號數據1、Z' Z_2、Z_3……Z_N分別對應的濾波器系數為=Wlvb3……bN。每讀出ー個信號數據,將該讀出的信號數據輸入乘法器中與對應的濾波器系數進行乘法運算,依次得到乘法運算結果為AtlXZ^Z-1XbpZ-2Xb2……Z-NXbN。然后,每得到ー個乘法運算結果,將該結果輸入加法器中進行累加,因此,得到累加結果為b。X Z'Z—1 X b^Z—2 X b2+……+Z_NX bN。最后,將該累加結果作為輸出信號data_out輸出。需說明的是,乘法器和加法器可分時復用,即每得到ー個乘法運算結果,會進行ー次加法運算,并且,乘法運算與加法運算可以同時進行,可以節(jié)約資源,減低功耗,提高濾波效率。需說明的是,當增益時,最后除以增益gain,將增益為OdB的信號輸出。需說明的是,由于濾波器系數h為小數,一般將h乘以增益gain,以將h化為整數,則在得到累加結果之后,將該累加結果除以增益gain,以保證FIR濾波器增益為OdB,最后輸出結構為除法運算的商。需說明的是,當如果該除法運算不是整除,則將該除法運算的余數輸入加法器中,使該余數與下ー個輸入信號中的乘法運算結果進行累加。同理,當下ー個輸入信號輸入時,先獲取該輸入信號并將其儲存在SRAM中,然后從SRAM中依次讀出該輸入信號對應的N+1個信號數據,并在每讀出ー個信號數據時更新一次讀標識,通過讀標識獲取當前需要讀取的信號數據對應的濾波器系數,然后將當前讀出的信號數據和與其對應的濾波器系數進行乘法運算,并將乘法運算結果進行累加,得到累加結果并輸出,直到將所有需要濾波的輸入信號輸出。需說明的是,具體實施可參見上述實施例,此處不再贅述。本領域普通技術人員可以理解實現上述實施例方法中的全部或部分步驟是可以通過程序來指令相關的硬件完成,所述的程序可以存儲于ー種計算機可讀存儲介質中,上述提到的存儲介質可以是只讀存儲器,磁盤或光盤等。以上對本發(fā)明所提供的ー種FIR濾波器的處理方法、裝置和系統(tǒng)進行了詳細介紹,本文中應用了具體個例對本發(fā)明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時,對于本領域的技術人員,依據本發(fā)明實、施例的思想,在具體實施方式
及應用范圍上均會有改變之處,綜上所述,本說明書內容不應理解為對本 發(fā)明的限制。
權利要求
1.一種FIR濾波器的處理方法,其特征在于,包括 獲取輸入信號; 將所述輸入信號儲存在所述FIR濾波器的存儲器SRAM中,使得每一個輸入信號得到N+1個信號數據,N為所述FIR濾波器的最大階數; 從SRAM中依次讀出一個輸入信號所對應的N+1個信號數據,并在每讀出一個信號數據時更新一次讀標識; 根據所述讀標識獲取當前信號數據所對應的濾波器系數; 將所述當前信號數據和獲取到的濾波器系數進行乘法運算,得到當前信號數據的乘法運算結果; 將一個輸入信號所對應的N+1個信號數據所得到的乘法運算結果進行累加,得到加法運算結果; 輸出所述加法運算結果。
2.根據權利要求I所述的方法,其特征在于,所述將所述輸入信號儲存在所述FIR濾波器的存儲器SRAM中,包括 當所述輸入信號有效時,獲取所述輸入信號的寫地址; 根據所述輸入信號的寫地址將所述輸入信號寫入所述SRAM中。
3.根據權利要求2所述的方法,其特征在于,所述從SRAM中依次讀出一個輸入信號所對應的N+1個信號數據,并在每讀出一個信號數據時更新一次讀標識,包括 確定當前需要讀取的輸入信號,并獲得所述當前需要讀取的輸入信號的讀地址;根據所述輸入信號的讀地址從所述SRAM中依次讀出所述當前需要讀取的輸入信號所對應的N+1個信號數據,并啟動用于指示讀標識的計數器; 每讀出一個信號數據時,將所述計數器加I。
4.根據權利要求3所述的方法,其特征在于,所述獲得所述當前需要讀取的輸入信號的讀地址,包括 根據所述輸入信號的寫地址給所述當前需要讀取的輸入信號賦值,得到所述當前需要讀取的輸入信號的讀地址。
5.根據權利要求3或4所述的方法,其特征在于,所述輸出所述加法運算結果之后,還包括 將所述計數器復位為O。
6.根據權利要求I至4中任一項所述的方法,其特征在于, 所述讀標識反映當前信號數據所對應的FIR濾波器的階數,則所述根據所述讀標識獲取當前信號數據所對應的濾波器系數,包括 根據所述讀標識確定當前信號數據所對應的FIR濾波器的階數; 根據確定的FIR濾波器的階數獲取當前信號數據所對應的濾波器系數。
7.根據權利要求I至4中任一項所述的方法,其特征在于,所述將所述當前信號數據和獲取到的濾波器系數進行乘法運算的步驟之前,還包括 將所述濾波器系數乘以增益2M,使得所述濾波器系數化為整數。
8.根據權利要求7所述的方法,其特征在于,所述輸出所述加法運算結果,包括 將所述加法運算結果除以增益2M,得到除法運算的商和余數,其中,將所述除法運算的余數輸入所述FIR濾波器的加法器中與下一個輸入信號的信號數據的乘法運算結果進行累加; 輸出所述除法運算的商。
9.一種濾波裝置,其特征在于,包括 第一獲取單兀,用于獲取輸入信號; 儲存單元,用于將所述第一獲取單元獲取到的輸入信號儲存在所述FIR濾波器的存儲器SRAM中,使得每一個輸入信號得到N+1個信號數據,N為所述FIR濾波器的最大階數;讀取單元,用于從SRAM中依次讀出一個輸入信號所對應的N+1個信號數據,并在每讀出一個信號數據時更新一次讀標識; 第二獲取單元,用于根據所述讀取單元更新的讀標識獲取當前信號數據所對應的濾波器系數; 乘法運算單元,用于將所述讀取單元讀取到的當前信號數據和所述第二獲取單元獲取到的濾波器系數進行乘法運算,得到當前信號數據的乘法運算結果; 加法運算單元,用于將一個輸入信號所對應的N+1個信號數據通過所述乘法運算單元得到的乘法運算結果進行累加,得到加法運算結果; 輸出單元,用于輸出所述加法運算單元得到的加法運算結果。
10.根據權利要求9所述的濾波裝置,其特征在于, 所述儲存單元,用于當輸入信號有效時,獲取所述獲取單元獲取到的輸入信號的寫地址,并根據所述輸入信號的寫地址將所述輸入信號寫入SRAM中; 所述讀取單元,用于確定當前需要讀取的輸入信號,并獲得所述當前需要讀取的輸入信號的讀地址,并根據所述輸入信號的讀地址從SRAM中依次讀出所述當前需要讀取的輸入信號所對應的N+1個信號數據; 所述第二獲取單元,用于根據所述讀標識確定當前信號數據所對應的FIR濾波器的階數,根據確定的FIR濾波器的階數獲取當前信號數據所對應的濾波器系數。
11.根據權利要求9或10所述的濾波裝置,其特征在于,還包括 計數單元,用于指示讀標識,當讀取單元每讀取一個信號數據時,所述計數單元加I ; 復位單元,用于當輸出單元輸出加法運算結果之后將所述計數單元復位為O。
12.根據權利要求9或10所述的濾波裝置,其特征在于, 所述乘法運算單元,還用于將所述濾波器系數乘以增益2M,使得所述濾波器系數化為整數;則所述濾波裝置,還包括 除法運算單元,用于將所述加法運算結果除以增益2M,得到除法運算的商和余數,并將所述除法運算的余數輸入所述加法運算單元中與下一個輸入信號的乘法運算結果進行累加。
13.—種濾波系統(tǒng),其特征在于,包括 如權利要求9至12中任一項所述的濾波裝置。
14.一種FIR濾波器,其特征在于,包括 SRAM,用于獲取輸入信號,并將所述輸入信號儲存,使得每一個輸入信號得到N+1個信號數據,所述N為所述FIR濾波器的最大階數,并依次讀出一個輸入信號所對應的N+1個信號數據,在每讀出一個信號數據時更新一次讀標識;MUX,用于根據所述SRAM更新的讀標識輸出與所述SRAM讀出的當前信號數據所對應的濾波器系數; 乘法器,用于將所述SRAM讀出的當前信號數據和所述MUX輸出的濾波器系數進行乘法運算,得到當前信號數據的乘法運算結果; 加法器,用于將一個輸入信號所對應的N+1個信號數據通過所述乘法器得到的乘法運算結果進行累加,得到加法運算結果,并輸出所述加法運算結果。
15.根據權利要求14所述的FIR濾波器,其特征在于, 所述SRAM,用于當輸入信號有效時,獲取輸入信號的寫地址,并根據所述輸入信號的寫地址寫入所述輸入信號,確定當前需要讀取的輸入信號,并獲得所述當前需要讀取的輸入信號的讀地址,根據所述輸入信號的讀地址依次讀出所述當前需要讀取的輸入信號所對應的N+1個信號數據; 所述MUX,用于根據所述SRAM更新的讀標識確定當前信號數據所對應的FIR濾波器的階數,根據確定的FIR濾波器的階數輸出當前信號數據所對應的濾波器系數。
16.根據權利要求14或15所述的FIR濾波器,其特征在于,還包括 計數器,用于指示讀標識,當所述SRAM每讀出一個信號數據時,所述計數器加I ; 復位器,用于當所述加法器輸出加法運算結果之后將所述計數器復位為O。
17.根據權利要求14或15所述的FIR濾波器,其特征在于, 所述乘法器,還用于將所述濾波器系數乘以增益2M,使得所述濾波器系數化為整數;則所述FIR濾波器,還包括 除法器,用于將所述加法運算結果除以增益2M,得到除法運算的商和余數,將所述除法運算的余數輸入所述加法器中與下一個輸入信號的乘法運算結果進行累加,并輸出除法運算的商。
全文摘要
本發(fā)明實施例公開了一種FIR濾波器的處理方法、裝置和系統(tǒng)。本發(fā)明實施例方法包括獲取輸入信號,將輸入信號儲存在FIR濾波器的SRAM中,使得每一個輸入信號得到N+1個信號數據,然后從SRAM中依次讀出一個輸入信號所對應的N+1個信號數據,并在每讀出一個信號數據時更新一次讀標識,然后根據該讀標識獲取當前信號數據所對應的濾波器系數,將當前信號數據和獲取到的濾波器系數進行乘法運算,得到當前信號數據的乘法運算結果,再將一個輸入信號所對應的N+1個信號數據所得到的乘法運算結果進行累加,得到加法運算結果并輸出,可以高效、實時地濾波,節(jié)約資源,降低功耗。
文檔編號H03H17/02GK102739195SQ20121018413
公開日2012年10月17日 申請日期2012年6月6日 優(yōu)先權日2012年6月6日
發(fā)明者吳德亮 申請人:華為技術有限公司