趙維
(渭南師范學(xué)院 計(jì)算機(jī)科學(xué)系,陜西 渭南 714000)
蒙特卡羅法是把某個(gè)未知值取作某種概率分布或概率過程的未知參量,然后根據(jù)無作為標(biāo)本抽出法對(duì)其進(jìn)行統(tǒng)計(jì)、推定。該未知值不一定是概率的值,也可以是推定的值[1]。這種思想方法是一種在某種意義上可知的對(duì)策(博弈)觀點(diǎn)。隨著方差減少法的開發(fā)和大型超高速計(jì)算機(jī)的出現(xiàn),它不僅是一種最重要的仿真方法,而且也是一種最有效的系統(tǒng)工程方法。
在數(shù)字通信中,對(duì)于數(shù)字調(diào)頻信號(hào),通常以頻率250~4 750 Hz(每次增加500 Hz)代表0~9[2]。 現(xiàn)有1個(gè)5位碼,例如數(shù)組[6,2,4,0,1],調(diào)制成調(diào)頻信號(hào)。 接收到的信號(hào)中混有10倍于原信號(hào)的強(qiáng)干擾,干擾信號(hào)為線性調(diào)頻信號(hào),其他噪聲影響較小,可忽略不計(jì),編程將信號(hào)解碼,還原為原數(shù)組,應(yīng)用蒙特卡羅法估計(jì)該方法的誤碼率。
1)生成實(shí)際接收信號(hào) 隨機(jī)生成5位編碼code,生成調(diào)頻信號(hào)y1=cos(f/Fn),F(xiàn)為抽樣頻率。每個(gè)碼元的長(zhǎng)度有小范圍隨機(jī)抖動(dòng)。錄入強(qiáng)線性調(diào)頻信號(hào)數(shù)據(jù)yint。合成實(shí)際信號(hào)y=y1+yint。
2)信號(hào)分析 對(duì)接收信號(hào)作時(shí)頻分析,畫出時(shí)頻圖,可見原信號(hào)與強(qiáng)干擾信號(hào)的頻域關(guān)系[3]。并將信號(hào)按時(shí)間分段,加漢寧窗作傅里葉變換,得到5組頻域數(shù)據(jù),畫成頻域圖。由頻域圖可見,強(qiáng)干擾信號(hào)對(duì)應(yīng)一個(gè)高峰,原信號(hào)對(duì)應(yīng)一個(gè)較矮的峰。
3)信號(hào)處理 編程找出頻譜圖中信號(hào)的中心頻率,并算出對(duì)應(yīng)的碼元PCODE,即解碼過程[4]。
4)誤差估計(jì) 比較解得的編碼與原編碼,計(jì)算誤碼率err。
1)生成實(shí)際接收信號(hào) 編寫函數(shù)[y,code]=tonegen(digits,yint),輸入?yún)?shù)digits為5位原編碼,如果length(digits)<5,則隨機(jī)生成5位編碼。輸入?yún)?shù)yint(見附錄)為干擾信號(hào)。默認(rèn)值為強(qiáng)線性干擾信號(hào)。函數(shù)返回值y為生成的實(shí)際接收信號(hào),code為返回的原編碼。
2)分析接收信號(hào) 編寫程序pic(digits)調(diào)用tonegen函數(shù),返回實(shí)際接收信號(hào)和原編碼[5]。利用specgram函數(shù)對(duì)實(shí)際信號(hào)進(jìn)行時(shí)頻分析,畫出時(shí)頻圖,并將信號(hào)按時(shí)間分為5段,加漢寧窗作傅里葉變換,得到5組頻域數(shù)據(jù),將其畫成5個(gè)頻域圖。 運(yùn)行pic(0),得到PCODE=[0,3,8,0,1](隨機(jī)數(shù))時(shí)頻圖如圖1所示,5個(gè)頻譜圖如圖2~圖6所示。
圖1中深色區(qū)域?yàn)槟芰考袇^(qū)??梢姀?qiáng)線性調(diào)頻信號(hào)的階梯狀頻譜,原編碼信號(hào)的譜線或與干擾信號(hào)譜線重疊(0,3)或遠(yuǎn)離干擾譜線(8,0,1)。
圖1 時(shí)頻圖
3)編程解碼 由圖2~圖6可見,強(qiáng)干擾信號(hào)對(duì)應(yīng)一個(gè)高峰,原信號(hào)對(duì)應(yīng)一個(gè)較矮的峰。編寫函數(shù)secmax(A)找出每幅頻譜圖的矮峰中心位置i,再還原成1位碼元code(n)。 (n=1,2,3,4,5)。最后編寫程序[PCODE,code]=mys(digits),解出5位編碼。
4)估計(jì)解碼程序的誤碼率 編寫程序ppp估計(jì)誤碼率err,運(yùn)行ppp 10次,結(jié)果如下:0.028 0,0.027 2,0.027 4, 0.027 2,0.027 6,0.027 4,0.027 8,0.028 0,0.027 2,0.027 2, 誤碼率如圖7所示。
運(yùn)算結(jié)果err在0.027~0.028之間。 平均值為0.027 5,可見解碼程序mys誤碼率很高。
圖2 高峰對(duì)應(yīng)干擾信號(hào),矮峰對(duì)應(yīng)碼元0
圖3 信號(hào)與干擾重疊,對(duì)應(yīng)碼元3
圖4 矮峰對(duì)應(yīng)碼元8
圖5 矮峰對(duì)應(yīng)碼元0
圖6 矮峰對(duì)應(yīng)碼元1
圖7 誤碼率
強(qiáng)線性調(diào)頻信號(hào)對(duì)原信號(hào)干擾很大,應(yīng)用時(shí)頻分析函數(shù)specgram將時(shí)域信號(hào)分段轉(zhuǎn)為頻域信號(hào),再選頻濾波解得編碼[6],按照此想法編寫出簡(jiǎn)單的解碼程序mys,應(yīng)用該程序解出編碼。由于蒙特卡羅法具有實(shí)驗(yàn)方法的性質(zhì),具有直接性、可靠性和準(zhǔn)確性[7],故本文采用蒙特卡羅法評(píng)估:隨機(jī)生成的原信號(hào)經(jīng)解碼后,求出誤碼率erate,將erate作為總誤碼率err的隨機(jī)樣本,選取抽樣次數(shù)N=10 000。N越大,誤碼率的置信水平越高,但程序運(yùn)行時(shí)間越長(zhǎng)。由程序ppp的運(yùn)算結(jié)果及圖7,發(fā)現(xiàn)誤碼率err值很大,約3%??梢娊獯a算法準(zhǔn)確度較低。因此,應(yīng)進(jìn)一步改進(jìn)mys,以降低誤碼率。
[1]湯扣林.蒙特卡羅法實(shí)現(xiàn)系統(tǒng)可靠性仿真[J].Science&Technology information,2006 (33):33-35.
[2]馬海云,齊小軍.蒙特卡羅仿真機(jī)及其應(yīng)用[J].電腦與信息技術(shù),2006,14(3):36-37.
[3]梁志國(guó),孫璟宇.調(diào)頻信號(hào)的數(shù)字化解調(diào)[J].測(cè)試技術(shù)學(xué)報(bào),2005(2):57-58.
[4]劉穎,王春悅.現(xiàn)代數(shù)字通信[M].北京:北京郵電大學(xué)出版社,2000:22-25.
[5]魏選平,卞樹檀.蒙特卡羅法仿真實(shí)例及其結(jié)果分析[J].上海航天,2002,19(2):45-46.
[6]黃健求,陳常祥.基于蒙特卡羅法的機(jī)械可靠性仿真[J].東莞理工學(xué)院學(xué)報(bào),2006(3):12-13.
[7]梁海麗,段吉海.游路路蒙特卡羅法在調(diào)制解調(diào)中的應(yīng)用[J].微計(jì)算機(jī)信息,2007(13):41-42.