許自陽(yáng)
摘要:在寬帶信號(hào)采樣的情況下,基帶部分需要進(jìn)行高速數(shù)據(jù)處理,此時(shí)單通道數(shù)據(jù)處理很難滿(mǎn)足時(shí)序要求。而并行數(shù)據(jù)處理會(huì)占用大量的FPGA資源,這就需要對(duì)并行算法進(jìn)行優(yōu)化。在不同的場(chǎng)景下輸出數(shù)據(jù)速率要求不同,這就要求進(jìn)行數(shù)據(jù)速率變換。本文討論了如何對(duì)并行FIR濾波器進(jìn)行優(yōu)化設(shè)計(jì),同時(shí)也論述了如何利用多相分解技術(shù)進(jìn)行數(shù)據(jù)速率變換,結(jié)果說(shuō)明優(yōu)化后的算法能大幅減少FPGA資源的消耗,并能適應(yīng)多速率數(shù)據(jù)變換的應(yīng)用場(chǎng)景。
Abstract: In the case of wideband signal sampling, the baseband requires high-speed data processing, however, the parallel design will occupy a large amount of FPGA resources, which requires optimization of parallel algorithms. in different application scenarios, the output data rate requirements are different. This requires data rate conversion while parallel processing. This paper discusses how to optimize the parallel FIR filter, and also discusses how to use the polyphase decomposition technique for data rate conversion. The result shows that the optimized algorithm can greatly reduce the consumption of FPGA resources and can adapt to the multi-rate application.
關(guān)鍵詞:并行FIR濾波器;多相分解;多速率變換
Key words: parallel FIR filter;polyphase decomposition;multi-rate transform
中圖分類(lèi)號(hào):TN713? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 文章編號(hào):1006-4311(2019)21-0197-04
0? 引言
在雷達(dá)和通信領(lǐng)域中,高速數(shù)據(jù)采集對(duì)于寬帶信號(hào)處理極為關(guān)鍵,并行FIR濾波器設(shè)計(jì)是高速數(shù)據(jù)處理必不可少的元素。在多數(shù)文章中,多相分解技術(shù)僅用于進(jìn)行整數(shù)倍抽取的討論。本文結(jié)合實(shí)際需求,進(jìn)一步論述了如何利用多相分解技術(shù)進(jìn)行速率變換,如何進(jìn)行并行FIR濾波器設(shè)計(jì)和優(yōu)化。
1? M倍抽取的多相分解結(jié)構(gòu)
則M倍抽取的多相分解結(jié)構(gòu)如圖1所示,需要注意的是X(n-1)先于X(n)到來(lái):
如果是單路輸入系統(tǒng),則輸入部分,可以看作一個(gè)數(shù)據(jù)分發(fā)器。由于該結(jié)構(gòu)進(jìn)行M倍抽取,即經(jīng)過(guò)M個(gè)時(shí)鐘周期,系統(tǒng)完成一次輸入,一次輸出。若輸入數(shù)據(jù)速率為K,可知,輸出數(shù)據(jù)速率為K/M,這就是眾所周知的多相分解抽取技術(shù)。可以通過(guò)該技術(shù)可以將基帶處理時(shí)鐘頻率降為原來(lái)的1/M,這便意味著基帶處理時(shí)鐘周期變?yōu)樵瓉?lái)的M倍,這對(duì)于提高系統(tǒng)時(shí)序性能至關(guān)重要。
在輸入數(shù)據(jù)速率比較高的情況下,單路輸入很難滿(mǎn)足時(shí)序要求,所以多數(shù)情況下采用M路并行輸入系統(tǒng),只要去掉圖1中數(shù)據(jù)分發(fā)器,便可得到M路并行輸入系統(tǒng)框圖,該系統(tǒng)每個(gè)時(shí)鐘周期完成M個(gè)樣本點(diǎn)輸入,一個(gè)樣本點(diǎn)輸出。如果數(shù)據(jù)速率為K,輸出數(shù)據(jù)速率則為K/M。則該系統(tǒng)在降低時(shí)鐘周期的同時(shí),輸入數(shù)據(jù)總線上的速率也同時(shí)降低。
2? 數(shù)據(jù)速率變換
從上面論述中我們可知,圖1所示結(jié)構(gòu)是對(duì)輸入進(jìn)行M倍抽取,輸出依次為y(n)、y(n+M),y(n+2M)…。但多數(shù)情況下要求輸出頻率是輸入速率的K/M倍(K=1,2,…M),此時(shí)需要恢復(fù)y(n)到y(tǒng)(n+M)之間的樣本輸出,我們可以進(jìn)行如下討論:
若用公式(2)到公式(5)來(lái)表示圖1中每個(gè)分支的系統(tǒng)函數(shù),則可以將圖1所示結(jié)構(gòu)簡(jiǎn)化為圖2所示結(jié)構(gòu)。
由線性移不變性質(zhì)可知:
由公式(7)可以看出,如果想要得到系統(tǒng)輸出y(n+L),則系統(tǒng)輸入端應(yīng)為x(n-k+L)而x(n-k+L)可由x(n-k)延遲L個(gè)時(shí)鐘周期得到,從而可以得到輸出為y(n+L)的系統(tǒng)結(jié)構(gòu)圖3。
按照速率變換要求,輸出數(shù)據(jù)速率是輸入速率的K/M倍(K=1,2,…M),則系統(tǒng)在有M路輸入的情況下,需要有K路輸出,此時(shí)輸出速率:
若記圖3所示結(jié)構(gòu)系統(tǒng)函數(shù)為H(Z),為了得到公式(8)所示數(shù)據(jù)速率,系統(tǒng)框圖需要拓展為:
對(duì)于M路并行輸入系統(tǒng),假如輸入數(shù)據(jù)速率為:Ratain,輸出速率為Rataout則系統(tǒng)處理需要圖3所示結(jié)構(gòu)數(shù)量:
對(duì)于基帶處理(每路數(shù)據(jù)對(duì)應(yīng)一組I,Q數(shù)據(jù))而言,系統(tǒng)處理需要圖3所示結(jié)構(gòu)數(shù)量為:
基于模塊復(fù)用的理念,我們希望每個(gè)模塊結(jié)構(gòu)要保持一致,即各個(gè)子系統(tǒng)系數(shù)長(zhǎng)度要保持一致,記為R,則系數(shù)總長(zhǎng)度L為:
此時(shí)共需要乘法器個(gè)數(shù)為:
需要加法器個(gè)數(shù)為:
乘法器資源消耗是評(píng)判一個(gè)算法是否優(yōu)化的重要指標(biāo),在高速采樣中,按照?qǐng)D3結(jié)構(gòu)進(jìn)行處理,由公式(10)可知乘法器數(shù)量規(guī)模還是比較大,而圖3所示結(jié)構(gòu)并沒(méi)有利用系數(shù)對(duì)稱(chēng)的性質(zhì),如果利用系數(shù)對(duì)稱(chēng)性,可以進(jìn)一步減少乘法器數(shù)量。
3? 并行FIR濾波器設(shè)計(jì)和優(yōu)化
由公式(2)到公式(5),以及圖1可知,對(duì)h(n)分成M組,便可以得到每個(gè)子系統(tǒng)的系統(tǒng)函數(shù),其中j代表第幾個(gè)分支系統(tǒng):
實(shí)際應(yīng)用時(shí),n不可能取到無(wú)窮大,只需取到特定長(zhǎng)度,設(shè)n=0,1,2…R-1則公式(12)修改為:
從而得到各個(gè)子系統(tǒng)系數(shù)列表1。
表1中FIR系數(shù)通常按照帶寬、采樣率、濾波器類(lèi)型等特定需求設(shè)定。通過(guò)MATLAB中FDATOOL 軟件可以方便的完成設(shè)計(jì),并獲取系數(shù)。在此不再贅述。
通常通道個(gè)數(shù)M常取:
因而我們只討論M為偶數(shù)的情況(M為奇數(shù)時(shí)情況類(lèi)似)。如果用n1表示系數(shù)位于表中第幾行,用j1表示系數(shù)位于表中第幾列則有:
FIR在滿(mǎn)足因果的條件下,系數(shù)是對(duì)稱(chēng)的,由公式(9),公式(14),可知系數(shù)應(yīng)滿(mǎn)足偶數(shù)的偶對(duì)稱(chēng)。
此時(shí)有:
從而可以將高位系數(shù)替換,得到系數(shù)列表2。
從表2中可以看到每個(gè)子系統(tǒng)的系數(shù)仍然不滿(mǎn)足對(duì)稱(chēng)性質(zhì),但將第j列系數(shù)加上第M-1-j列系數(shù)后,每個(gè)子系統(tǒng)第n行系數(shù)和R-1-n行系數(shù)則變對(duì)稱(chēng),從而我們可以構(gòu)造如下對(duì)稱(chēng)系數(shù)列表3。
第1個(gè)子系統(tǒng)系數(shù)對(duì)應(yīng)第1列系數(shù),第2個(gè)子系統(tǒng)對(duì)應(yīng)第2列,依次類(lèi)推。由表3可知每個(gè)子系統(tǒng)中系數(shù)第n行系數(shù)和第R-1-n行系數(shù)相等,即滿(mǎn)足對(duì)稱(chēng)性要求,我們已知圖3所示系統(tǒng)滿(mǎn)足線性移不變特性,通過(guò)簡(jiǎn)單的運(yùn)算便可以得到各個(gè)子系統(tǒng)的輸出結(jié)果。對(duì)圖3構(gòu)造修改后的結(jié)構(gòu)如圖5所示。
和圖3同條件下,圖5所示系統(tǒng)需要乘法器個(gè)數(shù)為:
需要加法器個(gè)數(shù)為:
對(duì)比公式(10),公式(15)可知改造后的系統(tǒng)乘法器個(gè)數(shù)減少為原來(lái)的1/2,對(duì)比公式(11),公式(16)可知加法器增多了■*M*4L個(gè),F(xiàn)PGA乘法器資源相對(duì)于加法器資源要緊張些,由上述討論可知,優(yōu)化后的算法能大幅減少系統(tǒng)對(duì)乘法器要求。
4? 結(jié)束語(yǔ)
本文詳細(xì)闡述了在工程領(lǐng)域中,并行FIR的設(shè)計(jì)理念及其優(yōu)化方法。在雷達(dá)信號(hào)處理,圖像信號(hào)處理等需要高速信號(hào)的領(lǐng)域中,本文討論的并行FIR設(shè)計(jì)能大幅降低系統(tǒng)對(duì)FPGA的時(shí)序和資源的要求,本文的論述在各個(gè)工程領(lǐng)域中,對(duì)高速并行FIR的設(shè)計(jì)有很大的參考價(jià)值。
參考文獻(xiàn):
[1]杜勇.數(shù)字濾波器的MATLAB與FPGA實(shí)現(xiàn)[M].北京:電子工業(yè)出版社,2017-09-01.
[2]John G.Proakis,Dimitris G.Manolakis .Digital Signal Processing,F(xiàn)ourth Edition. [M]北京:電子工業(yè)出版社2014-08-01.
[3]陶然,張慧云,王越.多抽樣率數(shù)字信號(hào)處理理論及應(yīng)用[M]北京:清華大學(xué)出版社.