通用fir濾波器及其配置方法
【技術(shù)領(lǐng)域】
[0001 ] 本發(fā)明涉及通信領(lǐng)域,具體涉及一種通用FIR(Finite Impulse Response,有限長(zhǎng) 單位沖激響應(yīng))濾波器及其配置方法。
【背景技術(shù)】
[0002] 隨著雷達(dá)、圖像、通信等領(lǐng)域?qū)?shù)字信號(hào)處理的要求越來越高,研究人員正尋找一 種高速數(shù)字信號(hào)處理的方法,以滿足這種高速信號(hào)處理的要求。FPGA( Fie Id - Programmable Gate Array,即現(xiàn)場(chǎng)可編程門陣列)具有靈活的可編程邏輯,可以方便的實(shí) 現(xiàn)高速數(shù)字信號(hào)處理,突破了并行處理、流水級(jí)數(shù)的限制,有效的利用了片上資源。
[0003] 有限長(zhǎng)單位沖激響應(yīng)FIR濾波器,其h(n)具有中心對(duì)稱性。對(duì)于單通道FIR濾波器 每完成一次濾波需要N/2(N為偶數(shù))或(N+1)/2(N為奇數(shù))次乘法和N-1或N次加法(N為濾波 器階數(shù))。單通道FIR濾波器乘加運(yùn)算次數(shù)與N直接相關(guān);對(duì)于高階FIR濾波器,如無線通信中 使用的成型濾波器(N=96,復(fù)濾波),需要消耗乘法器個(gè)數(shù)為48*2 = 96個(gè);如果涉及M種載波 帶寬(映射到濾波器也就是M個(gè)通道),則消耗的乘法器硬件資源為M*96。因此,隨著FIR濾波 器階數(shù)和通道數(shù)的增加,F(xiàn)PGA硬件資源將成為實(shí)現(xiàn)高階多通道FIR濾波器的瓶頸。因此如何 合理利用FPGA硬件資源,使硬件資源利用率到達(dá)最優(yōu)是目前亟需解決的技術(shù)問題。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明要解決的主要技術(shù)問題是,提供一種通用FIR濾波器及其配置方法,解決如 何提升FPGA硬件資源利用率的問題。
[0005] 為解決上述技術(shù)問題,本發(fā)明提供一種通用FIR濾波器,包括:
[0006] 通用模塊庫(kù),所述通用模塊庫(kù)包括多路濾波處理模塊,每路濾波處理模塊包括數(shù) 據(jù)輸入模塊和運(yùn)算模塊;
[0007] 控制模塊,用于獲取當(dāng)前目標(biāo)FIR濾波器設(shè)計(jì)參數(shù),根據(jù)所述設(shè)計(jì)參數(shù)計(jì)算得到所 述目標(biāo)FIR濾波器需要的濾波處理模塊的路數(shù)k,從所述通用模塊庫(kù)中選擇、并根據(jù)所述設(shè) 計(jì)參數(shù)啟用k路目標(biāo)濾波處理模塊;所述k為大于等于1的整數(shù)。
[0008] 在本發(fā)明的一種實(shí)施例中,所述設(shè)計(jì)參數(shù)包括通道數(shù)M、各通道的濾波器階數(shù)Ni和 時(shí)鐘數(shù)據(jù)速率比心,所述i大于等于〇,小于等于M-1;所述控制模塊根據(jù)所述設(shè)計(jì)參數(shù)計(jì)算 得到所述目標(biāo)FIR濾波器需要濾波處理模塊的路數(shù)k包括:
[0009] 從所述M個(gè)通道中選擇出最小的時(shí)鐘數(shù)據(jù)速率比Ri作為Rmin;
[0010] 根據(jù)各通道的濾波器階數(shù)心計(jì)算得到各通道的乘法次數(shù),并將各通道的乘法次數(shù) 相加得到SUM;
[0011] 將所述SUM除以所述Rmin并向上取整得到路數(shù)k。
[0012] 在本發(fā)明的一種實(shí)施例中,所述控制模塊從所述通用模塊庫(kù)中選擇并啟用k路目 標(biāo)濾波處理模塊包括:
[0013] 每啟用一路目標(biāo)濾波處理模塊時(shí),判斷分配到該路目標(biāo)濾波處理模塊的通道數(shù)是 否大于所述Rmin,如是,為該路目標(biāo)濾波處理模塊新增并啟用一路目標(biāo)濾波處理模塊。
[0014]在本發(fā)明的一種實(shí)施例中,所述控制模塊從所述通用模塊庫(kù)中選擇并啟用k路目 標(biāo)濾波處理模塊包括:
[0015]每啟用一路目標(biāo)濾波處理模塊時(shí),判斷所述Rmin是否大于等于該路目標(biāo)濾波處理 模塊上分配的各通道的乘法次數(shù)總和,如否,為該路目標(biāo)濾波處理模塊新增并啟用一路目 標(biāo)濾波處理模塊。
[0016] 在本發(fā)明的一種實(shí)施例中,所述運(yùn)算模塊包括乘法運(yùn)算單元;所述控制模塊在啟 用目標(biāo)濾波處理模塊上的乘法運(yùn)算單元時(shí),包括:
[0017] 包括獲取該路目標(biāo)濾波處理模塊上各通道的濾波器階數(shù)K,對(duì)應(yīng)各通道啟用的乘 法運(yùn)算單元個(gè)數(shù)Fi等于濾波器階數(shù)化除以2向上取整的值。
[0018] 在本發(fā)明的一種實(shí)施例中,還包括與所述控制模塊連接的系數(shù)存儲(chǔ)模塊,用于存 儲(chǔ)所述設(shè)計(jì)參數(shù)。
[0019] 在本發(fā)明的一種實(shí)施例中,還包括數(shù)據(jù)輸出模塊,與所述各路濾波處理模塊的運(yùn) 算模塊輸出端連接,將所述各路濾波處理模塊濾波處理后的數(shù)據(jù)輸出。
[0020] 在本發(fā)明的一種實(shí)施例中,所述數(shù)據(jù)輸入模塊為并串轉(zhuǎn)換數(shù)據(jù)輸入模塊,所述數(shù) 據(jù)輸出模塊為串并轉(zhuǎn)換數(shù)據(jù)輸出模塊。
[0021] 為了解決上述問題,本發(fā)明還提供了一種通用FIR濾波器配置方法,包括:
[0022] 設(shè)置FIR濾波器的通用模塊庫(kù),所述通用模塊庫(kù)包括多路濾波處理模塊,每路濾波 處理模塊包括數(shù)據(jù)輸入模塊和運(yùn)算模塊;
[0023] 獲取當(dāng)前需求的目標(biāo)FIR濾波器設(shè)計(jì)參數(shù),根據(jù)所述設(shè)計(jì)參數(shù)計(jì)算得到所述目標(biāo) FIR濾波器需要濾波處理模塊的路數(shù)k,所述k為大于等于1的整數(shù);
[0024] 從所述通用模塊庫(kù)中選擇、并根據(jù)所述設(shè)計(jì)參數(shù)啟用k路目標(biāo)濾波處理模塊得到 所述目標(biāo)FIR濾波器。
[0025] 在本發(fā)明的一種實(shí)施例中,所述設(shè)計(jì)參數(shù)包括通道數(shù)M、各通道的濾波器階數(shù)化和 時(shí)鐘數(shù)據(jù)速率比心,所述i大于等于〇,小于等于M-1;根據(jù)所述設(shè)計(jì)參數(shù)計(jì)算得到所述目標(biāo) FIR濾波器需要濾波處理模塊的路數(shù)k包括:
[0026] 從所述M個(gè)通道中選擇出最小的時(shí)鐘數(shù)據(jù)速率比Ri作為Rmin;
[0027]根據(jù)各通道的濾波器階數(shù)K計(jì)算得到各通道的乘法次數(shù),并將各通道的乘法次數(shù) 相加得到SUM;
[0028] 將所述SUM除以所述Rmin并向上取整得到路數(shù)k。
[0029] 在本發(fā)明的一種實(shí)施例中,從所述通用模塊庫(kù)中選擇并啟用k路目標(biāo)濾波處理模 塊包括:
[0030] 每啟用一路目標(biāo)濾波處理模塊時(shí),判斷分配到該路目標(biāo)濾波處理模塊的通道數(shù)是 否大于所述Rmin,如是,為該路目標(biāo)濾波處理模塊新增并啟用一路目標(biāo)濾波處理模塊。
[0031] 在本發(fā)明的一種實(shí)施例中,從所述通用模塊庫(kù)中選擇并啟用k路目標(biāo)濾波處理模 塊包括:
[0032]每啟用一路目標(biāo)濾波處理模塊時(shí),判斷所述Rmin是否大于等于該路目標(biāo)濾波處理 模塊上分配的各通道的乘法次數(shù)總和,如否,為該路目標(biāo)濾波處理模塊新增并啟用一路目 標(biāo)濾波處理模塊。
[0033]在本發(fā)明的一種實(shí)施例中,所述運(yùn)算模塊包括乘法運(yùn)算單元;在啟用目標(biāo)濾波處 理模塊上的乘法運(yùn)算單元時(shí),包括:
[0034]包括獲取該路目標(biāo)濾波處理模塊上各通道的濾波器階數(shù)K,對(duì)應(yīng)各通道啟用的乘 法運(yùn)算單元個(gè)數(shù)巧等于濾波器階數(shù)化除以2向上取整的值。
[0035]本發(fā)明的有益效果是:
[0036] 本發(fā)明提供的通用FIR濾波器及其配置方法,先設(shè)置FIR濾波器的通用模塊庫(kù),該 通用模塊庫(kù)包括多路濾波處理模塊,每路濾波處理模塊包括數(shù)據(jù)輸入模塊和運(yùn)算模塊;然 后在實(shí)際使用時(shí)獲取當(dāng)前需求的目標(biāo)FIR濾波器設(shè)計(jì)參數(shù),進(jìn)而根據(jù)獲取的設(shè)計(jì)參數(shù)計(jì)算 得到當(dāng)前目標(biāo)FIR濾波器需要濾波處理模塊的路數(shù)k,然后從通用模塊庫(kù)中選擇、并根據(jù)設(shè) 計(jì)參數(shù)啟用k路目標(biāo)濾波處理模塊即可實(shí)現(xiàn)當(dāng)前需要的目標(biāo)FIR濾波器。本發(fā)明提供通用模 塊庫(kù)然后根據(jù)當(dāng)前實(shí)際需求靈活選用,可以提升資源利用率,且可提升設(shè)計(jì)人員的設(shè)計(jì)效 率和使用體驗(yàn)的滿意度。
[0037] 進(jìn)一步的,本發(fā)明根據(jù)設(shè)計(jì)參數(shù)確定路數(shù)k時(shí),獲取的設(shè)計(jì)參數(shù)包括通道數(shù)M、各通 道的濾波器階數(shù)化和時(shí)鐘數(shù)據(jù)速率比心,然后從M個(gè)通道中選擇出最小的時(shí)鐘數(shù)據(jù)速率比h 作為Rmin;根據(jù)各通道的濾波器階數(shù)K計(jì)算得到各通道的乘法次數(shù),并將各通道的乘法次 數(shù)相加得到SUM;將SUM除以所述Rmin并向上取整得到路數(shù)k。通過該方式確認(rèn)路數(shù)k,可以實(shí) 現(xiàn)多通道并行FIR濾波器,也即可以采用時(shí)分復(fù)用的方式實(shí)現(xiàn)高階多通道濾波器,可以平衡 通道數(shù)M、各通道的濾波器階數(shù)K、時(shí)鐘數(shù)據(jù)速率比心與資源消耗之間的矛盾,進(jìn)一步使得資 源利用率達(dá)到最優(yōu)。
【附圖說明】
[0038] 圖1為本發(fā)明實(shí)施例一提供的通用FIR濾波器配置方法流程示意圖;
[0039] 圖2為本發(fā)明實(shí)施例二提供的通用FIR濾波器結(jié)構(gòu)示意圖;
[0040] 圖3為本發(fā)明實(shí)施例二提供的并串轉(zhuǎn)換模塊實(shí)現(xiàn)多通道時(shí)分復(fù)用的數(shù)據(jù)流示意 圖。
【具體實(shí)施方式】
[0041 ]下面通過【具體實(shí)施方式】結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步詳細(xì)說明。
[0042] 實(shí)施例一:
[0043] 請(qǐng)參見圖1所示,本實(shí)施例提供的通用FIR濾波器配置方法包括以下過程:
[0044] 步驟101:設(shè)置FIR濾波器的通用模塊庫(kù),設(shè)置的通用模塊庫(kù)包括多路濾波處理模 塊,每路濾波處理模塊包括數(shù)據(jù)輸入模塊和運(yùn)算模塊;應(yīng)當(dāng)理解的是,本實(shí)施例中通用模塊 庫(kù)中包含的濾波處理模塊的具體數(shù)量可以根據(jù)具體應(yīng)用場(chǎng)景等因素靈活設(shè)定;
[0045] 步驟102:獲取當(dāng)前需求的目標(biāo)FIR濾波器設(shè)計(jì)參數(shù);例如當(dāng)前是要實(shí)現(xiàn)幾通道、 各通道的濾波器階數(shù)以及時(shí)鐘數(shù)據(jù)速率比等;
[0046] 步驟103:根據(jù)得到的設(shè)計(jì)參數(shù)計(jì)算得到目標(biāo)FIR濾波器需要濾波處理模塊的路數(shù) k,得到的k為大于等于1的整數(shù);
[0047]步驟104:從通用模塊庫(kù)中選擇、并根據(jù)上述設(shè)計(jì)參數(shù)啟用k路目標(biāo)濾波處理模塊 得到當(dāng)前需求的目標(biāo)FIR濾波器。
[0048] 下面以步驟102中獲取的設(shè)計(jì)參數(shù)包括通道數(shù)M、各通道的濾波器階數(shù)化和時(shí)鐘數(shù) 據(jù)速率比心,(1大于等于〇,小于等于M-1)為例,對(duì)確定當(dāng)前設(shè)計(jì)的目標(biāo)FIR濾波器所需的資 源數(shù)為例進(jìn)行說明,該過程如下:
[0049] 從M個(gè)通道中選擇出最小的時(shí)鐘數(shù)據(jù)速率比Ri作為Rmin;
[0050] 根據(jù)各通道的濾波器階數(shù)K計(jì)算得到各通道的乘法次數(shù),并將各通道