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