如何用matlab 產生 均值為0,方差為5的高斯噪聲
2011-07-15 19:36
y=randn(1,2500);
y=y/std(y);
y=y-mean(y);
a=0;
b=sqrt(5);
y=a+b*y;
就得到了 N ( 0, 5 ) 的高斯分布序列。
R = normrnd(MU,SIGMA,m,n)
其中MU為均值,SIGMA為標准方差,m、n為矩陣大小;
提問:(randn與normrnd(0,1))有區別沒? 高斯噪聲與高斯白噪聲的區別是什么? sg
相關知識在統計里,我們把所要考察對象的全體叫做總體,其中每一個考察對象叫做個體,從整體中所抽取的一部分個體叫做總體的一個樣本。
在一組數據中,出現次數最多的數據叫做這組數據的眾數。
將一組數據按大小依次排列,把處在最中間位置的一個數據(或最中間兩個數據的平均數)叫做這組數據的平均數。
所謂“中位數”,就是把一組數據由低到高重新排列,用去掉兩端逐步接近正中心的辦法可以找出處在正中間位置的那個值,即中位數。
方差是一組數據中的每一個數與這組數據的平均數的差的平方的和再除以數據的個數。
即:[∑(Xn-X)^2]/n,(X表示這組數據的平均數。)
而標准方差就是方差的平方根。
因此,方差越大,標准方差也越大。
MATLAB中產生高斯白噪聲的兩個函數
MATLAB中產生高斯白噪聲非常方便,可以直接應用兩個函數,一個是WGN,另一個是AWGN。WGN用於產生高斯白噪聲,AWGN則用於在某一信號中加入高斯白噪聲。
1. WGN:產生高斯白噪聲
y = wgn(m,n,p) 產生一個m行n列的高斯白噪聲的矩陣,p以dBW為單位指定輸出噪聲的強度。
y = wgn(m,n,p,imp) 以歐姆(Ohm)為單位指定負載阻抗。
y = wgn(m,n,p,imp,state) 重置RANDN的狀態。
在數值變量后還可附加一些標志性參數:
y = wgn(…,POWERTYPE) 指定p的單位。POWERTYPE可以是'dBW', 'dBm'或'linear'。線性強度(linear power)以瓦特(Watt)為單位。
y = wgn(…,OUTPUTTYPE) 指定輸出類型。OUTPUTTYPE可以是'real'或'complex'。
2. AWGN:在某一信號中加入高斯白噪聲
y = awgn(x,SNR) 在信號x中加入高斯白噪聲。信噪比SNR以dB為單位。x的強度假定為0dBW。如果x是復數,就加入復噪聲。
y = awgn(x,SNR,SIGPOWER) 如果SIGPOWER是數值,則其代表以dBW為單位的信號強度;如果SIGPOWER為'measured',則函數將在加入噪聲之前測定信號強度。
y = awgn(x,SNR,SIGPOWER,STATE) 重置RANDN的狀態。
y = awgn(…,POWERTYPE) 指定SNR和SIGPOWER的單位。POWERTYPE可以是'dB'或'linear'。如果POWERTYPE是'dB',那么SNR以dB為單位,而SIGPOWER以dBW為單位。如果POWERTYPE是'linear',那么SNR作為比值來度量,而SIGPOWER以瓦特為單位。