朱峰,李孝輝,王國永
?
帶有小數(shù)補償?shù)牡皖l數(shù)控振蕩器及其基于FPGA的實現(xiàn)
朱峰1,2,3,李孝輝1,2,王國永1,2,3
(1. 中國科學院國家授時中心,西安 710600;2. 中國科學院精密導航定位與定時技術重點實驗室,西安 710600;3. 中國科學院研究生院,北京 100039)
在分析數(shù)控振蕩器(NCO)工作原理的基礎上,以低頻信號為例,研究了影響NCO性能的幾個因素。結合雜散特性,著重討論了頻率控制字誤差對輸出頻率帶來的影響,提出在相位累加器中加入小數(shù)部分補償,以使降低信號頻率門限值和提高輸出的準確性。最后采用FPGA(現(xiàn)場可編程門陣列)實現(xiàn)了帶有小數(shù)補償?shù)腘CO,在兼顧硬件資源的同時優(yōu)化了系統(tǒng)性能,另外通過仿真驗證了這種方法的可行性。
數(shù)控振蕩器(NCO);查找表;雜散特性;頻率控制字;現(xiàn)場可編程門陣列(FPGA)
數(shù)控振蕩器(NCO)的目標就是產生一個理想的正弦波,更確切地說是產生一定范圍內頻率可變的正弦波。NCO是直接數(shù)字頻率合成不可缺少的模塊,在軟件無線電中起著重要的作用,同時也是決定其性能的主要因素之一。
基于FPGA(現(xiàn)場可編程門陣列)的NCO實現(xiàn)受算法和硬件資源限制,雜散特性成為影響其性能的主要因素,這一特性直接關系著輸出信號的準確性。其中,F(xiàn)PGA對頻率控制字的取整累加導致輸出低頻信號時受雜散特性影響較大。因此,需要對舍去的頻率控制字小數(shù)部分進行補償,減小相位累加值誤差,降低輸出頻率門限值并提高輸出信號的準確性。
為了縮短轉換時間,便于對頻率和相位進行控制,NCO通常采用查找表方式產生可數(shù)控的周期信號,即事先對正弦波幅值進行量化,以相位角度作為地址把對應的量化值存儲在表中,然后根據(jù)NCO相位累加值(作為查找地址)讀取當前時刻的表中對應的正弦波幅值,從而產生所需頻率的正弦波[1]。
如圖1所示,NCO主要由相位累加器、相位寄存器和正余弦查找表組成。位相位累加器在每一個時鐘上升沿對輸入頻率控制字進行累加,相位寄存器接收累加的結果,一方面反饋給累加器作為下一時鐘的數(shù)據(jù)輸入,另一方面作為查找地址輸出相應的正弦值。頻率控制字與系統(tǒng)工作時鐘頻率,NCO輸出信號頻率,相位累加器位數(shù)之間的關系可表達為
由式(1)可見,NCO通過調整控制輸出信號的頻率,當相位寄存器中累加值超過時,即溢出一個周期信號。
當系統(tǒng)工作時鐘給定時,基于查找表的NCO輸出信號頻率誤差主要受相位累加器位數(shù)和查找表位數(shù)的影響。下面對基于查找表的NCO輸出信號頻率誤差的分析中,系統(tǒng)工作時鐘取10 MHz。
基于查找表方式實現(xiàn)的NCO,雜散特性成為影響其性能的主要因素。從對輸出信號的影響來看,雜散特性主要指相位截斷誤差[2]。相位截斷誤差是實際應用中位相位累加器只有高位被用來尋址所引起的,通常的取值與硬件實現(xiàn)所允許的查找深度有關,一般最大能取到16。
對于采用FPGA、基于查找表方式實現(xiàn)NCO的情況中,由于FPGA在此實際應用中不支持小數(shù),所以對頻率控制字一般都取整進行累加。但是當輸出信號頻率較低時,相位截斷誤差使被舍去的頻率控制字小數(shù)部分引起的誤差增大,會導致相位累加值減小,影響輸出信號的準確性。這里對基于查找表方式實現(xiàn)的低頻數(shù)控振蕩器中不受相位截斷誤差影響的輸出信號最低頻率值進行了分析,推出了累加器位數(shù)和查找表位數(shù)與不受影響的最低輸出信號頻率值(即輸出信號頻率門限值)的關系,如圖2(a)和圖2(b)所示。
圖2 雜散特性分析
圖2(a)所示為查找表位數(shù)=16時,輸出信號頻率門限值與相位累加器位數(shù)之間的關系;圖2(b)為相位累加器位數(shù)=32時,輸出信號頻率門限值與查找表位數(shù)之間的關系。可見,對頻率控制字取整累加時,輸出信號頻率門限值隨和的大小而變化。當和一定時,若想要輸出更低頻率的信號,需要對頻率控制字進行小數(shù)補償。
當輸出較低頻率的信號時,并非所有頻率的信號都要進行小數(shù)補償,而與頻率控制字小數(shù)部分的大小有關。為了更直觀地反應頻率控制字誤差對輸出信號的影響,對周期信號能舍去的頻率控制字小數(shù)部分的最大值(下面簡稱“小數(shù)部分最大值”)進行了分析。當相位累加器位數(shù)和查找表位數(shù)一定時(=32,=16),推出了10MHz~10Hz頻率范圍內頻率與“小數(shù)部分最大值”之間的關系,如圖3所示(圖3橫坐標所示的“周期信號采樣點數(shù)”一一對應于10 MHz~10 Hz頻率范圍的頻率)。
以輸出信號頻率10 Hz為例,其對應的周期采樣點數(shù)為106,由圖3可知“小數(shù)部分最大值”為0.1,但10 Hz對應的頻率控制字為4 294.967296,小數(shù)部分大于0.1,因此不能舍去其小數(shù)部分,需要進行補償累加。
相位累加器加入小數(shù)補償后,對于輸出10 Hz周期信號而言,反映到截取位數(shù)為16的相位累加器中會帶來數(shù)值為15的相位補償,于是查找深度也相應增加了。將基于查找表方式實現(xiàn)的NCO輸出信號的幅值16比特量化,對比小數(shù)補償前后的變化,得到頻率控制字加入小數(shù)部分補償前后的變化與對應的輸出信號幅度變化之間的關系,如圖4所示。
圖3 “小數(shù)部分最大值”與周期信號采樣點數(shù)(與頻率相對應)的關系
圖4 小數(shù)補償前后的變化
為了說明小數(shù)補償對輸出頻率準確性的提高,在1~100Hz范圍中隨機選取5個頻點進行分析,得到對每個頻點而言加入小數(shù)補償前后的輸出頻率值,如表1所示。
表1 小數(shù)補償前后的輸出頻率值 Hz
調用FPGA(Xilinx xc4vsx55)中的IP核作為正余弦查找表[3],以系統(tǒng)工作時鐘為觸發(fā),對頻率控制字整數(shù)和小數(shù)部分分別進行累加,按照小數(shù)溢出整數(shù)進位的原則實現(xiàn)小數(shù)部分補償,最后把整數(shù)部分累加值的高位作為查找表地址,輸出相應頻率值的信號,流程圖如圖5所示。
圖5 FPGA流程圖
以輸出10 Hz信號為例,實驗采用Verilog在Xilinx 11.1環(huán)境下進行建模并綜合,最后使用Modelsim 6.5進行了仿真,圖6為NCO加入小數(shù)補償后在FPGA中的仿真結果[5]。圖6中,“sampling”表示系統(tǒng)工作時鐘對應的采樣點數(shù),“decimal”為頻率控制字小數(shù)部分累加值,這里按小數(shù)位數(shù)擴大了106倍,因此超過107就對“freqword”(頻率控制字整數(shù)部分累加值)加1,高16位送入正余弦查找表輸出正弦信號“sin”。
圖6 FPGA仿真結果
通過FPGA查找表方式輸出低頻信號時,不同的查找深度對應不同的頻率門限值,不同頻率的信號受雜散特性的影響也不同。本文在考慮FPGA硬件資源的基礎上,對低頻信號而言,在進行相位累加時加入了小數(shù)補償,提高了輸出信號的準確性。為了進一步減小低頻輸出信號頻率值的誤差,還可通過提高時鐘采樣率[4]和增加相位累加器位數(shù)等方式來提高輸出信號的準確性。
[1] 王瑛, 曹鬧昌, 向新, 等. DDS合成信號的頻譜雜散性分析[J]. 現(xiàn)代電子技術, 2010, 6(3): 140-142.
[2] 俞麒. 基于改進算法的NCO雜散抑制實現(xiàn)[J]. 中國科技信息, 2009, 2(5): 37-41.
[3] 褚振勇, 田紅心. FPGA設計及應用[M]. 西安: 西安電子科技大學出版社, 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設計與實現(xiàn)[J]. 時間頻率學報, 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
國家自然科學基金重點資助項目(11033004);中國科學院“西部之光”人才培養(yǎng)計劃資助項目(Y109YR2701)
朱峰,男,碩士,主要從事時間頻率測量與控制方面的研究。