林愛英 黨建亮 吳莉莉 鄭寶周
摘 要:提出一種新的基于FPGA的高斯白噪聲生成器的設(shè)計和實(shí)現(xiàn)方法,給出設(shè)計的總體框圖和分模塊設(shè)計中的一些要點(diǎn),闡述了主要部分的原理和電路實(shí)現(xiàn)方法。這種高斯噪聲生成器與傳統(tǒng)數(shù)字電路所組成的噪聲生成器相比,通過利用Quartus Ⅱ中的一些既有功能電路(PLL),大大降低了設(shè)計的難度,提高了電路調(diào)試的靈活性,可用于多種環(huán)境下的通信系統(tǒng)性能分析與測試。
關(guān)鍵詞:加性高斯白噪聲;PN序列;前仿真;后仿真
中圖分類號:TN914 文獻(xiàn)標(biāo)識碼:A
文章編號:1004-373X(2009)21-112-03
Signal Generator with Additive Gaussine White Noise(AGWN) Based on FPGA
LIN Aiying,DANG Jianliang,WU Lili,ZHENG Baozhou
(College of Science,Henan Agricultural University,Zhengzhou,450002,China)
Abstract:A new method is proposed for designing and implementing additive Gaussian white noise generator based on FPGA.In addition,there is a system block diagram and some key points in the module designing.Comparing with the traditional noise generator,this kind of Gaussine noise generator by using some given circuits such as PLL circuits from the Quartus Ⅱ software to reduce the design difficulty,thus improving the flexibility of circuit debugging,and it can be used in the performance analyzing and testing of communication system under many circumstances.
Keywords:additive Gaussine white noise;PN sequence;pre-simulation;post-simulation
在通信系統(tǒng)中分析計算系統(tǒng)抗噪聲性能時,經(jīng)常假定信道噪聲為加性高斯型白噪聲(AGWN)。本文就是通過分析AGWN的性質(zhì),采用自頂向下[1]的設(shè)計思路,將AGWN信號分成若干模塊,最終使用Verilog硬件描述語言,完成了通信系統(tǒng)中AGWN信號發(fā)生電路的設(shè)計和仿真,其實(shí)質(zhì)上是設(shè)計一個AGWN信號發(fā)生器。該信號主要應(yīng)用在數(shù)字通信系統(tǒng)中,所以只需要產(chǎn)生數(shù)字形式的AGWN信號,這樣既便于信號產(chǎn)生,也便于在數(shù)字通信系統(tǒng)中運(yùn)用。
1 AGWN信號的產(chǎn)生
AWGN信號指同時滿足白噪聲和高斯噪聲的條件的信號[2]。白噪聲功率密度函數(shù)在整個頻率域內(nèi)是常數(shù),即服從均勻分布。完全理想的白噪聲不存在。高斯噪聲指概率密度函數(shù)服從高斯分布(即正態(tài)分布)。AGWN信號其實(shí)就是一個具有確定功率譜密度和概率分布函數(shù)的隨機(jī)信號。
由隨機(jī)過程的理論可以知道,不相關(guān)隨機(jī)序列的功率譜密度為常數(shù)[2](白噪聲),偽隨機(jī)序列(PN)就是這樣的不相關(guān)序列。再由中心極限定理,獨(dú)立同分布的隨機(jī)變量的和收斂于高斯隨機(jī)變量[3]。這樣就可根據(jù)PN序列的性質(zhì)和中心極限定理來設(shè)計AWGN信號。
為簡單起見,設(shè)計用8個PN序列發(fā)生器產(chǎn)生8個獨(dú)立的偽隨機(jī)序列(每個分為實(shí)部和虛部),根據(jù)中心極限定理,將8個信號相加之后的信號,更加接近于AGWN信號,最后再乘以一個可變系數(shù),就產(chǎn)生了可在數(shù)字通信系統(tǒng)中直接引用的AGWN信號。AGWN信號生成的總體框圖如圖1所示。
在FPGA 內(nèi)部產(chǎn)生n位并行偽隨機(jī)序列,可由n個并行的結(jié)構(gòu)相同但初始態(tài)互不相同的線性反饋移位寄存器(LFSR) 產(chǎn)生。結(jié)構(gòu)相同的LFSR 在不同初始狀態(tài)下產(chǎn)生的序列之間存在著一種移位關(guān)系,導(dǎo)致n個序列并非相互獨(dú)立。如果所期望的序列長度為k,那么只有在保證任一狀態(tài)在k次移位操作之內(nèi)都不會與其他狀態(tài)發(fā)生重復(fù)后,這種方法才是可取的。
在通信中,信號一般都表示為復(fù)數(shù)形式,所以該設(shè)計采用了實(shí)部與虛部的表示方法,AGWN信號分為實(shí)部與虛部,它們滿足正交關(guān)系[4]。
2 模塊的設(shè)計與實(shí)現(xiàn)
設(shè)計主要分為三大模塊:PN序列產(chǎn)生模塊,產(chǎn)生符合高斯型白噪聲偽隨機(jī)序列;加法器模塊,將產(chǎn)生的8個PN序列相加產(chǎn)生更加符合AGWN信號的偽隨機(jī)序列;乘法器模塊,將加法器產(chǎn)生的偽隨機(jī)序列乘以一個可變系數(shù),得到最終的符合數(shù)字信號的偽隨機(jī)序列。
2.1 n個PN序列發(fā)生器的設(shè)計與實(shí)現(xiàn)[4]
PN序列產(chǎn)生模塊的主要功能就是產(chǎn)生PN序列。而PN序列中m序列又是周期最大,偽隨機(jī)性最好的一種移位寄存器序列[2]。m序列的自相關(guān)性、隨機(jī)性特性很好地滿足了AGWN信號的要求,故用其產(chǎn)生的序列可以來產(chǎn)生該設(shè)計中的信號。
要產(chǎn)生m序列,就要求移位寄存器的反饋鏈路滿足本原多項式,由n個并行的結(jié)構(gòu)相同但初始態(tài)互不相同的線性反饋移位寄存器(LFSR) 產(chǎn)生的序列在其周期足夠長的情況下可以把它們看作是獨(dú)立的。
設(shè)計中選取n=8,移位寄存器位數(shù)選取為25位,其m序列周期為33 554 431。其信號實(shí)部抽頭選取3,0,虛部抽頭選取3,2,1,0,分別對應(yīng)PN序列的特征多項式。這樣選取是因?yàn)橐粋€移位寄存器的本原多項式有很多種,這里選取的兩個抽頭比較簡單,對電路實(shí)現(xiàn)在資源、結(jié)構(gòu)上都有優(yōu)勢。PN發(fā)生器選擇8個是考慮到資源利用率方面的問題,這樣選取可使資源利用率達(dá)到最大。
2.2 疊加電路設(shè)計與實(shí)現(xiàn)
根據(jù)中心極限定理,對于若干個獨(dú)立同分布的隨機(jī)變量,其和的極限分布是標(biāo)準(zhǔn)正態(tài)分布。這樣將產(chǎn)生的8個序列疊加將產(chǎn)生符合高斯特性的序列。發(fā)生器串行輸出的實(shí)部,虛部8個獨(dú)立的碼相異或。即每8個一位二進(jìn)制數(shù)相異或。
2.3 乘法系數(shù)電路的設(shè)計與實(shí)現(xiàn)
2.3.1 設(shè)計思想
乘法器設(shè)計是FPGA設(shè)計中的一個難點(diǎn),有很多種算法來實(shí)現(xiàn)它??梢圆捎靡莆患訉?shí)現(xiàn),在GF(28)域上乘法是這樣進(jìn)行的:乘以2相當(dāng)于將該8位二進(jìn)制數(shù)向高位移一位,如果此8位二進(jìn)制數(shù)的最高位為1,則需要將移位結(jié)果異或8位二進(jìn)制數(shù)00000001。還有一種方法就是,在代碼中直接將乘法寫成*,讓綜合工具自己去綜合出可用的硬件電路。本文采用綜合工具自帶的模塊電路。
2.3.2 電路實(shí)現(xiàn)
設(shè)計對時序要求較嚴(yán)格。乘法器電路必須用到三個寄存器以用來保存加法器串行輸出的連續(xù)8個PN碼,乘法系數(shù)和乘積。
在reset之后,PN序列發(fā)生電路已經(jīng)產(chǎn)生第一個輸出碼,同時加法器也將結(jié)果運(yùn)算出來,但這時乘數(shù)寄存器中只有最低位是有用的剛傳進(jìn)來的一位碼,其他位還是無用信號,只有到了8個時鐘信號之后,乘數(shù)寄存器中才保存了8個連續(xù)的有用的PN碼,這時必須很快地進(jìn)行乘法運(yùn)算并將結(jié)果保存在乘積寄存器中,第9個時鐘信號到來時乘法運(yùn)算必須進(jìn)行完畢,空閑出來的乘數(shù)寄存器用來寄存后面的8個連續(xù)的PN碼,然后一直這樣循環(huán)工作。8個乘數(shù)寄存器保存PN碼時鐘信號后,立即進(jìn)行乘法運(yùn)算并保存乘積,這就要求乘積寄存器空出來,為了空出乘積寄存器,第8個時鐘到來時必須將乘積寄存器中的數(shù)據(jù)一位一位串行輸出。乘積寄存器中有16位二進(jìn)制數(shù),這就要求一個時鐘信號的2倍頻信號作為乘積寄存器串行輸出的時鐘信號。
基于以上問題的考慮,乘法電路用綜合工具自己生成的8位乘法器,該模塊電路中還要用到一個2倍頻電路,這也用綜合工具自帶的模塊電路。
3 綜合、仿真結(jié)果
在Quartus Ⅱ集成了多種設(shè)計輸入方式,并可使用Assignment Editor(分配編輯器)方便地設(shè)定管腳約束和時序約束,正確地使用時序約束可以得到設(shè)計的詳細(xì)時序報告,便于分析設(shè)計是否滿足時序要求。在整個設(shè)計流程中,完成了設(shè)計輸入以及成功綜合、布局布線,只能說明設(shè)計符合一定的語法規(guī)范,但其是否滿足設(shè)計者的功能要求并不能保證,這需要通過仿真進(jìn)行驗(yàn)證[5]。
3.1 功能仿真
功能仿真(前仿真),不帶時延信息,對電路物理行為進(jìn)行仿真,速度較快。
圖2是對頂層模塊(AGWN模塊)進(jìn)行功能仿真后在不同時段的波形。由圖中可以看出,輸出序列具有隨機(jī)性。
圖3~圖5分別是對各個分模塊進(jìn)行前仿真后的波形圖。圖3是8個PN序列發(fā)生器的仿真波形圖。
圖4是加法器模塊的仿真波形:因?yàn)閞eset之后的第一個clk上升沿輸出的是PN序列的第二個碼字,第一個碼字在reset同時已經(jīng)輸出,加法電路是一個組合電路,所以加法器的輸出(addi/addq)在系統(tǒng)剛啟動時不會出現(xiàn)不確定值。
圖5是系統(tǒng)正常運(yùn)行后乘法模塊的仿真波形。值得注意的是在系統(tǒng)剛開始運(yùn)轉(zhuǎn)時,reset信號之后,由于PN序列發(fā)生器和加法器中的串行輸出數(shù)據(jù),還沒有傳遞到乘法器模塊中的被乘數(shù)寄存器(multiregi/multiregq)和乘積寄存器中,這時從乘積寄存器中串行輸出一些不確定值。
3.2 綜合、布局布線[6]
綜合是指將HDL語言,原理圖等設(shè)計輸入翻譯成由與、或、非門,RAM,觸發(fā)器等基本邏輯單元組成的邏輯連接,并根據(jù)目標(biāo)及要求優(yōu)化所生成的邏輯,最后輸出edf或vqm網(wǎng)表文件供布局布線用。
布局布線是將綜合生成的邏輯網(wǎng)表適配到具體器件中,并把工程的邏輯和時序要求與器件的可用資源相匹配,它將每個邏輯功能分配給最好的邏輯單元位置,進(jìn)行布線和時序,并選擇相應(yīng)的互邊路徑和管腳分配。
3.3 時序仿真
時序仿真也稱后仿真,即通過加入綜合后網(wǎng)表及時延信息對電路進(jìn)行綜合仿真,速度較慢。前后仿真與綜合、布局布線的關(guān)系是一脈相承的,又相輔相成。功能仿真與綜合、時序分析形成一個反饋工作過程,只有過程收斂之后的綜合、布局布線等環(huán)節(jié)才有意義,孤立的功能仿真即使通過也是沒有意義的,如果在時序分析中發(fā)現(xiàn)時序不滿足需要更改代碼,則功能仿真必須重新進(jìn)行。
圖6是在Quartus Ⅱ中綜合布局布線之后的時序仿仿真波形。由于用了2倍頻電路,所以系統(tǒng)只用了一個時鐘信號clk,a為8位的系數(shù)。為觀察產(chǎn)生的AGWN的隨機(jī)性,截取的圖形是同一仿真在不同時段的波形圖。
4 結(jié) 語
本文使用Verilog硬件設(shè)計語言,采用自頂下的設(shè)計思路,將整個設(shè)計分為了不同的小模塊,分別實(shí)現(xiàn)每一個模塊的功能,最終設(shè)計出AGWN信號產(chǎn)生的Verilog電路,并實(shí)現(xiàn)了功能仿真、綜合、布局布線、時序仿真。該電路實(shí)現(xiàn)了在數(shù)字通信系統(tǒng)中常用的AGWN信號,由于數(shù)字通信系統(tǒng)中用到的是數(shù)字信號,可以直接在數(shù)字通信系統(tǒng)中加載所產(chǎn)生的數(shù)字信號使用。如果需要用到模擬的AGWN信號,可將產(chǎn)生的數(shù)字信號通過A/D轉(zhuǎn)換器轉(zhuǎn)換為模擬信號再進(jìn)行使用。
參考文獻(xiàn)
[1]潘松,黃繼業(yè).EDA技術(shù)實(shí)用教程[M].北京:科學(xué)出版社,2002.
[2]趙樹杰.信號檢測與估值理論[M].西安:西安電子科技大學(xué)出版社,1998.
[3]John G Proakis.數(shù)字通信[M].4版.張力軍,張宗橙,譯.北京:電子工業(yè)出版社,2005.
[4]張瑞華,劉慶華.偽隨機(jī)噪聲產(chǎn)生方法及其DSP實(shí)現(xiàn)[J].聲學(xué)與電子工程,2003(2):22-24.
[5]王誠,吳繼華,范麗珍.Altera FPGA/CPLD設(shè)計(基礎(chǔ)篇)[M].北京:人民郵電出版社,2005.
[6]杜慧敏,趙全良,李宥謀.基于Verilog的FPGA設(shè)計基礎(chǔ)[M].西安:西安電子科技大學(xué)出版社,2002.
作者簡介
林愛英 女,1969年出生,碩士研究生,講師。研究方向?yàn)樾盘柼幚?、圖像處理及移動通信。