專利名稱:一種用于深空通信協(xié)議編碼的均勻隨機(jī)數(shù)生成方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種用于深空通信協(xié)議編碼的均勻隨機(jī)數(shù)生成方法,屬于深空通信及通信信號(hào)處理技術(shù)領(lǐng)域。
背景技術(shù):
隨著美國(guó)“勇氣號(hào)”,“好奇號(hào)”探測(cè)器登陸火星,深空探測(cè)已經(jīng)開(kāi)始悄然變?yōu)楹教炜萍佳芯康闹攸c(diǎn)。深空通信傳輸協(xié)議中有很多編碼,包括物理層的RS碼,傳輸層/應(yīng)用層的噴泉碼等等,這些碼字在編碼過(guò)程中的共同點(diǎn)是都需要隨機(jī)數(shù)生成器。例如,在噴泉碼中,產(chǎn)生度分布時(shí)需要魯棒孤波分布的隨機(jī)數(shù)生成器,以產(chǎn)生編碼輸出所需要的最佳度分布。在生成度以后還需要一個(gè)均勻隨機(jī)數(shù)生成器來(lái)確定相應(yīng)的輸入編碼包。可見(jiàn),在深空通信協(xié)議中,隨機(jī)數(shù)生成器是很重要、很基本的功能單元。任何一種隨機(jī)數(shù)生成器都是由均勻分布的隨機(jī)數(shù)生成器演變而來(lái)的,所以設(shè)計(jì)一種性能良好的均勻分布隨機(jī)數(shù)生成器是非常關(guān)鍵的。
由于深空通信信道的特殊性,以及編碼的特殊性,對(duì)隨機(jī)數(shù)生成器的要求較高。由于深空傳輸?shù)难舆t較長(zhǎng),為了克服信道特性,發(fā)送的冗余較大,對(duì)信道編碼的依賴較大,所以對(duì)隨機(jī)數(shù)的要求較高。產(chǎn)生的隨機(jī)數(shù)性能好,最終編碼性能就好,也就能更好的克服深空信道的特性。但是,目前隨機(jī)數(shù)生成方法的性能還不能完美的達(dá)到協(xié)議實(shí)現(xiàn)的要求。
隨機(jī)數(shù)生成器分為兩大類,一類是真隨機(jī)數(shù)生成器,一類是偽隨機(jī)數(shù)生成器。真隨機(jī)數(shù)生成器產(chǎn)生真隨機(jī)數(shù),是最理想的情況。真隨機(jī)數(shù)生成器主要有兩種實(shí)現(xiàn)方式,一種方式是采用用一定的方法使觸發(fā)器產(chǎn)生亞穩(wěn)態(tài),進(jìn)而產(chǎn)生真隨機(jī)數(shù);另一種方法是放大硬件電路中的隨機(jī)噪聲,并設(shè)置一個(gè)閾值進(jìn)行判決,進(jìn)而產(chǎn)生真隨機(jī)數(shù)。但是,上述產(chǎn)生真隨機(jī)數(shù)的方法只能硬件實(shí)現(xiàn),不能夠仿真,并且產(chǎn)生速率只有幾百kbit/s,產(chǎn)生速率不能達(dá)到深空通信中編碼的要求。
偽隨機(jī)數(shù)的生成方法較多,最基本的方法是采用移位寄存器。偽隨機(jī)數(shù)一般存在以下缺點(diǎn),一是偽隨機(jī)數(shù)是有周期的,不是真正的隨機(jī)數(shù);二是一般的偽隨機(jī)數(shù)生成器位寬不夠;三是經(jīng)過(guò)改進(jìn)的隨機(jī)數(shù)生成器對(duì)FPGA資源利用不充分,產(chǎn)生的隨機(jī)數(shù)的隨機(jī)性能不能達(dá)到系統(tǒng)要求。
2009年谷曉忱在《計(jì)算機(jī)工程與科學(xué)》雜志上發(fā)表的“多輸出外部反饋性LFSR均勻分布隨機(jī)數(shù)生成器的分析與設(shè)計(jì)”中提出了一種改進(jìn)的隨機(jī)數(shù)生成方法一 “多輸出外部反饋LFSR”。該方法解決了輸出位寬不夠的問(wèn)題,但是這種改進(jìn)后的方法產(chǎn)生的隨機(jī)數(shù)仍然是有周期限制的,并且生成矩陣太多稀疏,相關(guān)性較強(qiáng),從而使最終產(chǎn)生的隨機(jī)數(shù)的性能并不是最佳的。
FPGA是一種可編程的硬件實(shí)現(xiàn)平臺(tái),由于FPGA的資源有限,所以對(duì)FPGA資源的充分利用是隨機(jī)數(shù)生成器設(shè)計(jì)的指標(biāo)之一。Xilinx公司Virtex5系列FPGA的基本邏輯結(jié)構(gòu)是6輸入查找表(Look-Up-Table),簡(jiǎn)寫(xiě)為6-LUT。當(dāng)不使用6-LUT的所有輸入時(shí),仍然會(huì)占用整個(gè)LUT資源,造成資源浪費(fèi)?!岸噍敵鐾獠糠答丩FSR”方法設(shè)計(jì)的生成矩陣最終只能利用LUT中的2-3個(gè)輸入,其余輸入沒(méi)有得到充分利用,導(dǎo)致FPGA的資源不能得到充分利用??梢?jiàn),在深空通信協(xié)議的編碼過(guò)程中亟需一種位寬可配,隨機(jī)性能良好的真隨機(jī)數(shù)生成器。
發(fā)明內(nèi)容
本發(fā)明的目的在于減少深空通信協(xié)議實(shí)現(xiàn)的硬件資源,提高隨機(jī)數(shù)生成器的隨機(jī)性能,提出一種用于深空通信協(xié)議編碼的均勻隨機(jī)數(shù)生成方法,該方法是一種隨機(jī)性能好、產(chǎn)生速度快且沒(méi)有周期限制的真隨機(jī)數(shù)生成方法。本發(fā)明設(shè)計(jì)k*k維偽隨機(jī)數(shù)生成矩陣,使產(chǎn)生的偽隨機(jī)數(shù)達(dá)到最大的周期,提高隨機(jī)數(shù)的隨機(jī)性能,生成的隨機(jī)數(shù)位寬為k,滿足深空通信系統(tǒng)協(xié)議實(shí)現(xiàn)時(shí)位寬可變的要求。并產(chǎn)生真隨機(jī)數(shù)作為偽隨機(jī)數(shù)生成器的種子,從而得到不受周期限制的真隨機(jī)數(shù)。通過(guò)本發(fā)明的均勻隨機(jī)數(shù)生成方法,得到速率為f、隨機(jī)數(shù)產(chǎn)生范圍為(0,M-1)的真隨機(jī)序列。其具體實(shí)現(xiàn)步驟如下:步驟一,確定隨機(jī)數(shù)要求的位寬k:k=I Og2M其中,(M-1)為系統(tǒng)要求生成的隨機(jī)數(shù)范圍上限。步驟二,設(shè)計(jì)k*k維轉(zhuǎn)移矩陣A作為偽隨機(jī)數(shù)生成矩陣。矩陣第I行到第k行中“I”的個(gè)數(shù)分別為In1, m2,…,mk,矩陣第I列到第k列中“ I”的個(gè)數(shù)分別為叫,!^...,!!,。對(duì)于具有6個(gè)輸入端口 LUT的FPGA硬件電路,2彡Hii彡4,2彡Iii彡4。Hii, Iii的值越大,對(duì)LUT資源的利用越充分,生成的隨機(jī)數(shù)性能越好,但同時(shí)增加矩陣設(shè)計(jì)的難度。矩陣的具體設(shè)計(jì)步驟如下,步驟2.1,隨機(jī)產(chǎn)生一個(gè)k*k維矩陣,其中X列的Iii等于(a_l),其余k-χ列的Iii等于 a, i=l, 2,..., k ;X初始為0,a初始為4。步驟2.2,計(jì)算步驟2.1生成的矩陣中每行“I”的個(gè)數(shù),若有X行的Hii等于(a_l),其余k-x行的Hii等于a,則執(zhí)行步驟2.3 ;若不滿足條件,則令x=x+l返回執(zhí)行步驟2.1至步驟2.2。步驟2.3,計(jì)算步驟2.2得到的多個(gè)k*k維轉(zhuǎn)移矩陣的特征多項(xiàng)式,在滿足特征多項(xiàng)式為本原多項(xiàng)式的矩陣中,選取相關(guān)性最弱(每行、每列、對(duì)角線上連續(xù)為I的個(gè)數(shù)最少)的矩陣作為偽隨機(jī)數(shù)生成矩陣;若均不是本原多項(xiàng)式,則執(zhí)行步驟2.4。步驟2.4,判斷X是否等于k,若X不等于k,則將x加I,返回執(zhí)行步驟2.1至步驟
2.3 ;若x=k則執(zhí)行步驟2.5。步驟2.5,若a不等于3,令a=a_l, x=0,重新執(zhí)行步驟2.1至步驟2.4,直到找到滿足條件的偽隨機(jī)數(shù)生成矩陣。步驟三,設(shè)計(jì)k位真隨機(jī)數(shù)生成器。本發(fā)明采用“觸發(fā)器亞穩(wěn)態(tài)”方法搭建k位真隨機(jī)數(shù)生成器。所搭建的k位真隨機(jī)數(shù)生成器的觸發(fā)器的采集時(shí)鐘為
權(quán)利要求
1.一種用于深空通信協(xié)議編碼的均勻隨機(jī)數(shù)生成方法,其特征在于:得到的真隨機(jī)序列速率為f、產(chǎn)生范圍為(O, M-1);具體包括如下步驟: 步驟一,確定隨機(jī)數(shù)要求的位寬k: k=I Og2M ; 步驟二,設(shè)計(jì)k*k維轉(zhuǎn)移矩陣A作為偽隨機(jī)數(shù)生成矩陣; 矩陣第I行到第k行中“I”的個(gè)數(shù)分別為...,mk,矩陣第I列到第k列中“I”的個(gè)數(shù)分別為n” n2,..., nk ; 矩陣的具體設(shè)計(jì)步驟如下, 步驟2.1,隨機(jī)產(chǎn)生一個(gè)k*k維矩陣,其中X列的Iii等于(a-Ι),其余k-x列的Iii等于Bj i_l, 2,..., k ; X初始為O, a初始為4 ; 步驟2.2,計(jì)算步驟2.1生成的矩陣中每行“I”的個(gè)數(shù),若有X行的Hii等于(a-Ι),其余k-x行的Hii等于a,則執(zhí)行步驟2.3 ;若不滿足條件,則令x=x+l,返回執(zhí)行步驟2.1至步驟2.2 ; 步驟2.3,計(jì)算步驟2.2得到 的多個(gè)k*k維轉(zhuǎn)移矩陣的特征多項(xiàng)式,在滿足特征多項(xiàng)式為本原多項(xiàng)式的矩陣中,選取相關(guān)性最弱的矩陣作為偽隨機(jī)數(shù)生成矩陣;若均不是本原多項(xiàng)式,則執(zhí)行步驟2.4 ; 步驟2.4,判斷X是否等于k,若X不等于k,則將X加I,返回執(zhí)行步驟2.1至步驟2.3 ;若x=k則執(zhí)行步驟2.5 ; 步驟2.5,若a不等于3,令a=a-l, x=0,重新執(zhí)行步驟2.1至步驟2.4,直到找到滿足條件的偽隨機(jī)數(shù)生成矩陣; 步驟三,設(shè)計(jì)k位真隨機(jī)數(shù)生成器; 步驟四,令步驟三設(shè)計(jì)得到的k位真隨機(jī)數(shù)生成器產(chǎn)生k位真隨機(jī)數(shù); 步驟五,設(shè)計(jì)k位偽隨機(jī)數(shù)生成器,采用步驟二得到的偽隨機(jī)數(shù)生成矩陣; 步驟六,將步驟四得到的k位真隨機(jī)數(shù)作為初始種子,輸入步驟五得到的k位偽隨機(jī)數(shù)生成器,生成第一個(gè)周期的k位隨機(jī)數(shù),作為系統(tǒng)輸出;同時(shí)將該系統(tǒng)輸出再次輸入步驟五所設(shè)計(jì)得到的k位偽隨機(jī)數(shù)生成器,得到下一周期的k位隨機(jī)數(shù); 步驟七,按照步驟六所述方法用上一周期的輸出生成下一周期的k位偽隨機(jī)數(shù),其中,當(dāng)?shù)趇.2k(i > I)個(gè)周期時(shí),重復(fù)步驟六到步驟七。
2.根據(jù)權(quán)利要求1所述的一種用于深空通信協(xié)議編碼的均勻隨機(jī)數(shù)生成方法,其特征在于:對(duì)于具有6個(gè)輸入端口 LUT的FPGA硬件電路,2彡Hii彡4,2彡Iii彡4。
3.根據(jù)權(quán)利要求1所述的一種用于深空通信協(xié)議編碼的均勻隨機(jī)數(shù)生成方法,其特征在于:所述相關(guān)性最弱的矩陣的選取原則為每行、每列、對(duì)角線上連續(xù)為I的個(gè)數(shù)最少。
4.根據(jù)權(quán)利要求1所述的一種用于深空通信協(xié)議編碼的均勻隨機(jī)數(shù)生成方法,其特征在于:采用“觸發(fā)器亞穩(wěn)態(tài)”方法搭建k位真隨機(jī)數(shù)生成器,所搭建的k位真隨機(jī)數(shù)生成器的觸發(fā)器的采集時(shí)鐘為;; 2-1
5.根據(jù)權(quán)利要求1所述的一種用于深空通信協(xié)議編碼的均勻隨機(jī)數(shù)生成方法,其特征在于:所述步驟五采用k個(gè)D觸發(fā)器生成k位偽隨機(jī)數(shù)生成器。
全文摘要
本發(fā)明涉及一種用于深空通信協(xié)議編碼的均勻隨機(jī)數(shù)生成方法,屬于深空通信及通信信號(hào)處理技術(shù)領(lǐng)域。本發(fā)明設(shè)計(jì)k*k維偽隨機(jī)數(shù)生成矩陣,使產(chǎn)生的偽隨機(jī)數(shù)達(dá)到最大的周期,提高隨機(jī)數(shù)的隨機(jī)性能,生成的隨機(jī)數(shù)位寬為k,滿足深空通信系統(tǒng)協(xié)議實(shí)現(xiàn)時(shí)位寬可變的要求。并產(chǎn)生真隨機(jī)數(shù)作為偽隨機(jī)數(shù)生成器的種子,從而得到不受周期限制的真隨機(jī)數(shù),使隨機(jī)數(shù)的輸出隨機(jī)特性比較好。
文檔編號(hào)G06F7/58GK103197912SQ20131009241
公開(kāi)日2013年7月10日 申請(qǐng)日期2013年3月21日 優(yōu)先權(quán)日2013年3月21日
發(fā)明者安建平, 楊雷, 翟輝, 卜祥元, 崔健 申請(qǐng)人:北京理工大學(xué)