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