一種有限脈衝響應濾波器的製作方法
2023-07-30 02:13:26 1
專利名稱:一種有限脈衝響應濾波器的製作方法
技術領域:
本發明涉及電子行業數位訊號處理技術領域,尤其涉及一種基於乘累加器的有限脈衝響應(Finite Impulse Response,簡稱 FIR)濾波器。
背景技術:
HR濾波器在數字通信系統中有著廣泛應用,業界也一直致力於改善其濾波性能。 該濾波器可以用來執行多種工作,比如匹配濾波、噪聲隔絕、信道等化等。
一般情況下,FIR濾波器算法可以表示為
γ (k) =1! 1 ! -!), k=0,1,2,……,Nx_i (公式 1)
其中,H向量為濾波係數,其數目為K個,包含元素為H(O) H(K-I) ;X向量為待濾波的數據,其數目為Nx個,包含待濾波數據元素為X(0) X(Nx-I),算法中使用到的X向量索引小於0的部分,均用零代替;Y向量為濾波輸出,其數目為Nx個,包含元素為Y (0) Y(Nx-I)。現有技術中,有多種結構及實現方法被提出來,以加速和簡化FIR濾波器算法。
中國專利CN 1525642A公開了一種可重新配置的有限脈衝響應濾波器,該濾波器結構針對固定應用場合有較高的效率,其構造如圖1所示。參照圖1,該濾波器的工作過程如下根據應用場合固定濾波係數個數K,而後根據該K個濾波器係數設計K個數字處理單元,K個濾波係數預先存儲在數字處理單元中,當待濾波數據從圖1中左邊輸入時,每次可以完成K個待濾波數據和K個濾波係數的乘法運算,然後再橫向累加,得到1個濾波結果, 從圖ι所示FIR濾波器的右邊輸出。
在實現本發明的過程中,申請人意識到現有技術HR濾波器存在如下技術缺陷
1)當濾波係數K數目較大時,現有技術HR濾波器一般是將各個濾波係數同待濾波數據相乘,得到子結果,這個過程是並行完成,但是之後將各個子結果相加得到濾波結果時,該累加所需時間直接取決於濾波係數個數,在濾波係數數目較大的時候,濾波結果輸出的關鍵路徑很長,嚴重影響其工作效率;
2)數字處理單元個數受限於濾波係數個數,必須確定了應用場合中濾波係數的個數後,才能固定數字處理單元的個數,缺乏應用靈活性。即當濾波器系統固定後,該濾波器系統僅適用於一種應用場合,該場合所需濾波係數個數固定;
3)在一維濾波應用中,待濾波數據存在著局部性原理,加載重複的數據使得待濾波數據的使用效率很低,另外重複的訪問存儲器一方面會有較大的時間開銷,另一方面會增大系統的功耗。發明內容
(一)要解決的技術問題
為解決上述的一個或多個問題,本發明提供了一種有限脈衝響應FIR濾波器,以提高FIR濾波器的工作效率。
(二)技術方案
根據本發明的一個方面,提供了一種有限脈衝響應FIR濾波器。該FIR濾波器包括濾波係數提供模塊,用於預存K個濾波係數;在第η個運算周期,接收到讀使能信號後, 提供1個濾波係數H(i);待濾波數據提供模塊,用於預存Nx個待濾波數據;在第η個運算周期,接收到讀使能信號後,提供1個待濾波數據組,該待濾波數據組包括BS個待濾波數據 X(nBS-i),X(nBS-i+l),……,X[ (n+l)BS-i_l],當待濾波數據的向量索引小於0時,該待濾波數據以0代替;乘法器,包括並行的BS個乘法單元;每一個乘法單元均與濾波係數提供模塊和待濾波數據提供模塊相連接,用於實現濾波係數H(i)與待濾波數據組中的1個待濾波數據的乘積運算;累加器,其控制端與比較器相連接,包括並行的BS個累加單元;每一累加單元與對應的乘法單元和累加寄存器中寄存單元相連接,用於實現乘法單元的當前乘積結果與寄存單元的中間數據的累加運算;累加器還用於當接收到比較器的輸出有效信號時,將BS個累加結果作為第η組濾波結果輸出;否則,將BS個累加結果作為中間數據分別輸出至累加寄存器中對應的寄存單元;累加寄存器,包括BS個寄存單元;每一寄存單元的輸入端和輸出端分別與相應累加單元的輸出端和輸入端相連接,用於存放累加運算的中間數據;比較器,用於進行運算序號與濾波係數個數K的比較運算,當運算序號=K-I時,向累加器發送輸出有效信號,隨後執行第η+1個運算周期,運算序號為在第η個運算周期中,已經完成的乘積運算或累加運算的次數。(三)有益效果從上述技術方案可知,本發明HR濾波器具有以下有益效果1)並行計算的高效率,本發明採用BS個並行的乘法單元,可以同時進行BS個乘法運算,同時將BS個乘法結果同相應的寄存器中值並行進行BS個加法運算,從而大大提高了運算效率,節約運算時間,並且所有的控制信號均是數位訊號,避免了採用延遲單元等模擬單元所帶來的運算不準確性,提高了運算精度;2)可重構性,本發明在緩存空間尺寸範圍內的濾波係數個數情況下,均取得高效的濾波效果,即使當濾波係數的個數發生變化時,只要其在緩存空間的範圍之內,就不用重新更改相應硬體,從而實現了相當好的重構性;3)待濾波數據高利用率,本發明通過在整個算法層面分析,使用待濾波數據緩存器和濾波係數緩存器結構,充分利用了待濾波數據局部性原理,沒有重複加載待濾波數據的現象,並且每訪問一次存儲器,可得出BS個結果,減少存儲器訪問次數,從而達到了「一次讀取,多次計算」的效果,進而降低了整個設計的功耗。
圖1為現有技術FIR濾波器的結構示意圖;圖2為本發明實施例FIR濾波器的結構示意圖;圖3為本發明實施例FIR濾波器中濾波係數緩存器的示意圖;圖4為本發明實施例FIR濾波器中待濾波數據緩存器的示意圖;圖fe為本發明實施例FIR濾波器在BS = 4時待濾波數據緩存器存儲空間為4BS 下編碼和初始化後的示意圖;圖恥為如圖如所示待濾波數據緩存器在移位後的示意圖;圖6為本發明實施例FIR濾波器有效偏移地址產生圖的示意圖7a為本發明實施例FIR濾波器在BS = 4時待濾波數據緩存器存儲空間為5BS 下編碼和初始化後的示意圖7b為如圖6a所示待濾波數據緩存器在移位後的示意圖為本發明實施例FIR濾波器中濾波係數在存儲器中存儲的示意圖8b為本發明實施例HR濾波器中濾波係數在濾波係數緩存器中存儲的示意圖9a為本發明實施例FIR濾波器中待濾波數據在存儲器中存儲的示意圖9b為本發明實施例FIR濾波器中待濾波數據在待濾波數據緩存器中存儲的示意圖IOa為本發明實施例FIR濾波器進行第1次乘累加運算的示意圖IOb為本發明實施例FIR濾波器進行第2次乘累加運算的示意圖IOc為本發明實施例FIR濾波器進行第18次乘累加運算的示意圖IlA為當K』 = BS+3時本發明實施例待濾波數據緩存器初始化後的數據存儲的示意圖IlB為圖IlA所述待濾波數據緩存器移位後的數據存儲的示意圖12A為當K』 = 3BS+2時本發明實施例待濾波數據緩存器初始化後的數據存儲的示意圖12B為圖12A所述待濾波數據緩存器移位後的數據存儲的示意圖。
具體實施方式
為使本發明的目的、技術方案和優點更加清楚明白,以下結合具體實施例,並參照附圖,對本發明進一步詳細說明。雖然本文可提供包含特定值的參數的示範,但應了解,參數無需確切等於相應的值,而是可在可接受的誤差容限或設計約束內近似於所述值。
申請人發現,可以將公式1中HR濾波器的算法展開為如下的結果
權利要求
1.一種有限脈衝響應FIR濾波器,其特徵在於,包括濾波係數提供模塊,用於預存K個濾波係數;在第η個運算周期,接收到讀使能信號後, 提供1個濾波係數H (i);待濾波數據提供模塊,用於預存Nx個待濾波數據;在第η個運算周期,接收到讀使能信號後,提供1個待濾波數據組,該待濾波數據組包括BS個待濾波數據X(nBS-i), X(nBS-i+l),……,X[(n+l)BS-i-l],當待濾波數據的向量索引小於0時,該待濾波數據以 0代替;乘法器,包括並行的BS個乘法單元;每一個乘法單元均與所述濾波係數提供模塊和所述待濾波數據提供模塊相連接,用於實現所述待濾波數據組中對應的1個待濾波數據與所述濾波係數H (i)的乘積運算;累加器,其控制端與比較器相連接,包括並行的BS個累加單元;每一累加單元與對應的乘法單元和累加寄存器中寄存單元相連接,用於實現所述乘法單元的當前乘積結果與所述寄存單元的中間數據的累加運算;所述累加器還用於當接收到所述比較器的輸出有效信號時,將BS個累加結果作為第η組濾波結果輸出;否則,將所述BS個累加結果作為中間數據分別輸出至累加寄存器中對應的寄存單元;所述累加寄存器,包括BS個寄存單元;每一寄存單元的輸入端和輸出端分別與相應累加單元的輸出端和輸入端相連接,用於存放所述累加運算的中間數據;所述比較器,用於進行運算序號與濾波係數個數K的比較運算,當運算序號=K-I時, 向所述累加器發送輸出有效信號,隨後執行第η+1個運算周期,所述運算序號為在第η個運算周期中,已經完成的乘積運算或累加運算的次數。
2.根據權利要求1所述的HR濾波器,其特徵在於,所述η依次取0、1、2、3,……, ceil(Nx/BS)-l, ceil為向鄰近較大整數取值的符號。
3.根據權利要求2所述的HR濾波器,其特徵在於,所述i依次取Κ-1、Κ-2、……、1、 O0
4.根據權利要求3所述的FIR濾波器,其特徵在於,在每個運算周期中,所述運算序號從0開始,每次運算增加1,所述乘法器和累加器的其中之一,還用於向所述比較器提供所述運算序號;和/或所述比較器、乘法器和累加器的其中之一,還用於當運算序號< K-I時,向所述濾波係數提供模塊和所述待濾波數據提供模塊發送讀使能信號。
5.根據權利要求4所述的HR濾波器,其特徵在於,所述濾波係數提供模塊包括 第二存儲器,用於存儲所述K個濾波係數;第二緩存器實體,包含K』個存儲單元,K' ^K;第二初始化邏輯單元,與所述第二存儲器和第二緩存器實體相連接,用於將所述K個濾波係數,Η[Κ-1]、Η[Κ-2]、……,H[l]及酬從所述第二存儲器自前至後依次緩存入所述第二緩存器實體的前K個存儲單元;第二讀邏輯單元,用於收到讀使能信號後,以K為周期,按自前至後的順序依次讀取所述第二緩存器實體存儲單元中的一個濾波係數,並將該濾波係數發送至所述乘法器。
6.根據權利要求5所述的HR濾波器,其特徵在於,所述K,=2BS+1。
7.根據權利要求5所述的HR濾波器,其特徵在於,所述比較器,還用於當運算序號=K-I時,向所述待濾波數據提供模塊發送移位信號;所述待濾波數據提供模塊包括第一存儲器,用於依次存儲Nx個待濾波數據;第一緩存器實體,包含至少K』 -1+2BS個存儲單元,該K』 -1+2BS個存儲單元用於緩存待濾波數據;第一初始化邏輯單元,用於在第0個運算周期,對所述第一緩存器實體進行初始化,將地址為0 K,-2的存儲單元初始化為0 ;將待濾波數據X(O) ,X(I)、X⑵,……,X(2BS-1) 從所述第一存儲器依次緩存入所述第一緩存器實體的地址為K』 -1 K』 -2+2BS的存儲單元;第一讀邏輯單元,其控制端與所述比較器相連接,用於收到所述讀使能信號後,以有效偏移地址為起點,按照自前至後的順序依次讀取所述第一緩存器實體中BS個存儲單元的待濾波數據,並將該BS個待濾波數據發送至所述乘法器;第一移位邏輯單元,其控制端與所述比較器相連接,用於接收到所述比較器的移位信號後,將所述第一緩存器實體中地址為BS至K』-2+2BS的存儲單元中的待濾波數據前移BS 個位置;從所述第一存儲器中依次讀取BS個待濾波數據依次緩存入所述第一緩存器實體中地址為K,-1+BS K,-2+2BS的存儲單元。
8.根據權利要求7所述的HR濾波器,其特徵在於,所述待濾波數據提供模塊中第一緩存器實體包括4BS或5BS個存儲單元。
9.根據權利要求7所述的HR濾波器,其特徵在於,所述K』= 2BS+1時,所述有效偏移地址=K』 -K+運算序號。
10.根據權利要求9所述的HR濾波器,其特徵在於,所述濾波係數提供模塊中的第一存儲器與所述待濾波數據提供模塊中的第二存儲器為同一存儲器;該存儲器還用於存儲所述第η組濾波結果。
11.根據權利要求1至10中任一項所述的HR濾波器,其特徵在於,所述濾波結果、濾波係數和待濾波數據的關係如下Y(O) =H (0) X (0) +H(I)X (-1) +H (2) X (-2) +—+H (K-I) X (-K+1)Y(I) = H (O)X(I)+H (I)X(O)+H (2) X (-1)+...+H (K-I) X (-Κ+2)Y(2) =H (0) X (2) +H(I)X(I) +H (2) X (0) +—+H (K-I) X (-Κ+3)Y(BS-I) = H(O)X (BS-I) +H(I)X (BS-2) +H (2) X (BS-3) +—+H (K-I) X (BS-K)Y(BS) = H(O)X (BS) +H(I)X (BS-I) +H (2) X (BS-2) +—+H (K-I) X (BS-K+1)Y(BS+1) = H(O)X (BS+1) +H(I)X (BS) +H (2) X (BS-I) +—+H (K-I) X (BS-K+2)Y(BS+2) = H(O)X (BS+2) +H(I)X (BS+1) +H (2) X (BS) +—+H (K-I) X (BS-K+3)Y(2BS-1) = H(O)X (2BS-1) +H(I)X (2BS-2) +H (2) X (2BS-3) +—+H (K-I) X (2BS-K)Y(Nx-I) = !1(0)父(隊-1)+!1(1)父(隊-2)+對2)父(隊-2)+丨+!1(1^-1)父(1-10其中,所述Η(0)、Η(1)、Η(2)、……、H(K-I)為K個待濾波係數;所述 X (-K+1)、X (-Κ+2)、X (-Κ+3)、X (BS-K)、......、X (0)、X (1)、X (2)、......、X (BS-I)、X (BS)、X (BS+1)、X (BS+2)、……、X (2BS-1)、X (Nx-I)為 Nx 個待濾波數據;所述Y(O)、Y(I)、Y⑵、……、Y(BS-I)為第0組濾波結果;Y(BS)、Y(BS+1)、 Y(BS+2)、……、Y(2BS-1)為第1組濾波結果;Y(Nx-I)為最後1組濾波結果中的最後一個濾波結果。
全文摘要
本發明公開了一種有限脈衝響應FIR濾波器。該FIR濾波器由濾波係數緩衝器、待濾波數據緩衝器、乘法器、累加器、累加寄存器和比較器構成。其中濾波係數緩衝器用來緩衝濾波器中用到的係數,待濾波數據緩衝器用來緩衝待濾波數據,乘法器用來計算單個濾波係數與BS個待濾波數據的乘法結果,累加器用來計算乘法器輸出和累加寄存器輸出的和,累加寄存器用來存放累加器的結果,比較器的輸出用來指示當前累加器的輸出是否為濾波輸出。本發明FIR濾波器可以達到並行計算的高效率。
文檔編號H03H17/02GK102510273SQ201110442668
公開日2012年6月20日 申請日期2011年12月27日 優先權日2011年12月27日
發明者尹磊祖, 張志偉, 汪濤, 王東琳, 謝少林 申請人:中國科學院自動化研究所