吳國望 屈曉旭 徐 丹
(海軍工程大學電子工程學院 武漢 430033)
基于FPGA的高斯白噪聲信號源實現*
吳國望屈曉旭徐丹
(海軍工程大學電子工程學院武漢430033)
摘要論文根據直接頻率合成理論,對均勻分布的隨機數進行白化處理,提出基于FPGA的高斯白噪聲發生器實現方法。該方法實現簡單快速,可移植性強,可以靈活的在實驗或測試中運用。
關鍵詞直接頻率合成; 線性反饋移位寄存器; 高斯白噪聲; FPGA
Class NumberTP391.1
1引言
在通信和控制系統中,高斯白噪聲是很常見的噪聲信號。在研究無線通信信道特性時,常常需要高斯白噪聲信號源,用于測試和檢驗系統的抗干擾性能,所以設計實現一個結構簡單、性能可靠的高斯白噪聲信號源,對系統檢測和理論研究都有非常必要的意義。
2實現原理
2.1直接數字頻率合成[1~2]
由于數字精度有限,數字高斯白噪聲實際上產生的是偽隨機數,具有一定的周期性。但只要周期足夠長,就能滿足工程需要。直接數字頻率合成(DDS)是一種比較新穎的頻率合成方法。隨著科學技術的日益發展,這種頻率合成方法也越來越體現它的優越性[3]。DDS是一種全數字化的頻率合成方法[4~5],因此適合用于FPGA實現。圖1所示是一個DDS的基本結構。本設計通過改變ROM查找表的內容,產生高斯白噪聲。

圖1 DDS基本結構
Altera公司的QUARTUS軟件提供了ROM ip核,只要載入查找表就可以產生對應的波形數據。mif文件常用的一種查找表,在mif文件里除了相應的數據,還需要對數據的類型、位寬和存儲單元格數進行說明。可以利用Matlab產生存有高斯白噪聲數據的mif文件,避免了類似sin(x)、log(x)等超越函數的計算,適合FPGA實現。通過wgn()函數產生高斯白噪聲數據,再把數據放大、量化,并且將數值寫入外部文件,按照需要的格式創建.mif文件供ROM核調用。下面列出了實現程序。
N = 10;%N為數據寬度為10位
depth=2^N;%depth存儲單元個數;
value = wgn(depth,depth,1); %產生高斯白噪聲數據,value為高斯白噪聲數據值
value = value*(depth/32 -1);%擴大白噪聲幅度值
value = fix((value)+0.5); %對白噪聲數據進行量化
2.2偽隨機序列產生[6]
偽隨機序列具有類似隨機噪聲的一些統計特性,且便于重復產生和處理,因此獲得了廣泛的應用。LFSR(Linear Feedback Shift-Register),即線性反饋移位寄存器[7],是可以用于產生偽隨機序列的一種邏輯電路。一個LFSR電路有一系列M寄存器和決定序列轉換狀態的反饋抽頭組成。反饋抽頭由模-2多項式描述。對于一個M級LFSR來說,最多可以有2M個狀態,全“0”狀態不會轉入其他狀態,所以LFSR的最長周期是2M-1。為了使偽隨機序列的周期滿足要求,采用的本原多項式為:x8+x3+1[9~10]。連線如圖2所示。

圖2 LFSR實現結構
3硬件實現
在Quartus9.1開發環境中使用VerilogHDL語言實現上述高斯白噪聲發生器的功能,本設計選用友晶公司的DE0作為目標板。其實現框圖如圖3所示。

圖3 硬件實現框圖
其中DDS模塊包括存產生地址的LFSR模塊、有高斯白噪聲數據的ROM模塊和D/A轉換器。每一個時鐘,LFSR把當前所有寄存器的值整體給ROM,作為是查找ROM的地址。根據地址,ROM有一個輸出給D/A模塊。D/A模塊的功能就是進行數模轉換,根據輸入的輸入產生需要的的模擬白噪聲信號。圖4為系統消耗資源的情況。可見,該方法實現簡單,消耗資源少。

