數(shù)字式正余弦函數(shù)產(chǎn)生器的實(shí)現(xiàn)方法
摘要:根據(jù)雷達(dá)光柵顯示器的應(yīng)用要求,提出一種基于FPGA的數(shù)字式正余弦函數(shù)產(chǎn)生器的解決方案。論述了如何用數(shù)字電路來實(shí)現(xiàn)正余弦函數(shù)計(jì)算的過程。方案不但可以用于雷達(dá)光柵掃描顯示器的坐標(biāo)變換器,而且適用于通訊領(lǐng)域等其它需要正余弦函數(shù)的波形產(chǎn)生器的場(chǎng)合。
關(guān)鍵字:雷達(dá):光柵掃描顯示器;正余弦函數(shù)產(chǎn)生器;坐標(biāo)轉(zhuǎn)換。
O 引言
通常雷達(dá)探測(cè)目標(biāo)的回波是以極坐標(biāo)的形式在雷達(dá)顯示器畫面上顯示的,在雷達(dá)天線轉(zhuǎn)動(dòng)的各個(gè)方位上,顯示畫面都有相應(yīng)的掃描線,也就是說:顯示器畫面的掃描是受天線方位角的正弦、余弦函數(shù)調(diào)制的。正余弦函數(shù)在許多的電子設(shè)備的波形產(chǎn)生器中都用到,實(shí)現(xiàn)的方法也有很多種。在雷達(dá)顯示器中由于要求的分辨率較高,最常用的方法是采用“查表”的方法來得到函數(shù)值。這種方法用函數(shù)表存貯器代替大量的組合電路,在電路集成度不高的情況下不失為一種好的方法。隨著大規(guī)模集成電路技術(shù)的發(fā)展,尤其是近幾年來現(xiàn)場(chǎng)可編程門陣列(FPGA)規(guī)模及處理速度的提高,為我們?cè)O(shè)計(jì)數(shù)字式函數(shù)產(chǎn)生器提供了很好的環(huán)境。如果我們能夠把函數(shù)計(jì)算過程集成到FPGA中,這不但可以減少芯片的數(shù)量,提高設(shè)備的可靠性,而且給電路設(shè)計(jì)帶來了很大的靈活性。
1 基本原理
在電路上實(shí)現(xiàn)正余弦函數(shù)的計(jì)算是建立在數(shù)學(xué)上的臺(tái)勞級(jí)數(shù)的基礎(chǔ)上的。既任意一個(gè)函數(shù)f(x)在x處可導(dǎo),則該函數(shù)可用下式表示:
由此式我們可以得到如下的正余弦函數(shù)的展開式:
為了簡化計(jì)算,方便電路設(shè)計(jì),在保證所需精度的情況下,我們只選上面兩式中的前兩項(xiàng)。這樣就得下面簡化的函數(shù)展開式:
我們把上面的兩式引入到雷達(dá)顯示器的函數(shù)產(chǎn)生器,0設(shè)為當(dāng)前天線角度,△0為天線轉(zhuǎn)動(dòng)的增量值。
由上兩式可看出,如果知道0~π/2范圍內(nèi)正余弦值時(shí),就可以恢復(fù)出整個(gè)周期的函數(shù)值.所以我們?cè)谟?jì)算函數(shù)值時(shí),只要能得到0~π/2第一象限的值就可以把其它幾個(gè)象限的值恢復(fù)出來。
2 參數(shù)選取
根據(jù)實(shí)際顯示分辨率的要求,我們選函數(shù)值的精度為1l位,360度方位分辨率的精度13位。這樣就可得到90度方位角內(nèi)的固有角度增量為2048個(gè)。式(4)、(5)中△0的值等于l/2n弧度。為了保證90度內(nèi)△θ個(gè)數(shù)大于等于2048,選取n為11位。這樣△θ等于1/2048弧度。由此可算出90度范圍內(nèi)△θ的個(gè)數(shù)為:(π/2)/(1/2048)=3217(個(gè))。換句話說,如果要得到90度方位角的函數(shù)值,需要給函數(shù)產(chǎn)生器發(fā)3217個(gè)△θ。同理,要得到某個(gè)角度的函數(shù)值,只需發(fā)一定的△θ使函數(shù)產(chǎn)生器進(jìn)行相應(yīng)次數(shù)的計(jì)算就可得到這個(gè)函數(shù)值。
3 電路結(jié)構(gòu)
函數(shù)產(chǎn)生器的電路實(shí)現(xiàn)實(shí)際上就是用電路實(shí)現(xiàn)式(4)和式(5)。要實(shí)現(xiàn)這兩個(gè)式子,關(guān)鍵是要實(shí)現(xiàn)△θSIN(θ)、△θ COS(θ)的計(jì)算。根據(jù)上述參數(shù)選取的要求,△θ的取值為1/2048,是一個(gè)常數(shù)。這樣就可以把△θ SIN(θ)、△θ COS(θ)的計(jì)算表示為SIN(θ)/2048、COS(θ)/2048。根據(jù)邏輯電路原理,我們只要把SIN(θ)、COS(θ)的值直接右移11為就可完成除以2048的計(jì)算。余下的計(jì)算就是簡單的邏輯加減計(jì)算了。為了實(shí)現(xiàn)11位SIN(θ)、COS(θ)函數(shù)值的1l位右移這里采用了22位的累加器。圖l是函數(shù)產(chǎn)生器的實(shí)現(xiàn)框圖。
從式(4)式(5)可以看出,要得到△θ方位增量的函數(shù)值還需要知道當(dāng)前函數(shù)的初始值,我們知道SIN、COS函數(shù)在零點(diǎn)的初始值分別為“l(fā)”和“0”,這樣就可以在起始計(jì)算時(shí)用置“1”和置“O”信號(hào)使得函數(shù)的輸出得到正確的初始值,于是在相應(yīng)的△θ脈沖的作用下進(jìn)行計(jì)算就可得出函數(shù)值輸出了。下面是用VHDL語言描述的正余弦函數(shù)產(chǎn)生器:――數(shù)字正余弦函數(shù)產(chǎn)生器
由于我們選用的是近似公式,在計(jì)算中會(huì)出現(xiàn)累積誤差。誤差的累積最終會(huì)造成輸出
函數(shù)值的溢出錯(cuò)誤,所以在本函數(shù)產(chǎn)生器累積誤差的修正也是一個(gè)關(guān)鍵。上面的VHDL描述已給出了簡單的修正方法,這里就不在詳述了。如對(duì)函數(shù)產(chǎn)生器的精度有更高的要求,只需簡單地對(duì)相應(yīng)的累加器的寬度進(jìn)行修改即可。本函數(shù)產(chǎn)生器已在MaxplusII上模擬通過,并在雷達(dá)光柵顯示器上得到實(shí)際應(yīng)用。
評(píng)論