?

基于線性同余法的突發誤碼產生技術﹡

2013-09-25 02:14胡慶鋒
通信技術 2013年8期
關鍵詞:誤碼均勻分布量級

胡慶鋒, 鐘 良

0 引言

抗誤碼性能是通信設備一個非常重要的指標。信道中除了多徑衰落外還存在電離層閃爍引起的衰落,即信道中隨機誤碼與突發誤碼并存,且突發誤碼產生的時刻及持續的時間是隨機的。通信設備一般通過接收端的去交織器將衰落造成的集中誤碼轉換為離散誤碼,再由譯碼器糾正誤碼,保證信息可靠傳輸。

為了能夠對通信設備抗突發誤碼性能進行測試,需要模擬信道中的突發誤碼。產生突發誤碼的方式有多種,較為簡單普遍的方式可以通過所設置的突發長度手動單次產生,這種方式產生的突發誤碼不具備隨機性,且不能確定誤碼量級。文中將研究一種產生突發誤碼的新方法。

文中介紹了一種偽隨機數發生器,該發生器產生的偽隨機數用來確定突發誤碼產生時的隨機時刻或位置。在技術實現上,采用高性能DSP[1]技術模擬產生任意持續時間(或突發長度)的突發誤碼。確保產生突發誤碼的時刻是隨機的,且對整個模擬過程來說,誤碼量級可以在M×10-N(M和N為1~9的正整數)內任意設置。該方法所需硬件資源少,產生誤碼精確,能模擬實際信道中突發誤碼的相關隨機性。

1 線性同余法的原理及性能模擬仿真

產生偽隨機數的方法有多種,線性同余法[2-4](以下簡稱同余法)作為最為廣泛的偽隨機數產生方法,具有產生速度較快、節省內存、輸出序列周期長、統計特性較好、產生方法簡單等優點。常用的同余法包括加同余法、除同余法、乘同余法、混合同余法,其中乘同余法和混合同余法的性能更好,更常用。

混合同余法是Lehmer在1951年推算出的,其遞推公式為[4]:

式(1)和式(2)中,mod表示求余函數,A、B、C均為正整數。其中A是乘數,B是模數,C是增量,X0是種子(初始值)。如果這些參數和種子都確定,隨機序列就確定了。序列{Xi}是在區間(0,B)上均勻分布U(0,B)的隨機數,序列{Yi}為區間(0,1)上均勻分布U(0,1)的隨機數。

式(1)中,當C=0時,稱此算法為乘同余法。當C取不為零的適當數值時,有一些優點,但優點并不突出,故常取C=0的乘同余法產生隨機數。

文中選用乘同余法。由上可見乘同余法產生的隨機數也是均勻分布的。為了證明其隨機性,文中采用MATLAB仿真[5]。編程如下(程序運行結果如圖1所示):

A=8; C=0; x0=1;

B=511; i=100;

for g=1:i

x1=A*x0;

x2=mod (x1,B);

d1=x2/512;

d(:,g)=d1;

x0=x2;

d0=d1;

end

d2=d

g1=g;

g=1:g1;

plot(g,d,g,d,'r');

xlabel('g'), ylabel('d');

title(‘(0,1)上均勻分布的隨機數’)

實際應用中,式(1)和式(2)中的 X0、A、B的取值并不是隨意的(C=0),還必須考慮如下幾點:

1)為了產生的隨機數更“隨機”,初始值X0要能任意取值。

2)序列周期要盡量大。常見B為素數,此時取A為B的原根,則隨機數序列周期T=B-1,為使隨機數序列的周期(不可能大于B)盡可能大,B應盡可能大,普遍原則是選B接近等于計算機能表示的最大整數,如接近或等于231。

3)序列具有較好的統計品質。

滿足以上三個條件的乘同余法遞推公式可以如下

式(3)是一個十分著名的偽隨機數發生器,其中A=16 807,B=231-1,16 807是231-1的一個原根,B為素數;X0可以在(0,B)內任意取值;且經過驗證式(3)和式(4)產生的序列有較好的統計品質,即式(3)和式(4)的序列為均勻分布的隨機數。

圖1 乘同余法產生的均勻分布的隨機數仿真

2 隨機數的產生和處理

文中采用式(3)的隨機數產生器完成隨機數的產生,由上可見,產生的隨機數滿足區間(0,231-1)上的均勻分布。用產生的初始隨機數通過相應變換后得到的新的隨機數,新隨機數再用來確定突發誤碼產生時的隨機時刻或位置,初始隨機數的變換對其隨機分布特性影響不大。

假設需在速率為V kb/s的數據流中產生持續時間為t ms的突發誤碼[6-7],每次突發的時刻是隨機的,且在整個數據流中誤碼量級為M×10-N(M和N均為1~9的正整數),則突發誤碼長度 L=V×t(bit)。為了在數據流中精確的產生此量級的突發誤碼,可在L×10N位數據流中,隨機產生M次突發誤碼,每次產生的突發誤碼長度為L,這樣算出的誤碼率也滿足M×10-N。因此,需在L×10N位數據中,產生M個隨機數。

在軟件編程實現時,利用隨機數產生子程序每次產生M個初始隨機數,首先對M個初始隨機數進行取模 L×10N運算,再對取模后的隨機數剔除相等數,若存在相等的數,則需重新運行隨機數產生子程序,再取模,直到產生M個互異數為止,最后將取模后新的M個互異隨機數按從小到大順序排列。取 L×10N的模運算是為了得到定位于 L×10N區間內的隨機數,剔除相等數是因為在相同的起始位置上制造兩次突發誤碼是不可能的,順序排列則是為了求得誤碼插入的位置之差,其中第一個位置差值為第一個隨機數加上L×10N減去上一次產生的M個互異隨機數中排序最大者。其中差值:

