rand產生的是[0,1]上的均勻分布的隨機序列
randn產生均值為0,方差為1的高斯隨機序列,也就是白噪聲序列
rand產生的是均勻分布白噪聲序列
randn產生的是正態分布的白噪聲序列
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以瓦特為單位。
注釋
1. 分貝(decibel, dB):分貝(dB)是表示相對功率或幅度電平的標准單位,換句話說,就是我們用來表示兩個能量之間的差別的一種表示單位,它不是一個絕對單位。例如,電子系統中將電壓、電流、功率等物理量的強弱通稱為電平,電平的單位通常就以分貝表示,即事先取一個電壓或電流作為參考值(0dB),用待表示的量與參考值之比取對數,再乘以20作為電平的分貝數(功率的電平值改乘10)。
2. 分貝瓦(dBW, dB Watt):指以1W的輸出功率為基准時,用分貝來測量的功率放大器的功率值。
3. dBm (dB-milliWatt):即與1milliWatt(毫瓦)作比較得出的數字。
0 dBm = 1 mW
10 dBm = 10 mW
20 dBm = 100 mW
也可直接用randn函數產生高斯分布序列,例如:
y=randn(1,2500);
y=y/std(y);
y=y-mean(y);
a=0.0128;
b=sqrt(0.9596);
y=a+b*y;