圖4 資源消耗情況
4性能分析
將程序下載到開發板,并采用SignalTap將硬件產生的高斯白噪聲序列通過JTAG回傳,然后將數據導入到Matlab。由于SignalTap要利用FPGA的片內存儲空間暫存采樣值,所以一次采集的信號數目有限且與FPGA型號有關。實驗中將一次采集到的8192個樣值導入Matlab后,對結果進行驗證。
首先對數據的分布特性進行驗證。利用Matlab中提供的hist()函數,默認把數據分為10組,都接近高斯分布。為了進一步驗證分布特性,可以增加數據分組。如果統計特性良好,隨著分組增加數據仍然保持良好的高斯分布。由圖5可見,當把數據分為20組時,14位寄存器統計特性較好。

圖5 概率分布情況
除了對數據的概率分布進行驗證,還需要估計出其功率譜。計算功率譜密度,采用1024點周期圖譜法。圖6為功率譜密度。從結果來看,產生的白噪聲功率譜平坦,與理論分析接近。下面給出了計算功率譜密度的程序。
N=1024;
Pxx=10*log10(abs(fft(Y8).^2)/N);
實驗結果表明,增加寄存器位數可以提高性能。圖6為8、10和14位寄存器的功率譜密度。隨著寄存器和ROM空間的增加,統計分布和功率譜密度越來越趨近理論。實際工程中,芯片的存儲資源不盡相同,在資源足夠的情況下,可以通過增加寄存器位數提高白噪聲性能。


圖6 功率譜密度
5結論
本文提出了一種在FPGA中產生高斯白噪聲的實現方案,該方案基于LFSR和DDS原理,簡單易行運算量小,而且實現速度快,占用的硬件資源較少。方案還對系統性能進行分析,得出了通過增加寄存器位數提高性能的結論。
參 考 文 獻
[1] 高琴,姜壽山,魏忠義.基于FPGA的 DDS信號源設計與實現[J].西安工程科技學院學報,2006,20(2):211-214.
[2] 張厥勝,曹麗娜.鎖相與頻率合成技術[M].成都:電子科技大學出版社,1995:140-147.
[3] 姜萍,王建新,吉訓生.FPGA實現的直接數字頻率合成器[J].電子技術用用,2002, 28(5): 43-44.
[4] 劉晨,王森章.直接數字頻率合成器的設計及FPGA實現[J].微電子與計算機,2004,21(5):63-65.
[5] 宋陽,孫肖子,仁愛鋒.基于DDS和FPGA的虛擬智能信號源的研究[J].數據采集與處理,2001,16:124-126.
[6] 管宇,徐雷,徐建中.用FPGA產生高斯白噪聲序列的一種快速方法[J].電子元器件應用,2008,10(11):55-58.
[7] 張萍,戴光明.高斯隨機噪聲實時產生實現方法研究[J].技術應用,2004,(4):10-12.
[8] 樊昌信,曹麗娜.通信原理(第6版)[M].北京:國防工業出版社,2014:57-60.
[9] Tezuka, S. Lattice Structure of Pseudorandom Sequences from Shift Register Generator[C]//Proceedings of the 1990 Winter Simulation Conference,1990.
[10] Niederretter. H. New Developments in Uniform Pseudorandom Number and Vector Generation[J].Lecture Notes in Statistics,1995(106):87-120.
[11] 夏宇聞.數字系統設計教程(第3版)[M].北京:北京航天航空大學出版社,2013:39-49.
Realization of Gauss White Noise Signal Generator Based on FPGA
WU GuowangQU XiaowuXU Dan
(College of Electronic Engineering, Naval University of Engineering, Wuhan430033)
AbstractAccording to the theory of DDS, uniformly distributed random numbers whitening process, FPGA-based implementations of Gaussian white noise generator is proposed. The method is simple, rapid, and can be portabally used in experiments or tests flexibly.
Key Wordsdirect digital synthesizer, linear feedback shift-register, white guassian noise, FPGA
*收稿日期:2015年12月24日,修回日期:2016年1月28日
作者簡介:吳國望,男,研究方向:數字通信。屈曉旭,男,博士,副教授,研究方向:數字通信。徐丹,女,碩士,講師,研究方向:無線通信。
中圖分類號TP391.1
DOI:10.3969/j.issn.1672-9730.2016.06.032