一種偽隨機(jī)數(shù)產(chǎn)生方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及信號(hào)發(fā)生領(lǐng)域,具體是一種偽隨機(jī)數(shù)產(chǎn)生方法。
【背景技術(shù)】
[0002] 理想白噪聲信號(hào)的功率譜密度函數(shù)在所有頻率上是一個(gè)常數(shù),其功率無窮大,因 此是不能物理實(shí)現(xiàn)的。一個(gè)噪聲信號(hào)在感興趣的頻率范圍內(nèi)其功率譜密度函數(shù)近似為一個(gè) 常數(shù),被稱為帶限白噪聲信號(hào),物理上是能夠?qū)崿F(xiàn)的。帶限白噪聲信號(hào)與理想白噪聲信號(hào)的 性質(zhì)類似。實(shí)際電路系統(tǒng)的帶寬是有限的,只要產(chǎn)生的帶限白噪聲信號(hào)的頻率范圍寬于實(shí) 際電路的帶寬,其對信號(hào)系統(tǒng)的影響跟相同譜密度、相同概率分布的理想白噪聲信號(hào)的影 響是相同的。將模擬白噪聲信號(hào)的電壓數(shù)字化后,可形成較為理想的隨機(jī)數(shù)。
[0003] 傳統(tǒng)上噪聲信號(hào)發(fā)生是基于物理技術(shù)。例如,利用放射性物質(zhì)的放射性,使用探測 器對其計(jì)數(shù)產(chǎn)生隨機(jī)數(shù)。利用氣體放電管的放電產(chǎn)生噪聲信號(hào)。在上世紀(jì)六七十年代,氣 體放電管作為噪聲標(biāo)準(zhǔn)在國內(nèi)外曾得到廣泛的應(yīng)用。以上產(chǎn)生噪聲的方法技術(shù)復(fù)雜、安全 性不高,因此又誕生了基于電路噪聲的固態(tài)噪聲發(fā)生技術(shù)。例如,利用電阻的熱噪聲或半導(dǎo) 體器件的噪聲,可產(chǎn)生寬帶噪聲信號(hào),其原理框圖如圖1所示。
[0004] 導(dǎo)體中載流子隨機(jī)熱運(yùn)動(dòng)而產(chǎn)生的起伏噪聲叫熱噪聲,熱噪聲電壓與溫度有關(guān), 其均方值為:
[0005] V2= 4kTBR
[0006] 其中R為導(dǎo)體的電阻,B為電路的帶寬,k為波爾茲曼常數(shù),T為絕對溫度。因?yàn)?熱噪聲起源于多數(shù)載流子的運(yùn)動(dòng),所以它的瞬時(shí)幅值服從均值為零的高斯分布,當(dāng)溫度和 阻值一定時(shí),熱噪聲電壓的譜密度與頻率無關(guān),因此,電阻的熱噪聲是高斯型的白噪聲。
[0007] -個(gè)半導(dǎo)體二極管反向偏置工作于雪崩擊穿狀態(tài),在雪崩區(qū)內(nèi),由于電子一空穴 對產(chǎn)生速率的隨機(jī)起伏性質(zhì)而產(chǎn)生雪崩散彈噪聲。在一定的雪崩頻率下,雪崩散彈噪聲與 白噪聲相似,其噪聲功率譜密度均勻分布。因此,反向工作于雪崩擊穿狀態(tài)的二極管可成為 一個(gè)較理想的噪聲源。利用齊納二極管或PIN二極管的雪崩擊穿產(chǎn)生噪聲信號(hào),再經(jīng)寬帶 放大,可產(chǎn)生寬帶噪聲信號(hào)。
[0008] 固態(tài)噪聲發(fā)生器頻率范圍較寬,可覆蓋至微波頻段,輸出信號(hào)的概率密度符合高 斯分布,屬于高斯白噪聲信號(hào)。傳統(tǒng)噪聲信號(hào)發(fā)生器的缺點(diǎn)是輸出信號(hào)的概率分布不能調(diào) 整、譜密度調(diào)整困難。實(shí)際應(yīng)用中,經(jīng)常需要數(shù)字型的隨機(jī)數(shù)或噪聲信號(hào)。將固態(tài)噪聲發(fā)生 器的輸出量化,可產(chǎn)生數(shù)字型的噪聲信號(hào)。
[0009] 下面闡述基于物理技術(shù)產(chǎn)生真隨機(jī)數(shù)的方法。利用齊納二極管的雪崩擊穿產(chǎn)生 的噪聲,經(jīng)隔直與寬帶放大,可產(chǎn)生模擬的寬帶白噪聲信號(hào),該噪聲信號(hào)是高斯分布的。使 用高速的A/D轉(zhuǎn)換器將模擬噪聲信號(hào)數(shù)字化,可產(chǎn)生高斯分布的數(shù)字噪聲信號(hào),原理框圖 如圖2所示。圖中Vcc為直流電壓源,R為限流電阻,以使二極管D工作在雪崩擊穿區(qū)。L 提供直流通路,同時(shí)隔離交流信號(hào),C為隔直流電容,同時(shí)將噪聲信號(hào)耦合輸出,N是放大電 路。量化的噪聲信號(hào)再跟數(shù)值〇比較,如果數(shù)值大于等于〇就輸出1,如果小于〇就輸出〇, 用這種方法產(chǎn)生了一個(gè)均勻分布的二進(jìn)制隨機(jī)數(shù),原理框圖如圖3所示。當(dāng)然也可以使用 高速的模擬比較器將模擬噪聲信號(hào)轉(zhuǎn)換成二進(jìn)制的數(shù)字噪聲信號(hào)。
[0010] 序列周期有限的隨機(jī)數(shù)稱為偽隨機(jī)數(shù),序列周期有限的隨機(jī)信號(hào)稱為偽隨機(jī)信 號(hào)。偽隨機(jī)數(shù)的序列周期越長,其統(tǒng)計(jì)特性越好,越接近真隨機(jī)數(shù)。由于真隨機(jī)數(shù)的產(chǎn)生電 路較為復(fù)雜,工程上,常使用偽隨機(jī)數(shù)代替真隨機(jī)數(shù),因?yàn)槠鋽?shù)學(xué)性質(zhì)類似,能夠滿足工程 需要。
[0011] 利用計(jì)算機(jī)可以方便的產(chǎn)生均勻分布偽隨機(jī)數(shù)。產(chǎn)生偽隨機(jī)數(shù)的方法有平方取中 法、乘同余法、線性同余算法。平方取中法、乘同余法產(chǎn)生偽隨機(jī)數(shù)的質(zhì)量不高。在計(jì)算機(jī) 上,常用線性同余算法產(chǎn)生偽隨機(jī)數(shù)。線性同余法遞推公式為:
[0012] rand (n) = (rand (n-l)*mult+inc) mod M
[0013] 其中rand(n)是當(dāng)前隨機(jī)數(shù),rand(n-1)是前一時(shí)刻隨機(jī)數(shù),mult是乘數(shù)因子,M =^為模值。inc是增量,通常情況下可取小于M的奇數(shù)。C語言編譯器中函數(shù)randO可 產(chǎn)生0~32767之間的隨機(jī)整數(shù)。VC中產(chǎn)生偽隨機(jī)數(shù)的公式為:
[0014] rand(n) = ((rand(n-1)*214013+2531011)mod 65536)&0x7fff
[0015] BC中產(chǎn)生偽隨機(jī)數(shù)的公式為:
[0016] rand(η) = ((rand(n-1)*22695477+1)mod 65536)&0x7fff
[0017] 利用數(shù)字技術(shù),產(chǎn)生均勾分布偽隨機(jī)數(shù)后,可方便的產(chǎn)生其它分布偽隨機(jī)數(shù),例如 高斯分布偽隨機(jī)序列,以及均值、方差、譜密度可調(diào)的偽隨機(jī)數(shù)字白噪聲信號(hào)。
[0018] m序列又稱最長線性反饋移位寄存器序列,是研究得比較深入的一種二進(jìn)制偽隨 機(jī)序列。常用于擴(kuò)頻通信、測距、電路測試等領(lǐng)域。它由帶線性反饋的移位寄存器產(chǎn)生,如 圖4所示。圖中一位移位寄存器的狀態(tài)用表示,a 1= OSa1=Li為整數(shù)。反饋線的 連接狀態(tài)用Ci表示,C i= 0表示該反饋線斷開,C i= 1表示反饋存在。
[0019] 移位寄存器在時(shí)鐘信號(hào)的控制下,一步步向外移位輸出。由于反饋的存在,若初始 狀態(tài)為全"〇",則移位后得到的仍為全"〇",因此應(yīng)避免出現(xiàn)全"〇"狀態(tài);又因?yàn)棣羌壱拼嫫?共有2 η種可能的不同狀態(tài),除全"0"狀態(tài)外,剩下2 η-1種狀態(tài)可用。每移位一次,就出現(xiàn)一 種狀態(tài),在移位若干次后,一定能重復(fù)出現(xiàn)前某一狀態(tài),其后的過程便周而復(fù)始,也就是說, 輸出信號(hào)一定是周期信號(hào)。反饋線位置不同將出現(xiàn)不同周期的不同序列,希望找到合適的 線性反饋邏輯,能使移位寄存器產(chǎn)生的序列最長,即達(dá)到周期M = 2n-l。按圖中連線關(guān)系, 移位寄存器組左端所得到的輸入可以寫為:
[0020] an= c Jan 1 Θ c 2an 2 ? c 3an 3 Θ . . . ? c n Θ c na〇
[0021] 式中?是異或運(yùn)算符。選擇合適的線性反饋邏輯時(shí),輸出序列就是一個(gè)周期為 2M的m序列。
[0022] C1的取值決定了具體移位寄存器的反饋連接、序列結(jié)構(gòu)和周期,為便于表達(dá)C ^勺 狀態(tài),引進(jìn)多項(xiàng)式:
[0023] f (x) = c〇+c1x+c2x2+. . . +cn ^cnXn
[0024] 該式稱為特征多項(xiàng)式。當(dāng)知道一個(gè)線性反饋移位寄存器的特征多項(xiàng)式,就可以決 定線性反饋移位寄存器的結(jié)構(gòu)。已經(jīng)證明,若線性反饋移位寄存器的特征多項(xiàng)式為本原多 項(xiàng)式,則此線性反饋移位寄存器能產(chǎn)生m序列。這是線性反饋移位寄存器產(chǎn)生m序列的充 分必要條件。在實(shí)際應(yīng)用中,根據(jù)數(shù)據(jù)位數(shù)需要首先確定m序列的長度,然后通過查表就可 以方便地得到m序列發(fā)生器的反饋邏輯。一定長度的線性反饋移位寄存器,有很多個(gè)本原 多項(xiàng)式,對應(yīng)不同的m序列。常用的本原多項(xiàng)式,前人已經(jīng)以表格的形式給出。例如,當(dāng)η =31時(shí),f(x) = 1+χ3+χ31為本原多項(xiàng)式,可產(chǎn)生m序列。對應(yīng)公式中的C。= 1,C3= 1,C31 =1。序列周期為231-1,恰好為一個(gè)梅森素?cái)?shù)。m序列有以下性質(zhì):
[0025] (1)平衡特性。在m序列的每個(gè)2n-l周期中,"1"碼元出現(xiàn)的數(shù)目為2 nl次,"0" 碼元出現(xiàn)的數(shù)目為2n 次,8卩"0"的個(gè)數(shù)總是比"1"的個(gè)數(shù)少一個(gè),這表明,序列平均值 極小。
[0026] (2)游程特性。游程是指在一個(gè)序列周期中連續(xù)排列的且取值相同的碼元的 合稱,在一個(gè)游程中的碼元的個(gè)數(shù)為游程長度。m序列中共有2 nl個(gè)游程。其中長度為 k(l彡k彡n-2)的游程數(shù)目占總游程數(shù)的2 k,長度為n-1的連"0"的游程數(shù)為1,長度為η 的連"1"游程數(shù)為