|
0 引 言
傳統的正交下變頻是通過(guò)對模擬I、Q輸出直接采樣數字化來(lái)實(shí)現的,由于I、Q兩路模擬乘法器、低通模擬器本身的不一致性、不穩定性,使I、Q通道很難達到一致,并且零漂比較大,長(cháng)期穩定性不好,不能滿(mǎn)足高性能電子戰設備的要求。為此,人們提出了對中頻信號直接采樣,經(jīng)過(guò)混頻來(lái)實(shí)現正交數字下變頻的方案,這種下變頻的方法可以實(shí)現很高精度的正交混頻,能滿(mǎn)足高鏡頻抑制的要求。采用可編程器件FPGA對該算法流程進(jìn)行實(shí)現,能滿(mǎn)足在高采樣率下的信號時(shí)實(shí)處理要求,在電子戰領(lǐng)域中有著(zhù)重要的意義。
1 數字正交混頻變換原理
所謂數字正交混頻變換實(shí)際上就是先對模擬信號x(t)通過(guò)A/D采樣數寧化后形成數字化序列x(n),然后與2個(gè)正交本振序列cos(ω0n)和sin(ω0n)相乘,再通過(guò)數字低通濾波來(lái)實(shí)現,如圖1所示。
為了能夠詳細地闡述該算法的FPGA實(shí)現流程,本文將用一個(gè)具體的設計實(shí)例,給出2種不同的實(shí)現方法(不同的FPGA內部模塊結構),比較其優(yōu)劣,最后給出結論。該設計是對輸入信號為中頻70 MHz,帶寬20 MHz的線(xiàn)性調頻信號做數字正交混頻變換,本振頻率為70 MHz(即圖1中的2個(gè)本振序列分別為cos(2π70Mn)和sin(2π70Mn)),將其中頻搬移到0 MHz,分成實(shí)部(real)和虛部(imag)2路信號。然后對該2路信號做低通濾波,最后分別做1/8抽取輸出。結構如圖2所示。
![]()
根據其算法流程在MATLAB下進(jìn)行仿真(低通濾波器用切比雪夫一致逼近法進(jìn)行設計,過(guò)渡帶為10M~45M,階數為23),最后2路輸出波形如圖3所示。
2 基于FPGA的常規實(shí)現方法
首先用A/D芯片對輸入信號進(jìn)行實(shí)時(shí)采樣,將數據量化為12位有符號數(最高位為符號位)。對于imag和real兩路中的其中一個(gè)通道而言,乘本振序列模塊可用一個(gè)16×16的有符號乘法器及一個(gè)32×16位的只讀ROM實(shí)現。因為時(shí)鐘頻率為200 MHz,對于序列cos(2π70Mn)和sin(2π70Mn)只需要在ROM中存20個(gè)點(diǎn)就可以成為一個(gè)周期,固ROM的數據深度選32,寬度選16。濾波模塊實(shí)質(zhì)是一個(gè)“乘累加”結構,23階的LPF須配置24個(gè)乘法器和20個(gè)加法器。最后抽取只需在濾波模塊輸出后每8個(gè)點(diǎn)取一個(gè)點(diǎn)。
根據這樣的流程在ISE下編寫(xiě)代碼,并用Modelsim仿真,所得波形如圖4所示。
圖4中共有4路輸出波形,其中上2路分別為濾波后抽取之前的實(shí)部和虛部的輸出,數據頻率為200 MHz;而下面2路分別為1/8抽取后的實(shí)部和虛部的輸出,數據頻率為200/8=25 MHz。
對上述實(shí)現方法的評價(jià):該方法完全按照算法的流程,結構比較清晰,容易理解,也能夠最后得到理想的波形。但具有一定的弊端,主要有以下2點(diǎn):(1)資源耗費太大,該種實(shí)現方式實(shí)部,虛部通道各需要24個(gè)乘法器和20個(gè)左右的加法器;(2)難以滿(mǎn)足信號實(shí)時(shí)處理要求的運算速度。對于該方法,流程中所需要的乘法器和加法器都必須工作在200 MHz時(shí)鐘下,這對于現有的硬件設備(如VertexⅡ)來(lái)講是難以實(shí)現的,故需要采用更優(yōu)化的實(shí)現方法,即下面所要介紹的多相濾波結構。
3 運用多相濾波結構進(jìn)行設計
對于上面所述的常規實(shí)現方法,之所以在合理性上存在一定弊端,歸其原因是將FPGA大量的資源和運算周期都浪費在了不必要的運算點(diǎn)上。因為最后要得到的是時(shí)域信號的1/8抽取,即每8個(gè)點(diǎn)只保留一個(gè)點(diǎn)。因此大可以去尋找一種辦法使得FPGA只計算需要的點(diǎn)即抽取后的點(diǎn),直接以25 MHz的速度輸出,這樣既可以滿(mǎn)足運算速度的要求,又能節省資源,這樣的方法就是多相濾波的方式。
枋?致瞬ㄆ?諸如內插,抽取器中的低通濾波器)的沖擊響應為h(n),則其Z變換H(z)定義為:
對求和式展開(kāi)可重寫(xiě)為:
式(3)即為數字濾波器件H(z)的多相濾波結構,將其運用于抽取器,并且注意到抽取器的等效關(guān)系,則本設計FPGA內部(其中一個(gè)通道)可用圖5所示的結構進(jìn)行設計。
如圖5所示,在200 MHz的時(shí)鐘頻率下,輸入的采樣數據以8點(diǎn)為周期依次打入8個(gè)通道,這樣每個(gè)通道中的數據周期為200/8=25 MHz。數據進(jìn)入通道后首先要乘以正交系數,在本設計中正交sin和cos表各是以20個(gè)點(diǎn)為一個(gè)周期,必須按照一定的等效規律將20個(gè)點(diǎn)排到8個(gè)通道中去,考慮到5×8=40正好是2個(gè)周期,可令N=0~39,將所對應的40個(gè)正交系數分成5組用狀態(tài)機的方式打入8個(gè)通道中去,然后做乘累加。這里仍然用長(cháng)度為24的濾波器,也要按照一定的規律將24個(gè)濾波系數(3個(gè)一組,見(jiàn)圖5)排列到8個(gè)通道中去,原則是要保證在任何時(shí)刻8個(gè)通道的累加和要完全等效于原方法流程中濾波后的1/8抽取(可以驗證,上面的系數排列方式是滿(mǎn)足這一要求的)。很顯然,這樣做后每個(gè)通道的時(shí)鐘頻率都是原來(lái)頻率的1/8,并且數據是完全并行處理的。乘法器和加法器都工作在25 MHz時(shí)鐘頻率下,可以很容易實(shí)現,且程序更加高效和科學(xué)。
4 進(jìn)一步優(yōu)化的方法
采用了多相濾波方式后,每個(gè)通道需要4個(gè)乘法器。一般情況下,乘法器的延遲大概是在7~10 ns。而在25 MHz時(shí)鐘頻率下,完全可以將乘法器進(jìn)行復用,即在40 ns周期內完成4次乘法運,算包括1次乘正交系數,3次乘濾波系數。這樣每個(gè)通道只需要一個(gè)乘法器就可以。于是整個(gè)設計中所需要的乘法器可以降為16個(gè)(實(shí)部、虛部各8個(gè)),加法器則需要46個(gè)(各23個(gè))。
5 最終仿真波形
根據上面的多相濾波思想,并采用乘法器復用,在ISE下編寫(xiě)VHDL代碼,用Modelsim仿真得到最終的波形,如圖6所示。
用Synplify進(jìn)行綜合布線(xiàn)后得到的資源報告如下(選用的器件是VertexⅡxc2v1000):
6 結束語(yǔ)
本文提出的基于FPGA的數字正交混頻下變換的實(shí)現方法,對比了2種不同的設計方案以及相應的FPGA內部結構,分析了各自利弊;最后,著(zhù)重介紹了其中效率較高并且較為科學(xué)的多相濾波結構。在做實(shí)時(shí)信號處理時(shí),該結構能夠使資源優(yōu)化,并且滿(mǎn)足運算速度的要求,實(shí)現起來(lái)也不復雜,在實(shí)際工程中有很強的運用價(jià)值。 |
|