Mend為最后一個隨機數到邊的距離,Mend=L×10N- MM。

同時為了精確實現突發誤碼的插入,必須滿足Ci(i=1,2,…,m)> L,否則需重新產生隨機數。隨機數產生及處理子程序軟件流程如圖2所示。

圖2 隨機數產生及處理流程

3 突發誤碼的插入

突發誤碼在實際線路數據中的插入是隨機的。圖3直觀的說明了突發誤碼插入示意圖。b0為開始模擬產生突發誤碼時的數據流位置,第二個邊界開始時數據流位置記為b1,誤碼率為M×10-N(M和N均為1~9的正整數),突發長度為L(bit),第一個邊界內隨機數為M1、M2…Mm,第二個邊界內隨機數為M1'、M2'…Mm’, 第一個邊界內位置差值為C1、C2、…Cm,第二個邊界內位置差值為C1'、C2'…Cm’,Mend為最后一個隨機數到邊界的距離,Mend’為第二個邊界內最后一個隨機數到邊界的距離,M1、M2…Mm(或M1'、M2'…Mm’)同時表示在一個邊界內每次需插入突發誤碼處的起始位置。

為了實現突發誤碼的插入過程,文中采用TMS320C6000系列DSP芯片[8-9],該芯片是以32位雙字為基本單位來處理誤碼插入的。對于一個32位雙字來說,突發誤碼插入的位置有4種情況:①雙字的前面部分位取反;②雙字的后面部分位取反;③整個雙字32位全部取反;④雙字的中間部分位取反。其中第四種情況只有在突發長度L小于32 bit時才存在。圖4為突發誤碼插入位置圖。b0和b0'為開始模擬時數據流位置,L和L'為突發長度,dw1、dw2、dw3、dw4代表一個32位雙字。

圖3 突發誤碼插入示意

圖4 突發誤碼插入的位置

突發誤碼插入的具體過程為:在調用隨機數產生子程序后,得到M個位置差值,先取出第1個位置差值賦值給區間位置計數器,該計數器按照線路數據速率進行減法計數,當計數器減到小于等于0時,將線路數據的后面L位連續數據位全部取反(產生誤碼),當L位連續位全部取反完成后,將下一個位置差值取出來減去L后賦值給計數器,當M個位置差值取出用完之后,需重新調用隨機數產生子程序產生新一輪的位置差值。其軟件編程實現流程如圖5所示。

圖5 突發誤碼插入軟件流程

4 工程實現及仿真結果

文中的突發誤碼產生技術在工程上已經實現,產生的突發誤碼經過誤碼測試儀測試為預期結果。在硬件方面文中選用TI公司的DSP芯片(TMS320C6713),該芯片運行速度快,指令周期5ns,運算能力高達200MIPS。

在模擬仿真時,文中采用輸入數據流為全1的形態(如圖6所示),設定輸入速率為16 kb/s,產生持續時間為0.5 ms的突發誤碼,產生的誤碼量級為3×10-2,則每次產生的突發長度為8 bit。經過加誤碼后的其中一次的輸出數據如圖7所示。

圖6 輸入初始數據流

圖7 某一次的輸出數據流

由圖6和圖7可見,在800 bit的數據流中,共產生了3次突發誤碼,每次連續產生8 bit的誤碼。由于產生突發誤碼的起始時刻是隨機的,所以輸出數據流也是隨機的。

5 結語

通信設備測試的一個重要指標是其抗誤碼性能,通信設備也有同步概率、同步碼的抗誤碼性能以及誤碼擴散性等重要指標的測試,這就需要構建一個適當的誤碼測試環境。采用基于高性能處理平臺(如高速DSP處理技術、嵌入式處理技術或PC機平臺等)的軟件編程實現方案則能夠很好地解決任意量級突發誤碼的實現。如果采用標準C語言實現,還具有很強的平臺移植性。任意量級突發誤碼技術的實現為通信產品的抗誤碼性能測試提供了新的測試環境,具有很好的實用性。由于是基于軟件編程的實現方案,其數據流處理速度受限于所采用的處理器的性能。

[1] 趙加祥.DSP系統設計和BIOS編程及應用實例[M].北京:機械工業出版社,2008.

[2] 劉芬,馬興兵,曹繼華.一種二重線性同余算法的研究[J].信息安全與通信保密,2006(04):89-90,93.

[3] 吳飛.產生隨機數的幾種方法及其應用[J].數值計算與計算機應用,2006(01):48-51.

[4] 郭鳳鳴.一種生成大周期偽隨機數的新算法——改進的混合同余法[J].地球科學,1992(06):733-738.

[5] 曾璐,謝曉堯.基于 MATLAB擴頻通信系統誤碼率的研究[J].通信技術,2011,44(11):25-26,29.

[6] 成曉雄,余松煜.數字通信系統中實時誤碼發生器的一種設計方法[J].通信技術,1997(03):58-63.

[7] 李庭勝,李康輝,劉義銘.一種改進的任意指標隨機誤碼產生方法[J].信息安全與通信保密,2009(01):89-90.

[8] 劉偉.DSP原理與應用[M].北京:電子工業出版社,2012.

[9] 李方慧,王飛,何佩琨.TMS320C6000系列DSPs原理與應用 [M].北京:電子工業出版社,2003.

猜你喜歡
誤碼均勻分布量級
ZPW-2000A電碼化軌道電路誤碼問題分析及解決方案
一種基于CAN總線的誤碼測試方法
電磁感應綜合應用檢測題
21連勝
可逆隨機數生成器的設計
尼龍纖維分布情況對砂漿性能的影響研究
潘小芳(太原鐵路局太原通信段網管中心,太原 030012)
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合