Global Sources
電子工程專輯
 
電子工程專輯 > 射頻/無線
 
 
射頻/無線  

用MATLAB產生正態分佈隨機噪聲來測量直擴系統抗噪性能

上網時間: 2002年11月09日     打印版  Bookmark and Share  字型大小:  

關鍵字:正態分佈隨機噪聲  MATLAB  直接序列擴頻  distributed random noise  antijamming capacity of DSSS 

本文提出了一種產生正態分佈隨機噪聲的設計方案。即利用MATLAB軟體的模擬功能來產生若干正態分佈隨機噪聲,然後以數據文件的形式將其儲存在EPROM中並在地址產生器作用下輸出噪聲,以定量檢驗直接序列擴頻系統(DSSS)的抗干擾能力。最後給出了模擬信號波形和實驗信號波形。

目前,擴頻技術因其良好的抗干擾能力及低截獲概率性,因而在通訊領域得到了廣泛的應用。直接序列擴頻是擴頻技術的一種主要方式,它是用PN碼和二元資訊數位序列模2相加後成複合碼去調變載波[1]。如何定量衡量一個擴頻系統的抗干擾能力,就需引入一些已知參數的正態噪聲,如果利用類比信號源產生噪聲,則正態噪聲參數(均值和方差)通常是衡定的,滿足不了實際情況的需要。解決這一問題的簡單方法就是利用MATLAB中的模擬功能產生正態噪聲,並將所有產生的噪聲數據燒錄進EPROM中,以供隨時調用。但由於噪聲數據較多,將這些數據燒錄進EPROM中也比較麻煩。如果能將產生的噪聲數據形成一個*.hex文件,並將其下載到EPROM中,就使得產生正態噪聲的過程變得非常簡單,用戶可根據需要隨時變更噪聲參數。圖1:在實際中採用了HC4040(12位元)計數器和CD6740(EPROM)組成了一個噪聲數據產生器。

用MATLAB產生正態分佈噪聲及數據文件

若噪聲數據較長,直接用手工錄入EPROM中很容易出錯,且要花費較多的時間。如果用MATLAB中編程的方法產生一系列噪聲數據,並將其以*.hex文件形式燒錄進EPROM中,就可大大簡化這一過程。至於正態噪聲的參數,用戶可根據自己需要設定。也可產生多組不同參數的正態分佈隨機噪聲,同時燒錄進EPROM中,根據需要可方便地取用。

另外,用MATLAB產生的噪聲數據是類比信號,而實際的擴頻信號通常是0和1的數位信號,因此我們應將隨機噪聲進行量化編碼,並用補碼的形式表示。

下面以服從均值為0,方差為3的正態分佈隨機噪聲的產生為例加以說明。

產生正態噪聲的noise.m[2]文件如下:


==================================


echo on


fid=fopen('temp.hex','w');


random=3*randn(511,1);


for i=1:511


if random(i)>=7


noise(i)=3;


noise1(i)=96;


fprintf(fid,'%X',noise1(i));


elseif random(i)>=4.6&random(i)<7


noise(i)=2;


noise1(i)=64;


fprintf(fid,'%X',noise1(i));


elseif random(i)>=2.3&random(i)<4.6


noise(i)=1;


noise1(i)=32;


fprintf(fid,'%X',noise1(i));


elseif random(i)>=0&random(i)<2.3


noise(i)=0;


noise1(i)=0;


fprintf(fid,'%X',noise1(i));


elseif random(i)>=-2.3&random(i)<0


noise(i)=0;


noise1(i)=0;


fprintf(fid,'%X',noise1(i));


elseif random(i)<=-2.3&random(i)>-4.6


noise(i)=-1;


noise1(i)=224;


fprintf(fid,'%X',noise1(i));


elseif random(i)<=-4.6&random(i)>-7


noise(i)=-2;


noise1(i)=192;


fprintf(fid,'%X',noise1(i));


elseif random(i)<=-7


noise(i)=-3;


noise1(i)=160;


fprintf(fid,'%X',noise1(i));


end;


end;


fclose(fid);


==========================


