本發(fā)明涉及無(wú)線(xiàn)信道模擬、噪聲建模技術(shù)領(lǐng)域,具體涉及一種實(shí)時(shí)高斯白噪聲硬件發(fā)生器的并行實(shí)現(xiàn)方法。
背景技術(shù):
無(wú)線(xiàn)信道模擬技術(shù)由于可在地面復(fù)現(xiàn)出一個(gè)理想、惡化、甚至近乎真實(shí)的電波傳播環(huán)境,模擬信道各種時(shí)、空變化對(duì)信號(hào)傳播的影響,早已成為通信、測(cè)控等技術(shù)領(lǐng)域不可缺少的驗(yàn)證測(cè)試手段。相比于有線(xiàn)信道,無(wú)線(xiàn)信道是電波傳播的一種惡劣介質(zhì),具有隨機(jī)、不可預(yù)知等復(fù)雜特性。無(wú)線(xiàn)電波在信道傳輸過(guò)程中,會(huì)不可避免受到噪聲干擾、信道衰落、電離層閃爍、動(dòng)態(tài)雨衰等隨機(jī)非理想特性的影響。為了研究這些非理想特性對(duì)電波傳播的影響,國(guó)內(nèi)外學(xué)者通常以高斯白噪聲建模為基礎(chǔ),再通過(guò)各種線(xiàn)性或非線(xiàn)性的復(fù)雜變換來(lái)對(duì)信道的其它非理想特性進(jìn)行建模分析??梢?jiàn),高斯白噪聲是無(wú)線(xiàn)信道隨機(jī)非理想特性研究的重中之重,研究高斯白噪聲理論及實(shí)現(xiàn)方法對(duì)無(wú)線(xiàn)信道特性建模、仿真及模擬均具有重要意義。
研究資料表明,高斯白噪聲大多是通過(guò)一些算法對(duì)均勻分布的白噪聲進(jìn)行高斯化處理后產(chǎn)生得到。現(xiàn)階段,均勻白噪聲的產(chǎn)生方法主要包括線(xiàn)性同余算法、延遲斐波那契法、線(xiàn)性移位寄存器法及細(xì)胞自動(dòng)機(jī)理論等。線(xiàn)性同余法與延遲斐波那契法相比,前者在隨機(jī)數(shù)分布的均勻性、子序列依賴(lài)關(guān)系等性能測(cè)試中效果較差,但后者卻需要較多的乘法器資源,F(xiàn)PGA(Field Programmable Gate Array)硬件資源消耗大。線(xiàn)性移位寄存器法是目前應(yīng)用最廣泛的一種方法,具有算法簡(jiǎn)單、速度快、可重復(fù)性強(qiáng)及易于FPGA硬件實(shí)現(xiàn)等突出優(yōu)點(diǎn)。然而,由于該方法存在線(xiàn)性反饋結(jié)構(gòu),會(huì)導(dǎo)致其產(chǎn)生的偽隨機(jī)數(shù)具有較強(qiáng)的相關(guān)性,均勻白噪聲產(chǎn)生質(zhì)量相對(duì)較差。相比而言,細(xì)胞自動(dòng)機(jī)理論是近些年才用于均勻白噪聲的產(chǎn)生,由于其產(chǎn)生的噪聲具有周期長(zhǎng)、速度快、統(tǒng)計(jì)特性好、實(shí)現(xiàn)占用硬件資源少等突出優(yōu)點(diǎn),一經(jīng)問(wèn)世就受到了國(guó)內(nèi)外學(xué)者的廣泛關(guān)注。
在高斯白噪聲生成算法方面,目前主要包括累積分布函數(shù)反變換法、拒絕-接受法及均勻白噪聲變換法等。累積分布函數(shù)反變換法的基本思想是將任意給定隨機(jī)變量的累積分布函數(shù)做反變化,從而得到該累積分布函數(shù)對(duì)應(yīng)的隨機(jī)變量。該方法直觀(guān)、容易理解,但硬件實(shí)現(xiàn)時(shí)需要存儲(chǔ)非線(xiàn)性高斯累積分布函數(shù)與高斯白噪聲之間的映射關(guān)系,會(huì)不可避免地占用大量存儲(chǔ)資源。拒絕-接收法的基本思想是根據(jù)某些給定的判別準(zhǔn)則來(lái)確定所產(chǎn)生的隨機(jī)變量是否屬于高斯白噪聲進(jìn)而決定取舍。然而,由于該方法需要利用循環(huán)條件對(duì)輸入變量進(jìn)行判別,舍棄那些經(jīng)轉(zhuǎn)換后不能產(chǎn)生高斯白噪聲的數(shù)據(jù),因而其效率不高,并不適宜硬件實(shí)現(xiàn)。相比而言,均勻白噪聲變換法無(wú)需求解累積分布函數(shù)的反變換,通過(guò)對(duì)均勻分布的白噪聲進(jìn)行直接變換來(lái)產(chǎn)生高斯白噪聲。目前,這類(lèi)方法應(yīng)用最為廣泛,主要包括Box-Muller算法、中心極限定理累加法、Monty Python算法及基于三角分布的分段近似法等。
在高斯白噪聲發(fā)生器方面,早期的高斯白噪聲發(fā)生器大多基于計(jì)算機(jī)軟件進(jìn)行實(shí)現(xiàn),直到上個(gè)世紀(jì)八九十年代才陸續(xù)出現(xiàn)不同種類(lèi)的高斯白噪聲硬件發(fā)生器。例如,基于Ziggurat算法的高斯白噪聲硬件發(fā)生器、基于Box-Muller算法的高斯白噪聲硬件發(fā)生器及基于延遲斐波那契算法和中心極限定理的高斯白噪聲硬件發(fā)生器等。然而,上述硬件發(fā)生器的研究重點(diǎn)主要在于如何以較低的FPGA資源消耗生成高質(zhì)量的高斯白噪聲,卻忽略了高斯白噪聲的生成速度。特別是,隨著寬帶、超寬帶系統(tǒng)的不斷問(wèn)世,如何以較低的硬件資源消耗,實(shí)時(shí)地、高速地生成高質(zhì)量的高斯白噪聲顯得至關(guān)重要。因此,研究高斯白噪聲的高速、并行生成算法及硬件實(shí)現(xiàn)方法具有重要意義。
技術(shù)實(shí)現(xiàn)要素:
有鑒于此,本發(fā)明提供了一種實(shí)時(shí)高斯白噪聲硬件發(fā)生器的并行實(shí)現(xiàn)方法,基于細(xì)胞自動(dòng)機(jī)理論和Box_Muller算法,實(shí)現(xiàn)高斯白噪聲硬件發(fā)生器的實(shí)時(shí)地、高速地、并行生成高質(zhì)量的高斯白噪聲。
本發(fā)明的實(shí)時(shí)高斯白噪聲硬件發(fā)生器的并行實(shí)現(xiàn)方法,包括如下步驟:
步驟1,選定細(xì)胞自動(dòng)機(jī)規(guī)則為零邊界90/150細(xì)胞自動(dòng)機(jī)規(guī)則,在該規(guī)則下,根據(jù)擬生成高斯白噪聲的周期長(zhǎng)度計(jì)算獲得細(xì)胞自動(dòng)機(jī)的階次M及兩個(gè)互逆的規(guī)則向量d1和d2,其中,d1={d1(m),m=1,2,...,M}和d2={d2(m),m=1,2,...,M},規(guī)則向量中的元素d1(m)和d2(m)為0或1;
步驟2,設(shè)定細(xì)胞自動(dòng)機(jī)的初始向量s0為s0={s0(m),m=1,2,3...,M},且初始向量為非零向量;其中,元素s0(m)為0或1;
步驟3,在FPGA內(nèi)部產(chǎn)生兩組并行實(shí)現(xiàn)的均勻白噪聲,具體包括如下子步驟:
步驟3.1,根據(jù)實(shí)際應(yīng)用系統(tǒng)的采樣頻率fs和FPGA的工作時(shí)鐘fclk,計(jì)算并行路數(shù)其中表示向上取整;
步驟3.2,根據(jù)規(guī)則向量d1和初始向量s0,得到規(guī)則向量d1下的并行各路的初始向量sp={sp(m),m=1,2,...,M},p=1,2,…,N;
其中,第1路初始向量s1中任意元素s1(m)為:
其中,符號(hào)表異或運(yùn)算,m=1,2,3,...,M;s0(0)≡0,s0(M+1)≡0;
任意并行第p路初始向量sp中元素sp(m)為:
且sp(0)≡0和sp(M+1)≡0
步驟3.3,同步驟3.2,根據(jù)規(guī)則向量d2和初始向量s0,得到規(guī)則向量d2下的并行各路的初始向量rp={rp(m),m=1,2,...,M},p=1,2,…,N;
步驟3.4,根據(jù)零邊界90/150細(xì)胞自動(dòng)機(jī)規(guī)則,推導(dǎo)得到規(guī)則向量d1下的并行各路的遞推函數(shù)f;其中,p=1,2,…,N;其中,為第p路、第n時(shí)刻的狀態(tài)向量,為第p路、第n-1時(shí)刻的狀態(tài)向量,
同樣的,得到規(guī)則向量d2下的并行各路的遞推函數(shù)g;其中,p=1,2,…,N;其中,為第p路、第n時(shí)刻的狀態(tài)向量,為第p路、第n-1時(shí)刻的狀態(tài)向量,
步驟3.5,將步驟3.2產(chǎn)生的N個(gè)初始向量sp和步驟3.3產(chǎn)生的N個(gè)初始向量rp分別視為兩組Mbit的二進(jìn)制數(shù),根據(jù)步驟3.4推導(dǎo)的遞推函數(shù)關(guān)系f和g,在FPGA中并行生成2組N路均勻白噪聲和p=1,2,…,N;
步驟4:生成并行N路的高斯白噪聲,具體包括如下步驟:
步驟4.1,針對(duì)步驟3生成的第1組均勻白噪聲采用非等間隔分段多項(xiàng)式擬合法對(duì)Box_Muller算法中的進(jìn)行擬合,獲得各非等間隔分段的擬合系數(shù);將擬合系數(shù)量化后存儲(chǔ)至FPGA內(nèi)部存儲(chǔ)器;在FPGA內(nèi)部,根據(jù)已存儲(chǔ)的擬合系數(shù)對(duì)步驟3并行產(chǎn)生的第1組Mbit均勻白噪聲進(jìn)行并行的多項(xiàng)式計(jì)算,并截取高M(jìn)bit作為中間結(jié)果
步驟4.2,針對(duì)步驟3生成的第2組均勻白噪聲根據(jù)Box_Muller算法中的公式y(tǒng)2=cosx2,在FPGA內(nèi)部采用CORDIC IP核并行計(jì)算生成M bit中間結(jié)果
步驟4.3:在FPGA內(nèi)部并行生成第p路高斯白噪聲gp(n),p=1,2,…,N:在第p路,將兩個(gè)Mbit的與相乘,并將乘積結(jié)果截取高M(jìn)0bit作為最終生成的高斯白噪聲gp(n);其中,M0為數(shù)/模轉(zhuǎn)換器的有效位數(shù);
步驟5:對(duì)步驟4生成的N路高斯白噪聲按順序進(jìn)行并-串轉(zhuǎn)換處理后,經(jīng)數(shù)模轉(zhuǎn)換產(chǎn)生最終的高斯白噪聲。
進(jìn)一步地,所述步驟1中,規(guī)則向量由歐幾里得算法或查表得到。
有益效果:
本發(fā)明對(duì)比已有技術(shù),具有如下優(yōu)點(diǎn):
首先,提出了基于細(xì)胞自動(dòng)機(jī)理論的均勻白噪聲并行生成算法和基于FPGA的實(shí)現(xiàn)方法。在細(xì)胞自動(dòng)機(jī)理論基礎(chǔ)上,本發(fā)明根據(jù)需產(chǎn)生的均勻白噪聲周期長(zhǎng)度、實(shí)際系統(tǒng)的高速采樣頻率及FPGA低速工作時(shí)鐘,給出了細(xì)胞自動(dòng)機(jī)規(guī)則、階次和并行路數(shù)的選取方法,推導(dǎo)了并行實(shí)現(xiàn)所需N路初始向量的計(jì)算方法以及細(xì)胞自動(dòng)機(jī)并行生成算法的遞推函數(shù)關(guān)系,最終給出了基于細(xì)胞自動(dòng)機(jī)的均勻白噪聲的FPGA高速并行實(shí)現(xiàn)方法。因此,本發(fā)明所提方法兼顧了細(xì)胞自動(dòng)機(jī)理論生成均勻白噪聲的諸多優(yōu)點(diǎn),如周期長(zhǎng)、速度快、統(tǒng)計(jì)特性好、實(shí)現(xiàn)占用硬件資源少等,同時(shí)極大地提高了均勻白噪聲的實(shí)時(shí)性和生成速度。
隨后,給出了Box_Muller算法一種低復(fù)雜度的逼近方法。該方法采用非等間隔分段的多項(xiàng)式來(lái)逼近原始Box_Muller算法中的對(duì)數(shù)及開(kāi)方運(yùn)算,采用CORDIC算法進(jìn)行Box_Muller算法中的cos運(yùn)算。通過(guò)上述逼近,Box_Muller算法可簡(jiǎn)化為簡(jiǎn)單的乘加及CORDIC運(yùn)算,F(xiàn)PGA實(shí)現(xiàn)時(shí)僅需耗費(fèi)少量乘法器和邏輯資源,特別適用于高速、并行高斯白噪聲的產(chǎn)生。
綜上所述,本發(fā)明所提方法與現(xiàn)有高斯白噪聲硬件發(fā)生器相比,可在較低的FPGA資源消耗下,實(shí)時(shí)地、高速地生成周期長(zhǎng)、帶寬大、質(zhì)量好的高斯白噪聲。
附圖說(shuō)明
圖1為任意并行第p路中間結(jié)果1計(jì)算實(shí)現(xiàn)結(jié)構(gòu)。
圖2為本發(fā)明高斯白噪聲硬件發(fā)生器的結(jié)構(gòu)框圖。
具體實(shí)施方式
下面結(jié)合附圖并舉實(shí)施例,對(duì)本發(fā)明進(jìn)行詳細(xì)描述。
本發(fā)明提供了一種實(shí)時(shí)高斯白噪聲硬件發(fā)生器的并行實(shí)現(xiàn)方法,基于細(xì)胞自動(dòng)機(jī)理論和Box_Muller算法,可以在FPGA上并行、實(shí)時(shí)、高速地生成高質(zhì)量的高斯白噪聲。本發(fā)明首先根據(jù)噪聲周期長(zhǎng)度、實(shí)際系統(tǒng)的高速采樣頻率及FPGA低速工作時(shí)鐘等,確定細(xì)胞自動(dòng)機(jī)的階次、規(guī)則和并行路數(shù);隨后,根據(jù)細(xì)胞自動(dòng)機(jī)階次和規(guī)則,采用歐幾里得算法或查表得到兩個(gè)互逆的規(guī)則向量;同時(shí),根據(jù)細(xì)胞自動(dòng)機(jī)理論,由任意設(shè)定的非零初始向量推導(dǎo)并行實(shí)現(xiàn)時(shí)所需的N路初始向量及函數(shù)遞推關(guān)系,并在FPGA內(nèi)部生成兩組均勻白噪聲;最后,采用非等間隔多項(xiàng)式擬合和CORDIC算法逼近Box_Muller算法,對(duì)并行產(chǎn)生的兩組均勻白噪聲進(jìn)行高斯化處理,后經(jīng)并-串轉(zhuǎn)換及D/A外放即產(chǎn)生最終的高斯白噪聲。
具體步驟如下:
步驟1:根據(jù)需要產(chǎn)生高斯白噪聲的周期長(zhǎng)度,確定細(xì)胞自動(dòng)機(jī)的規(guī)則和階次。
設(shè)需要產(chǎn)生高斯白噪聲的周期長(zhǎng)度為L(zhǎng),為了以較低的細(xì)胞自動(dòng)機(jī)階次生成較長(zhǎng)周期的均勻白噪聲,本發(fā)明選擇零邊界90/150細(xì)胞自動(dòng)機(jī)規(guī)則。在此細(xì)胞自動(dòng)機(jī)規(guī)則下,階次M按下式計(jì)算:
其中,表示向上取整操作。
步驟2:根據(jù)步驟1確定的零邊界90/150細(xì)胞自動(dòng)機(jī)規(guī)則和階次M,可以由歐幾里得算法或查表得到M階細(xì)胞自動(dòng)機(jī)的兩個(gè)互逆的規(guī)則向量,分別記作:d1={d1(m),m=1,2,...,M}和d2={d2(m),m=1,2,...,M},其中規(guī)則向量中元素只存在0和1兩種可能,即d1(m)∈{0,1}和d2(m)∈{0,1}。
步驟3:設(shè)定任意M個(gè)元素的非零向量作為細(xì)胞自動(dòng)機(jī)的初始向量,其中每個(gè)元素只有0或1兩種取值,記作s0={s0(m),m=1,2,3...,M},其中m表示向量中元素的位置,且存在s0(m)∈{0,1}。
步驟4:根據(jù)細(xì)胞自動(dòng)機(jī)規(guī)則、階次M、規(guī)則向量d1和d2、初始向量s0,推導(dǎo)細(xì)胞自動(dòng)機(jī)的并行實(shí)現(xiàn)算法,并在FPGA內(nèi)部產(chǎn)生兩組并行實(shí)現(xiàn)的均勻白噪聲。
具體如下:
步驟4.1:根據(jù)實(shí)際應(yīng)用系統(tǒng)的采樣頻率fs和FPGA硬件實(shí)現(xiàn)欲采用的工作時(shí)鐘fclk,計(jì)算并行路數(shù)其中表示向上取整操作。
步驟4.2:根據(jù)規(guī)則向量d1和初始向量s0,按細(xì)胞自動(dòng)機(jī)理論遞推生成并行實(shí)現(xiàn)所需的第1組N個(gè)初始向量,記為sp={sp(m),m=1,2,...,M;p=1,2,...,N},其中m∈[1,M]表示向量中元素的位置,p∈[1,N]表示并行路數(shù)。
該分步驟具體原理如下:
根據(jù)細(xì)胞自動(dòng)機(jī)理論,并行第p=1路的初始向量s1中任意元素s1(m)可由規(guī)則向量d1和初始向量s0中元素按下式計(jì)算:
其中,符號(hào)表異或運(yùn)算,向量元素位置m=1,2,3,...,M。根據(jù)零邊界90/150細(xì)胞自動(dòng)機(jī)規(guī)則,存在s0(0)≡0和s0(M+1)≡0。
同理,任意并行第p路初始向量sp中元素可由第p-1路初始向量sp-1中元素和規(guī)則向量d1按下式計(jì)算:
其中,p=2,3,...,N,存在sp(0)≡0和sp(M+1)≡0。
因此,根據(jù)規(guī)則向量d1和初始向量s0,由(2)和(3)式即可遞推得到并行實(shí)現(xiàn)所需的N個(gè)初始向量sp={sp(m),m=1,2,...,M,p=1,2,...,N}。
步驟4.3:同理,根據(jù)規(guī)則向量d2和初始向量s0,按細(xì)胞自動(dòng)機(jī)理論遞推生成并行實(shí)現(xiàn)所需的第2組N個(gè)初始向量,記為rp={rp(m),m=1,2,...,M;p=1,2,...,N},其中m∈[1,M]表示向量中元素的位置,p∈[1,N]表示并行路數(shù)。
值得說(shuō)明的是,步驟4.3原理與步驟4.2原理相同,差別僅在于所用的規(guī)則向量不同。即是說(shuō),第p=1路初始向量r1中任意元素可按下式計(jì)算:
任意第p路初始向量rp中元素為
其中,p=2,3,...,N,存在rp(0)≡0和rp(M+1)≡0。
步驟4.4:根據(jù)零邊界90/150細(xì)胞自動(dòng)機(jī)規(guī)則,推導(dǎo)并行實(shí)現(xiàn)時(shí)規(guī)則向量d1、d2下的任意第p路的函數(shù)遞推關(guān)系cp(n)=f(cp(n-1))。
該分步驟原理如下:
以規(guī)則向量d1對(duì)應(yīng)的第1組數(shù)據(jù)為例:
根據(jù)細(xì)胞自動(dòng)機(jī)理論,任意第n時(shí)刻狀態(tài)向量s(n)={s(m,n),m=1,...,M;n=0,1,...}中任意元素s(m,n)可在零邊界90/150規(guī)則下,按下式計(jì)算:
其中,d(m)為任意規(guī)則向量d中元素。
考慮到任意規(guī)則向量d為已知量且僅存在0或1兩種取值,因此按(6)式遞推1次,可得
即是說(shuō),第n+1時(shí)刻的狀態(tài)向量s(n+1)與規(guī)則向量無(wú)關(guān),可由第n時(shí)刻狀態(tài)向量s(n)按固定的函數(shù)關(guān)系f1表示,記為s(n+1)=f1(s(n))。
同理,根據(jù)(6)(7)兩式再次進(jìn)行遞推,可得s(n+2)和s(n)確定的函數(shù)關(guān)系f2,記為s(n+2)=f2(s(n))。
依次類(lèi)推,當(dāng)遞推N次后,可得
s(n+N)=f(s(n)) (8)
即是說(shuō),根據(jù)確定的函數(shù)關(guān)系f可由第n時(shí)刻的狀態(tài)向量s(n)直接計(jì)算得到第n+N時(shí)刻的狀態(tài)向量s(n+N)。
考慮到細(xì)胞自動(dòng)機(jī)若由N路并行實(shí)現(xiàn),則任意第p路、第n時(shí)刻并行實(shí)現(xiàn)細(xì)胞自動(dòng)機(jī)所產(chǎn)生的狀態(tài)向量cp(n)={cp(m,n),m=1,...,M;n=0,1,...}應(yīng)對(duì)應(yīng)原始串行細(xì)胞自動(dòng)機(jī)(6)式產(chǎn)生的第N×(n-1)+p時(shí)刻的狀態(tài)向量。即是說(shuō),存在如下關(guān)系:
根據(jù)(8)和(9)式可知,等號(hào)右邊狀態(tài)向量滿(mǎn)足:
s(N×(n-1)+p)=f(s(N×(n-2)+p))
這樣并行實(shí)現(xiàn)的狀態(tài)向量cp(n)和cp(n-1)同樣存在:
cp(n)=f(cp(n-1)) (10)
即是說(shuō),任意第p路、第n時(shí)刻的狀態(tài)向量cp(n)可由前一時(shí)刻的狀態(tài)向量cp(n-1)按統(tǒng)一的函數(shù)關(guān)系f進(jìn)行計(jì)算,cp(0)=sp。
同樣的,可以獲得規(guī)則向量d2下的并行各路的遞推函數(shù)g;其中,p=1,2,…,N;其中,為第p路、第n時(shí)刻的狀態(tài)向量,為第p路、第n-1時(shí)刻的狀態(tài)向量,
步驟4.5:將步驟4.2產(chǎn)生的含M個(gè)0,1元素的第1組N個(gè)初始向量sp視為Mbit二進(jìn)制數(shù),根據(jù)步驟4.4推導(dǎo)的遞推函數(shù)關(guān)系f,在FPGA中并行生成第1組N路均勻白噪聲。
該分步驟原理如下:
若設(shè)為任意第p路、第n時(shí)刻產(chǎn)生的第1組狀態(tài)向量,則可按下式遞推得到:
其中,上標(biāo)“1”表示第1組,n=1,...,∞,p=1,...,N。
具體FPGA實(shí)現(xiàn)時(shí),先將狀態(tài)向量中M個(gè)0,1元素看作Mbit二進(jìn)制數(shù),再按(11)式確定的函數(shù)關(guān)系f進(jìn)行遞推,由此即可得到第1組并行產(chǎn)生的Mbit均勻白噪聲值,重記為p=1,2,...,N;n=1,2,...。
步驟4.6:在步驟4.5進(jìn)行的同時(shí),將步驟4.3產(chǎn)生的含M個(gè)0,1元素的初始向量rp看作Mbit二進(jìn)制數(shù),根據(jù)步驟4.4推導(dǎo)的遞推函數(shù)關(guān)系g,在FPGA中并行生成第2組N路均勻白噪聲。
該分步驟原理如下:
若設(shè)為任意第p路、第n時(shí)刻產(chǎn)生的第2組均勻白噪聲,則可按下式遞推得到:
其中,上標(biāo)“2”表示第2組,p=1,...,N。
若將狀態(tài)向量中M個(gè)0,1元素看作Mbit二進(jìn)制數(shù),由此即得第2組第n時(shí)刻產(chǎn)生的均勻白噪聲值,重記為p=1,2,...,N;n=1,2,...。
步驟5:采用非等間隔分段多項(xiàng)式擬合法和CORDIC(Coordinate Rotational Digital Computer,坐標(biāo)旋轉(zhuǎn)數(shù)字計(jì)算)算法對(duì)Box_Muller算法進(jìn)行逼近,在FPGA內(nèi)部對(duì)步驟4并行產(chǎn)生的2組均勻白噪聲進(jìn)行高斯化處理,生成N路并行高斯白噪聲,記作gp(n),p=1,2,...,N;n=1,2,...。
Box_Muller算法公式如下:
其中,x1和x2為(0,1)上均勻分布的白噪聲,且存在x1∈(0,1)和x2∈(0,1),y為高斯白噪聲。
步驟5.1:根據(jù)步驟4生成的第1組均勻白噪聲采用非等間隔分段多項(xiàng)式擬合法在FPGA內(nèi)部并行計(jì)算由M bit表示的中間結(jié)果,記為:
該分步驟具體原理如下:
根據(jù)Box_Muller算法可知,中間結(jié)果y1的計(jì)算涉及到自然對(duì)數(shù)及開(kāi)方運(yùn)算。顯然,若采用傳統(tǒng)的直接查表會(huì)不可避免地消耗FPGA內(nèi)部大量的存儲(chǔ)資源。為此,本發(fā)明采用非等間隔分段多項(xiàng)式擬合法來(lái)計(jì)算自然對(duì)數(shù)及開(kāi)方運(yùn)算。
根據(jù)分段多項(xiàng)式擬合的精度要求,對(duì)x1∈(0,1)區(qū)間進(jìn)行非等間隔劃分,共劃分為K段,記為x1∈(qk,qk+1),其中k=0,1,...,K-1,且存在q0=0和qK=1。對(duì)于任意第k個(gè)分段而言,采用(14)式所示的三次多項(xiàng)式對(duì)函數(shù)關(guān)系進(jìn)行逼近,即
根據(jù)函數(shù)關(guān)系在x1∈(qk,qk+1)區(qū)間內(nèi)對(duì)x1和y1進(jìn)行四點(diǎn)等間隔采樣,由(14)式建立如下線(xiàn)性方程組:
XkAk=Y(jié)k (15)
其中,列向量Ak=[ak bk ck dk]T,Yk=[yk1 yk2 yk3 yk4]T,且存在
求解上述線(xiàn)性方程組得到任意第k個(gè)分段的多項(xiàng)式擬合系數(shù)Ak,這樣任意x1∈(qk,qk+1)分段內(nèi)的函數(shù)值即可由當(dāng)前分段內(nèi)的多項(xiàng)式擬合系數(shù)Ak和x1按(14)式計(jì)算得到。
考慮到FPGA具體實(shí)現(xiàn)時(shí)需進(jìn)行量化處理,為此可先對(duì)K個(gè)非等間隔分段的擬合系數(shù){Ak,k=0,1,...,K-1}按(17)式進(jìn)行量化并存儲(chǔ)至FPGA內(nèi)部存儲(chǔ)器,即
其中,為量化后的多項(xiàng)式擬合系數(shù),k∈[0,K-1],N1為擴(kuò)位位數(shù),int[·]表示四舍五入操作,最終量化為M1bit有符號(hào)數(shù)(小數(shù)部分位數(shù)為N1bit)。
這樣,根據(jù)步驟4并行產(chǎn)生的第1組Mbit均勻白噪聲和已存儲(chǔ)的擬合系數(shù)即可在FPGA內(nèi)部并行計(jì)算中間結(jié)果
以任意第p路中間結(jié)果計(jì)算為例,F(xiàn)PGA實(shí)現(xiàn)結(jié)構(gòu)如圖1所示。
首先,擬合系數(shù)查找表模塊根據(jù)均勻白噪聲查表選出所用的多項(xiàng)式系數(shù)。對(duì)于任意k0∈[0,K-1],若均勻白噪聲滿(mǎn)足:
則擬合系數(shù)查找表模塊選擇輸出第k=k0個(gè)分段的擬合系數(shù)
隨后,三階多項(xiàng)式計(jì)算模塊根據(jù)均勻白噪聲和擬合系數(shù)按下式計(jì)算即可得到本分步驟所需的中間結(jié)果即
其中,表向下取整操作。上式計(jì)算的中間過(guò)程不進(jìn)行截位處理,計(jì)算結(jié)果截掉低M2bit、保留高M(jìn)bit作為最終Box_Muller算法的中間結(jié)果輸出。
步驟5.2:根據(jù)步驟4并行產(chǎn)生的第2組Mbit均勻白噪聲在FPGA內(nèi)部采用坐標(biāo)旋轉(zhuǎn)數(shù)字計(jì)算(CORDIC-Coordinate Rotational Digital Computer)IP核并行計(jì)算cos函數(shù),并按下式自動(dòng)計(jì)算生成Mbit中間結(jié)果即
其中,上標(biāo)“2”表示第2組中間結(jié)果,int[·]表示四舍五入操作,且p∈[1,N],n∈[1,∞)。
值得說(shuō)明的是,F(xiàn)PGA內(nèi)部實(shí)現(xiàn)時(shí),均勻白噪聲量化為M bit無(wú)符號(hào)數(shù)作為CORDIC IP核的相位輸入,IP核的輸出直接量化為M bit有符號(hào)數(shù)。
步驟5.3:根據(jù)步驟5.1和5.2產(chǎn)生的M bit中間結(jié)果和在FPGA內(nèi)部按下式計(jì)算產(chǎn)生N路并行高斯白噪聲,即
其中,p∈[1,N],n∈[1,∞)。計(jì)算時(shí),兩個(gè)Mbit有符號(hào)數(shù)與相乘,將結(jié)果截掉低M3bit、保留高M(jìn)0bit作為最終生成的高斯白噪聲gp(n)。其中,M0為D/A的有效位數(shù),且存在M3=M+M-M0。
可見(jiàn),經(jīng)過(guò)步驟5.1至5.3,本發(fā)明采用非等間隔分段多項(xiàng)式擬合法和CORDUC算法對(duì)Box_Muller算法進(jìn)行了逼近,并對(duì)步驟4并行生成的兩組M bit均勻白噪聲和進(jìn)行了高斯化處理,在FPGA內(nèi)部并行產(chǎn)生了N路M0bit的高斯白噪聲。
步驟6:對(duì)步驟5生成的N路高斯白噪聲按順序進(jìn)行并-串轉(zhuǎn)換處理后,經(jīng)D/A外放產(chǎn)生最終的高斯白噪聲。
綜上所述,以上僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。