何源潔,李宏利
(中國(guó)電子科技集團(tuán)公司第五十四研究所,河北石家莊050081)
隨著通信事業(yè)的發(fā)展,通信系統(tǒng)的測(cè)試正在變得越來(lái)越重要。為了如實(shí)測(cè)試通信系統(tǒng)的數(shù)字信道性能,常常需要加入一定的具有特定統(tǒng)計(jì)特性的隨機(jī)誤碼。而信號(hào)隨機(jī)誤碼插入一般是具有高斯分布特性誤碼的插入,是數(shù)字信道測(cè)試設(shè)計(jì)中的難點(diǎn)。
將線性同余法和Box-Muller變換應(yīng)用在數(shù)字信道測(cè)試中使用的高斯誤碼發(fā)生器設(shè)計(jì)中,采用現(xiàn)場(chǎng)可編程門陣列(FPGA)全數(shù)字硬件架構(gòu),具有精度高、硬件實(shí)現(xiàn)容易、節(jié)約硬件邏輯資源和誤碼率可控的優(yōu)點(diǎn),可廣泛應(yīng)用于高速無(wú)線和有線通信測(cè)試中。
隨機(jī)誤碼發(fā)生器所要求的技術(shù)指標(biāo)為:插入具有高斯白噪聲條件下的誤比特特性,誤比特率為0或1×10-2~1×10-7可調(diào),每量級(jí)上步進(jìn)均為1.0。對(duì)于數(shù)字信道中誤碼的插入,實(shí)質(zhì)上是要解決誤碼分布的產(chǎn)生及誤碼數(shù)量的控制問(wèn)題。隨機(jī)誤碼發(fā)生器的過(guò)程如圖1所示。
圖1 隨機(jī)誤碼發(fā)生器原理
誤碼發(fā)生器的工作原理如下:首先,根據(jù)誤碼分布特性,隨機(jī)數(shù)發(fā)生器產(chǎn)生與隨機(jī)誤碼分布特性相一致的隨機(jī)數(shù)序列,同時(shí)借鑒真實(shí)數(shù)字信道中誤碼數(shù)量與判決電平選取相關(guān),誤碼數(shù)量的控制是通過(guò)設(shè)置與誤比特率和誤碼分布相關(guān)的閾值TH來(lái)實(shí)現(xiàn)。接著,比較器將閾值TH和隨機(jī)數(shù)發(fā)生器產(chǎn)生的隨機(jī)數(shù)R相比較,若R≥TH則輸出誤碼標(biāo)記1,否則輸出0,這樣就產(chǎn)生了0和1誤碼圖譜數(shù)據(jù)流。顯然誤碼圖譜數(shù)據(jù)流中的誤碼標(biāo)記1的分布與誤碼分布一致,且其個(gè)數(shù)與誤碼數(shù)量一致。將具有誤碼分布特性和數(shù)量特性誤碼圖譜數(shù)據(jù)流與輸入的無(wú)誤碼的數(shù)據(jù)作模二加運(yùn)算,即完成隨機(jī)誤碼的插入。
技術(shù)指標(biāo)要求所設(shè)計(jì)的隨機(jī)誤碼發(fā)生器能夠模擬高斯白噪聲信道下的誤碼特性,因此,隨機(jī)數(shù)發(fā)生器產(chǎn)生的隨機(jī)數(shù)必須服從高斯分布。得到高斯分布隨機(jī)數(shù)的關(guān)鍵是:首先得到均勻分布的隨機(jī)數(shù),然后通過(guò)變換得到高斯分布的隨機(jī)數(shù)。
均勻分布隨機(jī)數(shù)是產(chǎn)生其它分布隨機(jī)數(shù)的基礎(chǔ),如高斯分布和指數(shù)分布等,因此產(chǎn)生均勻分布隨機(jī)數(shù)的好壞直接影響到所產(chǎn)生的高斯隨機(jī)數(shù)的性能。所以均勻隨機(jī)數(shù)的產(chǎn)生至關(guān)重要。
常用的均勻隨機(jī)數(shù)的產(chǎn)生方法主要有線性同余法、反饋位移寄存法和組合同余法。其中線性同余法實(shí)現(xiàn)簡(jiǎn)單、占用存儲(chǔ)單元少,是目前應(yīng)用最廣泛的方法之一。
線性同余法是由萊默(Lehmer)于1951年提出來(lái)的,此方法是利用數(shù)論中的同余運(yùn)算來(lái)產(chǎn)生隨機(jī)數(shù),故稱為同余發(fā)生器。其遞推公式為:
式中,α為乘子(常數(shù));c為增量(常數(shù));x0為種子;M為模;α,x0和 M都是正整數(shù);i為迭代次數(shù);ri為(0,1)區(qū)間均勻分布的隨機(jī)數(shù)。
由隨機(jī)信號(hào)理論可知,在(0,1)區(qū)間上服從均勻分布的隨機(jī)數(shù)經(jīng)過(guò)一定的變換,可產(chǎn)生服從N(0,1)的高斯隨機(jī)數(shù)。該變換就是Box-Muller變換法。Box-Muller變換法產(chǎn)生高斯隨機(jī)數(shù)的計(jì)算式為:
式中,r1和r2為互相獨(dú)立的(0,1)區(qū)間均勻分布隨機(jī)數(shù)。
用式(2)產(chǎn)生高斯分布隨機(jī)數(shù)的精度高,可以同時(shí)產(chǎn)生一對(duì)互為正交的獨(dú)立高斯隨機(jī)數(shù),應(yīng)用較為廣泛。實(shí)現(xiàn)時(shí)可分別建立正余弦表和自然對(duì)數(shù)平方根表,將前面生成的均勻分布的隨機(jī)數(shù)作為地址就可以通過(guò)查表來(lái)實(shí)現(xiàn)Box-Muller變換。
數(shù)字信道中高斯隨機(jī)誤碼產(chǎn)生器的實(shí)現(xiàn)框圖如圖2所示,其中監(jiān)控計(jì)算機(jī)作為主控制器和誤碼門限值的計(jì)算。監(jiān)控計(jì)算機(jī)與FPGA之間通過(guò)串口進(jìn)行門限的設(shè)置。FPGA作為信號(hào)實(shí)時(shí)處理器,實(shí)現(xiàn)信號(hào)的輸入/輸出以及隨機(jī)誤碼的實(shí)時(shí)插入。
圖2 高斯隨機(jī)誤碼發(fā)生器實(shí)現(xiàn)
該設(shè)計(jì)中采用Altera公司Cyclone系列FPGAEP1C12芯片來(lái)完成誤碼發(fā)生器的工程實(shí)現(xiàn)。Cyclone系列是Altera公司于2003年推出的具有高性價(jià)比的FPGA系列產(chǎn)品,EP1C12芯片可用的資源包括:12 060個(gè)邏輯單元、234 kbit的RAM和2個(gè)鎖相環(huán)。該系列芯片使用靈活、功能豐富、成本低、便于開(kāi)發(fā)。這種方案的優(yōu)點(diǎn)是:采用計(jì)算機(jī)作為主控制器可以實(shí)現(xiàn)多種人機(jī)交互接口;采用FPGA作為實(shí)時(shí)信號(hào)處理器可以利用其強(qiáng)大的實(shí)時(shí)信號(hào)處理能力完成高速的數(shù)據(jù)流的誤碼實(shí)時(shí)插入,且FPGA具有多次可編程的優(yōu)點(diǎn)使得系統(tǒng)的擴(kuò)展和升級(jí)變得非常容易。此外利用串口配置閾值或?qū)㈤y值存儲(chǔ)到FPGA的存儲(chǔ)器中,使得閾值的處理非常方便;同時(shí)利用FPGA產(chǎn)生隨機(jī)數(shù),不需要額外的存儲(chǔ)空間節(jié)約了成本,降低了設(shè)計(jì)難度。
高斯隨機(jī)誤碼插入的流程是外部輸入沒(méi)有誤碼的數(shù)據(jù)和時(shí)鐘,用輸入時(shí)鐘推動(dòng)均勻隨機(jī)數(shù)發(fā)生器按式(1)描述的算法用VHDL語(yǔ)言實(shí)現(xiàn),輸出2組不同的(0,1)區(qū)間均勻分布的16 bit位寬的無(wú)符號(hào)隨機(jī)數(shù)。然后使用查表法實(shí)現(xiàn)Box-Muller變換,得到高斯分布的隨機(jī)數(shù)。由于誤比特率為0或1×10-2~1×10-7可調(diào),所以對(duì)高斯分布的隨機(jī)數(shù)進(jìn)行了32 bit位寬的量化。
根據(jù)設(shè)置的誤比特率Pe和誤碼分布的概率密度函數(shù)(即高斯分布),可以通過(guò)式(3)求出閾值TH。
根據(jù)要求利用MATLAB可以比較容易得到誤碼率和門限閥值之間的關(guān)系,如表1所示。
表1 誤碼率與閥值關(guān)系表
用VHDL語(yǔ)言實(shí)現(xiàn)的高斯隨機(jī)數(shù)發(fā)生器之后,再用ModelSim軟件對(duì)其進(jìn)行硬件仿真,其仿真結(jié)果如圖3所示。
圖3 高斯隨機(jī)數(shù)發(fā)生器的ModelSim仿真結(jié)果
通過(guò)對(duì)該仿真輸出的數(shù)據(jù)進(jìn)行高斯分布隨機(jī)數(shù)的直方圖和概率校驗(yàn)圖的分析,并與MATLAB軟件仿真的結(jié)果進(jìn)行了比較,結(jié)果表明該VHDL語(yǔ)言實(shí)現(xiàn)的高斯隨機(jī)數(shù)發(fā)生器完全滿足要求。
根據(jù)圖2的實(shí)現(xiàn)框圖,將誤碼儀的輸出數(shù)據(jù)接到無(wú)誤碼數(shù)據(jù)流端,再將經(jīng)過(guò)隨機(jī)誤碼發(fā)生器插入誤比特后有誤碼數(shù)據(jù)流輸出到誤碼儀,用監(jiān)控計(jì)算機(jī)的軟件控制插入誤碼率的門限,隨機(jī)誤碼發(fā)生器輸出端就得到相應(yīng)的插入誤碼后的數(shù)據(jù)流。
所研制的隨機(jī)誤碼產(chǎn)生器利用FIREBERD 6000A誤碼儀進(jìn)行了測(cè)試,測(cè)試結(jié)果如表2所示。測(cè)試結(jié)果表明設(shè)計(jì)的隨機(jī)誤碼產(chǎn)生器具有較高的準(zhǔn)確性,能夠滿足數(shù)字信道中誤碼測(cè)試的要求。
表2 測(cè)試結(jié)果對(duì)比表
通過(guò)對(duì)一種高斯隨機(jī)誤碼發(fā)生器實(shí)現(xiàn)方法的介紹,并對(duì)其實(shí)現(xiàn)的技術(shù)難點(diǎn)進(jìn)行了詳細(xì)描述。技術(shù)難點(diǎn)有3點(diǎn):①均勻分布隨機(jī)數(shù)的產(chǎn)生;②自然對(duì)數(shù)平方根表的生成;③誤碼率閥值門限的計(jì)算。
與已有的誤碼產(chǎn)生方法相比,該方法具有以下優(yōu)點(diǎn):誤碼分布具有足夠的隨機(jī)性,即所產(chǎn)生的誤碼分布符合高斯隨機(jī)分布的統(tǒng)計(jì)特性;該方法實(shí)現(xiàn)電路簡(jiǎn)單,并采用較小容量的FPGA和相應(yīng)的接口芯片就實(shí)現(xiàn)了高斯誤碼圖案插入。
[1]DANGER J L,GHAZEL A,BOUTILLON E,et al.Efficient FPGA Implementation ofGaussian NoiseGeneratorfor Communication ChannelEmulation[J].The7th IEEE International Conference on Electronics,Circuits and Systems,2000(1):366-369.
[2]張胡平,姚遠(yuǎn)程,馮 立.高斯分布誤碼插入的設(shè)計(jì)和實(shí)現(xiàn)[J].無(wú)線通信,2008(1):4-6.
[3]劉 江,汪 濤,劉洛琨.基于FPGA實(shí)時(shí)可配置的高斯白噪聲發(fā)生器[J].現(xiàn)代電子技術(shù),2005(6):13-15.