基于FPGA的高速寬帶跳頻發(fā)射機(jī)的中頻設(shè)計(jì)
本系統(tǒng)基帶調(diào)制采用最小頻移鍵控,即MSK調(diào)制,輸入碼元速率為5Mbps。由于FPGA處理能力較強(qiáng),可以選擇相對較高的數(shù)據(jù)速率,這樣可以降低數(shù)字上變頻的復(fù)雜度。但同時會增加基帶成形濾波器設(shè)計(jì)的復(fù)雜度,需要折中考慮。本系統(tǒng)選擇基帶數(shù)據(jù)速率為25M/B。
成形濾波器采用最優(yōu)化設(shè)計(jì)中的等波紋法設(shè)計(jì),設(shè)計(jì)指標(biāo)如下:采樣率25MHZ,通帶截止頻率為3.75MHZ,阻帶截止頻率5MHZ。通帶波紋0.2dB,阻帶衰減80dB。利用FDATool工具進(jìn)行濾波器的設(shè)計(jì),系數(shù)量化為定點(diǎn)16bit,阻帶衰減可以達(dá)到75dB以上。
2.3 數(shù)字上變頻
2.3.1 內(nèi)插
完成基帶調(diào)制和成形濾波后,FPGA內(nèi)部數(shù)據(jù)速率為25MSPS,然后需要進(jìn)行數(shù)字上變頻,最終使數(shù)據(jù)速率達(dá)到AD9736的數(shù)據(jù)轉(zhuǎn)換速率,即800MSPS。由25MSPS到800MSPS需要進(jìn)行32倍內(nèi)插,如果用一次內(nèi)插實(shí)現(xiàn),需要插值濾波器具有很高的階數(shù),其計(jì)算量和存儲空間都比較大。在這種情況下,一般采用多級內(nèi)插,多級實(shí)現(xiàn)的主要優(yōu)點(diǎn)是:
(1). 大大減少了計(jì)算量;
(2). 減少了系統(tǒng)內(nèi)的存儲量;
(3). 簡化了濾波器的設(shè)計(jì);
(4). 降低了實(shí)現(xiàn)濾波器時的有限字長的影響,即降低了舍入噪聲和系數(shù)靈敏度。
多級內(nèi)插的缺點(diǎn)是增加了控制程序的復(fù)雜程度,所以并不是分級越多越好所以在設(shè)計(jì)時應(yīng)該折中考慮。一般來說,3至4級插值對于降低運(yùn)算量和存儲量的幫助很明顯,級數(shù)再多時,效果就不明顯了。這里我們將插值分為4級,分別為2倍,2倍,2倍,4倍。抗鏡像低通濾波器都采用等波紋設(shè)計(jì),考慮到濾波器性能和資源占用的折中,需要利用MATLAB仿真確定各級濾波器的階數(shù)和系數(shù)位寬。
經(jīng)過三級2倍內(nèi)插后,FPGA內(nèi)部數(shù)據(jù)速率達(dá)到200MSPS,基本已經(jīng)達(dá)到了Cyclone III內(nèi)部處理能力的極限,最后一級利用多相結(jié)構(gòu),完成串并轉(zhuǎn)換,輸入200MSPS數(shù)據(jù)速率,4倍內(nèi)插后,輸出四路,各路均為200MSPS數(shù)據(jù)速率。下面以4倍內(nèi)插,8階低通濾波器來說明多相濾波器的原理。
由于在內(nèi)插的過程中插入的0值與系數(shù)相乘是沒有意義的,所以對于4倍內(nèi)插,8階低通濾波器來說每次濾波只需要2次乘法。這樣就將乘法的運(yùn)算量降低為原來的1/4。濾波器每次輸入一個新的數(shù)據(jù),就用4個子濾波器分別計(jì)算一次,然后以4倍的輸入速率順序輸出。所以可以用4個子濾波器組成的濾波器組實(shí)現(xiàn)多相插值濾波。
2.3.2 并行數(shù)控振蕩器
完成插值后,數(shù)據(jù)速率達(dá)到并行4路,每路各200MSPS。然后進(jìn)行載波調(diào)制。最后,利用LVDS模塊進(jìn)行并串轉(zhuǎn)換,實(shí)現(xiàn)800MSPS MSK調(diào)制輸出。
由于FPGA內(nèi)部處理能力的限制,用于載波調(diào)制的NCO也需要設(shè)計(jì)為并行結(jié)構(gòu)。載波調(diào)制的實(shí)現(xiàn)框圖如圖3所示:
圖 3 4路并行載波調(diào)制結(jié)構(gòu)圖
為了保證NCO輸出波形具有較高的雜散抑制比,同時要占用較少的資源,一般采用插值法。插值法結(jié)合了查表法和計(jì)算法的優(yōu)點(diǎn),在保證頻譜具有較高雜散抑制比的同時占用較少的資源。
插值法是指利用相位累加器的高位進(jìn)行查表,用相位累加器的低位進(jìn)行插值運(yùn)算,這樣使用相位累加器的有效位數(shù)較差,保證相位舍位噪聲較小,同時也降低了存儲器的大小。
最簡單且有效的插值法為一次線性插值,計(jì)算公式如下:
其中要插值的數(shù)據(jù)y位于之間, 為斜率,到y(tǒng)的水平距離。FPGA實(shí)現(xiàn)一次線性插值需要一次乘法,兩次加法,以及一次移位運(yùn)算。避免了占用過多的存儲器資源。
圖4是插值法NCO的實(shí)現(xiàn)框圖:
圖 4 插值NCO實(shí)現(xiàn)結(jié)構(gòu)圖
本設(shè)計(jì)要求NCO輸出數(shù)據(jù)速率為800MSPS,采用4路并行設(shè)計(jì),每一路輸出數(shù)據(jù)速率均為200MSPS。這樣需要4個NCO模塊。每個子NCO模塊的頻率控制字是對于整體800MSPS數(shù)據(jù)速率NCO頻率控制字的4倍。且每個子NCO的初始相位相差一個整體NCOd的頻率控制字。例如,要產(chǎn)生200M的正弦和余弦信號。計(jì)算得整體NCO的頻率控制字為:
4路子NCO的頻率控制字均為:。4路子NCO初始相位相差。
評論