朱峰,李孝輝,王國(guó)永
?
帶有小數(shù)補(bǔ)償?shù)牡皖l數(shù)控振蕩器及其基于FPGA的實(shí)現(xiàn)
朱峰1,2,3,李孝輝1,2,王國(guó)永1,2,3
(1. 中國(guó)科學(xué)院國(guó)家授時(shí)中心,西安 710600;2. 中國(guó)科學(xué)院精密導(dǎo)航定位與定時(shí)技術(shù)重點(diǎn)實(shí)驗(yàn)室,西安 710600;3. 中國(guó)科學(xué)院研究生院,北京 100039)
在分析數(shù)控振蕩器(NCO)工作原理的基礎(chǔ)上,以低頻信號(hào)為例,研究了影響NCO性能的幾個(gè)因素。結(jié)合雜散特性,著重討論了頻率控制字誤差對(duì)輸出頻率帶來(lái)的影響,提出在相位累加器中加入小數(shù)部分補(bǔ)償,以使降低信號(hào)頻率門限值和提高輸出的準(zhǔn)確性。最后采用FPGA(現(xiàn)場(chǎng)可編程門陣列)實(shí)現(xiàn)了帶有小數(shù)補(bǔ)償?shù)腘CO,在兼顧硬件資源的同時(shí)優(yōu)化了系統(tǒng)性能,另外通過(guò)仿真驗(yàn)證了這種方法的可行性。
數(shù)控振蕩器(NCO);查找表;雜散特性;頻率控制字;現(xiàn)場(chǎng)可編程門陣列(FPGA)
數(shù)控振蕩器(NCO)的目標(biāo)就是產(chǎn)生一個(gè)理想的正弦波,更確切地說(shuō)是產(chǎn)生一定范圍內(nèi)頻率可變的正弦波。NCO是直接數(shù)字頻率合成不可缺少的模塊,在軟件無(wú)線電中起著重要的作用,同時(shí)也是決定其性能的主要因素之一。
基于FPGA(現(xiàn)場(chǎng)可編程門陣列)的NCO實(shí)現(xiàn)受算法和硬件資源限制,雜散特性成為影響其性能的主要因素,這一特性直接關(guān)系著輸出信號(hào)的準(zhǔn)確性。其中,F(xiàn)PGA對(duì)頻率控制字的取整累加導(dǎo)致輸出低頻信號(hào)時(shí)受雜散特性影響較大。因此,需要對(duì)舍去的頻率控制字小數(shù)部分進(jìn)行補(bǔ)償,減小相位累加值誤差,降低輸出頻率門限值并提高輸出信號(hào)的準(zhǔn)確性。
為了縮短轉(zhuǎn)換時(shí)間,便于對(duì)頻率和相位進(jìn)行控制,NCO通常采用查找表方式產(chǎn)生可數(shù)控的周期信號(hào),即事先對(duì)正弦波幅值進(jìn)行量化,以相位角度作為地址把對(duì)應(yīng)的量化值存儲(chǔ)在表中,然后根據(jù)NCO相位累加值(作為查找地址)讀取當(dāng)前時(shí)刻的表中對(duì)應(yīng)的正弦波幅值,從而產(chǎn)生所需頻率的正弦波[1]。
如圖1所示,NCO主要由相位累加器、相位寄存器和正余弦查找表組成。位相位累加器在每一個(gè)時(shí)鐘上升沿對(duì)輸入頻率控制字進(jìn)行累加,相位寄存器接收累加的結(jié)果,一方面反饋給累加器作為下一時(shí)鐘的數(shù)據(jù)輸入,另一方面作為查找地址輸出相應(yīng)的正弦值。頻率控制字與系統(tǒng)工作時(shí)鐘頻率,NCO輸出信號(hào)頻率,相位累加器位數(shù)之間的關(guān)系可表達(dá)為
由式(1)可見(jiàn),NCO通過(guò)調(diào)整控制輸出信號(hào)的頻率,當(dāng)相位寄存器中累加值超過(guò)時(shí),即溢出一個(gè)周期信號(hào)。
當(dāng)系統(tǒng)工作時(shí)鐘給定時(shí),基于查找表的NCO輸出信號(hào)頻率誤差主要受相位累加器位數(shù)和查找表位數(shù)的影響。下面對(duì)基于查找表的NCO輸出信號(hào)頻率誤差的分析中,系統(tǒng)工作時(shí)鐘取10 MHz。
基于查找表方式實(shí)現(xiàn)的NCO,雜散特性成為影響其性能的主要因素。從對(duì)輸出信號(hào)的影響來(lái)看,雜散特性主要指相位截?cái)嗾`差[2]。相位截?cái)嗾`差是實(shí)際應(yīng)用中位相位累加器只有高位被用來(lái)尋址所引起的,通常的取值與硬件實(shí)現(xiàn)所允許的查找深度有關(guān),一般最大能取到16。
對(duì)于采用FPGA、基于查找表方式實(shí)現(xiàn)NCO的情況中,由于FPGA在此實(shí)際應(yīng)用中不支持小數(shù),所以對(duì)頻率控制字一般都取整進(jìn)行累加。但是當(dāng)輸出信號(hào)頻率較低時(shí),相位截?cái)嗾`差使被舍去的頻率控制字小數(shù)部分引起的誤差增大,會(huì)導(dǎo)致相位累加值減小,影響輸出信號(hào)的準(zhǔn)確性。這里對(duì)基于查找表方式實(shí)現(xiàn)的低頻數(shù)控振蕩器中不受相位截?cái)嗾`差影響的輸出信號(hào)最低頻率值進(jìn)行了分析,推出了累加器位數(shù)和查找表位數(shù)與不受影響的最低輸出信號(hào)頻率值(即輸出信號(hào)頻率門限值)的關(guān)系,如圖2(a)和圖2(b)所示。
圖2 雜散特性分析
圖2(a)所示為查找表位數(shù)=16時(shí),輸出信號(hào)頻率門限值與相位累加器位數(shù)之間的關(guān)系;圖2(b)為相位累加器位數(shù)=32時(shí),輸出信號(hào)頻率門限值與查找表位數(shù)之間的關(guān)系??梢?jiàn),對(duì)頻率控制字取整累加時(shí),輸出信號(hào)頻率門限值隨和的大小而變化。當(dāng)和一定時(shí),若想要輸出更低頻率的信號(hào),需要對(duì)頻率控制字進(jìn)行小數(shù)補(bǔ)償。
當(dāng)輸出較低頻率的信號(hào)時(shí),并非所有頻率的信號(hào)都要進(jìn)行小數(shù)補(bǔ)償,而與頻率控制字小數(shù)部分的大小有關(guān)。為了更直觀地反應(yīng)頻率控制字誤差對(duì)輸出信號(hào)的影響,對(duì)周期信號(hào)能舍去的頻率控制字小數(shù)部分的最大值(下面簡(jiǎn)稱“小數(shù)部分最大值”)進(jìn)行了分析。當(dāng)相位累加器位數(shù)和查找表位數(shù)一定時(shí)(=32,=16),推出了10MHz~10Hz頻率范圍內(nèi)頻率與“小數(shù)部分最大值”之間的關(guān)系,如圖3所示(圖3橫坐標(biāo)所示的“周期信號(hào)采樣點(diǎn)數(shù)”一一對(duì)應(yīng)于10 MHz~10 Hz頻率范圍的頻率)。
以輸出信號(hào)頻率10 Hz為例,其對(duì)應(yīng)的周期采樣點(diǎn)數(shù)為106,由圖3可知“小數(shù)部分最大值”為0.1,但10 Hz對(duì)應(yīng)的頻率控制字為4 294.967296,小數(shù)部分大于0.1,因此不能舍去其小數(shù)部分,需要進(jìn)行補(bǔ)償累加。
相位累加器加入小數(shù)補(bǔ)償后,對(duì)于輸出10 Hz周期信號(hào)而言,反映到截取位數(shù)為16的相位累加器中會(huì)帶來(lái)數(shù)值為15的相位補(bǔ)償,于是查找深度也相應(yīng)增加了。將基于查找表方式實(shí)現(xiàn)的NCO輸出信號(hào)的幅值16比特量化,對(duì)比小數(shù)補(bǔ)償前后的變化,得到頻率控制字加入小數(shù)部分補(bǔ)償前后的變化與對(duì)應(yīng)的輸出信號(hào)幅度變化之間的關(guān)系,如圖4所示。
圖3 “小數(shù)部分最大值”與周期信號(hào)采樣點(diǎn)數(shù)(與頻率相對(duì)應(yīng))的關(guān)系
圖4 小數(shù)補(bǔ)償前后的變化
為了說(shuō)明小數(shù)補(bǔ)償對(duì)輸出頻率準(zhǔn)確性的提高,在1~100Hz范圍中隨機(jī)選取5個(gè)頻點(diǎn)進(jìn)行分析,得到對(duì)每個(gè)頻點(diǎn)而言加入小數(shù)補(bǔ)償前后的輸出頻率值,如表1所示。
表1 小數(shù)補(bǔ)償前后的輸出頻率值 Hz
調(diào)用FPGA(Xilinx xc4vsx55)中的IP核作為正余弦查找表[3],以系統(tǒng)工作時(shí)鐘為觸發(fā),對(duì)頻率控制字整數(shù)和小數(shù)部分分別進(jìn)行累加,按照小數(shù)溢出整數(shù)進(jìn)位的原則實(shí)現(xiàn)小數(shù)部分補(bǔ)償,最后把整數(shù)部分累加值的高位作為查找表地址,輸出相應(yīng)頻率值的信號(hào),流程圖如圖5所示。
圖5 FPGA流程圖
以輸出10 Hz信號(hào)為例,實(shí)驗(yàn)采用Verilog在Xilinx 11.1環(huán)境下進(jìn)行建模并綜合,最后使用Modelsim 6.5進(jìn)行了仿真,圖6為NCO加入小數(shù)補(bǔ)償后在FPGA中的仿真結(jié)果[5]。圖6中,“sampling”表示系統(tǒng)工作時(shí)鐘對(duì)應(yīng)的采樣點(diǎn)數(shù),“decimal”為頻率控制字小數(shù)部分累加值,這里按小數(shù)位數(shù)擴(kuò)大了106倍,因此超過(guò)107就對(duì)“freqword”(頻率控制字整數(shù)部分累加值)加1,高16位送入正余弦查找表輸出正弦信號(hào)“sin”。
圖6 FPGA仿真結(jié)果
通過(guò)FPGA查找表方式輸出低頻信號(hào)時(shí),不同的查找深度對(duì)應(yīng)不同的頻率門限值,不同頻率的信號(hào)受雜散特性的影響也不同。本文在考慮FPGA硬件資源的基礎(chǔ)上,對(duì)低頻信號(hào)而言,在進(jìn)行相位累加時(shí)加入了小數(shù)補(bǔ)償,提高了輸出信號(hào)的準(zhǔn)確性。為了進(jìn)一步減小低頻輸出信號(hào)頻率值的誤差,還可通過(guò)提高時(shí)鐘采樣率[4]和增加相位累加器位數(shù)等方式來(lái)提高輸出信號(hào)的準(zhǔn)確性。
[1] 王瑛, 曹鬧昌, 向新, 等. DDS合成信號(hào)的頻譜雜散性分析[J]. 現(xiàn)代電子技術(shù), 2010, 6(3): 140-142.
[2] 俞麒. 基于改進(jìn)算法的NCO雜散抑制實(shí)現(xiàn)[J]. 中國(guó)科技信息, 2009, 2(5): 37-41.
[3] 褚振勇, 田紅心. FPGA設(shè)計(jì)及應(yīng)用[M]. 西安: 西安電子科技大學(xué)出版社, 2002.
[4] JANISZEWSKI I, HOPPE B, MEUTH H. Numerically controlled oscillators with hybrid function generators[C] // IEEE Trans Ferroelectrics and Frequency Control, 2002, 49(10): 995-1004.
[5] 王朝剛, 盧曉春. UWB中Viterbi譯碼器的FPGA設(shè)計(jì)與實(shí)現(xiàn)[J]. 時(shí)間頻率學(xué)報(bào), 2009, 32(1): 63-69.
Low-frequency numerically controlled oscillator with decimal compensation and realization with FPGA
ZHU Feng1,2,3, LI Xiao-hui1,2, WANG Guo-yong1,2,3
(1. National Time Service Center, Chinese Academy of Sciences, Xi′an 710600, China; 2. Key Laboratory of Precision Navigation and Timing Technology, National Time Service Center, Chinese Academy of Sciences, Xi′an 710600, China; 3. Graduate University of the Chinese Academy of Sciences, Beijing 100039, China)
Bytaking low frequency signal as example, several factors of affecting the performance of the NCO (numerically controlled oscillator) are studied on the basis of analysing the principle of NCO. The influence of frequency control word error on the output frequency is discussed emphatically in the light of spurious characteristic, and it is presented to add the decimal compensation in the phase accumulator for reducing the threshold and improving the accuracy of the output signal. Finally an NCO with decimal compensation has been realized based on FPGA(field programmable gate array), which not only takes account of the hardware source, but also optimizes the system performance. The simulation has verified the feasibility of this method.
numerically controlled oscillator(NCO); look-up table; spurious characteristic; frequency control word; field programmable gate array(FPGA)
TN752
A
1674-0637(2011)02-0112-05
2011-01-07
國(guó)家自然科學(xué)基金重點(diǎn)資助項(xiàng)目(11033004);中國(guó)科學(xué)院“西部之光”人才培養(yǎng)計(jì)劃資助項(xiàng)目(Y109YR2701)
朱峰,男,碩士,主要從事時(shí)間頻率測(cè)量與控制方面的研究。