鄒小東, 易 堃, 夏禮諾, 祝偉才
(上海無線電設(shè)備研究所, 上海 200090)
CORDIC算法在波束指向頻率補(bǔ)償中的應(yīng)用
鄒小東, 易 堃, 夏禮諾, 祝偉才
(上海無線電設(shè)備研究所, 上海 200090)
相控陣天線通過陣內(nèi)相位梯度的變化實(shí)現(xiàn)波束的動(dòng)態(tài)掃描,陣內(nèi)單元之間的相位梯度由移相器移相產(chǎn)生。為了使數(shù)字型移相器在不同頻率下實(shí)現(xiàn)相同的波束指向,需要對(duì)波束指向進(jìn)行頻率補(bǔ)償;使用CORDIC算法替代查找表算法計(jì)算正余弦結(jié)果,在誤差允許的范圍內(nèi)解決了查找表算法占用資源大的問題,通過MATLAB仿真并進(jìn)行了FPGA設(shè)計(jì)和驗(yàn)證。
相控陣天線; 波束指向; 頻率補(bǔ)償
相控陣天線具有波束指向靈活、駐留時(shí)間可控、波束形狀可變等優(yōu)點(diǎn)。
為了增強(qiáng)相控陣天線的威力,避免單一頻點(diǎn)工作的缺陷,跳頻、捷變頻等應(yīng)用越來越受到重視并得到推廣。為了使相控陣天線在寬頻帶內(nèi)具有良好的工作性能,必須解決相控陣天線數(shù)字移相器在不同頻率下波束指向的頻率補(bǔ)償問題。本文在計(jì)算相控陣天線波束指向頻率補(bǔ)償時(shí)使用坐標(biāo)旋轉(zhuǎn)數(shù)字計(jì)算機(jī)(CORDIC)算法替代查找表算法計(jì)算正余弦結(jié)果,極大地減少了ROM資源的占用,通過仿真及驗(yàn)證證明了該方法的有效性。
數(shù)字型移相器在不同頻率下移相值基本相同(基態(tài)不同,可認(rèn)為是傳輸線路在不同頻率下延遲相位不同造成)。由此在形成波束指向時(shí),相同的陣內(nèi)相位梯度,在不同頻率上將實(shí)現(xiàn)不同的波束指向。不同波束指向之間的關(guān)系應(yīng)當(dāng)滿足
(1)
式中:θ1為頻率改變前波束指向值;θ2為頻率改變后波束指向值。由此可計(jì)算頻率改變后波束指向值為
(2)
由此可見,在進(jìn)行頻率補(bǔ)償時(shí),需要調(diào)整波束指向梯度。
若波控機(jī)中,已經(jīng)存儲(chǔ)按頻率f1計(jì)算得到的相位梯度表,則切換至另一個(gè)頻率f2工作時(shí),需要根據(jù)頻率f2計(jì)算波束在頻率f1下的相位梯度分布,使波束實(shí)際指向與要求的指向一致。例如,當(dāng)天線工作在頻率f1時(shí),波束指向?yàn)棣?;若要天線工作在頻率f2時(shí),波束指向?yàn)棣?,則應(yīng)依據(jù)頻率變化前后的波束指向關(guān)系,計(jì)算在頻率改變前(即頻率f1)的波束指向角度,根據(jù)此指向角度查找相位梯度表,來實(shí)現(xiàn)所需要的波束指向。
(3)
由于在FPGA中計(jì)算反正弦比較繁瑣,可以利用正弦函數(shù)分段計(jì)算的方法進(jìn)行反正弦計(jì)算。
令θ=θ′+Δθ,其中θ為波束指向角,θ′為θ的整數(shù)部分,Δθ為θ的小數(shù)部分,則有
sinθ=sin(θ′+Δθ)
=sinθ′cosΔθ+cosθ′sinΔθ
(4)
式(4)中,當(dāng)Δθ很小時(shí),有關(guān)系式:sinΔθ≈Δθ,cosΔθ≈1,將二者代入式(4)求解得
(5)
式中:sinθ滿足sinθ′≤sinθ≤sin(θ′+1),當(dāng)sinθ給定時(shí),sinθ′,θ′,1/cosθ′均為固定常數(shù)。
考慮波束指向在0°~60°的情況,可以按1°為間隔計(jì)算角度的正弦值并制表。由于正弦函數(shù)在這個(gè)范圍內(nèi)為單調(diào)函數(shù),故在FPGA中可以利用case語(yǔ)句判斷sinθ所處的角度段,再利用式(5)計(jì)算出sinθ的反正弦值。
式(5)中的正弦和余弦運(yùn)算在FPGA中可以通過兩種方法來實(shí)現(xiàn):
a) 一種是查找表法,通過脫機(jī)計(jì)算得到正弦和余弦函數(shù)的值并按角度遞增的順序存儲(chǔ)在ROM中,根據(jù)輸入角度值在ROM中查找相應(yīng)的正弦和余弦值;
b) 另一種是CORDIC算法,通過多次迭代運(yùn)算逼近所需角度的正弦和余弦值。
查找表法會(huì)占用大量ROM資源存儲(chǔ)輸入角度的正弦和余弦值,以0.01°步進(jìn)為例,在0°~60°范圍內(nèi)共有6 001個(gè)角度,每個(gè)角度的正弦和余弦值用16 bit存儲(chǔ)則需要的ROM資源為6 001×16×2=192 032 bit;而CORDIC算法則根據(jù)輸入指向角通過多次迭代運(yùn)算即可得到輸入指向角的正弦和余弦值,并且只需要進(jìn)行移位和加減運(yùn)算,能夠節(jié)省大量資源,因此本文采用CORDIC算法來實(shí)現(xiàn)正余弦的計(jì)算。
CORDIC算法有兩種應(yīng)用模式—旋轉(zhuǎn)模式和矢量模式。旋轉(zhuǎn)模式是把一個(gè)向量旋轉(zhuǎn)一個(gè)已知的角度,矢量模式是把一個(gè)已知向量定向到與x軸平行。由于本文要計(jì)算一個(gè)已知角度的正余弦值,因此采用旋轉(zhuǎn)模式。CORDIC算法可以由吉文斯變換(Givens Transformation)導(dǎo)出,如圖1所示,假定將直角坐標(biāo)平面上的向量(x0,y0)旋轉(zhuǎn)角度θ得到向量(x1,y1),則有
(6)
圖1 向量旋轉(zhuǎn)示意圖
(7)
式中:ki為模校正因子;di代表旋轉(zhuǎn)方向。
當(dāng)?shù)螖?shù)趨于無窮時(shí),由式(7)迭代產(chǎn)生的增益為
(8)
通過引入一個(gè)角度累加器z來記錄旋轉(zhuǎn)的角度,實(shí)現(xiàn)對(duì)迭代角度的累加。每次旋轉(zhuǎn)的角度通過預(yù)先計(jì)算得到并存儲(chǔ)在查找表中,則角度累加值表達(dá)式為
zi+1=zi-diarctan(2-i)
(9)
式中:初始角度z0為旋轉(zhuǎn)角度θ;zi為第i次累加后的角度值;zi+1為第i+1次累加后的角度值;di是由zi決定的符號(hào):若zi<0,di=-1;若zi≥0,di=+1。
式(7)、式(8)、式(9)迭代的最終結(jié)果為
(10)
當(dāng)?shù)螖?shù)趨于無窮時(shí),輸入角度范圍為開區(qū)間(-99.9°,+99.9°)。而實(shí)際往往需要進(jìn)行閉區(qū)間[-180°,+180°]范圍內(nèi)的運(yùn)算,所以需要對(duì)迭代的輸入坐標(biāo)和輸出角度進(jìn)行調(diào)整,旋轉(zhuǎn)模式下輸入坐標(biāo)和輸出角度的調(diào)整方式分別如式(11)、式(12)所示[1]。
(11)
(12)
式中:x0,y0為初始向量的坐標(biāo)值;x0′,y0′為初始向量坐標(biāo)值的調(diào)整值;zn為n次迭代后的角度累加值;zout為n次迭代后角度累加值的調(diào)整值;d是由x0決定的符號(hào):若x0<0,d=-1;若x0≥0,d=+1。
旋轉(zhuǎn)模式下可以同時(shí)計(jì)算輸入角度θ的正弦和余弦值,令x0=1/An,y0=0,z0=θ,則由式(10)可得
(13)
式中:xn,yn為輸入角度θ的余弦值和正弦值。
CORDIC算法由式(7)和式(9)通過多次迭代實(shí)現(xiàn),單次迭代只需要進(jìn)行移位和加減運(yùn)算,其第i+1級(jí)迭代框圖如圖2所示,其中Xi、Yi、Zi分別為第i級(jí)迭代輸出的向量坐標(biāo)和角度累加值,di為第i級(jí)迭代輸出的符號(hào),在矢量和旋轉(zhuǎn)模式下分別由Yi、Zi決定,“加/減運(yùn)算”模塊是由上一級(jí)迭代輸出符號(hào)di決定的加減運(yùn)算,“arctan(2-i)”模塊通過對(duì)每次旋轉(zhuǎn)的角度預(yù)先計(jì)算并按順序存儲(chǔ)得到。Xi+1、Yi+1、Zi+1、di+1為第i+1級(jí)迭代的輸出。采用CORDIC算法占用的資源大小與迭代次數(shù)及數(shù)據(jù)寬度有關(guān),而與波束指向角度的步進(jìn)量無關(guān),因此在步進(jìn)量更小的情況下能節(jié)省更多的ROM資源。本文以采用22級(jí)迭代、數(shù)據(jù)寬度為16 bit為例,占用ROM資源為0,僅需要占用3 073個(gè)邏輯單元。與查找表法相比,減少了192 032 bit的ROM資源占用,在波束指向角度步進(jìn)更小、數(shù)據(jù)位寬更寬時(shí),資源節(jié)省量更為明顯。
圖2 CORDIC單級(jí)迭代框圖
考慮0°~60°指向角度范圍,以補(bǔ)償前頻率為15.15 GHz、補(bǔ)償后頻率為14.80 GHz、角度步進(jìn)為0.01°為例,通過CORDIC算法計(jì)算頻率補(bǔ)償后的指向角度的仿真結(jié)果如圖3所示,從仿真結(jié)果可以看出當(dāng)步進(jìn)量為0.01°時(shí),通過CORDIC算法能夠很好的計(jì)算出頻率補(bǔ)償后的指向角度,該結(jié)果與理論頻率補(bǔ)償后的指向角度之間的相對(duì)誤差仿真結(jié)果如圖4所示,通過仿真結(jié)果可知通過CORDIC算法計(jì)算的頻率補(bǔ)償后的指向角度結(jié)果與理論頻率補(bǔ)償后的指向角度之間的相對(duì)誤差在2%以內(nèi),將程序下載到FPGA中經(jīng)過驗(yàn)證滿足設(shè)計(jì)要求。
圖3 CORDIC算法計(jì)算波束指向頻率補(bǔ)償仿真圖
圖4 CORDIC計(jì)算結(jié)果和頻率補(bǔ)償理論值相對(duì)誤差仿真圖
相控陣天線波控機(jī)設(shè)計(jì)需要大量FPGA的ROM資源存儲(chǔ)脫機(jī)計(jì)算數(shù)據(jù),本文通過使用CORDIC算法替代查找表法計(jì)算頻率補(bǔ)償后的波束指向角度,在很大程度上節(jié)省了ROM資源,對(duì)于相控陣天線波控機(jī)設(shè)計(jì)具有重要的意義。
[1] 王夢(mèng)源,王書省,陳星.流水線雙模CORDIC算法的FPGA實(shí)現(xiàn)[J].電子測(cè)量技術(shù), 2007,(9): 184-185.
[2] 周濤,崔瑞雪.基于CORDIC算法實(shí)現(xiàn)雙曲函數(shù)的計(jì)算[J].華北航天工業(yè)學(xué)院學(xué)報(bào), 2006,(4): 15-17.
[3] 張建斌,梁芳,劉乃安.一種改進(jìn)型CORDIC算法的FPGA實(shí)現(xiàn)[J].微電子學(xué)與計(jì)算機(jī), 2010,(11): 182-184.
[4] 余捷,杜栓義,何緯.基于改進(jìn)型CORDIC算法數(shù)字下變頻FPGA實(shí)現(xiàn)[J].電子科技, 2008,(2): 63-66.
[5] 余建宇,羅丁利,陳矛.基于CORDIC算法的數(shù)字鑒頻方法及其在FPGA中的實(shí)現(xiàn)[J].火控雷達(dá)技術(shù), 2007,(36): 72-76.
ApplicationofCORDICAlgorithminBeamPointingFrequencyCompensation
ZOUXiao-dong,YIKun,XIALi-nuo,ZHUWei-cai
(Shanghai Radio Equipment Research Institute, Shanghai 200090, China)
The dynamic scanning of phased array antenna is realized by the change of phase gradient in the array, the phase gradient between the elements in the array is generated by the phase shifter. In order to achieve the same beam pointing at different frequencies, it is necessary to compensate the frequency of beam pointing, using CORDIC algorithm instead of look-up table algorithm to calculate the result of sine and cosine, it solves the problem that the look-up table algorithm takes up a large amount of resources in the range of error, the idea passed through the MATLAB simulation and FPGA design and verification.
phased array antenna; beam pointing; frequency compensation
1671-0576(2017)02-0011-04
2017-02-09
國(guó)家自然科學(xué)基金項(xiàng)目(項(xiàng)目編號(hào):41406206);國(guó)家自然科學(xué)基金項(xiàng)目(項(xiàng)目編號(hào):61401280)。
鄒小東(1987-),男,工程師,碩士,主要從事相控陣?yán)走_(dá)導(dǎo)引頭技術(shù)研究。
TJ765.331
A