賀天良 譚哲文
(1.中國人民解放軍92665 部隊三大隊 張家界市 427200)
(2.湖南澧水流域水利水電開發(fā)有限責(zé)任公司 長沙市 410004)
近年來,多速率數(shù)字信號處理與M 帶濾波器組作為現(xiàn)代通信與信息處理領(lǐng)域的一種新的技術(shù),在許多領(lǐng)域(通信、圖像編碼、語音編碼、雷達,電力系統(tǒng)暫態(tài)保護等)受到重視并得以應(yīng)用,其基本原理都是先通過分析端的一組濾波器及其級聯(lián)的抽取器將輸人信號分解為多個子帶信號,在子帶域根據(jù)應(yīng)用場合不同進行相應(yīng)的處理,最終在綜合端通過一組內(nèi)插器及其級聯(lián)的綜合濾波器組將子帶信號恢復(fù)成為原始輸入信號或稍有失真的原始信號。
對于那些有海量信息待處理的工程應(yīng)用來說,應(yīng)用多速率濾波器組來提高計算效率和速度是一種有效的途徑,而分析/綜合濾波器組實現(xiàn)是關(guān)鍵部分之一。多速率濾波器組的有效實現(xiàn)形式尤其重要,因此隨著精確重構(gòu)濾波器組的基本理論逐漸趨于成熟。
DA 算法是一項重要的FPGA 技術(shù),廣泛地應(yīng)用在卷積、相關(guān)、DFT 計算和RNS 反演映射等“乘積和”之中。
一個線性時不變網(wǎng)絡(luò)的輸出可以用式(1)表示,
式中 y——某時刻網(wǎng)絡(luò)的輸出;
x[n]——這一時刻的第n個輸入變量;
c[n]——第n個輸人變量的權(quán)值。
在線性時不變系統(tǒng)中,對于所有時刻,c[n]都是常量。 如果該網(wǎng)絡(luò)表現(xiàn)為濾波器,常量c[n]即為濾波器系數(shù),變量x[n]為信號源的抽樣數(shù)據(jù)(如A/D的輸出)。 那么c[n]x[n]就變成了一個常數(shù)乘法。 這是實現(xiàn)DA 設(shè)計的一個先決條件。 考慮“乘積和”內(nèi)積如下。
假設(shè)系數(shù)c[n]是已知常數(shù),x[n]是變量。 有符號DA 系統(tǒng)假設(shè)變量x[n]的表達式如下:
其中xB[n],xb[n]∈[0,1],xb[n]表示x[n]的第b 位,xB[n]符號位,而x[n]也就是x 的第n 次采樣,而內(nèi)積y 可以表示為:
函數(shù)f(c[n],xb[n])的實現(xiàn)方法就是利用LUT 查詢表實現(xiàn)映射f(c[n],xb[n]),即每個括號中進行的是輸人變量的某一個數(shù)據(jù)位和所有常數(shù)(c[0]~c[N-1])的每一位進行位與并求和。 而指數(shù)部分則說明了求和結(jié)果的位權(quán)。 這樣就可以建立查找表來實現(xiàn)括號中的操作了,其查找表用所有輸人變量的同一位進行尋址,如圖1 所示。
圖1 DA 查詢表方式和內(nèi)容
圖1 中所示的DA 查找表,其寬度為對常數(shù)c[n]定義的寬度,深度為2N,N 是能夠?qū)?shù)據(jù)源抽樣數(shù)據(jù)進行處理的數(shù)據(jù)長度,對于濾波器就表現(xiàn)為濾波器階數(shù)。
若將式(4)每個括號之間的加法并行執(zhí)行,即將每個DA 查找表的輸出采用并行的加法,就得到了全并行結(jié)構(gòu),如圖2 所示。 該實現(xiàn)方法就是利用N個LUT 實現(xiàn)映射f(c[n],xb[n]),n=0...N-1,每個LUT接受一個N 位輸入向量xb=[xb[0],xb[1],...xb[n]],輸出為f(c[n],xb[n])。 各個映射f(c[n],xb[n]),都有相應(yīng)的二次冪加權(quán)并累加。 在一次同時對N個查詢表查詢后累加就完成了對內(nèi)積的計算。
圖2 并行分布式算法
多相表示在多抽樣率信號處理中是一種基本方法。 使用它可以在實現(xiàn)整數(shù)倍和分數(shù)倍抽取和內(nèi)插時提高計算效率,在實現(xiàn)濾波器組時也非常有用,多相表示亦稱多相分解,它是指將數(shù)字濾波器的轉(zhuǎn)移函數(shù)H(z)分解成若干個不同相位的組。
在FIR 濾波器中,轉(zhuǎn)移函數(shù)
式中N為濾波器長度。 如果將沖激響應(yīng)h(n)按下列分成D個組,并設(shè)N為整數(shù)倍數(shù),即N/D=Q,Q為整數(shù),則
Ek()稱為H(z1)的多相分量。式(6)稱為H(z1)的多相表示,其網(wǎng)絡(luò)結(jié)構(gòu)(帶抽取器)如圖3 所示。
圖3 多相分解高效結(jié)構(gòu)
數(shù)字濾波器組是有共同輸入或者相加輸出的一組數(shù)字帶通濾波器。 圖4 的結(jié)構(gòu)稱為多速率分析濾波器組,其子濾波器Hk(z)稱為分析濾波器。 它用來將輸入信號分解成M個子帶信號yk(n),其中每一個子帶信號占據(jù)原始頻帶的一部分。 這里主要以余弦調(diào)制濾波器組為例研究分析濾波器組的實現(xiàn)。
圖4 分析濾波器組
把分析濾波器組中的各通道的分析濾波器采用高效的實現(xiàn)形式,則中D 通道分析濾波器組中的第k 信道分析濾波器Hk(z)可以表示如下:
其中N為D 的整數(shù)倍。 進一步可表示為:
上式的矩陣表示為:
上面定義的矩陣E(z)稱為I 型多相分解矩陣。
由上可知各相Ek(z2)等價于一低階的FIR 濾波器,各通道多相卷積部分采用全并行分布式算法實現(xiàn)。對于每一相系數(shù)仍較多,則采用分割表法以減小查找表的硬件規(guī)模。
在QutursII 開發(fā)環(huán)境下,以APE2000k為目標器件,采用全并行DA 算法,對濾波器組輸入以及濾波器系數(shù)預(yù)先按比例進行縮放化為整數(shù),并采用二進制補碼編碼,用VHDL 語言設(shè)計實現(xiàn)一個10 信道160 階的余弦調(diào)制多速率濾波器組。 對設(shè)計結(jié)果進行綜合、時序仿真,仿真結(jié)果見圖5。
圖5 濾波器組的時序仿真結(jié)果
其輸入信號取自南網(wǎng)電力系統(tǒng)某超高壓線路A相故障短路電流信號。 QutursII 仿真計算結(jié)果與MATLAB 運算結(jié)果完全一致,證明設(shè)計的正確性。對該設(shè)計進行時序分析顯示,其clock 時鐘信號的時序邏輯所需的最小時鐘周期為28.957 ns,信號的最大時鐘頻率為34.53 MHz,能夠滿足海量數(shù)據(jù)處理場合的實時性要求。
通過采用多項分解技術(shù)和分布式算法高效高速實現(xiàn)了分析多速率濾波器組的IP 核設(shè)計。由于常系數(shù)濾波器乘法可以方便地在一次查表操作,累加中完成,大大減少了濾波的時間,為整套系統(tǒng)中其它電路完成復(fù)雜算法節(jié)約了寶貴的時間,使整套硬件系統(tǒng)能過滿足工業(yè)應(yīng)用實時性的嚴格要求。 同時由于采用了多速率處理技術(shù)使得大部分濾波電路工作在較低頻率下,降低了系統(tǒng)的功耗。對具體的設(shè)計進行了綜合、仿真、時序分析。 本文開發(fā)的多速率濾波器組IP ??蓱?yīng)用于要求對海量信息處理實時性要求高的場合。 應(yīng)用類似的方案還可完成多速率綜合濾波器組的IP 的研發(fā)。