基于FPGA的數(shù)字正交混頻變換算法的實(shí)現(xiàn)
發(fā)布時(shí)間:2008/5/28 0:00:00 訪問(wèn)次數(shù):1465
0 引 言
傳統(tǒng)的正交下變頻是通過(guò)對(duì)模擬i、q輸出直接采樣數(shù)字化來(lái)實(shí)現(xiàn)的,由于i、q兩路模擬乘法器、低通模擬器本身的不一致性、不穩(wěn)定性,使i、q通道很難達(dá)到一致,并且零漂比較大,長(zhǎng)期穩(wěn)定性不好,不能滿足高性能電子戰(zhàn)設(shè)備的要求。為此,人們提出了對(duì)中頻信號(hào)直接采樣,經(jīng)過(guò)混頻來(lái)實(shí)現(xiàn)正交數(shù)字下變頻的方案,這種下變頻的方法可以實(shí)現(xiàn)很高精度的正交混頻,能滿足高鏡頻抑制的要求。采用可編程器件fpga對(duì)該算法流程進(jìn)行實(shí)現(xiàn),能滿足在高采樣率下的信號(hào)時(shí)實(shí)處理要求,在電子戰(zhàn)領(lǐng)域中有著重要的意義。 1 數(shù)字正交混頻變換原理 所謂數(shù)字正交混頻變換實(shí)際上就是先對(duì)模擬信號(hào)x(t)通過(guò)a/d采樣數(shù)寧化后形成數(shù)字化序列x(n),然后與2個(gè)正交本振序列cos(ω0n)和sin(ω0n)相乘,再通過(guò)數(shù)字低通濾波來(lái)實(shí)現(xiàn),如圖1所示。 為了能夠詳細(xì)地闡述該算法的fpga實(shí)現(xiàn)流程,本文將用一個(gè)具體的設(shè)計(jì)實(shí)例,給出2種不同的實(shí)現(xiàn)方法(不同的fpga內(nèi)部模塊結(jié)構(gòu)),比較其優(yōu)劣,最后給出結(jié)論。該設(shè)計(jì)是對(duì)輸入信號(hào)為中頻70 mhz,帶寬20 mhz的線性調(diào)頻信號(hào)做數(shù)字正交混頻變換,本振頻率為70 mhz(即圖1中的2個(gè)本振序列分別為cos(2π70mn)和sin(2π70mn)),將其中頻搬移到0 mhz,分成實(shí)部(real)和虛部(imag)2路信號(hào)。然后對(duì)該2路信號(hào)做低通濾波,最后分別做1/8抽取輸出。結(jié)構(gòu)如圖2所示。 根據(jù)其算法流程在matlab下進(jìn)行仿真(低通濾波器用切比雪夫一致逼近法進(jìn)行設(shè)計(jì),過(guò)渡帶為10m~45m,階數(shù)為23),最后2路輸出波形如圖3所示。 2 基于fpga的常規(guī)實(shí)現(xiàn)方法 首先用a/d芯片對(duì)輸入信號(hào)進(jìn)行實(shí)時(shí)采樣,將數(shù)據(jù)量化為12位有符號(hào)數(shù)(最高位為符號(hào)位)。對(duì)于imag和real兩路中的其中一個(gè)通道而言,乘本振序列模塊可用一個(gè)16×16的有符號(hào)乘法器及一個(gè)32×16位的只讀rom實(shí)現(xiàn)。因?yàn)闀r(shí)鐘頻率為200 mhz,對(duì)于序列cos(2π70mn)和sin(2π70mn)只需要在rom中存20個(gè)點(diǎn)就可以成為一個(gè)周期,固rom的數(shù)據(jù)深度選32,寬度選16。濾波模塊實(shí)質(zhì)是一個(gè)“乘累加”結(jié)構(gòu),23階的lpf須配置24個(gè)乘法器和20個(gè)加法器。最后抽取只需在濾波模塊輸出后每8個(gè)點(diǎn)取一個(gè)點(diǎn)。 根據(jù)這樣的流程在ise下編寫(xiě)代碼,并用modelsim仿真,所得波形如圖4所示。 圖4中共有4路輸出波形,其中上2路分別為濾波后抽取之前的實(shí)部和虛部的輸出,數(shù)據(jù)頻率為200 mhz;而下面2路分別為1/8抽取后的實(shí)部和虛部的輸出,數(shù)據(jù)頻率為200/8=25 mhz。 對(duì)上述實(shí)現(xiàn)方法的評(píng)價(jià):該方法完全按照算法的流程,結(jié)構(gòu)比較清晰,容易理解,也能夠最后得到理想的波形。但具有一定的弊端,主要有以下2點(diǎn):(1)資源耗費(fèi)太大,該種實(shí)現(xiàn)方式實(shí)部,虛部通道各需要24個(gè)乘法器和20個(gè)左右的加法器;(2)難以滿足信號(hào)實(shí)時(shí)處理要求的運(yùn)算速度。對(duì)于該方法,流程中所需要的乘法器和加法器都必須工作在200 mhz時(shí)鐘下,這對(duì)于現(xiàn)有的硬件設(shè)備(如vertexⅱ)來(lái)講是難以實(shí)現(xiàn)的,故需要采用更優(yōu)化的實(shí)現(xiàn)方法,即下面所要介紹的多相濾波結(jié)構(gòu)。 3 運(yùn)用多相濾波結(jié)構(gòu)進(jìn)行設(shè)計(jì) 對(duì)于上面所述的常規(guī)實(shí)現(xiàn)方法,之所以在合理性上存在一定弊端,歸其原因是將fpga大量的資源和運(yùn)算周期都浪費(fèi)在了不必要的運(yùn)算點(diǎn)上。因?yàn)樽詈笠玫降氖菚r(shí)域信號(hào)的1/8抽取,即每8個(gè)點(diǎn)只保留一個(gè)點(diǎn)。因此大可以去尋找一種辦法使得fpga只計(jì)算需要的點(diǎn)即抽取后的點(diǎn),直接以25 mhz的速度輸出,這樣既可以滿足運(yùn)算速度的要求,又能節(jié)省資源,這樣的方法就是多相濾波的方式。 枋致瞬ㄆ?諸如內(nèi)插,抽取器中的低通濾波器)的沖擊響應(yīng)為h(n),則其z變換h(z)定義為: 對(duì)求和式展開(kāi)可重寫(xiě)為:
|