摘 要:對目前常用的產生高斯隨機序列的方法進行了總結,在Stratix Ⅲ系列的芯片EP3SE260F1152C3上進行了仿真驗證,并且分別利用軟件SPSS和QuartusⅡV7.1對三種方法所產生的高斯序列進行了正態性檢驗和資源消耗的對比。最后從工程實用的角度出發,分別對這三種方法進行了分析比較,對于在工程上實現高斯隨機序列具有一定的參考意義。
關鍵詞:均勻分布; 高斯分布; CORDIC; FPGA
中圖分類號:TN911-34; TP391.9 文獻標識碼:A
文章編號:1004-373X(2011)17-0010-05
Realization and Analysis of Three Methods of Generating Gaussian Random Sequence on FPGA
XIA Yang, FAN Hong-qi, LU Zai-qi, FU Qiang
(ATR Key Lab, National University of Defense Technology, Changsha 410073, China)
Abstract: The common method of generating Gaussian random sequence is summarized. The simulation is implemented on EP3SE260F1152C3 which is belong to the series of Stratix Ⅲ,and the comparison between normality testing and resource consuming is made for the Gaussian random sequence generated by the three methods using software SPSS and QuartusⅡV7.1. From a practical point of engineering, three methods are analyzed and compared, some reference value is provided in the project to achieve Gaussian random sequence.
Keywords: uniform distribution; Gaussian distribution; CORDIC; FPGA
0 引 言
在許多雷達系統、通信系統、武器制導系統中,都需要用噪聲發生器來檢測系統的抗噪聲干擾能力,而符合高斯分布的噪聲是最常用的一種噪聲[1]。此外,高斯分布還是其他各種類型分布產生的基礎,例如常見的海雜波幅度分布模型有瑞利分布、對數正態分布、weibull分布、復合K分布等,這些分布的產生都是以高斯分布作為“種子”,再對其進行非線性變換而得到的。
在現場可編程門陣列(Field Programmable Gate Array,FPGA)中,產生高斯白噪聲通常是通過對均勻分布的隨機序列進行非線性變換而得到。目前比較常用的方法主要有三種:均勻變量相加法、舍棄法、基于CORDIC(Coordinate Rotation Digital Computer)算法的BOX-MULLER變換法。這三種方法各有優劣,采用哪種方法應根據實際應用情況而定。
SPSS是面向行業應用人員的統計分析軟件,可以進行數據融合、數據分析、結果展示等工作。它的統計方法成熟,具有實用性、易用性以及與其他軟件(如文字處理軟件等)交互良好的特點。Stratix Ⅲ系列是Altera公司高端芯片的一個系列,采用65 nm工藝,與同類產品相比具有低功耗、高性能的特點,并且具備良好的縱向移植能力。
本文開始簡要地介紹了上述三種方法的原理,考慮到CORDIC算法在工程上的廣泛應用,對CORDIC算法進行了重點介紹;然后在EP3SE260F1152C3上對這三種方法進行了仿真驗證,并且分別利用SPSS和QuartusⅡV7.1對這三種方法產生的高斯序列進行了正態性檢驗和資源消耗的對比分析;最后,以此為基礎,對上述三種方法進行了總結歸納。
1 三種高斯分布序列的FPGA實現原理
1.1 均勻分布隨機序列的產生
本文上述提到的三種產生高斯分布隨機序列的方法都是以均勻分布隨機序列為基礎的。通常可以近似認為m序列是服從(0,1)均勻分布的。m序列是最長線性反饋移位寄存器序列的簡稱,它是由多級移位寄存器和其他延遲元件通過線性反饋產生的最長碼序列。m序列具有與隨機噪聲類似的尖銳自相關特性,但它不是真正隨機的,而是按一定的規律形式周期性變化的,是一種偽隨機序列[2]。
m序列產生器產生的數據可以近似認為服從(0,1)的均勻分布隨機序列,從統計學角度看,可以認為是均勻分布的白噪聲序列。m序列的產生主要有兩種方式:內部反饋和外部反饋[3]。本文中m序列的產生采用外部反饋的形式,結構示意圖如圖1所示。
CORDIC算法僅使用簡單的移位和相加運算就可以實現如三角函數、對數函數、指數函數、雙曲正弦、余弦函數等,幾乎所有的超越函數均可以通過CORDIC算法得到,因而在工程上得到廣泛的應用。本文總結了一些可以通過CORDIC算法實現的常用函數,如表2所示。
本文中產生兩路高斯分布的隨機序列的流程圖如圖4所示。
2 仿真實驗及結果分析
2.1 仿真實驗結果
分別在Matlab和FPGA進行仿真驗證,仿真軟件為QuartusⅡV7.1,采用Altera公司Stratix Ⅲ系列的EP3SE260F1152C3,三種方法仿真結果如圖5~圖7所示。
2.2 正態性檢驗
使用SPSS軟件分別對三種方法產生的高斯分布序列進行峰度、偏度和正態性檢驗,V1,V2,V3分別表示均勻變量相加法、舍棄法和基于CORDIC算法的BOX-MULLER變換法所產生的高斯序列。結果如表3,表4所示。
在實際檢驗中規定,若樣本數n≤50,則應該以S-W(Shapiro-Wilk)檢驗為準;若樣本數n≥2 000時,應該以K-S(Kolmogorov-Smirnov)檢驗為準。對于兩種檢驗,如果Sig.的值大于0.05,則均可認為是正態分布。由表4可知,三種方法所產生的高斯分布均在置信區間內,可以接受。
2.3 三種方法所消耗的資源對比
本文利用仿真軟件QuartusⅡ V7.1對這三種方法所消耗的資源進行了對比,采用的芯片均為Altera公司的Stratix Ⅲ系列EP3SE260F1152C3。主要從寄存器、算術邏輯單元、塊狀存儲器、DSP模塊等資源的消耗以及引腳的數量進行了分析對比,結果如表5所示。
3 三種方法的對比分析
由K-S檢驗可知,三種方法所產生的高斯分布均在置信區間,都達到可以接受的水平。但在實際的應用中,應該根據具體的情況來定,如所使用的芯片,資源消耗,應用的場合等。
(1) 采用均勻變量相加法得出高斯分布序列這一方法的原理簡單,僅使用少量的專用邏輯寄存器和算術邏輯單元,就整體而言,在這三種方法中所消耗的資源最少,但是若將其應用到數字通信領域,則會遇到一定的問題,考慮到Ui-1/2的變化范圍是-1/2~1/2,由式(2)可知,X的變化范圍是-NC/2~NC/2,所以X的PDF的拖尾被截斷在±NC/2,如果仿真數字通信系統的目的是確定誤碼率,此時PDF的拖尾是十分重要的,因為PDF的拖尾表示導致傳輸差錯的大噪聲,可以通過將N取得足夠大來減小拖尾所帶來的影響,但對所要求的高斯分布的方差和資源消耗也會帶來一定的影響。
(2) 舍棄法所消耗寄存器和專用寄存器資源最少,且管腳數量也最少,但是消耗的BLOCK MEMORY BITS較多(占總數的10%),主要是因為涉及到指數運算,在FPGA上實現相對比較復雜,本文是通過查表的方式實現的。舍棄法可以很容易地推廣到其他非高斯分布的情況[7],理論上講,舍棄法適用于任何PDF具有有限支撐(只在有限范圍內有非零值)的情況,同時,如果所要求的概率密度函數的表達式比較復雜,則采用傳統的查表方式很難達到很好的精度,精度不夠則會直接影響所產生的結果。
(3) 基于CORDIC算法的BOX-MULLER變換法只使用移位和相加操作就可以實現對數運算、三角運算、平方根運算等,幾乎所有的超越函數均可以通過CORDIC算法來實現,故在工程中得到廣泛的應用。由于使用了大量的移位寄存器,所以對寄存器的消耗要比其他兩種方法多,但是對于本身就包含大量寄存器的FPGA來說是可以接受的(消耗的寄存器占總數的2%)。此外,這種方法不需要用到查表操作,所以不消耗BLOCK MEMORY BITS。CORDIC算法在工程上具有廣泛的適用性和可移植性。
4 結 論
本文采用基于CORDIC算法的BOX-MULLER法產生的高斯隨機序列已經用在雷達回波信號模擬器中的雜波生成模塊,得到了很好的結果。三種方法產生的高斯隨機序列均在可以接受的范圍內,但是三種方法所消耗的資源、使用的場景也有所差別,具體該如何選擇應該根據實際情況來定。
參 考 文 獻
[1]王衛江.實時高斯噪聲產生方法[J].儀器儀表學報,2006,27(11):1523-1525.
[2]閏保中,何聯,俊洪艷.m序列優選對及平衡Gold序列的產生與搜索[J].應用科技,2003(11):31-33.
[3]杜學峰,武杰.基于FPGA的任意分布高速偽隨機數發生器[J].中國科學技術大學學報,2006,36(9):990-994.
[4]LEE D U, VILLASENOR J D, LUK W, et al. A hardware Gaussian noise generator using the Box-Muller method and its error analysis [J]. IEEE Transactions on Computers, 2006, 55(6): 659-671.
[5]ANDRAKA Ray. A Survey of CORDIC algorithms for FPGA based computers [M]. New York, USA: ACM, 1998.
[6]肖明波,楊光松,許芳,等.通信系統仿真原理與無線應用[M].北京:機械工業出版社,2005.
[7]李洪偉.基于Quartus Ⅱ的FPGA設計[M].北京:電子工業出版社,2006.
[8]束禮寶,宋克柱,王硯方.偽隨機數發生器的FPGA實現與研究[J].電路與系統學報,2003,8(3):121-124.
[9]SCHOLLMEYER M F, TRANTER W H. Noise generators for the simulation of digital communication systems [C]// Proceedings of the 24th Annual Symposium on Simulation. New Orleans: IEEE, 1991: 264-275.
[10]PROAKIES J G.數字通信[M].張力軍,張宗橙,鄭寶玉,等譯.4版.北京:電子工業出版社,2007.
作者簡介:
夏 陽 男,1987年出生,湖北荊門人,碩士。主要研究方向為自動目標識別與模糊工程、嵌入式信號處理系統。
范紅旗 男,1978年出生,陜西渭南人,講師,工學博士。主要研究方向為自動目標識別與模糊工程、制導雷達信號處理、嵌入式信號處理系統。
盧再奇 男,1968年出生,湖南平江人,副教授,碩士生導師。主要研究方向為自動目標識別、實時系統設計。
付 強 男,1962年出生,湖南長沙人,教授,博士生導師。主要研究方向為雷達信號處理與目標識別。