资源描述:
《matlab中产生高斯白噪声的方法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、MATLAB中产生高斯白噪声,涉及awgn、wgn函数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=wg
2、n(…,POWERTYPE)指定p的单位。POWERTYPE可以是'dBW','dBm'或'linear'。线性强度(linearpower)以瓦特(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
3、是数值,则其代表以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以瓦特为单
4、位。注释1.分贝(decibel,dB):分贝(dB)是表示相对功率或幅度电平的标准单位,换句话说,就是我们用来表示两个能量之间的差别的一种表示单位,它不是一个绝对单位。例如,电子系统中将电压、电流、功率等物理量的强弱通称为电平,电平的单位通常就以分贝表示,即事先取一个电压或电流作为参考值(0dB),用待表示的量与参考值之比取对数,再乘以20作为电平的分贝数(功率的电平值改乘10)。2.分贝瓦(dBW,dBWatt):指以1W的输出功率为基准时,用分贝来测量的功率放大器的功率值。3.dBm(dB-milliW
5、att):即与1milliWatt(毫瓦)作比较得出的数字。0dBm=1mW10dBm=10mW20dBm=100mW也可直接用randn函数产生高斯分布序列,例如:程序代码y=randn(1,2500);y=y/std(y);y=y-mean(y);a=0.0128;b=sqrt(0.9596);y=a+b*y;就得到了N(0.0128,0.9596)的高斯分布序列产生指定方差和均值的随机数设某个随机变量x均值为mu,方差为var^2,若要产生同样分布的随机变量y,但使新的随机变量参数改变,均值为mu_1,
6、方差为var_1^2,可以用如下公式进行变换:y=var_1/var*(x-mu)+mu_1,其中x为随机变量,其余为常数(原分布参数)。具体到正态分布,若要产生均值为u,方差为o^2的M*N的随机数矩阵,可以用y=o*randn(M,N)+u得到。对于均匀分布,若要产生[a,b]区间的均匀分布的M*N的随机数矩阵,则可以用y=rand(M,N)*(b-a)+a得到。%===========================================================%上述资料基本上完整地描
7、述了原始问题,不过有几点内容附带说明一下:1.首先更正一个错误,我认为在“生成N(0.0128,0.9596)的高斯分布序列”的程序中,应该改为以下的代码:程序代码y=randn(1,2500);y=y-mean(y);y=y/std(y);a=0.0128;b=sqrt(0.9596);y=a+b*y;2.上面资料最后部分隐含了一个出自zhyuer版友的结论:%==========================zhyuer===================================%1)
8、 rand产生的是[0,1]上的均匀分布的随机序列2) randn产生均值为0,方差为1的高斯随机序列,也就是白噪声序列;%===================================================================%也就是说,可以直接使用上面两个函数对原始信号添加噪声(例如y=x+rand(length(x),1)或者y=x+randn(len