摘 要:在FPGA中用查找表技術實現數控振蕩器是軟件無線電研究的重要內容。累加器步長、累加器控制字等參數決定NCOs的性能,頻譜純度是衡量NCOs的關鍵指標。借助Simulink仿真平臺分析得出相位截斷對頻譜純度的影響遠大于幅度值的量化。提出相位加抖技術及三種實現提高無雜散動態范圍的方法。由仿真分析看出,通過恰當的相位加抖可以極大地提高SFDR。
關鍵詞:數控振蕩器;相位截斷;查找表;相位加抖;無雜散動態范圍
中圖分類號:TP391.9 文獻標識碼:A
文章編號:1004-373X(2010)03-102-03
Simulation and Study of Numerically Controlled Oscillators Performance Based on Simulink
WANG Jianjun
(Sichuan TOP Vocational College of Information Technology,Chengdu,611743,China)
Abstract:Designing Numerically Controlled Oscillators(NCOs) of Lookup Tables(LUTs) in FPGA is important issues of software radio.Performance of accumulator is decided by step size and word length,spectrum purity is the key design parameter.The phase truncation impacting on the spectrum purity of NCOs is more than amplitude quantization in Simulink workbench.Phase-dithering is put forward to improve the Spurious Free Dynamic Range(SFDR) of NCOs′ output.The conclusion is derived from simulation :phase-dithering is a favoured method of increasing the SFDR performance.
Keywords:NCO;phase truncation;LUT;phase dithering;SFDR
0 引 言
數控振蕩器(Numerically Controlled Oscillators,NCOs)是軟件無線電的重要組成部分和研究內容,它廣泛應用于DSP中,如通信領域的信號調制解調,蜂窩電話、基站、雷達系統、數字電視、GPS和無線LAN等。
NCOs可以通過各種方式實現[1,2]:無限沖擊響應濾波器(IIR filters),坐標旋轉(CORDIC rotations),查找表技術(Lookup Tables,LUTs)。本文在Simulink軟件平臺仿真LUTs技術實現NCOs時,累加器步長、累加器控制字等參數對NCOs性能的影響。重點討論NCOs的頻譜純度問題,即如何抑制雜波分量,影響頻譜純度的因素以及如何提高無雜散動態范圍(Spurious Free Dynamic Range,SFDR)。
1 NCOs的工作原理[3]
NCOs主要包括一個正弦波樣點查找表(LUTs)和一個產生地址的累加器[4,5],如圖1所示。
圖1 數控振蕩器(NCOs)結構原理圖
圖1中n為累加器產生的地址位數,則LUTs有N=2n個輸入。LUTs的輸出分辨率/精度為L位(該參數與n有關),其工作原理見圖2。
圖2 NCOs工作原理圖
由圖2可以看出,累加器產生地址碼,循環從LUTs地址中取數正弦波的樣點數據,其取數的速率越快,即步長μ越大,則產生的正弦波頻率越高[5,6]。
設步長參數μ由式(1)決定:
μ=Nfdfs
(1)
式中:N為LUTs的樣點數據總量;fs為系統采樣頻率;fd為期望的正弦波的頻率。
例如,累加器地址數據線寬度為8 b,則對應的LUTs的數據樣點數為N=2n=256。如果采樣頻率為10 MHz,期望頻率為2.5 MHz,則步長為:
μ=256×2.510=64
2 提高NCOs的無雜散動態范圍[7]
SFDR是無線系統設計中需要考慮的重要參數。如果振蕩器產生的信號包含過多的雜波(Spurs)頻率,這些干擾成分會使信號混頻的質量變差,特別是當雜波頻率接近中心頻率時,在后續的電路中很難去除。
2.1 相位截斷對頻譜純度的影響[8,9]
當LUT輸出正弦波樣點數據時,只有整數部分可以用于輸出,而小數部分則被忽略,這導致輸出相位部分有截斷。相位截斷(Phase Truncation)的情況決定了產生的正弦波的純度。如:當采樣頻率為100 kHz時,NCOs輸出的期望頻率為243 kHz,其NCOs設置參數見表1。從表1中可以看出,LUTs的分辨率為32 b,則可以忽略幅度值量化的影響,而雜波主要是由相位截斷產生的。
表1 相位截斷時NCOs設置參數表
名稱參數
采樣頻率100 kHz
期望頻率24.3 kHz
LUTs深度64個地址
LUTs分辨率32位(32 b)
累加器字長6為整數,16為小數
步長15.552 001 953 125
仿真的FFT波形見圖3,SFDR=75 dB。
圖3 相位截斷對頻譜的影響
2.2 幅度值量化對頻譜純度的影響
將LUT的深度增大為12 b(4 096),則可以忽略相位舍去對頻譜純度的影響,而雜波主要由幅度值的量化(Amplitude Quantization)產生。同樣,當采樣頻率為100 kHz時,NCOs輸出的期望頻率24.3 kHz,NCOs設置參數見表2。
表2 幅度值量化NCOs設置參數表
名稱參數
采樣頻率100 kHz
期望頻率24.3 kHz
LUTs深度4 096個地址
LUTs分辨率8位(8 b)
累加器字長12為整數,16為小數
步長995.328 002 929 687 5
仿真的FFT波形見圖4,SFDR=85 dB。
圖4 幅度值量化對頻譜的影響
由圖3,圖4可以看出,相位截斷產生的雜波遠大于幅度值量化產生的雜波,是雜波的主要來源。
由以上的仿真波形可以看出,提高整數位的位數,雖然可以使相位截斷小,頻率雜波少,但要使用較大的LUTs容量。如整數位增加一位,即由n位增加n+1位,則LUTs的數據量會增加一倍。
提高小數位的位數可以有較高的步長精度和頻率分辨率,但需要更加多的累加器。如小數部分由b位增加到b+1位,雖然對LUTs無影響,但將累加器的加法器和延遲器分別增加1位,從而影響NCOs的輸出頻率。
提高LUTs輸出分辨率對正弦波樣點的幅度值量化影響小,但需要更多的LUTs存儲器。如LUTs輸出分辨率增加1位,由L位增加L+1位,LUTs所需的存儲容量擴大2n。
可見,采用傳統的設計方法要達到無相位截斷,則需要LUT的字長非常長,占用資源非常大,導致NCOs的成本很高,而這在實際實現過程中是不可行的。
2.3 相位加抖提高SFDR[10]
通過以上的仿真研究可看出,雖然可以通過增加整數位和提高LUTs輸出分辨率的方法來提高SFDR,但因它們要占用大量的資源,因而不是經濟有效的方法。為有效解決雜波問題,必須考慮其他有效的方法。目前的主要技術手段有:
幅度加抖(Amplitude Dithering):在LUT的輸出中加入低水平的噪聲,以打散原有幅度值量化的噪聲結構。
相位加抖(Phase Dithering):在累加器的輸出中加入低水平的噪聲,以打散原有相位截斷的噪聲結構。
帶通濾波(Bandpass Filtering):在振蕩器輸出端加濾波器濾出毛刺頻率。但該方法很難濾出靠近中心頻率的雜波。
以上的仿真已經證明,相位截斷對SFDR的影響量是最大的,是提高SFDR的首選方法。
相位加抖的數學模型如圖5所示。在LUTs地址字截斷之前,在累加器的輸出中加入低水平的偽隨機噪聲(A Low-level of Pseudo Random Noise),其中抖動的位數d是可變的。
圖5 相位加抖的數學模型
抖動(Dither)可以通過線性反饋移位寄存器(Linear Feedback Shift Register,LFSR)來實現,見圖6。LFSR有帶M個抽頭的移位寄存器,抽頭反饋通常由或門構成,以產生一個周期為2M-1的序列。因此,長偽隨機噪聲序列(Long Pseudo Random Noise Sequences)可以用很少的硬件資源實現。例如,一個由12個元件構成的LFSR能夠生成周期為4 095的PN序列。LFSR可以由M個D觸發器和很少的組合器件構成。
圖6 偽隨機噪聲產生器
來自某位的抽頭,可以組合為一個矢量生成該位的抖動。實際實現時,可以采用較長的移位寄存器。移位寄存器越長,則輸出的抖動越接近隨機的性質。
下面分析相位加抖數據位數d對SFDR的影響。圖7~圖9分別為d=b-3,b+3,b三種情況的仿真波形,其中b為累加器控制字小數部分的位數。
加抖位數d=b-3時,僅對整數位產生0~1/8的影響。此時將SFDR提高了1 dB。可見,增加過少位數的抖動,僅對相位的截斷有很小的影響,對改變雜波極為有限。
加抖位數d=b+3時,可以對整數位產生0~8的影響。此時將SFDR提高了9 dB。但同時可以看到,由于增加抖動的位數過多,雖然消除了雜波,但同時也提高了整個頻譜的噪聲電平。
圖7 相位加抖位數d=b-3的仿真波形
圖8 相位加抖位數d=b+3的仿真波形
圖9 相位加抖位數d=b的仿真波形
加抖位數d=b時,可以對整個整數位產生0~1影響。此時將SFDR提高到106 dB。同時可以看到,由于增加抖動的位數恰當,既消除了雜波,又提高了整個頻譜的噪聲電平。
在用FPGA實現NCOs時,通過相位加噪可以提高整個輸出頻率的SFDR性能。但從圖3,圖6比較可以看出,在整個電路中串入了加法器,且關鍵路徑包含了兩個部分Dithering和NCOs的加法器,因而限制了整個設計的最大時鐘頻率。
3 結 語
NCOs在數字通訊中起著非常重要的作用,在FPGA實現時,它可以由一個累加器和一個輸出頻率由步長定義的正弦波查找表的數字硬件構成。SFDR是表明合成正弦波譜純度性能的參數。仿真證明,在NCOs累加器輸出的相位中加入抖動,以提高SFDR性能,是一種簡單有效、低成本的方法。
參考文獻
[1]郭書軍,臧淼,張延華.數控振蕩器應用及其在FPGA中的實現[J].微計算機信息,2006,22(35):137-138.
[2]張進,蘇凱雄.基于FPGA的數控振蕩器的設計與實現[J].福州大學學報:自然科學版,2005(5):35-38.
[3]陳澤強,李蓬勃,曹葉文,等.基于FPGA的數控振蕩器設計及其性能分析[J].山東工業大學學報,2000,30(6):379-385.
[4]安效君,王力男.NCO的數字化實現及應用[J].無線電通信技術,2004,30(2):51-52.
[5]陳士川.數控振蕩器NCO的一種優化設計[J].通信對抗,2005(4):53-54.
[6]時春雨,劉橋.一種基于FPGA的數控振蕩器設計與實現[J].微計算機信息,2007,23(35):209-210.
[7]俞麒.基于改進算法的NCO雜散抑制實現[J].中國科技信息,2009(2):37-38.
[8]袁福,鄭林華,袁繼兵.DDS相位截斷雜散譜精確分析方法的改進[J].現代電子技術,2008,31(21):181-183.
[9]李海松,張奇榮,權海洋.DDS的相位截斷及相應的雜散信號分析[J].微電子學與計算機,2006,23(2):141-143.
[10]代向明,袁國順.相位加擾對DDFS合成頻譜的改善[J].電子器件,2008,31(2):555-557.