程式說明:

1. fopen()函數的功能是以寫入的方式打開一個temp.hex文件,該文件的作用是儲存噪聲數據。fprintf()函數用來向打開的文件中寫噪聲數據。

2. randn(511,1)函數用來產生511個服從均值為0,方差為1的正態分佈隨機噪聲,如需產生方差為的噪聲,則需在函數前乘以。

3.圖2(a):運用本文提出的設計方案所得到的實驗電路輸出的量化、編碼後的正態噪聲波形(圖中上面部份是時脈波形)。 程式中的for循環語句部份就是對產生的隨機噪聲進行量化編碼。量化是採用的均勻量化,編碼是採用補碼的形式。值得說明的是該例每個噪聲數據用三比特來表示, 如EPROM中的每個地址單元儲存一個噪聲數據,就有5個比特沒用。因此可採用填零的辦法,如高3位元為噪聲數據,低5位元填零。從EPROM中讀噪聲數據時就只取每個地址的前三位元。

實際電路和波形

在實際中採用了HC4040(12位元)計數器和CD6740(EPROM)組成了一個噪聲數據產生器。產生器電路如圖1所示。

4040在5V電壓下最高輸出頻率為3.5MHz,在15V電壓下可達到12Mhz,滿足一般情況下的擴頻數據速率要求。由於將噪聲數據定為511,因此當Q1~Q9均為高電平時將計數器清零。圖中輸出噪聲數據為高三位元,經過並串轉換後可跟擴頻信號相結合。D觸發器的作用是對輸出數據起整形作用,以去掉毛刺。通過讓EPROM的高地址線A13、A12、A11、A10接高低電平,能夠使該電路產生多組不同參數的噪聲數據以供選擇圖2(b):模擬波形。二者選取了噪聲數據中的同一段以便對照。

圖2(a)是運用本文提出的設計方案所得到的實驗電路輸出的量化、編碼後的正態噪聲波形(圖中上面部份是時脈波形),圖2(b)是模擬波形。二者選取了噪聲數據中的同一段以便對照。

實際應用

本文產生正態分佈隨機噪聲的方法簡單,噪聲參數可靈活修改,因此可以方便地用於數位通訊系統中的誤碼率測量。衡量一個通訊系統的主要指標是其抗各種干擾的能力,而實際信道中的噪聲並不能定量測量,所以可以人為地加入參數已知的正態分佈隨機噪聲來定量地測出某個系統的誤碼率。實際應用中,我們用本文產生的隨機噪聲測量了一個直接序列擴頻系統的誤碼率,較好地衡量了該系統的抗隨機噪聲的能力,收到了很好的效果。另外本文產生噪聲的方法也可以用於某些隨機碼,如PN碼、RS碼的產生,並可在實際電路中方便調用。

總結本文提出的產生正態噪聲的方案有三個特點:?噪聲數據的產生及固化迅速而準確。?電路結構簡單,幾乎不需除錯。?使用方便靈活,即可根據實際需要選擇不同參數的噪聲數據。

參考文獻

1. 沈允春編著.擴譜技術.北京:國防工業出版社.1995年


2. 張志勇等編著.掌握和精通MATLAB.北京:北京航空航天大學出版社.1997

作者: 馮聃


重慶大學通訊與測控工程研究所


郵編:400044




投票數:   加入我的最愛
我來評論 - 用MATLAB產生正態分佈隨機噪聲來測量直...
評論:  
*  您還能輸入[0]個字
*驗證碼:
 
論壇熱門主題 熱門下載
 •   將邁入40歲的你...存款多少了  •  深入電容觸控技術就從這個問題開始
 •  我有一個數位電源的專利...  •  磷酸鋰鐵電池一問
 •   關於設備商公司的工程師(廠商)薪資前景  •  計算諧振轉換器的同步整流MOSFET功耗損失
 •   Touch sensor & MEMS controller  •  針對智慧電表PLC通訊應用的線路驅動器
 •   下週 深圳 llC 2012 關於PCB免費工具的研討會  •  邏輯閘的應用


EE人生人氣排行
 
返回頁首