本發(fā)明涉及數(shù)字信息處理領(lǐng)域,具體為一種基于fpga和mc模型生成突發(fā)隨機(jī)脈沖噪聲的方法及裝置。
背景技術(shù):
近年來plc快速發(fā)展,傳輸速率大幅提高,被稱為寬帶電力線通信(broadbandoverpowerline,bpl),成為解決寬帶網(wǎng)絡(luò)瓶頸——“最后一公里”的新的接入技術(shù)。在能源信息化的大背景下,智能電網(wǎng)、物聯(lián)網(wǎng)、能源互聯(lián)網(wǎng)等一系列概念的提出,使plc在能源計(jì)量和控制方面成為一種新的發(fā)展方向。比如自動(dòng)抄表(automatedmeterreading,amr)和自動(dòng)化儀表管理(automatedmetermanagement,amm)等技術(shù)已經(jīng)在部分地區(qū)得到推廣。
寬帶電力線通信中的噪聲遠(yuǎn)比其他專用通信線路中的噪聲復(fù)雜,是研究電力線通信的難點(diǎn)。電力線開放式信道環(huán)境下的寬帶電力線噪聲干擾是影響其性能的最重要因素。目前電力線噪聲主要研究理論建模,缺乏噪聲硬件實(shí)現(xiàn)方法的研究較其他通信信道不同,電力線通信信道一個(gè)顯著的特點(diǎn)是信道中的脈沖干擾大部分是由連接到電力線的用電設(shè)備所引起,這些用電設(shè)備在開關(guān)閉合和斷開,以及在工作中都會(huì)引起大量的脈沖噪聲。這些沖擊噪聲往往是呈現(xiàn)突發(fā)狀態(tài),能嚴(yán)重干擾電力線信道中傳輸?shù)臄?shù)字信息,甚至能引起數(shù)據(jù)的突發(fā)性錯(cuò)誤。
突發(fā)噪聲中長(zhǎng)度內(nèi)存在若干個(gè)脈沖噪聲點(diǎn),有時(shí)候其時(shí)域波形呈現(xiàn)一點(diǎn)的包絡(luò)形態(tài),可以用馬爾可夫鏈(markovchain)模型描述。
某一隨機(jī)過程x(t)在t0時(shí)刻所處的狀態(tài)為已知,如果隨機(jī)過程x(t)在未來t(t>t0)所處的狀態(tài)只與t0時(shí)刻或者t0之前有限的一段狀態(tài)有關(guān),則該過程x(t)稱為馬爾可夫鏈。設(shè)馬爾科夫過程{x(t),t∈t}的狀態(tài)空間為i,對(duì)于任意的t∈t,x(tn)在條件x(ti)=xi下的條件分布函數(shù)滿足:
p{x(tn)≤xn|x(t1)≤x1,x(t2)≤x2,…,x(tn-1)≤xn-1}
=p{x(tn)≤xn|x(tn-1)≤xn-1},xn∈r…………(1)
馬爾科夫鏈{xn=x(n),n=0,1,2,…},狀態(tài)空間為i={a0,a1,a2,…},ai∈r,根據(jù)mc的定義,其有如下特性:
①mc的分布律為
馬爾科夫鏈xn=ai的狀態(tài)概率為:
pi(n)·p{xn=ai}…………(2)
mc的條件概率為:
上式中i1,i2,…,in-1,in皆為0,1,2,…,n中的某一只值。
②馬爾科夫鏈的狀態(tài)轉(zhuǎn)移概率矩陣
mc在任意的狀態(tài)轉(zhuǎn)移時(shí)刻m都會(huì)發(fā)生新的狀態(tài)轉(zhuǎn)移,對(duì)于任意的正整數(shù)m和n,設(shè)mc在m時(shí)刻及m以前時(shí)刻的狀態(tài)都已知,則有:
已知mc在時(shí)刻m處于狀態(tài)ai,在時(shí)刻n轉(zhuǎn)移到狀態(tài)aj的條件轉(zhuǎn)移概率可表示為:
pij(m,n)=p{xm+n=aj|xm=ai}…………(5)
由轉(zhuǎn)移概率構(gòu)成的矩陣為:
該矩陣稱為mc的狀態(tài)轉(zhuǎn)移概率矩陣,該矩陣表征了mc的各個(gè)狀態(tài)互相轉(zhuǎn)移過程中的概率準(zhǔn)則,該矩陣具有性質(zhì):
0≤pij(k)≤1(i,j∈i)……(7)
∑pij(k)=1(i∈i)……(8)
為能在實(shí)驗(yàn)室環(huán)境下測(cè)試不同噪聲下的寬帶載波通信系統(tǒng)提供了方便。達(dá)到對(duì)寬帶載波芯片的研發(fā)、選型、測(cè)試的目的,本文提出了一種基于fpga和mc模型生成突發(fā)隨機(jī)脈沖噪聲方法及裝置。
技術(shù)實(shí)現(xiàn)要素:
有鑒于此,本發(fā)明的目的在于提供一種基于fpga和mc模型生成突發(fā)隨機(jī)脈沖噪聲方法及裝置,由此來很好的滿足實(shí)驗(yàn)室所需模擬電力線中突發(fā)噪聲的要求。
為達(dá)到上述目的,本發(fā)明提供如下技術(shù)方案:
一種基于fpga和mc(markovchain)模型生成突發(fā)隨機(jī)脈沖噪聲的裝置,包括:通用異步收發(fā)傳輸uart模塊101、控制和命令解析單元102、一級(jí)mc模型103、判定模塊i104、脈沖寬度模塊105、高斯白噪聲模塊106、二級(jí)mc模型107、二級(jí)mc噪聲空間模塊108和計(jì)數(shù)器模塊i109;
其中,uart模塊101上設(shè)置有輸入端可供上位機(jī)連接輸入;uart模塊101傳送上位機(jī)命令到控制和命令解析單元102;控制和命令解析單元102連接并控制高斯白噪聲模塊106、一級(jí)mc模型103、計(jì)數(shù)器模塊ⅰ109、二級(jí)mc模型107和二級(jí)mc噪聲空間模塊108,其中,一級(jí)mc模型103為兩個(gè)狀態(tài)的一階mc,二級(jí)mc模型107為至少有三個(gè)狀態(tài)的二階mc;脈沖寬度模塊105接收控制和命令解析單元102的突發(fā)脈沖的脈沖點(diǎn)數(shù)并產(chǎn)生相應(yīng)脈沖寬度或根據(jù)控制和命令解析單元102下發(fā)的分布函數(shù)隨機(jī)產(chǎn)生脈沖寬度,并連接控制一級(jí)mc模型103和二級(jí)mc模型107;判定模塊ⅰ104用于生成判定結(jié)果,其輸出端與高斯白噪聲模塊106和二級(jí)mc模型107連接;二級(jí)mc噪聲空間模塊108輸出端與二級(jí)mc模型107連接;高斯白噪聲模塊106和二級(jí)mc模型107連接形成本裝置的輸出端;本裝置輸出端上連接有計(jì)數(shù)器模塊ⅰ109,當(dāng)計(jì)數(shù)器模塊ⅰ109的計(jì)數(shù)達(dá)到上位機(jī)下發(fā)的點(diǎn)數(shù)時(shí),則關(guān)閉二級(jí)mc模型107,同時(shí)使能一級(jí)mc模型103,進(jìn)行下一個(gè)脈沖周期。
進(jìn)一步,所述上位機(jī)和uart模塊之間設(shè)置有一個(gè)usb轉(zhuǎn)uart橋接。
進(jìn)一步,所述一級(jí)mc模型103包括:一級(jí)mc儲(chǔ)存器,累加器模塊ⅰ,lfsr模塊ⅰ,判定模塊ⅱ,計(jì)數(shù)器模塊ⅱ,一級(jí)mc狀態(tài)空間模塊;
其中,一級(jí)mc儲(chǔ)存器存放的是從上位機(jī)傳來的一級(jí)mc模型的狀態(tài)轉(zhuǎn)移矩陣和兩狀態(tài)的初始概率分布;一級(jí)mc模型首先依據(jù)兩狀態(tài)的初始概率分布跳到第一個(gè)狀態(tài),并記下該狀態(tài)在狀態(tài)轉(zhuǎn)移矩陣中的位置,即該狀態(tài)在狀態(tài)轉(zhuǎn)移矩陣所在行中第一位數(shù)值在一級(jí)mc儲(chǔ)存器中的地址;lfsr模塊ⅰ產(chǎn)生(0,1]之間的偽隨機(jī)數(shù),它在一級(jí)mc模型發(fā)生狀態(tài)改變的周期內(nèi)不發(fā)生變化;累加器模塊ⅰ首先將一級(jí)mc儲(chǔ)存器中的數(shù)據(jù)在地址的增加下逐位取出狀態(tài)轉(zhuǎn)移矩陣行中的概率數(shù)值,并求累加和,然后與lfsr模塊ⅰ產(chǎn)生的隨機(jī)數(shù)進(jìn)入判定模塊ⅱ判定,如果第ith1次產(chǎn)生的隨機(jī)數(shù)大于該次的累加和,使能信號(hào)置1,完成一個(gè)mc的周期,ith1即為從當(dāng)前狀態(tài)跳到的下一個(gè)狀態(tài),然后在一級(jí)mc狀態(tài)空間模塊中取出ith1對(duì)應(yīng)的狀態(tài)值作為一級(jí)mc模型的輸出。
進(jìn)一步,所述二級(jí)mc模型107包括:二級(jí)mc儲(chǔ)存器,累加器模塊ⅱ,lfsr模塊ⅱ,判定模塊ⅲ,計(jì)數(shù)器模塊ⅲ,二級(jí)mc狀態(tài)空間模塊,分布函數(shù)模塊,脈沖長(zhǎng)度模塊,噪聲綜合模塊和脈沖幅度、脈沖狀態(tài)個(gè)數(shù)模塊;
其中二級(jí)mc儲(chǔ)存器存放的是二級(jí)mc的狀態(tài)轉(zhuǎn)移矩陣和初始概率分布,二級(jí)mc模型首先根據(jù)初始概率分布跳到初始狀態(tài),此時(shí)初始狀態(tài)包括兩個(gè)狀態(tài):當(dāng)前狀態(tài)和前一個(gè)狀態(tài),組成一個(gè)連續(xù)狀態(tài),二級(jí)mc模型記下該初始狀態(tài)在狀態(tài)轉(zhuǎn)移矩陣中的位置,即該狀態(tài)在狀態(tài)轉(zhuǎn)移矩陣所在行中第一位數(shù)值在二級(jí)mc儲(chǔ)存器中的地址,lfsr模塊ⅱ產(chǎn)生(0,1]之間的偽隨機(jī)數(shù),累加器模塊ⅱ將二級(jí)mc儲(chǔ)存器中的數(shù)據(jù)在地址的增加下逐行取出狀態(tài)轉(zhuǎn)移矩陣行中的概率數(shù)值,并求累加和,然后與lfsr模塊ⅱ產(chǎn)生的隨機(jī)數(shù)進(jìn)入判定模塊ⅲ判定,如果第ith2次產(chǎn)生的隨機(jī)數(shù)大于該次的累加和,使能信號(hào)置1,完成一個(gè)二階mc的周期;ith2即跳往的下一個(gè)連續(xù)狀態(tài)中的第二個(gè)狀態(tài),與上一個(gè)連續(xù)狀態(tài)中的第二個(gè)狀態(tài)組成當(dāng)前狀態(tài)的連續(xù)狀態(tài),噪聲綜合模塊根據(jù)脈沖長(zhǎng)度模塊和二級(jí)mc狀態(tài)空間模塊輸出的幅值合成脈沖噪聲,合成脈沖噪聲作為二級(jí)mc模型的輸出。
一種基于fpga和mc模型生成突發(fā)隨機(jī)脈沖噪聲的方法,包括以下步驟:
s1上位機(jī)傳送控制命令和參數(shù)到控制和命令解析單元;
s2控制和命令解析單元解析控制命令并分配到各個(gè)模塊;
s3一級(jí)mc模型從控制和命令解析單元接收控制命令后,判定模塊進(jìn)入判定流程,如果一級(jí)mc模型不進(jìn)入脈沖態(tài),則控制和命令解析單元控制高斯白噪聲模塊輸出背景噪聲;如果一級(jí)mc模型進(jìn)入脈沖態(tài),判定模塊判定此時(shí)進(jìn)入二級(jí)mc模型;
s4控制和命令解析單元控制二級(jí)mc模型的分布函數(shù)的選擇或突發(fā)脈沖的脈沖點(diǎn)數(shù),二級(jí)mc模型在脈沖長(zhǎng)度模塊和噪聲空間模塊的綜合作用下輸出脈沖噪聲;
s5脈沖點(diǎn)數(shù)計(jì)數(shù)模塊控制著脈沖的長(zhǎng)度,當(dāng)脈沖點(diǎn)數(shù)計(jì)數(shù)模塊計(jì)數(shù)達(dá)到閾值時(shí),就關(guān)閉二級(jí)mc模型,同時(shí)使能一級(jí)mc模型進(jìn)行下一個(gè)脈沖周期。
進(jìn)一步,所述上位機(jī)發(fā)送的控制命令包括,復(fù)位系統(tǒng)、設(shè)定內(nèi)部參數(shù),所述上位機(jī)發(fā)送的參數(shù)包括一級(jí)mc模型中兩個(gè)狀態(tài)的初始概率分布和狀態(tài)轉(zhuǎn)移矩陣、脈沖寬度模塊中控制脈沖長(zhǎng)度的參數(shù)值、高斯白噪聲模塊的初始種子、噪聲空間模塊中的最大和最小幅值以及脈沖長(zhǎng)度或者選用的分布函數(shù)。
本發(fā)明的有益效果在于:本發(fā)明提供的突發(fā)噪聲發(fā)生器結(jié)構(gòu)簡(jiǎn)單、容易實(shí)現(xiàn)、集成度高、硬件消耗低、發(fā)生器參數(shù)靈活可設(shè),能夠很好的滿足實(shí)驗(yàn)室所需模擬電力線中突發(fā)噪聲的要求。
附圖說明
為了使本發(fā)明的目的、技術(shù)方案和有益效果更加清楚,下面以fpga實(shí)現(xiàn)突發(fā)噪聲為例,對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單介紹:
圖1是本發(fā)明裝置的整體結(jié)構(gòu)的示意圖;
圖2是一級(jí)的mc兩狀態(tài)轉(zhuǎn)移圖;
圖3是一級(jí)mc模型實(shí)現(xiàn)框圖;
圖4是一級(jí)mc模型中兩狀態(tài)在rom中存儲(chǔ)示意圖;
圖5是一級(jí)mc模型的systemgenerator模塊實(shí)現(xiàn)圖;
圖6是一級(jí)mc模型wavescope仿真時(shí)序圖;
圖7是至少三個(gè)狀態(tài)的二階mc狀態(tài)轉(zhuǎn)移圖;
圖8是二級(jí)mc模型實(shí)現(xiàn)框圖;
圖9是舍選法對(duì)均勻分布的隨機(jī)數(shù)u的舍選圖;
圖10是systemgenerator實(shí)現(xiàn)舍選法產(chǎn)生任意分布偽隨機(jī)數(shù);
圖11是舍選法產(chǎn)生任意分布偽隨機(jī)數(shù)的測(cè)試;
圖12是二級(jí)mc模型的systemgenerator模塊實(shí)現(xiàn)圖;
圖13是二級(jí)mc模型單脈沖輸出波形;
圖14是本發(fā)明裝置的systemgenerator實(shí)現(xiàn);
圖15是使用本發(fā)明裝置產(chǎn)生的突發(fā)噪聲與原噪聲對(duì)比圖;
圖16是二級(jí)分層mc模型的matlab仿真與fpga產(chǎn)生噪聲幅值的pdf對(duì)比。
具體實(shí)施方式
下面將結(jié)合附圖,對(duì)本發(fā)明的優(yōu)選實(shí)施例進(jìn)行詳細(xì)的描述。
圖1給出了本發(fā)明的整體結(jié)構(gòu)框圖,本實(shí)施例采用xilinx公司kintex-7系列xc7k325t芯片來完成突發(fā)噪聲發(fā)生器的工程實(shí)現(xiàn)。該系列是一類低成本高容量的fpga,采用成熟的28nm制造工藝,能在功耗、性能、成本之間很好地平衡。xc7k325t芯片可用的資源包括:326080個(gè)邏輯單元,最大16020kb的blockram、4000kb的distributedram、840個(gè)dspslice、500個(gè)i/o口。
考慮到電力線2~30mhz頻段及模擬器的精度,模數(shù)轉(zhuǎn)化器(dac)選用具有fpga夾層卡(fmc,fpgamezzaninecard)標(biāo)準(zhǔn)接口的fmc125板,支持2路ad輸入,2路da輸出。da采用ad9777芯片,該芯片為16位分辨率,最大輸入數(shù)據(jù)速率為160msps,插值后最大dac轉(zhuǎn)換速率400msps??梢怨ぷ髟跒?~62.5mhz帶寬內(nèi),可以為電力線通信極限信道提供噪聲。kc705評(píng)估板上有兩個(gè)fmc接口,分別為160個(gè)引腳數(shù)的低引腳數(shù)(lpc)連接器和400個(gè)引腳數(shù)的高引腳數(shù)(hpc),因此本平臺(tái)可以同時(shí)具備四輸出。
兩級(jí)分層的markovchain模型的實(shí)現(xiàn)流程介紹。首先從上位機(jī)傳送數(shù)據(jù)和控制命令到模擬器的命令解析單元,然后解析出控制命令傳送到各個(gè)模塊。第一級(jí)mc模型需要的參數(shù)是一個(gè)兩狀態(tài)的一階mc狀態(tài)轉(zhuǎn)移矩陣及兩個(gè)狀態(tài)的初始分布;如果第一級(jí)mc進(jìn)入無噪聲狀態(tài),判定模塊會(huì)使能高斯白噪聲模塊,輸出背景噪聲;如果第一級(jí)mc某時(shí)刻產(chǎn)生了一個(gè)噪聲狀態(tài),此時(shí)將會(huì)進(jìn)入第二級(jí)mc模型;第二級(jí)mc的最大幅值、劃分的狀態(tài)個(gè)數(shù)、狀態(tài)轉(zhuǎn)移矩陣以及產(chǎn)生脈沖點(diǎn)的長(zhǎng)度(也可理解為突發(fā)脈沖的脈沖點(diǎn)數(shù))或者分布函數(shù)的選擇是由控制&命令解析單元控制,然后該模型根據(jù)對(duì)應(yīng)參數(shù)產(chǎn)生突發(fā)脈沖點(diǎn)輸出,脈沖點(diǎn)數(shù)計(jì)數(shù)模塊控制著脈沖的長(zhǎng)度,當(dāng)計(jì)數(shù)模塊計(jì)數(shù)到閾值時(shí),就關(guān)閉第二級(jí)mc,同時(shí)使能一級(jí)mc,進(jìn)行下一個(gè)脈沖周期,如此循環(huán)往復(fù)。
圖2是本裝置的一級(jí)mc模型。一級(jí)mc模型是由兩個(gè)狀態(tài)組成,即一階mc。狀態(tài)i0代表此刻沒有脈沖噪聲存在,只有高斯白噪聲;狀態(tài)i1代表此刻出現(xiàn)脈沖噪聲。其狀態(tài)轉(zhuǎn)移矩陣為:
式中pix,y為一階mc模型在(x,y)處的概率,x表示當(dāng)前狀態(tài),y表示跳轉(zhuǎn)的下一個(gè)狀態(tài)。
圖3為一級(jí)mc模型實(shí)現(xiàn)框圖。一級(jí)mc存儲(chǔ)器中存放的是從上位機(jī)傳來的一級(jí)mc模型的狀態(tài)轉(zhuǎn)移矩陣和兩狀態(tài)的初始概率分布,一級(jí)mc模型的狀態(tài)轉(zhuǎn)移矩陣的實(shí)質(zhì)是一個(gè)概率矩陣,在開始工作時(shí),mc模型首先依據(jù)初始概率分布跳到第一個(gè)狀態(tài),并記下該狀態(tài)在狀態(tài)轉(zhuǎn)移矩陣中的位置,即該狀態(tài)在狀態(tài)轉(zhuǎn)移矩陣所在行中第一位數(shù)值在rom中的地址。lfsr模塊產(chǎn)生(0,1]之間的偽隨機(jī)數(shù),它在一個(gè)mc周期(mc模型發(fā)生狀態(tài)改變的周期)內(nèi)不發(fā)生變化。rom塊中的數(shù)據(jù)在地址的增加下逐位取出狀態(tài)轉(zhuǎn)移矩陣特定行中的概率數(shù)值,并累加求和。然后與lfsr產(chǎn)生的隨機(jī)數(shù)進(jìn)行比較,如果第ith1次產(chǎn)生的隨機(jī)數(shù)大于該次的累加和,使能信號(hào)置1,完成一個(gè)mc的周期。ith1即從當(dāng)前狀態(tài)跳到的下一個(gè)狀態(tài),然后在狀態(tài)空間中取出ith1對(duì)應(yīng)的狀態(tài)值作為最后mc模型的輸出。
一級(jí)mc模型中一級(jí)mc存儲(chǔ)器的存儲(chǔ)方式介紹。為了方便講解狀態(tài)轉(zhuǎn)移矩陣在一級(jí)mc存儲(chǔ)器中的存取方式,以a、b兩狀態(tài)的一階mc為例,如圖4所示。一級(jí)mc存儲(chǔ)器中矩陣數(shù)據(jù)是按列依次進(jìn)行讀取,所以為了方便實(shí)現(xiàn),在進(jìn)行存儲(chǔ)的時(shí)候先把矩陣進(jìn)行轉(zhuǎn)置,如式(10):
然后再進(jìn)行存儲(chǔ)。假如mc某時(shí)刻跳到圖中的b狀態(tài),然后就以b狀態(tài)所在列地址位為高位,低位地址從低到高依次加到高位地址后面組成新地址,圖4中某時(shí)刻跳到b狀態(tài)產(chǎn)生的新地址為“10”和“11”。最后根據(jù)地址在rom中查找對(duì)應(yīng)的概率轉(zhuǎn)移分布向量,決定下一個(gè)狀態(tài)跳往何處。
lfsr模塊介紹,lfsr是偽隨機(jī)數(shù)發(fā)生器(pseudo-randomnumbergenerator,prng)常采用的方法,它采用邏輯運(yùn)算,具有計(jì)算速度快、結(jié)構(gòu)簡(jiǎn)單、便于硬件實(shí)現(xiàn)等諸多特點(diǎn),在很多領(lǐng)域中都有廣泛的應(yīng)用。例如,在信息加密、擴(kuò)頻通信、糾錯(cuò)編碼和系統(tǒng)測(cè)試等領(lǐng)域。同時(shí)lfsr相比于傳統(tǒng)方法,如平方取中法、線性同余法等,具有更高的隨機(jī)數(shù)質(zhì)量和隨機(jī)數(shù)周期,彌補(bǔ)了傳統(tǒng)方法的不足。
lfsr有兩種實(shí)現(xiàn)方式:外部反饋和內(nèi)部反饋,通常內(nèi)部反饋方式較外部反饋方式有更短的反饋鏈,可以工作在更高的頻率,所以本文采用內(nèi)部反饋lfsr。如果反饋函數(shù)有n個(gè)寄存器,稱為n級(jí)lfsr,定義lfsr的特征多項(xiàng)式如下:
其中,ci(0≤i≤n)為lfsr的反饋系數(shù),反饋系數(shù)為二級(jí)制“0”或“1”,xi(0≤i≤n)為第i級(jí)移位寄存器。
其狀態(tài)轉(zhuǎn)移過程可以用向量的方式表示如式(12),
簡(jiǎn)化為:
x(t+d)=tx(t)·········(13)
其中,d表示一個(gè)周期延遲,x(t)表示各寄存器在t時(shí)刻的輸出,x(t+1)是各寄存器在t+1時(shí)刻的輸出,t為變換矩陣,c1,c2,···,cn-1為lfsr的反饋系數(shù)。
lfsr輸出的偽隨機(jī)數(shù)呈現(xiàn)一定的周期性,因?yàn)橐坏┓答佹溕系募拇嫫鞔_定,寄存器在進(jìn)行狀態(tài)的變換時(shí)就會(huì)出現(xiàn)以前經(jīng)歷過的狀態(tài),然后寄存器就會(huì)以此為周期周而復(fù)始的重復(fù)偽隨機(jī)序列。當(dāng)反饋鏈上有n個(gè)寄存器,反饋系數(shù)的取值為lfsr的本源多項(xiàng)式的系數(shù)時(shí),lfsr有最大周期2n+1,此時(shí)lfsr產(chǎn)生的隨機(jī)數(shù)也稱作為最長(zhǎng)序列(也稱m序列)。
n級(jí)lfsr的多項(xiàng)式為本源多項(xiàng)式的充要條件如式(14),
其中,f1,f2,···,fm為lfsr的反饋系數(shù);x,x2,···,xm-1,xm分別為第1,2,···,m-1,m級(jí)移位寄存器。
由式(13)中變換矩陣可以看出,在進(jìn)行一次變換后只產(chǎn)生一位新數(shù)據(jù)x(0),而x(1),··,x(n-1)的值都是由移位得到。也就是說,lfsr是單輸出,在一個(gè)時(shí)鐘周期內(nèi)只產(chǎn)生1bit數(shù)據(jù)流。在進(jìn)行數(shù)據(jù)表示的時(shí)候,往往是用多位數(shù)據(jù)表示一個(gè)定點(diǎn)隨機(jī)數(shù),也就要求在一個(gè)時(shí)鐘周期內(nèi)需要產(chǎn)生多位比特流。如果簡(jiǎn)單的從單輸出的數(shù)據(jù)流中截取m位表示一個(gè)隨機(jī)數(shù),則下一個(gè)隨機(jī)數(shù)就會(huì)和上一個(gè)隨機(jī)數(shù)有m-1位比特?cái)?shù)是重復(fù)的,即存在“移位相關(guān)性”。為了提高輸出速度,同時(shí)消除這種“移位相關(guān)性”就需要多輸出的lfsr。
把式(13)迭代m(m≤n)次,得到式(15)
x(t+md)=tx[t+(m-1)d]=t{tx[t+(m-2)d]}=…=tmx(t)·········(15)
可見,以tm作為反饋網(wǎng)絡(luò)時(shí),就可以一次輸出mbit的位數(shù)據(jù)流,組成一個(gè)m位的隨機(jī)數(shù),且相鄰隨機(jī)數(shù)之間沒有移位關(guān)系,隨機(jī)數(shù)的質(zhì)量可以得到保證。
圖5是一級(jí)mc模型的實(shí)現(xiàn)框圖在systemgenerator搭建的實(shí)現(xiàn)模塊圖。lfsr模塊。因xilinxsystemgenerator工具中xilinxreferenceblockset庫(kù)提供了lfsr模塊,可以直接調(diào)用。只需按照需求在gui界面設(shè)置特定參數(shù)即可得到不同特性的偽隨機(jī)數(shù),在此不再介紹實(shí)現(xiàn)方法。為了最大程度的簡(jiǎn)化設(shè)計(jì)、節(jié)約硬件資源,依據(jù)理論基礎(chǔ),在不影響結(jié)果的情況下對(duì)理論實(shí)現(xiàn)做了針對(duì)性的優(yōu)化處理。因?yàn)閞om中存放的是二維方陣,所以每次判斷方陣中的第一列即可確定下一個(gè)狀態(tài)的變化,這也是圖中組合地址的concat模塊低位地址一直為“0”的原因。另一處優(yōu)化之處是mux選路模塊,之所以沒有按照理論分析中求累和然后確定輸出狀態(tài),其原因也是如此。wavescope仿真時(shí)序如圖6。
二階mc模型中隨機(jī)過程的下一個(gè)狀態(tài)不僅與當(dāng)前狀態(tài)有關(guān),還和前一個(gè)狀態(tài)有關(guān)。高階mc模型適合建模數(shù)據(jù)源,特別是具有一定包絡(luò)形態(tài)的信號(hào)。較高的n階鏈更傾向于將特定序列“組合”在一起,偶爾“中斷”成其它模式和序列,而不是由一階系統(tǒng)產(chǎn)生的“無目的漂移”。比如,在對(duì)英語(yǔ)文本字母序列的建模,以及語(yǔ)音識(shí)別等領(lǐng)域,就需要二階或三階,甚至更高階的mc模型,因?yàn)橄乱粋€(gè)字母出現(xiàn)的概率很大程度上取決于前兩個(gè)或者三個(gè)字母。
圖7是至少三個(gè)狀態(tài)的二階mc狀態(tài)轉(zhuǎn)移圖,每個(gè)狀態(tài)的改變都與其前兩個(gè)狀態(tài)有關(guān)。
如果某個(gè)序列中有“1”、“2”、“3”三個(gè)狀態(tài),則三個(gè)狀態(tài)的二階mc模型的狀態(tài)轉(zhuǎn)移矩陣如下:
其中pⅱxy,z為三個(gè)狀態(tài)的二階mc模型的在(xy,z)處的概率。其中xy為當(dāng)前狀態(tài)和前一個(gè)狀態(tài),組成一個(gè)連續(xù)狀態(tài),z為連續(xù)狀態(tài)要跳轉(zhuǎn)的下一個(gè)狀態(tài)。
圖8為二級(jí)mc模型的實(shí)現(xiàn)框圖。與一級(jí)mc模型的不同之處是增加了脈沖幅度、脈沖狀態(tài)數(shù)、分布函數(shù)模塊和脈沖長(zhǎng)度模塊,最后總合成脈沖噪聲輸出。脈沖幅度、脈沖狀態(tài)個(gè)數(shù)模塊接收的參數(shù)包括:脈沖的最大幅值、最小幅值、和狀態(tài)個(gè)數(shù),接收到數(shù)據(jù)以后內(nèi)部開始把數(shù)據(jù)分成確定的段數(shù),然后取每段中間值作為本段的狀態(tài),即可得到需求的狀態(tài)數(shù);分布函數(shù)、脈沖長(zhǎng)度模塊接收的數(shù)據(jù)包括:采用何種分布函數(shù)、突發(fā)脈沖的點(diǎn)數(shù),分布函數(shù)為常見分布函數(shù),例如均勻分布、正態(tài)分布、指數(shù)分布、對(duì)數(shù)正態(tài)分布、gamma分布、瑞利分布等,此模塊決定了突發(fā)脈沖的長(zhǎng)度,脈沖長(zhǎng)度模塊可以選擇直接從上位機(jī)選擇每個(gè)脈沖的長(zhǎng)度,也可以選擇裝置本身通過某種分布函數(shù)產(chǎn)生,分布函數(shù)的選擇是由上位機(jī)確定。第二級(jí)mc與第一級(jí)mc工作過程相似,二級(jí)mc模型的狀態(tài)轉(zhuǎn)移矩陣的實(shí)質(zhì)是一個(gè)概率矩陣,首先二級(jí)mc模型根據(jù)初始概率分布跳到初始狀態(tài),此時(shí)初始狀態(tài)應(yīng)包括兩個(gè)狀態(tài):當(dāng)前狀態(tài)和前一個(gè)狀態(tài),組成一個(gè)連續(xù)狀態(tài),記下該初始狀態(tài)在狀態(tài)轉(zhuǎn)移矩陣中的位置,即該狀態(tài)在狀態(tài)轉(zhuǎn)移矩陣所在行中第一位數(shù)值在rom中的地址。lfsr模塊產(chǎn)生(0,1]之間的偽隨機(jī)數(shù),它在一個(gè)二階mc周期(二階mc模型發(fā)生狀態(tài)改變的周期)內(nèi)不發(fā)生變化。rom塊中的數(shù)據(jù)在地址的增加下逐行取出狀態(tài)轉(zhuǎn)移矩陣特定行中的概率數(shù)值,并求累加和。然后與lfsr產(chǎn)生的隨機(jī)數(shù)進(jìn)行比較,如果第ith2次產(chǎn)生的隨機(jī)數(shù)大于該次的累加和,使能信號(hào)置1,完成一個(gè)二階mc的周期。ith2即為跳往下一個(gè)連續(xù)狀態(tài)中的第二個(gè)狀態(tài),與上一個(gè)連續(xù)狀態(tài)中的第二個(gè)狀態(tài)組成當(dāng)前狀態(tài)的連續(xù)狀態(tài),從而周而復(fù)始。噪聲綜合模塊根據(jù)脈沖長(zhǎng)度模塊和二級(jí)mc狀態(tài)空間模塊輸出的幅值合成脈沖噪聲,合成的脈沖噪聲作為最后二階mc模型的輸出。
對(duì)于產(chǎn)生任意分布隨機(jī)數(shù)的實(shí)現(xiàn)方法主要有變換法、反函數(shù)法和舍選法,這些方法均是在均勻隨機(jī)數(shù)的基礎(chǔ)上通過函數(shù)的變換和映射得到任意分布的隨機(jī)數(shù)。反函數(shù)法是一種常采用的方法,但該方法要求分布函數(shù)必須可逆,這是一個(gè)很大的缺陷。變換法的原理是從一種分布變換到另一種分布,但該方法要求兩種分布之間必須存在某種映射關(guān)系,致使其失去了普遍性。舍選法操作簡(jiǎn)單,可以理解為簡(jiǎn)單的“拒絕接受”,硬件實(shí)現(xiàn)時(shí)只需索引和比較操作,節(jié)省資源。
舍選法的思想如下:按照給定概率密度函數(shù)f(x),對(duì)均勻分布的隨機(jī)數(shù)u進(jìn)行舍選,如圖9所示。假定u1、u2分別為(0,a)和(0,b)間均勻分布的隨機(jī)數(shù),如果u2<f(u1),則輸出u1;否則拒絕u1,不作輸出。以此方式輸出的u1序列滿足f(x)分布。該方法僅需查找和比較大小關(guān)系這兩種操作,很適合用于硬件實(shí)現(xiàn),尤其是現(xiàn)場(chǎng)可編程門陣列fpga(field-programmablegatearray)。舍選法產(chǎn)生特定分布偽隨機(jī)數(shù)的輸出速率與其分布函數(shù)有關(guān),如果分布函數(shù)與橫坐標(biāo)圍成的面積為s,如圖中陰影部分,則在接受拒絕操作時(shí)可接受的效率η=s/(a×b)。假如產(chǎn)生均勻分布的隨機(jī)數(shù)速度為m(in),則目標(biāo)分布的隨機(jī)數(shù)平均輸出速率為:
m(out)=η·m(in)·········(17)
因?yàn)樯徇x法產(chǎn)生給定分布隨機(jī)數(shù)時(shí)不連續(xù),fpga在運(yùn)行的時(shí)候不能在每個(gè)時(shí)鐘周期都產(chǎn)生一個(gè)隨機(jī)數(shù)。因此,在實(shí)現(xiàn)的時(shí)候要根據(jù)接受率選擇工作所需時(shí)鐘頻率,在輸出端加入適當(dāng)大小fifo(firstinfirstout)模塊,選擇合適的時(shí)鐘頻率,就可以保證數(shù)據(jù)的連續(xù)輸出。
根據(jù)前文介紹的任意分布偽隨機(jī)數(shù)理論和原理,在systemgenerator工具中搭建的仿真如圖10。對(duì)以上實(shí)現(xiàn)的任意分布偽隨機(jī)數(shù)發(fā)生器在不同概率分布函數(shù)進(jìn)行測(cè)試,如圖11所示。對(duì)均值為0方差為1的正太分布和為1的瑞利分布進(jìn)行測(cè)試,從測(cè)試的統(tǒng)計(jì)結(jié)果來看,與理論曲線基本吻合,可以達(dá)到設(shè)計(jì)要求。
圖12是二級(jí)mc模型的實(shí)現(xiàn)框圖在systemgenerator搭建的實(shí)現(xiàn)模塊圖。systemgenerator繼承了simulink特點(diǎn),設(shè)計(jì)者可以將部分模塊封裝成一個(gè)子系統(tǒng)(subsystem),使設(shè)計(jì)界面簡(jiǎn)潔明了,在設(shè)計(jì)大型系統(tǒng)的時(shí)候可以方便分工,計(jì)人員只需專注于不同子系統(tǒng)的實(shí)現(xiàn)。圖中的任意分布偽隨機(jī)數(shù)生成模塊arb_dist_rand、噪聲空間模塊noise_space和噪聲綜合模塊noise_synth模塊都為封裝后的子系統(tǒng)。
圖13為二級(jí)mc模型的單脈沖實(shí)現(xiàn)圖,最大幅值和狀態(tài)數(shù)參數(shù)采用表1中的參數(shù)。
表1
從時(shí)域圖可以看出,該模型可以較準(zhǔn)確的實(shí)現(xiàn)具有特定包絡(luò)的突發(fā)噪聲。
通過對(duì)突發(fā)噪聲的分析,在systemgenerator工具中可搭建突發(fā)噪聲實(shí)現(xiàn)的兩級(jí)mc模型系統(tǒng)圖,如圖14所示。該系統(tǒng)可以根據(jù)需要增加要?jiǎng)澐值臓顟B(tài)個(gè)數(shù),只需增加rom中的存儲(chǔ)容量,而不需要額外硬件資源的消耗,因此具有很大的靈活性。為了更為清晰直觀的看到突發(fā)噪聲,在進(jìn)行驗(yàn)證的時(shí)候使高斯噪聲一直處于關(guān)閉狀態(tài),fpga生成突發(fā)脈沖噪聲的時(shí)域波形如圖15所示,從圖中可以看到該波形具有明顯的上升和下降包絡(luò)的形態(tài),達(dá)到了設(shè)計(jì)要求。
對(duì)systemgenerator所搭建仿真模型產(chǎn)生的數(shù)據(jù)進(jìn)行統(tǒng)計(jì)分析,為了使統(tǒng)計(jì)結(jié)果更加準(zhǔn)確,因此只對(duì)突發(fā)噪聲產(chǎn)生的數(shù)據(jù)進(jìn)行分析,高斯部分置零。圖16為二級(jí)mc模型fpga產(chǎn)生的突發(fā)噪聲和其matlab仿真數(shù)據(jù)進(jìn)行概率密度對(duì)比,從圖中可知,fpga產(chǎn)生的定點(diǎn)突發(fā)噪聲和matlab浮點(diǎn)突發(fā)噪聲概率密度曲線十分吻合,兩條曲線的均方根誤差在0.01以下。因?yàn)楸灸P驮谶\(yùn)算的時(shí)候大部分操作只是存儲(chǔ)讀取、索引及比較,很少有加減操作,特別是乘除等對(duì)數(shù)據(jù)精度影響較大的操作,因此對(duì)定點(diǎn)運(yùn)算產(chǎn)生的影響較小。存在的微小誤差是因?yàn)閿?shù)值的定點(diǎn)表示和浮點(diǎn)表示產(chǎn)生了少許誤差影響(本發(fā)明定點(diǎn)小數(shù)位為9位)。因此二級(jí)mc模型能較準(zhǔn)確的產(chǎn)生具有特定包絡(luò)的突發(fā)噪聲。
最后說明的是,以上優(yōu)選實(shí)施例僅用以說明發(fā)明的技術(shù)方案而非限制,盡管通過上述優(yōu)選實(shí)施例已經(jīng)對(duì)本發(fā)明進(jìn)行了詳細(xì)的描述,但本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,可以在形式上和細(xì)節(jié)上對(duì)其作出各種各樣的改變,而不偏離本發(fā)明權(quán)利要求書所限定的范圍。